@ynput/ayon-frontend-shared 0.8.1 → 0.10.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 (50) hide show
  1. package/dist/DetailsPanel.es.js +39 -39
  2. package/dist/ListTable.es.js +738 -651
  3. package/dist/NewEntity.es.js +4 -2
  4. package/dist/ProjectTreeTable.es.js +4208 -4185
  5. package/dist/ProjectsTable.es.js +5 -4
  6. package/dist/Slicer.es.js +327 -294
  7. package/dist/Views.es.js +725 -713
  8. package/dist/chunks/ColumnDropIndicator.es.js +33 -27
  9. package/dist/chunks/DeleteEntitiesConfirmDialog.es.js +44 -38
  10. package/dist/chunks/EntityPickerDialog.es.js +19 -19
  11. package/dist/chunks/Feed.es.js +112 -110
  12. package/dist/chunks/FilmstripEntityCard.es.js +2 -2
  13. package/dist/chunks/GroupSettingsFallback.es.js +3 -2
  14. package/dist/chunks/MetaWidget.es.js +828 -809
  15. package/dist/chunks/NewEntityContextInstance.es.js +6 -5
  16. package/dist/chunks/ReviewablesSelector.es.js +76 -76
  17. package/dist/chunks/SimpleTable.es.js +151 -149
  18. package/dist/chunks/Slicer.es.js +637 -617
  19. package/dist/chunks/TableExportContextInstance.es.js +415 -471
  20. package/dist/chunks/ThumbnailSimple.es.js +11 -11
  21. package/dist/chunks/Watchers.es.js +46 -46
  22. package/dist/chunks/getUris.es.js +1069 -1057
  23. package/dist/chunks/searchTerms.es.js +617 -581
  24. package/dist/chunks/useCreateContextMenu.es.js +15 -13
  25. package/dist/chunks/useLocalStorage.es.js +78 -0
  26. package/dist/components.es.js +916 -884
  27. package/dist/context.es.js +348 -337
  28. package/dist/hooks.es.js +218 -187
  29. package/dist/index.es.js +11 -10
  30. package/dist/types/Actions.d.ts +17 -16
  31. package/dist/types/ContextMenu.d.ts +18 -17
  32. package/dist/types/DetailsPanel.d.ts +17 -16
  33. package/dist/types/EntityPickerDialog.d.ts +17 -16
  34. package/dist/types/Feed.d.ts +18 -17
  35. package/dist/types/ListTable.d.ts +28 -18
  36. package/dist/types/NewEntity.d.ts +19 -16
  37. package/dist/types/ProjectTreeTable.d.ts +62 -19
  38. package/dist/types/ProjectsTable.d.ts +18 -17
  39. package/dist/types/RepresentationsList.d.ts +17 -16
  40. package/dist/types/SimpleTable.d.ts +18 -17
  41. package/dist/types/Slicer.d.ts +24 -17
  42. package/dist/types/Views.d.ts +23 -17
  43. package/dist/types/api.d.ts +18 -17
  44. package/dist/types/components.d.ts +64 -18
  45. package/dist/types/context.d.ts +28 -18
  46. package/dist/types/hooks.d.ts +20 -17
  47. package/dist/types/index.d.ts +17 -16
  48. package/dist/types/util.d.ts +38 -16
  49. package/dist/util.es.js +116 -113
  50. package/package.json +2 -2
@@ -1,28 +1,28 @@
1
1
  import { jsx as s, jsxs as M, Fragment as he } from "react/jsx-runtime";
2
- import { useRef as Q, useState as G, useLayoutEffect as Mt, createElement as zn, forwardRef as Se, useEffect as q, Fragment as wt, useMemo as ee, useCallback as Y, createContext as ye, useContext as se, memo as kt } from "react";
2
+ import { useRef as Q, useState as G, useLayoutEffect as Mt, createElement as Fn, forwardRef as Se, useEffect as q, Fragment as wt, useMemo as ee, useCallback as Y, createContext as ye, useContext as ae, memo as kt } from "react";
3
3
  import W from "clsx";
4
4
  import x, { css as Ot } from "styled-components";
5
- import { Icon as te, getTextColor as Fn, Dropdown as cn, FormRow as Je, Dialog as dn, InputText as et, IconSelect as Hn, ColorPicker as Bn, Button as xe, SaveButton as Wn, TagsSelect as Un, BorderedSection as zt, theme as Ke, getMixedCounts as Kn, applyMixedChange as Vn } from "@ynput/ayon-react-components";
5
+ import { Icon as re, getTextColor as Hn, Dropdown as cn, FormRow as Ze, Dialog as dn, InputText as tt, IconSelect as Bn, ColorPicker as Wn, Button as xe, SaveButton as Un, TagsSelect as Kn, BorderedSection as zt, theme as Ke, getMixedCounts as Vn, applyMixedChange as Gn } from "@ynput/ayon-react-components";
6
6
  import "@module-federation/enhanced/runtime";
7
7
  import "@ynput/ayon-addon/host";
8
8
  import { toast as we } from "react-toastify";
9
- import { bA as Gn, bs as Tt, bJ as jn, bB as Yn, a as qn } from "./searchTerms.es.js";
10
- import { bv as Qn, d8 as Jn, bG as Zn, L as Xn, a2 as er, c0 as at, aZ as tr, aK as nr, cj as rr, v as or, dB as ir, dr as ar, cA as sr, aj as lr } from "./getUris.es.js";
9
+ import { bC as jn, bs as Tt, bL as Yn, bD as qn, a as Qn } from "./searchTerms.es.js";
10
+ import { bv as Jn, d8 as Zn, bG as Xn, L as er, a2 as tr, c0 as st, aZ as nr, aK as rr, cj as or, v as ir, dB as ar, dr as sr, cA as lr, aj as cr } from "./getUris.es.js";
11
11
  import "primereact/confirmdialog";
12
12
  import { upperFirst as He, debounce as un } from "lodash";
13
13
  import "uuid";
14
- import { e as cr, g as Ze, d as yt, b as pn, p as Ft, c as dr, a as ur } from "./iconUtils.es.js";
14
+ import { e as dr, g as Xe, d as yt, b as pn, p as Ft, c as ur, a as pr } from "./iconUtils.es.js";
15
15
  import "axios";
16
- import { q as Be, b as pr, c as mn } from "./TableExportContextInstance.es.js";
16
+ import { o as Be, b as mr, c as mn } from "./TableExportContextInstance.es.js";
17
17
  import "semver";
18
18
  import "./ContextMenuContextInstance.es.js";
19
19
  import "react-dom";
20
20
  import "react-router-dom";
21
- import { e as ft, P as mr, a6 as gr, r as We, J as Ct, as as hr, G as yr, s as fr, t as St, a9 as br, a3 as vr, U as xr, aa as wr, a8 as kr, F as Tr } from "./FilmstripEntityCard.es.js";
21
+ import { e as ft, P as gr, a6 as hr, r as We, J as Ct, as as yr, G as fr, s as br, t as St, a9 as vr, a3 as xr, U as wr, aa as kr, a8 as Tr, F as Cr } from "./FilmstripEntityCard.es.js";
22
22
  import "lexical";
23
23
  import "@lexical/markdown";
24
24
  import "match-sorter";
25
- import { parseISO as st, isValid as Ht, subMilliseconds as bt, format as Cr } from "date-fns";
25
+ import { parseISO as lt, isValid as Ht, subMilliseconds as bt, format as Sr } from "date-fns";
26
26
  import "@lexical/code";
27
27
  import "@lexical/list";
28
28
  import "@lexical/rich-text";
@@ -32,14 +32,14 @@ import "@lexical/react/LexicalBlockWithAlignableContents";
32
32
  import "@lexical/react/LexicalDecoratorBlockNode";
33
33
  import "@ynput/ayon-addon";
34
34
  import { sortingFns as Ne } from "@tanstack/react-table";
35
- import { W as Sr, l as _e, L as $e, R as Bt, g as lt, C as Ir, m as Er } from "./realtimeUpdatesUtils.es.js";
36
- import gn, { defaultUrlTransform as Rr } from "react-markdown";
35
+ import { W as Ir, l as _e, L as $e, R as Bt, g as ct, C as Er, m as Rr } from "./realtimeUpdatesUtils.es.js";
36
+ import gn, { defaultUrlTransform as Lr } from "react-markdown";
37
37
  import hn from "remark-gfm";
38
38
  import { useSelector as Wt } from "react-redux";
39
- import { E as Lr } from "./EntityPickerDialog.es.js";
40
- import { g as Te, a as Nr } from "./getEntityTypeIcon.es.js";
41
- import { g as Dr, a as Ar } from "./getThumbnailUrl.es.js";
42
- const Pr = x.div`
39
+ import { E as Nr } from "./EntityPickerDialog.es.js";
40
+ import { g as Te, a as Dr } from "./getEntityTypeIcon.es.js";
41
+ import { g as Ar, a as Pr } from "./getThumbnailUrl.es.js";
42
+ const _r = x.div`
43
43
  display: flex;
44
44
  gap: var(--base-gap-small);
45
45
  align-items: center;
@@ -80,12 +80,12 @@ const Pr = x.div`
80
80
  top: -9999px;
81
81
  left: -9999px;
82
82
  z-index: -100;
83
- `, _r = x(It)`
83
+ `, $r = x(It)`
84
84
  flex-shrink: 0;
85
85
  display: flex;
86
86
  justify-content: center;
87
87
  align-items: center;
88
- `, $r = x(te)`
88
+ `, Mr = x(re)`
89
89
  background-color: var(--md-sys-color-surface-container);
90
90
  border-radius: var(--border-radius-m);
91
91
  width: 24px;
@@ -110,54 +110,54 @@ const Pr = x.div`
110
110
  if (!m || g.length === 0 || g.length !== e.length) return;
111
111
  const S = Array.from(m.querySelectorAll(".offscreen-chip"));
112
112
  if (S.length !== e.length) return;
113
- const u = parseFloat(getComputedStyle(m).rowGap) || 0, b = S.map((I) => I.getBoundingClientRect().width), y = S[0].getBoundingClientRect().height, w = m.querySelector(".offscreen-more-chip")?.getBoundingClientRect().width || 60, R = (I, T, z) => {
113
+ const p = parseFloat(getComputedStyle(m).rowGap) || 0, b = S.map((E) => E.getBoundingClientRect().width), y = S[0].getBoundingClientRect().height, w = m.querySelector(".offscreen-more-chip")?.getBoundingClientRect().width || 60, R = (E, T, z) => {
114
114
  let H = 1, B = 0;
115
115
  const A = (P, U) => {
116
- U ? B = P : B + u + P <= z ? B += u + P : (H++, B = P);
116
+ U ? B = P : B + p + P <= z ? B += p + P : (H++, B = P);
117
117
  };
118
- for (let P = 0; P < I; P++) A(b[P], P === 0);
119
- return T && A(T, I === 0), H;
118
+ for (let P = 0; P < E; P++) A(b[P], P === 0);
119
+ return T && A(T, E === 0), H;
120
120
  }, _ = () => {
121
- const I = m.getBoundingClientRect().width, T = m.offsetHeight, z = y ? Math.max(1, Math.floor((T + u) / (y + u))) : 1;
121
+ const E = m.getBoundingClientRect().width, T = m.offsetHeight, z = y ? Math.max(1, Math.floor((T + p) / (y + p))) : 1;
122
122
  let H = e.length;
123
- for (; H > 1 && R(H, H < e.length ? w : 0, I) > z; )
123
+ for (; H > 1 && R(H, H < e.length ? w : 0, E) > z; )
124
124
  H--;
125
125
  c(
126
126
  (B) => B.visibleCount === H && B.rows === z ? B : { visibleCount: H, rows: z }
127
127
  );
128
- }, E = new ResizeObserver(_);
129
- return E.observe(m), _(), () => E.disconnect();
128
+ }, I = new ResizeObserver(_);
129
+ return I.observe(m), _(), () => I.disconnect();
130
130
  }, [e, g]), t) return null;
131
131
  if (!e.length)
