@ynput/ayon-frontend-shared 0.7.2 → 0.7.4

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 (66) hide show
  1. package/LICENSE +105 -0
  2. package/dist/DetailsPanel.es.js +1088 -969
  3. package/dist/ListTable.es.js +70 -67
  4. package/dist/NewEntity.es.js +8 -5
  5. package/dist/ProjectTreeTable.es.js +4134 -3825
  6. package/dist/ProjectsTable.es.js +526 -0
  7. package/dist/Slicer.es.js +75 -73
  8. package/dist/Views.es.js +86 -84
  9. package/dist/chunks/Actions.es.js +4 -2
  10. package/dist/chunks/ColumnDropIndicator.es.js +21 -18
  11. package/dist/chunks/ColumnDropIndicator.styled.es.js +14 -13
  12. package/dist/chunks/ColumnHeaderMenuUI.es.js +9 -7
  13. package/dist/chunks/DeleteEntitiesConfirmDialog.es.js +12 -11
  14. package/dist/chunks/EmptyPlaceholder.es.js +9 -8
  15. package/dist/chunks/EntityPath.es.js +15 -14
  16. package/dist/chunks/EntityPickerDialog.es.js +5 -3
  17. package/dist/chunks/EntityTooltip.es.js +10 -8
  18. package/dist/chunks/EntityUpdatesContext.es.js +13 -12
  19. package/dist/chunks/Feed.es.js +12 -11
  20. package/dist/chunks/FilterErrorActions.es.js +6 -4
  21. package/dist/chunks/GroupSettingsFallback.es.js +75 -0
  22. package/dist/chunks/JsonViewer.es.js +3 -2
  23. package/dist/chunks/Menu.es.js +105 -103
  24. package/dist/chunks/MetaWidget.es.js +278 -275
  25. package/dist/chunks/PlayableIcon.es.js +868 -862
  26. package/dist/chunks/ProjectContext.es.js +5 -4
  27. package/dist/chunks/RepresentationsList.es.js +3 -2
  28. package/dist/chunks/ReviewablesSelector.es.js +3471 -2067
  29. package/dist/chunks/SimpleTable.es.js +492 -402
  30. package/dist/chunks/Slicer.es.js +936 -896
  31. package/dist/chunks/TableExportContextInstance.es.js +437 -339
  32. package/dist/chunks/TableSettingsFallback.es.js +5 -3
  33. package/dist/chunks/ThumbnailSimple.es.js +15 -13
  34. package/dist/chunks/VideoPlayer.es.js +14 -12
  35. package/dist/chunks/Watchers.es.js +97 -95
  36. package/dist/chunks/getProjectDisplayName.es.js +4 -0
  37. package/dist/chunks/getUris.es.js +375 -374
  38. package/dist/chunks/useHierarchySelection.es.js +5 -3
  39. package/dist/chunks/useLoadModule.es.js +10 -8
  40. package/dist/chunks/viewUpdateHelper.es.js +12 -10
  41. package/dist/components.es.js +1488 -1186
  42. package/dist/context.es.js +589 -539
  43. package/dist/hooks.es.js +169 -212
  44. package/dist/index.es.js +17 -12
  45. package/dist/types/Actions.d.ts +17 -14
  46. package/dist/types/ContextMenu.d.ts +17 -14
  47. package/dist/types/DetailsPanel.d.ts +17 -14
  48. package/dist/types/EntityPickerDialog.d.ts +17 -14
  49. package/dist/types/Feed.d.ts +17 -14
  50. package/dist/types/ListTable.d.ts +17 -14
  51. package/dist/types/NewEntity.d.ts +17 -14
  52. package/dist/types/ProjectTreeTable.d.ts +749 -15
  53. package/dist/types/ProjectsTable.d.ts +228 -0
  54. package/dist/types/RepresentationsList.d.ts +17 -14
  55. package/dist/types/SimpleTable.d.ts +31 -14
  56. package/dist/types/Slicer.d.ts +18 -14
  57. package/dist/types/Views.d.ts +17 -14
  58. package/dist/types/api.d.ts +17 -14
  59. package/dist/types/components.d.ts +822 -25
  60. package/dist/types/context.d.ts +53 -15
  61. package/dist/types/hooks.d.ts +17 -14
  62. package/dist/types/index.d.ts +17 -14
  63. package/dist/types/util.d.ts +21 -14
  64. package/dist/util.es.js +152 -144
  65. package/package.json +16 -9
  66. /package/dist/{ContextMenuContextInstance.css → style.css} +0 -0
@@ -4,14 +4,16 @@ import K from "clsx";
4
4
  import v, { css as Ot } from "styled-components";
5
5
  import { Icon as ee, getTextColor as zn, Dropdown as cn, FormRow as Je, Dialog as dn, InputText as et, IconSelect as Fn, ColorPicker as Hn, Button as xe, SaveButton as Wn, TagsSelect as Kn, BorderedSection as zt, theme as Ve, getMixedCounts as Un, applyMixedChange as Vn } from "@ynput/ayon-react-components";
6
6
  import "@module-federation/enhanced/runtime";
7
+ import "@ynput/ayon-addon/host";
7
8
  import { toast as we } from "react-toastify";
8
9
  import { bA as Bn, bt as Tt, bJ as Gn, bB as jn, a as Yn } from "./searchTerms.es.js";
9
10
  import { bu as qn, d7 as Qn, bF as Jn, L as Zn, a2 as Xn, b$ as at, aZ as er, aK as tr, ci as nr, v as rr, dA as or, dq as ir, cz as ar, aj as sr } from "./getUris.es.js";
10
11
  import "primereact/confirmdialog";
11
- import { x as We, a as lr, d as un } from "./TableExportContextInstance.es.js";
12
+ import { x as We, b as lr, d as un } from "./TableExportContextInstance.es.js";
12
13
  import { upperFirst as He, debounce as cr } from "lodash";
13
14
  import "uuid";
14
15
  import { e as dr, g as Ze, d as yt, b as pn, p as Ft, c as ur, a as pr } from "./iconUtils.es.js";
16
+ import "axios";
15
17
  import "semver";
16
18
  import "./ContextMenuContextInstance.es.js";
17
19
  import "react-dom";
@@ -33,8 +35,9 @@ import { sortingFns as Ae } from "@tanstack/react-table";
33
35
  import { W as Cr, l as _e, L as $e, R as Kt, g as lt, C as Sr, m as Ir } from "./realtimeUpdatesUtils.es.js";
34
36
  import mn, { defaultUrlTransform as Er } from "react-markdown";
35
37
  import gn from "remark-gfm";
36
- import { E as Rr } from "./EntityPickerDialog.es.js";
37
- import { g as Te, a as Nr } from "./getEntityTypeIcon.es.js";
38
+ import "@ynput/ayon-addon";
39
+ import { E as Nr } from "./EntityPickerDialog.es.js";
40
+ import { g as Te, a as Rr } from "./getEntityTypeIcon.es.js";
38
41
  import { g as Lr } from "./getThumbnailUrl.es.js";
39
42
  const Dr = v.div`
40
43
  display: flex;
@@ -107,7 +110,7 @@ const Dr = v.div`
107
110
  if (!m || p.length === 0 || p.length !== e.length) return;
108
111
  const C = Array.from(m.querySelectorAll(".offscreen-chip"));
109
112
  if (C.length !== e.length) return;
110
- const u = parseFloat(getComputedStyle(m).rowGap) || 0, b = C.map((T) => T.getBoundingClientRect().width), h = C[0].getBoundingClientRect().height, x = m.querySelector(".offscreen-more-chip")?.getBoundingClientRect().width || 60, R = (T, S, O) => {
113
+ const u = parseFloat(getComputedStyle(m).rowGap) || 0, b = C.map((T) => T.getBoundingClientRect().width), h = C[0].getBoundingClientRect().height, x = m.querySelector(".offscreen-more-chip")?.getBoundingClientRect().width || 60, N = (T, S, O) => {
111
114
  let W = 1, F = 0;
112
115
  const P = (_, U) => {
113
116
  U ? F = _ : F + u + _ <= O ? F += u + _ : (W++, F = _);
@@ -117,7 +120,7 @@ const Dr = v.div`
117
120
  }, L = () => {
118
121
  const T = m.getBoundingClientRect().width, S = m.offsetHeight, O = h ? Math.max(1, Math.floor((S + u) / (h + u))) : 1;
119
122
  let W = e.length;
120
- for (; W > 1 && R(W, W < e.length ? x : 0, T) > O; )
123
+ for (; W > 1 && N(W, W < e.length ? x : 0, T) > O; )
121
124
  W--;
122
125
  c(
123
126
  (F) => F.visibleCount === W && F.rows === O ? F : { visibleCount: W, rows: O }
@@ -464,7 +467,7 @@ const Dr = v.div`
464
467
  value: u = {},
465
468
  expand: b = {},
466
469
  close: h = {}
467
- } = y || {}, { style: x, className: R, ...L } = m, { style: E, className: T, ...S } = C, { style: O, className: W, ...F } = u, { style: P, className: _, ...U } = b, { style: r, className: f, ...w } = h, D = e.every((k) => k.icon), I = !n || !D, N = !D && o && !i, A = !e.length && t;
470
+ } = y || {}, { style: x, className: N, ...L } = m, { style: E, className: T, ...S } = C, { style: O, className: W, ...F } = u, { style: P, className: _, ...U } = b, { style: r, className: f, ...w } = h, D = e.every((k) => k.icon), I = !n || !D, R = !D && o && !i, A = !e.length && t;
468
471
  return A && (e = [
469
472
  {
470
473
  label: t,
@@ -499,7 +502,7 @@ const Dr = v.div`
499
502
  {
500
503
  icon: k.icon,
501
504
  style: { color: k.color, ...x },
502
- className: R,
505
+ className: N,
503
506
  ...L
504
507
  }
505
508
  ) : null,
@@ -507,8 +510,8 @@ const Dr = v.div`
507
510
  vt,
508
511
  {
509
512
  style: {
510
- color: N && k.color ? zn(k.color) : p && k.icon ? void 0 : k.color,
511
- backgroundColor: N ? k.color || "var(--md-sys-color-surface-container)" : "transparent",
513
+ color: R && k.color ? zn(k.color) : p && k.icon ? void 0 : k.color,
514
+ backgroundColor: R ? k.color || "var(--md-sys-color-surface-container)" : "transparent",
512
515
  ...O
513
516
  },
514
517
  className: K({ placeholder: A }, W),
@@ -584,7 +587,7 @@ const Dr = v.div`
584
587
  let x = n.filter(
585
588
  (P) => h.includes(P.value.toString())
586
589
  );
587
- const R = [];
590
+ const N = [];
588
591
  h.forEach((P) => {
589
592
  if (!n.find((_) => _.value === P)) {
590
593
  const _ = {
@@ -594,10 +597,10 @@ const Dr = v.div`
594
597
  color: l || c ? "var(--md-sys-color-surface-container)" : "var(--md-sys-color-error)",
595
598
  icon: l || c ? void 0 : "warning"
596
599
  };
597
- x = [...x, _], R.push(_);
600
+ x = [...x, _], N.push(_);
598
601
  }
599
602
  });
600
- const L = x.length > 1, E = [...Bn(n, h), ...R], T = Q(null), [S, O] = j(!1);
603
+ const L = x.length > 1, E = [...Bn(n, h), ...N], T = Q(null), [S, O] = j(!1);
601
604
  q(() => {
602
605
  t && T.current && a ? (!T.current.isOpen && T.current?.open(), O(!0)) : O(!1);
603
606
  }, [t, T.current, a]), q(() => {
@@ -828,7 +831,7 @@ const Dr = v.div`
828
831
  }, [t, u]), h = !!o && !a, x = ne(
829
832
  () => t.map((T) => ({ name: T.value.toString() })),
830
833
  [t]
831
- ), R = Jr(
834
+ ), N = Jr(
832
835
  y && h ? n : void 0,
833
836
  x
834
837
  ), L = Q(null);
@@ -847,19 +850,19 @@ const Dr = v.div`
847
850
  align: p,
848
851
  placeholder: c,
849
852
  onChange: (T) => {
850
- R?.addTags(T.filter((S) => !u.includes(S))), i(T, "Click");
853
+ N?.addTags(T.filter((S) => !u.includes(S))), i(T, "Click");
851
854
  },
852
- onEditOption: R?.onEditOption,
855
+ onEditOption: N?.onEditOption,
853
856
  editOptionTooltip: "Change the colour in the project tags",
854
857
  ...m,
855
858
  onMixedChange: m.onMixedChange && ((T) => {
856
- R?.addTags(T.add), m.onMixedChange?.(T);
859
+ N?.addTags(T.add), m.onMixedChange?.(T);
857
860
  }),
858
861
  onClose: l,
859
862
  className: d
860
863
  }
861
864
  ),
862
- R && /* @__PURE__ */ s(eo, { ...R.dialog })
865
+ N && /* @__PURE__ */ s(eo, { ...N.dialog })
863
866
  ] });
