@pstdio/ui 0.40.0 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/{MermaidComponent-81jr28u4.js → MermaidComponent-D7vhkpka.js} +3 -3
  2. package/dist/{MermaidComponent-81jr28u4.js.map → MermaidComponent-D7vhkpka.js.map} +1 -1
  3. package/dist/alert-MQ47wy7f.js +388 -0
  4. package/dist/alert-MQ47wy7f.js.map +1 -0
  5. package/dist/chat-ui.d.ts +129 -23
  6. package/dist/chat-ui.js +2596 -1591
  7. package/dist/chat-ui.js.map +1 -1
  8. package/dist/{types-DWA3enV6.d.ts → collection-view-fields-D3cysHNT.d.ts} +87 -37
  9. package/dist/collection-view-grouping-D4nZk8-3.js +90 -0
  10. package/dist/collection-view-grouping-D4nZk8-3.js.map +1 -0
  11. package/dist/collection-view-search-CpjJy76w.js +1973 -0
  12. package/dist/collection-view-search-CpjJy76w.js.map +1 -0
  13. package/dist/collection-view.d.ts +4 -0
  14. package/dist/collection-view.js +2 -0
  15. package/dist/{data-table-stats-row-CpRe_xK2.js → data-table-stats-row-64magT2g.js} +2 -2
  16. package/dist/{data-table-stats-row-CpRe_xK2.js.map → data-table-stats-row-64magT2g.js.map} +1 -1
  17. package/dist/data-table.d.ts +29 -7
  18. package/dist/data-table.js +1043 -878
  19. package/dist/data-table.js.map +1 -1
  20. package/dist/diff-bubble-DewUd_2w.js +61 -0
  21. package/dist/diff-bubble-DewUd_2w.js.map +1 -0
  22. package/dist/{diff-drawer-45rpk3aq.js → diff-drawer-IYpQ-QQK.js} +264 -242
  23. package/dist/diff-drawer-IYpQ-QQK.js.map +1 -0
  24. package/dist/diff-viewer-C-0VAt9P.js +574 -0
  25. package/dist/diff-viewer-C-0VAt9P.js.map +1 -0
  26. package/dist/diff.d.ts +11 -0
  27. package/dist/diff.js +107 -98
  28. package/dist/diff.js.map +1 -1
  29. package/dist/display-sort-control-f3rbILsV.js +588 -0
  30. package/dist/display-sort-control-f3rbILsV.js.map +1 -0
  31. package/dist/drop-indicator-HjlBSIeV.js +27 -0
  32. package/dist/drop-indicator-HjlBSIeV.js.map +1 -0
  33. package/dist/edit-mode-data-table-DnMB2jiy.js +1449 -0
  34. package/dist/edit-mode-data-table-DnMB2jiy.js.map +1 -0
  35. package/dist/host-storage-BIo5azql.js +31 -0
  36. package/dist/host-storage-BIo5azql.js.map +1 -0
  37. package/dist/host-storage-J0089Hyk.d.ts +17 -0
  38. package/dist/{slider-hwHYe98I.js → icon-options-Tt6Wzhtv.js} +86 -201
  39. package/dist/icon-options-Tt6Wzhtv.js.map +1 -0
  40. package/dist/{index-Bfddrlz8.d.ts → index-B79hwNcB.d.ts} +66 -14
  41. package/dist/index-CKsd23jv.d.ts +80 -0
  42. package/dist/{index-CbtbcvKm.d.ts → index-DlmvvQ6x.d.ts} +1 -1
  43. package/dist/index-ICoad2I_.d.ts +282 -0
  44. package/dist/index.d.ts +63 -22
  45. package/dist/index.js +1149 -1054
  46. package/dist/index.js.map +1 -1
  47. package/dist/kanban-renderer.d.ts +3 -326
  48. package/dist/kanban-renderer.js +980 -596
  49. package/dist/kanban-renderer.js.map +1 -1
  50. package/dist/list-row-Z4SHkseA.js +1195 -0
  51. package/dist/list-row-Z4SHkseA.js.map +1 -0
  52. package/dist/markdown-editor-Dd4mor7l.js +3236 -0
  53. package/dist/markdown-editor-Dd4mor7l.js.map +1 -0
  54. package/dist/{mermaid-renderer-DImi0fDp.js → mermaid-renderer-0PmNkOXI.js} +29 -29
  55. package/dist/mermaid-renderer-0PmNkOXI.js.map +1 -0
  56. package/dist/mermaid.js +1 -1
  57. package/dist/number-input-7K66wnSC.js +63 -0
  58. package/dist/number-input-7K66wnSC.js.map +1 -0
  59. package/dist/{param-editor-BQd4AOUP.js → param-editor-Dnix-fJo.js} +2 -2
  60. package/dist/{param-editor-BQd4AOUP.js.map → param-editor-Dnix-fJo.js.map} +1 -1
  61. package/dist/{param-editor-field-BJ_rLUnV.js → param-editor-field-B3vLST-B.js} +1436 -1427
  62. package/dist/param-editor-field-B3vLST-B.js.map +1 -0
  63. package/dist/param-editor.js +4 -3
  64. package/dist/prism-OG4H7Hu4.js +334 -0
  65. package/dist/prism-OG4H7Hu4.js.map +1 -0
  66. package/dist/queued-follow-up-Bj_vtMgd.js +208 -0
  67. package/dist/queued-follow-up-Bj_vtMgd.js.map +1 -0
  68. package/dist/{resource-badge-95WPVlZf.d.ts → resource-badge-nOWPqxFU.d.ts} +1 -0
  69. package/dist/rich-text-BgEnAHr2.js +1160 -0
  70. package/dist/rich-text-BgEnAHr2.js.map +1 -0
  71. package/dist/rich-text.d.ts +2 -2
  72. package/dist/rich-text.js +4 -2
  73. package/dist/style.css +1 -1
  74. package/dist/terminal.d.ts +5 -63
  75. package/dist/terminal.js +102 -122
  76. package/dist/terminal.js.map +1 -1
  77. package/dist/{theme-CbmSEbRF.js → theme-CMJdH59Z.js} +589 -265
  78. package/dist/theme-CMJdH59Z.js.map +1 -0
  79. package/dist/theme-kKuLN2jb.js +80 -0
  80. package/dist/theme-kKuLN2jb.js.map +1 -0
  81. package/dist/theme-preference-BV4cbJNB.js +115 -0
  82. package/dist/theme-preference-BV4cbJNB.js.map +1 -0
  83. package/dist/theme.js +3 -2
  84. package/dist/tree-list-jarhD31R.js +1652 -0
  85. package/dist/tree-list-jarhD31R.js.map +1 -0
  86. package/dist/use-virtualizer-uj43XjBp.js +10 -0
  87. package/dist/use-virtualizer-uj43XjBp.js.map +1 -0
  88. package/dist/{workspace-badge-Brm3Xr3m.d.ts → workspace-badge-BKtB805G.d.ts} +5 -1
  89. package/package.json +8 -4
  90. package/dist/diff-bubble-DZsarmSG.js +0 -61
  91. package/dist/diff-bubble-DZsarmSG.js.map +0 -1
  92. package/dist/diff-drawer-45rpk3aq.js.map +0 -1
  93. package/dist/diff-viewer-BP_mI6Wx.js +0 -558
  94. package/dist/diff-viewer-BP_mI6Wx.js.map +0 -1
  95. package/dist/list-row-uqD-q4gv.js +0 -1018
  96. package/dist/list-row-uqD-q4gv.js.map +0 -1
  97. package/dist/mermaid-renderer-DImi0fDp.js.map +0 -1
  98. package/dist/param-editor-field-BJ_rLUnV.js.map +0 -1
  99. package/dist/prism-BStPsJSB.js +0 -658
  100. package/dist/prism-BStPsJSB.js.map +0 -1
  101. package/dist/rich-text-VYAmEigU.js +0 -6979
  102. package/dist/rich-text-VYAmEigU.js.map +0 -1
  103. package/dist/slider-hwHYe98I.js.map +0 -1
  104. package/dist/theme-CbmSEbRF.js.map +0 -1
  105. package/dist/theme-preference-pzfuK5cH.js +0 -101
  106. package/dist/theme-preference-pzfuK5cH.js.map +0 -1
  107. package/dist/tree-list-BNZwjQZA.js +0 -1616
  108. package/dist/tree-list-BNZwjQZA.js.map +0 -1
