@pstdio/ui 0.37.0 → 0.39.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 (42) hide show
  1. package/dist/{MermaidComponent-BLMDb5XE.js → MermaidComponent-81jr28u4.js} +2 -2
  2. package/dist/{MermaidComponent-BLMDb5XE.js.map → MermaidComponent-81jr28u4.js.map} +1 -1
  3. package/dist/chat-ui.d.ts +6 -6
  4. package/dist/chat-ui.js +1 -1
  5. package/dist/{data-table-stats-row-BrpOFzgn.js → data-table-stats-row-CpRe_xK2.js} +2 -2
  6. package/dist/{data-table-stats-row-BrpOFzgn.js.map → data-table-stats-row-CpRe_xK2.js.map} +1 -1
  7. package/dist/data-table.d.ts +3 -1
  8. package/dist/data-table.js +7 -10
  9. package/dist/data-table.js.map +1 -1
  10. package/dist/{diff-viewer-hGkaF_zW.js → diff-viewer-DJ1B5hxL.js} +3 -3
  11. package/dist/{diff-viewer-hGkaF_zW.js.map → diff-viewer-DJ1B5hxL.js.map} +1 -1
  12. package/dist/diff.js +1 -1
  13. package/dist/index.d.ts +8 -6
  14. package/dist/index.js +111 -99
  15. package/dist/index.js.map +1 -1
  16. package/dist/kanban-renderer.d.ts +9 -21
  17. package/dist/kanban-renderer.js +276 -274
  18. package/dist/kanban-renderer.js.map +1 -1
  19. package/dist/{list-row-De9R2zKU.js → list-row-uqD-q4gv.js} +20 -10
  20. package/dist/list-row-uqD-q4gv.js.map +1 -0
  21. package/dist/{param-editor-BsyIOdrP.js → param-editor-BQd4AOUP.js} +2 -2
  22. package/dist/{param-editor-BsyIOdrP.js.map → param-editor-BQd4AOUP.js.map} +1 -1
  23. package/dist/{param-editor-field-qEWoluWT.js → param-editor-field-BJ_rLUnV.js} +728 -722
  24. package/dist/param-editor-field-BJ_rLUnV.js.map +1 -0
  25. package/dist/param-editor.d.ts +1 -0
  26. package/dist/param-editor.js +2 -2
  27. package/dist/{rich-text-CQAntEuA.js → rich-text-VYAmEigU.js} +1142 -1184
  28. package/dist/rich-text-VYAmEigU.js.map +1 -0
  29. package/dist/rich-text.js +1 -1
  30. package/dist/style.css +1 -1
  31. package/dist/{theme-BH-rGipZ.js → theme-BsOWAIi2.js} +31 -5
  32. package/dist/theme-BsOWAIi2.js.map +1 -0
  33. package/dist/theme.js +1 -1
  34. package/dist/{tree-list-BUfDQz3v.js → tree-list-WhISG-cz.js} +637 -488
  35. package/dist/tree-list-WhISG-cz.js.map +1 -0
  36. package/dist/{types-yjKBk07w.d.ts → types-DWA3enV6.d.ts} +22 -1
  37. package/package.json +2 -2
  38. package/dist/list-row-De9R2zKU.js.map +0 -1
  39. package/dist/param-editor-field-qEWoluWT.js.map +0 -1
  40. package/dist/rich-text-CQAntEuA.js.map +0 -1
  41. package/dist/theme-BH-rGipZ.js.map +0 -1
  42. package/dist/tree-list-BUfDQz3v.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import { a as e, c as t, d as n, f as r, i, l as a, m as o, n as s, o as c, p as l, r as u, s as d, t as f, u as p } from "./prism-BStPsJSB.js";
2
2
  import { n as m, t as h } from "./scroll-area-Cr1lNXAr.js";
3
- import { a as g, o as _, r as v, s as y, t as b } from "./list-row-De9R2zKU.js";
4
- import { n as x, r as S, t as C } from "./tree-list-BUfDQz3v.js";
3
+ import { c as g, o as _, r as v, s as y, t as b } from "./list-row-uqD-q4gv.js";
4
+ import { n as x, r as S, t as C } from "./tree-list-WhISG-cz.js";
5
5
  import { a as w, i as T, n as E, o as D, r as O, s as k, t as A } from "./slider-hwHYe98I.js";
6
6
  import { a as j, i as M, n as N, o as P, r as F, t as I } from "./workspace-badge-DrvH8WKV.js";
7
7
  import { t as L } from "./empty-state-3mVV_pV-.js";
8
8
  import { n as R, t as ee } from "./radio-CiFrDN6O.js";
9
9
  import { t as z } from "./browser-storage-C_ipoNwP.js";
10
- import { a as te, i as B, n as V, r as H, t as ne } from "./theme-BH-rGipZ.js";
10
+ import { a as te, i as B, n as V, r as H, t as ne } from "./theme-BsOWAIi2.js";
11
11
  import { a as U, c as re, i as ie, l as ae, n as oe, o as se, r as ce, s as le, t as ue } from "./theme-preference-pzfuK5cH.js";
12
12
  import { AbsoluteCenter as de, Badge as W, Box as G, Breadcrumb as K, Button as q, Center as fe, ChakraProvider as pe, CloseButton as me, Collapsible as he, Dialog as J, Editable as ge, Flex as _e, Grid as ve, HStack as ye, Icon as be, IconButton as xe, Input as Se, InputGroup as Ce, Kbd as we, Menu as Te, Popover as Ee, Portal as De, Skeleton as Oe, Spacer as ke, Spinner as Ae, Stack as je, Text as Y, Textarea as Me, Toast as Ne, Toaster as Pe, chakra as Fe, createSlotRecipeContext as Ie, createToaster as Le, defineSlotRecipe as Re, useSlotRecipe as ze } from "@chakra-ui/react";