132
- return /* @__PURE__ */ s($r, { icon: "add", className: o?.chip?.className });
133
- const f = e.slice(0, i), p = i ? e.length - f.length : 0;
134
- return /* @__PURE__ */ M(Pr, { ref: a, className: W(n, { "multi-row": l > 1 }), children: [
135
- f.map((m, S) => /* @__PURE__ */ zn(
132
+ return /* @__PURE__ */ s(Mr, { icon: "add", className: o?.chip?.className });
133
+ const f = e.slice(0, i), u = i ? e.length - f.length : 0;
134
+ return /* @__PURE__ */ M(_r, { ref: a, className: W(n, { "multi-row": l > 1 }), children: [
135
+ f.map((m, S) => /* @__PURE__ */ Fn(
136
136
  It,
137
137
  {
138
138
  ...o?.chip,
139
139
  key: m.label + S,
140
140
  "data-tooltip": m.tooltip,
141
141
  onClick: m.onClick ?? o?.chip?.onClick,
142
- onMouseDown: m.onClick ? (u) => u.stopPropagation() : o?.chip?.onMouseDown,
142
+ onMouseDown: m.onClick ? (p) => p.stopPropagation() : o?.chip?.onMouseDown,
143
143
  className: W(
144
144
  "chip",
145
- { last: S === f.length - 1 && p > 0 },
145
+ { last: S === f.length - 1 && u > 0 },
146
146
  o?.chip?.className
147
147
  )
148
148
  },
149
149
  m.prefix,
150
- m?.icon && /* @__PURE__ */ s(te, { icon: m.icon }),
150
+ m?.icon && /* @__PURE__ */ s(re, { icon: m.icon }),
151
151
  m.label,
152
152
  m.suffix
153
153
  )),
154
- p > 0 && /* @__PURE__ */ M(_r, { className: W("more-chip", o?.chip?.className), children: [
154
+ u > 0 && /* @__PURE__ */ M($r, { className: W("more-chip", o?.chip?.className), children: [
155
155
  "+",
156
- p
156
+ u
157
157
  ] }),
158
158
  g.map((m, S) => /* @__PURE__ */ M(Ut, { className: "offscreen-chip", children: [
159
159
  m.prefix,
160
- m?.icon && /* @__PURE__ */ s(te, { icon: m.icon }),
160
+ m?.icon && /* @__PURE__ */ s(re, { icon: m.icon }),
161
161
  m.label,
162
162
  m.suffix
163
163
  ] }, m.label + S)),
@@ -166,7 +166,7 @@ const Pr = x.div`
166
166
  g.length - 1
167
167
  ] })
168
168
  ] });
169
- }, Mr = x.div`
169
+ }, Or = x.div`
170
170
  width: 8px;
171
171
  height: 8px;
172
172
  border-radius: 50%;
@@ -176,9 +176,9 @@ const Pr = x.div`
176
176
  top: 50%;
177
177
  left: 50%;
178
178
  transform: translate(-50%, -50%);
179
- `, Or = Se(
180
- ({ color: e, ...t }, n) => /* @__PURE__ */ s(Mr, { style: { backgroundColor: e }, ...t, ref: n })
181
- ), zr = x.input`
179
+ `, zr = Se(
180
+ ({ color: e, ...t }, n) => /* @__PURE__ */ s(Or, { style: { backgroundColor: e }, ...t, ref: n })
181
+ ), Fr = x.input`
182
182
  z-index: 10;
183
183
  border: none;
184
184
  outline: none;
@@ -192,7 +192,7 @@ const Pr = x.div`
192
192
  background-color: transparent;
193
193
  width: 100%;
194
194
  box-sizing: border-box;
195
- `, Fr = Se(
195
+ `, Hr = Se(
196
196
  ({
197
197
  value: e,
198
198
  onChange: t,
@@ -203,10 +203,10 @@ const Pr = x.div`
203
203
  }, l) => {
204
204
  const [c, g] = G(() => {
205
205
  if (e) {
206
- const u = st(e);
207
- if (Ht(u))
206
+ const p = lt(e);
207
+ if (Ht(p))
208
208
  return ft(
209
- a ? bt(u, 1) : u,
209
+ a ? bt(p, 1) : p,
210
210
  "yyyy-MM-dd"
211
211
  );
212
212
  }
@@ -214,10 +214,10 @@ const Pr = x.div`
214
214
  });
215
215
  q(() => {
216
216
  if (e) {
217
- const u = st(e);
218
- Ht(u) ? g(
217
+ const p = lt(e);
218
+ Ht(p) ? g(
219
219
  ft(
220
- a ? bt(u, 1) : u,
220
+ a ? bt(p, 1) : p,
221
221
  "yyyy-MM-dd"
222
222
  )
223
223
  ) : g("");
@@ -228,64 +228,64 @@ const Pr = x.div`
228
228
  o && d.current && (d.current.focus(), setTimeout(() => {
229
229
  try {
230
230
  d.current?.showPicker();
231
- } catch (u) {
232
- console.debug("Date picker could not be shown automatically:", u);
231
+ } catch (p) {
232
+ console.debug("Date picker could not be shown automatically:", p);
233
233
  }
234
234
  }, 100));
235
235
  }, [o]);
236
- const f = (u) => {
237
- u.preventDefault();
236
+ const f = (p) => {
237
+ p.preventDefault();
238
238
  try {
239
239
  d.current?.showPicker();
240
240
  } catch (b) {
241
241
  console.debug("Date picker could not be shown on click:", b);
242
242
  }
243
- }, p = (u) => {
243
+ }, u = (p) => {
244
244
  if (c) {
245
245
  const [b, y, w] = c.split("-").map(Number);
246
246
  if (b && y && w) {
247
247
  const _ = new Date(Date.UTC(b, y - 1, w + Number(a))).toISOString();
248
- if (u === "Enter")
249
- return t(_, u), !0;
250
- if (u === "Click") {
251
- const E = e ? st(e).toISOString() : "";
252
- return _ !== E ? (t(_, u), !0) : !1;
248
+ if (p === "Enter")
249
+ return t(_, p), !0;
250
+ if (p === "Click") {
251
+ const I = e ? lt(e).toISOString() : "";
252
+ return _ !== I ? (t(_, p), !0) : !1;
253
253
  }
254
254
  }
255
255
  }
256
256
  return !1;
257
257
  };
258
258
  return /* @__PURE__ */ s(
259
- zr,
259
+ Fr,
260
260
  {
261
261
  ...i,
262
262
  ref: d,
263
263
  type: "date",
264
264
  value: c,
265
- onChange: (u) => g(u.target.value),
265
+ onChange: (p) => g(p.target.value),
266
266
  onBlur: () => {
267
- p("Click") || n?.();
267
+ u("Click") || n?.();
268
268
  },
269
- onKeyDown: (u) => {
270
- u.key === "Enter" ? (u.preventDefault(), p("Enter"), d.current?.blur()) : u.key === "Escape" && (u.preventDefault(), n?.());
269
+ onKeyDown: (p) => {
270
+ p.key === "Enter" ? (p.preventDefault(), u("Enter"), d.current?.blur()) : p.key === "Escape" && (p.preventDefault(), n?.());
271
271
  },
272
272
  onClick: f
273
273
  }
274
274
  );
275
275
  }
276
- ), rt = (e, ...t) => Ot`
277
- @container cell (min-height: ${Sr}px) {
276
+ ), ot = (e, ...t) => Ot`
277
+ @container cell (min-height: ${Ir}px) {
278
278
  ${Ot(e, ...t)}
279
279
  }
280
- `, Hr = x.span`
280
+ `, Br = x.span`
281
281
  white-space: nowrap;
282
282
 
283
- ${rt`
283
+ ${ot`
284
284
  white-space: normal;
285
285
  `}
286
- `, Br = x.span`
286
+ `, Wr = x.span`
287
287
  white-space: nowrap;
288
- `, Wr = Se(
288
+ `, Ur = Se(
289
289
  ({
290
290
  value: e,
291
291
  isEditing: t,
@@ -297,17 +297,17 @@ const Pr = x.div`
297
297
  isMidnightExclusive: c = !1,
298
298
  ...g
299
299
  }, d) => {
300
- let f = "", p = !1;
300
+ let f = "", u = !1;
301
301
  if (e)
302
302
  try {
303
- const S = l ? "dd-MM-yyyy HH:mm:ss" : "dd-MM-yyyy", u = c ? bt(new Date(e), 1) : new Date(e);
304
- f = l ? Cr(u, S) : ft(u, S);
303
+ const S = l ? "dd-MM-yyyy HH:mm:ss" : "dd-MM-yyyy", p = c ? bt(new Date(e), 1) : new Date(e);
304
+ f = l ? Sr(p, S) : ft(p, S);
305
305
  } catch {
306
- console.error("Invalid date value:", e), f = "Invalid Date", p = !0;
306
+ console.error("Invalid date value:", e), f = "Invalid Date", u = !0;
307
307
  }
308
308
  if (t)
309
309
  return /* @__PURE__ */ s(
310
- Fr,
310
+ Hr,
311
311
  {
312
312
  value: e,
313
313
  onChange: a,
@@ -318,13 +318,13 @@ const Pr = x.div`
318
318
  ...g
319
319
  }
320
320
  );
321
- const m = f && !p ? f.split(" ") : [];
322
- return /* @__PURE__ */ s(Hr, { ...g, ref: d, children: p ? f : m.map((S, u) => /* @__PURE__ */ M(wt, { children: [
323
- u > 0 && " ",
324
- /* @__PURE__ */ s(Br, { children: S })
325
- ] }, u)) });
321
+ const m = f && !u ? f.split(" ") : [];
322
+ return /* @__PURE__ */ s(Br, { ...g, ref: d, children: u ? f : m.map((S, p) => /* @__PURE__ */ M(wt, { children: [
323
+ p > 0 && " ",
324
+ /* @__PURE__ */ s(Wr, { children: S })
325
+ ] }, p)) });
326
326
  }
327
- ), Ur = "edit-trigger", vt = x.span`
327
+ ), Kr = "edit-trigger", vt = x.span`
328
328
  text-align: left;
329
329
  border-radius: var(--border-radius-m);
330
330
  padding: 0px 2px;
@@ -336,7 +336,7 @@ const Pr = x.div`
336
336
  &.placeholder {
337
337
  color: var(--md-sys-color-outline);
338
338
  }
339
- `, Kr = x.div`
339
+ `, Vr = x.div`
340
340
  display: flex;
341
341
  gap: 1px;
342
342
  align-items: center;
@@ -365,7 +365,7 @@ const Pr = x.div`
365
365
  }
366
366
 
367
367
  /* wrapped rows sit on a fixed row lattice, so the height clip can only land between rows */
368
- ${rt`
368
+ ${ot`
369
369
  &.multi-select:not(.item) {
370
370
  .values {
371
371
  --wrap-row-height: 24px;
@@ -403,7 +403,7 @@ const Pr = x.div`
403
403
  }
404
404
  }
405
405
  `}
406
- `, Vr = x.div`
406
+ `, Gr = x.div`
407
407
  flex: 1;
408
408
  display: flex;
409
409
  gap: var(--base-gap-small);
@@ -413,14 +413,14 @@ const Pr = x.div`
413
413
  border-radius: var(--border-radius-m);
414
414
  padding: 0px 2px;
415
415
  flex-wrap: nowrap;
416
- `, Gr = x.div`
416
+ `, jr = x.div`
417
417
  display: flex;
418
418
  gap: 2px;
419
419
  align-items: center;
420
420
 
421
421
  max-width: 100%;
422
422
  min-width: 20px;
423
- `, jr = x.img`
423
+ `, Yr = x.img`
424
424
  width: 20px;
425
425
  height: 20px;
426
426
  object-fit: cover;
@@ -429,7 +429,7 @@ const Pr = x.div`
429
429
  &.avatar {
430
430
  border-radius: 50%;
431
431
  }
432
- `, Yr = x.div`
432
+ `, qr = x.div`
433
433
  border-radius: var(--border-radius-m);
434
434
  display: flex;
435
435
  justify-content: center;
@@ -444,7 +444,7 @@ const Pr = x.div`
444
444
  &.open {
445
445
  background-color: transparent;
446
446
  }
447
- `, qr = x(te)`
447
+ `, Qr = x(re)`
448
448
  transition: rotate 0.2s;
449
449
  padding: 2px;
450
450
  `, Ve = ({
@@ -459,46 +459,46 @@ const Pr = x.div`
459
459
  iconOnlyColor: g = !1,
460
460
  className: d,
461
461
  pt: f,
462
- ...p
462
+ ...u
463
463
  }) => {
464
464
  const {
465
465
  icon: m = {},
466
466
  img: S = {},
467
- value: u = {},
467
+ value: p = {},
468
468
  expand: b = {},
469
469
  close: y = {}
470
- } = f || {}, { style: w, className: R, ..._ } = m, { style: E, className: I, ...T } = S, { style: z, className: H, ...B } = u, { style: A, className: P, ...U } = b, { style: r, className: h, ...v } = y, N = e.every((k) => k.icon), C = !n || !N, L = !N && o && !i, D = !e.length && t;
470
+ } = f || {}, { style: w, className: R, ..._ } = m, { style: I, className: E, ...T } = S, { style: z, className: H, ...B } = p, { style: A, className: P, ...U } = b, { style: r, className: h, ...v } = y, N = e.every((k) => k.icon), C = !n || !N, L = !N && o && !i, D = !e.length && t;
471
471
  return D && (e = [
472
472
  {
473
473
  label: t,
474
474
  value: ""
475
475
  }
476
476
  ]), /* @__PURE__ */ M(
477
- Kr,
477
+ Vr,
478
478
  {
479
479
  className: W(d, {
480
480
  selected: l,
481
481
  item: i,
482
482
  "multi-select": o
483
483
  }),
484
- ...p,
484
+ ...u,
485
485
  children: [
486
- /* @__PURE__ */ s(Vr, { className: "values", children: e.map((k, O) => /* @__PURE__ */ M(
487
- Gr,
486
+ /* @__PURE__ */ s(Gr, { className: "values", children: e.map((k, O) => /* @__PURE__ */ M(
487
+ jr,
488
488
  {
489
489
  className: W({ "has-img": Kt(k.icon) }),
490
490
  children: [
491
491
  k.icon && Kt(k.icon) ? /* @__PURE__ */ s(
492
- jr,
492
+ Yr,
493
493
  {
494
494
  src: k.icon,
495
- className: W({ avatar: Qr(k.icon) }, I),
496
- style: E,
495
+ className: W({ avatar: Jr(k.icon) }, E),
496
+ style: I,
497
497
  "data-tooltip": k.label,
498
498
  ...T
499
499
  }
500
500
  ) : k.icon ? /* @__PURE__ */ s(
501
- te,
501
+ re,
502
502
  {
503
503
  icon: k.icon,
504
504
  style: { color: k.color, ...w },
@@ -510,7 +510,7 @@ const Pr = x.div`
510
510
  vt,
511
511
  {
512
512
  style: {
513
- color: L && k.color ? Fn(k.color) : g && k.icon ? void 0 : k.color,
513
+ color: L && k.color ? Hn(k.color) : g && k.icon ? void 0 : k.color,
514
514
  backgroundColor: L ? k.color || "var(--md-sys-color-surface-container)" : "transparent",
515
515
  ...z
516
516
  },
@@ -525,11 +525,11 @@ const Pr = x.div`
525
525
  k.value.toString() + O
526
526
  )) }),
527
527
  !i && !c && /* @__PURE__ */ s(
528
- Yr,
528
+ qr,
529
529
  {
530
- className: W("expand", Ur, { open: a }, P),
530
+ className: W("expand", Kr, { open: a }, P),
531
531
  children: /* @__PURE__ */ s(
532
- qr,
532
+ Qr,
533
533
  {
534
534
  icon: "expand_more",
535
535
  style: { rotate: a ? "180deg" : "0", ...A },
@@ -540,7 +540,7 @@ const Pr = x.div`
540
540
  }
541
541
  ),
542
542
  i && l && o && /* @__PURE__ */ s(
543
- te,
543
+ re,
544
544
  {
545
545
  icon: "close",
546
546
  style: { marginLeft: "auto", marginRight: 4, ...r },
@@ -552,17 +552,17 @@ const Pr = x.div`
552
552
  ]
553
553
  }
554
554
  );
555
- }, Kt = (e = "") => e.startsWith("/") || e.startsWith("./") || e.startsWith("../") || e.startsWith("http://") || e.startsWith("https://"), Qr = (e) => e.includes("avatar"), Jr = x(cn)`
555
+ }, Kt = (e = "") => e.startsWith("/") || e.startsWith("./") || e.startsWith("../") || e.startsWith("http://") || e.startsWith("https://"), Jr = (e) => e.includes("avatar"), Zr = x(cn)`
556
556
  height: 100%;
557
557
  width: 100%;
558
558
 
559
559
  /* the value template clips against the button, so it has to grow with the cell */
560
- ${({ $multiSelect: e }) => e && rt`
560
+ ${({ $multiSelect: e }) => e && ot`
561
561
  .button {
562
562
  height: 100%;
563
563
  }
564
564
  `}
565
- `, Zr = Se(
565
+ `, Xr = Se(
566
566
  ({
567
567
  value: e,
568
568
  isEditing: t,
@@ -575,10 +575,10 @@ const Pr = x.div`
575
575
  onOpen: g,
576
576
  onChange: d,
577
577
  onCancelEdit: f,
578
- onNext: p,
578
+ onNext: u,
579
579
  pt: m,
580
580
  ...S
581
- }, u) => {
581
+ }, p) => {
582
582
  const b = JSON.stringify(e), y = ee(
583
583
  () => e.map((A) => A?.toString()).filter((A) => !!A),
584
584
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -600,25 +600,25 @@ const Pr = x.div`
600
600
  w = [...w, P], R.push(P);
601
601
  }
602
602
  });
603
- const _ = w.length > 1, E = [...Gn(n, y), ...R], I = Q(null), [T, z] = G(!1);
603
+ const _ = w.length > 1, I = [...jn(n, y), ...R], E = Q(null), [T, z] = G(!1);
604
604
  q(() => {
605
- t && I.current && a ? (!I.current.isOpen && I.current?.open(), z(!0)) : z(!1);
606
- }, [t, I.current, a]), q(() => {
607
- if (T && !S.search && E.length < 20) {
608
- const P = I.current?.getOptions()?.querySelector("li");
605
+ t && E.current && a ? (!E.current.isOpen && E.current?.open(), z(!0)) : z(!1);
606
+ }, [t, E.current, a]), q(() => {
607
+ if (T && !S.search && I.length < 20) {
608
+ const P = E.current?.getOptions()?.querySelector("li");
609
609
  P && (P.focus(), P.style.outline = "none");
610
610
  }
611
- }, [T, S.search, E.length]);
611
+ }, [T, S.search, I.length]);
612
612
  const H = !!o?.includes("list"), B = (A) => {
613
613
  let P = l ? A : A.filter((U) => n.find((r) => r.value === U));
614
614
  o?.includes("list") || (P = Array.isArray(P) ? P[0] : P), d(P, "Click");
615
615
  };
616
616
  return t ? /* @__PURE__ */ s(
617
- Jr,
617
+ Zr,
618
618
  {
619
- options: E,
619
+ options: I,
620
620
  value: y,
621
- ref: I,
621
+ ref: E,
622
622
  valueTemplate: (A, P, U) => /* @__PURE__ */ s(
623
623
  Ve,
624
624
  {
@@ -671,8 +671,8 @@ const Pr = x.div`
671
671
  }
672
672
  );
673
673
  }
674
- ), Vt = /* @__PURE__ */ new Map(), Xr = (e, t = []) => {
675
- const { data: n } = Qn(void 0, { skip: !e }), [o] = Jn(), a = !!e && !!(n?.data?.isAdmin || n?.data?.isManager), [i, l] = G(null), c = Y(
674
+ ), Vt = /* @__PURE__ */ new Map(), eo = (e, t = []) => {
675
+ const { data: n } = Jn(void 0, { skip: !e }), [o] = Zn(), a = !!e && !!(n?.data?.isAdmin || n?.data?.isManager), [i, l] = G(null), c = Y(
676
676
  (g) => {
677
677
  if (!e || !g.length) return;
678
678
  const d = (Vt.get(e) || Promise.resolve()).then(async () => {
@@ -688,38 +688,38 @@ const Pr = x.div`
688
688
  );
689
689
  return ee(() => {
690
690
  if (!a) return;
691
- const g = new Set(t.map((p) => p.name)), d = (p) => {
692
- i?.resolve(p), l(null);
691
+ const g = new Set(t.map((u) => u.name)), d = (u) => {
692
+ i?.resolve(u), l(null);
693
693
  }, f = {
694
694
  item: i?.item,
695
695
  isNew: i?.isNew,
696
696
  fields: ["color"],
697
697
  itemLabel: "tag",
698
- onSave: ({ value: p, color: m }) => {
699
- c([{ name: p, color: m || void 0 }]), d(p);
698
+ onSave: ({ value: u, color: m }) => {
699
+ c([{ name: u, color: m || void 0 }]), d(u);
700
700
  },
701
701
  onCancel: () => d()
702
702
  };
703
703
  return {
704
704
  // the dropdown's edit button and "add new" option open the dialog, and select a new tag
705
- onEditOption: (p, m) => new Promise(
706
- (S) => l({ item: { value: p.name || "", color: p.color || "" }, isNew: m, resolve: S })
705
+ onEditOption: (u, m) => new Promise(
706
+ (S) => l({ item: { value: u.name || "", color: u.color || "" }, isNew: m, resolve: S })
707
707
  ),
708
708
  dialog: f,
709
709
  // tags added to entities go to the anatomy too, with its default colour
710
- addTags: (p) => c(p.filter((m) => m && !g.has(m)).map((m) => ({ name: m })))
710
+ addTags: (u) => c(u.filter((m) => m && !g.has(m)).map((m) => ({ name: m })))
711
711
  };
712
712
  }, [a, t, c, i]);
713
- }, eo = x(Je)`
713
+ }, to = x(Ze)`
714
714
  .field {
715
715
  padding: 4px;
716
716
  margin: -4px;
717
717
  }
718
- `, to = x.div`
718
+ `, no = x.div`
719
719
  display: flex;
720
720
  flex-direction: column;
721
721
  gap: 12px;
722
- `, Oe = (e) => e.stopPropagation(), no = ({
722
+ `, Oe = (e) => e.stopPropagation(), ro = ({
723
723
  item: e,
724
724
  isNew: t,
725
725
  fields: n,
@@ -731,7 +731,7 @@ const Pr = x.div`
731
731
  q(() => {
732
732
  e && c(e);
733
733
  }, [e]);
734
- const g = (p) => c({ ...l, ...p }), d = l.value.trim(), f = () => d && a({ ...l, value: d });
734
+ const g = (u) => c({ ...l, ...u }), d = l.value.trim(), f = () => d && a({ ...l, value: d });
735
735
  return /* @__PURE__ */ s(
736
736
  "div",
737
737
  {
@@ -753,7 +753,7 @@ const Pr = x.div`
753
753
  footer: /* @__PURE__ */ M(he, { children: [
754
754
  /* @__PURE__ */ s(xe, { onClick: i, children: "Cancel" }),
755
755
  /* @__PURE__ */ s(
756
- Wn,
756
+ Un,
757
757
  {
758
758
  label: t ? "Add" : "Save",
759
759
  icon: "check",
@@ -767,41 +767,41 @@ const Pr = x.div`
767
767
  style: { zIndex: 11e3 }
768
768
  }
769
769
  },
770
- children: /* @__PURE__ */ M(to, { children: [
771
- t && /* @__PURE__ */ s(Je, { label: "Name", children: /* @__PURE__ */ s(
772
- et,
770
+ children: /* @__PURE__ */ M(no, { children: [
771
+ t && /* @__PURE__ */ s(Ze, { label: "Name", children: /* @__PURE__ */ s(
772
+ tt,
773
773
  {
774
774
  value: l.value,
775
- onChange: (p) => g({ value: p.target.value }),
776
- onKeyDown: (p) => p.key === "Enter" && f(),
775
+ onChange: (u) => g({ value: u.target.value }),
776
+ onKeyDown: (u) => u.key === "Enter" && f(),
777
777
  autoFocus: !0
778
778
  }
779
779
  ) }),
780
- n.includes("label") && /* @__PURE__ */ s(Je, { label: "Label", children: /* @__PURE__ */ s(
781
- et,
780
+ n.includes("label") && /* @__PURE__ */ s(Ze, { label: "Label", children: /* @__PURE__ */ s(
781
+ tt,
782
782
  {
783
783
  value: l.label || "",
784
784
  placeholder: l.value,
785
- onChange: (p) => g({ label: p.target.value })
785
+ onChange: (u) => g({ label: u.target.value })
786
786
  }
787
787
  ) }),
788
- n.includes("icon") && /* @__PURE__ */ s(Je, { label: "Icon", children: /* @__PURE__ */ s(
789
- Hn,
788
+ n.includes("icon") && /* @__PURE__ */ s(Ze, { label: "Icon", children: /* @__PURE__ */ s(
789
+ Bn,
790
790
  {
791
791
  value: l.icon ? [l.icon] : [],
792
- onChange: (p) => g({ icon: p[0] })
792
+ onChange: (u) => g({ icon: u[0] })
793
793
  }
794
794
  ) }),
795
- n.includes("color") && /* @__PURE__ */ s(eo, { label: "Colour", style: { padding: 4 }, children: /* @__PURE__ */ s(Bn, { value: l.color, onChange: (p) => g({ color: p }) }) })
795
+ n.includes("color") && /* @__PURE__ */ s(to, { label: "Colour", style: { padding: 4 }, children: /* @__PURE__ */ s(Wn, { value: l.color, onChange: (u) => g({ color: u }) }) })
796
796
  ] })
797
797
  }
798
798
  )
799
799
  }
800
800
  );
801
- }, ro = "#353B46", oo = x(Un)`
801
+ }, oo = "#353B46", io = x(Kn)`
802
802
  width: 100%;
803
803
  height: 100%;
804
- `, io = ({
804
+ `, ao = ({
805
805
  value: e,
806
806
  options: t,
807
807
  projectName: n,
@@ -813,25 +813,25 @@ const Pr = x.div`
813
813
  align: g,
814
814
  className: d,
815
815
  isProjectTags: f,
816
- pt: p,
816
+ pt: u,
817
817
  ...m
818
818
  }) => {
819
- const S = JSON.stringify(e), u = ee(
820
- () => e.map((I) => I?.toString()).filter((I) => !!I),
819
+ const S = JSON.stringify(e), p = ee(
820
+ () => e.map((E) => E?.toString()).filter((E) => !!E),
821
821
  // eslint-disable-next-line react-hooks/exhaustive-deps
822
822
  [S]
823
823
  ), b = ee(() => {
824
- const I = {};
824
+ const E = {};
825
825
  for (const T of t) {
826
826
  const z = T.value.toString();
827
- I[z] = { name: z, color: T.color || "" };
827
+ E[z] = { name: z, color: T.color || "" };
828
828
  }
829
- for (const T of u) I[T] || (I[T] = { name: T, color: "" });
830
- return I;
831
- }, [t, u]), y = !!o && !a, w = ee(
832
- () => t.map((I) => ({ name: I.value.toString() })),
829
+ for (const T of p) E[T] || (E[T] = { name: T, color: "" });
830
+ return E;
831
+ }, [t, p]), y = !!o && !a, w = ee(
832
+ () => t.map((E) => ({ name: E.value.toString() })),
833
833
  [t]
834
- ), R = Xr(
834
+ ), R = eo(
835
835
  f && y ? n : void 0,
836
836
  w
837
837
  ), _ = Q(null);
@@ -840,50 +840,50 @@ const Pr = x.div`
840
840
  }, [y]), y)
841
841
  return /* @__PURE__ */ M(he, { children: [
842
842
  /* @__PURE__ */ s(
843
- oo,
843
+ io,
844
844
  {
845
845
  ref: _,
846
- value: u,
846
+ value: p,
847
847
  tags: b,
848
848
  options: [],
849
849
  editor: !0,
850
850
  align: g,
851
851
  placeholder: c,
852
- onChange: (I) => {
853
- R?.addTags(I.filter((T) => !u.includes(T))), i(I, "Click");
852
+ onChange: (E) => {
853
+ R?.addTags(E.filter((T) => !p.includes(T))), i(E, "Click");
854
854
  },
855
855
  onEditOption: R?.onEditOption,
856
856
  editOptionTooltip: "Change the colour in the project tags",
857
857
  ...m,
858
- onMixedChange: m.onMixedChange && ((I) => {
859
- R?.addTags(I.add), m.onMixedChange?.(I);
858
+ onMixedChange: m.onMixedChange && ((E) => {
859
+ R?.addTags(E.add), m.onMixedChange?.(E);
860
860
  }),
861
861
  onClose: l,
862
862
  className: d
863
863
  }
864
864
  ),
865
- R && /* @__PURE__ */ s(no, { ...R.dialog })
865
+ R && /* @__PURE__ */ s(ro, { ...R.dialog })
866
866
  ] });
867
- const E = u.map(
868
- (I) => t.find((T) => T.value === I) ?? {
869
- value: I,
870
- label: I,
871
- color: ro
867
+ const I = p.map(
868
+ (E) => t.find((T) => T.value === E) ?? {
869
+ value: E,
870
+ label: E,
871
+ color: oo
872
872
  }
873
873
  );
874
874
  return /* @__PURE__ */ s(
875
875
  Ve,
876
876
  {
877
- selectedOptions: E,
878
- hasMultipleValues: E.length > 1,
877
+ selectedOptions: I,
878
+ hasMultipleValues: I.length > 1,
879
879
  isMultiSelect: !0,
880
880
  isReadOnly: a,
881
881
  placeholder: c,
882
- ...p?.template,
883
- className: W("enum-value", p?.template?.className, d)
882
+ ...u?.template,
883
+ className: W("enum-value", u?.template?.className, d)
884
884
  }
885
885
  );
886
- }, ao = x.input`
886
+ }, so = x.input`
887
887
  z-index: 10;
888
888
  border: none;
889
889
  outline: none;
@@ -901,9 +901,9 @@ const Pr = x.div`
901
901
  padding: 0 8px 0 9px;
902
902
  background-color: var(--md-sys-color-surface-container-lowest);
903
903
  box-shadow: inset 0 0 0 2px var(--md-sys-color-primary);
904
- `, so = Se(
904
+ `, lo = Se(
905
905
  ({ value: e, onChange: t, onCancel: n, autoFocus: o = !0, type: a = "string", ...i }, l) => {
906
- const [c, g] = G(e), d = Q(null), f = Q(!1), p = Q(e), m = (y) => {
906
+ const [c, g] = G(e), d = Q(null), f = Q(!1), u = Q(e), m = (y) => {
907
907
  const w = y != null ? String(y).trim() : "";
908
908
  if (y == null) return "";
909
909
  if (w === "")
@@ -921,7 +921,7 @@ const Pr = x.div`
921
921
  return w;
922
922
  }
923
923
  }, S = (y) => {
924
- const w = p.current;
924
+ const w = u.current;
925
925
  if (a !== "string") {
926
926
  const R = y == null || y === "", _ = w == null || w === "";
927
927
  if (R && _)
@@ -934,7 +934,7 @@ const Pr = x.div`
934
934
  return q(() => {
935
935
  o && d && d.current && (d.current.focus(), d.current.select());
936
936
  }, [o]), /* @__PURE__ */ s(
937
- ao,
937
+ so,
938
938
  {
939
939
  ...i,
940
940
  ref: d,
@@ -973,7 +973,7 @@ const Pr = x.div`
973
973
  }
974
974
  );
975
975
  }
976
- ), lo = x.div`
976
+ ), co = x.div`
977
977
  padding: 0;
978
978
  cursor: pointer;
979
979
  display: flex;
@@ -1028,22 +1028,22 @@ const Pr = x.div`
1028
1028
  left: var(--padding-s);
1029
1029
  }
1030
1030
  }
1031
- `, co = x.div`
1031
+ `, uo = x.div`
1032
1032
  display: flex;
1033
1033
  justify-content: end;
1034
1034
  align-items: center;
1035
1035
  padding: 8px;
1036
1036
  height: 48px;
1037
1037
  border-top: 1px solid var(--md-sys-color-outline-variant);
1038
- `, uo = x.div`
1038
+ `, po = x.div`
1039
1039
  height: 20px;
1040
1040
  background: var(--md-sys-color-surface-container-low);
1041
1041
  border-radius: 4px;
1042
- `, po = x.div`
1042
+ `, mo = x.div`
1043
1043
  display: flex;
1044
1044
  gap: 8px;
1045
1045
  `, yn = (e, { skip: t } = {}) => {
1046
- const { data: n } = Zn(
1046
+ const { data: n } = Xn(
1047
1047
  {
1048
1048
  suggestRequest: {
1049
1049
  entityType: e?.entityType,
@@ -1054,7 +1054,7 @@ const Pr = x.div`
1054
1054
  { skip: t || !e?.projectName || !e?.entityId }
1055
1055
  ), { entityType: o, productTypes: a, taskTypes: i } = e ?? {};
1056
1056
  return ee(
1057
- () => e ? mr({
1057
+ () => e ? gr({
1058
1058
  suggestions: n,
1059
1059
  project: { productTypes: a ?? [] },
1060
1060
  taskTypes: i,
@@ -1062,7 +1062,7 @@ const Pr = x.div`
1062
1062
  }) : void 0,
1063
1063
  [!!e, n, a, i, o]
1064
1064
  );
1065
- }, mo = x.div`
1065
+ }, go = x.div`
1066
1066
  display: flex;
1067
1067
  flex-direction: column;
1068
1068
  background: var(--md-sys-color-surface-container-lowest);
@@ -1080,7 +1080,7 @@ const Pr = x.div`
1080
1080
  &.editing {
1081
1081
  border: 2px solid var(--md-sys-color-primary);
1082
1082
  }
1083
- `, go = x.textarea`
1083
+ `, ho = x.textarea`
1084
1084
  width: 100%;
1085
1085
  height: auto;
1086
1086
  min-height: 88px;
@@ -1092,7 +1092,7 @@ const Pr = x.div`
1092
1092
  color: inherit;
1093
1093
  font: inherit;
1094
1094
  padding: 12px;
1095
- `, ho = x.div`
1095
+ `, yo = x.div`
1096
1096
  width: 100%;
1097
1097
  white-space: pre-wrap;
1098
1098
  word-break: break-word;
@@ -1101,7 +1101,7 @@ const Pr = x.div`
1101
1101
  min-height: 88px;
1102
1102
  max-height: inherit;
1103
1103
  overflow: auto;
1104
- `, yo = {
1104
+ `, fo = {
1105
1105
  d: "code",
1106
1106
  o: "number",
1107
1107
  l: "bullet",
@@ -1118,12 +1118,12 @@ const Pr = x.div`
1118
1118
  valueType: g = "string",
1119
1119
  draftValue: d,
1120
1120
  onEditingDraftChange: f,
1121
- onDismissWithoutSave: p,
1121
+ onDismissWithoutSave: u,
1122
1122
  onPreviewMouseEnter: m,
1123
1123
  onPreviewMouseLeave: S,
1124
- mentionEntity: u
1124
+ mentionEntity: p
1125
1125
  }) => {
1126
- const b = Q(d != null), y = typeof e == "string" ? e : e == null ? "" : String(e), [w, R] = G(d ?? y), _ = Q(null), E = i === "preview", I = c, T = Q(null), z = Q(!1), H = Q(null), B = Q(y);
1126
+ const b = Q(d != null), y = typeof e == "string" ? e : e == null ? "" : String(e), [w, R] = G(d ?? y), _ = Q(null), I = i === "preview", E = c, T = Q(null), z = Q(!1), H = Q(null), B = Q(y);
1127
1127
  q(() => {
1128
1128
  B.current = y;
1129
1129
  }, [y]);
@@ -1138,9 +1138,9 @@ const Pr = x.div`
1138
1138
  b.current = !1;
1139
1139
  return;
1140
1140
  }
1141
- !t && !E || R(y);
1142
- }, [t, E, y]), q(() => {
1143
- if (E || !t || I) {
1141
+ !t && !I || R(y);
1142
+ }, [t, I, y]), q(() => {
1143
+ if (I || !t || E) {
1144
1144
  z.current = !1;
1145
1145
  return;
1146
1146
  }
@@ -1151,7 +1151,7 @@ const Pr = x.div`
1151
1151
  const O = k.value.length;
1152
1152
  k.setSelectionRange(O, O), z.current = !0;
1153
1153
  });
1154
- }, [t, E, I]);
1154
+ }, [t, I, E]);
1155
1155
  const P = Y(
1156
1156
  (k) => {
1157
1157
  const O = k.trim();
@@ -1172,10 +1172,10 @@ const Pr = x.div`
1172
1172
  [g]
1173
1173
  ), U = Y(
1174
1174
  (k = "Click") => {
1175
- if (!I) {
1176
- const { value: F, error: ne } = P(w);
1177
- if (ne) {
1178
- we.error(ne);
1175
+ if (!E) {
1176
+ const { value: F, error: te } = P(w);
1177
+ if (te) {
1178
+ we.error(te);
1179
1179
  return;
1180
1180
  }
1181
1181
  if (k !== "Enter" && (F === B.current || String(F ?? "") === B.current)) {
@@ -1192,36 +1192,36 @@ const Pr = x.div`
1192
1192
  }
1193
1193
  o?.(O, k);
1194
1194
  },
1195
- [P, w, I, o, a, f]
1195
+ [P, w, E, o, a, f]
1196
1196
  ), { projectName: r, productTypes: h, taskTypes: v } = Be(), N = ee(
1197
- () => u?.entityId && u.entityType && r ? { projectName: r, ...u, productTypes: h, taskTypes: v } : void 0,
1198
- [u?.entityId, u?.entityType, r, h, v]
1199
- ), C = yn(N, { skip: E || !I }), L = Y(
1197
+ () => p?.entityId && p.entityType && r ? { projectName: r, ...p, productTypes: h, taskTypes: v } : void 0,
1198
+ [p?.entityId, p?.entityType, r, h, v]
1199
+ ), C = yn(N, { skip: I || !E }), L = Y(
1200
1200
  (k) => {
1201
- if (E || !I) return;
1201
+ if (I || !E) return;
1202
1202
  if (k.key === "Enter" || k.key === "Escape") {
1203
1203
  k.stopPropagation();
1204
1204
  return;
1205
1205
  }
1206
1206
  if (k.shiftKey || k.altKey || !(k.ctrlKey || k.metaKey)) return;
1207
- const O = yo[k.key.toLowerCase()], F = _.current?.getEditor();
1208
- !O || !F || (k.preventDefault(), gr(F, O));
1207
+ const O = fo[k.key.toLowerCase()], F = _.current?.getEditor();
1208
+ !O || !F || (k.preventDefault(), hr(F, O));
1209
1209
  },
1210
- [E, I]
1210
+ [I, E]
1211
1211
  ), D = /* @__PURE__ */ s(
1212
- mo,
1212
+ go,
1213
1213
  {
1214
1214
  ref: H,
1215
- className: E ? "preview" : "editing",
1215
+ className: I ? "preview" : "editing",
1216
1216
  onKeyDown: L,
1217
1217
  onMouseDown: (k) => {
1218
1218
  k.stopPropagation();
1219
1219
  },
1220
1220
  onMouseEnter: () => {
1221
- E && m?.();
1221
+ I && m?.();
1222
1222
  },
1223
1223
  onMouseLeave: () => {
1224
- E && S?.();
1224
+ I && S?.();
1225
1225
  },
1226
1226
  children: /* @__PURE__ */ s(
1227
1227
  Rt,
@@ -1230,32 +1230,32 @@ const Pr = x.div`
1230
1230
  k.stopPropagation();
1231
1231
  },
1232
1232
  onClick: (k) => {
1233
- if (k.stopPropagation(), E) {
1233
+ if (k.stopPropagation(), I) {
1234
1234
  k.target.closest("a") || l?.();
1235
1235
  return;
1236
1236
  }
1237
1237
  },
1238
- children: I ? /* @__PURE__ */ s(
1238
+ children: E ? /* @__PURE__ */ s(
1239
1239
  Ct,
1240
1240
  {
1241
1241
  ref: _,
1242
- value: E ? y : w,
1243
- onChange: E ? void 0 : A,
1244
- readOnly: E,
1242
+ value: I ? y : w,
1243
+ onChange: I ? void 0 : A,
1244
+ readOnly: I,
1245
1245
  toolbar: !1,
1246
- floatingToolbar: !E,
1246
+ floatingToolbar: !I,
1247
1247
  bordered: !1,
1248
- autoFocus: !E,
1248
+ autoFocus: !I,
1249
1249
  minHeight: 64,
1250
1250
  placeholder: "",
1251
- mentions: E ? void 0 : C,
1251
+ mentions: I ? void 0 : C,
1252
1252
  submitOnEnter: !0,
1253
- onSubmit: E ? void 0 : () => U("Enter"),
1254
- onEscape: E ? void 0 : () => a?.()
1253
+ onSubmit: I ? void 0 : () => U("Enter"),
1254
+ onEscape: I ? void 0 : () => a?.()
1255
1255
  },
1256
1256
  `text-editor-${i}-${t}`
1257
- ) : E ? /* @__PURE__ */ s(ho, { children: y }) : /* @__PURE__ */ s(
1258
- go,
1257
+ ) : I ? /* @__PURE__ */ s(yo, { children: y }) : /* @__PURE__ */ s(
1258
+ ho,
1259
1259
  {
1260
1260
  ref: T,
1261
1261
  value: w,
@@ -1277,10 +1277,10 @@ const Pr = x.div`
1277
1277
  )
1278
1278
  }
1279
1279
  );
1280
- return /* @__PURE__ */ s(he, { children: (t || E) && /* @__PURE__ */ s(
1280
+ return /* @__PURE__ */ s(he, { children: (t || I) && /* @__PURE__ */ s(
1281
1281
  We,
1282
1282
  {
1283
- isEditing: !!(t || E),
1283
+ isEditing: !!(t || I),
1284
1284
  anchorId: n,
1285
1285
  onClose: a,
1286
1286
  matchAnchorWidth: !0,
@@ -1309,7 +1309,7 @@ const Pr = x.div`
1309
1309
  display: block;
1310
1310
  }
1311
1311
 
1312
- ${rt`
1312
+ ${ot`
1313
1313
  &:not(.markdown) {
1314
1314
  white-space: normal;
1315
1315
  word-break: break-word;
@@ -1324,19 +1324,19 @@ const Pr = x.div`
1324
1324
  }
1325
1325
  `}
1326
1326
  `;
1327
- let bn, fo;
1328
- const bo = () => fo ??= import("rehype-raw").then((e) => bn = e.default), vo = (e) => {
1327
+ let bn, bo;
1328
+ const vo = () => bo ??= import("rehype-raw").then((e) => bn = e.default), xo = (e) => {
1329
1329
  const [t, n] = G(() => bn);
1330
1330
  return q(() => {
1331
1331
  if (!e || t) return;
1332
1332
  let o = !0;
1333
- return bo().then((a) => {
1333
+ return vo().then((a) => {
1334
1334
  o && n(() => a);
1335
1335
  }), () => {
1336
1336
  o = !1;
1337
1337
  };
1338
1338
  }, [e, t]), t;
1339
- }, ct = x.a`
1339
+ }, dt = x.a`
1340
1340
  color: var(--md-sys-color-primary, #0066cc);
1341
1341
  text-decoration: none;
1342
1342
  cursor: pointer;
@@ -1347,7 +1347,7 @@ const bo = () => fo ??= import("rehype-raw").then((e) => bn = e.default), vo = (
1347
1347
  &:hover {
1348
1348
  text-decoration: underline;
1349
1349
  }
1350
- `, xo = x.div`
1350
+ `, wo = x.div`
1351
1351
  background: var(--md-sys-color-surface-container-lowest);
1352
1352
  border-radius: 8px;
1353
1353
  padding: 12px;
@@ -1374,7 +1374,7 @@ const bo = () => fo ??= import("rehype-raw").then((e) => bn = e.default), vo = (
1374
1374
  }
1375
1375
  }
1376
1376
  `;
1377
- class wo {
1377
+ class ko {
1378
1378
  lastShownTime = 0;
1379
1379
  warmTimeout = 500;
1380
1380
  // ms idle before resetting to cold mode
@@ -1387,19 +1387,19 @@ class wo {
1387
1387
  this.lastShownTime = Date.now();
1388
1388
  }
1389
1389
  }
1390
- const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1390
+ const jt = new ko(), ut = "projectTreeTextPreviewOpen", To = (e) => {
1391
1391
  try {
1392
1392
  const t = new URL(e.trim());
1393
1393
  return t.protocol === "http:" || t.protocol === "https:";
1394
1394
  } catch {
1395
1395
  return !1;
1396
1396
  }
1397
- }, To = (e) => {
1397
+ }, Co = (e) => {
1398
1398
  const t = /(https?:\/\/[^\s<>"]+[^\s.,!?;:<>\")\]])/gi;
1399
- return e.split(t).map((o, a) => ko(o) ? { type: "url", content: o, key: a } : { type: "text", content: o, key: a });
1399
+ return e.split(t).map((o, a) => To(o) ? { type: "url", content: o, key: a } : { type: "text", content: o, key: a });
1400
1400
  }, Yt = (e) => {
1401
1401
  const t = e?.match(/^@?([a-z]+):(.+)$/);
1402
- return !t || !yr.includes(t[1]) ? null : { type: t[1], id: decodeURIComponent(t[2]) };
1402
+ return !t || !fr.includes(t[1]) ? null : { type: t[1], id: decodeURIComponent(t[2]) };
1403
1403
  }, qt = (e) => /<[^>]*>/.test(e), Qt = Se(
1404
1404
  ({
1405
1405
  value: e,
@@ -1413,15 +1413,15 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1413
1413
  type: g,
1414
1414
  columnId: d,
1415
1415
  cellId: f,
1416
- onRequestEdit: p,
1416
+ onRequestEdit: u,
1417
1417
  getDraftValue: m,
1418
1418
  setDraftValue: S,
1419
- mentionEntity: u,
1419
+ mentionEntity: p,
1420
1420
  className: b,
1421
1421
  ...y
1422
1422
  }, w) => {
1423
- const R = vo(!!n), _ = p || (() => {
1424
- }), E = m || (() => null), I = S || (() => {
1423
+ const R = xo(!!n), _ = u || (() => {
1424
+ }), I = m || (() => null), E = S || (() => {
1425
1425
  }), [T, z] = G(!1), [H, B] = G(!1), [A, P] = G(!1), [U, r] = G(!1), h = Q(null), v = Q(), N = Q(), C = Q(!1), L = T || H, D = t?.label || e, k = typeof D == "string" ? D : String(D ?? ""), O = !n && !qt(k) && !k.match(/(https?:\/\/\S+)/gi);
1426
1426
  q(() => {
1427
1427
  const K = h.current;
@@ -1451,16 +1451,16 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1451
1451
  C.current = K, P(K);
1452
1452
  }, []);
1453
1453
  q(() => (clearTimeout(v.current), clearTimeout(N.current), o ? F(!1) : L ? C.current || U && f && (v.current = setTimeout(() => {
1454
- C.current || (F(!0), jt.markShown(), window.dispatchEvent(new CustomEvent(dt, { detail: { cellId: f } })));
1454
+ C.current || (F(!0), jt.markShown(), window.dispatchEvent(new CustomEvent(ut, { detail: { cellId: f } })));
1455
1455
  }, jt.getDelay())) : N.current = setTimeout(() => F(!1), 300), () => {
1456
1456
  clearTimeout(v.current), clearTimeout(N.current);
1457
1457
  }), [L, U, o, f, F]), q(() => {
1458
1458
  const K = (V) => {
1459
1459
  V.detail?.cellId !== f && F(!1);
1460
1460
  };
1461
- return window.addEventListener(dt, K), () => window.removeEventListener(dt, K);
1461
+ return window.addEventListener(ut, K), () => window.removeEventListener(ut, K);
1462
1462
  }, [f, F]);
1463
- const ne = Y(() => {
1463
+ const te = Y(() => {
1464
1464
  F(!1), f && _(f);
1465
1465
  }, [f, _, F]), ue = Y(
1466
1466
  (K, V) => {
@@ -1472,7 +1472,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1472
1472
  {
1473
1473
  remarkPlugins: [hn],
1474
1474
  rehypePlugins: R ? [R] : [],
1475
- urlTransform: (V) => Yt(V) ? V : Rr(V),
1475
+ urlTransform: (V) => Yt(V) ? V : Lr(V),
1476
1476
  components: {
1477
1477
  p: ({ children: V }) => /* @__PURE__ */ s("span", { children: V }),
1478
1478
  a: ({ href: V, children: $ }) => {
@@ -1480,7 +1480,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1480
1480
  if (j) {
1481
1481
  const Z = String($ ?? "").replace(/^@+/, "");
1482
1482
  return /* @__PURE__ */ s(
1483
- hr,
1483
+ yr,
1484
1484
  {
1485
1485
  type: j.type,
1486
1486
  id: j.id.replaceAll(".", "-").replaceAll(" ", "-"),
@@ -1492,7 +1492,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1492
1492
  );
1493
1493
  }
1494
1494
  return /* @__PURE__ */ s(
1495
- ct,
1495
+ dt,
1496
1496
  {
1497
1497
  href: V || "#",
1498
1498
  onMouseDown: (Z) => Z.stopPropagation(),
@@ -1505,8 +1505,8 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1505
1505
  },
1506
1506
  children: k
1507
1507
  }
1508
- ) : qt(k) ? cr(k).map(($) => $.type === "url" && $.href ? /* @__PURE__ */ s(
1509
- ct,
1508
+ ) : qt(k) ? dr(k).map(($) => $.type === "url" && $.href ? /* @__PURE__ */ s(
1509
+ dt,
1510
1510
  {
1511
1511
  href: $.href,
1512
1512
  onMouseDown: (j) => j.stopPropagation(),
@@ -1515,8 +1515,8 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1515
1515
  children: $.content
1516
1516
  },
1517
1517
  $.key
1518
- ) : /* @__PURE__ */ s("span", { style: { whiteSpace: "pre-line" }, children: $.content }, $.key)) : k.match(/(https?:\/\/\S+)/gi) ? To(k).map(($) => $.type === "url" ? /* @__PURE__ */ s(
1519
- ct,
1518
+ ) : /* @__PURE__ */ s("span", { style: { whiteSpace: "pre-line" }, children: $.content }, $.key)) : k.match(/(https?:\/\/\S+)/gi) ? Co(k).map(($) => $.type === "url" ? /* @__PURE__ */ s(
1519
+ dt,
1520
1520
  {
1521
1521
  href: $.content,
1522
1522
  onMouseDown: (j) => j.stopPropagation(),
@@ -1528,7 +1528,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1528
1528
  ) : $.content) : k;
1529
1529
  if (o && !n)
1530
1530
  return /* @__PURE__ */ s(
1531
- so,
1531
+ lo,
1532
1532
  {
1533
1533
  value: e,
1534
1534
  onChange: i,
@@ -1552,7 +1552,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1552
1552
  },
1553
1553
  children: [
1554
1554
  t?.icon && /* @__PURE__ */ s(
1555
- te,
1555
+ re,
1556
1556
  {
1557
1557
  icon: t.icon,
1558
1558
  style: {
@@ -1576,9 +1576,9 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1576
1576
  onChange: ue,
1577
1577
  onCancelEdit: l,
1578
1578
  onDismissWithoutSave: l,
1579
- draftValue: E(),
1580
- onEditingDraftChange: I,
1581
- mentionEntity: u
1579
+ draftValue: I(),
1580
+ onEditingDraftChange: E,
1581
+ mentionEntity: p
1582
1582
  }
1583
1583
  ),
1584
1584
  A && !o && n && f && /* @__PURE__ */ s(
@@ -1591,7 +1591,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1591
1591
  allowMarkdown: !0,
1592
1592
  onChange: i,
1593
1593
  onCancelEdit: () => F(!1),
1594
- onPreviewClick: ne,
1594
+ onPreviewClick: te,
1595
1595
  onPreviewMouseEnter: () => B(!0),
1596
1596
  onPreviewMouseLeave: () => B(!1)
1597
1597
  }
@@ -1603,9 +1603,9 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1603
1603
  anchorId: f,
1604
1604
  onClose: () => F(!1),
1605
1605
  children: /* @__PURE__ */ s(
1606
- xo,
1606
+ wo,
1607
1607
  {
1608
- onClick: ne,
1608
+ onClick: te,
1609
1609
  onMouseEnter: () => B(!0),
1610
1610
  onMouseLeave: () => B(!1),
1611
1611
  onMouseDown: (K) => K.stopPropagation(),
@@ -1616,7 +1616,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1616
1616
  )
1617
1617
  ] });
1618
1618
  }
1619
- ), Co = ({
1619
+ ), So = ({
1620
1620
  description: e,
1621
1621
  enableEditing: t,
1622
1622
  isMixed: n,
@@ -1637,7 +1637,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1637
1637
  i(!1), c("");
1638
1638
  }
1639
1639
  };
1640
- }, So = ({
1640
+ }, Io = ({
1641
1641
  description: e,
1642
1642
  isLarge: t = !0,
1643
1643
  isMixed: n,
@@ -1650,24 +1650,24 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1650
1650
  onMentionClick: d,
1651
1651
  onMentionHover: f
1652
1652
  }) => {
1653
- const { isEditing: p, editorValue: m, setEditorValue: S, handleStartEditing: u, handleSave: b, handleCancel: y } = Co({
1653
+ const { isEditing: u, editorValue: m, setEditorValue: S, handleStartEditing: p, handleSave: b, handleCancel: y } = So({
1654
1654
  description: e,
1655
1655
  enableEditing: o,
1656
1656
  isMixed: n,
1657
1657
  onChange: i
1658
- }), w = yn(g, { skip: !p });
1658
+ }), w = yn(g, { skip: !u });
1659
1659
  if (q(() => {
1660
- a && !p && u();
1660
+ a && !u && p();
1661
1661
  }, [a]), c)
1662
- return /* @__PURE__ */ s(zt, { title: "Description", children: /* @__PURE__ */ s(uo, {}) });
1663
- const R = (E) => {
1664
- if (p) return;
1665
- const I = E.target;
1666
- if (I.closest("a") || d && I.closest(".mention")) {
1667
- E.stopPropagation();
1662
+ return /* @__PURE__ */ s(zt, { title: "Description", children: /* @__PURE__ */ s(po, {}) });
1663
+ const R = (I) => {
1664
+ if (u) return;
1665
+ const E = I.target;
1666
+ if (E.closest("a") || d && E.closest(".mention")) {
1667
+ I.stopPropagation();
1668
1668
  return;
1669
1669
  }
1670
- u();
1670
+ p();
1671
1671
  }, _ = () => {
1672
1672
  y(), l?.();
1673
1673
  };
@@ -1675,39 +1675,39 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1675
1675
  zt,
1676
1676
  {
1677
1677
  title: "Description",
1678
- showHeader: !p,
1679
- enableHover: !p,
1680
- onClick: p ? void 0 : u,
1678
+ showHeader: !u,
1679
+ enableHover: !u,
1680
+ onClick: u ? void 0 : p,
1681
1681
  description: t,
1682
- children: /* @__PURE__ */ M(lo, { className: W({ editing: p }), onClick: R, children: [
1682
+ children: /* @__PURE__ */ M(co, { className: W({ editing: u }), onClick: R, children: [
1683
1683
  /* @__PURE__ */ s(Rt, { className: "block-shortcuts", children: /* @__PURE__ */ s(
1684
1684
  Ct,
1685
1685
  {
1686
1686
  className: "description-editor",
1687
- value: p ? m : e || "",
1688
- onChange: p ? S : void 0,
1689
- placeholder: p ? "Describe it, or type / to add headings, lists, mentions, code and more..." : "Add a description...",
1690
- mentions: p ? w : void 0,
1687
+ value: u ? m : e || "",
1688
+ onChange: u ? S : void 0,
1689
+ placeholder: u ? "Describe it, or type / to add headings, lists, mentions, code and more..." : "Add a description...",
1690
+ mentions: u ? w : void 0,
1691
1691
  onMentionClick: d,
1692
1692
  onMentionHover: f,
1693
- readOnly: !p,
1694
- toolbar: p ? fr : !1,
1693
+ readOnly: !u,
1694
+ toolbar: u ? br : !1,
1695
1695
  bordered: !1,
1696
- autoFocus: p,
1697
- minHeight: p ? 60 : 20,
1698
- onSubmit: p ? b : void 0,
1699
- onEscape: p ? _ : void 0
1696
+ autoFocus: u,
1697
+ minHeight: u ? 60 : 20,
1698
+ onSubmit: u ? b : void 0,
1699
+ onEscape: u ? _ : void 0
1700
1700
  },
1701
- p ? "edit" : "view"
1701
+ u ? "edit" : "view"
1702
1702
  ) }),
1703
- p && /* @__PURE__ */ s(co, { children: /* @__PURE__ */ M(po, { children: [
1703
+ u && /* @__PURE__ */ s(uo, { children: /* @__PURE__ */ M(mo, { children: [
1704
1704
  /* @__PURE__ */ s(xe, { variant: "text", label: "Cancel", onClick: _ }),
1705
1705
  /* @__PURE__ */ s(xe, { variant: "filled", label: "Save", onClick: b })
1706
1706
  ] }) })
1707
1707
  ] })
1708
1708
  }
1709
1709
  );
1710
- }, Io = x(xe)`
1710
+ }, Eo = x(xe)`
1711
1711
  position: absolute;
1712
1712
  right: -40px;
1713
1713
  top: 38px;
@@ -1715,7 +1715,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1715
1715
  width: 32px;
1716
1716
  height: 32px;
1717
1717
  padding: 2px;
1718
- `, Eo = ({
1718
+ `, Ro = ({
1719
1719
  value: e,
1720
1720
  isOpen: t,
1721
1721
  onClose: n,
@@ -1729,7 +1729,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1729
1729
  onClose: n,
1730
1730
  style: { maxHeight: "80vh" },
1731
1731
  children: /* @__PURE__ */ s(
1732
- So,
1732
+ Io,
1733
1733
  {
1734
1734
  description: e,
1735
1735
  isLarge: !0,
@@ -1751,14 +1751,14 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1751
1751
  onExpand: i,
1752
1752
  showExpand: l
1753
1753
  }) => {
1754
- const [c, g] = G(e || ""), [d, f] = G(0), [p, m] = G(!1), S = Q(null), u = Q(null), b = o && !a;
1754
+ const [c, g] = G(e || ""), [d, f] = G(0), [u, m] = G(!1), S = Q(null), p = Q(null), b = o && !a;
1755
1755
  q(() => {
1756
- if (!u.current) return;
1756
+ if (!p.current) return;
1757
1757
  const T = new ResizeObserver((z) => {
1758
1758
  for (const H of z)
1759
1759
  f(H.contentRect.width);
1760
1760
  });
1761
- return T.observe(u.current), () => T.disconnect();
1761
+ return T.observe(p.current), () => T.disconnect();
1762
1762
  }, []), q(() => {
1763
1763
  b && g(e || "");
1764
1764
  }, [b]);
@@ -1778,7 +1778,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1778
1778
  }, [t, n, e, c]), _ = Y(
1779
1779
  (T) => {
1780
1780
  const z = T.relatedTarget;
1781
- if (!(z && (u.current?.contains(z) || z.closest(".md-popover")))) {
1781
+ if (!(z && (p.current?.contains(z) || z.closest(".md-popover")))) {
1782
1782
  if (z?.closest(".expand-button")) {
1783
1783
  n?.();
1784
1784
  return;
@@ -1787,14 +1787,14 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1787
1787
  }
1788
1788
  },
1789
1789
  [R, n]
1790
- ), E = Y((T) => {
1790
+ ), I = Y((T) => {
1791
1791
  (T.key === "Escape" || T.key === "Enter" && (T.metaKey || T.ctrlKey)) && T.stopPropagation();
1792
1792
  }, []);
1793
1793
  if (!e && !b) return null;
1794
- const I = b && !p;
1795
- return /* @__PURE__ */ M("div", { ref: u, style: { width: "100%", height: y, position: "relative", minWidth: 0 }, children: [
1794
+ const E = b && !u;
1795
+ return /* @__PURE__ */ M("div", { ref: p, style: { width: "100%", height: y, position: "relative", minWidth: 0 }, children: [
1796
1796
  l && w >= 3 && /* @__PURE__ */ s(
1797
- Io,
1797
+ Eo,
1798
1798
  {
1799
1799
  icon: "expand_content",
1800
1800
  className: "field-tools expand-button",
@@ -1809,32 +1809,32 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1809
1809
  {
1810
1810
  style: { height: y, overflow: "auto" },
1811
1811
  className: "block-shortcuts compact",
1812
- onBlur: I ? _ : void 0,
1813
- onKeyDown: I ? E : void 0,
1812
+ onBlur: E ? _ : void 0,
1813
+ onKeyDown: E ? I : void 0,
1814
1814
  children: /* @__PURE__ */ s(
1815
1815
  Ct,
1816
1816
  {
1817
1817
  ref: S,
1818
- value: I ? c : e || "",
1819
- onChange: I ? g : void 0,
1820
- readOnly: !I,
1818
+ value: E ? c : e || "",
1819
+ onChange: E ? g : void 0,
1820
+ readOnly: !E,
1821
1821
  toolbar: !1,
1822
- floatingToolbar: I,
1822
+ floatingToolbar: E,
1823
1823
  bordered: !1,
1824
- autoFocus: I,
1824
+ autoFocus: E,
1825
1825
  minHeight: y,
1826
- onSubmit: I ? R : void 0,
1827
- onEscape: I ? () => n?.() : void 0,
1826
+ onSubmit: E ? R : void 0,
1827
+ onEscape: E ? () => n?.() : void 0,
1828
1828
  placeholder: ""
1829
1829
  },
1830
- I ? "edit" : "view"
1830
+ E ? "edit" : "view"
1831
1831
  )
1832
1832
  }
1833
1833
  ),
1834
1834
  /* @__PURE__ */ s(
1835
- Eo,
1835
+ Ro,
1836
1836
  {
1837
- isOpen: p,
1837
+ isOpen: u,
1838
1838
  onClose: () => m(!1),
1839
1839
  value: b ? c : e,
1840
1840
  onSave: (T) => {
@@ -1843,7 +1843,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1843
1843
  }
1844
1844
  )
1845
1845
  ] });
1846
- }, Ro = x.input`
1846
+ }, Lo = x.input`
1847
1847
  margin: auto;
1848
1848
  z-index: 1;
1849
1849
  cursor: pointer;
@@ -1864,9 +1864,9 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1864
1864
  border-color: var(--md-sys-color-primary);
1865
1865
  appearance: auto;
1866
1866
  }
1867
- `, Lo = Se(
1867
+ `, No = Se(
1868
1868
  ({ value: e, onChange: t, isReadOnly: n, isEditing: o, onCancelEdit: a, isInherited: i, ...l }, c) => n ? /* @__PURE__ */ s(St, { checked: e, isReadOnly: !0, className: l.className }) : /* @__PURE__ */ s(
1869
- Ro,
1869
+ Lo,
1870
1870
  {
1871
1871
  ...l,
1872
1872
  checked: e,
@@ -1880,7 +1880,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
1880
1880
  readOnly: n
1881
1881
  }
1882
1882
  )
1883
- ), ot = x.div`
1883
+ ), it = x.div`
1884
1884
  padding: var(--padding-m);
1885
1885
  background-color: var(--md-sys-color-surface-container-high);
1886
1886
  border-radius: var(--border-radius-l);
@@ -2025,7 +2025,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2025
2025
  &:hover {
2026
2026
  background-color: var(--md-sys-color-surface-container-low-hover);
2027
2027
  }
2028
- `, No = x(et).attrs({ type: "number" })`
2028
+ `, Do = x(tt).attrs({ type: "number" })`
2029
2029
  height: 22px !important;
2030
2030
  min-height: 22px !important;
2031
2031
  max-height: 22px !important;
@@ -2045,7 +2045,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2045
2045
  -webkit-appearance: none;
2046
2046
  margin: 0;
2047
2047
  }
2048
- `, Do = x.div`
2048
+ `, Ao = x.div`
2049
2049
  display: flex;
2050
2050
  flex-direction: column;
2051
2051
  /* hack for search border cutoff */
@@ -2058,12 +2058,12 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2058
2058
 
2059
2059
  /* Set a reasonable max-height that allows for search functionality */
2060
2060
  max-height: 250px;
2061
- `, Ao = x.div`
2061
+ `, Po = x.div`
2062
2062
  display: flex;
2063
2063
  flex-direction: column;
2064
2064
  align-items: center;
2065
2065
  gap: var(--base-gap-small);
2066
- `, Po = x.div`
2066
+ `, _o = x.div`
2067
2067
  position: relative;
2068
2068
  width: 100%;
2069
2069
  display: flex;
@@ -2075,21 +2075,21 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2075
2075
  position: absolute;
2076
2076
  left: 4px;
2077
2077
  }
2078
- `, _o = x(xe)`
2078
+ `, $o = x(xe)`
2079
2079
  min-width: 110px;
2080
2080
  flex: 1;
2081
2081
  width: 100%;
2082
- `, $o = x(et)`
2082
+ `, Mo = x(tt)`
2083
2083
  flex: 1;
2084
2084
  border: none;
2085
2085
  background-color: var(--md-sys-color-surface-container);
2086
2086
  padding-left: 28px;
2087
2087
  width: 100%;
2088
2088
  min-width: 224px;
2089
- `, Mo = x.div`
2089
+ `, Oo = x.div`
2090
2090
  color: var(--md-sys-color-error);
2091
2091
  margin-top: var(--base-gap-small);
2092
- `, Oo = x.ul`
2092
+ `, zo = x.ul`
2093
2093
  list-style: none;
2094
2094
  padding: 0;
2095
2095
  margin: 0;
@@ -2179,11 +2179,11 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2179
2179
  color: var(--md-sys-color-outline);
2180
2180
  }
2181
2181
  `, Cn = ye(void 0), Nt = () => {
2182
- const e = se(Cn);
2182
+ const e = ae(Cn);
2183
2183
  if (e === void 0)
2184
2184
  throw new Error("useCellEditing must be used within a CellEditingProvider");
2185
2185
  return e;
2186
- }, zo = () => se(Cn), Fo = {
2186
+ }, Fo = () => ae(Cn), Ho = {
2187
2187
  status: ["folder", "task", "product", "version"],
2188
2188
  subType: ["folder", "task", "product"],
2189
2189
  assignees: ["task"],
@@ -2199,9 +2199,9 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2199
2199
  label: ["folder", "task", "version"],
2200
2200
  thumbnailHash: ["folder", "task", "version"]
2201
2201
  }, Dt = (e, t) => {
2202
- const n = Fo[e];
2202
+ const n = Ho[e];
2203
2203
  return !n || n.includes(t);
2204
- }, De = (e, t) => t === "primary" ? e.primary : e.parents?.[t], ae = (e, t, n, o = !1) => {
2204
+ }, De = (e, t) => t === "primary" ? e.primary : e.parents?.[t], se = (e, t, n, o = !1) => {
2205
2205
  if (e.group)
2206
2206
  return o || t !== "primary" || n !== "name" ? void 0 : e.primary.name;
2207
2207
  const a = De(e, t);
@@ -2220,16 +2220,16 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2220
2220
  listType: "review-session",
2221
2221
  entityTypes: ["version"]
2222
2222
  }
2223
- }, Ho = Object.keys(Me), ut = (e, t) => !!Me[e]?.entityTypes.includes(t), de = {
2223
+ }, Bo = Object.keys(Me), pt = (e, t) => !!Me[e]?.entityTypes.includes(t), de = {
2224
2224
  folder: "folder_entity",
2225
2225
  task: "task_entity",
2226
2226
  version: "version_entity"
2227
- }, Bo = {
2227
+ }, Wo = {
2228
2228
  folder: de.folder,
2229
2229
  folderName: de.folder,
2230
2230
  taskLabel: de.task,
2231
2231
  taskName: de.task
2232
- }, ge = (e, t = {}) => t[e] || Bo[e] || e, pt = (e = [], t = {}) => Array.from(new Set(e.map((n) => ge(n, t)))), Ue = (e = {}, t = {}) => {
2232
+ }, ge = (e, t = {}) => t[e] || Wo[e] || e, mt = (e = [], t = {}) => Array.from(new Set(e.map((n) => ge(n, t)))), Ue = (e = {}, t = {}) => {
2233
2233
  const n = {};
2234
2234
  return Object.entries(e).forEach(([o, a]) => {
2235
2235
  const i = ge(o, t);
@@ -2239,9 +2239,9 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2239
2239
  if (!e) return {};
2240
2240
  const n = {
2241
2241
  ...e.columnPinning,
2242
- left: pt(e.columnPinning?.left, t),
2243
- right: pt(e.columnPinning?.right, t)
2244
- }, o = Ue(e.columnSizing, t), a = Ue(e.columnVisibility, t), i = pt(e.columnOrder, t), l = e.sorting?.map((c) => ({
2242
+ left: mt(e.columnPinning?.left, t),
2243
+ right: mt(e.columnPinning?.right, t)
2244
+ }, o = Ue(e.columnSizing, t), a = Ue(e.columnVisibility, t), i = mt(e.columnOrder, t), l = e.sorting?.map((c) => ({
2245
2245
  ...c,
2246
2246
  id: ge(c.id, t)
2247
2247
  }));
@@ -2257,19 +2257,19 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2257
2257
  columnSummaryFormats: Ue(e.columnSummaryFormats, t)
2258
2258
  };
2259
2259
  }, Sn = ye(void 0), In = () => {
2260
- const e = se(Sn);
2260
+ const e = ae(Sn);
2261
2261
  if (e === void 0)
2262
2262
  throw new Error("useSelectionCellsContext must be used within a SelectionCellsProvider");
2263
2263
  return e;
2264
- }, Us = () => se(Sn), En = (e) => {
2264
+ }, Us = () => ae(Sn), En = (e) => {
2265
2265
  if (!(e.group || e.metaType)) {
2266
2266
  if (e.parents?.folder) return e.parents.folder;
2267
2267
  if (e.primary.entityType === "folder" && !e.isLoading) return e.primary;
2268
2268
  }
2269
- }, Wo = (e) => {
2269
+ }, Uo = (e) => {
2270
2270
  const t = En(e);
2271
2271
  return t?.label || t?.name;
2272
- }, Uo = async (e, t) => {
2272
+ }, Ko = async (e, t) => {
2273
2273
  if (e.length)
2274
2274
  try {
2275
2275
  const n = e.map(
@@ -2290,7 +2290,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2290
2290
  } catch (n) {
2291
2291
  throw we.error(`Failed to remove links: ${n}`), n;
2292
2292
  }
2293
- }, Ko = async (e, t) => {
2293
+ }, Vo = async (e, t) => {
2294
2294
  if (e.length)
2295
2295
  try {
2296
2296
  const n = e.map(
@@ -2321,7 +2321,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2321
2321
  } catch (n) {
2322
2322
  throw we.error(`Failed to add links: ${n}`), n;
2323
2323
  }
2324
- }, Vo = ({ projectInfo: e }) => {
2324
+ }, Go = ({ projectInfo: e }) => {
2325
2325
  const { folderTypes: t = [], taskTypes: n = [], productTypes: o = [] } = e || {}, a = ee(() => {
2326
2326
  const g = /* @__PURE__ */ new Map();
2327
2327
  for (const d of t)
@@ -2352,7 +2352,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2352
2352
  },
2353
2353
  [a, i, l]
2354
2354
  );
2355
- }, le = "next-page", be = "_ungrouped", At = "__", mt = (e) => e ? Array.isArray(e) ? [...new Set(e.map((t) => t.toString()))] : [e.toString()] : [], Go = (e, t, n, o, a) => {
2355
+ }, le = "next-page", be = "_ungrouped", At = "__", Je = (e) => e ? Array.isArray(e) ? [...new Set(e.map((t) => t.toString()))] : [e.toString()] : [], jo = (e, t, n, o, a) => {
2356
2356
  const i = o?.get(t), l = n?.find((g) => g.value === t), c = l ? {
2357
2357
  value: l.value,
2358
2358
  label: l.label || l.value,
@@ -2362,10 +2362,10 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2362
2362
  img: e === "assignees" ? `/api/users/${l.value}/avatar` : void 0
2363
2363
  } : { value: t, label: t };
2364
2364
  return i ? (c.count = i.count, c.percentage = i.percentage) : o && a && (c.count = 0, c.percentage = void 0), c;
2365
- }, tt = "_GROUP_", Jt = (e) => `${tt}${e}`, jo = (e) => e.startsWith(tt) ? e.slice(tt.length) : null, Ks = (e) => e.startsWith(tt), Yo = (e, t, n = []) => {
2365
+ }, nt = "_GROUP_", Jt = (e) => `${nt}${e}`, Yo = (e) => e.startsWith(nt) ? e.slice(nt.length) : null, Ks = (e) => e.startsWith(nt), qo = (e, t, n = []) => {
2366
2366
  const o = e.id.replace("attrib.", "");
2367
2367
  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()) || [] : [];
2368
- }, qo = (e, t, n, o, a) => {
2368
+ }, Qo = (e, t, n, o, a) => {
2369
2369
  const i = a(n, e.taskType), l = o.get(e.folderId), c = Hi(
2370
2370
  e,
2371
2371
  l?.entityType === "folder" ? l : void 0
@@ -2386,12 +2386,12 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2386
2386
  groupCounts: l,
2387
2387
  groupCountsComplete: c
2388
2388
  }) => {
2389
- const g = Be(), d = Vo({ projectInfo: g }), f = Y(
2390
- (p, m) => {
2391
- const S = i ? i(p) : qo(p, m, t, e, d);
2392
- return t === "task" && (S.primary.links = Fi(p.links, "task", g.anatomy)), {
2389
+ const g = Be(), d = Go({ projectInfo: g }), f = Y(
2390
+ (u, m) => {
2391
+ const S = i ? i(u) : Qo(u, m, t, e, d);
2392
+ return t === "task" && (S.primary.links = Fi(u.links, "task", g.anatomy)), {
2393
2393
  ...S,
2394
- id: p.id + At + m,
2394
+ id: u.id + At + m,
2395
2395
  // unique id for the task in the group
2396
2396
  subRows: S.subRows || []
2397
2397
  };
@@ -2399,22 +2399,22 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2399
2399
  [i, d, t, e, g]
2400
2400
  );
2401
2401
  return Y(
2402
- (p) => {
2402
+ (u) => {
2403
2403
  const m = /* @__PURE__ */ new Map();
2404
- for (const E of n) {
2405
- const I = E.value?.toString(), T = Jt(I), z = Go(
2406
- p.id,
2407
- I,
2404
+ for (const I of n) {
2405
+ const E = I.value?.toString(), T = Jt(E), z = jo(
2406
+ u.id,
2407
+ E,
2408
2408
  n,
2409
2409
  l,
2410
2410
  c
2411
2411
  );
2412
- m.set(I, {
2412
+ m.set(E, {
2413
2413
  id: T,
2414
2414
  primary: {
2415
2415
  id: T,
2416
2416
  entityType: "folder",
2417
- name: I,
2417
+ name: E,
2418
2418
  label: z.label,
2419
2419
  subType: ""
2420
2420
  },
@@ -2422,10 +2422,10 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2422
2422
  group: z
2423
2423
  });
2424
2424
  }
2425
- const S = Jt(be), u = () => {
2426
- let E = m.get(be);
2427
- if (!E) {
2428
- const I = l?.get(be), T = {
2425
+ const S = Jt(be), p = () => {
2426
+ let I = m.get(be);
2427
+ if (!I) {
2428
+ const E = l?.get(be), T = {
2429
2429
  id: S,
2430
2430
  primary: {
2431
2431
  id: S,
@@ -2438,33 +2438,36 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2438
2438
  group: {
2439
2439
  value: be,
2440
2440
  label: "Ungrouped",
2441
- count: I?.count,
2442
- percentage: I?.percentage
2441
+ count: E?.count,
2442
+ percentage: E?.percentage
2443
2443
  }
2444
2444
  };
2445
- m.set(be, T), E = T;
2445
+ m.set(be, T), I = T;
2446
2446
  }
2447
- return E;
2447
+ return I;
2448
2448
  };
2449
- (p.id === "tags" || p.id === "assignees" || p.id.startsWith("attrib.")) && u();
2450
- for (const [, E] of e) {
2451
- if (E.entityType !== t) continue;
2452
- let I = [];
2453
- if (p.id.startsWith("attrib.")) {
2454
- const T = p.id.split(".")[1];
2455
- I = mt(E.attrib?.[T]);
2456
- } else p.id === "folderType" && "folder" in E ? I = mt(
2457
- E.folder?.folderType
2458
- ) : I = mt(E[p.id]);
2459
- I.length === 0 && u().subRows?.push(f(E, be));
2460
- for (const T of I) {
2449
+ (u.id === "tags" || u.id === "assignees" || // folder groups come from the cached folder list, which can miss a folder's first version
2450
+ u.id === "folderId" || u.id.startsWith("attrib.")) && p();
2451
+ for (const [, I] of e) {
2452
+ if (I.entityType !== t) continue;
2453
+ let E = [];
2454
+ if (u.id.startsWith("attrib.")) {
2455
+ const T = u.id.split(".")[1];
2456
+ E = Je(I.attrib?.[T]);
2457
+ } else u.id === "folderType" && "folder" in I ? E = Je(
2458
+ I.folder?.folderType
2459
+ ) : u.id === "folderId" && "product" in I ? E = Je(
2460
+ I.product?.folder?.id
2461
+ ) : E = Je(I[u.id]);
2462
+ E.length === 0 && p().subRows?.push(f(I, be));
2463
+ for (const T of E) {
2461
2464
  const z = m.get(T);
2462
- z ? z.subRows?.push(f(E, T)) : u().subRows?.push(
2463
- f(E, be)
2465
+ z ? z.subRows?.push(f(I, T)) : p().subRows?.push(
2466
+ f(I, be)
2464
2467
  );
2465
2468
  }
2466
- if ("groups" in E && Array.isArray(E.groups)) {
2467
- for (const T of E.groups)
2469
+ if ("groups" in I && Array.isArray(I.groups)) {
2470
+ for (const T of I.groups)
2468
2471
  if (T.hasNextPage && m.has(T.value)) {
2469
2472
  const H = m.get(T.value);
2470
2473
  H && H.subRows?.push({
@@ -2482,18 +2485,18 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2482
2485
  }
2483
2486
  }
2484
2487
  }
2485
- const y = Array.from(m.values()), w = Yo(p, g, o), R = p.desc ? -1 : 1;
2486
- y.sort((E, I) => {
2487
- if (E.group?.value === be) return 1;
2488
- if (I.group?.value === be) return -1;
2488
+ const y = Array.from(m.values()), w = qo(u, g, o), R = u.desc ? -1 : 1;
2489
+ y.sort((I, E) => {
2490
+ if (I.group?.value === be) return 1;
2491
+ if (E.group?.value === be) return -1;
2489
2492
  if (w.length) {
2490
- const T = w.indexOf(E.group?.value || ""), z = w.indexOf(I.group?.value || "");
2491
- return T !== -1 && z !== -1 ? (T - z) * R : T !== -1 ? -1 : z !== -1 ? 1 : (E.group?.label?.localeCompare(I.group?.label || "") || 0) * R;
2493
+ const T = w.indexOf(I.group?.value || ""), z = w.indexOf(E.group?.value || "");
2494
+ return T !== -1 && z !== -1 ? (T - z) * R : T !== -1 ? -1 : z !== -1 ? 1 : (I.group?.label?.localeCompare(E.group?.label || "") || 0) * R;
2492
2495
  } else
2493
- return (E.group?.label?.localeCompare(I.group?.label || "") || 0) * R;
2496
+ return (I.group?.label?.localeCompare(E.group?.label || "") || 0) * R;
2494
2497
  });
2495
2498
  const _ = y.filter(
2496
- (E) => (E.group?.count ?? 0) > 0 || (E.subRows?.length ?? 0) > 0 || E.group?.value === be
2499
+ (I) => I.group?.count === void 0 || I.group.count > 0 || (I.subRows?.length ?? 0) > 0 || I.group?.value === be
2497
2500
  );
2498
2501
  return a ? y : _;
2499
2502
  },
@@ -2509,49 +2512,49 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2509
2512
  g
2510
2513
  ]
2511
2514
  );
2512
- }, Qo = ye(void 0), Jo = () => {
2513
- const e = se(Qo);
2515
+ }, Jo = ye(void 0), Zo = () => {
2516
+ const e = ae(Jo);
2514
2517
  if (!e)
2515
2518
  throw new Error("useColumnSettingsContext must be used within a ColumnSettingsProvider");
2516
2519
  return e;
2517
2520
  }, Rn = ye(void 0), Pt = () => {
2518
- const e = se(Rn);
2521
+ const e = ae(Rn);
2519
2522
  if (!e)
2520
2523
  throw new Error("useProjectTableContext must be used within a ProjectTableProvider");
2521
2524
  return e;
2522
- }, Gs = () => se(Rn), Zo = (e) => e?.split(At)[0] || e, Xo = ye(void 0), js = () => {
2523
- const e = se(Xo);
2525
+ }, Gs = () => ae(Rn), Xo = (e) => e?.split(At)[0] || e, ei = ye(void 0), js = () => {
2526
+ const e = ae(ei);
2524
2527
  if (e === void 0)
2525
2528
  throw new Error("useClipboard must be used within a ClipboardProvider");
2526
2529
  return e;
2527
2530
  }, Ln = ye(
2528
2531
  void 0
2529
- ), ei = () => {
2530
- const e = se(Ln);
2532
+ ), ti = () => {
2533
+ const e = ae(Ln);
2531
2534
  if (!e)
2532
2535
  throw new Error("useDetailsPanelEntityContext must be used within a DetailsPanelEntityProvider");
2533
2536
  return e;
2534
- }, ti = ye(void 0), ni = () => {
2535
- const e = se(ti);
2537
+ }, Nn = ye(void 0), ni = () => {
2538
+ const e = ae(Nn);
2536
2539
  if (!e)
2537
2540
  throw new Error("useProjectDataContext must be used within a ProjectDataProvider");
2538
2541
  return e;
2539
- }, ri = ye(void 0), Ys = () => {
2540
- const e = se(ri);
2542
+ }, Ys = () => ae(Nn), ri = ye(void 0), qs = () => {
2543
+ const e = ae(ri);
2541
2544
  if (!e)
2542
2545
  throw new Error(
2543
2546
  "useProjectTableQueriesContext must be used within a ProjectTableQueriesProvider"
2544
2547
  );
2545
2548
  return e;
2546
- }, Nn = ye(void 0), Dn = () => {
2547
- const e = se(Nn);
2549
+ }, Dn = ye(void 0), An = () => {
2550
+ const e = ae(Dn);
2548
2551
  if (!e)
2549
2552
  throw new Error("useSelectedRowsContext must be used within a SelectedRowsProvider");
2550
2553
  return e;
2551
- }, oi = () => se(Nn), ii = "unknown", qs = "restricted", Qs = "Access Restricted - Insufficient Permissions", Js = "lock", Ge = (e) => e === ii, Fe = "readonly", Zs = (e) => {
2554
+ }, oi = () => ae(Dn), ii = "unknown", Qs = "restricted", Js = "Access Restricted - Insufficient Permissions", Zs = "lock", Ge = (e) => e === ii, Fe = "readonly", Xs = (e) => {
2552
2555
  const t = e.target;
2553
2556
  return t.tagName === "TD" ? t.classList.contains(Fe) || Array.from(t.children).some((n) => n.classList.contains(Fe)) : t.closest(`.${Fe}`) !== null;
2554
- }, An = ye(void 0), Xs = {
2557
+ }, Pn = ye(void 0), el = {
2555
2558
  progress: {
2556
2559
  fields: [
2557
2560
  { value: "hierarchy" },
@@ -2582,12 +2585,12 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2582
2585
  { value: "entityList" }
2583
2586
  ]
2584
2587
  }
2585
- }, el = () => {
2586
- const e = se(An);
2588
+ }, tl = () => {
2589
+ const e = ae(Pn);
2587
2590
  if (e === void 0)
2588
2591
  throw new Error("useSlicerContext must be used within a SlicerProvider");
2589
2592
  return e;
2590
- }, tl = () => se(An), ai = x(cn)`
2593
+ }, nl = () => ae(Pn), ai = x(cn)`
2591
2594
  height: 28px;
2592
2595
 
2593
2596
  .template-value {
@@ -2612,9 +2615,9 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2612
2615
  }
2613
2616
  }
2614
2617
  }
2615
- `, nl = Se(
2618
+ `, rl = Se(
2616
2619
  ({ sliceTypes: e, ...t }, n) => {
2617
- const { setPowerpackDialog: o } = pr(), a = [...t.options].map((l) => l.value === "hierarchy" ? l : {
2620
+ const { setPowerpackDialog: o } = mr(), a = [...t.options].map((l) => l.value === "hierarchy" ? l : {
2618
2621
  ...l,
2619
2622
  icon: "bolt"
2620
2623
  });
@@ -2632,7 +2635,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2632
2635
  }
2633
2636
  );
2634
2637
  }
2635
- ), 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)", Le = "inset 1px 0 0 0 var(--md-sys-color-primary)", ce = (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", rl = x.tr`
2638
+ ), 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)", Le = "inset 1px 0 0 0 var(--md-sys-color-primary)", ce = (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", ol = x.tr`
2636
2639
  display: flex;
2637
2640
  position: absolute;
2638
2641
  width: 100%;
@@ -2702,7 +2705,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2702
2705
  .resizing & {
2703
2706
  cursor: col-resize !important;
2704
2707
  }
2705
- `, ol = x.div`
2708
+ `, il = x.div`
2706
2709
  position: absolute;
2707
2710
  right: -1px;
2708
2711
  top: 0;
@@ -2718,9 +2721,9 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2718
2721
  opacity: 1;
2719
2722
  cursor: col-resize !important;
2720
2723
  }
2721
- `, il = x.tr`
2724
+ `, al = x.tr`
2722
2725
  background-color: var(--md-sys-color-surface-container-low);
2723
- `, al = x.th`
2726
+ `, sl = x.th`
2724
2727
  position: relative;
2725
2728
  background-color: var(--md-sys-color-surface-container-lowest);
2726
2729
  box-shadow: inset 1px -1px 0 0 var(--md-sys-color-surface-container);
@@ -2779,13 +2782,13 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2779
2782
  cursor: grabbing;
2780
2783
  }
2781
2784
  }
2782
- `, sl = x.span`
2785
+ `, ll = x.span`
2783
2786
  margin-left: -2px;
2784
2787
  font-size: 11px;
2785
2788
  line-height: 1;
2786
2789
  color: var(--md-sys-color-outline);
2787
2790
  user-select: none;
2788
- `, ll = x.div`
2791
+ `, cl = x.div`
2789
2792
  display: none;
2790
2793
 
2791
2794
  ${({ $isOpen: e }) => e && `
@@ -2853,7 +2856,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
2853
2856
  display: none !important;
2854
2857
  }
2855
2858
  }
2856
- `, cl = x.td`
2859
+ `, dl = x.td`
2857
2860
  position: relative;
2858
2861
  box-shadow: ${ce(!1)};
2859
2862
  background-color: var(--color-table-row);
@@ -3011,8 +3014,8 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
3011
3014
  pointer-events: none;
3012
3015
  }
3013
3016
 
3014
- /* read only fields are dimmed down for bg and border */
3015
- &:has(> div.readonly) {
3017
+ /* read only fields are dimmed down for bg and border; a fully read-only table keeps the normal focus */
3018
+ &:has(> div.readonly):not(.table-readonly) {
3016
3019
  &:not(.multiple-selected) {
3017
3020
  &.focused {
3018
3021
  background-color: var(--color-table-readonly-focused);
@@ -3061,7 +3064,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
3061
3064
  }
3062
3065
  }
3063
3066
  }
3064
- `, dl = x.div`
3067
+ `, ul = x.div`
3065
3068
  position: absolute;
3066
3069
  inset: 0;
3067
3070
  pointer-events: none;
@@ -3073,7 +3076,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
3073
3076
  width: 1px;
3074
3077
  background-color: var(--md-sys-color-surface-container);
3075
3078
  }
3076
- `, ul = x.thead`
3079
+ `, pl = x.thead`
3077
3080
  display: grid !important;
3078
3081
  position: sticky;
3079
3082
  top: 0;
@@ -3084,14 +3087,14 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
3084
3087
  .resizing & {
3085
3088
  cursor: col-resize !important;
3086
3089
  }
3087
- `, pl = x.div`
3090
+ `, ml = x.div`
3088
3091
  overflow: hidden;
3089
3092
  position: absolute;
3090
3093
  inset: 0;
3091
3094
  border-radius: var(--border-radius-m);
3092
3095
 
3093
3096
  background-color: var(--md-sys-color-surface-container-low);
3094
- `, ml = x.div`
3097
+ `, gl = x.div`
3095
3098
  position: relative;
3096
3099
  display: flex;
3097
3100
 
@@ -3140,7 +3143,7 @@ const jt = new wo(), dt = "projectTreeTextPreviewOpen", ko = (e) => {
3140
3143
  font-size: 18px;
3141
3144
  color: var(--md-sys-color-outline);
3142
3145
  }
3143
- `, gl = x.div`
3146
+ `, hl = x.div`
3144
3147
  animation: fadeIn 20ms ease-in forwards;
3145
3148
  animation-delay: 300ms;
3146
3149
  opacity: 0;
@@ -3168,7 +3171,7 @@ x.span`
3168
3171
  color: var(--md-sys-color-tertiary);
3169
3172
  }
3170
3173
  `;
3171
- const hl = x.div`
3174
+ const yl = x.div`
3172
3175
  position: absolute;
3173
3176
  bottom: 60px; // to go above the footer stats
3174
3177
  left: 8px;
@@ -3181,7 +3184,7 @@ const hl = x.div`
3181
3184
  box-shadow: var(--md-sys-shadow-level-2);
3182
3185
  padding: var(--padding-s);
3183
3186
  }
3184
- `, yl = x.span`
3187
+ `, fl = x.span`
3185
3188
  position: absolute;
3186
3189
  top: 0;
3187
3190
  bottom: 0;
@@ -3209,7 +3212,7 @@ const hl = x.div`
3209
3212
  display: none;
3210
3213
  }
3211
3214
  `, ci = Se(
3212
- ({ isSelected: e, ...t }, n) => /* @__PURE__ */ s(li, { ...t, ref: n, children: /* @__PURE__ */ s(te, { icon: "check" }) })
3215
+ ({ isSelected: e, ...t }, n) => /* @__PURE__ */ s(li, { ...t, ref: n, children: /* @__PURE__ */ s(re, { icon: "check" }) })
3213
3216
  ), di = x.div`
3214
3217
  position: absolute;
3215
3218
  inset: 0;
@@ -3218,23 +3221,36 @@ const hl = x.div`
3218
3221
  justify-content: center;
3219
3222
  cursor: pointer;
3220
3223
 
3224
+ .icon {
3225
+ color: var(--md-sys-color-outline);
3226
+ /* the header cell is 18px wide and clips anything larger */
3227
+ font-size: 16px;
3228
+ }
3229
+
3221
3230
  &:hover {
3222
3231
  background-color: var(--md-sys-color-surface-container-high);
3232
+
3233
+ .icon {
3234
+ color: var(--md-sys-color-on-surface);
3235
+ }
3236
+ }
3237
+
3238
+ &[data-selected='true'] .icon {
3239
+ color: var(--md-sys-color-on-surface);
3223
3240
  }
3224
3241
  `, ui = () => {
3225
- const { areAllRowsSelected: e, areSomeRowsSelected: t, selectAllRows: n, clearRowsSelection: o } = Dn(), a = e(), i = t();
3226
- return /* @__PURE__ */ s(di, { onClick: () => {
3227
- a || i ? o() : n();
3228
- }, children: a ? (
3229
- // Show double check mark when all rows are selected
3230
- /* @__PURE__ */ s(te, { icon: "done_all" })
3231
- ) : i ? (
3232
- // Show minimize icon when some (but not all) rows are selected
3233
- /* @__PURE__ */ s(te, { icon: "remove" })
3234
- ) : (
3235
- // Show nothing when no rows are selected
3236
- null
3237
- ) });
3242
+ const { areAllRowsSelected: e, areSomeRowsSelected: t, selectAllRows: n, clearRowsSelection: o } = An(), a = e(), i = t();
3243
+ return /* @__PURE__ */ s(
3244
+ di,
3245
+ {
3246
+ onClick: () => {
3247
+ a || i ? o() : n();
3248
+ },
3249
+ "data-selected": a || i,
3250
+ title: a || i ? "Clear selection" : "Select all rows",
3251
+ children: /* @__PURE__ */ s(re, { icon: i && !a ? "remove" : "done_all" })
3252
+ }
3253
+ );
3238
3254
  }, pi = kt(ui), mi = x.div`
3239
3255
  position: absolute;
3240
3256
  inset: 0;
@@ -3263,7 +3279,7 @@ const hl = x.div`
3263
3279
  if (t in e)
3264
3280
  return e[t];
3265
3281
  }
3266
- }, fl = (e, t) => {
3282
+ }, bl = (e, t) => {
3267
3283
  if (e)
3268
3284
  return e[t];
3269
3285
  }, hi = (e, t) => e ? e[t]?.display : void 0, yi = (e) => ["folder", "product"].includes(e), X = 50, fi = [
@@ -3272,7 +3288,7 @@ const hl = x.div`
3272
3288
  "float",
3273
3289
  "boolean",
3274
3290
  "datetime"
3275
- ], bi = (e) => Yn(e) || fi.includes(e.type), J = {
3291
+ ], bi = (e) => qn(e) || fi.includes(e.type), J = {
3276
3292
  thumbnail: "Thumbnail",
3277
3293
  status: "Status",
3278
3294
  entityType: "Entity type",
@@ -3309,17 +3325,17 @@ const hl = x.div`
3309
3325
  folder_entity: Te("folder"),
3310
3326
  task_entity: Te("task"),
3311
3327
  version_entity: Te("version"),
3312
- createdAt: Ze("createdAt", "datetime"),
3328
+ createdAt: Xe("createdAt", "datetime"),
3313
3329
  createdBy: "person",
3314
- updatedAt: Ze("updatedAt", "datetime"),
3330
+ updatedAt: Xe("updatedAt", "datetime"),
3315
3331
  updatedBy: "person",
3316
3332
  subtasks: "checklist",
3317
- comments: Ze("comment"),
3333
+ comments: Xe("comment"),
3318
3334
  [$e]: Me[$e].icon,
3319
3335
  [_e]: Me[_e].icon
3320
- }, bl = (e) => {
3336
+ }, vl = (e) => {
3321
3337
  const t = ge(e);
3322
- return vi[t] ?? Ze(t);
3338
+ return vi[t] ?? Xe(t);
3323
3339
  }, Pe = {
3324
3340
  thumbnail: { enabled: !1, label: J.thumbnail },
3325
3341
  name: { sortKey: "name", enabled: !0, label: "Name" },
@@ -3402,12 +3418,12 @@ const hl = x.div`
3402
3418
  comments: { enabled: !1, label: J.comments },
3403
3419
  [$e]: { enabled: !1, label: J[$e] },
3404
3420
  [_e]: { enabled: !1, label: J[_e] }
3405
- }, vl = (e) => e.includes("version") ? "Version / Product" : e.map((t) => t.charAt(0).toUpperCase() + t.slice(1)).join(" / "), xl = (e, t = []) => Object.entries(Pe).filter(
3421
+ }, xl = (e) => e.includes("version") ? "Version / Product" : e.map((t) => t.charAt(0).toUpperCase() + t.slice(1)).join(" / "), wl = (e, t = []) => Object.entries(Pe).filter(
3406
3422
  ([, n]) => n.enabled && (!n.scopes || !e || n.scopes.some((o) => e.includes(o)))
3407
3423
  ).map(([n, o]) => ({
3408
3424
  id: n,
3409
3425
  label: t.find((a) => ge(a.value) === n)?.label || oe(n, e)
3410
- })), xi = (e) => Pe[ge(e)]?.enabled ?? !e.startsWith("link_"), wl = (e, t = !0, n) => {
3426
+ })), xi = (e) => Pe[ge(e)]?.enabled ?? !e.startsWith("link_"), kl = (e, t = !0, n) => {
3411
3427
  if (!e) return;
3412
3428
  const o = ge(e);
3413
3429
  if (Ce(o).scope === "primary") {
@@ -3419,7 +3435,7 @@ const hl = x.div`
3419
3435
  }
3420
3436
  return Pe[o]?.sortKey ?? o;
3421
3437
  }
3422
- }, ie = (e) => (t, n, ...o) => t.original.isLoading !== n.original.isLoading ? t.original.isLoading ? 1 : -1 : e(t, n, ...o), Pn = new Intl.Collator(void 0, { numeric: !0, sensitivity: "base" }), wi = (e, t) => {
3438
+ }, ie = (e) => (t, n, ...o) => t.original.isLoading !== n.original.isLoading ? t.original.isLoading ? 1 : -1 : e(t, n, ...o), _n = new Intl.Collator(void 0, { numeric: !0, sensitivity: "base" }), wi = (e, t) => {
3423
3439
  const n = e.getAllCells()[0]?.getContext().table.getState().sorting;
3424
3440
  return !n?.length || n[n.length - 1].id === t;
3425
3441
  }, me = (e) => (t, n, ...o) => {
@@ -3427,10 +3443,10 @@ const hl = x.div`
3427
3443
  if (a !== 0) return a;
3428
3444
  if (!wi(t, o[0])) return 0;
3429
3445
  const i = t.original.primary.label || t.original.primary.name || "", l = n.original.primary.label || n.original.primary.name || "";
3430
- return Pn.compare(i, l);
3446
+ return _n.compare(i, l);
3431
3447
  }, ze = (e, t) => {
3432
3448
  const n = e.original.primary.label || e.original.primary.path || e.original.primary.name || "", o = t.original.primary.label || t.original.primary.path || t.original.primary.name || "";
3433
- return Pn.compare(n, o);
3449
+ return _n.compare(n, o);
3434
3450
  }, ve = (e) => {
3435
3451
  const t = e.parents?.version;
3436
3452
  return t?.entityType === "version" ? t : e.primary.entityType === "version" ? e.primary : void 0;
@@ -3439,29 +3455,29 @@ const hl = x.div`
3439
3455
  const t = je(e);
3440
3456
  return t?.entityType === "product" ? t.subType : void 0;
3441
3457
  }
3442
- return ae(e, "primary", "subType");
3443
- }, Ti = (e) => e.primary.entityType === "product" ? ve(e) : e.primary, _n = (e, t) => {
3458
+ return se(e, "primary", "subType");
3459
+ }, Ti = (e) => e.primary.entityType === "product" ? ve(e) : e.primary, $n = (e, t) => {
3444
3460
  const n = t.scope?.length === 1 && t.scope[0] === "version";
3445
3461
  return e.primary.entityType === "product" && n && ve(e) || e.primary;
3446
3462
  }, Xt = (e, t) => {
3447
- const n = _n(e, t);
3448
- return n === e.primary ? ae(e, "primary", t.name, !0) : n.attrib?.[t.name];
3463
+ const n = $n(e, t);
3464
+ return n === e.primary ? se(e, "primary", t.name, !0) : n.attrib?.[t.name];
3449
3465
  }, en = (e, t, n) => {
3450
3466
  const o = e.getValue(n), a = t.getValue(n), i = Array.isArray(o) ? o.length : o ? String(o).length : 0, l = Array.isArray(a) ? a.length : a ? String(a).length : 0;
3451
3467
  return i - l;
3452
- }, Xe = (e, t, n, o) => {
3468
+ }, et = (e, t, n, o) => {
3453
3469
  const a = e.getValue(n), i = t.getValue(n);
3454
3470
  if (o?.enum?.length) {
3455
3471
  const l = o.enum.findIndex((g) => g.value === a), c = o.enum.findIndex((g) => g.value === i);
3456
3472
  return l - c;
3457
3473
  } else return o?.type === "datetime" ? Ne.datetime(e, t, n) : o?.type === "boolean" ? (a === !0 ? 1 : 0) - (i === !0 ? 1 : 0) : Ne.alphanumeric(e, t, n);
3458
- }, Ci = (e) => e.data.type === "list_of_strings", Si = (e, t) => `${e.linkType.charAt(0).toUpperCase() + e.linkType.slice(1)} (${t})`, nt = (e, t) => `${e.name.replaceAll("_", "").replaceAll("-", "").replaceAll("|", "_")}_${t}`, Ii = (e, t) => `link_${nt(e, t)}`, $n = (e, t) => e === "primary" ? t : `${He(e)} ${t}`, Ei = (e, t, n) => {
3459
- const o = qe(n, t), a = typeof e.header == "string" ? $n(n, e.header) : e.header;
3474
+ }, Ci = (e) => e.data.type === "list_of_strings", Si = (e, t) => `${e.linkType.charAt(0).toUpperCase() + e.linkType.slice(1)} (${t})`, rt = (e, t) => `${e.name.replaceAll("_", "").replaceAll("-", "").replaceAll("|", "_")}_${t}`, Ii = (e, t) => `link_${rt(e, t)}`, Mn = (e, t) => e === "primary" ? t : `${He(e)} ${t}`, Ei = (e, t, n) => {
3475
+ const o = qe(n, t), a = typeof e.header == "string" ? Mn(n, e.header) : e.header;
3460
3476
  return {
3461
3477
  ...e,
3462
3478
  id: o,
3463
3479
  header: a,
3464
- accessorFn: (i) => ae(i, n, t),
3480
+ accessorFn: (i) => se(i, n, t),
3465
3481
  cell: (i) => {
3466
3482
  const l = De(i.row.original, n);
3467
3483
  return !l || i.row.original.group || i.row.original.metaType ? null : Dt(t, l.entityType) ? typeof e.cell == "function" ? e.cell(i) : e.cell : /* @__PURE__ */ s("div", { className: "readonly" });
@@ -3473,7 +3489,7 @@ const hl = x.div`
3473
3489
  return De(l, t) || (e.fallbackToPrimary && l.primary.entityType === t ? l.primary : void 0);
3474
3490
  }, i = (l) => {
3475
3491
  const c = a(l);
3476
- return c ? ae(l, c === l.primary ? "primary" : t, n) : void 0;
3492
+ return c ? se(l, c === l.primary ? "primary" : t, n) : void 0;
3477
3493
  };
3478
3494
  return {
3479
3495
  id: o,
@@ -3489,24 +3505,24 @@ const hl = x.div`
3489
3505
  const d = a(l.original);
3490
3506
  if (!d || l.original.group || l.original.metaType) return null;
3491
3507
  if (!Dt(n, d.entityType)) return /* @__PURE__ */ s("div", { className: "readonly" });
3492
- const f = i(l.original), p = g.options.meta, m = e.updateField || n, S = e.readOnly === !0 || p?.readOnly?.includes(c.id) || e.readOnly !== !1 && p?.readOnly?.includes(m);
3508
+ const f = i(l.original), u = g.options.meta, m = e.updateField || n, S = e.readOnly === !0 || u?.readOnly?.includes(c.id) || e.readOnly !== !1 && u?.readOnly?.includes(m);
3493
3509
  return /* @__PURE__ */ s(
3494
- re,
3510
+ ne,
3495
3511
  {
3496
3512
  rowId: l.id,
3497
3513
  className: W("parent-column", { loading: l.original.isLoading }),
3498
3514
  columnId: c.id,
3499
3515
  value: f,
3500
3516
  attributeData: { type: e.dataType || "string" },
3501
- options: e.optionKey ? p?.options?.[e.optionKey] : void 0,
3517
+ options: e.optionKey ? u?.options?.[e.optionKey] : void 0,
3502
3518
  isCollapsed: !!l.original.childOnlyMatch,
3503
3519
  isReadOnly: S,
3504
- onChange: (u) => !S && p?.updateEntities?.({
3520
+ onChange: (p) => !S && u?.updateEntities?.({
3505
3521
  id: d.id,
3506
3522
  rowId: l.id,
3507
3523
  type: d.entityType,
3508
3524
  field: m,
3509
- value: u,
3525
+ value: p,
3510
3526
  entityData: d
3511
3527
  })
3512
3528
  }
@@ -3517,22 +3533,22 @@ const hl = x.div`
3517
3533
  const n = qe(t, e.name, !0);
3518
3534
  return {
3519
3535
  id: n,
3520
- header: $n(t, e.data.title || e.name),
3521
- accessorFn: (o) => ae(o, t, e.name, !0),
3536
+ header: Mn(t, e.data.title || e.name),
3537
+ accessorFn: (o) => se(o, t, e.name, !0),
3522
3538
  minSize: X,
3523
3539
  enableSorting: !1,
3524
3540
  enableResizing: !0,
3525
3541
  enablePinning: !0,
3526
3542
  enableHiding: !0,
3527
3543
  sortingFn: ie(
3528
- me((o, a, i) => Xe(o, a, i, e.data))
3544
+ me((o, a, i) => et(o, a, i, e.data))
3529
3545
  ),
3530
3546
  cell: ({ row: o, column: a, table: i }) => {
3531
3547
  const l = De(o.original, t);
3532
3548
  if (!l || o.original.group || o.original.metaType) return null;
3533
- const c = i.options.meta, g = ae(o.original, t, e.name, !0), d = !l.ownAttrib?.includes(e.name), f = e.readOnly || c?.readOnly?.includes(n) || c?.readOnly?.includes(`attrib_${e.name}`) || c?.readOnly?.includes("attrib");
3549
+ const c = i.options.meta, g = se(o.original, t, e.name, !0), d = !l.ownAttrib?.includes(e.name), f = e.readOnly || c?.readOnly?.includes(n) || c?.readOnly?.includes(`attrib_${e.name}`) || c?.readOnly?.includes("attrib");
3534
3550
  return /* @__PURE__ */ s(
3535
- re,
3551
+ ne,
3536
3552
  {
3537
3553
  rowId: o.id,
3538
3554
  className: W("attrib", { loading: o.original.isLoading }),
@@ -3545,12 +3561,12 @@ const hl = x.div`
3545
3561
  options: e.data.enum || [],
3546
3562
  isInherited: d,
3547
3563
  isReadOnly: f,
3548
- onChange: (p) => !f && c?.updateEntities?.({
3564
+ onChange: (u) => !f && c?.updateEntities?.({
3549
3565
  id: l.id,
3550
3566
  rowId: o.id,
3551
3567
  type: l.entityType,
3552
3568
  field: e.name,
3553
- value: p,
3569
+ value: u,
3554
3570
  entityData: l,
3555
3571
  isAttrib: !0
3556
3572
  })
@@ -3582,7 +3598,7 @@ const hl = x.div`
3582
3598
  }
3583
3599
  );
3584
3600
  }
3585
- }), kl = ({
3601
+ }), Tl = ({
3586
3602
  scopes: e,
3587
3603
  attribs: t,
3588
3604
  links: n = [],
@@ -3594,12 +3610,12 @@ const hl = x.div`
3594
3610
  excludedSorting: g,
3595
3611
  extraColumns: d,
3596
3612
  groupBy: f,
3597
- nameLabel: p = "Entity",
3613
+ nameLabel: u = "Entity",
3598
3614
  includeParents: m = [],
3599
3615
  parentColumns: S = []
3600
3616
  }) => {
3601
- const u = [], b = (r) => !c?.some((h) => ge(h) === ge(r)), y = (r) => xi(r) && !g?.some((h) => ge(h) === ge(r));
3602
- b(Bt) && u.push({
3617
+ const p = [], b = (r) => !c?.some((h) => ge(h) === ge(r)), y = (r) => xi(r) && !g?.some((h) => ge(h) === ge(r));
3618
+ b(Bt) && p.push({
3603
3619
  id: Bt,
3604
3620
  enableResizing: !1,
3605
3621
  enableSorting: !1,
@@ -3608,10 +3624,10 @@ const hl = x.div`
3608
3624
  header: () => /* @__PURE__ */ s(pi, {}),
3609
3625
  cell: ({ row: r }) => r.original.group || r.original.metaType ? null : /* @__PURE__ */ s(ci, {}),
3610
3626
  size: 20
3611
- }), b("thumbnail") && u.push(tn("primary")), b("name") && u.push({
3627
+ }), b("thumbnail") && p.push(tn("primary")), b("name") && p.push({
3612
3628
  id: "name",
3613
- accessorFn: (r) => ae(r, "primary", "name"),
3614
- header: p,
3629
+ accessorFn: (r) => se(r, "primary", "name"),
3630
+ header: u,
3615
3631
  minSize: X,
3616
3632
  sortingFn: ie(ze),
3617
3633
  enableSorting: f && f.id !== "folder" ? !1 : y("name"),
@@ -3619,7 +3635,7 @@ const hl = x.div`
3619
3635
  enablePinning: !0,
3620
3636
  enableHiding: !(f && f.id !== "folder"),
3621
3637
  cell: ({ row: r, column: h, table: v }) => {
3622
- const { value: N, id: C, type: L } = pe(r, h.id), D = v.options.meta, { isEditing: k } = Nt(), { rowHeight: O = 40 } = Jo(), F = Ye(r.id, h.id);
3638
+ const { value: N, id: C, type: L } = pe(r, h.id), D = v.options.meta, { isEditing: k } = Nt(), { rowHeight: O = 40 } = Zo(), F = Ye(r.id, h.id);
3623
3639
  if (r.original.metaType)
3624
3640
  return /* @__PURE__ */ s(
3625
3641
  gt,
@@ -3648,7 +3664,7 @@ const hl = x.div`
3648
3664
  onLoadMore: (ue) => D?.loadMoreRows?.(ue)
3649
3665
  }
3650
3666
  );
3651
- const ne = r.getCanExpand() && !!r.originalSubRows && (yi(r.original.primary.entityType) || !!r.original.group);
3667
+ const te = r.getCanExpand() && !!r.originalSubRows && (yi(r.original.primary.entityType) || !!r.original.group);
3652
3668
  return /* @__PURE__ */ M(
3653
3669
  gt,
3654
3670
  {
@@ -3662,7 +3678,7 @@ const hl = x.div`
3662
3678
  }
3663
3679
  ),
3664
3680
  style: {
3665
- paddingLeft: `calc(${r.depth * 1}rem + ${ne || !r.getCanExpand() ? 0 : 32}px + 8px)`
3681
+ paddingLeft: `calc(${r.depth * 1}rem + ${te || !r.getCanExpand() ? 0 : 32}px + 8px)`
3666
3682
  },
3667
3683
  tabIndex: 0,
3668
3684
  children: [
@@ -3687,7 +3703,7 @@ const hl = x.div`
3687
3703
  id: r.id,
3688
3704
  entity: r.original.primary,
3689
3705
  path: !a && !i ? r.original.primary.path : void 0,
3690
- isExpandable: ne,
3706
+ isExpandable: te,
3691
3707
  isExpanded: r.getIsExpanded(),
3692
3708
  toggleExpandAll: () => D?.toggleExpandAll?.([r.id]),
3693
3709
  toggleExpanded: r.getToggleExpandedHandler(),
@@ -3696,7 +3712,7 @@ const hl = x.div`
3696
3712
  }
3697
3713
  ),
3698
3714
  !r.original.group && k(F) && /* @__PURE__ */ s(
3699
- re,
3715
+ ne,
3700
3716
  {
3701
3717
  rowId: C,
3702
3718
  className: W("name", { loading: r.original.isLoading }),
@@ -3720,14 +3736,14 @@ const hl = x.div`
3720
3736
  }
3721
3737
  );
3722
3738
  }
3723
- }), b("status") && u.push({
3739
+ }), b("status") && p.push({
3724
3740
  id: "status",
3725
- accessorFn: (r) => ae(r, "primary", "status"),
3741
+ accessorFn: (r) => se(r, "primary", "status"),
3726
3742
  minSize: X,
3727
3743
  header: oe("status"),
3728
3744
  sortingFn: ie(
3729
3745
  me(
3730
- (r, h, v) => Xe(r, h, v, { enum: l.status, type: "string" })
3746
+ (r, h, v) => et(r, h, v, { enum: l.status, type: "string" })
3731
3747
  )
3732
3748
  ),
3733
3749
  sortDescFirst: Pe.status.sortDescFirst,
@@ -3738,7 +3754,7 @@ const hl = x.div`
3738
3754
  cell: ({ row: r, column: h, table: v }) => {
3739
3755
  const { value: N, id: C, type: L } = pe(r, h.id), D = v.options.meta;
3740
3756
  return ["group", le].includes(L) || r.original.metaType ? null : /* @__PURE__ */ s(
3741
- re,
3757
+ ne,
3742
3758
  {
3743
3759
  rowId: C,
3744
3760
  className: W("status", { loading: r.original.isLoading }),
@@ -3770,7 +3786,7 @@ const hl = x.div`
3770
3786
  }
3771
3787
  );
3772
3788
  }
3773
- }), b("entityType") && u.push({
3789
+ }), b("entityType") && p.push({
3774
3790
  id: "entityType",
3775
3791
  accessorFn: (r) => r.group ? void 0 : r.primary.entityType,
3776
3792
  header: oe("entityType"),
@@ -3791,14 +3807,14 @@ const hl = x.div`
3791
3807
  className: W("entityType", Fe, L, { loading: r.original.isLoading }),
3792
3808
  tabIndex: 0,
3793
3809
  children: [
3794
- /* @__PURE__ */ s(te, { icon: Te(L) }),
3810
+ /* @__PURE__ */ s(re, { icon: Te(L) }),
3795
3811
  " ",
3796
3812
  He(N)
3797
3813
  ]
3798
3814
  }
3799
3815
  );
3800
3816
  }
3801
- }), b("subType") && u.push({
3817
+ }), b("subType") && p.push({
3802
3818
  id: "subType",
3803
3819
  accessorFn: ki,
3804
3820
  header: oe("subType", e),
@@ -3810,7 +3826,7 @@ const hl = x.div`
3810
3826
  sortDescFirst: Pe.taskType.sortDescFirst,
3811
3827
  sortingFn: ie(
3812
3828
  me(
3813
- (r, h, v) => Xe(r, h, v, {
3829
+ (r, h, v) => et(r, h, v, {
3814
3830
  enum: [...l.folderType, ...l.taskType],
3815
3831
  type: "string"
3816
3832
  })
@@ -3821,7 +3837,7 @@ const hl = x.div`
3821
3837
  if (["group", le].includes(L) || r.original.metaType) return null;
3822
3838
  const D = L === "product" || L === "version", k = L === "folder" ? "folderType" : D ? "productType" : "taskType", O = v.options.meta, F = L === "folder" && r.original.primary.entityType === "folder" && r.original.primary.hasVersions;
3823
3839
  return /* @__PURE__ */ s(
3824
- re,
3840
+ ne,
3825
3841
  {
3826
3842
  rowId: C,
3827
3843
  className: W("subType", { loading: r.original.isLoading }),
@@ -3830,8 +3846,8 @@ const hl = x.div`
3830
3846
  attributeData: { type: "string" },
3831
3847
  options: L === "folder" ? O?.options?.folderType : L === "task" ? O?.options?.taskType : D ? O?.options?.productType : [],
3832
3848
  isCollapsed: !!r.original.childOnlyMatch,
3833
- onChange: (ne) => O?.updateEntities?.(
3834
- { field: k, value: ne, type: L, rowId: r.id },
3849
+ onChange: (te) => O?.updateEntities?.(
3850
+ { field: k, value: te, type: L, rowId: r.id },
3835
3851
  { selection: O?.selection }
3836
3852
  ),
3837
3853
  isReadOnly: D || O?.readOnly?.includes(h.id) || O?.readOnly?.includes(k) || F || Ce(h.id).scope !== "primary",
@@ -3848,9 +3864,9 @@ const hl = x.div`
3848
3864
  }
3849
3865
  );
3850
3866
  }
3851
- }), b("assignees") && u.push({
3867
+ }), b("assignees") && p.push({
3852
3868
  id: "assignees",
3853
- accessorFn: (r) => ae(r, "primary", "assignees"),
3869
+ accessorFn: (r) => se(r, "primary", "assignees"),
3854
3870
  header: oe("assignees"),
3855
3871
  minSize: X,
3856
3872
  enableSorting: y("assignees"),
@@ -3861,7 +3877,7 @@ const hl = x.div`
3861
3877
  cell: ({ row: r, column: h, table: v }) => {
3862
3878
  const N = v.options.meta, { value: C, id: L, type: D } = pe(r, h.id);
3863
3879
  return ["group", le].includes(D) || r.original.metaType ? null : D === "folder" ? /* @__PURE__ */ s(
3864
- re,
3880
+ ne,
3865
3881
  {
3866
3882
  rowId: L,
3867
3883
  className: W("assignees", { loading: r.original.isLoading }),
@@ -3870,7 +3886,7 @@ const hl = x.div`
3870
3886
  isPlaceholder: !0
3871
3887
  }
3872
3888
  ) : /* @__PURE__ */ s(
3873
- re,
3889
+ ne,
3874
3890
  {
3875
3891
  rowId: L,
3876
3892
  className: W("assignees", { loading: r.original.isLoading }),
@@ -3896,9 +3912,9 @@ const hl = x.div`
3896
3912
  }
3897
3913
  );
3898
3914
  }
3899
- }), b(de.folder) && u.push({
3915
+ }), b(de.folder) && p.push({
3900
3916
  id: de.folder,
3901
- accessorFn: (r) => Wo(r),
3917
+ accessorFn: (r) => Uo(r),
3902
3918
  header: oe(de.folder),
3903
3919
  minSize: X,
3904
3920
  sortDescFirst: Pe.folder_entity.sortDescFirst,
@@ -3923,7 +3939,7 @@ const hl = x.div`
3923
3939
  }
3924
3940
  ) : null;
3925
3941
  }
3926
- }), b(de.task) && ["version", "product"].some((r) => e.includes(r)) && u.push({
3942
+ }), b(de.task) && ["version", "product"].some((r) => e.includes(r)) && p.push({
3927
3943
  id: de.task,
3928
3944
  accessorFn: (r) => r.parents?.task?.label || r.parents?.task?.name,
3929
3945
  header: oe(de.task),
@@ -3949,7 +3965,7 @@ const hl = x.div`
3949
3965
  }
3950
3966
  );
3951
3967
  }
3952
- }), b("author") && ["version", "product"].some((r) => e.includes(r)) && u.push({
3968
+ }), b("author") && ["version", "product"].some((r) => e.includes(r)) && p.push({
3953
3969
  id: "author",
3954
3970
  accessorFn: (r) => ve(r)?.author,
3955
3971
  header: oe("author"),
@@ -3963,7 +3979,7 @@ const hl = x.div`
3963
3979
  if (r.original.group || r.original.metaType) return null;
3964
3980
  const N = v.options.meta, C = ve(r.original), L = C?.author || "", D = C?.entityType || r.original.primary.entityType;
3965
3981
  return ["group", le].includes(D) ? null : /* @__PURE__ */ s(
3966
- re,
3982
+ ne,
3967
3983
  {
3968
3984
  rowId: r.id,
3969
3985
  className: W("author", { loading: r.original.isLoading }),
@@ -3976,7 +3992,7 @@ const hl = x.div`
3976
3992
  }
3977
3993
  );
3978
3994
  }
3979
- }), b(de.version) && ["version", "product"].some((r) => e.includes(r)) && u.push({
3995
+ }), b(de.version) && ["version", "product"].some((r) => e.includes(r)) && p.push({
3980
3996
  id: de.version,
3981
3997
  accessorFn: (r) => ve(r)?.versionName || ve(r)?.name,
3982
3998
  header: oe(de.version),
@@ -4004,7 +4020,7 @@ const hl = x.div`
4004
4020
  }
4005
4021
  );
4006
4022
  }
4007
- }), b("version") && ["version", "product"].some((r) => e.includes(r)) && u.push({
4023
+ }), b("version") && ["version", "product"].some((r) => e.includes(r)) && p.push({
4008
4024
  id: "version",
4009
4025
  accessorFn: (r) => ve(r)?.version,
4010
4026
  header: oe("version"),
@@ -4019,7 +4035,7 @@ const hl = x.div`
4019
4035
  if (r.original.group || r.original.metaType) return null;
4020
4036
  const v = ve(r.original), N = v?.version ?? 0, C = v?.entityType || r.original.primary.entityType;
4021
4037
  return ["group", le].includes(C) ? null : /* @__PURE__ */ s(
4022
- re,
4038
+ ne,
4023
4039
  {
4024
4040
  rowId: r.id,
4025
4041
  className: W("version", { loading: r.original.isLoading }),
@@ -4030,7 +4046,7 @@ const hl = x.div`
4030
4046
  }
4031
4047
  );
4032
4048
  }
4033
- }), b("product") && ["version", "product"].some((r) => e.includes(r)) && u.push({
4049
+ }), b("product") && ["version", "product"].some((r) => e.includes(r)) && p.push({
4034
4050
  id: "product",
4035
4051
  accessorFn: (r) => je(r)?.label || je(r)?.name,
4036
4052
  header: oe("product"),
@@ -4044,7 +4060,7 @@ const hl = x.div`
4044
4060
  if (r.original.group || r.original.metaType) return null;
4045
4061
  const v = je(r.original), N = v?.label || v?.name || "", C = v?.entityType || r.original.primary.entityType;
4046
4062
  return ["group", le].includes(C) ? null : /* @__PURE__ */ s(
4047
- re,
4063
+ ne,
4048
4064
  {
4049
4065
  rowId: r.id,
4050
4066
  className: W("product", { loading: r.original.isLoading }),
@@ -4055,9 +4071,9 @@ const hl = x.div`
4055
4071
  }
4056
4072
  );
4057
4073
  }
4058
- }), b("tags") && u.push({
4074
+ }), b("tags") && p.push({
4059
4075
  id: "tags",
4060
- accessorFn: (r) => ae(r, "primary", "tags"),
4076
+ accessorFn: (r) => se(r, "primary", "tags"),
4061
4077
  header: oe("tags"),
4062
4078
  minSize: X,
4063
4079
  enableSorting: y("tags"),
@@ -4068,7 +4084,7 @@ const hl = x.div`
4068
4084
  cell: ({ row: r, column: h, table: v }) => {
4069
4085
  const N = v.options.meta, { value: C, id: L, type: D } = pe(r, h.id);
4070
4086
  return ["group", le].includes(D) || r.original.metaType ? null : /* @__PURE__ */ s(
4071
- re,
4087
+ ne,
4072
4088
  {
4073
4089
  rowId: L,
4074
4090
  className: W("tags", { loading: r.original.isLoading }),
@@ -4086,9 +4102,9 @@ const hl = x.div`
4086
4102
  }
4087
4103
  );
4088
4104
  }
4089
- }), b("createdAt") && u.push({
4105
+ }), b("createdAt") && p.push({
4090
4106
  id: "createdAt",
4091
- accessorFn: (r) => ae(r, "primary", "createdAt"),
4107
+ accessorFn: (r) => se(r, "primary", "createdAt"),
4092
4108
  header: oe("createdAt"),
4093
4109
  minSize: X,
4094
4110
  enableSorting: y("createdAt"),
@@ -4099,7 +4115,7 @@ const hl = x.div`
4099
4115
  cell: ({ row: r, column: h }) => {
4100
4116
  const { value: v, id: N, type: C } = pe(r, h.id);
4101
4117
  return ["group", le].includes(C) || r.original.metaType ? null : /* @__PURE__ */ s(
4102
- re,
4118
+ ne,
4103
4119
  {
4104
4120
  rowId: N,
4105
4121
  className: W("createdAt", { loading: r.original.isLoading }),
@@ -4112,9 +4128,9 @@ const hl = x.div`
4112
4128
  }
4113
4129
  );
4114
4130
  }
4115
- }), b("updatedAt") && u.push({
4131
+ }), b("updatedAt") && p.push({
4116
4132
  id: "updatedAt",
4117
- accessorFn: (r) => ae(r, "primary", "updatedAt"),
4133
+ accessorFn: (r) => se(r, "primary", "updatedAt"),
4118
4134
  header: oe("updatedAt"),
4119
4135
  minSize: X,
4120
4136
  enableSorting: y("updatedAt"),
@@ -4125,7 +4141,7 @@ const hl = x.div`
4125
4141
  cell: ({ row: r, column: h }) => {
4126
4142
  const { value: v, id: N, type: C } = pe(r, h.id);
4127
4143
  return ["group", le].includes(C) || r.original.metaType ? null : /* @__PURE__ */ s(
4128
- re,
4144
+ ne,
4129
4145
  {
4130
4146
  rowId: N,
4131
4147
  className: W("updatedAt", { loading: r.original.isLoading }),
@@ -4140,9 +4156,9 @@ const hl = x.div`
4140
4156
  }
4141
4157
  });
4142
4158
  for (const r of ["createdBy", "updatedBy"])
4143
- b(r) && u.push({
4159
+ b(r) && p.push({
4144
4160
  id: r,
4145
- accessorFn: (h) => ae(h, "primary", r),
4161
+ accessorFn: (h) => se(h, "primary", r),
4146
4162
  header: oe(r),
4147
4163
  minSize: X,
4148
4164
  enableSorting: y(r),
@@ -4162,7 +4178,7 @@ const hl = x.div`
4162
4178
  }
4163
4179
  ] : k;
4164
4180
  return /* @__PURE__ */ s(
4165
- re,
4181
+ ne,
4166
4182
  {
4167
4183
  rowId: L,
4168
4184
  className: W(r, { loading: h.original.isLoading }),
@@ -4176,7 +4192,7 @@ const hl = x.div`
4176
4192
  );
4177
4193
  }
4178
4194
  });
4179
- b("subtasks") && e.includes("task") && u.push({
4195
+ b("subtasks") && e.includes("task") && p.push({
4180
4196
  id: "subtasks",
4181
4197
  accessorFn: (r) => r.primary.entityType === "task" ? r.primary.subtasks : void 0,
4182
4198
  header: oe("subtasks"),
@@ -4190,13 +4206,13 @@ const hl = x.div`
4190
4206
  if (["group", le].includes(D) || r.original.metaType) return null;
4191
4207
  if (D !== "task") return /* @__PURE__ */ s("div", { className: "readonly" });
4192
4208
  const k = {
4193
- taskId: jo(r.id) || r.original.primary.id,
4209
+ taskId: Yo(r.id) || r.original.primary.id,
4194
4210
  taskName: r.original.primary.name,
4195
4211
  folderId: r.original.parents?.folder?.id ?? void 0,
4196
4212
  subtasks: C || []
4197
4213
  };
4198
4214
  return /* @__PURE__ */ s(
4199
- re,
4215
+ ne,
4200
4216
  {
4201
4217
  rowId: L,
4202
4218
  className: W("subtasks", { loading: r.original.isLoading }),
@@ -4208,7 +4224,7 @@ const hl = x.div`
4208
4224
  }
4209
4225
  );
4210
4226
  }
4211
- }), b("comments") && e.some((r) => ["task", "version", "product", "folder"].includes(r)) && u.push({
4227
+ }), b("comments") && e.some((r) => ["task", "version", "product", "folder"].includes(r)) && p.push({
4212
4228
  id: "comments",
4213
4229
  accessorFn: (r) => r.group ? void 0 : r.primary.entityType === "product" ? r.parents?.version?.latestComments || [] : r.primary.latestComments || [],
4214
4230
  header: oe("comments"),
@@ -4221,7 +4237,7 @@ const hl = x.div`
4221
4237
  if (r.original.group || r.original.metaType) return null;
4222
4238
  const v = r.original.primary.entityType === "product", N = v && r.original.parents?.version || r.original.primary, C = v ? r.original.parents?.version?.latestComments || [] : r.original.primary.latestComments || [], L = N.entityType;
4223
4239
  return ["group", le].includes(L) ? null : !r.original.isLoading && !["task", "version", "product", "folder"].includes(L) ? /* @__PURE__ */ s("div", { className: "readonly" }) : /* @__PURE__ */ s(
4224
- re,
4240
+ ne,
4225
4241
  {
4226
4242
  rowId: r.id,
4227
4243
  className: W("comments", { loading: r.original.isLoading }),
@@ -4235,8 +4251,8 @@ const hl = x.div`
4235
4251
  );
4236
4252
  }
4237
4253
  });
4238
- for (const r of Ho)
4239
- !b(r) || !e.some((h) => ut(r, h)) || u.push({
4254
+ for (const r of Bo)
4255
+ !b(r) || !e.some((h) => pt(r, h)) || p.push({
4240
4256
  id: r,
4241
4257
  header: oe(r),
4242
4258
  minSize: X,
@@ -4247,11 +4263,11 @@ const hl = x.div`
4247
4263
  cell: ({ row: h, column: v }) => {
4248
4264
  const { group: N, metaType: C, isLoading: L, primary: D } = h.original;
4249
4265
  if (N || C) return null;
4250
- if (!L && !ut(v.id, D.entityType))
4266
+ if (!L && !pt(v.id, D.entityType))
4251
4267
  return /* @__PURE__ */ s("div", { className: "readonly" });
4252
- const k = !L && ut(v.id, D.entityType) ? { entityId: D.id, entityType: D.entityType, columnId: v.id } : void 0;
4268
+ const k = !L && pt(v.id, D.entityType) ? { entityId: D.id, entityType: D.entityType, columnId: v.id } : void 0;
4253
4269
  return /* @__PURE__ */ s(
4254
- re,
4270
+ ne,
4255
4271
  {
4256
4272
  rowId: h.id,
4257
4273
  className: W("lists", { loading: L }),
@@ -4275,7 +4291,7 @@ const hl = x.div`
4275
4291
  minSize: X,
4276
4292
  filterFn: "fuzzy",
4277
4293
  sortingFn: ie(
4278
- me((v, N, C) => Xe(v, N, C, r.data))
4294
+ me((v, N, C) => et(v, N, C, r.data))
4279
4295
  ),
4280
4296
  enableSorting: !Ci(r) && y(r.name) && y("attrib"),
4281
4297
  enableResizing: !0,
@@ -4283,9 +4299,9 @@ const hl = x.div`
4283
4299
  enableHiding: !0,
4284
4300
  cell: ({ row: v, column: N, table: C }) => {
4285
4301
  if (v.original.group || v.original.metaType) return null;
4286
- const L = C.options.meta, D = N.id.replace("attrib_", ""), { type: k } = pe(v, D, "attrib"), O = _n(v.original, r), F = Xt(v.original, r), ne = O.id, ue = O.entityType, ke = !O.ownAttrib?.includes(D);
4302
+ const L = C.options.meta, D = N.id.replace("attrib_", ""), { type: k } = pe(v, D, "attrib"), O = $n(v.original, r), F = Xt(v.original, r), te = O.id, ue = O.entityType, ke = !O.ownAttrib?.includes(D);
4287
4303
  return ["group", le].includes(ue) || v.original.metaType || !r.scope?.includes(k) && F == null ? null : /* @__PURE__ */ s(
4288
- re,
4304
+ ne,
4289
4305
  {
4290
4306
  rowId: v.id,
4291
4307
  className: W("attrib", { loading: v.original.isLoading }),
@@ -4300,9 +4316,9 @@ const hl = x.div`
4300
4316
  isLoadingOptions: !!r.enumIsLoading,
4301
4317
  tooltip: r.enumError,
4302
4318
  pt: {
4303
- enum: { error: jn(r.enumError) },
4319
+ enum: { error: Yn(r.enumError) },
4304
4320
  // markdown attributes can mention the users, tasks and versions of the entity
4305
- text: { mentionEntity: { entityId: ne, entityType: ue } }
4321
+ text: { mentionEntity: { entityId: te, entityType: ue } }
4306
4322
  },
4307
4323
  midnightExclusiveFields: v.original.midnightExclusiveFields,
4308
4324
  isCollapsed: !!v.original.childOnlyMatch,
@@ -4319,7 +4335,7 @@ const hl = x.div`
4319
4335
  field: D,
4320
4336
  value: K,
4321
4337
  type: ue,
4322
- id: ne,
4338
+ id: te,
4323
4339
  isAttrib: !0,
4324
4340
  rowId: v.id,
4325
4341
  entityData: O
@@ -4337,13 +4353,13 @@ const hl = x.div`
4337
4353
  const N = Ii(h, v);
4338
4354
  return {
4339
4355
  id: r === "primary" ? N : qe(r, N),
4340
- accessorFn: (L) => L.group ? void 0 : De(L, r)?.links?.[nt(h, v)],
4356
+ accessorFn: (L) => L.group ? void 0 : De(L, r)?.links?.[rt(h, v)],
4341
4357
  header: () => /* @__PURE__ */ M(si, { children: [
4342
4358
  r === "primary" ? "" : `${He(r)} `,
4343
4359
  Si(h, v),
4344
4360
  " ",
4345
4361
  /* @__PURE__ */ s(
4346
- te,
4362
+ re,
4347
4363
  {
4348
4364
  icon: Te(v === "in" ? h.inputType : h.outputType)
4349
4365
  }
@@ -4356,7 +4372,7 @@ const hl = x.div`
4356
4372
  enableHiding: !0,
4357
4373
  cell: ({ row: L, column: D, table: k }) => {
4358
4374
  if (L.original.group || L.original.metaType) return null;
4359
- const { id: O, value: F } = pe(L, D.id, "links"), ne = F?.map((K) => K.label), ue = De(L.original, r);
4375
+ const { id: O, value: F } = pe(L, D.id, "links"), te = F?.map((K) => K.label), ue = De(L.original, r);
4360
4376
  if (!ue) return null;
4361
4377
  const ke = r === "primary" && !!k.options.meta?.loadingLinksEntityIds?.has(ue.id), Ae = {
4362
4378
  links: F,
@@ -4370,12 +4386,12 @@ const hl = x.div`
4370
4386
  }
4371
4387
  };
4372
4388
  return /* @__PURE__ */ s(
4373
- re,
4389
+ ne,
4374
4390
  {
4375
4391
  rowId: O,
4376
4392
  className: W("links", { loading: L.original.isLoading }),
4377
4393
  columnId: D.id,
4378
- value: ne,
4394
+ value: te,
4379
4395
  valueData: Ae,
4380
4396
  folderId: L.original.parents?.folder?.id,
4381
4397
  attributeData: { type: "links" },
@@ -4385,7 +4401,7 @@ const hl = x.div`
4385
4401
  }
4386
4402
  };
4387
4403
  })
4388
- ), _ = o ? R("primary") : [], E = /* @__PURE__ */ new Set([
4404
+ ), _ = o ? R("primary") : [], I = /* @__PURE__ */ new Set([
4389
4405
  "status",
4390
4406
  "assignees",
4391
4407
  "author",
@@ -4395,11 +4411,11 @@ const hl = x.div`
4395
4411
  "createdBy",
4396
4412
  "updatedAt",
4397
4413
  "updatedBy"
4398
- ]), I = new Set(
4414
+ ]), E = new Set(
4399
4415
  S.map((r) => `${r.scope}:${r.field}`)
4400
4416
  ), T = m.flatMap(
4401
- (r) => u.filter(
4402
- (h) => E.has(h.id) && !I.has(`${r}:${h.id}`)
4417
+ (r) => p.filter(
4418
+ (h) => I.has(h.id) && !E.has(`${r}:${h.id}`)
4403
4419
  ).map((h) => Ei(h, h.id, r))
4404
4420
  ), z = S.filter((r) => m.includes(r.scope)).map(Ri), H = b("thumbnail") ? m.map((r) => tn(r)) : [], B = o ? m.flatMap((r) => R(r)) : [], A = new Set(
4405
4421
  m.filter((r) => {
@@ -4409,7 +4425,7 @@ const hl = x.div`
4409
4425
  ), P = m.filter((r) => A.has(r)).flatMap(
4410
4426
  (r) => t.flatMap((h) => h.scope && !h.scope.includes(r) ? [] : [Li(h, r)])
4411
4427
  ), U = [
4412
- ...u,
4428
+ ...p,
4413
4429
  ...H,
4414
4430
  ...T,
4415
4431
  ...z,
@@ -4429,30 +4445,30 @@ const hl = x.div`
4429
4445
  id: e.original.id,
4430
4446
  type: "group"
4431
4447
  };
4432
- const { scope: o, field: a, isAttrib: i } = Ce(t), c = De(e.original, o) || e.original.primary, g = ve(e.original), d = je(e.original), f = e.original.primary.entityType === "product", p = o === "primary" && !i && ["author", "version", "versionName"].includes(a), m = o === "primary" && !i && a === "product", S = o === "primary" && !i && a === "subType" && e.original.primary.entityType === "version";
4433
- let u = c;
4434
- p && g ? u = g : S && d || m && d ? u = d : n === "latestComments" && f && g && (u = g);
4448
+ const { scope: o, field: a, isAttrib: i } = Ce(t), c = De(e.original, o) || e.original.primary, g = ve(e.original), d = je(e.original), f = e.original.primary.entityType === "product", u = o === "primary" && !i && ["author", "version", "versionName"].includes(a), m = o === "primary" && !i && a === "product", S = o === "primary" && !i && a === "subType" && e.original.primary.entityType === "version";
4449
+ let p = c;
4450
+ u && g ? p = g : S && d || m && d ? p = d : n === "latestComments" && f && g && (p = g);
4435
4451
  let b;
4436
4452
  if (n === "attrib")
4437
- b = ae(e.original, o, a, !0);
4453
+ b = se(e.original, o, a, !0);
4438
4454
  else if (n === "links")
4439
- b = u.links?.[a.replace(/^link_/, "")];
4455
+ b = p.links?.[a.replace(/^link_/, "")];
4440
4456
  else if (n === "subtasks")
4441
- b = u.entityType === "task" ? u.subtasks : void 0;
4457
+ b = p.entityType === "task" ? p.subtasks : void 0;
4442
4458
  else if (n === "latestComments")
4443
4459
  b = f ? g?.latestComments || e.original.primary.latestComments : c.latestComments;
4444
4460
  else if (t === "folder")
4445
4461
  b = e.original.parents?.folder?.label || e.original.parents?.folder?.name;
4446
4462
  else if (t === "product")
4447
4463
  b = d?.label || d?.name;
4448
- else if (u === c)
4449
- b = ae(e.original, o, a, i);
4464
+ else if (p === c)
4465
+ b = se(e.original, o, a, i);
4450
4466
  else {
4451
- const y = u.entityType === "version" ? "version" : "product";
4452
- b = ae(e.original, y, a, i);
4467
+ const y = p.entityType === "version" ? "version" : "product";
4468
+ b = se(e.original, y, a, i);
4453
4469
  }
4454
- return { value: b, id: e.id, type: u.entityType };
4455
- }, Ni = 200, Di = (e) => Xn.includes(e), Tl = ({
4470
+ return { value: b, id: e.id, type: p.entityType };
4471
+ }, Ni = 200, Di = (e) => er.includes(e), Cl = ({
4456
4472
  projectName: e,
4457
4473
  entities: t,
4458
4474
  enabled: n
@@ -4462,24 +4478,24 @@ const hl = x.div`
4462
4478
  const c = ee(() => {
4463
4479
  const d = { folder: [], task: [], version: [] };
4464
4480
  for (const f of a ? a.split(",") : []) {
4465
- const [p, m] = f.split(":");
4466
- d[p].push(m);
4481
+ const [u, m] = f.split(":");
4482
+ d[u].push(m);
4467
4483
  }
4468
4484
  return d;
4469
4485
  }, [a]), g = (d) => !n || !e || !c[d].length;
4470
- at(
4486
+ st(
4471
4487
  { projectName: e, entityType: "folder", entityIds: c.folder },
4472
4488
  { skip: g("folder") }
4473
- ), at(
4489
+ ), st(
4474
4490
  { projectName: e, entityType: "task", entityIds: c.task },
4475
4491
  { skip: g("task") }
4476
- ), at(
4492
+ ), st(
4477
4493
  { projectName: e, entityType: "version", entityIds: c.version },
4478
4494
  { skip: g("version") }
4479
4495
  );
4480
4496
  }, Ai = (e, t, n) => {
4481
4497
  const o = ee(
4482
- () => er.endpoints.getListsMembership.select({
4498
+ () => tr.endpoints.getListsMembership.select({
4483
4499
  projectName: e,
4484
4500
  entityType: t,
4485
4501
  entityIds: []
@@ -4491,7 +4507,7 @@ const hl = x.div`
4491
4507
  return Tt(c.error) || "Unknown error";
4492
4508
  });
4493
4509
  return { lists: a, error: i };
4494
- }, Pi = ye({}), _i = () => se(Pi);
4510
+ }, Pi = ye({}), _i = () => ae(Pi);
4495
4511
  var $i = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.Top = 1] = "Top", e[e.Right = 2] = "Right", e[e.Bottom = 4] = "Bottom", e[e.Left = 8] = "Left", e[e.All = 15] = "All", e))($i || {});
4496
4512
  const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4497
4513
  const t = e.match(/^cell-(.+)-(.+)$/);
@@ -4506,7 +4522,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4506
4522
  field: i ? a.slice(7) : a,
4507
4523
  isAttrib: i
4508
4524
  };
4509
- }, zi = (e) => !!e && typeof e == "object" && "primary" in e, Cl = (e, t) => {
4525
+ }, zi = (e) => !!e && typeof e == "object" && "primary" in e, Sl = (e, t) => {
4510
4526
  if (!e || !t) return;
4511
4527
  if (zi(e)) {
4512
4528
  const { scope: a, field: i, isAttrib: l } = Ce(t);
@@ -4520,7 +4536,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4520
4536
  if (i === "product")
4521
4537
  return e.parents?.product?.label || e.parents?.product?.name || (e.primary.entityType === "product" ? e.primary.label || e.primary.name : void 0);
4522
4538
  }
4523
- return ae(e, a, i, l);
4539
+ return se(e, a, i, l);
4524
4540
  }
4525
4541
  const n = t.split("_");
4526
4542
  let o = e;
@@ -4530,23 +4546,23 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4530
4546
  else
4531
4547
  return;
4532
4548
  return o;
4533
- }, Sl = (e, t) => {
4549
+ }, Il = (e, t) => {
4534
4550
  const [n, o, a, i, l] = t.split("_"), c = e.filter(
4535
4551
  (g) => g.linkType === o && g.direction === l
4536
4552
  );
4537
4553
  return c.length ? c.map((g) => g.node.id).join(",") : "";
4538
- }, Il = (e, t, n) => {
4554
+ }, El = (e, t, n) => {
4539
4555
  if (!n[e]?.[t])
4540
4556
  return 0;
4541
4557
  let o = 0;
4542
4558
  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;
4543
- }, El = (e) => {
4559
+ }, Rl = (e) => {
4544
4560
  const t = [];
4545
4561
  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;
4546
- }, Rl = (e, t) => t.get(Zo(e)), Fi = (e, t, n) => e?.reduce((o, a) => {
4562
+ }, Ll = (e, t) => t.get(Xo(e)), Fi = (e, t, n) => e?.reduce((o, a) => {
4547
4563
  const { linkType: i, direction: l, entityType: c, id: g, node: d, isRestricted: f } = a;
4548
4564
  if (f || !d) {
4549
- const u = {
4565
+ const p = {
4550
4566
  label: "",
4551
4567
  parents: [],
4552
4568
  linkId: g,
@@ -4555,10 +4571,10 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4555
4571
  icon: yt(c, void 0, n),
4556
4572
  color: void 0,
4557
4573
  isRestricted: !0
4558
- }, b = nn(i, t, c, l), y = nt({ name: b }, l);
4559
- return o[y] || (o[y] = []), o[y].includes(u) || o[y].push(u), o;
4574
+ }, b = nn(i, t, c, l), y = rt({ name: b }, l);
4575
+ return o[y] || (o[y] = []), o[y].includes(p) || o[y].push(p), o;
4560
4576
  }
4561
- const p = {
4577
+ const u = {
4562
4578
  label: d.label || d.name,
4563
4579
  parents: d.parents,
4564
4580
  linkId: g,
@@ -4566,8 +4582,8 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4566
4582
  entityType: c,
4567
4583
  icon: yt(c, d.subType, n),
4568
4584
  color: pn(c, d.subType, n)
4569
- }, m = nn(i, t, c, l), S = nt({ name: m }, l);
4570
- return o[S] || (o[S] = []), o[S].includes(p) || o[S].push(p), o;
4585
+ }, m = nn(i, t, c, l), S = rt({ name: m }, l);
4586
+ return o[S] || (o[S] = []), o[S].includes(u) || o[S].push(u), o;
4571
4587
  }, {}) || {}, nn = (e, t, n, o) => `${e}|${o === "in" ? n : t}|${o === "in" ? t : n}`, _t = (e) => ({
4572
4588
  id: e.id,
4573
4589
  primary: {
@@ -4615,7 +4631,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4615
4631
  },
4616
4632
  parents: t ? { folder: _t(t).primary } : void 0,
4617
4633
  midnightExclusiveFields: e.data?.schedulerSyncData?.allDay ? ["attrib_endDate"] : void 0
4618
- }), Ll = (e, t) => {
4634
+ }), Nl = (e, t) => {
4619
4635
  const n = e;
4620
4636
  return {
4621
4637
  id: n.id,
@@ -4636,7 +4652,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4636
4652
  },
4637
4653
  parents: t ? { folder: _t(t).primary } : void 0
4638
4654
  };
4639
- }, Nl = (e, t, n) => ({
4655
+ }, Dl = (e, t, n) => ({
4640
4656
  id: e.id,
4641
4657
  primary: {
4642
4658
  id: e.id,
@@ -4667,12 +4683,12 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4667
4683
  targetEntityType: a,
4668
4684
  linkType: i
4669
4685
  }) => {
4670
- const l = zo()?.history, [c] = tr(), [g] = nr(), d = Y(
4671
- async (p, m = !0) => {
4686
+ const l = Fo()?.history, [c] = nr(), [g] = rr(), d = Y(
4687
+ async (u, m = !0) => {
4672
4688
  try {
4673
- if (p.some((b) => b.targetEntityId === n))
4689
+ if (u.some((b) => b.targetEntityId === n))
4674
4690
  return we.error("You can't link an entity to itself"), !1;
4675
- const u = p.map((b) => ({
4691
+ const p = u.map((b) => ({
4676
4692
  targetEntityId: b.targetEntityId,
4677
4693
  linkId: b.linkId,
4678
4694
  sourceEntityId: n,
@@ -4682,9 +4698,9 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4682
4698
  direction: t,
4683
4699
  projectName: e
4684
4700
  }));
4685
- return await Ko(u, g), m && l && l.pushHistory([
4701
+ return await Vo(p, g), m && l && l.pushHistory([
4686
4702
  () => f(
4687
- p.map((b) => ({
4703
+ u.map((b) => ({
4688
4704
  id: b.linkId,
4689
4705
  target: { entityId: b.targetEntityId, entityType: a }
4690
4706
  })),
@@ -4697,13 +4713,13 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4697
4713
  },
4698
4714
  [g, e, n, o, a, i, t, l]
4699
4715
  ), f = Y(
4700
- async (p, m = !0) => {
4716
+ async (u, m = !0) => {
4701
4717
  try {
4702
- if (p.some((b) => b.target.entityId === n)) {
4718
+ if (u.some((b) => b.target.entityId === n)) {
4703
4719
  we.error("You can't link an entity to itself");
4704
4720
  return;
4705
4721
  }
4706
- const u = p.map((b) => ({
4722
+ const p = u.map((b) => ({
4707
4723
  id: b.id,
4708
4724
  target: b.target,
4709
4725
  source: { entityType: o, entityId: n },
@@ -4711,8 +4727,8 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4711
4727
  direction: t,
4712
4728
  projectName: e
4713
4729
  }));
4714
- await Uo(u, c), m && l && l.pushHistory(
4715
- p.map(
4730
+ await Ko(p, c), m && l && l.pushHistory(
4731
+ u.map(
4716
4732
  (b) => () => d([{ targetEntityId: b.target.entityId, linkId: b.id }], !1)
4717
4733
  )
4718
4734
  );
@@ -4755,14 +4771,14 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4755
4771
  if (S !== 0)
4756
4772
  switch (m.key) {
4757
4773
  case "ArrowDown":
4758
- m.preventDefault(), g((u) => {
4759
- const b = u < S - 1 ? u + 1 : 0;
4774
+ m.preventDefault(), g((p) => {
4775
+ const b = p < S - 1 ? p + 1 : 0;
4760
4776
  return b >= e.length ? 0 : b;
4761
4777
  });
4762
4778
  break;
4763
4779
  case "ArrowUp":
4764
- m.preventDefault(), g((u) => {
4765
- const b = u > 0 ? u - 1 : S - 1;
4780
+ m.preventDefault(), g((p) => {
4781
+ const b = p > 0 ? p - 1 : S - 1;
4766
4782
  return b >= e.length ? e.length - 1 : b;
4767
4783
  });
4768
4784
  break;
@@ -4782,7 +4798,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4782
4798
  document.removeEventListener("keydown", f);
4783
4799
  };
4784
4800
  }, [o, f]);
4785
- const p = Y(
4801
+ const u = Y(
4786
4802
  (m) => ({
4787
4803
  "data-index": m,
4788
4804
  className: c === m ? "selected" : "",
@@ -4795,16 +4811,16 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4795
4811
  return {
4796
4812
  selectedIndex: c,
4797
4813
  containerRef: d,
4798
- getItemProps: p
4814
+ getItemProps: u
4799
4815
  };
4800
4816
  }, Ui = ({}) => Array.from({ length: 3 }, (e, t) => /* @__PURE__ */ M(Tn, { className: "loading", children: [
4801
4817
  /* @__PURE__ */ s("div", { className: "icon", children: "•" }),
4802
4818
  /* @__PURE__ */ s("div", { className: "label", children: "Loading..." }),
4803
4819
  /* @__PURE__ */ s("div", { className: "type", children: "•" })
4804
- ] }, `loading-${t}`)), it = ({ entity: e, icon: t, color: n, ...o }) => {
4820
+ ] }, `loading-${t}`)), at = ({ entity: e, icon: t, color: n, ...o }) => {
4805
4821
  const { anatomy: a } = Be();
4806
4822
  return /* @__PURE__ */ s(
4807
- te,
4823
+ re,
4808
4824
  {
4809
4825
  icon: t ?? yt(e.entityType, e.subType, a),
4810
4826
  style: { color: n ?? pn(e.entityType, e.subType, a) },
@@ -4823,29 +4839,29 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4823
4839
  const [i, l] = G(""), [c, g] = G(""), d = Q(null), f = ee(() => un(g, 300), []);
4824
4840
  q(() => (f(i), () => f.cancel()), [i, f]);
4825
4841
  const {
4826
- data: p,
4842
+ data: u,
4827
4843
  error: m,
4828
4844
  isLoading: S,
4829
- hasNextPage: u,
4845
+ hasNextPage: p,
4830
4846
  isFetchingNextPage: b,
4831
4847
  fetchNextPage: y
4832
- } = rr(
4848
+ } = or(
4833
4849
  {
4834
4850
  projectName: e,
4835
4851
  entityType: t,
4836
4852
  search: c
4837
4853
  },
4838
4854
  { skip: !c }
4839
- ), w = ee(() => p?.pages.flatMap((T) => T.entities) || [], [p]), R = (T) => {
4855
+ ), w = ee(() => u?.pages.flatMap((T) => T.entities) || [], [u]), R = (T) => {
4840
4856
  a?.(T.id), l("");
4841
4857
  }, _ = () => {
4842
4858
  n?.();
4843
- }, { containerRef: E, getItemProps: I } = Wi({
4859
+ }, { containerRef: I, getItemProps: E } = Wi({
4844
4860
  entities: w,
4845
4861
  onSelect: R,
4846
4862
  onClose: _,
4847
4863
  isActive: !!(i && w.length > 0),
4848
- hasNextPage: u,
4864
+ hasNextPage: p,
4849
4865
  isFetchingNextPage: b,
4850
4866
  fetchNextPage: y
4851
4867
  });
@@ -4854,13 +4870,13 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4854
4870
  d.current && d.current.focus();
4855
4871
  }, 0);
4856
4872
  return () => clearTimeout(T);
4857
- }, [p, i]), /* @__PURE__ */ M(Do, { children: [
4873
+ }, [u, i]), /* @__PURE__ */ M(Ao, { children: [
4858
4874
  /* @__PURE__ */ s(xn, { children: "Add new link" }),
4859
- /* @__PURE__ */ M(Ao, { children: [
4860
- /* @__PURE__ */ M(Po, { children: [
4861
- /* @__PURE__ */ s(te, { icon: "search", className: "input-search" }),
4875
+ /* @__PURE__ */ M(Po, { children: [
4876
+ /* @__PURE__ */ M(_o, { children: [
4877
+ /* @__PURE__ */ s(re, { icon: "search", className: "input-search" }),
4862
4878
  /* @__PURE__ */ s(
4863
- $o,
4879
+ Mo,
4864
4880
  {
4865
4881
  ref: d,
4866
4882
  value: i,
@@ -4873,7 +4889,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4873
4889
  )
4874
4890
  ] }),
4875
4891
  !i && /* @__PURE__ */ s(
4876
- _o,
4892
+ $o,
4877
4893
  {
4878
4894
  label: `Pick ${t}s`,
4879
4895
  icon: "table_rows",
@@ -4881,18 +4897,18 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4881
4897
  }
4882
4898
  )
4883
4899
  ] }),
4884
- i && p && /* @__PURE__ */ M(Oo, { ref: E, children: [
4885
- p?.pages.map(
4900
+ i && u && /* @__PURE__ */ M(zo, { ref: I, children: [
4901
+ u?.pages.map(
4886
4902
  (T, z) => T.entities.map((H, B) => {
4887
- const A = p.pages.slice(0, z).reduce((P, U) => P + U.entities.length, 0) + B;
4903
+ const A = u.pages.slice(0, z).reduce((P, U) => P + U.entities.length, 0) + B;
4888
4904
  return /* @__PURE__ */ M(
4889
4905
  Tn,
4890
4906
  {
4891
4907
  onClick: () => R(H),
4892
4908
  tabIndex: 0,
4893
- ...I(A),
4909
+ ...E(A),
4894
4910
  children: [
4895
- /* @__PURE__ */ s(it, { entity: H }),
4911
+ /* @__PURE__ */ s(at, { entity: H }),
4896
4912
  /* @__PURE__ */ M("span", { className: "label", children: [
4897
4913
  H.parents?.map((P, U) => /* @__PURE__ */ M(wt, { children: [
4898
4914
  /* @__PURE__ */ s("span", { children: P }, U + "-path"),
@@ -4907,9 +4923,9 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4907
4923
  );
4908
4924
  })
4909
4925
  ),
4910
- (S || b || u) && /* @__PURE__ */ s(Ui, {})
4926
+ (S || b || p) && /* @__PURE__ */ s(Ui, {})
4911
4927
  ] }),
4912
- !S && m && /* @__PURE__ */ s(Mo, { children: m.message })
4928
+ !S && m && /* @__PURE__ */ s(Oo, { children: m.message })
4913
4929
  ] });
4914
4930
  }, Vi = ({
4915
4931
  link: e,
@@ -4921,16 +4937,16 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4921
4937
  isManager: l = !1,
4922
4938
  readOnly: c = !1
4923
4939
  }) => {
4924
- const [g, d] = G(!1), [f, p] = G(t), m = (R) => {
4925
- R.stopPropagation(), !(e.isRestricted || c) && (p(t), d(!0));
4940
+ const [g, d] = G(!1), [f, u] = G(t), m = (R) => {
4941
+ R.stopPropagation(), !(e.isRestricted || c) && (u(t), d(!0));
4926
4942
  }, S = () => {
4927
4943
  const R = Math.max(1, f);
4928
4944
  R !== t && i?.(R), d(!1);
4929
- }, u = () => {
4930
- p(t), d(!1);
4945
+ }, p = () => {
4946
+ u(t), d(!1);
4931
4947
  }, b = (R) => {
4932
- R.stopPropagation(), R.key === "Enter" ? R.currentTarget.blur() : R.key === "Escape" && u();
4933
- }, w = or.includes(e.entityType) && !e.isRestricted;
4948
+ R.stopPropagation(), R.key === "Enter" ? R.currentTarget.blur() : R.key === "Escape" && p();
4949
+ }, w = ir.includes(e.entityType) && !e.isRestricted;
4934
4950
  return /* @__PURE__ */ M(
4935
4951
  kn,
4936
4952
  {
@@ -4943,7 +4959,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4943
4959
  unknown: e.isRestricted && l
4944
4960
  }),
4945
4961
  children: [
4946
- /* @__PURE__ */ s(it, { entity: { entityType: e.entityType }, icon: e?.icon, color: e.color }),
4962
+ /* @__PURE__ */ s(at, { entity: { entityType: e.entityType }, icon: e?.icon, color: e.color }),
4947
4963
  /* @__PURE__ */ s("span", { className: "title", children: e.isRestricted ? /* @__PURE__ */ s("span", { className: "label", children: l ? "Unknown" : "Access Restricted" }) : /* @__PURE__ */ M(he, { children: [
4948
4964
  e.parents?.map((R, _) => /* @__PURE__ */ M(wt, { children: [
4949
4965
  /* @__PURE__ */ s("span", { children: R }, _ + "-path"),
@@ -4952,12 +4968,12 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4952
4968
  /* @__PURE__ */ s("span", { className: "label", children: e.label })
4953
4969
  ] }) }),
4954
4970
  !e.isRestricted && (g ? /* @__PURE__ */ s(
4955
- No,
4971
+ Do,
4956
4972
  {
4957
4973
  value: f,
4958
4974
  min: 1,
4959
4975
  autoFocus: !0,
4960
- onChange: (R) => p(parseInt(R.target.value) || 1),
4976
+ onChange: (R) => u(parseInt(R.target.value) || 1),
4961
4977
  onFocus: (R) => R.target.select(),
4962
4978
  onBlur: S,
4963
4979
  onKeyDown: b,
@@ -4989,7 +5005,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
4989
5005
  ]
4990
5006
  }
4991
5007
  );
4992
- }, Mn = (e) => {
5008
+ }, On = (e) => {
4993
5009
  const t = /* @__PURE__ */ new Map(), n = [];
4994
5010
  for (const o of e) {
4995
5011
  const a = o.isRestricted ? `restricted_${o.linkId}` : o.entityId, i = t.get(a);
@@ -5014,27 +5030,27 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5014
5030
  folderId: g,
5015
5031
  selectedEntityIds: d = [],
5016
5032
  onClose: f,
5017
- onEntityClick: p
5033
+ onEntityClick: u
5018
5034
  }) => {
5019
- const { user: m } = mn(), S = m?.data?.isAdmin || m?.data?.isManager, u = Bi({
5035
+ const { user: m } = mn(), S = m?.data?.isAdmin || m?.data?.isManager, p = Bi({
5020
5036
  projectName: o,
5021
5037
  direction: t,
5022
5038
  entityId: a,
5023
5039
  entityType: i,
5024
5040
  targetEntityType: c,
5025
5041
  linkType: l
5026
- }), [b, y] = G(null), [w, R] = G(!1), [_, E] = G({}), I = Mn(n), T = (A) => {
5042
+ }), [b, y] = G(null), [w, R] = G(!1), [_, I] = G({}), E = On(n), T = (A) => {
5027
5043
  const P = _[A.groupKey];
5028
5044
  return P !== void 0 && P !== A.count ? P : A.count;
5029
5045
  }, z = async (A) => {
5030
5046
  if (w) return;
5031
5047
  R(!0);
5032
- const P = await u.add(
5033
- A.map((U) => ({ targetEntityId: U, linkId: lt() }))
5048
+ const P = await p.add(
5049
+ A.map((U) => ({ targetEntityId: U, linkId: ct() }))
5034
5050
  );
5035
5051
  R(!1), P && y(null);
5036
5052
  }, H = (A, P) => {
5037
- A.stopPropagation(), u.remove(
5053
+ A.stopPropagation(), p.remove(
5038
5054
  P.linkIds.map((U) => ({
5039
5055
  id: U,
5040
5056
  target: { entityId: P.entityId, entityType: P.representative.entityType }
@@ -5042,25 +5058,25 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5042
5058
  );
5043
5059
  }, B = (A, P) => {
5044
5060
  const U = T(A);
5045
- E((h) => ({ ...h, [A.groupKey]: P }));
5061
+ I((h) => ({ ...h, [A.groupKey]: P }));
5046
5062
  const r = P - U;
5047
5063
  if (r > 0) {
5048
5064
  const h = Array.from({ length: r }, () => ({
5049
5065
  targetEntityId: A.entityId,
5050
- linkId: lt()
5066
+ linkId: ct()
5051
5067
  }));
5052
- u.add(h);
5068
+ p.add(h);
5053
5069
  } else if (r < 0) {
5054
5070
  const h = A.linkIds.slice(r).map((v) => ({
5055
5071
  id: v,
5056
5072
  target: { entityId: A.entityId, entityType: A.representative.entityType }
5057
5073
  }));
5058
- u.remove(h);
5074
+ p.remove(h);
5059
5075
  }
5060
5076
  };
5061
5077
  return /* @__PURE__ */ M(he, { children: [
5062
5078
  /* @__PURE__ */ M(
5063
- ot,
5079
+ it,
5064
5080
  {
5065
5081
  onMouseDown: (A) => {
5066
5082
  A.target !== document.activeElement && document.activeElement instanceof HTMLInputElement && document.activeElement.blur();
@@ -5084,13 +5100,13 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5084
5100
  )
5085
5101
  ] }),
5086
5102
  /* @__PURE__ */ M(wn, { children: [
5087
- I.map((A) => /* @__PURE__ */ s(
5103
+ E.map((A) => /* @__PURE__ */ s(
5088
5104
  Vi,
5089
5105
  {
5090
5106
  link: A.representative,
5091
5107
  count: T(A),
5092
5108
  isSelected: d.includes(A.entityId),
5093
- onEntityClick: p,
5109
+ onEntityClick: u,
5094
5110
  onRemove: (P) => H(P, A),
5095
5111
  onCountChange: (P) => B(A, P),
5096
5112
  isManager: S
@@ -5105,7 +5121,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5105
5121
  targetEntityType: c,
5106
5122
  projectName: o,
5107
5123
  onClose: f,
5108
- onAdd: (A) => u.add([{ targetEntityId: A, linkId: lt() }]),
5124
+ onAdd: (A) => p.add([{ targetEntityId: A, linkId: ct() }]),
5109
5125
  onSearchTypeChange: y
5110
5126
  }
5111
5127
  )
@@ -5113,7 +5129,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5113
5129
  }
5114
5130
  ),
5115
5131
  b === "picker" && /* @__PURE__ */ s(
5116
- Lr,
5132
+ Nr,
5117
5133
  {
5118
5134
  onClose: () => y(null),
5119
5135
  projectName: o,
@@ -5154,34 +5170,34 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5154
5170
  isLoading: g
5155
5171
  }) => {
5156
5172
  const { user: d } = mn(), f = d?.data?.isAdmin || d?.data?.isManager;
5157
- let p, m;
5173
+ let u, m;
5158
5174
  const S = [];
5159
5175
  try {
5160
- const w = ei();
5161
- p = w.setSelectedEntity, w.selectedEntity && S.push(w.selectedEntity.entityId);
5176
+ const w = ti();
5177
+ u = w.setSelectedEntity, w.selectedEntity && S.push(w.selectedEntity.entityId);
5162
5178
  } catch {
5163
5179
  }
5164
5180
  try {
5165
- m = Dn().clearRowsSelection;
5181
+ m = An().clearRowsSelection;
5166
5182
  } catch {
5167
5183
  }
5168
- const u = (w, R) => {
5169
- Ge(R) || (m && m(), p ? p({
5184
+ const p = (w, R) => {
5185
+ Ge(R) || (m && m(), u ? u({
5170
5186
  entityId: w,
5171
5187
  entityType: R
5172
5188
  }) : console.log("Entity clicked:", w, R));
5173
- }, b = e?.links ? ji(e.links) : [], y = Mn(b);
5189
+ }, b = e?.links ? ji(e.links) : [], y = On(b);
5174
5190
  if (g) {
5175
5191
  const w = e?.entityId ?? "", R = w.charCodeAt(0) % 3 + 1;
5176
- return /* @__PURE__ */ s(qi, { children: Array.from({ length: R }, (_, E) => /* @__PURE__ */ s(
5192
+ return /* @__PURE__ */ s(qi, { children: Array.from({ length: R }, (_, I) => /* @__PURE__ */ s(
5177
5193
  Qi,
5178
5194
  {
5179
5195
  className: "loading",
5180
5196
  style: {
5181
- width: rn[(w.charCodeAt(E) ?? E * 13) % rn.length]
5197
+ width: rn[(w.charCodeAt(I) ?? I * 13) % rn.length]
5182
5198
  }
5183
5199
  },
5184
- E
5200
+ I
5185
5201
  )) });
5186
5202
  }
5187
5203
  return /* @__PURE__ */ M(he, { children: [
@@ -5189,10 +5205,10 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5189
5205
  Et,
5190
5206
  {
5191
5207
  values: y.map((w) => {
5192
- const R = w.representative, _ = R.isRestricted ? f ? "Unknown" : "Restricted" : R.label, E = R.isRestricted ? f ? "Unknown Link - Entity not found" : "Access Restricted - Insufficient Permissions to Entity" : R.parents.join("/") + "/" + R.label + (w.count > 1 ? ` (x${w.count})` : "");
5208
+ const R = w.representative, _ = R.isRestricted ? f ? "Unknown" : "Restricted" : R.label, I = R.isRestricted ? f ? "Unknown Link - Entity not found" : "Access Restricted - Insufficient Permissions to Entity" : R.parents.join("/") + "/" + R.label + (w.count > 1 ? ` (x${w.count})` : "");
5193
5209
  return {
5194
5210
  label: _,
5195
- tooltip: E,
5211
+ tooltip: I,
5196
5212
  icon: R.isRestricted ? f ? "help" : "lock" : void 0,
5197
5213
  suffix: w.count > 1 ? /* @__PURE__ */ M(Lt, { style: { cursor: "default", pointerEvents: "none" }, children: [
5198
5214
  "x",
@@ -5204,7 +5220,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5204
5220
  disabled: a
5205
5221
  }
5206
5222
  ),
5207
- t && e && /* @__PURE__ */ s(We, { isEditing: t, anchorId: n, onClose: c, children: a ? /* @__PURE__ */ s(ot, { style: { color: "var(--md-sys-color-outline)" }, children: `${e.link.label || ""} ${e.direction} link is not of type ${e.entityType}` }) : /* @__PURE__ */ s(
5223
+ t && e && /* @__PURE__ */ s(We, { isEditing: t, anchorId: n, onClose: c, children: a ? /* @__PURE__ */ s(it, { style: { color: "var(--md-sys-color-outline)" }, children: `${e.link.label || ""} ${e.direction} link is not of type ${e.entityType}` }) : /* @__PURE__ */ s(
5208
5224
  Gi,
5209
5225
  {
5210
5226
  projectName: o,
@@ -5216,7 +5232,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5216
5232
  targetEntityType: e.link.targetEntityType,
5217
5233
  linkType: e.link.linkType,
5218
5234
  selectedEntityIds: S,
5219
- onEntityClick: u,
5235
+ onEntityClick: p,
5220
5236
  folderId: i,
5221
5237
  onClose: c
5222
5238
  }
@@ -5227,7 +5243,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5227
5243
  dispatch: t,
5228
5244
  ...n
5229
5245
  }) => {
5230
- const [o] = ir(), [a] = ar(), { data: i = [] } = sr({ projectName: n.projectName }), l = Be();
5246
+ const [o] = ar(), [a] = sr(), { data: i = [] } = lr({ projectName: n.projectName }), l = Be();
5231
5247
  return /* @__PURE__ */ s(
5232
5248
  e,
5233
5249
  {
@@ -5237,8 +5253,8 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5237
5253
  projectContext: l,
5238
5254
  onLink: (g) => {
5239
5255
  g.outputType === "product" && t?.(
5240
- qn.util.invalidateTags([
5241
- lr,
5256
+ Qn.util.invalidateTags([
5257
+ cr,
5242
5258
  { type: "productColumnStats", id: n.projectName },
5243
5259
  { type: "link", id: g.output },
5244
5260
  { type: "link", id: g.input },
@@ -5258,10 +5274,10 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5258
5274
  onChange: i,
5259
5275
  onCancelEdit: l
5260
5276
  }) => {
5261
- const { SubtasksManager: c, useNavigate: g, dispatch: d } = Pt(), [f, p] = G([]), m = e?.subtasks || [], S = m.map((u) => ({
5262
- label: u.label || u.name,
5263
- tooltip: u.description || u.label || u.name,
5264
- prefix: /* @__PURE__ */ s(St, { checked: u.isDone, isReadOnly: !0, style: { fontSize: 20 } })
5277
+ const { SubtasksManager: c, useNavigate: g, dispatch: d } = Pt(), [f, u] = G([]), m = e?.subtasks || [], S = m.map((p) => ({
5278
+ label: p.label || p.name,
5279
+ tooltip: p.description || p.label || p.name,
5280
+ prefix: /* @__PURE__ */ s(St, { checked: p.isDone, isReadOnly: !0, style: { fontSize: 20 } })
5265
5281
  }));
5266
5282
  return /* @__PURE__ */ M(he, { children: [
5267
5283
  /* @__PURE__ */ s(
@@ -5272,7 +5288,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5272
5288
  disabled: a
5273
5289
  }
5274
5290
  ),
5275
- t && e && c && /* @__PURE__ */ s(We, { isEditing: t, anchorId: n, onClose: l, children: a ? /* @__PURE__ */ s(ot, { style: { color: "var(--md-sys-color-outline)" }, children: "Subtasks are disabled for this task" }) : /* @__PURE__ */ s(
5291
+ t && e && c && /* @__PURE__ */ s(We, { isEditing: t, anchorId: n, onClose: l, children: a ? /* @__PURE__ */ s(it, { style: { color: "var(--md-sys-color-outline)" }, children: "Subtasks are disabled for this task" }) : /* @__PURE__ */ s(
5276
5292
  Zi,
5277
5293
  {
5278
5294
  projectName: o,
@@ -5281,7 +5297,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5281
5297
  folderId: e.folderId,
5282
5298
  subtasks: m,
5283
5299
  selectedSubtaskIds: f,
5284
- onSelectSubtasks: p,
5300
+ onSelectSubtasks: u,
5285
5301
  onClose: l,
5286
5302
  SubtasksManager: c,
5287
5303
  useNavigate: g,
@@ -5386,16 +5402,16 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5386
5402
  ),
5387
5403
  a: ({ href: e, children: t }) => {
5388
5404
  const [n, o] = e?.split(":") ?? [];
5389
- if (n && o && br.includes(n)) {
5405
+ if (n && o && vr.includes(n)) {
5390
5406
  const a = String(t ?? "").replace("@", "");
5391
5407
  return /* @__PURE__ */ M(na, { children: [
5392
- /* @__PURE__ */ s(te, { icon: ra(n) }),
5408
+ /* @__PURE__ */ s(re, { icon: ra(n) }),
5393
5409
  a
5394
5410
  ] });
5395
5411
  }
5396
5412
  return /* @__PURE__ */ s("span", { children: t });
5397
5413
  }
5398
- }, ia = (e) => vr(e).replace(/<br\s*\/?>/gi, `
5414
+ }, ia = (e) => xr(e).replace(/<br\s*\/?>/gi, `
5399
5415
  `), aa = kt(({ body: e }) => /* @__PURE__ */ s("div", { className: "body", children: /* @__PURE__ */ s(
5400
5416
  gn,
5401
5417
  {
@@ -5405,12 +5421,12 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5405
5421
  children: ia(e)
5406
5422
  }
5407
5423
  ) })), sa = (e) => {
5408
- const t = e.createdAt ? wr(new Date(e.createdAt)) : "";
5424
+ const t = e.createdAt ? kr(new Date(e.createdAt)) : "";
5409
5425
  return [e.author, t].filter(Boolean).join(" • ");
5410
5426
  }, la = ({ value: e }) => {
5411
5427
  const t = e || [];
5412
5428
  return t.length ? /* @__PURE__ */ s(ea, { className: "comments-list", children: t.map((n) => /* @__PURE__ */ M(ta, { children: [
5413
- /* @__PURE__ */ s("span", { className: "author", "data-tooltip": sa(n), "data-tooltip-delay": 0, children: /* @__PURE__ */ s(xr, { name: n.author || "", size: 18 }) }),
5429
+ /* @__PURE__ */ s("span", { className: "author", "data-tooltip": sa(n), "data-tooltip-delay": 0, children: /* @__PURE__ */ s(wr, { name: n.author || "", size: 18 }) }),
5414
5430
  /* @__PURE__ */ s(aa, { body: n.body })
5415
5431
  ] }, n.activityId)) }) : null;
5416
5432
  }, ca = x(Et)`
@@ -5461,12 +5477,12 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5461
5477
  isEditing: i,
5462
5478
  onCancelEdit: l
5463
5479
  }) => {
5464
- const { useNavigate: c = ma, hiddenListIds: g } = Pt(), d = c(), { lists: f, error: p } = Ai(o, t, e), m = Me[n], S = ee(
5480
+ const { useNavigate: c = ma, hiddenListIds: g } = Pt(), d = c(), { lists: f, error: u } = Ai(o, t, e), m = Me[n], S = ee(
5465
5481
  () => f?.filter(
5466
5482
  (y) => y.entityListType === m?.listType && !g?.includes(y.id)
5467
5483
  ),
5468
5484
  [f, m, g]
5469
- ), u = ee(
5485
+ ), p = ee(
5470
5486
  () => (S || []).map((y) => {
5471
5487
  const w = pa(o, y);
5472
5488
  return { list: y, open: w && d ? (_) => {
@@ -5475,16 +5491,16 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5475
5491
  }),
5476
5492
  [S, o, d]
5477
5493
  ), b = ee(
5478
- () => u.map(({ list: y, open: w }) => ({
5494
+ () => p.map(({ list: y, open: w }) => ({
5479
5495
  label: y.label,
5480
5496
  tooltip: y.itemIds.length > 1 ? `${y.label} (x${y.itemIds.length})` : y.label,
5481
5497
  suffix: /* @__PURE__ */ M(he, { children: [
5482
5498
  /* @__PURE__ */ s(on, { count: y.itemIds.length }),
5483
- w && /* @__PURE__ */ s(te, { icon: "open_in_new", className: "open-icon" })
5499
+ w && /* @__PURE__ */ s(re, { icon: "open_in_new", className: "open-icon" })
5484
5500
  ] }),
5485
5501
  onClick: w
5486
5502
  })),
5487
- [u]
5503
+ [p]
5488
5504
  );
5489
5505
  return q(() => {
5490
5506
  if (!i) return;
@@ -5492,15 +5508,15 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5492
5508
  w.key === "Escape" && l?.();
5493
5509
  };
5494
5510
  return document.addEventListener("keydown", y), () => document.removeEventListener("keydown", y);
5495
- }, [i, l]), p ? /* @__PURE__ */ M(da, { "data-tooltip": `Lists failed to load, sync to try again: ${p}`, children: [
5496
- /* @__PURE__ */ s(te, { icon: "error" }),
5511
+ }, [i, l]), u ? /* @__PURE__ */ M(da, { "data-tooltip": `Lists failed to load, sync to try again: ${u}`, children: [
5512
+ /* @__PURE__ */ s(re, { icon: "error" }),
5497
5513
  "Failed to load"
5498
5514
  ] }) : S ? S.length ? /* @__PURE__ */ M(he, { children: [
5499
5515
  /* @__PURE__ */ s(ca, { values: b, pt: { chip: { className: $t } } }),
5500
- i && /* @__PURE__ */ s(We, { isEditing: i, anchorId: a, onClose: l, children: /* @__PURE__ */ M(ot, { onMouseDown: (y) => y.stopPropagation(), children: [
5516
+ i && /* @__PURE__ */ s(We, { isEditing: i, anchorId: a, onClose: l, children: /* @__PURE__ */ M(it, { onMouseDown: (y) => y.stopPropagation(), children: [
5501
5517
  /* @__PURE__ */ s(vn, { children: m?.label }),
5502
- /* @__PURE__ */ s(wn, { children: u.map(({ list: y, open: w }) => /* @__PURE__ */ M(kn, { className: W({ clickable: !!w }), onClick: w, children: [
5503
- /* @__PURE__ */ s(te, { icon: Nr({ entityListType: y.entityListType, entityType: t }) }),
5518
+ /* @__PURE__ */ s(wn, { children: p.map(({ list: y, open: w }) => /* @__PURE__ */ M(kn, { className: W({ clickable: !!w }), onClick: w, children: [
5519
+ /* @__PURE__ */ s(re, { icon: Dr({ entityListType: y.entityListType, entityType: t }) }),
5504
5520
  /* @__PURE__ */ s("span", { className: "title", children: y.label }),
5505
5521
  /* @__PURE__ */ s(on, { count: y.itemIds.length })
5506
5522
  ] }, y.id)) })
@@ -5545,30 +5561,30 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5545
5561
  nameDisabled: l = !1,
5546
5562
  labelDisabled: c = !1
5547
5563
  }) => {
5548
- const { anatomy: g } = Be(), { entity_naming: d = { capitalization: "lower", separator: "_" } } = g, [f, p] = G(o), [m, S] = G(n), { setEditingCellId: u, updateEntities: b } = Nt(), y = Q(null), w = Q(null), R = Ft(f, d), _ = m === R || !m;
5564
+ const { anatomy: g } = Be(), { entity_naming: d = { capitalization: "lower", separator: "_" } } = g, [f, u] = G(o), [m, S] = G(n), { setEditingCellId: p, updateEntities: b } = Nt(), y = Q(null), w = Q(null), R = Ft(f, d), _ = m === R || !m;
5549
5565
  q(() => {
5550
5566
  const C = setTimeout(() => {
5551
5567
  !c && y.current ? (y.current.focus(), y.current.select()) : !l && w.current && (w.current.focus(), w.current.select());
5552
5568
  }, 0);
5553
5569
  return () => clearTimeout(C);
5554
5570
  }, [c, l]), q(() => {
5555
- p(o), S(n);
5571
+ u(o), S(n);
5556
5572
  }, [o, n]);
5557
- const E = Y(async () => {
5573
+ const I = Y(async () => {
5558
5574
  if (m !== n || f !== o) {
5559
5575
  if (f !== o && !c) {
5560
- const D = dr(f);
5576
+ const D = ur(f);
5561
5577
  if (!D.valid) {
5562
5578
  console.error("Invalid label:", D.error), we.error(`Invalid label: ${D.error}`);
5563
5579
  return;
5564
5580
  }
5565
5581
  }
5566
- const L = ur(m);
5582
+ const L = pr(m);
5567
5583
  if (!L.valid || !m) {
5568
5584
  console.error("Invalid name:", L.error), we.error(`Invalid name: ${L.error}`);
5569
5585
  return;
5570
5586
  }
5571
- u(null), a?.();
5587
+ p(null), a?.();
5572
5588
  try {
5573
5589
  const { entityRowId: D } = i || {}, k = D, O = t, F = [];
5574
5590
  m !== n && !l && F.push({ field: "name", value: m, type: O, rowId: k, id: k }), f !== o && !c && F.push({ field: "label", value: f.trim(), type: O, rowId: k, id: k }), F.length && await b(F, !0);
@@ -5576,25 +5592,25 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5576
5592
  console.error("Failed to update entity:", D);
5577
5593
  }
5578
5594
  } else
5579
- u(null), a?.();
5595
+ p(null), a?.();
5580
5596
  }, [
5581
5597
  f,
5582
5598
  m,
5583
5599
  n,
5584
5600
  o,
5585
5601
  i,
5586
- u,
5602
+ p,
5587
5603
  a,
5588
5604
  l,
5589
5605
  c,
5590
5606
  b,
5591
5607
  t
5592
- ]), I = Y(() => {
5593
- u(null), a?.();
5594
- }, [u, a]), T = Y(
5608
+ ]), E = Y(() => {
5609
+ p(null), a?.();
5610
+ }, [p, a]), T = Y(
5595
5611
  (C) => {
5596
5612
  const L = C.target.value;
5597
- p(L), _ && !l && S(Ft(L, d));
5613
+ u(L), _ && !l && S(Ft(L, d));
5598
5614
  },
5599
5615
  [_, l]
5600
5616
  ), z = Y((C) => {
@@ -5608,9 +5624,9 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5608
5624
  const L = w.current.value.length;
5609
5625
  w.current.setSelectionRange(L, L);
5610
5626
  }
5611
- } else C.key === "Enter" && (C.preventDefault(), E());
5627
+ } else C.key === "Enter" && (C.preventDefault(), I());
5612
5628
  },
5613
- [E, I, l]
5629
+ [I, E, l]
5614
5630
  ), B = Y(
5615
5631
  (C) => {
5616
5632
  if (C.key === "ArrowUp") {
@@ -5619,9 +5635,9 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5619
5635
  const L = y.current.value.length;
5620
5636
  y.current.setSelectionRange(L, L);
5621
5637
  }
5622
- } else C.key === "Enter" && (C.preventDefault(), E());
5638
+ } else C.key === "Enter" && (C.preventDefault(), I());
5623
5639
  },
5624
- [E, I, c]
5640
+ [I, E, c]
5625
5641
  ), A = Y((C) => {
5626
5642
  C.stopPropagation();
5627
5643
  }, []), P = Y((C) => {
@@ -5711,16 +5727,16 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5711
5727
  const l = [], c = [], g = /* @__PURE__ */ new Set();
5712
5728
  if (o.has(e))
5713
5729
  for (const f of o) {
5714
- const { rowId: p, colId: m } = Mi(f) || {};
5715
- if (!p || m !== t) continue;
5716
- const S = a(p);
5730
+ const { rowId: u, colId: m } = Mi(f) || {};
5731
+ if (!u || m !== t) continue;
5732
+ const S = a(u);
5717
5733
  S && (l.push(f), c.push(xa(S, t)), g.add(S.entityType));
5718
5734
  }
5719
5735
  const [d] = g;
5720
5736
  return i.current = {
5721
5737
  value: l.length > 1 ? {
5722
5738
  cellIds: l,
5723
- counts: Kn(c),
5739
+ counts: Vn(c),
5724
5740
  total: l.length,
5725
5741
  label: g.size === 1 ? `${d}s` : "items"
5726
5742
  } : void 0
@@ -5728,7 +5744,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5728
5744
  }, ka = x.div`
5729
5745
  position: absolute;
5730
5746
  inset: 0;
5731
- padding: ${Ir}px 8px;
5747
+ padding: ${Er}px 8px;
5732
5748
  display: flex;
5733
5749
  align-items: center;
5734
5750
  overflow: hidden;
@@ -5782,18 +5798,18 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5782
5798
  isPlaceholder: g,
5783
5799
  isReadOnly: d,
5784
5800
  enableCustomValues: f,
5785
- isLoadingOptions: p,
5801
+ isLoadingOptions: u,
5786
5802
  isLinksLoading: m,
5787
5803
  folderId: S,
5788
- midnightExclusiveFields: u,
5804
+ midnightExclusiveFields: p,
5789
5805
  tooltip: b,
5790
5806
  mark: y,
5791
5807
  onChange: w,
5792
5808
  entityType: R,
5793
5809
  pt: _,
5794
- ...E
5810
+ ...I
5795
5811
  }) => {
5796
- const I = Q(null), T = a?.type, { projectName: z } = Be(), { isEditing: H, setEditingCellId: B, getEditingDraft: A, setEditingDraft: P } = Nt(), { isCellFocused: U, gridMap: r, selectCell: h, focusCell: v, selectedCells: N } = In(), C = Ye(e, t), L = u?.includes(t) ?? !1, D = H(C), k = U(C), O = wa(
5812
+ const E = Q(null), T = a?.type, { projectName: z } = Be(), { isEditing: H, setEditingCellId: B, getEditingDraft: A, setEditingDraft: P } = Nt(), { isCellFocused: U, gridMap: r, selectCell: h, focusCell: v, selectedCells: N } = In(), C = Ye(e, t), L = p?.includes(t) ?? !1, D = H(C), k = U(C), O = wa(
5797
5813
  C,
5798
5814
  t,
5799
5815
  D && !d && T === "list_of_strings"
@@ -5809,7 +5825,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5809
5825
  h(Z, !1, !1), v(Z), B(Z);
5810
5826
  } else
5811
5827
  B(null);
5812
- }, ne = ($, j) => {
5828
+ }, te = ($, j) => {
5813
5829
  if (d) {
5814
5830
  B(null);
5815
5831
  return;
@@ -5817,13 +5833,13 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5817
5833
  const Z = N.size > 1 && N.has(C);
5818
5834
  if (j === "Enter" && (Z || T === "boolean")) {
5819
5835
  B(null), w?.($, j);
5820
- const fe = I.current?.closest("td");
5836
+ const fe = E.current?.closest("td");
5821
5837
  fe && fe.focus();
5822
5838
  } else j === "Enter" ? (F(), w?.($, j)) : j === "Click" && Ca($, n) ? (B(null), w?.($, j)) : B(null);
5823
5839
  }, ue = ($) => {
5824
5840
  if (B(null), d || !O) return;
5825
5841
  const j = (Array.isArray(n) ? n : [n]).map(String).filter(Boolean);
5826
- w?.(Vn(j, $), "Click", { ...$, cellIds: O.cellIds });
5842
+ w?.(Gn(j, $), "Click", { ...$, cellIds: O.cellIds });
5827
5843
  }, ke = O && Object.keys(O.counts), Ae = O && {
5828
5844
  mixedCounts: O.counts,
5829
5845
  mixedTotal: O.total,
@@ -5831,11 +5847,11 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5831
5847
  onMixedChange: ue
5832
5848
  }, K = () => {
5833
5849
  B(null);
5834
- const $ = I.current?.closest("td");
5850
+ const $ = E.current?.closest("td");
5835
5851
  $ && $.focus();
5836
5852
  }, V = ee(() => {
5837
5853
  const $ = {
5838
- onChange: ne,
5854
+ onChange: te,
5839
5855
  onCancelEdit: K,
5840
5856
  isEditing: D,
5841
5857
  isReadOnly: d
@@ -5846,7 +5862,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5846
5862
  const fe = (T?.includes("list") ? i.find(
5847
5863
  (Qe) => Array.isArray(n) ? n.includes(Qe.value) : n === Qe.value
5848
5864
  ) : void 0)?.color;
5849
- return /* @__PURE__ */ s(Or, { color: fe });
5865
+ return /* @__PURE__ */ s(zr, { color: fe });
5850
5866
  }
5851
5867
  case T === "name":
5852
5868
  return /* @__PURE__ */ s(
@@ -5903,7 +5919,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5903
5919
  );
5904
5920
  case a?.widget === "tags":
5905
5921
  return /* @__PURE__ */ s(
5906
- io,
5922
+ ao,
5907
5923
  {
5908
5924
  value: ke || (Array.isArray(n) ? n : [n]),
5909
5925
  options: i,
@@ -5944,14 +5960,14 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5944
5960
  );
5945
5961
  }
5946
5962
  return /* @__PURE__ */ s(
5947
- Zr,
5963
+ Xr,
5948
5964
  {
5949
5965
  value: ke || Z,
5950
5966
  options: i,
5951
5967
  type: T,
5952
5968
  onOpen: () => B(C),
5953
5969
  enableCustomValues: f,
5954
- isLoadingOptions: p,
5970
+ isLoadingOptions: u,
5955
5971
  ...Ae,
5956
5972
  ...$,
5957
5973
  ..._?.enum
@@ -5978,7 +5994,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5978
5994
  );
5979
5995
  case T === "datetime":
5980
5996
  return /* @__PURE__ */ s(
5981
- Wr,
5997
+ Ur,
5982
5998
  {
5983
5999
  value: n || void 0,
5984
6000
  isInherited: c,
@@ -5988,7 +6004,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
5988
6004
  }
5989
6005
  );
5990
6006
  case T === "boolean":
5991
- return /* @__PURE__ */ s(Lo, { value: n, ...$, ..._?.boolean });
6007
+ return /* @__PURE__ */ s(No, { value: n, ...$, ..._?.boolean });
5992
6008
  case g:
5993
6009
  return null;
5994
6010
  default:
@@ -6002,7 +6018,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
6002
6018
  i,
6003
6019
  l,
6004
6020
  L,
6005
- ne,
6021
+ te,
6006
6022
  O
6007
6023
  ]);
6008
6024
  return /* @__PURE__ */ M(he, { children: [
@@ -6015,17 +6031,17 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
6015
6031
  /* @__PURE__ */ s(
6016
6032
  ka,
6017
6033
  {
6018
- ...E,
6034
+ ...I,
6019
6035
  onKeyDown: ($) => {
6020
- E.onKeyDown?.($), !($.defaultPrevented || $.key !== "Enter" || T !== "boolean" || i.length || a?.enumResolver || d || l) && ($.preventDefault(), $.stopPropagation(), ne(!n, "Enter"));
6036
+ I.onKeyDown?.($), !($.defaultPrevented || $.key !== "Enter" || T !== "boolean" || i.length || a?.enumResolver || d || l) && ($.preventDefault(), $.stopPropagation(), te(!n, "Enter"));
6021
6037
  },
6022
- className: W(E.className, {
6038
+ className: W(I.className, {
6023
6039
  inherited: c && !D,
6024
6040
  [Fe]: d,
6025
6041
  editable: !d,
6026
6042
  warning: y?.warning
6027
6043
  }),
6028
- ref: I,
6044
+ ref: E,
6029
6045
  id: C,
6030
6046
  "data-tooltip": b || !D && y?.tooltip || (c && !D && k ? "Inherited" : void 0),
6031
6047
  "data-tooltip-delay": 200,
@@ -6033,7 +6049,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
6033
6049
  }
6034
6050
  )
6035
6051
  ] });
6036
- }, re = ({ mark: e, isReadOnly: t, ...n }) => {
6052
+ }, ne = ({ mark: e, isReadOnly: t, ...n }) => {
6037
6053
  const { mark: o, isRowReadOnly: a } = _i(), i = o && e ? { ...o, ...e } : e || o;
6038
6054
  return i?.placeholder ? /* @__PURE__ */ s(
6039
6055
  sn,
@@ -6168,8 +6184,8 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
6168
6184
  rowHeight: c = 40,
6169
6185
  columnDisplayConfig: g
6170
6186
  }) => {
6171
- const d = Ge(t.entityType), f = c < Er, p = f ? "compact" : "stacked", m = Zt(g, "path", "compact") ?? !0, S = Zt(g, "path", "full") ?? !0, u = f ? m : S;
6172
- return /* @__PURE__ */ M(Ia, { className: p, children: [
6187
+ const d = Ge(t.entityType), f = c < Rr, u = f ? "compact" : "stacked", m = Zt(g, "path", "compact") ?? !0, S = Zt(g, "path", "full") ?? !0, p = f ? m : S;
6188
+ return /* @__PURE__ */ M(Ia, { className: u, children: [
6173
6189
  o ? /* @__PURE__ */ s(
6174
6190
  Sa,
6175
6191
  {
@@ -6180,9 +6196,9 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
6180
6196
  icon: a ? "expand_more" : "chevron_right"
6181
6197
  }
6182
6198
  ) : null,
6183
- /* @__PURE__ */ s(Ea, { className: p, children: /* @__PURE__ */ s(Ra, { children: /* @__PURE__ */ M(La, { className: p, children: [
6199
+ /* @__PURE__ */ s(Ea, { className: u, children: /* @__PURE__ */ s(Ra, { children: /* @__PURE__ */ M(La, { className: u, children: [
6184
6200
  /* @__PURE__ */ s(
6185
- it,
6201
+ at,
6186
6202
  {
6187
6203
  entity: {
6188
6204
  entityType: t.entityType,
@@ -6192,8 +6208,8 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
6192
6208
  color: t.color || void 0
6193
6209
  }
6194
6210
  ),
6195
- /* @__PURE__ */ M(Na, { className: p, children: [
6196
- u && !d && /* @__PURE__ */ M("span", { className: "path", children: [
6211
+ /* @__PURE__ */ M(Na, { className: u, children: [
6212
+ p && !d && /* @__PURE__ */ M("span", { className: "path", children: [
6197
6213
  n,
6198
6214
  f && n ? "/" : ""
6199
6215
  ] }),
@@ -6212,7 +6228,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
6212
6228
  border-radius: 4px;
6213
6229
  opacity: 1;
6214
6230
  }
6215
- `, On = x.div`
6231
+ `, zn = x.div`
6216
6232
  display: flex;
6217
6233
  align-items: center;
6218
6234
  gap: var(--base-gap-small);
@@ -6223,10 +6239,10 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
6223
6239
  &:hover {
6224
6240
  background-color: var(--md-sys-color-surface-container-high-hover);
6225
6241
  }
6226
- `, Pa = x(te)`
6242
+ `, Pa = x(re)`
6227
6243
  opacity: 0;
6228
6244
 
6229
- ${On}:hover & {
6245
+ ${zn}:hover & {
6230
6246
  opacity: 1;
6231
6247
  }
6232
6248
  `, _a = "entity-widget", ht = ({
@@ -6239,9 +6255,9 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
6239
6255
  className: l,
6240
6256
  isLoading: c
6241
6257
  }) => {
6242
- const g = se(Ln), d = oi(), f = (m) => {
6258
+ const g = ae(Ln), d = oi(), f = (m) => {
6243
6259
  m.button !== 0 || !o || !g || (d?.clearRowsSelection(), g.setSelectedEntity({ entityId: o, entityType: a }), m.preventDefault());
6244
- }, p = (m) => {
6260
+ }, u = (m) => {
6245
6261
  m.detail === 2 && f(m);
6246
6262
  };
6247
6263
  return /* @__PURE__ */ s(
@@ -6249,10 +6265,10 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
6249
6265
  {
6250
6266
  id: `${e}-${t}`,
6251
6267
  className: W(_a, Fe, l, { loading: c }),
6252
- onMouseDown: p,
6268
+ onMouseDown: u,
6253
6269
  "data-tooltip-delay": 200,
6254
- children: /* @__PURE__ */ M(On, { onMouseDown: f, children: [
6255
- i && /* @__PURE__ */ s(it, { entity: { entityType: a, subType: i } }),
6270
+ children: /* @__PURE__ */ M(zn, { onMouseDown: f, children: [
6271
+ i && /* @__PURE__ */ s(at, { entity: { entityType: a, subType: i } }),
6256
6272
  String(n ?? ""),
6257
6273
  /* @__PURE__ */ s(Pa, { icon: "dock_to_left" })
6258
6274
  ] })
@@ -6320,6 +6336,8 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
6320
6336
  object-fit: cover;
6321
6337
  `, ln = x.span`
6322
6338
  color: var(--md-sys-color-outline);
6339
+ white-space: nowrap;
6340
+ flex-shrink: 0;
6323
6341
  `, Wa = ({
6324
6342
  id: e,
6325
6343
  label: t,
@@ -6336,8 +6354,8 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
6336
6354
  /* @__PURE__ */ s(
6337
6355
  $a,
6338
6356
  {
6339
- onClick: (p) => {
6340
- p.stopPropagation(), f();
6357
+ onClick: (u) => {
6358
+ u.stopPropagation(), f();
6341
6359
  },
6342
6360
  className: "expander",
6343
6361
  icon: g ? "expand_more" : "chevron_right"
@@ -6345,11 +6363,11 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
6345
6363
  ),
6346
6364
  /* @__PURE__ */ s(Oa, { children: /* @__PURE__ */ s(za, { children: /* @__PURE__ */ M(Fa, { children: [
6347
6365
  a && /* @__PURE__ */ s(Ba, { src: a, alt: n, className: "img" }),
6348
- o && /* @__PURE__ */ s(te, { icon: o, style: { color: c || void 0 } }),
6366
+ o && /* @__PURE__ */ s(re, { icon: o, style: { color: c || void 0 } }),
6349
6367
  /* @__PURE__ */ s(Ha, { style: { color: c || void 0 }, children: /* @__PURE__ */ s("span", { className: "label", children: t || n }) }),
6350
6368
  i !== void 0 && i > 0 ? /* @__PURE__ */ M(ln, { children: [
6351
6369
  i,
6352
- l !== void 0 && ` (${l}%)`
6370
+ l !== void 0 && ` (${l === 0 ? "<1" : l}%)`
6353
6371
  ] }) : d ? /* @__PURE__ */ s(ln, { children: "(Empty)" }) : null
6354
6372
  ] }) }) })
6355
6373
  ] }), Ua = x.div`
@@ -6376,7 +6394,7 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
6376
6394
  height: 100%;
6377
6395
  object-fit: contain;
6378
6396
  z-index: 20;
6379
- `, Ga = x(kr)`
6397
+ `, Ga = x(Tr)`
6380
6398
  right: 5px;
6381
6399
  top: 5px;
6382
6400
  `, ja = ({
@@ -6390,14 +6408,14 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
6390
6408
  id: c,
6391
6409
  ...g
6392
6410
  }) => {
6393
- const d = e && t && n && t !== "product", f = Dr({ projectName: e, entityType: t, entityId: n, thumbnailHash: o });
6411
+ const d = e && t && n && t !== "product", f = Ar({ projectName: e, entityType: t, entityId: n, thumbnailHash: o });
6394
6412
  return /* @__PURE__ */ M(Ua, { className: "thumbnail-widget", id: c, children: [
6395
6413
  /* @__PURE__ */ M(Ka, { ...g, children: [
6396
6414
  d && /* @__PURE__ */ s(Va, { src: l || f || void 0 }),
6397
6415
  d && i && /* @__PURE__ */ s(
6398
- Tr,
6416
+ Cr,
6399
6417
  {
6400
- src: Ar({ projectName: e, entityType: t, entityId: n, thumbnailHash: o }),
6418
+ src: Pr({ projectName: e, entityType: t, entityId: n, thumbnailHash: o }),
6401
6419
  fit: "contain",
6402
6420
  style: { zIndex: 20 }
6403
6421
  }
@@ -6434,54 +6452,54 @@ const Ye = (e, t) => `cell-${e}-${t}`, Mi = (e) => {
6434
6452
  }
6435
6453
  };
6436
6454
  export {
6437
- ei as $,
6455
+ ti as $,
6438
6456
  Ki as A,
6439
- Lo as B,
6457
+ No as B,
6440
6458
  Cn as C,
6441
- Wr as D,
6442
- Zr as E,
6443
- Rl as F,
6459
+ Ur as D,
6460
+ Xr as E,
6461
+ Ll as F,
6444
6462
  Vs as G,
6445
- Zo as H,
6463
+ Xo as H,
6446
6464
  Rn as I,
6447
6465
  Nt as J,
6448
- Uo as K,
6466
+ Ko as K,
6449
6467
  Vi as L,
6450
6468
  Bs as M,
6451
- Ko as N,
6469
+ Vo as N,
6452
6470
  In as O,
6453
- ti as P,
6454
- Sl as Q,
6455
- Cl as R,
6456
- nl as S,
6471
+ Nn as P,
6472
+ Il as Q,
6473
+ Sl as R,
6474
+ rl as S,
6457
6475
  Qt as T,
6458
6476
  be as U,
6459
- Wo as V,
6460
- Xo as W,
6477
+ Uo as V,
6478
+ ei as W,
6461
6479
  Ws as X,
6462
- Qo as Y,
6480
+ Jo as Y,
6463
6481
  Ln as Z,
6464
6482
  ri as _,
6465
- Jo as a,
6483
+ Zo as a,
6466
6484
  ci as a$,
6467
6485
  Ye as a0,
6468
- Nn as a1,
6469
- Ys as a2,
6486
+ Dn as a1,
6487
+ qs as a2,
6470
6488
  js as a3,
6471
- tt as a4,
6489
+ nt as a4,
6472
6490
  Ge as a5,
6473
- wl as a6,
6491
+ kl as a6,
6474
6492
  Ks as a7,
6475
6493
  $i as a8,
6476
- El as a9,
6494
+ Rl as a9,
6477
6495
  vi as aA,
6478
6496
  J as aB,
6479
6497
  X as aC,
6480
6498
  Pe as aD,
6481
- re as aE,
6482
- Or as aF,
6499
+ ne as aE,
6500
+ zr as aF,
6483
6501
  de as aG,
6484
- Fo as aH,
6502
+ Ho as aH,
6485
6503
  _a as aI,
6486
6504
  Qa as aJ,
6487
6505
  Da as aK,
@@ -6489,15 +6507,15 @@ export {
6489
6507
  Ve as aM,
6490
6508
  Za as aN,
6491
6509
  Wa as aO,
6492
- Bo as aP,
6510
+ Wo as aP,
6493
6511
  Me as aQ,
6494
6512
  Ji as aR,
6495
6513
  ga as aS,
6496
6514
  Xa as aT,
6497
6515
  le as aU,
6498
- Js as aV,
6499
- Qs as aW,
6500
- qs as aX,
6516
+ Zs as aV,
6517
+ Js as aW,
6518
+ Qs as aX,
6501
6519
  ii as aY,
6502
6520
  At as aZ,
6503
6521
  pi as a_,
@@ -6505,83 +6523,84 @@ export {
6505
6523
  Fe as ab,
6506
6524
  gt as ac,
6507
6525
  xa as ad,
6508
- kl as ae,
6509
- pl as af,
6510
- ml as ag,
6511
- hl as ah,
6512
- rl as ai,
6513
- cl as aj,
6514
- vl as ak,
6515
- ul as al,
6516
- Tl as am,
6517
- dl as an,
6518
- gl as ao,
6519
- Dn as ap,
6520
- fl as aq,
6526
+ Tl as ae,
6527
+ ml as af,
6528
+ gl as ag,
6529
+ yl as ah,
6530
+ ol as ai,
6531
+ dl as aj,
6532
+ xl as ak,
6533
+ pl as al,
6534
+ Cl as am,
6535
+ ul as an,
6536
+ hl as ao,
6537
+ An as ap,
6538
+ bl as aq,
6521
6539
  Pi as ar,
6522
- yl as as,
6523
- Zs as at,
6540
+ fl as as,
6541
+ Xs as at,
6524
6542
  yi as au,
6525
- al as av,
6526
- il as aw,
6527
- ll as ax,
6528
- sl as ay,
6529
- ol as az,
6543
+ sl as av,
6544
+ al as aw,
6545
+ cl as ax,
6546
+ ll as ay,
6547
+ il as az,
6530
6548
  Pt as b,
6531
6549
  fn as b0,
6532
6550
  Xi as b1,
6533
6551
  Ya as b2,
6534
6552
  Jt as b3,
6535
- Ll as b4,
6536
- Nl as b5,
6537
- Il as b6,
6538
- bl as b7,
6553
+ Nl as b4,
6554
+ Dl as b5,
6555
+ El as b6,
6556
+ vl as b7,
6539
6557
  oe as b8,
6540
6558
  Ii as b9,
6541
- nt as ba,
6559
+ rt as ba,
6542
6560
  Si as bb,
6543
6561
  qe as bc,
6544
6562
  De as bd,
6545
- $n as be,
6546
- ae as bf,
6547
- xl as bg,
6563
+ Mn as be,
6564
+ se as bf,
6565
+ wl as bg,
6548
6566
  pe as bh,
6549
6567
  xi as bi,
6550
6568
  Dt as bj,
6551
6569
  Yi as bk,
6552
- ut as bl,
6570
+ pt as bl,
6553
6571
  Di as bm,
6554
6572
  Ci as bn,
6555
6573
  ge as bo,
6556
- pt as bp,
6557
- jo as bq,
6574
+ mt as bp,
6575
+ Yo as bq,
6558
6576
  Ce as br,
6559
6577
  ji as bs,
6560
6578
  Ai as bt,
6561
- zo as bu,
6562
- oi as bv,
6563
- _i as bw,
6564
- An as c,
6565
- el as d,
6566
- Xs as e,
6567
- Xr as f,
6579
+ Fo as bu,
6580
+ Ys as bv,
6581
+ oi as bw,
6582
+ _i as bx,
6583
+ Pn as c,
6584
+ tl as d,
6585
+ el as e,
6586
+ eo as f,
6568
6587
  ni as g,
6569
6588
  Us as h,
6570
6589
  Gs as i,
6571
6590
  $t as j,
6572
6591
  Et as k,
6573
- So as l,
6574
- it as m,
6575
- no as n,
6592
+ Io as l,
6593
+ at as m,
6594
+ ro as n,
6576
6595
  Gi as o,
6577
6596
  Mi as p,
6578
6597
  Zi as q,
6579
- Mn as r,
6598
+ On as r,
6580
6599
  Bi as s,
6581
- io as t,
6582
- tl as u,
6583
- Ho as v,
6584
- Vo as w,
6600
+ ao as t,
6601
+ nl as u,
6602
+ Bo as v,
6603
+ Go as w,
6585
6604
  Hi as x,
6586
6605
  Fi as y,
6587
6606
  _t as z