@hachej/boring-workspace 0.1.54 → 0.1.56

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/workspace.js CHANGED
@@ -1,23 +1,23 @@
1
- var V = Object.defineProperty;
2
- var X = (e, t, a) => t in e ? V(e, t, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[t] = a;
1
+ var G = Object.defineProperty;
2
+ var X = (e, t, a) => t in e ? G(e, t, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[t] = a;
3
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-CrOT4ab7.js";
5
- import { A as Je, C as Ge, c as Ve, d as Xe, e as Qe, f as Ye, F as Ze, g as et, M as tt, h as at, P as rt, i as nt, j as st, k as ot, l as it, R as lt, S as ct, m as dt, n as ut, T as pt, U as ft, W 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 Et, H as Rt, 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, as as ga, at as ba, au as ya } from "./WorkspaceProvider-CrOT4ab7.js";
4
+ import { u as _, p as Q, a as Y, b as Z, D as ee } from "./WorkspaceProvider-Bp1Sm40K.js";
5
+ import { A as Ve, C as Je, c as Ge, d as Xe, e as Qe, f as Ye, F as Ze, g as et, M as tt, h as at, P as rt, i as nt, j as st, k as ot, l as it, R as lt, S as ct, m as dt, n as ut, T as pt, U as mt, W as ft, o as ht, q as gt, r as bt, s as yt, t as vt, v as St, w as kt, x as xt, y as Pt, z as wt, B as Ct, E as Et, G as Nt, H as Rt, I as Tt, J as Ot, K as It, L as Ft, N as Wt, O as Lt, Q as Bt, V as Mt, X as Kt, Y as _t, Z as Dt, _ as At, $ as $t, a0 as jt, a1 as zt, a2 as Ht, a3 as Ut, a4 as qt, a5 as Vt, a6 as Jt, a7 as Gt, 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 ma, aq as fa, ar as ha, as as ga, at as ba, au as ya, av as va, aw as Sa, ax as ka, ay as xa, az as Pa, aA as wa, aB as Ca, aC as Ea, aD as Na, aE as Ra, aF as Ta } from "./WorkspaceProvider-Bp1Sm40K.js";
6
6
  import { c as C } from "./utils-B6yFEsav.js";
7
- import { C as xa, T as ka, W as wa, b as Pa } from "./WorkspaceLoadingState-Bqsn2JEc.js";
7
+ import { C as Ia, T as Fa, W as Wa, b as La } from "./WorkspaceLoadingState-BYTO4wdt.js";
8
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 Ca, dismissToast as Na, toast as Ea } 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 { FileTree as Ta } from "./FileTree-CfJoRiTm.js";
13
- import { MarkdownEditor as Oa } from "./MarkdownEditor-DrPDGy9F.js";
14
- import { MenuIcon as ue, PanelLeftOpenIcon as pe, PanelLeftCloseIcon as fe, PinIcon as me, CheckIcon as he, CopyIcon as ge } from "lucide-react";
15
- import { d as La } from "./panel-DnvDNQac.js";
16
- function We() {
17
- const e = K();
18
- return $(e.subscribe, e.getSnapshot);
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 O, ErrorState as le, IconButton as I } from "@hachej/boring-ui-kit";
10
+ import { Toaster as Ma, dismissToast as Ka, toast as _a } from "@hachej/boring-ui-kit";
11
+ import { useSyncExternalStore as D, useState as E, useEffect as k, useRef as w, useCallback as b, useMemo as x, Suspense as ce, Component as de } from "react";
12
+ import { FileTree as Aa } from "./FileTree-ChkSU4gL.js";
13
+ import { MarkdownEditor as ja } from "./MarkdownEditor-BlYGosmH.js";
14
+ import { MenuIcon as ue, PanelLeftOpenIcon as pe, PanelLeftCloseIcon as me, PinIcon as fe, CheckIcon as he, CopyIcon as ge } from "lucide-react";
15
+ import { d as Ha } from "./panel-DnvDNQac.js";
16
+ function Me() {
17
+ const e = _();
18
+ return D(e.subscribe, e.getSnapshot);
19
19
  }
20
- function j(e) {
20
+ function A(e) {
21
21
  switch (e.kind) {
22
22
  case "openFile":
23
23
  return { kind: "openFile", params: { path: e.path, ...e.mode ? { mode: e.mode } : {} } };
@@ -38,12 +38,12 @@ function j(e) {
38
38
  }
39
39
  }
40
40
  function be(e) {
41
- return `boring-workspace-command:${encodeURIComponent(JSON.stringify(j(e)))}`;
41
+ return `boring-workspace-command:${encodeURIComponent(JSON.stringify(A(e)))}`;
42
42
  }
43
43
  function ye(e) {
44
44
  return e.button === 0 && !e.metaKey && !e.ctrlKey && !e.altKey && !e.shiftKey;
45
45
  }
46
- function De({ to: e, children: t, className: a, title: n, href: i, onClick: o }) {
46
+ function Ke({ to: e, children: t, className: a, title: n, href: i, onClick: o }) {
47
47
  return /* @__PURE__ */ r(
48
48
  "a",
49
49
  {
@@ -51,7 +51,7 @@ function De({ to: e, children: t, className: a, title: n, href: i, onClick: o })
51
51
  className: a,
52
52
  title: n,
53
53
  onClick: (u) => {
54
- o == null || o(u), !(u.defaultPrevented || !ye(u)) && (u.preventDefault(), Q(j(e)));
54
+ o == null || o(u), !(u.defaultPrevented || !ye(u)) && (u.preventDefault(), Q(A(e)));
55
55
  },
56
56
  children: t
57
57
  }
@@ -60,7 +60,7 @@ function De({ to: e, children: t, className: a, title: n, href: i, onClick: o })
60
60
  function ve(e, t) {
61
61
  return e ? `${e.replace(/\/$/, "")}${t}` : t;
62
62
  }
63
- function xe() {
63
+ function Se() {
64
64
  if (typeof window > "u") return;
65
65
  const e = window.location.pathname.match(/^\/workspace\/([^/?#]+)/);
66
66
  if (e != null && e[1])
@@ -70,10 +70,10 @@ function xe() {
70
70
  return e[1];
71
71
  }
72
72
  }
73
- async function Ke(e) {
73
+ async function _e(e) {
74
74
  const t = new URLSearchParams({ path: e.path });
75
75
  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);
76
- const a = { ...e.headers ?? {} }, n = e.workspaceId ?? xe();
76
+ const a = { ...e.headers ?? {} }, n = e.workspaceId ?? Se();
77
77
  n && !Object.keys(a).some((o) => o.toLowerCase() === "x-boring-workspace-id") && (a["x-boring-workspace-id"] = n);
78
78
  const i = await fetch(ve(e.apiBaseUrl, `/api/v1/files/records?${t}`), {
79
79
  method: "GET",
@@ -87,8 +87,8 @@ async function Ke(e) {
87
87
  function B(e) {
88
88
  return typeof window > "u" ? !1 : window.innerWidth < e;
89
89
  }
90
- function W(e = 1024) {
91
- const [t, a] = N(() => B(e));
90
+ function M(e = 1024) {
91
+ const [t, a] = E(() => B(e));
92
92
  return k(() => {
93
93
  const n = () => {
94
94
  a(B(e));
@@ -103,7 +103,7 @@ function ke({
103
103
  isCollapsed: t,
104
104
  setCollapsed: a
105
105
  }) {
106
- const n = S(t), i = S(!1), o = S(null);
106
+ const n = w(t), i = w(!1), o = w(null);
107
107
  return k(() => {
108
108
  n.current = t;
109
109
  }, [t]), k(() => {
@@ -117,8 +117,8 @@ function ke({
117
117
  i.current = !1;
118
118
  }, []);
119
119
  }
120
- function $e(e) {
121
- const [t, a] = N([]), n = S(t);
120
+ function De(e) {
121
+ const [t, a] = E([]), n = w(t);
122
122
  n.current = t, k(() => {
123
123
  if (!e) {
124
124
  a([]);
@@ -126,22 +126,22 @@ function $e(e) {
126
126
  }
127
127
  function l() {
128
128
  try {
129
- const p = e.toJSON(), m = [];
129
+ const p = e.toJSON(), f = [];
130
130
  if (p && typeof p == "object" && "panels" in p) {
131
131
  const y = p;
132
132
  if (y.panels)
133
- for (const [, f] of Object.entries(y.panels))
134
- f.id && m.push({
135
- id: f.id,
136
- component: f.contentComponent ?? f.id,
137
- params: f.params
133
+ for (const [, m] of Object.entries(y.panels))
134
+ m.id && f.push({
135
+ id: m.id,
136
+ component: m.contentComponent ?? m.id,
137
+ params: m.params
138
138
  });
139
139
  }
140
140
  const s = n.current;
141
- (s.length !== m.length || s.some((y, f) => {
141
+ (s.length !== f.length || s.some((y, m) => {
142
142
  var v;
143
- return y.id !== ((v = m[f]) == null ? void 0 : v.id);
144
- })) && a(m);
143
+ return y.id !== ((v = f[m]) == null ? void 0 : v.id);
144
+ })) && a(f);
145
145
  } catch {
146
146
  }
147
147
  }
@@ -174,7 +174,7 @@ function $e(e) {
174
174
  );
175
175
  return { panels: t, open: i, close: o, activate: u, isOpen: d };
176
176
  }
177
- function je(e, t = {}) {
177
+ function Ae(e, t = {}) {
178
178
  const a = t.toolPanelMap ?? {}, n = b(
179
179
  (o) => a[o],
180
180
  [a]
@@ -189,8 +189,8 @@ function je(e, t = {}) {
189
189
  [a, e]
190
190
  ), resolvePanel: n };
191
191
  }
192
- const we = 768, Pe = 1024;
193
- function Se(e) {
192
+ const xe = 768, Pe = 1024;
193
+ function we(e) {
194
194
  return {
195
195
  ...e,
196
196
  groups: e.groups.filter((t) => t.id !== "sidebar")
@@ -200,45 +200,45 @@ function Ce({
200
200
  layout: e,
201
201
  className: t
202
202
  }) {
203
- var L;
204
- const a = K(), n = Y(), i = Z(), o = W(we), u = W(Pe), d = u && !o, l = w(
205
- () => e.groups.find((x) => x.id === "sidebar" && x.panel),
203
+ var W;
204
+ const a = _(), n = Y(), i = Z(), o = M(xe), u = M(Pe), d = u && !o, l = x(
205
+ () => e.groups.find((S) => S.id === "sidebar" && S.panel),
206
206
  [e]
207
- ), c = l == null ? void 0 : l.panel, p = !!c, m = ke({
207
+ ), c = l == null ? void 0 : l.panel, p = !!c, f = ke({
208
208
  isNarrowViewport: p && u,
209
209
  isCollapsed: n.collapsed,
210
- setCollapsed: (x) => i({ collapsed: x })
211
- }), [s, h] = N(!1);
210
+ setCollapsed: (S) => i({ collapsed: S })
211
+ }), [s, h] = E(!1);
212
212
  k(() => {
213
213
  (!p || !o && !d) && h(!1);
214
214
  }, [p, o, d]);
215
- const y = p && (o || d && n.collapsed), f = p && !o && (!d || !n.collapsed), v = w(
216
- () => f ? e : Se(e),
217
- [f, e]
218
- ), z = w(() => {
219
- const x = f ? "inline-sidebar" : "overlay-sidebar", M = v.groups.map((E) => {
215
+ const y = p && (o || d && n.collapsed), m = p && !o && (!d || !n.collapsed), v = x(
216
+ () => m ? e : we(e),
217
+ [m, e]
218
+ ), $ = x(() => {
219
+ const S = m ? "inline-sidebar" : "overlay-sidebar", L = v.groups.map((N) => {
220
220
  let R = "";
221
221
  try {
222
- R = JSON.stringify(E.params ?? null);
222
+ R = JSON.stringify(N.params ?? null);
223
223
  } catch {
224
224
  R = "unserializable";
225
225
  }
226
- return `${E.id}:${E.panel ?? ""}:${R}`;
226
+ return `${N.id}:${N.panel ?? ""}:${R}`;
227
227
  }).join(",");
228
- return `${v.version}:${x}:${M}`;
229
- }, [v, f]), H = $(
228
+ return `${v.version}:${S}:${L}`;
229
+ }, [v, m]), j = D(
230
230
  a.subscribe,
231
231
  a.getSnapshot,
232
232
  a.getSnapshot
233
- ), 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(() => {
233
+ ), z = x(() => a.getComponents(), [a, j]), F = c ? z[c] : null, H = c ? ((W = a.get(c)) == null ? void 0 : W.title) ?? "Sidebar" : "Sidebar", U = b(() => {
234
234
  h(!0);
235
- }, []), A = b(() => {
236
- m(), i({ collapsed: !1 }), h(!1);
237
- }, [m, i]), J = b(() => {
238
- m(), i({ collapsed: !0 }), h(!1);
239
- }, [m, i]), G = b(
240
- (x) => {
241
- x.target.closest("[role='treeitem']") && h(!1);
235
+ }, []), q = b(() => {
236
+ f(), i({ collapsed: !1 }), h(!1);
237
+ }, [f, i]), V = b(() => {
238
+ f(), i({ collapsed: !0 }), h(!1);
239
+ }, [f, i]), J = b(
240
+ (S) => {
241
+ S.target.closest("[role='treeitem']") && h(!1);
242
242
  },
243
243
  []
244
244
  );
@@ -263,7 +263,7 @@ function Ce({
263
263
  type: "button",
264
264
  variant: "outline",
265
265
  size: "icon-sm",
266
- onClick: q,
266
+ onClick: U,
267
267
  "aria-label": o ? "Open sidebar menu" : "Open collapsed sidebar",
268
268
  children: o ? /* @__PURE__ */ r(ue, { className: "h-4 w-4" }) : /* @__PURE__ */ r(pe, { className: "h-4 w-4" })
269
269
  }
@@ -276,9 +276,9 @@ function Ce({
276
276
  type: "button",
277
277
  variant: "outline",
278
278
  size: "icon-sm",
279
- onClick: J,
279
+ onClick: V,
280
280
  "aria-label": "Collapse sidebar",
281
- children: /* @__PURE__ */ r(fe, { className: "h-4 w-4" })
281
+ children: /* @__PURE__ */ r(me, { className: "h-4 w-4" })
282
282
  }
283
283
  ) }),
284
284
  /* @__PURE__ */ r(
@@ -290,7 +290,7 @@ function Ce({
290
290
  d && p && n.collapsed && "pl-10"
291
291
  )
292
292
  },
293
- z
293
+ $
294
294
  ),
295
295
  y && /* @__PURE__ */ r(ae, { open: s, onOpenChange: h, children: /* @__PURE__ */ g(
296
296
  re,
@@ -300,7 +300,7 @@ function Ce({
300
300
  children: [
301
301
  /* @__PURE__ */ g(ne, { className: "flex flex-row items-center justify-between border-b border-border px-4 py-3", children: [
302
302
  /* @__PURE__ */ g("div", { children: [
303
- /* @__PURE__ */ r(se, { children: _ }),
303
+ /* @__PURE__ */ r(se, { children: H }),
304
304
  /* @__PURE__ */ r(oe, { className: "sr-only", children: "Responsive sidebar panel" })
305
305
  ] }),
306
306
  d && /* @__PURE__ */ g(
@@ -309,10 +309,10 @@ function Ce({
309
309
  type: "button",
310
310
  variant: "outline",
311
311
  size: "sm",
312
- onClick: A,
312
+ onClick: q,
313
313
  "aria-label": "Pin sidebar open",
314
314
  children: [
315
- /* @__PURE__ */ r(me, { className: "h-4 w-4" }),
315
+ /* @__PURE__ */ r(fe, { className: "h-4 w-4" }),
316
316
  "Pin"
317
317
  ]
318
318
  }
@@ -322,8 +322,8 @@ function Ce({
322
322
  "div",
323
323
  {
324
324
  className: "h-full min-h-0 overflow-auto",
325
- onClickCapture: G,
326
- children: F ? /* @__PURE__ */ r(ce, { fallback: /* @__PURE__ */ r(D, {}), children: /* @__PURE__ */ r(F, {}) }) : /* @__PURE__ */ r(D, {})
325
+ onClickCapture: J,
326
+ children: F ? /* @__PURE__ */ r(ce, { fallback: /* @__PURE__ */ r(K, {}), children: /* @__PURE__ */ r(F, {}) }) : /* @__PURE__ */ r(K, {})
327
327
  }
328
328
  )
329
329
  ]
@@ -331,10 +331,10 @@ function Ce({
331
331
  ) })
332
332
  ] });
333
333
  }
334
- function D() {
334
+ function K() {
335
335
  return /* @__PURE__ */ r("div", { className: "flex h-full min-h-[240px] items-center justify-center text-sm text-muted-foreground", children: "Loading sidebar..." });
336
336
  }
337
- function Ne(e = {}) {
337
+ function Ee(e = {}) {
338
338
  const { sidebar: t = "filetree", center: a = "empty", right: n } = e, i = [
339
339
  {
340
340
  id: "sidebar",
@@ -362,10 +362,10 @@ function Ne(e = {}) {
362
362
  constraints: { minWidth: 250 }
363
363
  }), { version: "2.0", groups: i };
364
364
  }
365
- function ze(e) {
366
- return /* @__PURE__ */ r(Ce, { layout: Ne(e), className: e.className });
365
+ function $e(e) {
366
+ return /* @__PURE__ */ r(Ce, { layout: Ee(e), className: e.className });
367
367
  }
368
- function He({ className: e, onOpenFile: t }) {
368
+ function je({ className: e, onOpenFile: t }) {
369
369
  return /* @__PURE__ */ r(
370
370
  ie,
371
371
  {
@@ -375,22 +375,22 @@ function He({ className: e, onOpenFile: t }) {
375
375
  actions: t ? /* @__PURE__ */ r(P, { type: "button", variant: "outline", onClick: t, children: "Open file" }) : null,
376
376
  children: /* @__PURE__ */ g("div", { className: "space-y-2 text-sm", children: [
377
377
  /* @__PURE__ */ g("div", { className: "flex items-center gap-3", children: [
378
- /* @__PURE__ */ r(I, { children: "⌘P" }),
378
+ /* @__PURE__ */ r(O, { children: "⌘P" }),
379
379
  /* @__PURE__ */ r("span", { children: "Open file" })
380
380
  ] }),
381
381
  /* @__PURE__ */ g("div", { className: "flex items-center gap-3", children: [
382
- /* @__PURE__ */ r(I, { children: "⌘⇧P" }),
382
+ /* @__PURE__ */ r(O, { children: "⌘⇧P" }),
383
383
  /* @__PURE__ */ r("span", { children: "Command palette" })
384
384
  ] }),
385
385
  /* @__PURE__ */ g("div", { className: "flex items-center gap-3", children: [
386
- /* @__PURE__ */ r(I, { children: "⌘B" }),
386
+ /* @__PURE__ */ r(O, { children: "⌘B" }),
387
387
  /* @__PURE__ */ r("span", { children: "Toggle sidebar" })
388
388
  ] })
389
389
  ] })
390
390
  }
391
391
  );
392
392
  }
393
- class Ue extends de {
393
+ class ze extends de {
394
394
  constructor() {
395
395
  super(...arguments);
396
396
  T(this, "state", { hasError: !1, error: null });
@@ -428,7 +428,7 @@ class Ue extends de {
428
428
  ) }) : this.props.children;
429
429
  }
430
430
  }
431
- function _e({
431
+ function He({
432
432
  sessions: e,
433
433
  activeId: t,
434
434
  onSwitch: a,
@@ -436,7 +436,7 @@ function _e({
436
436
  onDelete: i,
437
437
  className: o
438
438
  }) {
439
- const [u, d] = N(null), l = S({}), c = w(() => e.map((s) => s.id), [e]);
439
+ const [u, d] = E(null), l = w({}), c = x(() => e.map((s) => s.id), [e]);
440
440
  k(() => {
441
441
  if (c.length === 0) {
442
442
  d(null);
@@ -447,7 +447,7 @@ function _e({
447
447
  const p = b((s) => {
448
448
  var h;
449
449
  d(s), (h = l.current[s]) == null || h.focus();
450
- }, []), m = b(
450
+ }, []), f = b(
451
451
  (s, h) => {
452
452
  if (s.target !== s.currentTarget) return;
453
453
  if (s.key === "Enter" || s.key === " ") {
@@ -456,19 +456,19 @@ function _e({
456
456
  }
457
457
  const y = c.indexOf(h);
458
458
  if (y < 0) return;
459
- let f = y;
459
+ let m = y;
460
460
  if (s.key === "ArrowDown")
461
- f = Math.min(y + 1, c.length - 1);
461
+ m = Math.min(y + 1, c.length - 1);
462
462
  else if (s.key === "ArrowUp")
463
- f = Math.max(y - 1, 0);
463
+ m = Math.max(y - 1, 0);
464
464
  else if (s.key === "Home")
465
- f = 0;
465
+ m = 0;
466
466
  else if (s.key === "End")
467
- f = c.length - 1;
467
+ m = c.length - 1;
468
468
  else
469
469
  return;
470
470
  s.preventDefault();
471
- const v = c[f];
471
+ const v = c[m];
472
472
  v && p(v);
473
473
  },
474
474
  [p, a, c]
@@ -483,7 +483,7 @@ function _e({
483
483
  children: [
484
484
  /* @__PURE__ */ g("div", { className: "flex items-center justify-between border-b border-border px-3 py-2", children: [
485
485
  /* @__PURE__ */ r("span", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wider", children: "Sessions" }),
486
- n && /* @__PURE__ */ r(O, { type: "button", variant: "ghost", size: "icon-xs", onClick: n, "aria-label": "New session", children: /* @__PURE__ */ r(
486
+ n && /* @__PURE__ */ r(I, { type: "button", variant: "ghost", size: "icon-xs", onClick: n, "aria-label": "New session", children: /* @__PURE__ */ r(
487
487
  "svg",
488
488
  {
489
489
  width: "16",
@@ -508,7 +508,7 @@ function _e({
508
508
  onSwitch: a,
509
509
  onDelete: i,
510
510
  onFocus: () => d(s.id),
511
- onKeyDown: m,
511
+ onKeyDown: f,
512
512
  rowRef: (h) => {
513
513
  l.current[s.id] = h;
514
514
  }
@@ -520,7 +520,7 @@ function _e({
520
520
  }
521
521
  );
522
522
  }
523
- async function Ee(e) {
523
+ async function Ne(e) {
524
524
  var a, n;
525
525
  if (typeof navigator < "u" && ((a = navigator.clipboard) != null && a.writeText))
526
526
  try {
@@ -548,8 +548,8 @@ function Re({
548
548
  onKeyDown: u,
549
549
  rowRef: d
550
550
  }) {
551
- const [l, c] = N(!1), p = b((m) => {
552
- m.stopPropagation(), Ee(e.id).then((s) => {
551
+ const [l, c] = E(!1), p = b((f) => {
552
+ f.stopPropagation(), Ne(e.id).then((s) => {
553
553
  s && (c(!0), window.setTimeout(() => c(!1), 1200));
554
554
  });
555
555
  }, [e.id]);
@@ -568,13 +568,13 @@ function Re({
568
568
  ),
569
569
  onClick: () => n == null ? void 0 : n(e.id),
570
570
  onFocus: o,
571
- onKeyDown: (m) => u(m, e.id),
571
+ onKeyDown: (f) => u(f, e.id),
572
572
  tabIndex: a ? 0 : -1,
573
573
  "aria-current": t ? "true" : void 0,
574
574
  children: [
575
575
  /* @__PURE__ */ r("span", { className: "flex-1 truncate", children: e.title }),
576
576
  /* @__PURE__ */ r(
577
- O,
577
+ I,
578
578
  {
579
579
  type: "button",
580
580
  variant: "ghost",
@@ -595,14 +595,14 @@ function Re({
595
595
  }
596
596
  ),
597
597
  i && /* @__PURE__ */ r(
598
- O,
598
+ I,
599
599
  {
600
600
  type: "button",
601
601
  variant: "ghost",
602
602
  size: "icon-xs",
603
603
  className: "hidden shrink-0 text-muted-foreground hover:text-destructive group-hover:inline-flex group-data-[focused=true]:inline-flex",
604
- onClick: (m) => {
605
- m.stopPropagation(), i(e.id);
604
+ onClick: (f) => {
605
+ f.stopPropagation(), i(e.id);
606
606
  },
607
607
  tabIndex: a ? 0 : -1,
608
608
  "aria-label": `Delete ${e.title}`,
@@ -626,24 +626,24 @@ function Re({
626
626
  );
627
627
  }
628
628
  export {
629
- Je as ArtifactSurfacePane,
630
- Ge as CatalogRegistry,
631
- xa as ChatLayout,
632
- Ve as CodeEditor,
629
+ Ve as ArtifactSurfacePane,
630
+ Je as CatalogRegistry,
631
+ Ia as ChatLayout,
632
+ Ge as CodeEditor,
633
633
  Xe as CodeEditorPane,
634
634
  Qe as CommandPalette,
635
635
  Ye as CommandRegistry,
636
636
  ee as DockviewShell,
637
- He as EmptyPane,
638
- Ta as FileTree,
637
+ je as EmptyPane,
638
+ Aa as FileTree,
639
639
  Ze as FileTreePane,
640
640
  et as FileTreeView,
641
- ze as IdeLayout,
641
+ $e as IdeLayout,
642
642
  tt as MAX_PANELS,
643
- Oa as MarkdownEditor,
643
+ ja as MarkdownEditor,
644
644
  at as MarkdownEditorPane,
645
645
  rt as PanelChrome,
646
- Ue as PanelErrorBoundary,
646
+ ze as PanelErrorBoundary,
647
647
  nt as PanelRegistry,
648
648
  st as PluginError,
649
649
  ot as PluginErrorBoundary,
@@ -651,90 +651,101 @@ export {
651
651
  lt as RegistryProvider,
652
652
  Ce as ResponsiveDockviewShell,
653
653
  ct as SessionBrowser,
654
- _e as SessionList,
654
+ He as SessionList,
655
655
  dt as SurfaceResolverRegistry,
656
656
  ut as SurfaceShell,
657
657
  pt as ThemeProvider,
658
- Ca as Toaster,
659
- ka as TopBar,
660
- ft as UI_COMMAND_EVENT,
661
- mt as WORKSPACE_OPEN_PATH_SURFACE_KIND,
662
- ht as WorkbenchLeftPane,
663
- gt as WorkspaceFilesProvider,
664
- De as WorkspaceLink,
665
- wa as WorkspaceLoadingState,
666
- bt as WorkspaceProvider,
667
- yt as agentMeta,
668
- vt as bindStore,
669
- xt as bootstrap,
670
- Pa as buildChatLayout,
671
- kt as buildFullPagePanelHref,
672
- Ne as buildIdeLayout,
673
- wt as closePanelSchema,
658
+ Ma as Toaster,
659
+ Fa as TopBar,
660
+ mt as UI_COMMAND_EVENT,
661
+ ft as WORKSPACE_ATTENTION_ACTION_EVENT,
662
+ ht as WORKSPACE_COMPOSER_STOP_EVENT,
663
+ gt as WORKSPACE_COMPOSER_STOP_REASONS,
664
+ bt as WORKSPACE_OPEN_PATH_SURFACE_KIND,
665
+ yt as WORKSPACE_SURFACE_OPEN_SKIPPED_EVENT,
666
+ vt as WorkbenchLeftPane,
667
+ St as WorkspaceFilesProvider,
668
+ Ke as WorkspaceLink,
669
+ Wa as WorkspaceLoadingState,
670
+ kt as WorkspaceProvider,
671
+ xt as agentMeta,
672
+ Pt as bindStore,
673
+ wt as bootstrap,
674
+ La as buildChatLayout,
675
+ Ct as buildFullPagePanelHref,
676
+ Ee as buildIdeLayout,
677
+ Et as closePanelSchema,
674
678
  C as cn,
675
- Pt as createBridge,
676
- St as createBridgeClient,
677
- Ct as createShadcnTheme,
678
- Nt as createWorkspaceStore,
679
- La as definePanel,
680
- Na as dismissToast,
681
- Et as emitAgentData,
682
- Rt as emitFilesystemAgentFileChange,
683
- Tt as events,
684
- It as expandToFileSchema,
685
- Ot as filesystemEvents,
686
- Ft as filesystemPlugin,
687
- Lt as formatShortcut,
688
- Mt as getFileIcon,
689
- Bt as navigateToLineSchema,
690
- Wt as notificationSchema,
691
- Dt as onFilesystemChanged,
692
- Kt as openFileSchema,
693
- $t as openPanelSchema,
679
+ Nt as createBridge,
680
+ Rt as createBridgeClient,
681
+ Tt as createShadcnTheme,
682
+ Ot as createWorkspaceStore,
683
+ Ha as definePanel,
684
+ Ka as dismissToast,
685
+ It as emitAgentData,
686
+ Ft as emitFilesystemAgentFileChange,
687
+ Wt as emitWorkspaceAttentionAction,
688
+ Lt as emitWorkspaceComposerStop,
689
+ Bt as events,
690
+ Mt as expandToFileSchema,
691
+ Kt as filesystemEvents,
692
+ _t as filesystemPlugin,
693
+ Dt as formatShortcut,
694
+ At as getFileIcon,
695
+ $t as isWorkspaceComposerStopDetail,
696
+ jt as isWorkspaceComposerStopReason,
697
+ zt as navigateToLineSchema,
698
+ Ht as notificationSchema,
699
+ Ut as onFilesystemChanged,
700
+ qt as openFileSchema,
701
+ Vt as openPanelSchema,
694
702
  Q as postUiCommand,
695
- Ke as readFileRecords,
696
- Ea as toast,
697
- jt as useActiveFile,
698
- zt as useActivePanel,
699
- We as useActivePanels,
700
- Ht as useApiBaseUrl,
701
- $e as useArtifactPanels,
702
- je as useArtifactRouting,
703
- Ut as useAutoOpenAgentFiles,
704
- _t as useCatalogRegistry,
705
- qt as useCatalogs,
706
- At as useCommandRegistry,
707
- Jt as useCommands,
708
- Gt as useDirtyFiles,
709
- Vt as useDockviewApi,
710
- Xt as useEditorLifecycle,
711
- Qt as useEvent,
712
- Yt as useFilePane,
713
- Zt as useFullPagePanelHref,
714
- ea as useHasWorkspaceFilesProvider,
715
- ta as useHydrationComplete,
716
- aa as useIsFullPagePanel,
717
- ra as useKeyboardShortcuts,
718
- na as useOpenPanels,
719
- sa as usePanelRenderMode,
720
- oa as usePluginErrors,
721
- K as useRegistry,
722
- ia as useResetLayout,
703
+ _e as readFileRecords,
704
+ _a as toast,
705
+ Jt as useActiveFile,
706
+ Gt as useActivePanel,
707
+ Me as useActivePanels,
708
+ Xt as useApiBaseUrl,
709
+ De as useArtifactPanels,
710
+ Ae as useArtifactRouting,
711
+ Qt as useAutoOpenAgentFiles,
712
+ Yt as useCatalogRegistry,
713
+ Zt as useCatalogs,
714
+ ea as useCommandRegistry,
715
+ ta as useCommands,
716
+ aa as useDirtyFiles,
717
+ ra as useDockviewApi,
718
+ na as useEditorLifecycle,
719
+ sa as useEvent,
720
+ oa as useFilePane,
721
+ ia as useFullPagePanelHref,
722
+ la as useHasWorkspaceFilesProvider,
723
+ ca as useHydrationComplete,
724
+ da as useIsFullPagePanel,
725
+ ua as useKeyboardShortcuts,
726
+ pa as useOpenPanels,
727
+ ma as usePanelRenderMode,
728
+ fa as usePluginErrors,
729
+ _ as useRegistry,
730
+ ha as useResetLayout,
723
731
  ke as useResponsiveSidebarCollapse,
724
732
  Z as useSetSidebar,
725
733
  Y as useSidebarState,
726
- la as useSurfaceResolverRegistry,
727
- ca as useTheme,
728
- da as useThemePreference,
729
- W as useViewportBreakpoint,
730
- ua as useWorkspaceAttention,
731
- pa as useWorkspaceBridge,
732
- fa as useWorkspaceChatPanel,
733
- ma as useWorkspaceContext,
734
- ha as useWorkspaceContextOptional,
735
- ga as useWorkspaceRequestId,
736
- ba as userMeta,
737
- ya as workspaceEvents,
738
- j as workspaceLinkCommand,
734
+ ga as useSurfaceResolverRegistry,
735
+ ba as useTheme,
736
+ ya as useThemePreference,
737
+ M as useViewportBreakpoint,
738
+ va as useWorkspaceAttention,
739
+ Sa as useWorkspaceBridge,
740
+ ka as useWorkspaceChatPanel,
741
+ xa as useWorkspaceContext,
742
+ Pa as useWorkspaceContextOptional,
743
+ wa as useWorkspaceRequestId,
744
+ Ca as userMeta,
745
+ Ea as workspaceAttentionSessionBadgeForBlocker,
746
+ Na as workspaceComposerStopAppliesToSession,
747
+ Ra as workspaceComposerStopTargetSessionId,
748
+ Ta as workspaceEvents,
749
+ A as workspaceLinkCommand,
739
750
  be as workspaceLinkHref
740
751
  };