13
13
  import { c as X } from "react/compiler-runtime";
@@ -18,10 +18,10 @@ import { ArrowLeft as Ye, ArrowRight as Xe, ArrowUp as Ze, Bell as Qe, Check as
18
18
  import { useVirtualizer as gt } from "@tanstack/react-virtual";
19
19
  import { DndContext as _t, KeyboardSensor as vt, PointerSensor as yt, closestCenter as bt, useSensor as xt, useSensors as St } from "@dnd-kit/core";
20
20
  import { SortableContext as Ct, arrayMove as wt, horizontalListSortingStrategy as Tt, sortableKeyboardCoordinates as Et, useSortable as Dt, verticalListSortingStrategy as Ot } from "@dnd-kit/sortable";
21
- import { CSS as kt } from "@dnd-kit/utilities";
22
- import { useStore as At } from "zustand";
23
- import { createJSONStorage as jt, persist as Mt } from "zustand/middleware";
24
- import { createStore as Nt } from "zustand/vanilla";
21
+ import { useStore as kt } from "zustand";
22
+ import { createJSONStorage as At, persist as jt } from "zustand/middleware";
23
+ import { createStore as Mt } from "zustand/vanilla";
24
+ import { CSS as Nt } from "@dnd-kit/utilities";
25
25
  //#region src/components/activity/activity-composer.tsx
26
26
  var Pt = (e) => {
27
27
  let { actor: t, value: n, defaultValue: r = "", placeholder: i = "Leave a comment...", variant: a = "standalone", minRows: s = a === "standalone" ? 3 : 1, attachLabel: c = "Attach file", submitLabel: l = "Submit comment", actions: u, onAttach: d, onChange: f, onSubmit: p, ...h } = e, [g, _] = $(r), v = n ?? g, y = a === "inline", b = v.trim().length > 0, x = (e) => {
@@ -906,7 +906,7 @@ var Mn = (e) => {
906
906
  children: p
907
907
  }), n[16] = i, n[17] = p, n[18] = h) : h = n[18], h;
908
908
  }), In = Ge(function(e, t) {
909
- let n = X(28), { isOpen: r, title: i, menu: a, onClose: o, closeLabel: s, onPopOut: c, popOutLabel: l, width: u, height: d, containerProps: f, testId: p, "aria-label": h, children: _ } = e, v = r !== void 0 && r, y = u === void 0 ? "28rem" : u, b = d === void 0 ? "38rem" : d;
909
+ let n = X(28), { isOpen: r, title: i, menu: a, onClose: o, closeLabel: s, onPopOut: c, popOutLabel: l, width: u, height: d, containerProps: f, testId: p, "aria-label": h, children: g } = e, v = r !== void 0 && r, y = u === void 0 ? "28rem" : u, b = d === void 0 ? "38rem" : d;
910
910
  if (!v) return null;
911
911
  let x = h ?? i, S;
912
912
  n[0] === a ? S = n[1] : (S = /* @__PURE__ */ Z(ye, {
@@ -944,7 +944,7 @@ var Mn = (e) => {
944
944
  children: [w, T]
945
945
  }), n[9] = w, n[10] = T, n[11] = E) : E = n[11];
946
946
  let D;
947
- n[12] !== S || n[13] !== E ? (D = /* @__PURE__ */ Q(g, {
947
+ n[12] !== S || n[13] !== E ? (D = /* @__PURE__ */ Q(_, {
948
948
  variant: "main",
949
949
  gap: "sm",
950
950
  flexShrink: 0,
@@ -955,14 +955,14 @@ var Mn = (e) => {
955
955
  ]
956
956
  }), n[12] = S, n[13] = E, n[14] = D) : D = n[14];
957
957
  let O;
958
- n[15] === _ ? O = n[16] : (O = /* @__PURE__ */ Z(G, {
958
+ n[15] === g ? O = n[16] : (O = /* @__PURE__ */ Z(G, {
959
959
  flex: "1",
960
960
  minH: 0,
961
961
  display: "flex",
962
962
  flexDirection: "column",
963
963
  gap: "sm",
964
- children: _
965
- }), n[15] = _, n[16] = O);
964
+ children: g
965
+ }), n[15] = g, n[16] = O);
966
966
  let k;
967
967
  n[17] !== O || n[18] !== D ? (k = /* @__PURE__ */ Q(_e, {
968
968
  direction: "column",
@@ -1277,7 +1277,7 @@ var Mn = (e) => {
1277
1277
  let a;
1278
1278
  t[2] === Symbol.for("react.memo_cache_sentinel") ? (a = { placement: "bottom-start" }, t[2] = a) : a = t[2];
1279
1279
  let o;
1280
- return t[3] !== i || t[4] !== n.contextMenuActions ? (o = /* @__PURE__ */ Z(y, {
1280
+ return t[3] !== i || t[4] !== n.contextMenuActions ? (o = /* @__PURE__ */ Z(g, {
1281
1281
  actions: n.contextMenuActions,
1282
1282
  positioning: a,
1283
1283
  children: i
@@ -1832,7 +1832,7 @@ var _r = {
1832
1832
  ..._r,
1833
1833
  ...n
1834
1834
  };
1835
- return Nt()(Mt((e) => ({
1835
+ return Mt()(jt((e) => ({
1836
1836
  ...r,
1837
1837
  openSidenav: () => e((e) => ({
1838
1838
  ...e,
@@ -1869,7 +1869,7 @@ var _r = {
1869
1869
  reset: () => e(_r)
1870
1870
  }), {
1871
1871
  name: yr(t),
1872
- storage: jt(z),
1872
+ storage: At(z),
1873
1873
  partialize: Sr
1874
1874
  }));
1875
1875
  }, wr = /* @__PURE__ */ new Map(), Tr = (e, t) => {
@@ -1882,7 +1882,7 @@ var _r = {
1882
1882
  return wr.set(e, r), r;
1883
1883
  }, Er = (e, t, n) => {
1884
1884
  let r = X(3), i;
1885
- return r[0] !== n || r[1] !== e ? (i = Tr(e, n), r[0] = n, r[1] = e, r[2] = i) : i = r[2], At(i, t);
1885
+ return r[0] !== n || r[1] !== e ? (i = Tr(e, n), r[0] = n, r[1] = e, r[2] = i) : i = r[2], kt(i, t);
1886
1886
  }, Dr = (e) => {
1887
1887
  let t = X(2), { children: n } = e;
1888
1888
  if (!n) return null;
@@ -1920,10 +1920,10 @@ var _r = {
1920
1920
  }
1921
1921
  return t;
1922
1922
  }, Pr = (e) => {
1923
- let t = X(43), { storageKey: n, sections: r, activeNodeId: i, contextActions: a, header: o, footer: s, width: c, closable: l, emptyLabel: u, defaultExpandedSections: d, linkComponent: f, onNavigate: p, onOpenChange: m, resizable: g, defaultWidth: _, minWidth: v, maxWidth: b, virtualize: x } = e, S;
1923
+ let t = X(43), { storageKey: n, sections: r, activeNodeId: i, contextActions: a, header: o, footer: s, width: c, closable: l, emptyLabel: u, defaultExpandedSections: d, linkComponent: f, onNavigate: p, onOpenChange: m, resizable: _, defaultWidth: v, minWidth: y, maxWidth: b, virtualize: x } = e, S;
1924
1924
  t[0] === a ? S = t[1] : (S = a === void 0 ? [] : a, t[0] = a, t[1] = S);
1925
- let w = S, T = l === void 0 || l, E = u === void 0 ? "No items available." : u, D = g === void 0 || g, O = v === void 0 ? Ar : v, k = b === void 0 ? jr : b, A = x !== void 0 && x, j = Je(null), M;
1926
- t[2] !== _ || t[3] !== c ? (M = Nr(c, _), t[2] = _, t[3] = c, t[4] = M) : M = t[4];
1925
+ let w = S, T = l === void 0 || l, E = u === void 0 ? "No items available." : u, D = _ === void 0 || _, O = y === void 0 ? Ar : y, k = b === void 0 ? jr : b, A = x !== void 0 && x, j = Je(null), M;
1926
+ t[2] !== v || t[3] !== c ? (M = Nr(c, v), t[2] = v, t[3] = c, t[4] = M) : M = t[4];
1927
1927
  let N = M, P;
1928
1928
  t[5] === d ? P = t[6] : (P = d ? { expandedSections: d } : {}, t[5] = d, t[6] = P);
1929
1929
  let F;
@@ -2010,7 +2010,7 @@ var _r = {
2010
2010
  ]
2011
2011
  }), t[35] = ae, t[36] = ce, t[37] = le, t[38] = ie, t[39] = ue) : ue = t[39];
2012
2012
  let de = ue, W;
2013
- return t[40] !== de || t[41] !== w ? (W = /* @__PURE__ */ Z(y, {
2013
+ return t[40] !== de || t[41] !== w ? (W = /* @__PURE__ */ Z(g, {
2014
2014
  actions: w,
2015
2015
  closeOnSelect: !1,
2016
2016
  children: de
@@ -2046,7 +2046,7 @@ var Vr = { tabOverrides: {} }, Hr = "pstdio/ui/tab-visibility", Ur = (e) => `${H
2046
2046
  ...e,
2047
2047
  [t]: n
2048
2048
  };
2049
- }, Kr = (e, t, n) => Gr(e, t, Wr(e[t], n) === "hidden" ? "shown" : "hidden"), qr = (e) => ({ tabOverrides: e.tabOverrides }), Jr = (e) => Nt()(Mt((e) => ({
2049
+ }, Kr = (e, t, n) => Gr(e, t, Wr(e[t], n) === "hidden" ? "shown" : "hidden"), qr = (e) => ({ tabOverrides: e.tabOverrides }), Jr = (e) => Mt()(jt((e) => ({
2050
2050
  ...Vr,
2051
2051
  setTab: (t, n) => e((e) => ({
2052
2052
  ...e,
@@ -2063,7 +2063,7 @@ var Vr = { tabOverrides: {} }, Hr = "pstdio/ui/tab-visibility", Ur = (e) => `${H
2063
2063
  reset: () => e(Vr)
2064
2064
  }), {
2065
2065
  name: Ur(e.storageKey),
2066
- storage: jt(z),
2066
+ storage: At(z),
2067
2067
  partialize: qr
2068
2068
  })), Yr = /* @__PURE__ */ new Map(), Xr = (e) => {
2069
2069
  let t = Yr.get(e);
@@ -2072,7 +2072,7 @@ var Vr = { tabOverrides: {} }, Hr = "pstdio/ui/tab-visibility", Ur = (e) => `${H
2072
2072
  return Yr.set(e, n), n;
2073
2073
  }, Zr = (e, t) => {
2074
2074
  let n = X(2), r;
2075
- return n[0] === e ? r = n[1] : (r = Xr(e), n[0] = e, n[1] = r), At(r, t);
2075
+ return n[0] === e ? r = n[1] : (r = Xr(e), n[0] = e, n[1] = r), kt(r, t);
2076
2076
  }, Qr = (e, t) => typeof e == "string" ? e : t, $r = (e, t) => e ?? (t ? "hidden" : "shown"), ei = (e) => e.canHide === !0 || e.hiddenByDefault === !0, ti = (e, t) => $r(t[e.id], e.hiddenByDefault) === "shown", ni = (e, t) => {
2077
2077
  let n = !1, r = [];
2078
2078
  for (let i of e) {
@@ -2101,7 +2101,7 @@ var Vr = { tabOverrides: {} }, Hr = "pstdio/ui/tab-visibility", Ur = (e) => `${H
2101
2101
  continue;
2102
2102
  }
2103
2103
  let e = ni(a.nodes, n);
2104
- if (e.length === 0 && !a.emptyState) {
2104
+ if (e.length === 0 && !a.emptyState && !a.actions?.length) {
2105
2105
  r = !0;
2106
2106
  continue;
2107
2107
  }
@@ -2115,13 +2115,13 @@ var Vr = { tabOverrides: {} }, Hr = "pstdio/ui/tab-visibility", Ur = (e) => `${H
2115
2115
  i.push(a);
2116
2116
  }
2117
2117
  return r ? i : e;
2118
- }, ai = (e, t) => e === "shown" ? t.visibleIcon : t.hiddenIcon, oi = (e, t, n, r) => {
2119
- let i = e.hiddenByDefault === !0, a = $r(t[e.id], i);
2118
+ }, ai = (e, t) => e === "shown" ? t.visibleIcon : t.hiddenIcon, oi = (e, t, n, r, i) => {
2119
+ let a = e.hiddenByDefault === !0, o = $r(n[e.id], a);
2120
2120
  return {
2121
2121
  key: `section:${e.id}`,
2122
- label: e.label ?? e.id,
2123
- onClick: () => n.onToggleSection(e.id, i),
2124
- endContent: ai(a, r)
2122
+ label: t,
2123
+ onClick: () => r.onToggleSection(e.id, a),
2124
+ endContent: ai(o, i)
2125
2125
  };
2126
2126
  }, si = (e, t, n, r) => {
2127
2127
  let i = e.hiddenByDefault === !0, a = $r(t[e.id], i);
@@ -2141,7 +2141,8 @@ var Vr = { tabOverrides: {} }, Hr = "pstdio/ui/tab-visibility", Ur = (e) => `${H
2141
2141
  }, s = (e) => {
2142
2142
  let a = [];
2143
2143
  for (let o of e) {
2144
- ei(o) && a.push(oi(o, t, r, i));
2144
+ let e = o.label ?? o.menuLabel;
2145
+ e && ei(o) && a.push(oi(o, e, t, r, i));
2145
2146
  for (let e of o.nodes) ei(e) && a.push(si(e, n, r, i));
2146
2147
  }
2147
2148
  return a;
@@ -2199,7 +2200,7 @@ var Vr = { tabOverrides: {} }, Hr = "pstdio/ui/tab-visibility", Ur = (e) => `${H
2199
2200
  disabled: l
2200
2201
  }, t[0] = l, t[1] = n.id, t[2] = u) : u = t[2];
2201
2202
  let { attributes: d, listeners: f, setNodeRef: p, setActivatorNodeRef: m, transform: h, transition: g, isDragging: _, isSorting: v } = Dt(u), y = r ? "" : void 0, b = _ ? "" : void 0, x;
2202
- t[3] === h ? x = t[4] : (x = kt.Translate.toString(h), t[3] = h, t[4] = x);
2203
+ t[3] === h ? x = t[4] : (x = Nt.Translate.toString(h), t[3] = h, t[4] = x);
2203
2204
  let S;
2204
2205
  t[5] !== d || t[6] !== a ? (S = a ? d : {}, t[5] = d, t[6] = a, t[7] = S) : S = t[7];
2205
2206
  let C;
@@ -2421,7 +2422,7 @@ var { withProvider: Si, withContext: Ci } = Ie({ recipe: te }), wi = Si("div", "
2421
2422
  disabled: _
2422
2423
  }, t[0] = _, t[1] = o.id, t[2] = v) : v = t[2];
2423
2424
  let { attributes: y, listeners: b, setNodeRef: x, transform: S, transition: C, isDragging: w } = Dt(v), T;
2424
- t[3] === S ? T = t[4] : (T = kt.Transform.toString(S), t[3] = S, t[4] = T);
2425
+ t[3] === S ? T = t[4] : (T = Nt.Transform.toString(S), t[3] = S, t[4] = T);
2425
2426
  let E;
2426
2427
  t[5] !== T || t[6] !== C ? (E = {
2427
2428
  transform: T,
@@ -2923,7 +2924,7 @@ var Ri = (e) => {
2923
2924
  sectionOrder: e.sectionOrder,
2924
2925
  nodeOrderBySection: e.nodeOrderBySection,
2925
2926
  sectionSlotById: e.sectionSlotById
2926
- }), Xi = (e) => Nt()(Mt((e) => ({
2927
+ }), Xi = (e) => Mt()(jt((e) => ({
2927
2928
  ...Gi,
2928
2929
  setSectionOrder: (t) => e((e) => ({
2929
2930
  ...e,
@@ -2958,7 +2959,7 @@ var Ri = (e) => {
2958
2959
  reset: () => e(Gi)
2959
2960
  }), {
2960
2961
  name: qi(e.storageKey),
2961
- storage: jt(z),
2962
+ storage: At(z),
2962
2963
  partialize: Yi
2963
2964
  })), Zi = /* @__PURE__ */ new Map(), Qi = (e) => {
2964
2965
  let t = Zi.get(e);
@@ -2967,8 +2968,11 @@ var Ri = (e) => {
2967
2968
  return Zi.set(e, n), n;
2968
2969
  }, $i = (e, t) => {
2969
2970
  let n = X(2), r;
2970
- return n[0] === e ? r = n[1] : (r = Qi(e), n[0] = e, n[1] = r), At(r, t);
2971
+ return n[0] === e ? r = n[1] : (r = Qi(e), n[0] = e, n[1] = r), kt(r, t);
2971
2972
  }, ea = (e, t) => {
2973
+ let n = t.filter((e) => e.canReorder !== !1), r = 0, i = e.map((e) => e.canReorder === !1 ? e : n[r++]).filter((e) => !!e);
2974
+ return i.push(...n.slice(r)), i.every((e, n) => e === t[n]) && i.length === t.length ? t : i;
2975
+ }, ta = (e, t) => {
2972
2976
  if (t.length === 0) return e;
2973
2977
  let n = new Map(e.map((e, t) => [e.id, t])), r = /* @__PURE__ */ new Set(), i = [];
2974
2978
  for (let a of t) {
@@ -2984,34 +2988,42 @@ var Ri = (e) => {
2984
2988
  }
2985
2989
  }
2986
2990
  return a ? i : e;
2987
- }, ta = (e, t, n) => {
2988
- let r = !1, i = ea(e, t);
2989
- i !== e && (r = !0);
2990
- let a = new Map(e.flatMap((e) => e.nodes.map((e) => [e.id, e]))), o = new Set(Object.entries(n).filter(([t]) => e.some((e) => e.id === t)).flatMap(([, e]) => e.filter((e) => a.has(e)))), s = [];
2991
- for (let e of i) {
2991
+ }, na = (e, t, n) => {
2992
+ let r = new Map(e.flatMap((e) => e.nodes.map((e) => [e.id, e]))), i = Object.entries(n).flatMap(([t, n]) => {
2993
+ if (e.some((e) => e.id === t)) return [];
2994
+ let i = n.map((e) => r.get(e)).find((e) => e && e.canReorder !== !1);
2995
+ return i ? [{
2996
+ id: t,
2997
+ moveScope: i.moveScope,
2998
+ nodes: []
2999
+ }] : [];
3000
+ }), a = i.length > 0 ? [...e, ...i] : e, o = a !== e, s = ea(a, ta(a, t));
3001
+ s !== a && (o = !0);
3002
+ let c = new Set(Object.entries(n).filter(([e]) => a.some((t) => t.id === e)).flatMap(([, e]) => e.filter((e) => r.has(e) && r.get(e)?.canReorder !== !1))), l = [];
3003
+ for (let e of s) {
2992
3004
  let t = n[e.id];
2993
3005
  if (!(e.id in n)) {
2994
- let t = e.nodes.filter((e) => !o.has(e.id));
2995
- t.length === e.nodes.length ? s.push(e) : (r = !0, s.push({
3006
+ let t = e.nodes.filter((e) => !c.has(e.id));
3007
+ t.length === e.nodes.length ? l.push(e) : (o = !0, l.push({
2996
3008
  ...e,
2997
3009
  nodes: t
2998
3010
  }));
2999
3011
  continue;
3000
3012
  }
3001
3013
  let i = (t ?? []).flatMap((e) => {
3002
- let t = a.get(e);
3003
- return t ? [t] : [];
3004
- }), c = e.nodes.filter((e) => !o.has(e.id)), l = [...i, ...c];
3005
- l.length !== e.nodes.length || l.some((t, n) => t !== e.nodes[n]) ? (r = !0, s.push({
3014
+ let t = r.get(e);
3015
+ return t && t.canReorder !== !1 ? [t] : [];
3016
+ }), a = e.nodes.filter((e) => !c.has(e.id)), s = ea(e.nodes, [...i, ...a]);
3017
+ s.length !== e.nodes.length || s.some((t, n) => t !== e.nodes[n]) ? (o = !0, l.push({
3006
3018
  ...e,
3007
- nodes: l
3008
- })) : s.push(e);
3019
+ nodes: s
3020
+ })) : l.push(e);
3009
3021
  }
3010
- return r ? s : e;
3011
- }, na = {
3022
+ return o ? l : e;
3023
+ }, ra = {
3012
3024
  sectionOverrides: {},
3013
3025
  nodeOverrides: {}
3014
- }, ra = "pstdio/ui/tree-list-visibility", ia = (e) => `${ra}/${e}`, aa = (e, t) => e ?? (t ? "hidden" : "shown"), oa = (e) => e === "hidden" ? "shown" : "hidden", sa = (e, t, n) => {
3026
+ }, ia = "pstdio/ui/tree-list-visibility", aa = (e) => `${ia}/${e}`, oa = (e, t) => e ?? (t ? "hidden" : "shown"), sa = (e) => e === "hidden" ? "shown" : "hidden", ca = (e, t, n) => {
3015
3027
  if (n === void 0) {
3016
3028
  if (!(t in e)) return e;
3017
3029
  let { [t]: n, ...r } = e;
@@ -3021,83 +3033,83 @@ var Ri = (e) => {
3021
3033
  ...e,
3022
3034
  [t]: n
3023
3035
  };
3024
- }, ca = (e, t, n) => sa(e, t, oa(aa(e[t], n))), la = (e) => ({
3036
+ }, la = (e, t, n) => ca(e, t, sa(oa(e[t], n))), ua = (e) => ({
3025
3037
  sectionOverrides: e.sectionOverrides,
3026
3038
  nodeOverrides: e.nodeOverrides
3027
- }), ua = (e) => Nt()(Mt((e) => ({
3028
- ...na,
3039
+ }), da = (e) => Mt()(jt((e) => ({
3040
+ ...ra,
3029
3041
  setSection: (t, n) => e((e) => ({
3030
3042
  ...e,
3031
- sectionOverrides: sa(e.sectionOverrides, t, n)
3043
+ sectionOverrides: ca(e.sectionOverrides, t, n)
3032
3044
  })),
3033
3045
  setNode: (t, n) => e((e) => ({
3034
3046
  ...e,
3035
- nodeOverrides: sa(e.nodeOverrides, t, n)
3047
+ nodeOverrides: ca(e.nodeOverrides, t, n)
3036
3048
  })),
3037
3049
  toggleSection: (t, n) => e((e) => ({
3038
3050
  ...e,
3039
- sectionOverrides: ca(e.sectionOverrides, t, n)
3051
+ sectionOverrides: la(e.sectionOverrides, t, n)
3040
3052
  })),
3041
3053
  toggleNode: (t, n) => e((e) => ({
3042
3054
  ...e,
3043
- nodeOverrides: ca(e.nodeOverrides, t, n)
3055
+ nodeOverrides: la(e.nodeOverrides, t, n)
3044
3056
  })),
3045
3057
  clearSection: (t) => e((e) => ({
3046
3058
  ...e,
3047
- sectionOverrides: sa(e.sectionOverrides, t, void 0)
3059
+ sectionOverrides: ca(e.sectionOverrides, t, void 0)
3048
3060
  })),
3049
3061
  clearNode: (t) => e((e) => ({
3050
3062
  ...e,
3051
- nodeOverrides: sa(e.nodeOverrides, t, void 0)
3063
+ nodeOverrides: ca(e.nodeOverrides, t, void 0)
3052
3064
  })),
3053
- reset: () => e(na)
3065
+ reset: () => e(ra)
3054
3066
  }), {
3055
- name: ia(e.storageKey),
3056
- storage: jt(z),
3057
- partialize: la
3058
- })), da = /* @__PURE__ */ new Map(), fa = (e) => {
3059
- let t = da.get(e);
3067
+ name: aa(e.storageKey),
3068
+ storage: At(z),
3069
+ partialize: ua
3070
+ })), fa = /* @__PURE__ */ new Map(), pa = (e) => {
3071
+ let t = fa.get(e);
3060
3072
  if (t) return t;
3061
- let n = ua({ storageKey: e });
3062
- return da.set(e, n), n;
3063
- }, pa = (e, t) => {
3073
+ let n = da({ storageKey: e });
3074
+ return fa.set(e, n), n;
3075
+ }, ma = (e, t) => {
3064
3076
  let n = X(2), r;
3065
- return n[0] === e ? r = n[1] : (r = fa(e), n[0] = e, n[1] = r), At(r, t);
3066
- }, ma = [], ha = (e, t) => typeof e == "string" && t.some((t) => t.id === e), ga = (e) => {
3077
+ return n[0] === e ? r = n[1] : (r = pa(e), n[0] = e, n[1] = r), kt(r, t);
3078
+ }, ha = [], ga = (e, t) => typeof e == "string" && t.some((t) => t.id === e), _a = (e) => {
3067
3079
  let t = e.toLowerCase().split("."), n = [];
3068
3080
  for (let e = 1; e < t.length; e += 1) n.push(t.slice(e).join("."));
3069
3081
  return n;
3070
- }, _a = (e, t, n) => {
3082
+ }, va = (e, t, n) => {
3071
3083
  if (n) return e.defaults.folder;
3072
3084
  let r = e.fileNames[t.toLowerCase()];
3073
3085
  if (r) return r;
3074
- for (let n of ga(t)) {
3086
+ for (let n of _a(t)) {
3075
3087
  let t = e.fileExtensions[n];
3076
3088
  if (t) return t;
3077
3089
  }
3078
3090
  return e.defaults.file;
3079
- }, va = (e, t) => {
3091
+ }, ya = (e, t) => {
3080
3092
  if (t.fontId) {
3081
3093
  let n = e.fonts.find((n) => n.fontFamily === `${e.id}-${t.fontId}`);
3082
3094
  if (n) return n.fontFamily;
3083
3095
  }
3084
3096
  return e.fonts[0]?.fontFamily;
3085
- }, ya = (e) => {
3097
+ }, ba = (e) => {
3086
3098
  let t = /^\\([0-9a-fA-F]+)$/.exec(e);
3087
3099
  return t ? String.fromCodePoint(Number.parseInt(t[1], 16)) : e;
3088
- }, ba = (e, t, n = !1) => {
3100
+ }, xa = (e, t, n = !1) => {
3089
3101
  if (!e) return;
3090
- let r = _a(e, t, n);
3102
+ let r = va(e, t, n);
3091
3103
  if (!r) return;
3092
3104
  let i = e.definitions[r];
3093
3105
  if (!i?.fontCharacter) return;
3094
- let a = va(e, i);
3106
+ let a = ya(e, i);
3095
3107
  if (a) return {
3096
3108
  fontFamily: a,
3097
- fontCharacter: ya(i.fontCharacter),
3109
+ fontCharacter: ba(i.fontCharacter),
3098
3110
  fontColor: i.fontColor
3099
3111
  };
3100
- }, xa = "data-pstdio-file-icon-fonts", Sa = (e) => {
3112
+ }, Sa = "data-pstdio-file-icon-fonts", Ca = (e) => {
3101
3113
  let t = e.src.map((e) => `url("${e.url}")${e.format ? ` format("${e.format}")` : ""}`).join(", ");
3102
3114
  return [
3103
3115
  "@font-face {",
@@ -3107,27 +3119,27 @@ var Ri = (e) => {
3107
3119
  ` font-style: ${e.style ?? "normal"};`,
3108
3120
  "}"
3109
3121
  ].join("\n");
3110
- }, Ca = (e, t) => {
3122
+ }, wa = (e, t) => {
3111
3123
  if (typeof document > "u") return;
3112
- let n = document.querySelector(`style[${xa}]`);
3113
- n || (n = document.createElement("style"), n.setAttribute(xa, ""), document.head.appendChild(n));
3124
+ let n = document.querySelector(`style[${Sa}]`);
3125
+ n || (n = document.createElement("style"), n.setAttribute(Sa, ""), document.head.appendChild(n));
3114
3126
  let r = t.find((t) => t.id === e);
3115
- n.textContent = (r?.fonts ?? []).map(Sa).join("\n\n");
3116
- }, wa = "file-icon-theme-preference", Ta = (e) => e.find((e) => e.id.endsWith(".seti"))?.id ?? e[0]?.id ?? null, Ea = We(null), Da = (e) => {
3117
- if (typeof window > "u") return Ta(e);
3118
- let t = z().getItem(wa);
3119
- return ha(t, e) ? t : Ta(e);
3120
- }, Oa = (e) => {
3121
- let t = X(18), { children: n, themePreferences: r } = e, i = r === void 0 ? ma : r, a;
3122
- t[0] === i ? a = t[1] : (a = () => Da(i), t[0] = i, t[1] = a);
3127
+ n.textContent = (r?.fonts ?? []).map(Ca).join("\n\n");
3128
+ }, Ta = "file-icon-theme-preference", Ea = (e) => e.find((e) => e.id.endsWith(".seti"))?.id ?? e[0]?.id ?? null, Da = We(null), Oa = (e) => {
3129
+ if (typeof window > "u") return Ea(e);
3130
+ let t = z().getItem(Ta);
3131
+ return ga(t, e) ? t : Ea(e);
3132
+ }, ka = (e) => {
3133
+ let t = X(18), { children: n, themePreferences: r } = e, i = r === void 0 ? ha : r, a;
3134
+ t[0] === i ? a = t[1] : (a = () => Oa(i), t[0] = i, t[1] = a);
3123
3135
  let [o, s] = $(a), c, l;
3124
3136
  t[2] !== o || t[3] !== i ? (c = () => {
3125
- let e = ha(o, i) ? o : Ta(i);
3137
+ let e = ga(o, i) ? o : Ea(i);
3126
3138
  if (e !== o) {
3127
3139
  s(e);
3128
3140
  return;
3129
3141
  }
3130
- Ca(e, i), typeof window < "u" && e && z().setItem(wa, e);
3142
+ wa(e, i), typeof window < "u" && e && z().setItem(Ta, e);
3131
3143
  }, l = [o, i], t[2] = o, t[3] = i, t[4] = c, t[5] = l) : (c = t[4], l = t[5]), qe(c, l);
3132
3144
  let u;
3133
3145
  if (t[6] !== o || t[7] !== i) {
@@ -3142,16 +3154,16 @@ var Ri = (e) => {
3142
3154
  setFileIconThemePreference: s
3143
3155
  }, t[11] = d, t[12] = o, t[13] = i, t[14] = f) : f = t[14];
3144
3156
  let p;
3145
- return t[15] !== n || t[16] !== f ? (p = /* @__PURE__ */ Z(Ea, {
3157
+ return t[15] !== n || t[16] !== f ? (p = /* @__PURE__ */ Z(Da, {
3146
3158
  value: f,
3147
3159
  children: n
3148
3160
  }), t[15] = n, t[16] = f, t[17] = p) : p = t[17], p;
3149
- }, ka = () => {
3150
- let e = Ke(Ea);
3161
+ }, Aa = () => {
3162
+ let e = Ke(Da);
3151
3163
  if (!e) throw Error("useFileIconThemePreference must be used within a FileIconThemePreferenceProvider");
3152
3164
  return e;
3153
- }, Aa = (e, t = {}) => {
3154
- let { isDirectory: n = !1, theme: r, size: a = 16 } = t, o = ba(r, e, n);
3165
+ }, ja = (e, t = {}) => {
3166
+ let { isDirectory: n = !1, theme: r, size: a = 16 } = t, o = xa(r, e, n);
3155
3167
  if (o) {
3156
3168
  let e = {
3157
3169
  fontFamily: `"${o.fontFamily}"`,
@@ -3171,6 +3183,6 @@ var Ri = (e) => {
3171
3183
  return /* @__PURE__ */ Z(s, { size: a });
3172
3184
  };
3173
3185
  //#endregion
3174
- export { Ft as Activity, o as ActivityAvatar, r as ActivityComment, Pt as ActivityComposer, n as ActivityEvent, t as ActivityFeed, a as ActivityHeader, l as ActivityReply, p as ActivityRoot, d as ActivityTimeline, c as AlertMessage, Mn as AttachedMenu, Pn as AttachedPanel, k as AttachmentChip, Kn as Breadcrumb, Fn as BubbleButton, In as BubblePanel, pe as ChakraProvider, e as Checkbox, D as Chip, Jn as ContentPlaceholder, Yn as ContentPlaceholderLabel, Xn as CopyButton, It as DEFAULT_PALETTE_ASSET_LIMIT, Ln as DeleteConfirmationModal, L as EmptyState, Zn as ErrorBoundary, Oa as FileIconThemePreferenceProvider, Rn as FolderPicker, zn as FolderPickerDialog, g as Header, fn as HorizontalMenuStack, ir as IconColorPicker, sr as IntegrationCard, pn as ItemSection, b as ListRow, kn as NotificationCenter, gn as PANEL_HEADER_CONTROL_SIZE, hn as PANEL_HEADER_HEIGHT, _n as PANEL_HEADER_TAB_SIZE, en as Palette, un as PaletteShortcut, ee as Radio, R as RadioGroup, S as ResizableSplitLayout, _ as ResourceActionMenu, u as ResourceBadge, y as ResourceContextMenu, h as ScrollArea, Qt as SearchModalContent, v as SearchableMenu, pr as SegmentedControl, N as SessionIndicator, Pr as Sidenav, ar as SimpleCard, or as SimpleCardBody, A as Slider, s as Switch, Ii as TagEditor, Di as TagEditorHeading, Ri as TagEditorSaveBar, Wi as TagSettingsPanel, er as TagSwatch, ue as ThemePreferenceProvider, hr as Toaster, m as Tooltip, C as TreeList, x as TreeListDragProvider, yi as WindowTabs, Ei as WindowTitleBar, I as WorkspaceBadge, Ca as applyFileIconThemePreference, ie as applyThemePreference, ta as applyTreeListOrder, ui as buildTabVisibilityMenuActions, ci as buildTreeVisibilityMenuActions, w as createGlyphIcon, V as createMonacoThemeFromVsCodeTheme, H as createThemePreferenceFromVsCodeTheme, ma as defaultFileIconThemePreferences, U as defaultThemePreferences, Ht as filterPaletteEntries, ri as filterVisibleNodes, ii as filterVisibleSections, li as filterVisibleTabs, i as getFileTypeIcon, E as getIconComponent, oe as getInitialThemePreference, Xr as getTabVisibilityStore, se as getThemePreferenceClassName, le as getThemePreferenceClassNames, re as getThemePreferenceMode, Qi as getTreeListOrderStore, fa as getTreeListVisibilityStore, P as handleDialogAcceptShortcut, f as installPrismGlobal, ha as isFileIconThemePreference, ae as isThemePreference, O as optionColors, T as optionIcons, ne as psTheme, Aa as resolveFileIconElement, ba as resolveFileIconGlyph, F as resolveSessionIndicatorColor, M as resolveSessionIndicatorIcon, $r as resolveVisibility, j as sessionCompletionStatuses, mr as toaster, ka as useFileIconThemePreference, Er as useSidenavStore, Zr as useTabVisibilityStore, ce as useThemePreference, $i as useTreeListOrderStore, pa as useTreeListVisibilityStore };
3186
+ export { Ft as Activity, o as ActivityAvatar, r as ActivityComment, Pt as ActivityComposer, n as ActivityEvent, t as ActivityFeed, a as ActivityHeader, l as ActivityReply, p as ActivityRoot, d as ActivityTimeline, c as AlertMessage, Mn as AttachedMenu, Pn as AttachedPanel, k as AttachmentChip, Kn as Breadcrumb, Fn as BubbleButton, In as BubblePanel, pe as ChakraProvider, e as Checkbox, D as Chip, Jn as ContentPlaceholder, Yn as ContentPlaceholderLabel, Xn as CopyButton, It as DEFAULT_PALETTE_ASSET_LIMIT, Ln as DeleteConfirmationModal, L as EmptyState, Zn as ErrorBoundary, ka as FileIconThemePreferenceProvider, Rn as FolderPicker, zn as FolderPickerDialog, _ as Header, fn as HorizontalMenuStack, ir as IconColorPicker, sr as IntegrationCard, pn as ItemSection, b as ListRow, kn as NotificationCenter, gn as PANEL_HEADER_CONTROL_SIZE, hn as PANEL_HEADER_HEIGHT, _n as PANEL_HEADER_TAB_SIZE, en as Palette, un as PaletteShortcut, ee as Radio, R as RadioGroup, S as ResizableSplitLayout, y as ResourceActionMenu, u as ResourceBadge, g as ResourceContextMenu, h as ScrollArea, Qt as SearchModalContent, v as SearchableMenu, pr as SegmentedControl, N as SessionIndicator, Pr as Sidenav, ar as SimpleCard, or as SimpleCardBody, A as Slider, s as Switch, Ii as TagEditor, Di as TagEditorHeading, Ri as TagEditorSaveBar, Wi as TagSettingsPanel, er as TagSwatch, ue as ThemePreferenceProvider, hr as Toaster, m as Tooltip, C as TreeList, x as TreeListDragProvider, yi as WindowTabs, Ei as WindowTitleBar, I as WorkspaceBadge, wa as applyFileIconThemePreference, ie as applyThemePreference, na as applyTreeListOrder, ui as buildTabVisibilityMenuActions, ci as buildTreeVisibilityMenuActions, w as createGlyphIcon, V as createMonacoThemeFromVsCodeTheme, H as createThemePreferenceFromVsCodeTheme, ha as defaultFileIconThemePreferences, U as defaultThemePreferences, Ht as filterPaletteEntries, ri as filterVisibleNodes, ii as filterVisibleSections, li as filterVisibleTabs, i as getFileTypeIcon, E as getIconComponent, oe as getInitialThemePreference, Xr as getTabVisibilityStore, se as getThemePreferenceClassName, le as getThemePreferenceClassNames, re as getThemePreferenceMode, Qi as getTreeListOrderStore, pa as getTreeListVisibilityStore, P as handleDialogAcceptShortcut, f as installPrismGlobal, ga as isFileIconThemePreference, ae as isThemePreference, O as optionColors, T as optionIcons, ne as psTheme, ja as resolveFileIconElement, xa as resolveFileIconGlyph, F as resolveSessionIndicatorColor, M as resolveSessionIndicatorIcon, $r as resolveVisibility, j as sessionCompletionStatuses, mr as toaster, Aa as useFileIconThemePreference, Er as useSidenavStore, Zr as useTabVisibilityStore, ce as useThemePreference, $i as useTreeListOrderStore, ma as useTreeListVisibilityStore };
3175
3187
 
3176
3188
  //# sourceMappingURL=index.js.map