@@ -0,0 +1,574 @@
1
+ import { t as e } from "./scroll-area-Cr1lNXAr.js";
2
+ import { s as t, t as n } from "./list-row-Z4SHkseA.js";
3
+ import { r, t as i } from "./tree-list-jarhD31R.js";
4
+ import { t as a } from "./empty-state-3mVV_pV-.js";
5
+ import { t as o } from "./diff-bubble-DewUd_2w.js";
6
+ import { n as s, t as c } from "./file-change-badge-0QFNv82B.js";
7
+ import { DiffDrawer as l } from "./diff-drawer-IYpQ-QQK.js";
8
+ import { Box as u, Flex as d, HStack as f, Icon as p, IconButton as ee, Input as m, InputGroup as h, Menu as g, Skeleton as _, Stack as te, Text as v } from "@chakra-ui/react";
9
+ import { c as ne } from "react/compiler-runtime";
10
+ import { Fragment as y, jsx as b, jsxs as x } from "react/jsx-runtime";
11
+ import { useEffect as S, useRef as C, useState as w } from "react";
12
+ import { Check as T, ChevronsDownUp as E, ChevronsUpDown as D, FileText as O, List as k, ListTree as A, PanelLeftClose as j, PanelLeftOpen as re, Rows2 as M, Search as N, Settings2 as ie, SquareSplitHorizontal as ae } from "lucide-react";
13
+ //#region src/components/diff-viewer/build-changed-files-tree.ts
14
+ var P = (e) => e.split("/").map((e) => e.trim()).filter(Boolean).join("/"), F = (e) => (e.sort((e, t) => e.type === t.type ? e.name.localeCompare(t.name) : e.type === "folder" ? -1 : 1), e.forEach((e) => {
15
+ e.children && F(e.children);
16
+ }), e), I = (e) => Array.from(new Set(e.map(P).filter(Boolean))), L = (e) => I(e).map((e) => ({
17
+ id: `file:${e}`,
18
+ name: e,
19
+ type: "file"
20
+ })).sort((e, t) => e.name.localeCompare(t.name)), R = (e, t) => {
21
+ if (t === "flat") return L(e);
22
+ let n = /* @__PURE__ */ new Map(), r = [];
23
+ return I(e).forEach((e) => {
24
+ let t = e.split("/"), i = "", a = null;
25
+ t.forEach((e, o) => {
26
+ let s = i ? `${i}/${e}` : e, c = o === t.length - 1, l = `${c ? "file" : "folder"}:${s}`, u = n.get(l);
27
+ if (u) {
28
+ a = u, i = s;
29
+ return;
30
+ }
31
+ let d = {
32
+ id: l,
33
+ name: e,
34
+ type: c ? "file" : "folder",
35
+ ...c ? {} : { children: [] }
36
+ };
37
+ n.set(l, d), a ? a.children?.push(d) : r.push(d), a = d, i = s;
38
+ });
39
+ }), F(r);
40
+ }, oe = (e) => {
41
+ let t = [], n = (e) => {
42
+ e.forEach((e) => {
43
+ e.type === "folder" && (t.push(e.id), n(e.children ?? []));
44
+ });
45
+ };
46
+ return n(e), t;
47
+ }, z = (e) => {
48
+ let t = [], n = (e) => {
49
+ e.forEach((e) => {
50
+ if (e.type === "file") {
51
+ t.push(e.id.replace(/^file:/, ""));
52
+ return;
53
+ }
54
+ n(e.children ?? []);
55
+ });
56
+ };
57
+ return n(e), t;
58
+ }, B = (e, t) => t === "flat" ? [...e].sort((e, t) => e.localeCompare(t)) : z(R(e, "nested")), se = (e) => {
59
+ let t = ne(4), n;
60
+ t[0] === e.selected ? n = t[1] : (n = e.selected ? /* @__PURE__ */ b(T, { size: 14 }) : null, t[0] = e.selected, t[1] = n);
61
+ let r;
62
+ return t[2] === n ? r = t[3] : (r = /* @__PURE__ */ b(u, {
63
+ w: "14px",
64
+ flexShrink: 0,
65
+ display: "flex",
66
+ justifyContent: "center",
67
+ children: n
68
+ }), t[2] = n, t[3] = r), r;
69
+ }, V = (e) => {
70
+ let t = ne(15), { id: r, label: i, icon: a, selected: o, disabled: s, onActivate: c } = e, l = o === void 0 ? void 0 : "menuitemradio", u;
71
+ t[0] === o ? u = t[1] : (u = o === void 0 ? void 0 : /* @__PURE__ */ b(se, { selected: o }), t[0] = o, t[1] = u);
72
+ let d;
73
+ t[2] !== s || t[3] !== a || t[4] !== r || t[5] !== i || t[6] !== c || t[7] !== o || t[8] !== l || t[9] !== u ? (d = /* @__PURE__ */ b(n, {
74
+ asChild: !0,
75
+ role: l,
76
+ "aria-checked": o,
77
+ variant: "full-width",
78
+ id: r,
79
+ icon: a,
80
+ label: i,
81
+ disabled: s,
82
+ isSelected: o,
83
+ endContent: u,
84
+ onActivate: c
85
+ }), t[2] = s, t[3] = a, t[4] = r, t[5] = i, t[6] = c, t[7] = o, t[8] = l, t[9] = u, t[10] = d) : d = t[10];
86
+ let f;
87
+ return t[11] !== s || t[12] !== r || t[13] !== d ? (f = /* @__PURE__ */ b(g.Item, {
88
+ value: r,
89
+ disabled: s,
90
+ asChild: !0,
91
+ children: d
92
+ }), t[11] = s, t[12] = r, t[13] = d, t[14] = f) : f = t[14], f;
93
+ }, ce = (e) => {
94
+ let t = ne(40), { isTreePanelOpen: n, hasFilePaths: r, viewMode: i, diffViewMode: a, isExpandAllDisabled: o, isCollapseAllDisabled: s, onToggleTreePanel: c, onViewModeChange: l, onDiffViewModeChange: u, onExpandAll: d, onCollapseAll: f } = e, p;
95
+ t[0] === Symbol.for("react.memo_cache_sentinel") ? (p = /* @__PURE__ */ b(g.Trigger, {
96
+ asChild: !0,
97
+ children: /* @__PURE__ */ b(ee, {
98
+ "aria-label": "Diff view options",
99
+ variant: "ghost",
100
+ size: "sm",
101
+ children: /* @__PURE__ */ b(ie, { size: 14 })
102
+ })
103
+ }), t[0] = p) : p = t[0];
104
+ let m;
105
+ t[1] === n ? m = t[2] : (m = b(n ? j : re, { size: 14 }), t[1] = n, t[2] = m);
106
+ let h = n ? "Hide file tree" : "Show file tree", _;
107
+ t[3] !== c || t[4] !== m || t[5] !== h ? (_ = /* @__PURE__ */ b(V, {
108
+ id: "toggle-file-tree",
109
+ icon: m,
110
+ label: h,
111
+ onActivate: c
112
+ }), t[3] = c, t[4] = m, t[5] = h, t[6] = _) : _ = t[6];
113
+ let te;
114
+ t[7] === Symbol.for("react.memo_cache_sentinel") ? (te = /* @__PURE__ */ b(g.Separator, {}), t[7] = te) : te = t[7];
115
+ let v;
116
+ t[8] !== r || t[9] !== l || t[10] !== i ? (v = r ? /* @__PURE__ */ x(y, { children: [
117
+ /* @__PURE__ */ b(V, {
118
+ id: "nested",
119
+ icon: /* @__PURE__ */ b(A, { size: 14 }),
120
+ label: "Nested",
121
+ selected: i === "nested",
122
+ onActivate: () => l("nested")
123
+ }),
124
+ /* @__PURE__ */ b(V, {
125
+ id: "flat",
126
+ icon: /* @__PURE__ */ b(k, { size: 14 }),
127
+ label: "Flat",
128
+ selected: i === "flat",
129
+ onActivate: () => l("flat")
130
+ }),
131
+ /* @__PURE__ */ b(g.Separator, {})
132
+ ] }) : null, t[8] = r, t[9] = l, t[10] = i, t[11] = v) : v = t[11];
133
+ let S;
134
+ t[12] === Symbol.for("react.memo_cache_sentinel") ? (S = /* @__PURE__ */ b(M, { size: 14 }), t[12] = S) : S = t[12];
135
+ let C = a === "unified", w;
136
+ t[13] === u ? w = t[14] : (w = () => u("unified"), t[13] = u, t[14] = w);
137
+ let T;
138
+ t[15] !== C || t[16] !== w ? (T = /* @__PURE__ */ b(V, {
139
+ id: "unified",
140
+ icon: S,
141
+ label: "Unified",
142
+ selected: C,
143
+ onActivate: w
144
+ }), t[15] = C, t[16] = w, t[17] = T) : T = t[17];
145
+ let O;
146
+ t[18] === Symbol.for("react.memo_cache_sentinel") ? (O = /* @__PURE__ */ b(ae, { size: 14 }), t[18] = O) : O = t[18];
147
+ let N = a === "split", P;
148
+ t[19] === u ? P = t[20] : (P = () => u("split"), t[19] = u, t[20] = P);
149
+ let F;
150
+ t[21] !== N || t[22] !== P ? (F = /* @__PURE__ */ b(V, {
151
+ id: "split",
152
+ icon: O,
153
+ label: "Split",
154
+ selected: N,
155
+ onActivate: P
156
+ }), t[21] = N, t[22] = P, t[23] = F) : F = t[23];
157
+ let I;
158
+ t[24] === Symbol.for("react.memo_cache_sentinel") ? (I = /* @__PURE__ */ b(g.Separator, {}), t[24] = I) : I = t[24];
159
+ let L;
160
+ t[25] === Symbol.for("react.memo_cache_sentinel") ? (L = /* @__PURE__ */ b(D, { size: 14 }), t[25] = L) : L = t[25];
161
+ let R;
162
+ t[26] !== o || t[27] !== d ? (R = /* @__PURE__ */ b(V, {
163
+ id: "expand-all",
164
+ icon: L,
165
+ label: "Expand all",
166
+ disabled: o,
167
+ onActivate: d
168
+ }), t[26] = o, t[27] = d, t[28] = R) : R = t[28];
169
+ let oe;
170
+ t[29] === Symbol.for("react.memo_cache_sentinel") ? (oe = /* @__PURE__ */ b(E, { size: 14 }), t[29] = oe) : oe = t[29];
171
+ let z;
172
+ t[30] !== s || t[31] !== f ? (z = /* @__PURE__ */ b(V, {
173
+ id: "collapse-all",
174
+ icon: oe,
175
+ label: "Collapse all",
176
+ disabled: s,
177
+ onActivate: f
178
+ }), t[30] = s, t[31] = f, t[32] = z) : z = t[32];
179
+ let B;
180
+ return t[33] !== F || t[34] !== R || t[35] !== z || t[36] !== _ || t[37] !== v || t[38] !== T ? (B = /* @__PURE__ */ x(g.Root, { children: [p, /* @__PURE__ */ b(g.Positioner, { children: /* @__PURE__ */ x(g.Content, {
181
+ minW: "190px",
182
+ bg: "bg",
183
+ p: "0",
184
+ gap: "0",
185
+ children: [
186
+ _,
187
+ te,
188
+ v,
189
+ T,
190
+ F,
191
+ I,
192
+ R,
193
+ z
194
+ ]
195
+ }) })] }), t[33] = F, t[34] = R, t[35] = z, t[36] = _, t[37] = v, t[38] = T, t[39] = B) : B = t[39], B;
196
+ }, H = (e) => {
197
+ let t = e.lastIndexOf("/");
198
+ return t < 0 ? {
199
+ fileName: e,
200
+ dirPath: ""
201
+ } : {
202
+ fileName: e.slice(t + 1),
203
+ dirPath: e.slice(0, t)
204
+ };
205
+ }, U = (e) => {
206
+ let t = ne(7), { fileName: n, dirPath: r } = e, i;
207
+ t[0] === n ? i = t[1] : (i = /* @__PURE__ */ b(v, {
208
+ as: "span",
209
+ color: "fg.default",
210
+ children: n
211
+ }), t[0] = n, t[1] = i);
212
+ let a;
213
+ t[2] === r ? a = t[3] : (a = /* @__PURE__ */ b(v, {
214
+ as: "span",
215
+ color: "fg.muted",
216
+ children: r
217
+ }), t[2] = r, t[3] = a);
218
+ let o;
219
+ return t[4] !== i || t[5] !== a ? (o = /* @__PURE__ */ x(v, {
220
+ textStyle: "label/S/regular",
221
+ truncate: !0,
222
+ children: [
223
+ i,
224
+ " ",
225
+ a
226
+ ]
227
+ }), t[4] = i, t[5] = a, t[6] = o) : o = t[6], o;
228
+ }, W = (e) => {
229
+ let { nodes: t, viewMode: n, onSelectPath: r, resolveFileIcon: i, changeByPath: a } = e;
230
+ return t.map((e) => {
231
+ if (e.type === "folder") return {
232
+ id: e.id,
233
+ label: e.name,
234
+ isContainer: !0,
235
+ children: W({
236
+ nodes: e.children ?? [],
237
+ viewMode: n,
238
+ onSelectPath: r,
239
+ resolveFileIcon: i,
240
+ changeByPath: a
241
+ })
242
+ };
243
+ let t = e.id.replace(/^file:/, ""), { fileName: o, dirPath: s } = H(t), l = i?.(t) ?? {
244
+ icon: /* @__PURE__ */ b(p, {
245
+ as: O,
246
+ boxSize: "16px"
247
+ }),
248
+ color: "fg.subtle"
249
+ }, u = a?.get(t);
250
+ return {
251
+ id: e.id,
252
+ label: n === "flat" && s ? /* @__PURE__ */ b(U, {
253
+ fileName: o,
254
+ dirPath: s
255
+ }) : e.name,
256
+ icon: l.icon,
257
+ iconColor: l.color,
258
+ endContent: u ? /* @__PURE__ */ b(c, { change: u }) : void 0,
259
+ onActivate: () => r(t)
260
+ };
261
+ });
262
+ }, le = (n) => {
263
+ let r = ne(23), { paths: o, selectedPath: s, viewMode: c, searchQuery: l, expandedFolderIds: d, onSelectPath: f, onSearchQueryChange: p, onToggleFolder: ee, resolveFileIcon: g, changeByPath: _ } = n, v = C(null), y;
264
+ r[0] !== _ || r[1] !== f || r[2] !== o || r[3] !== g || r[4] !== c ? (y = W({
265
+ nodes: R(o, c),
266
+ viewMode: c,
267
+ onSelectPath: f,
268
+ resolveFileIcon: g,
269
+ changeByPath: _
270
+ }), r[0] = _, r[1] = f, r[2] = o, r[3] = g, r[4] = c, r[5] = y) : y = r[5];
271
+ let S = y, w = l.trim() ? "No matching files" : "No changed files", T;
272
+ r[6] === Symbol.for("react.memo_cache_sentinel") ? (T = /* @__PURE__ */ b(N, { size: 14 }), r[6] = T) : T = r[6];
273
+ let E;
274
+ r[7] === p ? E = r[8] : (E = (e) => p(e.target.value), r[7] = p, r[8] = E);
275
+ let D;
276
+ r[9] !== l || r[10] !== E ? (D = /* @__PURE__ */ b(t, {
277
+ flexShrink: 0,
278
+ borderBottomWidth: "1px",
279
+ borderColor: "border.subtle",
280
+ bg: "bg",
281
+ children: /* @__PURE__ */ b(h, {
282
+ startElement: T,
283
+ children: /* @__PURE__ */ b(m, {
284
+ size: "sm",
285
+ variant: "borderless",
286
+ "aria-label": "Search files",
287
+ placeholder: "Search files",
288
+ value: l,
289
+ onChange: E
290
+ })
291
+ })
292
+ }), r[9] = l, r[10] = E, r[11] = D) : D = r[11];
293
+ let O;
294
+ r[12] === Symbol.for("react.memo_cache_sentinel") ? (O = { style: { overflowX: "hidden" } }, r[12] = O) : O = r[12];
295
+ let k;
296
+ r[13] !== w || r[14] !== d || r[15] !== ee || r[16] !== o.length || r[17] !== s || r[18] !== S ? (k = /* @__PURE__ */ b(e, {
297
+ flex: "1",
298
+ minH: "0",
299
+ minW: "0",
300
+ bg: "bg",
301
+ viewportRef: v,
302
+ viewportProps: O,
303
+ children: o.length > 0 ? /* @__PURE__ */ b(i, {
304
+ sections: [{
305
+ id: "files",
306
+ nodes: S
307
+ }],
308
+ expandedNodeIds: [...d],
309
+ activeNodeId: s ? `file:${s}` : null,
310
+ rowVariant: "tree",
311
+ onToggleNode: ee,
312
+ virtualize: !0,
313
+ scrollRef: v
314
+ }) : /* @__PURE__ */ b(u, {
315
+ px: "xs",
316
+ py: "xs",
317
+ children: /* @__PURE__ */ b(a, {
318
+ title: w,
319
+ size: "sm",
320
+ textAlign: "left",
321
+ alignItems: "flex-start"
322
+ })
323
+ })
324
+ }), r[13] = w, r[14] = d, r[15] = ee, r[16] = o.length, r[17] = s, r[18] = S, r[19] = k) : k = r[19];
325
+ let A;
326
+ return r[20] !== D || r[21] !== k ? (A = /* @__PURE__ */ x(te, {
327
+ h: "full",
328
+ minH: "0",
329
+ minW: "0",
330
+ w: "full",
331
+ gap: "0",
332
+ overflow: "hidden",
333
+ bg: "bg",
334
+ children: [D, k]
335
+ }), r[20] = D, r[21] = k, r[22] = A) : A = r[22], A;
336
+ }, G = (e) => e.newPath ?? e.oldPath ?? "unknown", ue = (e) => new Map(e.map((e) => [G(e), e.change])), de = (e) => e.reduce((e, t) => ({
337
+ additions: e.additions + (t.additions ?? 0),
338
+ deletions: e.deletions + (t.deletions ?? 0)
339
+ }), {
340
+ additions: 0,
341
+ deletions: 0
342
+ }), fe = (e) => {
343
+ let { diffs: t, normalizedSearchQuery: n, viewMode: r } = e, i = n ? t.filter((e) => G(e).toLowerCase().includes(n)) : t, a = B(i.map(G), r), o = new Map(a.map((e, t) => [e, t]));
344
+ return [...i].sort((e, t) => (o.get(G(e)) ?? 2 ** 53 - 1) - (o.get(G(t)) ?? 2 ** 53 - 1));
345
+ }, pe = (e, t) => e[0] ?? t[0] ?? null, K = [
346
+ "first",
347
+ "second",
348
+ "third"
349
+ ], me = () => {
350
+ let e = ne(1), t;
351
+ return e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ b(te, {
352
+ flex: "1",
353
+ minH: "0",
354
+ bg: "bg",
355
+ p: "xs",
356
+ gap: "xs",
357
+ role: "status",
358
+ "aria-busy": "true",
359
+ "aria-label": "Loading diff panel",
360
+ children: K.map(J)
361
+ }), e[0] = t) : t = e[0], t;
362
+ }, q = (e) => {
363
+ let n = ne(116), { diffs: i, changedFilePaths: c, defaultSelectedPath: p, loading: ee, onLoadDiff: m, resolveFileIcon: h } = e, g = p === void 0 ? null : p, _ = ee !== void 0 && ee, [y, C] = w(null), T;
364
+ n[0] === Symbol.for("react.memo_cache_sentinel") ? (T = {
365
+ allExpanded: !1,
366
+ allCollapsed: !1
367
+ }, n[0] = T) : T = n[0];
368
+ let [E, D] = w(T), { isTreePanelOpen: O, viewMode: k, diffViewMode: A, searchQuery: j, selectedPath: re, expandedFolderIds: M, setTreePanelOpen: N, setViewMode: ie, setDiffViewMode: ae, setSearchQuery: P, setSelectedPath: F, setExpandedFolderIds: I, toggleFolder: L, expandAll: z, collapseAll: B } = s(), se, V, H, U, W, K, q, J, Y, X, Z, _e, Q, ve, ye, $;
369
+ if (n[1] !== c || n[2] !== g || n[3] !== i || n[4] !== M || n[5] !== _ || n[6] !== j || n[7] !== re || n[8] !== k) {
370
+ let e = i.map(G);
371
+ U = c ?? e;
372
+ let t = j.trim().toLowerCase();
373
+ Y = t ? U.filter((e) => e.toLowerCase().includes(t)) : U, q = fe({
374
+ diffs: i,
375
+ normalizedSearchQuery: t,
376
+ viewMode: k
377
+ });
378
+ let r;
379
+ n[25] === i ? r = n[26] : (r = ue(i), n[25] = i, n[26] = r), V = r, K = q.map(G);
380
+ let a = R(Y, k);
381
+ X = k === "nested" ? oe(a) : [], J = Y.join("\0"), W = K.join("\0"), Q = re ?? g ?? pe(K, Y), Z = q.length > 0, H = t ? "No matching changes" : "No changes", ve = !_ && !Z, $ = de(q), _e = X.length > 0 || q.length > 0;
382
+ let o;
383
+ n[27] === M ? o = n[28] : (o = (e) => M.has(e), n[27] = M, n[28] = o), se = X.every(o);
384
+ let s;
385
+ n[29] === M ? s = n[30] : (s = (e) => !M.has(e), n[29] = M, n[30] = s), ye = X.every(s), n[1] = c, n[2] = g, n[3] = i, n[4] = M, n[5] = _, n[6] = j, n[7] = re, n[8] = k, n[9] = se, n[10] = V, n[11] = H, n[12] = U, n[13] = W, n[14] = K, n[15] = q, n[16] = J, n[17] = Y, n[18] = X, n[19] = Z, n[20] = _e, n[21] = Q, n[22] = ve, n[23] = ye, n[24] = $;
386
+ } else se = n[9], V = n[10], H = n[11], U = n[12], W = n[13], K = n[14], q = n[15], J = n[16], Y = n[17], X = n[18], Z = n[19], _e = n[20], Q = n[21], ve = n[22], ye = n[23], $ = n[24];
387
+ let be = ye, xe = q.length === 0 || E.allExpanded, Se = q.length === 0 || E.allCollapsed, Ce = !_e || se && xe, we = !_e || be && Se, Te, Ee;
388
+ n[31] !== J || n[32] !== I || n[33] !== k ? (Te = () => {
389
+ let e = R(J ? J.split("\0") : [], k);
390
+ I(k === "nested" ? oe(e) : []);
391
+ }, Ee = [
392
+ J,
393
+ I,
394
+ k
395
+ ], n[31] = J, n[32] = I, n[33] = k, n[34] = Te, n[35] = Ee) : (Te = n[34], Ee = n[35]), S(Te, Ee);
396
+ let De, Oe;
397
+ n[36] !== W || n[37] !== J || n[38] !== Q || n[39] !== F ? (De = () => {
398
+ let e = W ? W.split("\0") : [], t = J ? J.split("\0") : [];
399
+ Q && e.includes(Q) || F(pe(e, t));
400
+ }, Oe = [
401
+ W,
402
+ J,
403
+ Q,
404
+ F
405
+ ], n[36] = W, n[37] = J, n[38] = Q, n[39] = F, n[40] = De, n[41] = Oe) : (De = n[40], Oe = n[41]), S(De, Oe);
406
+ let ke;
407
+ n[42] !== z || n[43] !== X ? (ke = () => {
408
+ z(X), C(he);
409
+ }, n[42] = z, n[43] = X, n[44] = ke) : ke = n[44];
410
+ let Ae = ke, je;
411
+ n[45] === B ? je = n[46] : (je = () => {
412
+ B(), C(ge);
413
+ }, n[45] = B, n[46] = je);
414
+ let Me = je, Ne;
415
+ n[47] !== K || n[48] !== Q || n[49] !== F ? (Ne = (e) => {
416
+ let t = Q ? K.indexOf(Q) : -1, n = K.indexOf(e), r = t >= 0 && n >= 0 && n < t ? "up" : "down";
417
+ F(e), C((t) => ({
418
+ action: "expand-selected",
419
+ direction: r,
420
+ id: (t?.id ?? 0) + 1,
421
+ path: e
422
+ }));
423
+ }, n[47] = K, n[48] = Q, n[49] = F, n[50] = Ne) : Ne = n[50];
424
+ let Pe = Ne, Fe = U.length > 0, Ie;
425
+ n[51] !== O || n[52] !== N ? (Ie = () => N(!O), n[51] = O, n[52] = N, n[53] = Ie) : Ie = n[53];
426
+ let Le;
427
+ n[54] !== Me || n[55] !== A || n[56] !== Ae || n[57] !== we || n[58] !== Ce || n[59] !== O || n[60] !== ae || n[61] !== ie || n[62] !== Fe || n[63] !== Ie || n[64] !== k ? (Le = /* @__PURE__ */ b(ce, {
428
+ isTreePanelOpen: O,
429
+ hasFilePaths: Fe,
430
+ viewMode: k,
431
+ diffViewMode: A,
432
+ isExpandAllDisabled: Ce,
433
+ isCollapseAllDisabled: we,
434
+ onToggleTreePanel: Ie,
435
+ onViewModeChange: ie,
436
+ onDiffViewModeChange: ae,
437
+ onExpandAll: Ae,
438
+ onCollapseAll: Me
439
+ }), n[54] = Me, n[55] = A, n[56] = Ae, n[57] = we, n[58] = Ce, n[59] = O, n[60] = ae, n[61] = ie, n[62] = Fe, n[63] = Ie, n[64] = k, n[65] = Le) : Le = n[65];
440
+ let Re;
441
+ n[66] !== H || n[67] !== ve ? (Re = ve ? /* @__PURE__ */ b(v, {
442
+ textStyle: "label/S/regular",
443
+ color: "fg.muted",
444
+ truncate: !0,
445
+ children: H
446
+ }) : null, n[66] = H, n[67] = ve, n[68] = Re) : Re = n[68];
447
+ let ze;
448
+ n[69] !== Le || n[70] !== Re ? (ze = /* @__PURE__ */ x(f, {
449
+ gap: "xs",
450
+ minW: "0",
451
+ children: [Le, Re]
452
+ }), n[69] = Le, n[70] = Re, n[71] = ze) : ze = n[71];
453
+ let Be;
454
+ n[72] !== $.additions || n[73] !== $.deletions ? (Be = /* @__PURE__ */ b(o, {
455
+ variant: "ghost",
456
+ size: "small",
457
+ additions: $.additions,
458
+ deletions: $.deletions
459
+ }), n[72] = $.additions, n[73] = $.deletions, n[74] = Be) : Be = n[74];
460
+ let Ve;
461
+ n[75] !== ze || n[76] !== Be ? (Ve = /* @__PURE__ */ x(t, {
462
+ variant: "main",
463
+ borderBottomWidth: "1px",
464
+ borderColor: "border.subtle",
465
+ bg: "bg",
466
+ justifyContent: "space-between",
467
+ children: [ze, Be]
468
+ }), n[75] = ze, n[76] = Be, n[77] = Ve) : Ve = n[77];
469
+ let He;
470
+ n[78] === _ ? He = n[79] : (He = _ && /* @__PURE__ */ b(me, {}), n[78] = _, n[79] = He);
471
+ let Ue;
472
+ n[80] !== y || n[81] !== A || n[82] !== q || n[83] !== Z || n[84] !== _ || n[85] !== m || n[86] !== Q || n[87] !== F ? (Ue = !_ && Z && /* @__PURE__ */ b(u, {
473
+ flex: "1",
474
+ minH: "0",
475
+ children: /* @__PURE__ */ b(l, {
476
+ diffs: q,
477
+ selectedDiffPath: Q,
478
+ onLoadDiff: m,
479
+ onSelectDiffPath: F,
480
+ onExpansionStateChange: D,
481
+ expansionCommand: y,
482
+ diffViewMode: A
483
+ })
484
+ }), n[80] = y, n[81] = A, n[82] = q, n[83] = Z, n[84] = _, n[85] = m, n[86] = Q, n[87] = F, n[88] = Ue) : Ue = n[88];
485
+ let We;
486
+ n[89] !== H || n[90] !== Z || n[91] !== _ ? (We = !_ && !Z && /* @__PURE__ */ b(u, {
487
+ flex: "1",
488
+ minH: "0",
489
+ px: "md",
490
+ py: "lg",
491
+ display: "flex",
492
+ alignItems: "center",
493
+ justifyContent: "center",
494
+ bg: "bg",
495
+ children: /* @__PURE__ */ b(a, { title: H })
496
+ }), n[89] = H, n[90] = Z, n[91] = _, n[92] = We) : We = n[92];
497
+ let Ge;
498
+ n[93] !== Ve || n[94] !== He || n[95] !== Ue || n[96] !== We ? (Ge = /* @__PURE__ */ x(te, {
499
+ h: "full",
500
+ minH: "0",
501
+ minW: "0",
502
+ flex: "1",
503
+ bg: "bg",
504
+ gap: "0",
505
+ children: [
506
+ Ve,
507
+ He,
508
+ Ue,
509
+ We
510
+ ]
511
+ }), n[93] = Ve, n[94] = He, n[95] = Ue, n[96] = We, n[97] = Ge) : Ge = n[97];
512
+ let Ke = Ge, qe;
513
+ n[98] !== V || n[99] !== M || n[100] !== Y || n[101] !== h || n[102] !== Q || n[103] !== j || n[104] !== Pe || n[105] !== P || n[106] !== L || n[107] !== k ? (qe = /* @__PURE__ */ b(le, {
514
+ paths: Y,
515
+ selectedPath: Q,
516
+ viewMode: k,
517
+ searchQuery: j,
518
+ expandedFolderIds: M,
519
+ onSelectPath: Pe,
520
+ onSearchQueryChange: P,
521
+ onToggleFolder: L,
522
+ resolveFileIcon: h,
523
+ changeByPath: V
524
+ }), n[98] = V, n[99] = M, n[100] = Y, n[101] = h, n[102] = Q, n[103] = j, n[104] = Pe, n[105] = P, n[106] = L, n[107] = k, n[108] = qe) : qe = n[108];
525
+ let Je = !O, Ye;
526
+ n[109] === N ? Ye = n[110] : (Ye = (e) => N(!e), n[109] = N, n[110] = Ye);
527
+ let Xe;
528
+ return n[111] !== Ke || n[112] !== qe || n[113] !== Je || n[114] !== Ye ? (Xe = /* @__PURE__ */ b(d, {
529
+ flex: "1",
530
+ minH: "0",
531
+ minW: "0",
532
+ bg: "bg",
533
+ gap: "0",
534
+ "data-testid": "diff-viewer",
535
+ children: /* @__PURE__ */ b(r, {
536
+ flex: "1",
537
+ minH: "0",
538
+ minW: "0",
539
+ resizablePanel: qe,
540
+ contentPanel: Ke,
541
+ collapsed: Je,
542
+ defaultSizePx: 288,
543
+ minSizePx: 224,
544
+ contentMinSizePx: 320,
545
+ resizeLabel: "Resize file list panel",
546
+ separator: "line",
547
+ onCollapsedChange: Ye
548
+ })
549
+ }), n[111] = Ke, n[112] = qe, n[113] = Je, n[114] = Ye, n[115] = Xe) : Xe = n[115], Xe;
550
+ };
551
+ function J(e) {
552
+ return /* @__PURE__ */ b(_, {
553
+ h: "72px",
554
+ w: "full",
555
+ flexShrink: "0",
556
+ borderRadius: "xs"
557
+ }, e);
558
+ }
559
+ function he(e) {
560
+ return {
561
+ action: "expand",
562
+ id: (e?.id ?? 0) + 1
563
+ };
564
+ }
565
+ function ge(e) {
566
+ return {
567
+ action: "collapse",
568
+ id: (e?.id ?? 0) + 1
569
+ };
570
+ }
571
+ //#endregion
572
+ export { q as DiffViewer };
573
+
574
+ //# sourceMappingURL=diff-viewer-C-0VAt9P.js.map