@ynput/ayon-frontend-shared 0.7.4 → 0.7.6

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 (52) hide show
  1. package/dist/DetailsPanel.es.js +376 -380
  2. package/dist/ListTable.es.js +2 -2
  3. package/dist/NewEntity.es.js +26 -26
  4. package/dist/ProjectTreeTable.es.js +2521 -2510
  5. package/dist/ProjectsTable.es.js +3 -3
  6. package/dist/Slicer.es.js +32 -32
  7. package/dist/Views.es.js +1 -1
  8. package/dist/chunks/ColumnDropIndicator.es.js +2 -2
  9. package/dist/chunks/ColumnHeaderMenuUI.es.js +1 -1
  10. package/dist/chunks/EntityPath.es.js +1 -1
  11. package/dist/chunks/EntityPickerDialog.es.js +481 -460
  12. package/dist/chunks/EntityTooltip.es.js +1 -1
  13. package/dist/chunks/Feed.es.js +11 -10
  14. package/dist/chunks/FilterErrorActions.es.js +1 -1
  15. package/dist/chunks/GroupSettingsFallback.es.js +2 -2
  16. package/dist/chunks/Menu.es.js +250 -247
  17. package/dist/chunks/MetaWidget.es.js +2 -2
  18. package/dist/chunks/PlayableIcon.es.js +368 -368
  19. package/dist/chunks/ProjectFoldersContext.es.js +237 -0
  20. package/dist/chunks/ReviewablesSelector.es.js +1223 -1170
  21. package/dist/chunks/SimpleTable.es.js +301 -296
  22. package/dist/chunks/Slicer.es.js +418 -410
  23. package/dist/chunks/TableExportContextInstance.es.js +428 -382
  24. package/dist/chunks/ThumbnailUploaderContext.es.js +48 -0
  25. package/dist/chunks/Watchers.es.js +2 -2
  26. package/dist/chunks/{ColumnDropIndicator.styled.es.js → addonColumnTags.es.js} +60 -47
  27. package/dist/components.es.js +1404 -1274
  28. package/dist/context.es.js +559 -657
  29. package/dist/hooks.es.js +2 -2
  30. package/dist/index.es.js +2 -2
  31. package/dist/types/Actions.d.ts +16 -16
  32. package/dist/types/ContextMenu.d.ts +16 -16
  33. package/dist/types/DetailsPanel.d.ts +16 -16
  34. package/dist/types/EntityPickerDialog.d.ts +61 -18
  35. package/dist/types/Feed.d.ts +16 -16
  36. package/dist/types/ListTable.d.ts +16 -16
  37. package/dist/types/NewEntity.d.ts +16 -16
  38. package/dist/types/ProjectTreeTable.d.ts +135 -33
  39. package/dist/types/ProjectsTable.d.ts +16 -16
  40. package/dist/types/RepresentationsList.d.ts +16 -16
  41. package/dist/types/SimpleTable.d.ts +16 -16
  42. package/dist/types/Slicer.d.ts +16 -16
  43. package/dist/types/Views.d.ts +16 -16
  44. package/dist/types/api.d.ts +16 -16
  45. package/dist/types/components.d.ts +226 -39
  46. package/dist/types/context.d.ts +24 -16
  47. package/dist/types/hooks.d.ts +16 -16
  48. package/dist/types/index.d.ts +16 -16
  49. package/dist/types/util.d.ts +16 -16
  50. package/package.json +3 -3
  51. package/dist/chunks/ProjectContext.es.js +0 -158
  52. package/dist/chunks/useQueryArgumentChangeLoading.es.js +0 -11
@@ -1,69 +1,101 @@
1
- import { jsxs as x, jsx as d } from "react/jsx-runtime";
2
- import J, { createContext as p, useContext as l, useState as b, useEffect as m, useRef as y, useCallback as L, useMemo as de, forwardRef as U } from "react";
3
- import { Button as $, Icon as q, theme as Y, Dialog as le, InputText as G } from "@ynput/ayon-react-components";
4
- import u from "styled-components";
5
- import k from "clsx";
6
- import { a as ue, K as W } from "./platform.es.js";
7
- import { debounce as z, isEqual as pe } from "lodash";
8
- import { confirmDialog as fe } from "primereact/confirmdialog";
9
- import { toast as H } from "react-toastify";
1
+ import { jsxs as g, jsx as d } from "react/jsx-runtime";
2
+ import z, { createContext as h, useContext as u, useState as b, useEffect as v, useRef as S, useCallback as N, useMemo as pe, forwardRef as B } from "react";
3
+ import { Button as j, Icon as F, theme as X, Dialog as he, InputText as Z } from "@ynput/ayon-react-components";
4
+ import p from "styled-components";
5
+ import $ from "clsx";
6
+ import { a as fe, K as H } from "./platform.es.js";
7
+ import { debounce as K, isEqual as me } from "lodash";
8
+ import { confirmDialog as ge } from "primereact/confirmdialog";
9
+ import { toast as G } from "react-toastify";
10
10
  import "uuid";
11
- import { bp as D, a as ge } from "./searchTerms.es.js";
11
+ import { bp as D, a as ve } from "./searchTerms.es.js";
12
12
  import "axios";
13
- import { cU as he } from "./getUris.es.js";
13
+ import { cU as we } from "./getUris.es.js";
14
14
  import "@module-federation/enhanced/runtime";
15
15
  import "@ynput/ayon-addon/host";
16
16
  import "./ContextMenuContextInstance.es.js";
17
- import { createPortal as me } from "react-dom";
18
- import { Dialog as ve } from "primereact/dialog";
19
- import we, { ReadyState as xe } from "react-use-websocket";
17
+ import { createPortal as xe } from "react-dom";
18
+ import { Dialog as ye } from "primereact/dialog";
19
+ import be, { ReadyState as Se } from "react-use-websocket";
20
20
  import "react-redux";
21
21
  import "react-router-dom";
22
22
  import "semver";