864
867
  const E = u.map(
865
868
  (T) => t.find((S) => S.value === T) ?? {
@@ -907,8 +910,8 @@ const Dr = v.div`
907
910
  return a === "string" ? "" : null;
908
911
  switch (a) {
909
912
  case "integer":
910
- const R = parseInt(x, 10);
911
- return isNaN(R) ? null : R;
913
+ const N = parseInt(x, 10);
914
+ return isNaN(N) ? null : N;
912
915
  case "float":
913
916
  const L = parseFloat(x);
914
917
  return isNaN(L) ? null : L;
@@ -920,10 +923,10 @@ const Dr = v.div`
920
923
  }, C = (h) => {
921
924
  const x = g.current;
922
925
  if (a !== "string") {
923
- const R = h == null || h === "", L = x == null || x === "";
924
- if (R && L)
926
+ const N = h == null || h === "", L = x == null || x === "";
927
+ if (N && L)
925
928
  return !1;
926
- if (R !== L)
929
+ if (N !== L)
927
930
  return !0;
928
931
  }
929
932
  return h !== x;
@@ -944,8 +947,8 @@ const Dr = v.div`
944
947
  if (a === "string" || x !== null)
945
948
  t(x, "Enter");
946
949
  else {
947
- const R = a === "integer" ? "integer" : "number";
948
- we.error(`Invalid ${R} value. Please enter a valid ${R}.`), n?.();
950
+ const N = a === "integer" ? "integer" : "number";
951
+ we.error(`Invalid ${N} value. Please enter a valid ${N}.`), n?.();
949
952
  }
950
953
  } else h.key === "Escape" && (h.preventDefault(), h.stopPropagation(), y.current = !0, n?.());
951
954
  },
@@ -960,8 +963,8 @@ const Dr = v.div`
960
963
  if (a === "string" || x !== null)
961
964
  t(x, "Click");
962
965
  else {
963
- const R = a === "integer" ? "integer" : "number";
964
- we.error(`Invalid ${R} value. Please enter a valid ${R}.`);
966
+ const N = a === "integer" ? "integer" : "number";
967
+ we.error(`Invalid ${N} value. Please enter a valid ${N}.`);
965
968
  }
966
969
  }
967
970
  y.current = !1;
@@ -994,7 +997,7 @@ const Dr = v.div`
994
997
  cursor: pointer !important;
995
998
  }
996
999
  }
997
- `, Rt = v.div`
1000
+ `, Nt = v.div`
998
1001
  display: flex;
999
1002
  flex-direction: column;
1000
1003
  flex: 1;
@@ -1120,13 +1123,13 @@ const Dr = v.div`
1120
1123
  onPreviewMouseLeave: C,
1121
1124
  mentionEntity: u
1122
1125
  }) => {
1123
- const b = Q(d != null), h = typeof e == "string" ? e : e == null ? "" : String(e), [x, R] = j(d ?? h), L = Q(null), E = i === "preview", T = c, S = Q(null), O = Q(!1), W = Q(null), F = Q(h);
1126
+ const b = Q(d != null), h = typeof e == "string" ? e : e == null ? "" : String(e), [x, N] = j(d ?? h), L = Q(null), E = i === "preview", T = c, S = Q(null), O = Q(!1), W = Q(null), F = Q(h);
1124
1127
  q(() => {
1125
1128
  F.current = h;
1126
1129
  }, [h]);
1127
1130
  const P = Y(
1128
1131
  (k) => {
1129
- R(k), y?.(k);
1132
+ N(k), y?.(k);
1130
1133
  },
1131
1134
  [y]
1132
1135
  );
@@ -1135,7 +1138,7 @@ const Dr = v.div`
1135
1138
  b.current = !1;
1136
1139
  return;
1137
1140
  }
1138
- !t && !E || R(h);
1141
+ !t && !E || N(h);
1139
1142
  }, [t, E, h]), q(() => {
1140
1143
  if (E || !t || T) {
1141
1144
  O.current = !1;
@@ -1193,7 +1196,7 @@ const Dr = v.div`
1193
1196
  ), { projectName: r, productTypes: f, taskTypes: w } = We(), D = ne(
1194
1197
  () => u?.entityId && u.entityType && r ? { projectName: r, ...u, productTypes: f, taskTypes: w } : void 0,
1195
1198
  [u?.entityId, u?.entityType, r, f, w]
1196
- ), I = hn(D, { skip: E || !T }), N = Y(
1199
+ ), I = hn(D, { skip: E || !T }), R = Y(
1197
1200
  (k) => {
1198
1201
  if (E || !T) return;
1199
1202
  if (k.key === "Enter" || k.key === "Escape") {
@@ -1210,7 +1213,7 @@ const Dr = v.div`
1210
1213
  {
1211
1214
  ref: W,
1212
1215
  className: E ? "preview" : "editing",
1213
- onKeyDown: N,
1216
+ onKeyDown: R,
1214
1217
  onMouseDown: (k) => {
1215
1218
  k.stopPropagation();
1216
1219
  },
@@ -1221,7 +1224,7 @@ const Dr = v.div`
1221
1224
  E && C?.();
1222
1225
  },
1223
1226
  children: /* @__PURE__ */ s(
1224
- Rt,
1227
+ Nt,
1225
1228
  {
1226
1229
  onMouseDown: (k) => {
1227
1230
  k.stopPropagation();
@@ -1417,9 +1420,9 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
1417
1420
  className: b,
1418
1421
  ...h
1419
1422
  }, x) => {
1420
- const R = fo(!!n), L = g || (() => {
1423
+ const N = fo(!!n), L = g || (() => {
1421
1424
  }), E = m || (() => null), T = C || (() => {
1422
- }), [S, O] = j(!1), [W, F] = j(!1), [P, _] = j(!1), [U, r] = j(!1), f = Q(null), w = Q(), D = Q(), I = Q(!1), N = S || W, A = t?.label || e, k = typeof A == "string" ? A : String(A ?? ""), z = !n && !qt(k) && !k.match(/(https?:\/\/\S+)/gi);
1425
+ }), [S, O] = j(!1), [W, F] = j(!1), [P, _] = j(!1), [U, r] = j(!1), f = Q(null), w = Q(), D = Q(), I = Q(!1), R = S || W, A = t?.label || e, k = typeof A == "string" ? A : String(A ?? ""), z = !n && !qt(k) && !k.match(/(https?:\/\/\S+)/gi);
1423
1426
  q(() => {
1424
1427
  const V = f.current;
1425
1428
  if (!V) return;
@@ -1447,11 +1450,11 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
1447
1450
  const H = Y((V) => {
1448
1451
  I.current = V, _(V);
1449
1452
  }, []);
1450
- q(() => (clearTimeout(w.current), clearTimeout(D.current), o ? H(!1) : N ? I.current || U && y && (w.current = setTimeout(() => {
1453
+ q(() => (clearTimeout(w.current), clearTimeout(D.current), o ? H(!1) : R ? I.current || U && y && (w.current = setTimeout(() => {
1451
1454
  I.current || (H(!0), jt.markShown(), window.dispatchEvent(new CustomEvent(dt, { detail: { cellId: y } })));
1452
1455
  }, jt.getDelay())) : D.current = setTimeout(() => H(!1), 300), () => {
1453
1456
  clearTimeout(w.current), clearTimeout(D.current);
1454
- }), [N, U, o, y, H]), q(() => {
1457
+ }), [R, U, o, y, H]), q(() => {
1455
1458
  const V = (B) => {
1456
1459
  B.detail?.cellId !== y && H(!1);
1457
1460
  };
@@ -1468,7 +1471,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
1468
1471
  mn,
1469
1472
  {
1470
1473
  remarkPlugins: [gn],
1471
- rehypePlugins: R ? [R] : [],
1474
+ rehypePlugins: N ? [N] : [],
1472
1475
  urlTransform: (B) => Yt(B) ? B : Er(B),
1473
1476
  components: {
1474
1477
  p: ({ children: B }) => /* @__PURE__ */ s("span", { children: B }),
@@ -1657,7 +1660,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
1657
1660
  a && !g && u();
1658
1661
  }, [a]), c)
1659
1662
  return /* @__PURE__ */ s(zt, { title: "Description", children: /* @__PURE__ */ s(lo, {}) });
1660
- const R = (E) => {
1663
+ const N = (E) => {
1661
1664
  if (g) return;
1662
1665
  const T = E.target;
1663
1666
  if (T.closest("a") || d && T.closest(".mention")) {
@@ -1676,8 +1679,8 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
1676
1679
  enableHover: !g,
1677
1680
  onClick: g ? void 0 : u,
1678
1681
  description: t,
1679
- children: /* @__PURE__ */ M(ao, { className: K({ editing: g }), onClick: R, children: [
1680
- /* @__PURE__ */ s(Rt, { className: "block-shortcuts", children: /* @__PURE__ */ s(
1682
+ children: /* @__PURE__ */ M(ao, { className: K({ editing: g }), onClick: N, children: [
1683
+ /* @__PURE__ */ s(Nt, { className: "block-shortcuts", children: /* @__PURE__ */ s(
1681
1684
  Ct,
1682
1685
  {
1683
1686
  className: "description-editor",
@@ -1739,7 +1742,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
1739
1742
  }
1740
1743
  )
1741
1744
  }
1742
- ), Ms = ({
1745
+ ), Fs = ({
1743
1746
  value: e,
1744
1747
  onChange: t,
1745
1748
  onCancelEdit: n,
@@ -1769,7 +1772,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
1769
1772
  if (P <= 1) return { height: 32, lines: P };
1770
1773
  const _ = 32 + (P - 1) * 20;
1771
1774
  return { height: Math.min(112, _), lines: P };
1772
- }, [e, d, b, c]), R = Y(() => {
1775
+ }, [e, d, b, c]), N = Y(() => {
1773
1776
  const S = (C.current?.getMarkdown() ?? c).trim();
1774
1777
  S !== (e || "").trim() ? t(S) : n?.();
1775
1778
  }, [t, n, e, c]), L = Y(
@@ -1780,10 +1783,10 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
1780
1783
  n?.();
1781
1784
  return;
1782
1785
  }
1783
- R();
1786
+ N();
1784
1787
  }
1785
1788
  },
1786
- [R, n]
1789
+ [N, n]
1787
1790
  ), E = Y((S) => {
1788
1791
  (S.key === "Escape" || S.key === "Enter" && (S.metaKey || S.ctrlKey)) && S.stopPropagation();
1789
1792
  }, []);
@@ -1802,7 +1805,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
1802
1805
  }
1803
1806
  ),
1804
1807
  /* @__PURE__ */ s(
1805
- Rt,
1808
+ Nt,
1806
1809
  {
1807
1810
  style: { height: h, overflow: "auto" },
1808
1811
  className: "block-shortcuts compact",
@@ -1820,7 +1823,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
1820
1823
  bordered: !1,
1821
1824
  autoFocus: T,
1822
1825
  minHeight: h,
1823
- onSubmit: T ? R : void 0,
1826
+ onSubmit: T ? N : void 0,
1824
1827
  onEscape: T ? () => n?.() : void 0,
1825
1828
  placeholder: ""
1826
1829
  },
@@ -2002,7 +2005,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2002
2005
  background-color: var(--md-sys-color-surface-container-highest-hover);
2003
2006
  }
2004
2007
  }
2005
- `, Nt = v.span`
2008
+ `, Rt = v.span`
2006
2009
  display: inline-flex;
2007
2010
  align-items: center;
2008
2011
  justify-content: center;
@@ -2022,7 +2025,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2022
2025
  &:hover {
2023
2026
  background-color: var(--md-sys-color-surface-container-low-hover);
2024
2027
  }
2025
- `, Ro = v(et).attrs({ type: "number" })`
2028
+ `, No = v(et).attrs({ type: "number" })`
2026
2029
  height: 22px !important;
2027
2030
  min-height: 22px !important;
2028
2031
  max-height: 22px !important;
@@ -2042,7 +2045,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2042
2045
  -webkit-appearance: none;
2043
2046
  margin: 0;
2044
2047
  }
2045
- `, No = v.div`
2048
+ `, Ro = v.div`
2046
2049
  display: flex;
2047
2050
  flex-direction: column;
2048
2051
  /* hack for search border cutoff */
@@ -2230,7 +2233,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2230
2233
  const i = pe(o, t);
2231
2234
  (n[i] === void 0 || i === o) && (n[i] = a);
2232
2235
  }), n;
2233
- }, Os = (e, t = {}) => {
2236
+ }, Hs = (e, t = {}) => {
2234
2237
  if (!e) return {};
2235
2238
  const n = {
2236
2239
  ...e.columnPinning,
@@ -2256,7 +2259,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2256
2259
  if (e === void 0)
2257
2260
  throw new Error("useSelectionCellsContext must be used within a SelectionCellsProvider");
2258
2261
  return e;
2259
- }, zs = () => ae(Cn), In = (e) => {
2262
+ }, Ws = () => ae(Cn), In = (e) => {
2260
2263
  if (!(e.group || e.metaType)) {
2261
2264
  if (e.parents?.folder) return e.parents.folder;
2262
2265
  if (e.primary.entityType === "folder" && !e.isLoading) return e.primary;
@@ -2357,7 +2360,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2357
2360
  img: e === "assignees" ? `/api/users/${l.value}/avatar` : void 0
2358
2361
  } : { value: t, label: t };
2359
2362
  return i ? (c.count = i.count, c.percentage = i.percentage) : o && a && (c.count = 0, c.percentage = void 0), c;
2360
- }, tt = "_GROUP_", Jt = (e) => `${tt}${e}`, Bo = (e) => e.startsWith(tt) ? e.slice(tt.length) : null, Fs = (e) => e.startsWith(tt), Go = (e, t, n = []) => {
2363
+ }, tt = "_GROUP_", Jt = (e) => `${tt}${e}`, Bo = (e) => e.startsWith(tt) ? e.slice(tt.length) : null, Ks = (e) => e.startsWith(tt), Go = (e, t, n = []) => {
2361
2364
  const o = e.id.replace("attrib.", "");
2362
2365
  return o === "status" ? t?.statuses?.map((a) => a.name) || [] : o === "taskType" ? t?.taskTypes?.map((a) => a.name) || [] : o === "folderType" ? t?.folderTypes?.map((a) => a.name) || [] : e.id.startsWith("attrib.") ? n.find((a) => a.name === o)?.data.enum?.map((a) => a.value.toString()) || [] : [];
2363
2366
  }, jo = (e, t, n, o, a) => {
@@ -2370,7 +2373,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2370
2373
  id: e.id + At + t,
2371
2374
  subRows: []
2372
2375
  };
2373
- }, Hs = ({
2376
+ }, Us = ({
2374
2377
  entities: e,
2375
2378
  entityType: t,
2376
2379
  groups: n = [],
@@ -2477,15 +2480,15 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2477
2480
  }
2478
2481
  }
2479
2482
  }
2480
- const h = Array.from(m.values()), x = Go(g, p, o), R = g.desc ? -1 : 1;
2483
+ const h = Array.from(m.values()), x = Go(g, p, o), N = g.desc ? -1 : 1;
2481
2484
  h.sort((E, T) => {
2482
2485
  if (E.group?.value === be) return 1;
2483
2486
  if (T.group?.value === be) return -1;
2484
2487
  if (x.length) {
2485
2488
  const S = x.indexOf(E.group?.value || ""), O = x.indexOf(T.group?.value || "");
2486
- return S !== -1 && O !== -1 ? (S - O) * R : S !== -1 ? -1 : O !== -1 ? 1 : (E.group?.label?.localeCompare(T.group?.label || "") || 0) * R;
2489
+ return S !== -1 && O !== -1 ? (S - O) * N : S !== -1 ? -1 : O !== -1 ? 1 : (E.group?.label?.localeCompare(T.group?.label || "") || 0) * N;
2487
2490
  } else
2488
- return (E.group?.label?.localeCompare(T.group?.label || "") || 0) * R;
2491
+ return (E.group?.label?.localeCompare(T.group?.label || "") || 0) * N;
2489
2492
  });
2490
2493
  const L = h.filter(
2491
2494
  (E) => (E.group?.count ?? 0) > 0 || (E.subRows?.length ?? 0) > 0 || E.group?.value === be
@@ -2514,15 +2517,15 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2514
2517
  if (!e)
2515
2518
  throw new Error("useProjectTableContext must be used within a ProjectTableProvider");
2516
2519
  return e;
2517
- }, Ws = () => ae(En), Qo = (e) => e?.split(At)[0] || e, Jo = ye(void 0), Ks = () => {
2520
+ }, Vs = () => ae(En), Qo = (e) => e?.split(At)[0] || e, Jo = ye(void 0), Bs = () => {
2518
2521
  const e = ae(Jo);
2519
2522
  if (e === void 0)
2520
2523
  throw new Error("useClipboard must be used within a ClipboardProvider");
2521
2524
  return e;
2522
- }, Rn = ye(
2525
+ }, Nn = ye(
2523
2526
  void 0
2524
2527
  ), Zo = () => {
2525
- const e = ae(Rn);
2528
+ const e = ae(Nn);
2526
2529
  if (!e)
2527
2530
  throw new Error("useDetailsPanelEntityContext must be used within a DetailsPanelEntityProvider");
2528
2531
  return e;
@@ -2531,22 +2534,22 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2531
2534
  if (!e)
2532
2535
  throw new Error("useProjectDataContext must be used within a ProjectDataProvider");
2533
2536
  return e;
2534
- }, ti = ye(void 0), Us = () => {
2537
+ }, ti = ye(void 0), Gs = () => {
2535
2538
  const e = ae(ti);
2536
2539
  if (!e)
2537
2540
  throw new Error(
2538
2541
  "useProjectTableQueriesContext must be used within a ProjectTableQueriesProvider"
2539
2542
  );
2540
2543
  return e;
2541
- }, Nn = ye(void 0), Ln = () => {
2542
- const e = ae(Nn);
2544
+ }, Rn = ye(void 0), Ln = () => {
2545
+ const e = ae(Rn);
2543
2546
  if (!e)
2544
2547
  throw new Error("useSelectedRowsContext must be used within a SelectedRowsProvider");
2545
2548
  return e;
2546
- }, ni = () => ae(Nn), ri = "unknown", Vs = "restricted", Bs = "Access Restricted - Insufficient Permissions", Gs = "lock", Ge = (e) => e === ri, Fe = "readonly", js = (e) => {
2549
+ }, ni = () => ae(Rn), ri = "unknown", js = "restricted", Ys = "Access Restricted - Insufficient Permissions", qs = "lock", Ge = (e) => e === ri, Fe = "readonly", Qs = (e) => {
2547
2550
  const t = e.target;
2548
2551
  return t.tagName === "TD" ? t.classList.contains(Fe) || Array.from(t.children).some((n) => n.classList.contains(Fe)) : t.closest(`.${Fe}`) !== null;
2549
- }, Dn = ye(void 0), Ys = {
2552
+ }, Dn = ye(void 0), Js = {
2550
2553
  progress: {
2551
2554
  fields: [
2552
2555
  { value: "hierarchy" },
@@ -2577,12 +2580,12 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2577
2580
  { value: "entityList" }
2578
2581
  ]
2579
2582
  }
2580
- }, qs = () => {
2583
+ }, Zs = () => {
2581
2584
  const e = ae(Dn);
2582
2585
  if (e === void 0)
2583
2586
  throw new Error("useSlicerContext must be used within a SlicerProvider");
2584
2587
  return e;
2585
- }, Qs = () => ae(Dn), oi = v(cn)`
2588
+ }, Xs = () => ae(Dn), oi = v(cn)`
2586
2589
  height: 28px;
2587
2590
 
2588
2591
  .template-value {
@@ -2607,7 +2610,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2607
2610
  }
2608
2611
  }
2609
2612
  }
2610
- `, Js = Se(
2613
+ `, el = Se(
2611
2614
  ({ sliceTypes: e, ...t }, n) => {
2612
2615
  const { setPowerpackDialog: o } = lr(), a = [...t.options].map((l) => l.value === "hierarchy" ? l : {
2613
2616
  ...l,
@@ -2627,7 +2630,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2627
2630
  }
2628
2631
  );
2629
2632
  }
2630
- ), Ie = "inset 0 1px 0 0 var(--md-sys-color-primary)", Ee = "inset -1px 0 0 0 var(--md-sys-color-primary)", Re = "inset 0 -1px 0 0 var(--md-sys-color-primary)", Ne = "inset 1px 0 0 0 var(--md-sys-color-primary)", se = (e) => e ? "inset -2px -1px 0 0 var(--md-sys-color-surface-container), inset 1px 0 0 0 var(--md-sys-color-surface-container)" : "inset 1px -1px 0 0 var(--md-sys-color-surface-container)", xt = "drag-handle", Zs = v.tr`
2633
+ ), Ie = "inset 0 1px 0 0 var(--md-sys-color-primary)", Ee = "inset -1px 0 0 0 var(--md-sys-color-primary)", Ne = "inset 0 -1px 0 0 var(--md-sys-color-primary)", Re = "inset 1px 0 0 0 var(--md-sys-color-primary)", se = (e) => e ? "inset -2px -1px 0 0 var(--md-sys-color-surface-container), inset 1px 0 0 0 var(--md-sys-color-surface-container)" : "inset 1px -1px 0 0 var(--md-sys-color-surface-container)", xt = "drag-handle", tl = v.tr`
2631
2634
  display: flex;
2632
2635
  position: absolute;
2633
2636
  width: 100%;
@@ -2697,7 +2700,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2697
2700
  .resizing & {
2698
2701
  cursor: col-resize !important;
2699
2702
  }
2700
- `, Xs = v.div`
2703
+ `, nl = v.div`
2701
2704
  position: absolute;
2702
2705
  right: -1px;
2703
2706
  top: 0;
@@ -2713,9 +2716,9 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2713
2716
  opacity: 1;
2714
2717
  cursor: col-resize !important;
2715
2718
  }
2716
- `, el = v.tr`
2719
+ `, rl = v.tr`
2717
2720
  background-color: var(--md-sys-color-surface-container-low);
2718
- `, tl = v.th`
2721
+ `, ol = v.th`
2719
2722
  position: relative;
2720
2723
  background-color: var(--md-sys-color-surface-container-lowest);
2721
2724
  box-shadow: inset 1px -1px 0 0 var(--md-sys-color-surface-container);
@@ -2774,13 +2777,13 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2774
2777
  cursor: grabbing;
2775
2778
  }
2776
2779
  }
2777
- `, nl = v.span`
2780
+ `, il = v.span`
2778
2781
  margin-left: -2px;
2779
2782
  font-size: 11px;
2780
2783
  line-height: 1;
2781
2784
  color: var(--md-sys-color-outline);
2782
2785
  user-select: none;
2783
- `, rl = v.div`
2786
+ `, al = v.div`
2784
2787
  display: none;
2785
2788
 
2786
2789
  ${({ $isOpen: e }) => e && `
@@ -2848,7 +2851,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2848
2851
  display: none !important;
2849
2852
  }
2850
2853
  }
2851
- `, ol = v.td`
2854
+ `, sl = v.td`
2852
2855
  position: relative;
2853
2856
  box-shadow: ${se(!1)};
2854
2857
  background-color: var(--color-table-row);
@@ -2923,11 +2926,11 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2923
2926
  }
2924
2927
 
2925
2928
  &.shadow-bottom:not(.shadow-top):not(.shadow-right):not(.shadow-left) {
2926
- box-shadow: ${Re}, ${({ $isLastPinned: e }) => se(e || !1)};
2929
+ box-shadow: ${Ne}, ${({ $isLastPinned: e }) => se(e || !1)};
2927
2930
  }
2928
2931
 
2929
2932
  &.shadow-left:not(.shadow-top):not(.shadow-right):not(.shadow-bottom) {
2930
- box-shadow: ${Ne}, ${({ $isLastPinned: e }) => se(e || !1)};
2933
+ box-shadow: ${Re}, ${({ $isLastPinned: e }) => se(e || !1)};
2931
2934
  }
2932
2935
 
2933
2936
  /* Two sides */
@@ -2937,54 +2940,54 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
2937
2940
  }
2938
2941
 
2939
2942
  &.shadow-top.shadow-bottom:not(.shadow-right):not(.shadow-left) {
2940
- box-shadow: ${Ie}, ${Re},
2943
+ box-shadow: ${Ie}, ${Ne},
2941
2944
  ${({ $isLastPinned: e }) => se(e || !1)};
2942
2945
  }
2943
2946
 
2944
2947
  &.shadow-top.shadow-left:not(.shadow-right):not(.shadow-bottom) {
2945
- box-shadow: ${Ie}, ${Ne},
2948
+ box-shadow: ${Ie}, ${Re},
2946
2949
  ${({ $isLastPinned: e }) => se(e || !1)};
2947
2950
  }
2948
2951
 
2949
2952
  &.shadow-right.shadow-bottom:not(.shadow-top):not(.shadow-left) {
2950
- box-shadow: ${Ee}, ${Re},
2953
+ box-shadow: ${Ee}, ${Ne},
2951
2954
  ${({ $isLastPinned: e }) => se(e || !1)};
2952
2955
  }
2953
2956
 
2954
2957
  &.shadow-right.shadow-left:not(.shadow-top):not(.shadow-bottom) {
2955
- box-shadow: ${Ee}, ${Ne},
2958
+ box-shadow: ${Ee}, ${Re},
2956
2959
  ${({ $isLastPinned: e }) => se(e || !1)};
2957
2960
  }
2958
2961
 
2959
2962
  &.shadow-bottom.shadow-left:not(.shadow-top):not(.shadow-right) {
2960
- box-shadow: ${Re}, ${Ne},
2963
+ box-shadow: ${Ne}, ${Re},
2961
2964
  ${({ $isLastPinned: e }) => se(e || !1)};
2962
2965
  }
2963
2966
 
2964
2967
  /* Three sides */
2965
2968
  &.shadow-top.shadow-right.shadow-bottom:not(.shadow-left) {
2966
- box-shadow: ${Ie}, ${Ee}, ${Re},
2969
+ box-shadow: ${Ie}, ${Ee}, ${Ne},
2967
2970
  ${({ $isLastPinned: e }) => se(e || !1)};
2968
2971
  }
2969
2972
 
2970
2973
  &.shadow-top.shadow-right.shadow-left:not(.shadow-bottom) {
2971
- box-shadow: ${Ie}, ${Ee}, ${Ne},
2974
+ box-shadow: ${Ie}, ${Ee}, ${Re},
2972
2975
  ${({ $isLastPinned: e }) => se(e || !1)};
2973
2976
  }
2974
2977
 
2975
2978
  &.shadow-top.shadow-bottom.shadow-left:not(.shadow-right) {
2976
- box-shadow: ${Ie}, ${Re}, ${Ne},
2979
+ box-shadow: ${Ie}, ${Ne}, ${Re},
2977
2980
  ${({ $isLastPinned: e }) => se(e || !1)};
2978
2981
  }
2979
2982
 
2980
2983
  &.shadow-right.shadow-bottom.shadow-left:not(.shadow-top) {
2981
- box-shadow: ${Ee}, ${Re}, ${Ne},
2984
+ box-shadow: ${Ee}, ${Ne}, ${Re},
2982
2985
  ${({ $isLastPinned: e }) => se(e || !1)};
2983
2986
  }
2984
2987
 
2985
2988
  /* All four sides */
2986
2989
  &.shadow-top.shadow-right.shadow-bottom.shadow-left {
2987
- box-shadow: ${Ie}, ${Ee}, ${Re}, ${Ne},
2990
+ box-shadow: ${Ie}, ${Ee}, ${Ne}, ${Re},
2988
2991
  ${({ $isLastPinned: e }) => se(e || !1)};
2989
2992
  }
2990
2993
 
@@ -3056,7 +3059,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
3056
3059
  }
3057
3060
  }
3058
3061
  }
3059
- `, il = v.div`
3062
+ `, ll = v.div`
3060
3063
  position: absolute;
3061
3064
  inset: 0;
3062
3065
  pointer-events: none;
@@ -3068,7 +3071,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
3068
3071
  width: 1px;
3069
3072
  background-color: var(--md-sys-color-surface-container);
3070
3073
  }
3071
- `, al = v.thead`
3074
+ `, cl = v.thead`
3072
3075
  display: grid !important;
3073
3076
  position: sticky;
3074
3077
  top: 0;
@@ -3079,14 +3082,14 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
3079
3082
  .resizing & {
3080
3083
  cursor: col-resize !important;
3081
3084
  }
3082
- `, sl = v.div`
3085
+ `, dl = v.div`
3083
3086
  overflow: hidden;
3084
3087
  position: absolute;
3085
3088
  inset: 0;
3086
3089
  border-radius: var(--border-radius-m);
3087
3090
 
3088
3091
  background-color: var(--md-sys-color-surface-container-low);
3089
- `, ll = v.div`
3092
+ `, ul = v.div`
3090
3093
  position: relative;
3091
3094
  display: flex;
3092
3095
 
@@ -3135,7 +3138,7 @@ const jt = new vo(), dt = "projectTreeTextPreviewOpen", xo = (e) => {
3135
3138
  font-size: 18px;
3136
3139
  color: var(--md-sys-color-outline);
3137
3140
  }
3138
- `, cl = v.div`
3141
+ `, pl = v.div`
3139
3142
  animation: fadeIn 20ms ease-in forwards;
3140
3143
  animation-delay: 300ms;
3141
3144
  opacity: 0;
@@ -3163,7 +3166,7 @@ v.span`
3163
3166
  color: var(--md-sys-color-tertiary);
3164
3167
  }
3165
3168
  `;
3166
- const dl = v.div`
3169
+ const ml = v.div`
3167
3170
  position: absolute;
3168
3171
  bottom: 60px; // to go above the footer stats
3169
3172
  left: 8px;
@@ -3176,7 +3179,7 @@ const dl = v.div`
3176
3179
  box-shadow: var(--md-sys-shadow-level-2);
3177
3180
  padding: var(--padding-s);
3178
3181
  }
3179
- `, ul = v.span`
3182
+ `, gl = v.span`
3180
3183
  position: absolute;
3181
3184
  top: 0;
3182
3185
  bottom: 0;
@@ -3258,7 +3261,7 @@ const dl = v.div`
3258
3261
  if (t in e)
3259
3262
  return e[t];
3260
3263
  }
3261
- }, pl = (e, t) => {
3264
+ }, hl = (e, t) => {
3262
3265
  if (e)
3263
3266
  return e[t];
3264
3267
  }, mi = (e, t) => e ? e[t]?.display : void 0, gi = (e) => ["folder", "product"].includes(e), X = 50, hi = [
@@ -3308,7 +3311,7 @@ const dl = v.div`
3308
3311
  comments: Ze("comment"),
3309
3312
  [$e]: Me[$e].icon,
3310
3313
  [_e]: Me[_e].icon
3311
- }, ml = (e) => {
3314
+ }, yl = (e) => {
3312
3315
  const t = pe(e);
3313
3316
  return fi[t] ?? Ze(t);
3314
3317
  }, Pe = {
@@ -3391,12 +3394,12 @@ const dl = v.div`
3391
3394
  comments: { enabled: !1, label: Z.comments },
3392
3395
  [$e]: { enabled: !1, label: Z[$e] },
3393
3396
  [_e]: { enabled: !1, label: Z[_e] }
3394
- }, gl = (e) => e.includes("version") ? "Version / Product" : e.map((t) => t.charAt(0).toUpperCase() + t.slice(1)).join(" / "), hl = (e, t = []) => Object.entries(Pe).filter(
3397
+ }, fl = (e) => e.includes("version") ? "Version / Product" : e.map((t) => t.charAt(0).toUpperCase() + t.slice(1)).join(" / "), bl = (e, t = []) => Object.entries(Pe).filter(
3395
3398
  ([, n]) => n.enabled && (!n.scopes || !e || n.scopes.some((o) => e.includes(o)))
3396
3399
  ).map(([n, o]) => ({
3397
3400
  id: n,
3398
3401
  label: t.find((a) => pe(a.value) === n)?.label || oe(n, e)
3399
- })), bi = (e) => Pe[pe(e)]?.enabled ?? !e.startsWith("link_"), yl = (e, t = !0, n) => {
3402
+ })), bi = (e) => Pe[pe(e)]?.enabled ?? !e.startsWith("link_"), vl = (e, t = !0, n) => {
3400
3403
  if (!e) return;
3401
3404
  const o = pe(e);
3402
3405
  if (Ce(o).scope === "primary") {
@@ -3571,7 +3574,7 @@ const dl = v.div`
3571
3574
  }
3572
3575
  );
3573
3576
  }
3574
- }), fl = ({
3577
+ }), xl = ({
3575
3578
  scopes: e,
3576
3579
  attribs: t,
3577
3580
  links: n = [],
@@ -3608,7 +3611,7 @@ const dl = v.div`
3608
3611
  enablePinning: !0,
3609
3612
  enableHiding: !(y && y.id !== "folder"),
3610
3613
  cell: ({ row: r, column: f, table: w }) => {
3611
- const { value: D, id: I, type: N } = ge(r, f.id), A = w.options.meta, { isEditing: k } = Lt(), { rowHeight: z = 40 } = qo(), H = Ye(r.id, f.id);
3614
+ const { value: D, id: I, type: R } = ge(r, f.id), A = w.options.meta, { isEditing: k } = Lt(), { rowHeight: z = 40 } = qo(), H = Ye(r.id, f.id);
3612
3615
  if (r.original.metaType)
3613
3616
  return /* @__PURE__ */ s(
3614
3617
  gt,
@@ -3671,7 +3674,7 @@ const dl = v.div`
3671
3674
  toggleExpanded: r.getToggleExpandedHandler()
3672
3675
  }
3673
3676
  ) : /* @__PURE__ */ s(
3674
- Na,
3677
+ Ra,
3675
3678
  {
3676
3679
  id: r.id,
3677
3680
  entity: r.original.primary,
@@ -3699,7 +3702,7 @@ const dl = v.div`
3699
3702
  columnId: f.id,
3700
3703
  hasVersions: r.original.primary.entityType === "folder" && !!r.original.primary.hasVersions
3701
3704
  },
3702
- entityType: N,
3705
+ entityType: R,
3703
3706
  attributeData: { type: "name" },
3704
3707
  isCollapsed: !!r.original.childOnlyMatch,
3705
3708
  isReadOnly: A?.readOnly?.includes(f.id)
@@ -3725,8 +3728,8 @@ const dl = v.div`
3725
3728
  enablePinning: !0,
3726
3729
  enableHiding: !0,
3727
3730
  cell: ({ row: r, column: f, table: w }) => {
3728
- const { value: D, id: I, type: N } = ge(r, f.id), A = w.options.meta;
3729
- return ["group", de].includes(N) || r.original.metaType ? null : /* @__PURE__ */ s(
3731
+ const { value: D, id: I, type: R } = ge(r, f.id), A = w.options.meta;
3732
+ return ["group", de].includes(R) || r.original.metaType ? null : /* @__PURE__ */ s(
3730
3733
  re,
3731
3734
  {
3732
3735
  rowId: I,
@@ -3734,13 +3737,13 @@ const dl = v.div`
3734
3737
  columnId: f.id,
3735
3738
  value: D,
3736
3739
  attributeData: { type: "string" },
3737
- options: A?.options?.status.filter((k) => k.scope?.includes(N)),
3740
+ options: A?.options?.status.filter((k) => k.scope?.includes(R)),
3738
3741
  isCollapsed: !!r.original.childOnlyMatch,
3739
3742
  onChange: (k) => A?.updateEntities?.(
3740
- { field: f.id, value: k, type: N, rowId: I },
3743
+ { field: f.id, value: k, type: R, rowId: I },
3741
3744
  { selection: A?.selection }
3742
3745
  ),
3743
- isReadOnly: A?.readOnly?.includes(f.id) || Ge(N) || Ce(f.id).scope !== "primary",
3746
+ isReadOnly: A?.readOnly?.includes(f.id) || Ge(R) || Ce(f.id).scope !== "primary",
3744
3747
  pt: {
3745
3748
  enum: {
3746
3749
  pt: {
@@ -3770,17 +3773,17 @@ const dl = v.div`
3770
3773
  enableHiding: !0,
3771
3774
  sortingFn: ie(he(Ae.alphanumeric)),
3772
3775
  cell: ({ row: r, column: f, table: w }) => {
3773
- const { value: D, id: I, type: N } = ge(r, f.id);
3774
- if (["group", de].includes(N) || r.original.metaType) return null;
3776
+ const { value: D, id: I, type: R } = ge(r, f.id);
3777
+ if (["group", de].includes(R) || r.original.metaType) return null;
3775
3778
  const A = Ye(r.id, f.id);
3776
3779
  return /* @__PURE__ */ M(
3777
3780
  gt,
3778
3781
  {
3779
3782
  id: A,
3780
- className: K("entityType", Fe, N, { loading: r.original.isLoading }),
3783
+ className: K("entityType", Fe, R, { loading: r.original.isLoading }),
3781
3784
  tabIndex: 0,
3782
3785
  children: [
3783
- /* @__PURE__ */ s(ee, { icon: Te(N) }),
3786
+ /* @__PURE__ */ s(ee, { icon: Te(R) }),
3784
3787
  " ",
3785
3788
  He(D)
3786
3789
  ]
@@ -3806,9 +3809,9 @@ const dl = v.div`
3806
3809
  )
3807
3810
  ),
3808
3811
  cell: ({ row: r, column: f, table: w }) => {
3809
- const { value: D, id: I, type: N } = ge(r, f.id);
3810
- if (["group", de].includes(N) || r.original.metaType) return null;
3811
- const A = N === "product" || N === "version", k = N === "folder" ? "folderType" : A ? "productType" : "taskType", z = w.options.meta, H = N === "folder" && r.original.primary.entityType === "folder" && r.original.primary.hasVersions;
3812
+ const { value: D, id: I, type: R } = ge(r, f.id);
3813
+ if (["group", de].includes(R) || r.original.metaType) return null;
3814
+ const A = R === "product" || R === "version", k = R === "folder" ? "folderType" : A ? "productType" : "taskType", z = w.options.meta, H = R === "folder" && r.original.primary.entityType === "folder" && r.original.primary.hasVersions;
3812
3815
  return /* @__PURE__ */ s(
3813
3816
  re,
3814
3817
  {
@@ -3817,10 +3820,10 @@ const dl = v.div`
3817
3820
  columnId: f.id,
3818
3821
  value: D,
3819
3822
  attributeData: { type: "string" },
3820
- options: N === "folder" ? z?.options?.folderType : N === "task" ? z?.options?.taskType : A ? z?.options?.productType : [],
3823
+ options: R === "folder" ? z?.options?.folderType : R === "task" ? z?.options?.taskType : A ? z?.options?.productType : [],
3821
3824
  isCollapsed: !!r.original.childOnlyMatch,
3822
3825
  onChange: (te) => z?.updateEntities?.(
3823
- { field: k, value: te, type: N, rowId: r.id },
3826
+ { field: k, value: te, type: R, rowId: r.id },
3824
3827
  { selection: z?.selection }
3825
3828
  ),
3826
3829
  isReadOnly: A || z?.readOnly?.includes(f.id) || z?.readOnly?.includes(k) || H || Ce(f.id).scope !== "primary",
@@ -3848,11 +3851,11 @@ const dl = v.div`
3848
3851
  enableHiding: !0,
3849
3852
  sortingFn: ie(he(en)),
3850
3853
  cell: ({ row: r, column: f, table: w }) => {
3851
- const D = w.options.meta, { value: I, id: N, type: A } = ge(r, f.id);
3854
+ const D = w.options.meta, { value: I, id: R, type: A } = ge(r, f.id);
3852
3855
  return ["group", de].includes(A) || r.original.metaType ? null : A === "folder" ? /* @__PURE__ */ s(
3853
3856
  re,
3854
3857
  {
3855
- rowId: N,
3858
+ rowId: R,
3856
3859
  className: K("assignees", { loading: r.original.isLoading }),
3857
3860
  columnId: f.id,
3858
3861
  value: "",
@@ -3861,7 +3864,7 @@ const dl = v.div`
3861
3864
  ) : /* @__PURE__ */ s(
3862
3865
  re,
3863
3866
  {
3864
- rowId: N,
3867
+ rowId: R,
3865
3868
  className: K("assignees", { loading: r.original.isLoading }),
3866
3869
  columnId: f.id,
3867
3870
  value: I,
@@ -3950,14 +3953,14 @@ const dl = v.div`
3950
3953
  sortingFn: ie(ze),
3951
3954
  cell: ({ row: r, column: f, table: w }) => {
3952
3955
  if (r.original.group || r.original.metaType) return null;
3953
- const D = w.options.meta, I = ve(r.original), N = I?.author || "", A = I?.entityType || r.original.primary.entityType;
3956
+ const D = w.options.meta, I = ve(r.original), R = I?.author || "", A = I?.entityType || r.original.primary.entityType;
3954
3957
  return ["group", de].includes(A) ? null : /* @__PURE__ */ s(
3955
3958
  re,
3956
3959
  {
3957
3960
  rowId: r.id,
3958
3961
  className: K("author", { loading: r.original.isLoading }),
3959
3962
  columnId: f.id,
3960
- value: [N],
3963
+ value: [R],
3961
3964
  attributeData: { type: "list_of_strings" },
3962
3965
  options: D?.options?.assignee,
3963
3966
  isReadOnly: !0,
@@ -3979,14 +3982,14 @@ const dl = v.div`
3979
3982
  if (r.original.group || r.original.metaType) return null;
3980
3983
  const w = ve(r.original), D = w?.versionName || w?.name || "", I = w?.entityType || r.original.primary.entityType;
3981
3984
  if (["group", de].includes(I)) return null;
3982
- let N = D;
3983
- return r.original.primary.entityType === "product" && (N = w ? `${w.versionName || w.name} (${r.original.primary.versionsCount || 0} versions)` : ""), /* @__PURE__ */ s(
3985
+ let R = D;
3986
+ return r.original.primary.entityType === "product" && (R = w ? `${w.versionName || w.name} (${r.original.primary.versionsCount || 0} versions)` : ""), /* @__PURE__ */ s(
3984
3987
  ht,
3985
3988
  {
3986
3989
  rowId: r.id,
3987
3990
  className: "version-entity",
3988
3991
  columnId: f.id,
3989
- value: N,
3992
+ value: R,
3990
3993
  entityId: w?.id,
3991
3994
  entityType: "version",
3992
3995
  isLoading: r.original.isLoading
@@ -4055,11 +4058,11 @@ const dl = v.div`
4055
4058
  enableHiding: !0,
4056
4059
  sortingFn: ie(he(en)),
4057
4060
  cell: ({ row: r, column: f, table: w }) => {
4058
- const D = w.options.meta, { value: I, id: N, type: A } = ge(r, f.id);
4061
+ const D = w.options.meta, { value: I, id: R, type: A } = ge(r, f.id);
4059
4062
  return ["group", de].includes(A) || r.original.metaType ? null : /* @__PURE__ */ s(
4060
4063
  re,
4061
4064
  {
4062
- rowId: N,
4065
+ rowId: R,
4063
4066
  className: K("tags", { loading: r.original.isLoading }),
4064
4067
  columnId: f.id,
4065
4068
  value: I,
@@ -4137,7 +4140,7 @@ const dl = v.div`
4137
4140
  enablePinning: !0,
4138
4141
  enableHiding: !0,
4139
4142
  cell: ({ row: r, column: f, table: w }) => {
4140
- const D = w.options.meta, { value: I, id: N, type: A } = ge(r, f.id);
4143
+ const D = w.options.meta, { value: I, id: R, type: A } = ge(r, f.id);
4141
4144
  if (["group", de].includes(A) || r.original.metaType) return null;
4142
4145
  if (A !== "task") return /* @__PURE__ */ s("div", { className: "readonly" });
4143
4146
  const k = {
@@ -4149,7 +4152,7 @@ const dl = v.div`
4149
4152
  return /* @__PURE__ */ s(
4150
4153
  re,
4151
4154
  {
4152
- rowId: N,
4155
+ rowId: R,
4153
4156
  className: K("subtasks", { loading: r.original.isLoading }),
4154
4157
  columnId: f.id,
4155
4158
  value: k.subtasks?.map((z) => z.label || z.name) || [],
@@ -4170,8 +4173,8 @@ const dl = v.div`
4170
4173
  enableHiding: !0,
4171
4174
  cell: ({ row: r, column: f }) => {
4172
4175
  if (r.original.group || r.original.metaType) return null;
4173
- const w = r.original.primary.entityType === "product", D = w && r.original.parents?.version || r.original.primary, I = w ? r.original.parents?.version?.latestComments || [] : r.original.primary.latestComments || [], N = D.entityType;
4174
- return ["group", de].includes(N) ? null : !r.original.isLoading && !["task", "version", "product", "folder"].includes(N) ? /* @__PURE__ */ s("div", { className: "readonly" }) : /* @__PURE__ */ s(
4176
+ const w = r.original.primary.entityType === "product", D = w && r.original.parents?.version || r.original.primary, I = w ? r.original.parents?.version?.latestComments || [] : r.original.primary.latestComments || [], R = D.entityType;
4177
+ return ["group", de].includes(R) ? null : !r.original.isLoading && !["task", "version", "product", "folder"].includes(R) ? /* @__PURE__ */ s("div", { className: "readonly" }) : /* @__PURE__ */ s(
4175
4178
  re,
4176
4179
  {
4177
4180
  rowId: r.id,
@@ -4196,16 +4199,16 @@ const dl = v.div`
4196
4199
  enablePinning: !0,
4197
4200
  enableHiding: !0,
4198
4201
  cell: ({ row: f, column: w }) => {
4199
- const { group: D, metaType: I, isLoading: N, primary: A } = f.original;
4202
+ const { group: D, metaType: I, isLoading: R, primary: A } = f.original;
4200
4203
  if (D || I) return null;
4201
- if (!N && !ut(w.id, A.entityType))
4204
+ if (!R && !ut(w.id, A.entityType))
4202
4205
  return /* @__PURE__ */ s("div", { className: "readonly" });
4203
- const k = !N && ut(w.id, A.entityType) ? { entityId: A.id, entityType: A.entityType, columnId: w.id } : void 0;
4206
+ const k = !R && ut(w.id, A.entityType) ? { entityId: A.id, entityType: A.entityType, columnId: w.id } : void 0;
4204
4207
  return /* @__PURE__ */ s(
4205
4208
  re,
4206
4209
  {
4207
4210
  rowId: f.id,
4208
- className: K("lists", { loading: N }),
4211
+ className: K("lists", { loading: R }),
4209
4212
  columnId: w.id,
4210
4213
  value: "",
4211
4214
  valueData: k,
@@ -4234,7 +4237,7 @@ const dl = v.div`
4234
4237
  enableHiding: !0,
4235
4238
  cell: ({ row: w, column: D, table: I }) => {
4236
4239
  if (w.original.group || w.original.metaType) return null;
4237
- const N = I.options.meta, A = D.id.replace("attrib_", ""), { type: k } = ge(w, A, "attrib"), z = Pn(w.original, r), H = Xt(w.original, r), te = z.id, ue = z.entityType, ke = !z.ownAttrib?.includes(A);
4240
+ const R = I.options.meta, A = D.id.replace("attrib_", ""), { type: k } = ge(w, A, "attrib"), z = Pn(w.original, r), H = Xt(w.original, r), te = z.id, ue = z.entityType, ke = !z.ownAttrib?.includes(A);
4238
4241
  return ["group", de].includes(ue) || w.original.metaType || !r.scope?.includes(k) && H == null ? null : /* @__PURE__ */ s(
4239
4242
  re,
4240
4243
  {
@@ -4261,11 +4264,11 @@ const dl = v.div`
4261
4264
  isReadOnly: (
4262
4265
  // check attrib is not read only
4263
4266
  r.readOnly || // check if there is any other reason the cell should be read only
4264
- N?.readOnly?.some(
4267
+ R?.readOnly?.some(
4265
4268
  (V) => V === A || V === "attrib" && r.builtin
4266
4269
  ) || Ce(D.id).scope !== "primary"
4267
4270
  ),
4268
- onChange: (V, B, $) => N?.updateEntities?.(
4271
+ onChange: (V, B, $) => R?.updateEntities?.(
4269
4272
  {
4270
4273
  field: A,
4271
4274
  value: V,
@@ -4276,19 +4279,19 @@ const dl = v.div`
4276
4279
  entityData: z
4277
4280
  },
4278
4281
  {
4279
- selection: z === w.original.primary && yi(r.data) ? N?.selection : void 0,
4282
+ selection: z === w.original.primary && yi(r.data) ? R?.selection : void 0,
4280
4283
  listChange: $
4281
4284
  }
4282
4285
  )
4283
4286
  }
4284
4287
  );
4285
4288
  }
4286
- })), R = (r) => n.filter((f) => !(!b(f.linkType) || !b("link") || !e.includes(f.inputType) && !e.includes(f.outputType))).flatMap(
4289
+ })), N = (r) => n.filter((f) => !(!b(f.linkType) || !b("link") || !e.includes(f.inputType) && !e.includes(f.outputType))).flatMap(
4287
4290
  (f) => ["in", "out"].map((w) => {
4288
4291
  const D = Ci(f, w);
4289
4292
  return {
4290
4293
  id: r === "primary" ? D : qe(r, D),
4291
- accessorFn: (N) => N.group ? void 0 : Le(N, r)?.links?.[nt(f, w)],
4294
+ accessorFn: (R) => R.group ? void 0 : Le(R, r)?.links?.[nt(f, w)],
4292
4295
  header: () => /* @__PURE__ */ M(ii, { children: [
4293
4296
  r === "primary" ? "" : `${He(r)} `,
4294
4297
  Ti(f, w),
@@ -4305,9 +4308,9 @@ const dl = v.div`
4305
4308
  enableResizing: !0,
4306
4309
  enablePinning: !0,
4307
4310
  enableHiding: !0,
4308
- cell: ({ row: N, column: A, table: k }) => {
4309
- if (N.original.group || N.original.metaType) return null;
4310
- const { id: z, value: H } = ge(N, A.id, "links"), te = H?.map((V) => V.label), ue = Le(N.original, r);
4311
+ cell: ({ row: R, column: A, table: k }) => {
4312
+ if (R.original.group || R.original.metaType) return null;
4313
+ const { id: z, value: H } = ge(R, A.id, "links"), te = H?.map((V) => V.label), ue = Le(R.original, r);
4311
4314
  if (!ue) return null;
4312
4315
  const ke = r === "primary" && !!k.options.meta?.loadingLinksEntityIds?.has(ue.id), De = {
4313
4316
  links: H,
@@ -4324,11 +4327,11 @@ const dl = v.div`
4324
4327
  re,
4325
4328
  {
4326
4329
  rowId: z,
4327
- className: K("links", { loading: N.original.isLoading }),
4330
+ className: K("links", { loading: R.original.isLoading }),
4328
4331
  columnId: A.id,
4329
4332
  value: te,
4330
4333
  valueData: De,
4331
- folderId: N.original.parents?.folder?.id,
4334
+ folderId: R.original.parents?.folder?.id,
4332
4335
  attributeData: { type: "links" },
4333
4336
  isLinksLoading: ke
4334
4337
  }
@@ -4336,7 +4339,7 @@ const dl = v.div`
4336
4339
  }
4337
4340
  };
4338
4341
  })
4339
- ), L = o ? R("primary") : [], E = /* @__PURE__ */ new Set([
4342
+ ), L = o ? N("primary") : [], E = /* @__PURE__ */ new Set([
4340
4343
  "status",
4341
4344
  "assignees",
4342
4345
  "author",
@@ -4350,7 +4353,7 @@ const dl = v.div`
4350
4353
  (r) => u.filter(
4351
4354
  (f) => E.has(f.id) && !T.has(`${r}:${f.id}`)
4352
4355
  ).map((f) => Si(f, f.id, r))
4353
- ), O = C.filter((r) => m.includes(r.scope)).map(Ii), W = b("thumbnail") ? m.map((r) => tn(r)) : [], F = o ? m.flatMap((r) => R(r)) : [], P = new Set(
4356
+ ), O = C.filter((r) => m.includes(r.scope)).map(Ii), W = b("thumbnail") ? m.map((r) => tn(r)) : [], F = o ? m.flatMap((r) => N(r)) : [], P = new Set(
4354
4357
  m.filter((r) => {
4355
4358
  const f = C.filter((w) => w.scope === r);
4356
4359
  return f.length === 0 || f.some((w) => w.includeAttributes !== !1);
@@ -4401,12 +4404,12 @@ const dl = v.div`
4401
4404
  b = ce(e.original, h, a, i);
4402
4405
  }
4403
4406
  return { value: b, id: e.id, type: u.entityType };
4404
- }, Ri = 200, Ni = (e) => Zn.includes(e), bl = ({
4407
+ }, Ni = 200, Ri = (e) => Zn.includes(e), wl = ({
4405
4408
  projectName: e,
4406
4409
  entities: t,
4407
4410
  enabled: n
4408
4411
  }) => {
4409
- const o = n ? t.filter((d) => d.id && Ni(d.entityType)).map((d) => `${d.entityType}:${d.id}`).sort().join(",") : "", [a, i] = j(o), l = ne(() => cr(i, Ri), []);
4412
+ const o = n ? t.filter((d) => d.id && Ri(d.entityType)).map((d) => `${d.entityType}:${d.id}`).sort().join(",") : "", [a, i] = j(o), l = ne(() => cr(i, Ni), []);
4410
4413
  q(() => (l(o), () => l.cancel()), [o, l]);
4411
4414
  const c = ne(() => {
4412
4415
  const d = { folder: [], task: [], version: [] };
@@ -4455,7 +4458,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
4455
4458
  field: i ? a.slice(7) : a,
4456
4459
  isAttrib: i
4457
4460
  };
4458
- }, Mi = (e) => !!e && typeof e == "object" && "primary" in e, vl = (e, t) => {
4461
+ }, Mi = (e) => !!e && typeof e == "object" && "primary" in e, kl = (e, t) => {
4459
4462
  if (!e || !t) return;
4460
4463
  if (Mi(e)) {
4461
4464
  const { scope: a, field: i, isAttrib: l } = Ce(t);
@@ -4479,20 +4482,20 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
4479
4482
  else
4480
4483
  return;
4481
4484
  return o;
4482
- }, xl = (e, t) => {
4485
+ }, Tl = (e, t) => {
4483
4486
  const [n, o, a, i, l] = t.split("_"), c = e.filter(
4484
4487
  (p) => p.linkType === o && p.direction === l
4485
4488
  );
4486
4489
  return c.length ? c.map((p) => p.node.id).join(",") : "";
4487
- }, wl = (e, t, n) => {
4490
+ }, Cl = (e, t, n) => {
4488
4491
  if (!n[e]?.[t])
4489
4492
  return 0;
4490
4493
  let o = 0;
4491
4494
  return (e === 0 || !n[e - 1]?.[t]) && (o |= 1), n[e]?.[t + 1] || (o |= 2), n[e + 1]?.[t] || (o |= 4), (t === 0 || !n[e]?.[t - 1]) && (o |= 8), o;
4492
- }, kl = (e) => {
4495
+ }, Sl = (e) => {
4493
4496
  const t = [];
4494
4497
  return e & 1 && t.push("shadow-top"), e & 2 && t.push("shadow-right"), e & 4 && t.push("shadow-bottom"), e & 8 && t.push("shadow-left"), t;
4495
- }, Tl = (e, t) => t.get(Qo(e)), Oi = (e, t, n) => e?.reduce((o, a) => {
4498
+ }, Il = (e, t) => t.get(Qo(e)), Oi = (e, t, n) => e?.reduce((o, a) => {
4496
4499
  const { linkType: i, direction: l, entityType: c, id: p, node: d, isRestricted: y } = a;
4497
4500
  if (y || !d) {
4498
4501
  const u = {
@@ -4560,7 +4563,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
4560
4563
  },
4561
4564
  parents: t ? { folder: _t(t).primary } : void 0,
4562
4565
  midnightExclusiveFields: e.data?.schedulerSyncData?.allDay ? ["attrib_endDate"] : void 0
4563
- }), Cl = (e, t) => {
4566
+ }), El = (e, t) => {
4564
4567
  const n = e;
4565
4568
  return {
4566
4569
  id: n.id,
@@ -4579,7 +4582,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
4579
4582
  },
4580
4583
  parents: t ? { folder: _t(t).primary } : void 0
4581
4584
  };
4582
- }, Sl = (e, t, n) => ({
4585
+ }, Nl = (e, t, n) => ({
4583
4586
  id: e.id,
4584
4587
  primary: {
4585
4588
  id: e.id,
@@ -4779,7 +4782,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
4779
4782
  a?.(L.id), l("");
4780
4783
  }, h = () => {
4781
4784
  n?.();
4782
- }, { containerRef: x, getItemProps: R } = Hi({
4785
+ }, { containerRef: x, getItemProps: N } = Hi({
4783
4786
  entities: u,
4784
4787
  onSelect: b,
4785
4788
  onClose: h,
@@ -4793,7 +4796,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
4793
4796
  c.current && c.current.focus();
4794
4797
  }, 0);
4795
4798
  return () => clearTimeout(L);
4796
- }, [p, i]), /* @__PURE__ */ M(No, { children: [
4799
+ }, [p, i]), /* @__PURE__ */ M(Ro, { children: [
4797
4800
  /* @__PURE__ */ s(vn, { children: "Add new link" }),
4798
4801
  /* @__PURE__ */ M(Lo, { children: [
4799
4802
  /* @__PURE__ */ M(Do, { children: [
@@ -4829,7 +4832,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
4829
4832
  {
4830
4833
  onClick: () => b(T),
4831
4834
  tabIndex: 0,
4832
- ...R(O),
4835
+ ...N(O),
4833
4836
  children: [
4834
4837
  /* @__PURE__ */ s(it, { entity: T }),
4835
4838
  /* @__PURE__ */ M("span", { className: "label", children: [
@@ -4860,15 +4863,15 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
4860
4863
  isManager: l = !1,
4861
4864
  readOnly: c = !1
4862
4865
  }) => {
4863
- const [p, d] = j(!1), [y, g] = j(t), m = (R) => {
4864
- R.stopPropagation(), !(e.isRestricted || c) && (g(t), d(!0));
4866
+ const [p, d] = j(!1), [y, g] = j(t), m = (N) => {
4867
+ N.stopPropagation(), !(e.isRestricted || c) && (g(t), d(!0));
4865
4868
  }, C = () => {
4866
- const R = Math.max(1, y);
4867
- R !== t && i?.(R), d(!1);
4869
+ const N = Math.max(1, y);
4870
+ N !== t && i?.(N), d(!1);
4868
4871
  }, u = () => {
4869
4872
  g(t), d(!1);
4870
- }, b = (R) => {
4871
- R.stopPropagation(), R.key === "Enter" ? R.currentTarget.blur() : R.key === "Escape" && u();
4873
+ }, b = (N) => {
4874
+ N.stopPropagation(), N.key === "Enter" ? N.currentTarget.blur() : N.key === "Escape" && u();
4872
4875
  }, x = rr.includes(e.entityType) && !e.isRestricted;
4873
4876
  return /* @__PURE__ */ M(
4874
4877
  wn,
@@ -4884,27 +4887,27 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
4884
4887
  children: [
4885
4888
  /* @__PURE__ */ s(it, { entity: { entityType: e.entityType }, icon: e?.icon, color: e.color }),
4886
4889
  /* @__PURE__ */ s("span", { className: "title", children: e.isRestricted ? /* @__PURE__ */ s("span", { className: "label", children: l ? "Unknown" : "Access Restricted" }) : /* @__PURE__ */ M(me, { children: [
4887
- e.parents?.map((R, L) => /* @__PURE__ */ M(wt, { children: [
4888
- /* @__PURE__ */ s("span", { children: R }, L + "-path"),
4890
+ e.parents?.map((N, L) => /* @__PURE__ */ M(wt, { children: [
4891
+ /* @__PURE__ */ s("span", { children: N }, L + "-path"),
4889
4892
  /* @__PURE__ */ s("span", { children: "/" }, L + "-separator")
4890
4893
  ] }, L)),
4891
4894
  /* @__PURE__ */ s("span", { className: "label", children: e.label })
4892
4895
  ] }) }),
4893
4896
  !e.isRestricted && (p ? /* @__PURE__ */ s(
4894
- Ro,
4897
+ No,
4895
4898
  {
4896
4899
  value: y,
4897
4900
  min: 1,
4898
4901
  autoFocus: !0,
4899
- onChange: (R) => g(parseInt(R.target.value) || 1),
4900
- onFocus: (R) => R.target.select(),
4902
+ onChange: (N) => g(parseInt(N.target.value) || 1),
4903
+ onFocus: (N) => N.target.select(),
4901
4904
  onBlur: C,
4902
4905
  onKeyDown: b,
4903
- onClick: (R) => R.stopPropagation(),
4906
+ onClick: (N) => N.stopPropagation(),
4904
4907
  "data-tooltip": "Number of links to this entity."
4905
4908
  }
4906
4909
  ) : /* @__PURE__ */ M(
4907
- Nt,
4910
+ Rt,
4908
4911
  {
4909
4912
  onClick: m,
4910
4913
  tabIndex: 0,
@@ -4921,7 +4924,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
4921
4924
  icon: "link_off",
4922
4925
  variant: "text",
4923
4926
  className: "remove",
4924
- onClick: (R) => a(R, e),
4927
+ onClick: (N) => a(N, e),
4925
4928
  "data-tooltip": t > 1 ? `Remove all ${t} links` : "Remove link"
4926
4929
  }
4927
4930
  )
@@ -4962,16 +4965,16 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
4962
4965
  entityType: i,
4963
4966
  targetEntityType: c,
4964
4967
  linkType: l
4965
- }), [b, h] = j(null), [x, R] = j(!1), [L, E] = j({}), T = $n(n), S = (P) => {
4968
+ }), [b, h] = j(null), [x, N] = j(!1), [L, E] = j({}), T = $n(n), S = (P) => {
4966
4969
  const _ = L[P.groupKey];
4967
4970
  return _ !== void 0 && _ !== P.count ? _ : P.count;
4968
4971
  }, O = async (P) => {
4969
4972
  if (x) return;
4970
- R(!0);
4973
+ N(!0);
4971
4974
  const _ = await u.add(
4972
4975
  P.map((U) => ({ targetEntityId: U, linkId: lt() }))
4973
4976
  );
4974
- R(!1), _ && h(null);
4977
+ N(!1), _ && h(null);
4975
4978
  }, W = (P, _) => {
4976
4979
  P.stopPropagation(), u.remove(
4977
4980
  _.linkIds.map((U) => ({
@@ -5052,7 +5055,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
5052
5055
  }
5053
5056
  ),
5054
5057
  b === "picker" && /* @__PURE__ */ s(
5055
- Rr,
5058
+ Nr,
5056
5059
  {
5057
5060
  onClose: () => h(null),
5058
5061
  projectName: o,
@@ -5104,15 +5107,15 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
5104
5107
  m = Ln().clearRowsSelection;
5105
5108
  } catch {
5106
5109
  }
5107
- const u = (x, R) => {
5108
- Ge(R) || (m && m(), g ? g({
5110
+ const u = (x, N) => {
5111
+ Ge(N) || (m && m(), g ? g({
5109
5112
  entityId: x,
5110
- entityType: R
5111
- }) : console.log("Entity clicked:", x, R));
5113
+ entityType: N
5114
+ }) : console.log("Entity clicked:", x, N));
5112
5115
  }, b = e?.links ? Bi(e.links) : [], h = $n(b);
5113
5116
  if (p) {
5114
- const x = e?.entityId ?? "", R = x.charCodeAt(0) % 3 + 1;
5115
- return /* @__PURE__ */ s(ji, { children: Array.from({ length: R }, (L, E) => /* @__PURE__ */ s(
5117
+ const x = e?.entityId ?? "", N = x.charCodeAt(0) % 3 + 1;
5118
+ return /* @__PURE__ */ s(ji, { children: Array.from({ length: N }, (L, E) => /* @__PURE__ */ s(
5116
5119
  Yi,
5117
5120
  {
5118
5121
  className: "loading",
@@ -5128,12 +5131,12 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
5128
5131
  Et,
5129
5132
  {
5130
5133
  values: h.map((x) => {
5131
- const R = x.representative, L = R.isRestricted ? y ? "Unknown" : "Restricted" : R.label, E = R.isRestricted ? y ? "Unknown Link - Entity not found" : "Access Restricted - Insufficient Permissions to Entity" : R.parents.join("/") + "/" + R.label + (x.count > 1 ? ` (x${x.count})` : "");
5134
+ const N = x.representative, L = N.isRestricted ? y ? "Unknown" : "Restricted" : N.label, E = N.isRestricted ? y ? "Unknown Link - Entity not found" : "Access Restricted - Insufficient Permissions to Entity" : N.parents.join("/") + "/" + N.label + (x.count > 1 ? ` (x${x.count})` : "");
5132
5135
  return {
5133
5136
  label: L,
5134
5137
  tooltip: E,
5135
- icon: R.isRestricted ? y ? "help" : "lock" : void 0,
5136
- suffix: x.count > 1 ? /* @__PURE__ */ M(Nt, { style: { cursor: "default", pointerEvents: "none" }, children: [
5138
+ icon: N.isRestricted ? y ? "help" : "lock" : void 0,
5139
+ suffix: x.count > 1 ? /* @__PURE__ */ M(Rt, { style: { cursor: "default", pointerEvents: "none" }, children: [
5137
5140
  "x",
5138
5141
  x.count
5139
5142
  ] }) : void 0
@@ -5389,7 +5392,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
5389
5392
  const o = new URLSearchParams({ [n.param]: t.id });
5390
5393
  for (const a of t.itemIds) o.append("listItemId", a);
5391
5394
  return `/projects/${e}/${n.path}?${o}`;
5392
- }, on = ({ count: e }) => e > 1 ? /* @__PURE__ */ M(Nt, { style: { cursor: "default", pointerEvents: "none" }, children: [
5395
+ }, on = ({ count: e }) => e > 1 ? /* @__PURE__ */ M(Rt, { style: { cursor: "default", pointerEvents: "none" }, children: [
5393
5396
  "x",
5394
5397
  e
5395
5398
  ] }) : null, ua = () => {
@@ -5439,7 +5442,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
5439
5442
  i && /* @__PURE__ */ s(Ke, { isEditing: i, anchorId: a, onClose: l, children: /* @__PURE__ */ M(ot, { onMouseDown: (h) => h.stopPropagation(), children: [
5440
5443
  /* @__PURE__ */ s(bn, { children: m?.label }),
5441
5444
  /* @__PURE__ */ s(xn, { children: u.map(({ list: h, open: x }) => /* @__PURE__ */ M(wn, { className: K({ clickable: !!x }), onClick: x, children: [
5442
- /* @__PURE__ */ s(ee, { icon: Nr({ entityListType: h.entityListType, entityType: t }) }),
5445
+ /* @__PURE__ */ s(ee, { icon: Rr({ entityListType: h.entityListType, entityType: t }) }),
5443
5446
  /* @__PURE__ */ s("span", { className: "title", children: h.label }),
5444
5447
  /* @__PURE__ */ s(on, { count: h.itemIds.length })
5445
5448
  ] }, h.id)) })
@@ -5484,7 +5487,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
5484
5487
  nameDisabled: l = !1,
5485
5488
  labelDisabled: c = !1
5486
5489
  }) => {
5487
- const { anatomy: p } = We(), { entity_naming: d = { capitalization: "lower", separator: "_" } } = p, [y, g] = j(o), [m, C] = j(n), { setEditingCellId: u, updateEntities: b } = Lt(), h = Q(null), x = Q(null), R = Ft(y, d), L = m === R || !m;
5490
+ const { anatomy: p } = We(), { entity_naming: d = { capitalization: "lower", separator: "_" } } = p, [y, g] = j(o), [m, C] = j(n), { setEditingCellId: u, updateEntities: b } = Lt(), h = Q(null), x = Q(null), N = Ft(y, d), L = m === N || !m;
5488
5491
  q(() => {
5489
5492
  const I = setTimeout(() => {
5490
5493
  !c && h.current ? (h.current.focus(), h.current.select()) : !l && x.current && (x.current.focus(), x.current.select());
@@ -5502,9 +5505,9 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
5502
5505
  return;
5503
5506
  }
5504
5507
  }
5505
- const N = pr(m);
5506
- if (!N.valid || !m) {
5507
- console.error("Invalid name:", N.error), we.error(`Invalid name: ${N.error}`);
5508
+ const R = pr(m);
5509
+ if (!R.valid || !m) {
5510
+ console.error("Invalid name:", R.error), we.error(`Invalid name: ${R.error}`);
5508
5511
  return;
5509
5512
  }
5510
5513
  u(null), a?.();
@@ -5532,20 +5535,20 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
5532
5535
  u(null), a?.();
5533
5536
  }, [u, a]), S = Y(
5534
5537
  (I) => {
5535
- const N = I.target.value;
5536
- g(N), L && !l && C(Ft(N, d));
5538
+ const R = I.target.value;
5539
+ g(R), L && !l && C(Ft(R, d));
5537
5540
  },
5538
5541
  [L, l]
5539
5542
  ), O = Y((I) => {
5540
- const N = I.target.value;
5541
- C(N);
5543
+ const R = I.target.value;
5544
+ C(R);
5542
5545
  }, []), W = Y(
5543
5546
  (I) => {
5544
5547
  if (I.key === "ArrowDown") {
5545
5548
  if (I.preventDefault(), !l && x.current) {
5546
5549
  x.current.focus();
5547
- const N = x.current.value.length;
5548
- x.current.setSelectionRange(N, N);
5550
+ const R = x.current.value.length;
5551
+ x.current.setSelectionRange(R, R);
5549
5552
  }
5550
5553
  } else I.key === "Enter" && (I.preventDefault(), E());
5551
5554
  },
@@ -5555,8 +5558,8 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
5555
5558
  if (I.key === "ArrowUp") {
5556
5559
  if (I.preventDefault(), !c && h.current) {
5557
5560
  h.current.focus();
5558
- const N = h.current.value.length;
5559
- h.current.setSelectionRange(N, N);
5561
+ const R = h.current.value.length;
5562
+ h.current.setSelectionRange(R, R);
5560
5563
  }
5561
5564
  } else I.key === "Enter" && (I.preventDefault(), E());
5562
5565
  },
@@ -5728,11 +5731,11 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
5728
5731
  tooltip: b,
5729
5732
  mark: h,
5730
5733
  onChange: x,
5731
- entityType: R,
5734
+ entityType: N,
5732
5735
  pt: L,
5733
5736
  ...E
5734
5737
  }) => {
5735
- const T = Q(null), S = a?.type, { projectName: O } = We(), { isEditing: W, setEditingCellId: F, getEditingDraft: P, setEditingDraft: _ } = Lt(), { isCellFocused: U, gridMap: r, selectCell: f, focusCell: w, selectedCells: D } = Sn(), I = Ye(e, t), N = u?.includes(t) ?? !1, A = W(I), k = U(I), z = va(
5738
+ const T = Q(null), S = a?.type, { projectName: O } = We(), { isEditing: W, setEditingCellId: F, getEditingDraft: P, setEditingDraft: _ } = Lt(), { isCellFocused: U, gridMap: r, selectCell: f, focusCell: w, selectedCells: D } = Sn(), I = Ye(e, t), R = u?.includes(t) ?? !1, A = W(I), k = U(I), z = va(
5736
5739
  I,
5737
5740
  t,
5738
5741
  A && !d && S === "list_of_strings"
@@ -5794,7 +5797,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
5794
5797
  value: n,
5795
5798
  valueData: o,
5796
5799
  cellId: I,
5797
- entityType: R || "",
5800
+ entityType: N || "",
5798
5801
  ...$
5799
5802
  }
5800
5803
  );
@@ -5921,7 +5924,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
5921
5924
  {
5922
5925
  value: n || void 0,
5923
5926
  isInherited: c,
5924
- isMidnightExclusive: N,
5927
+ isMidnightExclusive: R,
5925
5928
  ...$,
5926
5929
  ...L?.date
5927
5930
  }
@@ -5940,7 +5943,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
5940
5943
  A,
5941
5944
  i,
5942
5945
  l,
5943
- N,
5946
+ R,
5944
5947
  te,
5945
5948
  z
5946
5949
  ]);
@@ -6043,7 +6046,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
6043
6046
  color: var(--md-sys-color-primary);
6044
6047
  }
6045
6048
  } */
6046
- `, Ra = v.div`
6049
+ `, Na = v.div`
6047
6050
  display: flex;
6048
6051
  flex-direction: column;
6049
6052
  align-items: flex-start;
@@ -6096,7 +6099,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
6096
6099
  color: var(--md-sys-color-outline);
6097
6100
  flex-shrink: 0;
6098
6101
  }
6099
- `, Na = ({
6102
+ `, Ra = ({
6100
6103
  id: e,
6101
6104
  entity: t,
6102
6105
  path: n,
@@ -6131,7 +6134,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
6131
6134
  color: t.color || void 0
6132
6135
  }
6133
6136
  ),
6134
- /* @__PURE__ */ M(Ra, { className: g, children: [
6137
+ /* @__PURE__ */ M(Na, { className: g, children: [
6135
6138
  u && !d && /* @__PURE__ */ M("span", { className: "path", children: [
6136
6139
  n,
6137
6140
  y && n ? "/" : ""
@@ -6178,7 +6181,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, _i = (e) => {
6178
6181
  className: l,
6179
6182
  isLoading: c
6180
6183
  }) => {
6181
- const p = ae(Rn), d = ni(), y = (m) => {
6184
+ const p = ae(Nn), d = ni(), y = (m) => {
6182
6185
  m.button !== 0 || !o || !p || (d?.clearRowsSelection(), p.setSelectedEntity({ entityId: o, entityType: a }), m.preventDefault());
6183
6186
  }, g = (m) => {
6184
6187
  m.detail === 2 && y(m);
@@ -6362,42 +6365,42 @@ export {
6362
6365
  Ki as A,
6363
6366
  Eo as B,
6364
6367
  Tn as C,
6365
- To as D,
6366
- it as E,
6367
- Tl as F,
6368
- Hs as G,
6368
+ Hr as D,
6369
+ Qr as E,
6370
+ Il as F,
6371
+ Us as G,
6369
6372
  Qo as H,
6370
6373
  En as I,
6371
6374
  Lt as J,
6372
6375
  Wo as K,
6373
6376
  Ui as L,
6374
- Ms as M,
6377
+ Fs as M,
6375
6378
  Ko as N,
6376
6379
  Sn as O,
6377
6380
  Xo as P,
6378
- xl as Q,
6379
- vl as R,
6380
- Js as S,
6381
+ Tl as Q,
6382
+ kl as R,
6383
+ el as S,
6381
6384
  Qt as T,
6382
6385
  be as U,
6383
6386
  Ho as V,
6384
6387
  Jo as W,
6385
- Os as X,
6388
+ Hs as X,
6386
6389
  Yo as Y,
6387
- Rn as Z,
6390
+ Nn as Z,
6388
6391
  ti as _,
6389
6392
  qo as a,
6390
6393
  si as a$,
6391
6394
  Ye as a0,
6392
- Nn as a1,
6393
- Us as a2,
6394
- Ks as a3,
6395
+ Rn as a1,
6396
+ Gs as a2,
6397
+ Bs as a3,
6395
6398
  tt as a4,
6396
6399
  Ge as a5,
6397
- yl as a6,
6398
- Fs as a7,
6400
+ vl as a6,
6401
+ Ks as a7,
6399
6402
  Pi as a8,
6400
- kl as a9,
6403
+ Sl as a9,
6401
6404
  fi as aA,
6402
6405
  Z as aB,
6403
6406
  X as aC,
@@ -6408,7 +6411,7 @@ export {
6408
6411
  Oo as aH,
6409
6412
  Aa as aI,
6410
6413
  Ya as aJ,
6411
- Na as aK,
6414
+ Ra as aK,
6412
6415
  ht as aL,
6413
6416
  Be as aM,
6414
6417
  Qa as aN,
@@ -6419,47 +6422,47 @@ export {
6419
6422
  pa as aS,
6420
6423
  Ja as aT,
6421
6424
  de as aU,
6422
- Gs as aV,
6423
- Bs as aW,
6424
- Vs as aX,
6425
+ qs as aV,
6426
+ Ys as aW,
6427
+ js as aX,
6425
6428
  ri as aY,
6426
6429
  At as aZ,
6427
6430
  di as a_,
6428
6431
  Cn as aa,
6429
6432
  Fe as ab,
6430
- ba as ac,
6431
- fl as ad,
6432
- sl as ae,
6433
- ll as af,
6434
- dl as ag,
6435
- Zs as ah,
6436
- ol as ai,
6437
- gl as aj,
6438
- al as ak,
6439
- bl as al,
6440
- il as am,
6441
- cl as an,
6442
- Ln as ao,
6443
- pl as ap,
6444
- Di as aq,
6445
- ul as ar,
6446
- js as as,
6447
- gi as at,
6448
- tl as au,
6449
- gt as av,
6450
- el as aw,
6451
- rl as ax,
6452
- nl as ay,
6453
- Xs as az,
6433
+ gt as ac,
6434
+ ba as ad,
6435
+ xl as ae,
6436
+ dl as af,
6437
+ ul as ag,
6438
+ ml as ah,
6439
+ tl as ai,
6440
+ sl as aj,
6441
+ fl as ak,
6442
+ cl as al,
6443
+ wl as am,
6444
+ ll as an,
6445
+ pl as ao,
6446
+ Ln as ap,
6447
+ hl as aq,
6448
+ Di as ar,
6449
+ gl as as,
6450
+ Qs as at,
6451
+ gi as au,
6452
+ ol as av,
6453
+ rl as aw,
6454
+ al as ax,
6455
+ il as ay,
6456
+ nl as az,
6454
6457
  Pt as b,
6455
6458
  yn as b0,
6456
6459
  Ji as b1,
6457
6460
  Ga as b2,
6458
6461
  Jt as b3,
6459
- Cl as b4,
6460
- Sl as b5,
6461
- wl as b6,
6462
- ml as b7,
6462
+ El as b4,
6463
+ Nl as b5,
6464
+ Cl as b6,
6465
+ yl as b7,
6463
6466
  oe as b8,
6464
6467
  Ci as b9,
6465
6468
  nt as ba,
@@ -6468,13 +6471,13 @@ export {
6468
6471
  Le as bd,
6469
6472
  _n as be,
6470
6473
  ce as bf,
6471
- hl as bg,
6474
+ bl as bg,
6472
6475
  ge as bh,
6473
6476
  bi,
6474
6477
  Dt as bj,
6475
6478
  Gi as bk,
6476
6479
  ut as bl,
6477
- Ni as bm,
6480
+ Ri as bm,
6478
6481
  ki as bn,
6479
6482
  pe as bo,
6480
6483
  pt as bp,
@@ -6485,25 +6488,25 @@ export {
6485
6488
  Mo as bu,
6486
6489
  ni as bv,
6487
6490
  Ai as bw,
6488
- Dn as c,
6489
- qs as d,
6490
- Ys as e,
6491
- Jr as f,
6491
+ Jr as c,
6492
+ Dn as d,
6493
+ Zs as e,
6494
+ Js as f,
6492
6495
  ei as g,
6493
- zs as h,
6494
- Ws as i,
6495
- Et as j,
6496
- eo as k,
6497
- Vi as l,
6498
- Qi as m,
6499
- $n as n,
6500
- Fi as o,
6496
+ Ws as h,
6497
+ Vs as i,
6498
+ $t as j,
6499
+ Et as k,
6500
+ To as l,
6501
+ it as m,
6502
+ eo as n,
6503
+ Vi as o,
6501
6504
  _i as p,
6502
- Hr as q,
6503
- Qr as r,
6504
- $t as s,
6505
+ Qi as q,
6506
+ $n as r,
6507
+ Fi as s,
6505
6508
  ro as t,
6506
- Qs as u,
6509
+ Xs as u,
6507
6510
  zo as v,
6508
6511
  Uo as w,
6509
6512
  zi as x,