23
- const Se = ({ message: e = "Refresh to see latest changes." }) => /* @__PURE__ */ x("div", { style: { display: "flex", gap: 8, alignItems: "center" }, children: [
23
+ const Ce = ({ message: e = "Refresh to see latest changes." }) => /* @__PURE__ */ g("div", { style: { display: "flex", gap: 8, alignItems: "center" }, children: [
24
24
  e,
25
- /* @__PURE__ */ d($, { onClick: () => window.location.reload(), variant: "filled", children: "Refresh" })
26
- ] }), be = p(void 0), Jt = () => l(be) || {}, ye = p({
25
+ /* @__PURE__ */ d(j, { onClick: () => window.location.reload(), variant: "filled", children: "Refresh" })
26
+ ] }), Pe = h(void 0), qt = () => u(Pe) || {}, Ee = h({
27
27
  isLoading: !0,
28
28
  modules: [],
29
29
  remotesInitialized: !1,
30
30
  addonDev: { status: "off" }
31
- }), Wt = () => {
32
- const e = l(ye);
31
+ }), zt = () => {
32
+ const e = u(Ee);
33
33
  if (e === void 0)
34
34
  throw new Error("useRemoteModules must be used within a RemoteModulesProvider");
35
35
  return e;
36
- }, K = "addonDev", O = "ayon-addon-dev", Ce = ["localhost", "127.0.0.1", "[::1]"], X = (e) => {
36
+ }, L = "addonDev", O = "ayon-addon-dev", Ie = ["localhost", "127.0.0.1", "[::1]"], U = `use ?${L}=<addon>@http://localhost:<port>`, Q = (e) => {
37
37
  try {
38
38
  const { protocol: t, hostname: o } = new URL(e);
39
- return ["http:", "https:"].includes(t) && Ce.includes(o);
39
+ return ["http:", "https:"].includes(t) && Ie.includes(o);
40
40
  } catch {
41
41
  return !1;
42
42
  }
43
- }, Pe = (e) => {
43
+ }, Ae = (e) => {
44
44
  const t = e.indexOf("@");
45
- if (t <= 0) return null;
46
- const o = e.slice(0, t), i = e.slice(t + 1).replace(/\/+$/, "");
47
- return X(i) ? { addon: o, url: i } : null;
48
- }, zt = () => {
49
- const e = new URLSearchParams(window.location.search).get(K);
45
+ if (t <= 0) return { request: e, reason: U };
46
+ const o = e.slice(0, t), r = e.slice(t + 1).replace(/\/+$/, "");
47
+ let n;
48
+ try {
49
+ n = new URL(r);
50
+ } catch {
51
+ return { request: e, reason: `"${r}" is not a URL: ${U}` };
52
+ }
53
+ return ["http:", "https:"].includes(n.protocol) ? Q(r) ? { override: { addon: o, url: r } } : {
54
+ request: e,
55
+ reason: `${n.hostname} is not this machine: only dev servers on localhost, 127.0.0.1 or [::1] can be loaded`
56
+ } : { request: e, reason: `the dev server URL must be http(s): ${U}` };
57
+ }, Ht = () => {
58
+ const e = new URLSearchParams(window.location.search).get(L);
50
59
  if (e === "off" || e === "")
51
60
  return localStorage.removeItem(O), null;
52
61
  if (e) {
53
- const t = Pe(e);
54
- return t ? (localStorage.setItem(O, JSON.stringify(t)), t) : (console.warn(`[addon dev] ignored ?${K}=${e}: use <addon>@http://localhost:<port>`), null);
62
+ const t = Ae(e);
63
+ return "override" in t ? localStorage.setItem(O, JSON.stringify(t.override)) : console.warn(`[addon dev] ignored ?${L}=${e}: ${t.reason}`), t;
55
64
  }
56
65
  try {
57
66
  const t = JSON.parse(localStorage.getItem(O) || "null");
58
- return t && X(t.url) ? t : null;
67
+ return t && Q(t.url) ? { override: t } : null;
59
68
  } catch {
60
69
  return null;
61
70
  }
62
- }, Ee = () => localStorage.removeItem(O), Ie = async ({ url: e }) => {
63
- const t = await fetch(`${e}/ayon-addon.json`, { cache: "no-store" });
64
- if (!t.ok) throw new Error(`${e}/ayon-addon.json answered ${t.status}`);
65
- return t.json();
66
- }, Ht = (e) => !!e?.attrib?.developerMode || !!e?.data?.isService, Ae = u.div`
71
+ }, De = () => localStorage.removeItem(O), Te = (e, { addon: t, url: o }) => {
72
+ const r = e ?? {}, n = ["name", "version", "remote", "buildId"].filter(
73
+ (s) => typeof r[s] != "string" || !r[s]
74
+ );
75
+ return (!Array.isArray(r.modules) || r.modules.some((s) => typeof s != "string" || !s)) && n.push("modules"), typeof e != "object" || !e || n.length ? `${o}/ayon-addon.json is invalid (no ${n.join(", ")}): is it served by \`ayon-addon dev --ayon\`?` : r.name !== t ? `the dev server at ${o} serves "${r.name}", not "${t}": open ?${L}=${r.name}@${o}` : null;
76
+ }, Re = async (e) => {
77
+ const { url: t } = e;
78
+ let o;
79
+ try {
80
+ o = await fetch(`${t}/ayon-addon.json`, { cache: "no-store" });
81
+ } catch {
82
+ throw new Error(`no answer from ${t}: is \`ayon-addon dev --ayon\` running on that port?`);
83
+ }
84
+ if (o.status === 404)
85
+ throw new Error(
86
+ `${t} has no /ayon-addon.json: run \`ayon-addon dev --ayon\` (not the dev shell) and wait for its first build`
87
+ );
88
+ if (!o.ok) throw new Error(`${t}/ayon-addon.json answered ${o.status}`);
89
+ let r;
90
+ try {
91
+ r = await o.json();
92
+ } catch {
93
+ throw new Error(`${t}/ayon-addon.json is not JSON: is it served by \`ayon-addon dev --ayon\`?`);
94
+ }
95
+ const n = Te(r, e);
96
+ if (n) throw new Error(n);
97
+ return r;
98
+ }, Kt = (e) => e?.attrib?.developerMode || e?.data?.isService ? null : e?.data?.isDeveloper ? "only users in developer mode can load addons from a dev server: turn on Developer Mode in the header, then reload" : "only users in developer mode can load addons from a dev server, and this user is not a developer: an admin can turn on Developer in Studio settings > Users", Y = p.div`
67
99
  position: fixed;
68
100
  left: 8px;
69
101
  bottom: 8px;
@@ -74,6 +106,7 @@ const Se = ({ message: e = "Refresh to see latest changes." }) => /* @__PURE__ *
74
106
  padding: 4px 4px 4px 12px;
75
107
  border-radius: 8px;
76
108
  font-size: 13px;
109
+ max-width: calc(100vw - 16px);
77
110
  color: var(--md-sys-color-on-tertiary-container);
78
111
  background: var(--md-sys-color-tertiary-container);
79
112
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
@@ -82,54 +115,66 @@ const Se = ({ message: e = "Refresh to see latest changes." }) => /* @__PURE__ *
82
115
  color: var(--md-sys-color-on-error-container);
83
116
  background: var(--md-sys-color-error-container);
84
117
  }
85
- `, De = 2e3, Kt = ({ state: e }) => {
86
- const [t, o] = b(!1), i = e.status === "active" ? e.info.buildId : void 0;
87
- m(() => {
88
- if (e.status !== "active") return;
89
- const s = setInterval(() => {
90
- Ie(e.override).then(
91
- (c) => {
92
- c.buildId !== i && (o(!0), window.location.reload());
118
+ `, $e = 2e3, Gt = ({ state: e }) => {
119
+ const [t, o] = b(!1), r = e.status === "active" ? e.info.buildId : void 0;
120
+ v(() => {
121
+ if (e.status !== "active" && e.status !== "error") return;
122
+ const l = setInterval(() => {
123
+ Re(e.override).then(
124
+ (f) => {
125
+ f.buildId !== r && (o(!0), window.location.reload());
93
126
  },
94
127
  () => {
95
128
  }
96
- // the dev server restarting; keep polling
129
+ // the dev server restarting or still failing; keep polling
97
130
  );
98
- }, De);
99
- return () => clearInterval(s);
100
- }, [e, i]);
101
- const n = () => {
102
- Ee();
103
- const s = new URL(window.location.href);
104
- s.searchParams.delete("addonDev"), window.location.href = s.toString();
105
- }, { addon: a, url: r } = e.override;
106
- return /* @__PURE__ */ x(Ae, { className: e.status === "error" ? "error" : void 0, "data-addon-dev": a, children: [
107
- /* @__PURE__ */ d(q, { icon: e.status === "error" ? "error" : "code" }),
108
- e.status === "error" ? /* @__PURE__ */ x("span", { children: [
131
+ }, $e);
132
+ return () => clearInterval(l);
133
+ }, [e, r]);
134
+ const s = /* @__PURE__ */ d(j, { variant: "text", icon: "close", onClick: () => {
135
+ De();
136
+ const l = new URL(window.location.href);
137
+ l.searchParams.delete("addonDev"), window.location.href = l.toString();
138
+ }, "data-tooltip": "Stop: load the installed addon" });
139
+ if (e.status === "rejected")
140
+ return /* @__PURE__ */ g(Y, { className: "error", "data-addon-dev-rejected": e.request, children: [
141
+ /* @__PURE__ */ d(F, { icon: "error" }),
142
+ /* @__PURE__ */ g("span", { children: [
143
+ "Addon dev: ignored ?addonDev=",
144
+ e.request,
145
+ ": ",
146
+ e.reason
147
+ ] }),
148
+ s
149
+ ] });
150
+ const { addon: a, url: i } = e.override, c = "error" in e ? e.error : void 0;
151
+ return /* @__PURE__ */ g(Y, { className: c ? "error" : void 0, "data-addon-dev": a, children: [
152
+ /* @__PURE__ */ d(F, { icon: c ? "error" : "code" }),
153
+ e.status === "error" ? /* @__PURE__ */ g("span", { children: [
109
154
  "Addon dev: ",
110
155
  a,
111
156
  " could not load from ",
112
- r,
113
- " (",
114
- e.error,
115
- ")"
116
- ] }) : /* @__PURE__ */ x("span", { children: [
157
+ i,
158
+ ": ",
159
+ c
160
+ ] }) : /* @__PURE__ */ g("span", { children: [
117
161
  "Addon dev: ",
118
162
  /* @__PURE__ */ d("strong", { children: a }),
119
163
  " from ",
120
- r,
164
+ i,
121
165
  e.status === "active" && ` (${e.info.version}, build ${e.info.buildId})`,
166
+ c && `: ${c}`,
122
167
  t && ", reloading..."
123
168
  ] }),
124
- /* @__PURE__ */ d($, { variant: "text", icon: "close", onClick: n, "data-tooltip": "Stop: load the installed addon" })
169
+ s
125
170
  ] });
126
- }, Te = p(void 0), qt = () => {
127
- const e = l(Te);
171
+ }, Oe = h(void 0), Yt = () => {
172
+ const e = u(Oe);
128
173
  if (e === void 0)
129
174
  throw new Error("usePowerpack must be used within a PowerpackProvider");
130
175
  return e;
131
- }, Re = p(void 0), Yt = () => {
132
- const e = l(Re);
176
+ }, _e = h(void 0), Xt = () => {
177
+ const e = u(_e);
133
178
  if (e === void 0)
134
179
  throw new Error("useURIContext must be used within a URIProvider");
135
180
  return e;
@@ -140,14 +185,14 @@ const Se = ({ message: e = "Refresh to see latest changes." }) => /* @__PURE__ *
140
185
  } catch {
141
186
  return t;
142
187
  }
143
- }, Gt = (e, t) => {
188
+ }, Zt = (e, t) => {
144
189
  if (typeof window > "u") return t;
145
190
  try {
146
191
  return _(sessionStorage.getItem(e), t);
147
192
  } catch {
148
193
  return t;
149
194
  }
150
- }, Xt = (e, t) => {
195
+ }, Qt = (e, t) => {
151
196
  if (!(typeof window > "u"))
152
197
  try {
153
198
  sessionStorage.setItem(e, JSON.stringify(t)), window.dispatchEvent(new CustomEvent("session-storage", { detail: { key: e } }));
@@ -156,53 +201,53 @@ const Se = ({ message: e = "Refresh to see latest changes." }) => /* @__PURE__ *
156
201
  }
157
202
  };
158
203
  function ke(e, t) {
159
- const o = y(t);
204
+ const o = S(t);
160
205
  o.current = t;
161
- const [i, n] = b(() => typeof window > "u" ? t : _(sessionStorage.getItem(e), t));
162
- m(() => {
163
- const r = sessionStorage.getItem(e);
164
- n(_(r, o.current)), r || sessionStorage.setItem(e, JSON.stringify(o.current));
165
- function s(c) {
206
+ const [r, n] = b(() => typeof window > "u" ? t : _(sessionStorage.getItem(e), t));
207
+ v(() => {
208
+ const a = sessionStorage.getItem(e);
209
+ n(_(a, o.current)), a || sessionStorage.setItem(e, JSON.stringify(o.current));
210
+ function i(c) {
166
211
  if ("key" in c && c.key && c.key !== e) return;
167
- const f = c.detail?.key;
168
- if (f && f !== e) return;
169
- const g = sessionStorage.getItem(e);
170
- n(_(g, o.current));
212
+ const l = c.detail?.key;
213
+ if (l && l !== e) return;
214
+ const f = sessionStorage.getItem(e);
215
+ n(_(f, o.current));
171
216
  }
172
- return window.addEventListener("session-storage", s), window.addEventListener("storage", s), () => {
173
- window.removeEventListener("session-storage", s), window.removeEventListener("storage", s);
217
+ return window.addEventListener("session-storage", i), window.addEventListener("storage", i), () => {
218
+ window.removeEventListener("session-storage", i), window.removeEventListener("storage", i);
174
219
  };
175
220
  }, [e]);
176
- const a = L(
177
- (r) => {
221
+ const s = N(
222
+ (a) => {
178
223
  try {
179
- n((s) => {
180
- const c = typeof r == "function" ? r(s) : r;
224
+ n((i) => {
225
+ const c = typeof a == "function" ? a(i) : a;
181
226
  return sessionStorage.setItem(e, JSON.stringify(c)), typeof window < "u" && window.dispatchEvent(new CustomEvent("session-storage", { detail: { key: e } })), c;
182
227
  });
183
- } catch (s) {
184
- console.error(s);
228
+ } catch (i) {
229
+ console.error(i);
185
230
  }
186
231
  },
187
232
  [e]
188
233
  );
189
- return [i, a];
234
+ return [r, s];
190
235
  }
191
- const N = (e, t = null) => {
236
+ const k = (e, t = null) => {
192
237
  if (!e) return t;
193
238
  try {
194
239
  return JSON.parse(e);
195
240
  } catch {
196
241
  return t;
197
242
  }
198
- }, Oe = (e, t) => {
243
+ }, Le = (e, t) => {
199
244
  if (typeof window > "u") return t;
200
245
  try {
201
- return N(localStorage.getItem(e), t);
246
+ return k(localStorage.getItem(e), t);
202
247
  } catch {
203
248
  return t;
204
249
  }
205
- }, _e = (e, t) => {
250
+ }, Ne = (e, t) => {
206
251
  if (!(typeof window > "u"))
207
252
  try {
208
253
  localStorage.setItem(e, JSON.stringify(t)), window.dispatchEvent(new Event("storage"));
@@ -210,97 +255,97 @@ const N = (e, t = null) => {
210
255
  console.error(o);
211
256
  }
212
257
  };
213
- function Zt(e, t) {
214
- const o = y(t);
258
+ function eo(e, t) {
259
+ const o = S(t);
215
260
  o.current = t;
216
- const [i, n] = b(() => {
217
- const r = localStorage.getItem(e);
218
- return N(r, t);
261
+ const [r, n] = b(() => {
262
+ const a = localStorage.getItem(e);
263
+ return k(a, t);
219
264
  });
220
- m(() => {
221
- const r = localStorage.getItem(e);
222
- n(N(r, o.current)), r || localStorage.setItem(e, JSON.stringify(o.current));
223
- function s(c) {
265
+ v(() => {
266
+ const a = localStorage.getItem(e);
267
+ n(k(a, o.current)), a || localStorage.setItem(e, JSON.stringify(o.current));
268
+ function i(c) {
224
269
  if (c.key && c.key !== e) return;
225
- const f = localStorage.getItem(e);
226
- n(N(f, o.current));
270
+ const l = localStorage.getItem(e);
271
+ n(k(l, o.current));
227
272
  }
228
- return window.addEventListener("storage", s), () => {
229
- window.removeEventListener("storage", s);
273
+ return window.addEventListener("storage", i), () => {
274
+ window.removeEventListener("storage", i);
230
275
  };
231
276
  }, [e]);
232
- const a = L(
233
- (r) => {
277
+ const s = N(
278
+ (a) => {
234
279
  try {
235
- n((s) => {
236
- const c = typeof r == "function" ? r(s) : r;
280
+ n((i) => {
281
+ const c = typeof a == "function" ? a(i) : a;
237
282
  return localStorage.setItem(e, JSON.stringify(c)), typeof window < "u" && setTimeout(() => {
238
283
  window.dispatchEvent(new Event("storage"));
239
284
  }, 0), c;
240
285
  });
241
- } catch (s) {
242
- console.error(s);
286
+ } catch (i) {
287
+ console.error(i);
243
288
  }
244
289
  },
245
290
  [e]
246
291
  );
247
- return [i, a];
292
+ return [r, s];
248
293
  }
249
- const Ne = p(void 0), Le = ["feed", "subtasks", "details", "files"], $e = /^[^.\s]+\.[A-Za-z][A-Za-z0-9_]*$/, je = (e) => typeof e == "string" && $e.test(e), Me = (e) => typeof e == "string" && (Le.includes(e) || je(e)), Qt = (e) => {
250
- const { startFrame: t, endFrame: o } = e.activityData || {}, i = e.origin?.id ?? e.entityId;
251
- if (!Number.isSafeInteger(t) || !i) return null;
252
- const n = t, a = Number.isSafeInteger(o) ? Math.max(n, o) : n;
253
- return { entityId: i, startFrame: n, endFrame: a };
254
- }, Ue = () => {
255
- const e = l(Ne);
294
+ const je = h(void 0), Ue = ["feed", "subtasks", "details", "files"], Me = /^[^.\s]+\.[A-Za-z][A-Za-z0-9_]*$/, Fe = (e) => typeof e == "string" && Me.test(e), Ve = (e) => typeof e == "string" && (Ue.includes(e) || Fe(e)), to = (e) => {
295
+ const { startFrame: t, endFrame: o } = e.activityData || {}, r = e.origin?.id ?? e.entityId;
296
+ if (!Number.isSafeInteger(t) || !r) return null;
297
+ const n = t, s = Number.isSafeInteger(o) ? Math.max(n, o) : n;
298
+ return { entityId: r, startFrame: n, endFrame: s };
299
+ }, Be = () => {
300
+ const e = u(je);
256
301
  if (e === void 0)
257
302
  throw new Error("useDetailsPanel must be used within a DetailsPanelProvider");
258
303
  return e;
259
- }, M = "details/tabs-by-scope", eo = (e, t) => {
260
- const o = Oe(M, {});
261
- _e(M, { ...o, [e]: t });
262
- }, to = (e) => {
263
- const { getOpenForScope: t, setPanelOpen: o, getTabForScope: i } = Ue(), [n, a] = ke(M, {}), r = n[e], s = Me(r) ? r : i(e), c = L(
264
- (g) => {
265
- a((C) => ({ ...C, [e]: g }));
304
+ }, V = "details/tabs-by-scope", oo = (e, t) => {
305
+ const o = Le(V, {});
306
+ Ne(V, { ...o, [e]: t });
307
+ }, no = (e) => {
308
+ const { getOpenForScope: t, setPanelOpen: o, getTabForScope: r } = Be(), [n, s] = ke(V, {}), a = n[e], i = Ve(a) ? a : r(e), c = N(
309
+ (f) => {
310
+ s((C) => ({ ...C, [e]: f }));
266
311
  },
267
- [e, a]
268
- ), f = s === "feed";
312
+ [e, s]
313
+ ), l = i === "feed";
269
314
  return {
270
315
  isOpen: t(e),
271
- setOpen: (g) => o(e, g),
272
- currentTab: s,
316
+ setOpen: (f) => o(e, f),
317
+ currentTab: i,
273
318
  setTab: c,
274
- isFeed: f
319
+ isFeed: l
275
320
  };
276
- }, Fe = p(
321
+ }, Je = h(
277
322
  void 0
278
- ), oo = () => {
279
- const e = l(Fe);
323
+ ), ro = () => {
324
+ const e = u(Je);
280
325
  if (!e)
281
326
  throw new Error("useSubtasksModulesContext must be used within a SubtasksModulesProvider");
282
327
  return e;
283
- }, Ve = p({}), no = () => {
284
- const e = l(Ve);
328
+ }, We = h({}), so = () => {
329
+ const e = u(We);
285
330
  if (!e)
286
331
  throw new Error("useThumbnailUploadContext must be used within a ThumbnailUploadProvider");
287
332
  return e;
288
- }, Be = p(void 0), ro = () => {
289
- const e = l(Be);
333
+ }, qe = h(void 0), ao = () => {
334
+ const e = u(qe);
290
335
  if (e === void 0)
291
336
  throw new Error("useSettingsPanel must be used within a SettingsPanelProvider");
292
337
  return e;
293
- }, Je = p(void 0);
294
- function We() {
295
- const e = l(Je);
338
+ }, ze = h(void 0);
339
+ function He() {
340
+ const e = u(ze);
296
341
  if (e === void 0)
297
342
  throw new Error("usePiPWindow must be used within a PiPContext");
298
343
  return e;
299
344
  }
300
- function ze({ pipWindow: e, children: t }) {
301
- return me(t, e.document.body);
345
+ function Ke({ pipWindow: e, children: t }) {
346
+ return xe(t, e.document.body);
302
347
  }
303
- const He = u(ve)`
348
+ const Ge = p(ye)`
304
349
  width: 25vw;
305
350
  height: 70vh;
306
351
  border: solid 1px var(--md-sys-color-outline-variant);
@@ -313,7 +358,7 @@ const He = u(ve)`
313
358
  opacity: 1;
314
359
  }
315
360
  }
316
- `, Ke = u($)`
361
+ `, Ye = p(j)`
317
362
  width: 26px;
318
363
  height: 26px;
319
364
  margin-left: auto;
@@ -329,12 +374,12 @@ const He = u(ve)`
329
374
  &:hover {
330
375
  background-color: #3d3e40;
331
376
  }
332
- `, so = ({ children: e }) => {
333
- const { pipWindow: t, pipId: o, isSupported: i, closePipWindow: n } = We(), a = o && J.isValidElement(e) ? J.cloneElement(e, { id: o }) : e;
334
- return !i && o ? /* @__PURE__ */ d(
335
- He,
377
+ `, io = ({ children: e }) => {
378
+ const { pipWindow: t, pipId: o, isSupported: r, closePipWindow: n } = He(), s = o && z.isValidElement(e) ? z.cloneElement(e, { id: o }) : e;
379
+ return !r && o ? /* @__PURE__ */ d(
380
+ Ge,
336
381
  {
337
- header: /* @__PURE__ */ d(Ke, { icon: "close", className: "close", onClick: n }),
382
+ header: /* @__PURE__ */ d(Ye, { icon: "close", className: "close", onClick: n }),
338
383
  headerStyle: {
339
384
  padding: 4,
340
385
  backgroundColor: "#202124",
@@ -355,112 +400,112 @@ const He = u(ve)`
355
400
  },
356
401
  onHide: n,
357
402
  position: "right",
358
- children: a
403
+ children: s
359
404
  }
360
- ) : t && /* @__PURE__ */ d(ze, { pipWindow: t, children: /* @__PURE__ */ d("div", { className: "pipRoot", children: a }) });
361
- }, qe = p(void 0), ao = () => {
362
- const e = l(qe);
405
+ ) : t && /* @__PURE__ */ d(Ke, { pipWindow: t, children: /* @__PURE__ */ d("div", { className: "pipRoot", children: s }) });
406
+ }, Xe = h(void 0), co = () => {
407
+ const e = u(Xe);
363
408
  if (!e)
364
409
  throw new Error("useAddonProjectContext must be used within a AddonProjectContext");
365
410
  return e;
366
- }, Ye = p(void 0), io = () => {
367
- const e = l(Ye);
411
+ }, Ze = h(void 0), lo = () => {
412
+ const e = u(Ze);
368
413
  if (!e)
369
414
  throw new Error("useAddonContext must be used within a AddonContext");
370
415
  return e;
371
- }, Ge = p(void 0), co = () => {
372
- const e = l(Ge);
416
+ }, Qe = h(void 0), uo = () => {
417
+ const e = u(Qe);
373
418
  if (e === void 0)
374
419
  throw new Error("useMenuContext must be used within a MenuProvider");
375
420
  return e;
376
- }, Z = p(void 0), lo = () => {
377
- const e = l(Z);
421
+ }, ee = h(void 0), po = () => {
422
+ const e = u(ee);
378
423
  if (e === void 0)
379
424
  throw new Error("useSocketContext must be used within a SocketProvider");
380
425
  return e;
381
- }, Xe = window.location.protocol.replace("http", "ws"), Ze = `${Xe}//${window.location.host}/ws`, uo = ({
426
+ }, et = window.location.protocol.replace("http", "ws"), tt = `${et}//${window.location.host}/ws`, ho = ({
382
427
  children: e,
383
428
  userName: t,
384
429
  projectName: o,
385
- dispatch: i
430
+ dispatch: r
386
431
  }) => {
387
- const [n, a] = b(!1), [r, s] = b([]), [c] = he(), f = y(!1);
388
- m(() => {
389
- f.current = n;
432
+ const [n, s] = b(!1), [a, i] = b([]), [c] = we(), l = S(!1);
433
+ v(() => {
434
+ l.current = n;
390
435
  }, [n]);
391
- const g = {
436
+ const f = {
392
437
  shouldReconnect: () => !t || !localStorage.getItem("accessToken") ? !1 : (c({ full: !1 }).unwrap(), !0)
393
- }, { sendMessage: C, readyState: P, getWebSocket: E } = we(
394
- Ze,
395
- g,
438
+ }, { sendMessage: C, readyState: P, getWebSocket: E } = be(
439
+ tt,
440
+ f,
396
441
  !!t
397
- ), v = () => {
442
+ ), w = () => {
398
443
  C(
399
444
  JSON.stringify({
400
445
  topic: "auth",
401
446
  token: localStorage.getItem("accessToken"),
402
- subscribe: r,
447
+ subscribe: a,
403
448
  project: o
404
449
  })
405
450
  );
406
451
  };
407
- m(() => {
408
- console.debug("Topics changed", r), v();
409
- }, [r, o]);
410
- const T = y(r);
411
- T.current = r;
412
- const h = de(
413
- () => z((w) => {
414
- pe(T.current, w) || (console.log("WS: Subscriptions changed"), s(w));
452
+ v(() => {
453
+ console.debug("Topics changed", a), w();
454
+ }, [a, o]);
455
+ const T = S(a);
456
+ T.current = a;
457
+ const m = pe(
458
+ () => K((x) => {
459
+ me(T.current, x) || (console.log("WS: Subscriptions changed"), i(x));
415
460
  }, 200),
416
461
  []
417
462
  );
418
- m(() => (D.setOnSubscriptionsChange((w) => h(w)), h(D.getSubscriptions("")), () => {
419
- D.setOnSubscriptionsChange(null), h.cancel();
420
- }), [h]);
421
- const [R, oe] = b(!1), [F, ne] = b(!1);
422
- m(() => {
423
- R && !F && (H.warning(/* @__PURE__ */ d(Se, {}), {
463
+ v(() => (D.setOnSubscriptionsChange((x) => m(x)), m(D.getSubscriptions("")), () => {
464
+ D.setOnSubscriptionsChange(null), m.cancel();
465
+ }), [m]);
466
+ const [R, se] = b(!1), [J, ae] = b(!1);
467
+ v(() => {
468
+ R && !J && (G.warning(/* @__PURE__ */ d(Ce, {}), {
424
469
  autoClose: !1,
425
470
  closeButton: !1
426
- }), ne(!0));
427
- }, [R, F]);
428
- const I = y({ callCount: 0, lastCall: Date.now() }), re = z(() => {
429
- console.log("Resetting API state due to server restart"), a(!1), i(ge.util.resetApiState());
430
- }, 1e3), se = L(
431
- (w) => {
471
+ }), ae(!0));
472
+ }, [R, J]);
473
+ const I = S({ callCount: 0, lastCall: Date.now() }), ie = K(() => {
474
+ console.log("Resetting API state due to server restart"), s(!1), r(ve.util.resetApiState());
475
+ }, 1e3), ce = N(
476
+ (x) => {
432
477
  if (I.current.callCount > 1e3)
433
- return oe(!0), console.log(
478
+ return se(!0), console.log(
434
479
  "Overload: Over 1000 messages per second. Ignoring subsequent messages."
435
480
  );
436
481
  let A;
437
482
  try {
438
- A = JSON.parse(w.data);
439
- } catch (ce) {
440
- console.error("Failed to parse websocket message:", ce, w.data);
483
+ A = JSON.parse(x.data);
484
+ } catch (ue) {
485
+ console.error("Failed to parse websocket message:", ue, x.data);
441
486
  return;
442
487
  }
443
- const { topic: S, sender: V, summary: ae, status: ie } = A || {};
444
- if (f.current && (S === "heartbeat" || S === "server.started" && ie === "finished")) {
445
- console.log("Server replica booted"), re();
488
+ const { topic: y, sender: W, summary: de, status: le } = A || {};
489
+ if (l.current && (y === "heartbeat" || y === "server.started" && le === "finished")) {
490
+ console.log("Server replica booted"), ie();
446
491
  return;
447
492
  }
448
- if (S === "heartbeat") return;
449
- if (S === "server.restart_requested" && (console.log("Server restart requested"), a(!0)), ["import.data"].includes(S)) {
450
- if (V !== window.senderId) return;
451
- } else if (V === window.senderId)
493
+ if (y === "heartbeat") return;
494
+ if (y === "server.restart_requested" && (console.log("Server restart requested"), s(!0)), ["import.data"].includes(y)) {
495
+ if (W !== window.senderId) return;
496
+ } else if (W === window.senderId)
452
497
  return;
453
- const B = Date.now();
454
- B - I.current.lastCall < 1e3 ? I.current.callCount += 1 : I.current.callCount = 0, console.log("Event RX", A), I.current.lastCall = B, S === "shout" && A?.summary?.text && H.info(ae.text), D.publish(S, A);
498
+ const q = Date.now();
499
+ q - I.current.lastCall < 1e3 ? I.current.callCount += 1 : I.current.callCount = 0, console.log("Event RX", A), I.current.lastCall = q, y === "shout" && A?.summary?.text && G.info(de.text), D.publish(y, A);
455
500
  },
456
- [a]
501
+ [s]
457
502
  );
458
- return m(() => {
459
- P === xe.OPEN && (E().onmessage = se, v(), D.publish("client.connected", {
503
+ return v(() => {
504
+ P === Se.OPEN && (E().onmessage = ce, w(), D.publish("client.connected", {
460
505
  topic: "client.connected"
461
506
  }));
462
507
  }, [P, E]), /* @__PURE__ */ d(
463
- Z.Provider,
508
+ ee.Provider,
464
509
  {
465
510
  value: {
466
511
  getWebSocket: E,
@@ -470,19 +515,19 @@ const He = u(ve)`
470
515
  children: e
471
516
  }
472
517
  );
473
- }, Q = p(void 0), po = () => {
474
- const e = l(Q);
518
+ }, te = h(void 0), fo = () => {
519
+ const e = u(te);
475
520
  if (e === void 0)
476
521
  throw new Error("useProjectContext must be used within a ProjectContextProvider");
477
522
  return e;
478
- }, fo = () => l(Q), Qe = p(
523
+ }, mo = () => u(te), oe = h(
479
524
  void 0
480
525
  ), go = () => {
481
- const e = l(Qe);
526
+ const e = u(oe);
482
527
  if (e === void 0)
483
528
  throw new Error("useProjectFoldersContext must be used within a ProjectFoldersContextProvider");
484
529
  return e;
485
- }, ee = p(void 0), et = (e) => ({
530
+ }, vo = () => u(oe), ne = h(void 0), ot = (e) => ({
486
531
  created: e,
487
532
  label_changed: e,
488
533
  renamed: e,
@@ -491,7 +536,7 @@ const He = u(ve)`
491
536
  tags_changed: e,
492
537
  attrib_changed: e,
493
538
  deleted: e
494
- }), tt = (e, t) => e === t || e.startsWith(`${t}.`), ot = (e, t) => t.length === 0 ? !0 : t.includes(e || ""), nt = (e) => {
539
+ }), nt = (e, t) => e === t || e.startsWith(`${t}.`), rt = (e, t) => t.length === 0 ? !0 : t.includes(e || ""), st = (e) => {
495
540
  const t = e.split(".").pop();
496
541
  if (t && [
497
542
  "created",
@@ -504,39 +549,39 @@ const He = u(ve)`
504
549
  "deleted"
505
550
  ].includes(t))
506
551
  return t;
507
- }, ho = ({
552
+ }, wo = ({
508
553
  projectNames: e,
509
554
  topics: t,
510
555
  isSyncing: o = !1,
511
- shouldSyncOnUpdate: i
556
+ shouldSyncOnUpdate: r
512
557
  }) => {
513
- const n = l(ee);
558
+ const n = u(ne);
514
559
  if (!n)
515
560
  throw new Error("useSyncUpdates must be used within an EntityUpdatesProvider");
516
- const a = e || n.projectNames, r = y(0), s = y(!1), c = n.updates.filter(
517
- (f) => ot(f.project, a) && t.some((g) => tt(f.topic, g)) && (i?.(f) ?? !0)
561
+ const s = e || n.projectNames, a = S(0), i = S(!1), c = n.updates.filter(
562
+ (l) => rt(l.project, s) && t.some((f) => nt(l.topic, f)) && (r?.(l) ?? !0)
518
563
  );
519
- return m(() => {
520
- o && !s.current ? r.current = n.getLatestId() : !o && s.current && n.acknowledge(t, a, r.current), s.current = o;
521
- }, [n, o, a, t]), {
564
+ return v(() => {
565
+ o && !i.current ? a.current = n.getLatestId() : !o && i.current && n.acknowledge(t, s, a.current), i.current = o;
566
+ }, [n, o, s, t]), {
522
567
  updates: c,
523
568
  hasUpdates: c.length > 0,
524
569
  updateCount: c.length
525
570
  };
526
- }, mo = () => {
527
- const e = l(ee);
571
+ }, xo = () => {
572
+ const e = u(ne);
528
573
  if (!e)
529
574
  throw new Error("useAutoSyncSettings must be used within an EntityUpdatesProvider");
530
575
  const { autoSyncSettings: t, setAutoSyncSettings: o } = e;
531
576
  return [t, (n) => {
532
- const { settings: a, global: r } = n;
533
- o(r !== void 0 ? et(r) : (s) => ({ ...s, ...a }));
577
+ const { settings: s, global: a } = n;
578
+ o(a !== void 0 ? ot(a) : (i) => ({ ...i, ...s }));
534
579
  }];
535
- }, vo = (e, t) => {
580
+ }, yo = (e, t) => {
536
581
  if (!t) return !1;
537
- const o = nt(e);
582
+ const o = st(e);
538
583
  return o ? t[o] : !1;
539
- }, rt = u.li`
584
+ }, at = p.li`
540
585
  position: relative;
541
586
  padding: 4px 6px 4px 12px;
542
587
  user-select: none;
@@ -589,7 +634,7 @@ const He = u(ve)`
589
634
  display: flex;
590
635
  }
591
636
  }
592
- `, j = u($)`
637
+ `, M = p(j)`
593
638
  &.hasIcon {
594
639
  padding: 2px;
595
640
  }
@@ -607,79 +652,79 @@ const He = u(ve)`
607
652
  }
608
653
  }
609
654
  }
610
- `, st = U(
655
+ `, it = B(
611
656
  ({
612
657
  id: e,
613
658
  label: t,
614
659
  startContent: o,
615
- endContent: i,
660
+ endContent: r,
616
661
  isSelected: n,
617
- isEditable: a,
618
- isSaveable: r,
619
- highlighted: s,
662
+ isEditable: s,
663
+ isSaveable: a,
664
+ highlighted: i,
620
665
  onEdit: c,
621
- onSave: f,
622
- onResetView: g,
666
+ onSave: l,
667
+ onResetView: f,
623
668
  className: C,
624
669
  ...P
625
670
  }, E) => {
626
- const { viewAlias: v } = ft(), T = (h, R) => {
627
- h.stopPropagation(), R ? fe({
628
- message: `Save current ${v} settings and overwrite this ${v}?`,
671
+ const { viewAlias: w } = mt(), T = (m, R) => {
672
+ m.stopPropagation(), R ? ge({
673
+ message: `Save current ${w} settings and overwrite this ${w}?`,
629
674
  header: "Confirm save",
630
- accept: () => f && f(h, e)
631
- }) : f && f(h, e);
675
+ accept: () => l && l(m, e)
676
+ }) : l && l(m, e);
632
677
  };
633
- return /* @__PURE__ */ x(
634
- rt,
678
+ return /* @__PURE__ */ g(
679
+ at,
635
680
  {
636
681
  ...P,
637
682
  id: e,
638
- className: k(C, { selected: n }),
683
+ className: $(C, { selected: n }),
639
684
  ref: E,
640
685
  children: [
641
686
  o && o,
642
687
  /* @__PURE__ */ d("span", { className: "label", children: t }),
643
- g && /* @__PURE__ */ d(
644
- j,
688
+ f && /* @__PURE__ */ d(
689
+ M,
645
690
  {
646
691
  icon: "restart_alt",
647
692
  variant: "text",
648
693
  className: "reset",
649
- onClick: g,
694
+ onClick: f,
650
695
  "data-tooltip": "Reset to Default",
651
- "data-shortcut": ue("0", [W.Shift, W.Ctrl])
696
+ "data-shortcut": fe("0", [H.Shift, H.Ctrl])
652
697
  }
653
698
  ),
654
- a && r && !n && /* @__PURE__ */ d(
655
- j,
699
+ s && a && !n && /* @__PURE__ */ d(
700
+ M,
656
701
  {
657
702
  icon: "save",
658
703
  variant: "text",
659
- className: k("save", { active: s === "save" }),
660
- onClick: (h) => T(h, s !== "save"),
661
- "data-tooltip": `Save ${v} settings from current ${v}`
704
+ className: $("save", { active: i === "save" }),
705
+ onClick: (m) => T(m, i !== "save"),
706
+ "data-tooltip": `Save ${w} settings from current ${w}`
662
707
  }
663
708
  ),
664
- a && c && /* @__PURE__ */ d(
665
- j,
709
+ s && c && /* @__PURE__ */ d(
710
+ M,
666
711
  {
667
712
  variant: "text",
668
713
  icon: "more_horiz",
669
- className: k("more", { active: s === "edit" }),
670
- onClick: (h) => c(h, e),
671
- "data-tooltip": `Edit ${v}`
714
+ className: $("more", { active: i === "edit" }),
715
+ onClick: (m) => c(m, e),
716
+ "data-tooltip": `Edit ${w}`
672
717
  }
673
718
  ),
674
- i && i
719
+ r && r
675
720
  ]
676
721
  }
677
722
  );
678
723
  }
679
- ), at = u.div`
724
+ ), ct = p.div`
680
725
  overflow: auto;
681
726
  max-height: 40vh;
682
- `, it = u.ul`
727
+ `, dt = p.ul`
683
728
  /* reset defaults */
684
729
  margin: 0;
685
730
  padding: 0;
@@ -689,17 +734,17 @@ const He = u(ve)`
689
734
  flex-direction: column;
690
735
  gap: var(--base-gap-small);
691
736
  margin-bottom: var(--padding-s);
692
- `, ct = u.li`
737
+ `, lt = p.li`
693
738
  height: 1px;
694
739
  background-color: var(--md-sys-color-outline-variant);
695
740
  margin: 4px 0;
696
741
  `;
697
- u.li`
698
- ${Y.labelSmall}
742
+ p.li`
743
+ ${X.labelSmall}
699
744
  color: var(--md-sys-color-outline);
700
745
  `;
701
- const dt = u.li`
702
- ${Y.labelSmall}
746
+ const ut = p.li`
747
+ ${X.labelSmall}
703
748
  color: var(--md-sys-color-outline);
704
749
  user-select: none;
705
750
  border-radius: var(--border-radius-m);
@@ -734,23 +779,23 @@ const dt = u.li`
734
779
  &:hover .icon {
735
780
  display: inline-flex;
736
781
  }
737
- `, lt = U(
738
- ({ title: e, collapsed: t, className: o, ...i }, n) => /* @__PURE__ */ x(
739
- dt,
782
+ `, pt = B(
783
+ ({ title: e, collapsed: t, className: o, ...r }, n) => /* @__PURE__ */ g(
784
+ ut,
740
785
  {
741
- ...i,
742
- className: k("views-section-header", { collapsed: t }, o),
786
+ ...r,
787
+ className: $("views-section-header", { collapsed: t }, o),
743
788
  ref: n,
744
789
  children: [
745
790
  /* @__PURE__ */ d("span", { children: e }),
746
791
  /* @__PURE__ */ d("span", { className: "spacer" }),
747
- /* @__PURE__ */ d(q, { className: "icon", icon: "expand_more" })
792
+ /* @__PURE__ */ d(F, { className: "icon", icon: "expand_more" })
748
793
  ]
749
794
  }
750
795
  )
751
- ), wo = "_divider_", ut = (e) => typeof e == "object" && e !== null && "type" in e && e.type === "section", xo = U(
752
- ({ items: e, selected: t, ...o }, i) => /* @__PURE__ */ d(at, { children: /* @__PURE__ */ d(it, { ...o, ref: i, children: e.map((n, a) => n === "_divider_" ? /* @__PURE__ */ d(ct, {}, a) : ut(n) ? /* @__PURE__ */ d(
753
- lt,
796
+ ), bo = "_divider_", ht = (e) => typeof e == "object" && e !== null && "type" in e && e.type === "section", So = B(
797
+ ({ items: e, selected: t, ...o }, r) => /* @__PURE__ */ d(ct, { children: /* @__PURE__ */ d(dt, { ...o, ref: r, children: e.map((n, s) => n === "_divider_" ? /* @__PURE__ */ d(lt, {}, s) : ht(n) ? /* @__PURE__ */ d(
798
+ pt,
754
799
  {
755
800
  id: n.id,
756
801
  title: n.title,
@@ -759,59 +804,59 @@ const dt = u.li`
759
804
  },
760
805
  n.id
761
806
  ) : /* @__PURE__ */ d(
762
- st,
807
+ it,
763
808
  {
764
809
  tabIndex: 0,
765
810
  isSelected: n.id === t,
766
- autoFocus: a === 0,
811
+ autoFocus: s === 0,
767
812
  ...n
768
813
  },
769
- (n.id || "") + a.toString()
814
+ (n.id || "") + s.toString()
770
815
  )) }) })
771
- ), pt = p(null), ft = () => {
772
- const e = l(pt);
816
+ ), ft = h(null), mt = () => {
817
+ const e = u(ft);
773
818
  if (!e)
774
819
  throw new Error("useViewsContext must be used within a ViewsProvider");
775
820
  return e;
776
- }, So = 1, gt = u.div`
821
+ }, Co = 1, gt = p.div`
777
822
  min-width: 350px;
778
- `, ht = u.div`
823
+ `, vt = p.div`
779
824
  margin-top: 12px;
780
825
  min-height: 60px;
781
826
  min-width: 350px;
782
- `, mt = u.p`
827
+ `, wt = p.p`
783
828
  font-weight: 600;
784
829
  margin-bottom: 4px;
785
- `, vt = u.p`
830
+ `, xt = p.p`
786
831
  margin-top: 12px;
787
832
  font-weight: 600;
788
833
  color: var(--md-sys-color-error);
789
- `, bo = ({
834
+ `, Po = ({
790
835
  entityLabel: e,
791
836
  childrenDetails: t,
792
837
  totalLine: o,
793
- message: i
794
- }) => /* @__PURE__ */ x(gt, { children: [
795
- /* @__PURE__ */ d("p", { children: i || `Are you sure you want to delete ${e}? This action cannot be undone.` }),
796
- t.length > 0 && /* @__PURE__ */ x(ht, { children: [
797
- /* @__PURE__ */ d(mt, { children: "The following will also be affected:" }),
798
- t.map((n, a) => /* @__PURE__ */ d("p", { children: n }, a))
838
+ message: r
839
+ }) => /* @__PURE__ */ g(gt, { children: [
840
+ /* @__PURE__ */ d("p", { children: r || `Are you sure you want to delete ${e}? This action cannot be undone.` }),
841
+ t.length > 0 && /* @__PURE__ */ g(vt, { children: [
842
+ /* @__PURE__ */ d(wt, { children: "The following will also be affected:" }),
843
+ t.map((n, s) => /* @__PURE__ */ d("p", { children: n }, s))
799
844
  ] }),
800
- o && /* @__PURE__ */ d(vt, { children: o })
801
- ] }), yo = u(le)`
845
+ o && /* @__PURE__ */ d(xt, { children: o })
846
+ ] }), Eo = p(he)`
802
847
  max-height: min(600px, 90vh);
803
- `, Co = u.div`
848
+ `, Io = p.div`
804
849
  display: flex;
805
850
  flex-direction: column;
806
851
  width: 100%;
807
- `, Po = u.label`
852
+ `, Ao = p.label`
808
853
  margin: 2px 0 14px 0;
809
- `, Eo = u.div`
854
+ `, Do = p.div`
810
855
  display: flex;
811
856
  padding-top: 14px;
812
857
  gap: 8px;
813
858
  justify-content: flex-end;
814
- `, Io = u.div`
859
+ `, To = p.div`
815
860
  display: flex;
816
861
  flex-direction: column;
817
862
  gap: 8px;
@@ -820,110 +865,111 @@ const dt = u.li`
820
865
  /* scroll container clips the inputs' 2px focus outline — inset it, then pull back to keep alignment */
821
866
  padding: 4px;
822
867
  margin: -4px;
823
- `, Ao = u.label`
868
+ `, Ro = p.label`
824
869
  display: flex;
825
870
  align-items: center;
826
871
  justify-content: space-between;
827
872
  gap: 12px;
828
- `, Do = u(G)`
873
+ `, $o = p(Z)`
829
874
  width: 180px;
830
- `, To = u(G)`
875
+ `, Oo = p(Z)`
831
876
  width: 100%;
832
877
  /* room for the 2px focus outline */
833
878
  margin: 2px 0;
834
- `, wt = /* @__PURE__ */ new Set([
879
+ `, yt = /* @__PURE__ */ new Set([
835
880
  "folder",
836
881
  "task",
837
882
  "product",
838
883
  "version",
839
884
  "representation",
840
885
  "workfile"
841
- ]), Ro = (e) => !!e && wt.has(e), te = p(null), ko = () => {
842
- const e = l(te);
886
+ ]), _o = (e) => !!e && yt.has(e), re = h(null), ko = () => {
887
+ const e = u(re);
843
888
  if (!e)
844
889
  throw new Error("useDeleteEntitiesContext must be used within a DeleteEntitiesProvider");
845
890
  return e;
846
- }, Oo = () => l(te), _o = "tableExport", xt = p(null), No = () => l(xt);
891
+ }, Lo = () => u(re), No = "tableExport", bt = h(null), jo = () => u(bt);
847
892
  export {
848
- _o as $,
893
+ No as $,
849
894
  Ht as A,
850
- Ie as B,
851
- To as C,
852
- bo as D,
853
- ee as E,
854
- Co as F,
855
- Kt as G,
856
- Se as H,
857
- M as I,
858
- Me as J,
859
- Yt as K,
860
- Ne as L,
861
- Ge as M,
862
- Fe as N,
863
- Be as O,
864
- Q as P,
865
- Je as Q,
866
- ye as R,
867
- yo as S,
868
- Ve as T,
869
- qe as U,
870
- Ye as V,
871
- Te as W,
872
- be as X,
873
- Qe as Y,
874
- Re as Z,
875
- te as _,
876
- Wt as a,
877
- xt as a0,
878
- so as a1,
879
- Z as a2,
880
- uo as a3,
881
- Qt as a4,
882
- vo as a5,
883
- je as a6,
884
- Ro as a7,
885
- eo as a8,
886
- io as a9,
887
- ao as aa,
888
- mo as ab,
895
+ Kt as B,
896
+ Oo as C,
897
+ Po as D,
898
+ ne as E,
899
+ Io as F,
900
+ Re as G,
901
+ Gt as H,
902
+ Ce as I,
903
+ V as J,
904
+ Ve as K,
905
+ Xt as L,
906
+ Qe as M,
907
+ je as N,
908
+ Je as O,
909
+ te as P,
910
+ qe as Q,
911
+ Ee as R,
912
+ Eo as S,
913
+ We as T,
914
+ ze as U,
915
+ Xe as V,
916
+ Ze as W,
917
+ Oe as X,
918
+ Pe as Y,
919
+ _e as Z,
920
+ re as _,
921
+ zt as a,
922
+ bt as a0,
923
+ io as a1,
924
+ ee as a2,
925
+ ho as a3,
926
+ to as a4,
927
+ yo as a5,
928
+ Fe as a6,
929
+ _o as a7,
930
+ oo as a8,
931
+ lo as a9,
932
+ co as aa,
933
+ xo as ab,
889
934
  ko as ac,
890
- Oo as ad,
891
- We as ae,
892
- to as af,
893
- ro as ag,
894
- lo as ah,
895
- oo as ai,
896
- ho as aj,
897
- No as ak,
898
- no as al,
899
- wo as am,
900
- pt as an,
901
- lt as ao,
902
- xo as ap,
903
- st as aq,
904
- qt as b,
905
- tt as c,
906
- Jt as d,
907
- ft as e,
908
- So as f,
909
- nt as g,
910
- Po as h,
911
- Io as i,
912
- Ao as j,
913
- Do as k,
914
- Eo as l,
915
- ot as m,
916
- fo as n,
917
- ke as o,
918
- Gt as p,
935
+ Lo as ad,
936
+ vo as ae,
937
+ He as af,
938
+ no as ag,
939
+ ao as ah,
940
+ po as ai,
941
+ ro as aj,
942
+ wo as ak,
943
+ jo as al,
944
+ so as am,
945
+ bo as an,
946
+ ft as ao,
947
+ pt as ap,
948
+ So as aq,
949
+ it as ar,
950
+ Yt as b,
951
+ nt as c,
952
+ qt as d,
953
+ mt as e,
954
+ Co as f,
955
+ st as g,
956
+ Ao as h,
957
+ To as i,
958
+ Ro as j,
959
+ $o as k,
960
+ Do as l,
961
+ rt as m,
962
+ oe as n,
963
+ mo as o,
964
+ ke as p,
919
965
  Zt as q,
920
- Oe as r,
921
- Xt as s,
922
- et as t,
923
- co as u,
924
- Ue as v,
925
- _e as w,
926
- po as x,
927
- go as y,
928
- zt as z
966
+ Le as r,
967
+ eo as s,
968
+ ot as t,
969
+ uo as u,
970
+ Qt as v,
971
+ Ne as w,
972
+ Be as x,
973
+ fo as y,
974
+ go as z
929
975
  };