@camstack/addon-model-studio 1.1.238 → 1.1.240

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.
package/dist/_stub.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import "./virtualExposes-CWSi4E_g.mjs";
2
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-sSBQxj-w.mjs";
2
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-D-BYW3s3.mjs";
3
3
  import { _ as e, b as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, p as d, r as f, t as p, u as m, v as h } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-CHL8loOl.mjs";
4
- import { _ as g, a as _, b as v, c as y, d as b, f as x, g as S, i as C, l as w, m as T, o as E, p as ee, r as D, s as O, t as te, u as k, v as A, y as j } from "./responsive-DI5osE9O.mjs";
4
+ import { _ as g, a as _, b as v, c as y, d as b, f as x, g as S, i as C, l as w, m as T, o as E, p as D, r as O, s as k, t as ee, u as A, v as te, y as j } from "./responsive-DI5osE9O.mjs";
5
5
  import { d as ne, l as re, u as M } from "./scene-monitor-copy-SE_x3tUF.mjs";
6
6
  import { i as ie, r as ae } from "./player-overlays-C9fpIK6c.mjs";
7
7
  import { r as oe, t as se } from "./square-DgdMdq1t.mjs";
@@ -2298,7 +2298,7 @@ typeof globalThis < "u" && !Nr && (globalThis.__camstackTrpcReact = V);
2298
2298
  //#endregion
2299
2299
  //#region ../ui-library/src/hooks/use-live-event.ts
2300
2300
  function Pr(e, t) {
2301
- let n = A(), r = o(t);
2301
+ let n = te(), r = o(t);
2302
2302
  r.current = t;
2303
2303
  let [i, s] = a(n.connectionVersion);
2304
2304
  m(() => n.subscribeConnectionEvents((e, t) => {
@@ -3004,7 +3004,7 @@ var qr = (e, t) => {
3004
3004
  "subgrid",
3005
3005
  W,
3006
3006
  U
3007
- ], ee = () => [
3007
+ ], D = () => [
3008
3008
  "auto",
3009
3009
  { span: [
3010
3010
  "full",
@@ -3015,19 +3015,19 @@ var qr = (e, t) => {
3015
3015
  Ii,
3016
3016
  W,
3017
3017
  U
3018
- ], D = () => [
3018
+ ], O = () => [
3019
3019
  Ii,
3020
3020
  "auto",
3021
3021
  W,
3022
3022
  U
3023
- ], O = () => [
3023
+ ], k = () => [
3024
3024
  "auto",
3025
3025
  "min",
3026
3026
  "max",
3027
3027
  "fr",
3028
3028
  W,
3029
3029
  U
3030
- ], te = () => [
3030
+ ], ee = () => [
3031
3031
  "start",
3032
3032
  "end",
3033
3033
  "center",
@@ -3038,14 +3038,14 @@ var qr = (e, t) => {
3038
3038
  "baseline",
3039
3039
  "center-safe",
3040
3040
  "end-safe"
3041
- ], k = () => [
3041
+ ], A = () => [
3042
3042
  "start",
3043
3043
  "end",
3044
3044
  "center",
3045
3045
  "stretch",
3046
3046
  "center-safe",
3047
3047
  "end-safe"
3048
- ], A = () => ["auto", ...w()], j = () => [
3048
+ ], te = () => ["auto", ...w()], j = () => [
3049
3049
  Fi,
3050
3050
  "auto",
3051
3051
  "full",
@@ -3405,13 +3405,13 @@ var qr = (e, t) => {
3405
3405
  U
3406
3406
  ] }],
3407
3407
  "grid-cols": [{ "grid-cols": E() }],
3408
- "col-start-end": [{ col: ee() }],
3409
- "col-start": [{ "col-start": D() }],
3410
- "col-end": [{ "col-end": D() }],
3408
+ "col-start-end": [{ col: D() }],
3409
+ "col-start": [{ "col-start": O() }],
3410
+ "col-end": [{ "col-end": O() }],
3411
3411
  "grid-rows": [{ "grid-rows": E() }],
3412
- "row-start-end": [{ row: ee() }],
3413
- "row-start": [{ "row-start": D() }],
3414
- "row-end": [{ "row-end": D() }],
3412
+ "row-start-end": [{ row: D() }],
3413
+ "row-start": [{ "row-start": O() }],
3414
+ "row-end": [{ "row-end": O() }],
3415
3415
  "grid-flow": [{ "grid-flow": [
3416
3416
  "row",
3417
3417
  "col",
@@ -3419,24 +3419,24 @@ var qr = (e, t) => {
3419
3419
  "row-dense",
3420
3420
  "col-dense"
3421
3421
  ] }],
3422
- "auto-cols": [{ "auto-cols": O() }],
3423
- "auto-rows": [{ "auto-rows": O() }],
3422
+ "auto-cols": [{ "auto-cols": k() }],
3423
+ "auto-rows": [{ "auto-rows": k() }],
3424
3424
  gap: [{ gap: w() }],
3425
3425
  "gap-x": [{ "gap-x": w() }],
3426
3426
  "gap-y": [{ "gap-y": w() }],
3427
- "justify-content": [{ justify: [...te(), "normal"] }],
3428
- "justify-items": [{ "justify-items": [...k(), "normal"] }],
3429
- "justify-self": [{ "justify-self": ["auto", ...k()] }],
3430
- "align-content": [{ content: ["normal", ...te()] }],
3431
- "align-items": [{ items: [...k(), { baseline: ["", "last"] }] }],
3427
+ "justify-content": [{ justify: [...ee(), "normal"] }],
3428
+ "justify-items": [{ "justify-items": [...A(), "normal"] }],
3429
+ "justify-self": [{ "justify-self": ["auto", ...A()] }],
3430
+ "align-content": [{ content: ["normal", ...ee()] }],
3431
+ "align-items": [{ items: [...A(), { baseline: ["", "last"] }] }],
3432
3432
  "align-self": [{ self: [
3433
3433
  "auto",
3434
- ...k(),
3434
+ ...A(),
3435
3435
  { baseline: ["", "last"] }
3436
3436
  ] }],
3437
- "place-content": [{ "place-content": te() }],
3438
- "place-items": [{ "place-items": [...k(), "baseline"] }],
3439
- "place-self": [{ "place-self": ["auto", ...k()] }],
3437
+ "place-content": [{ "place-content": ee() }],
3438
+ "place-items": [{ "place-items": [...A(), "baseline"] }],
3439
+ "place-self": [{ "place-self": ["auto", ...A()] }],
3440
3440
  p: [{ p: w() }],
3441
3441
  px: [{ px: w() }],
3442
3442
  py: [{ py: w() }],
@@ -3448,17 +3448,17 @@ var qr = (e, t) => {
3448
3448
  pr: [{ pr: w() }],
3449
3449
  pb: [{ pb: w() }],
3450
3450
  pl: [{ pl: w() }],
3451
- m: [{ m: A() }],
3452
- mx: [{ mx: A() }],
3453
- my: [{ my: A() }],
3454
- ms: [{ ms: A() }],
3455
- me: [{ me: A() }],
3456
- mbs: [{ mbs: A() }],
3457
- mbe: [{ mbe: A() }],
3458
- mt: [{ mt: A() }],
3459
- mr: [{ mr: A() }],
3460
- mb: [{ mb: A() }],
3461
- ml: [{ ml: A() }],
3451
+ m: [{ m: te() }],
3452
+ mx: [{ mx: te() }],
3453
+ my: [{ my: te() }],
3454
+ ms: [{ ms: te() }],
3455
+ me: [{ me: te() }],
3456
+ mbs: [{ mbs: te() }],
3457
+ mbe: [{ mbe: te() }],
3458
+ mt: [{ mt: te() }],
3459
+ mr: [{ mr: te() }],
3460
+ mb: [{ mb: te() }],
3461
+ ml: [{ ml: te() }],
3462
3462
  "space-x": [{ "space-x": w() }],
3463
3463
  "space-x-reverse": ["space-x-reverse"],
3464
3464
  "space-y": [{ "space-y": w() }],
@@ -5850,11 +5850,11 @@ var ko = function() {
5850
5850
  }), h.useEffect(() => {
5851
5851
  S(!1);
5852
5852
  }, [_]);
5853
- let ee = lo({
5853
+ let D = lo({
5854
5854
  height: i,
5855
5855
  width: i
5856
- }, m), D = null;
5857
- return _ != null && (D = /* @__PURE__ */ h.createElement("img", {
5856
+ }, m), O = null;
5857
+ return _ != null && (O = /* @__PURE__ */ h.createElement("img", {
5858
5858
  src: _,
5859
5859
  key: _,
5860
5860
  style: { display: "none" },
@@ -5864,12 +5864,12 @@ var ko = function() {
5864
5864
  ref: y,
5865
5865
  crossOrigin: E?.crossOrigin
5866
5866
  })), /* @__PURE__ */ h.createElement(h.Fragment, null, /* @__PURE__ */ h.createElement("canvas", lo({
5867
- style: ee,
5867
+ style: D,
5868
5868
  height: i,
5869
5869
  width: i,
5870
5870
  ref: b,
5871
5871
  role: "img"
5872
- }, g)), D);
5872
+ }, g)), O);
5873
5873
  });
5874
5874
  Ao.displayName = "QRCodeCanvas";
5875
5875
  var jo = h.forwardRef(function(e, t) {
@@ -6675,7 +6675,7 @@ function gs({ addon: e, fields: t, layers: n, target: r, labels: i, modelId: a,
6675
6675
  children: "Settings"
6676
6676
  }),
6677
6677
  /* @__PURE__ */ B("span", {
6678
- className: ee,
6678
+ className: D,
6679
6679
  children: ["editing: ", i[r] ?? r]
6680
6680
  }),
6681
6681
  /* @__PURE__ */ B("span", {
@@ -7099,7 +7099,7 @@ function ec({ label: e, children: t, actions: n, elements: r = "plain", classNam
7099
7099
  children: e
7100
7100
  }), /* @__PURE__ */ B(s, {
7101
7101
  "data-setting-row-value": "",
7102
- className: k,
7102
+ className: A,
7103
7103
  children: [/* @__PURE__ */ z("span", {
7104
7104
  "data-setting-row-value-text": "",
7105
7105
  className: G(b, a),
@@ -7155,64 +7155,65 @@ var sc = {
7155
7155
  right: "text-right",
7156
7156
  center: "text-center"
7157
7157
  };
7158
- function cc({ columns: e, rows: t, rowKey: n, onRowClick: r, minWidthPx: i = 480, emptyMessage: o, className: s, bordered: c = !0, rowClassName: u, mobileMode: d = "scroll", maxBodyHeight: f, defaultSort: p, sort: m, onSortChange: h, pageSize: g, page: _, onPageChange: v, paginationLabels: y = Ys, selection: b }) {
7159
- let x = Ms(), [S, C] = a(p ?? null), [w, T] = a(0), E = m === void 0 ? S : m, ee = (e) => {
7160
- m === void 0 && C(e), h?.(e);
7161
- }, D = (e) => {
7162
- _ === void 0 && T(e), v?.(e);
7163
- }, O = Ks({
7158
+ function cc({ columns: e, rows: t, rowKey: n, onRowClick: r, minWidthPx: i = 480, emptyMessage: o, className: s, bordered: c = !0, rowClassName: u, mobileMode: d = "scroll", maxBodyHeight: f, fill: p = !1, defaultSort: m, sort: h, onSortChange: g, pageSize: _, page: v, onPageChange: y, paginationLabels: b = Ys, selection: x }) {
7159
+ let S = Ms(), [C, w] = a(m ?? null), [T, E] = a(0), D = h === void 0 ? C : h, O = (e) => {
7160
+ h === void 0 && w(e), g?.(e);
7161
+ }, k = (e) => {
7162
+ v === void 0 && E(e), y?.(e);
7163
+ }, ee = Ks({
7164
7164
  mode: d,
7165
7165
  columnCount: e.length,
7166
- isNarrow: x
7167
- }), te = f !== void 0, k = l(() => E === null ? void 0 : e.find((e) => e.key === E.columnKey && e.sortValue !== void 0), [e, E]), A = k?.sortValue, j = l(() => A === void 0 ? t : ac(t, E, A), [
7166
+ isNarrow: S
7167
+ }), A = p || f !== void 0, te = p ? "h-full min-h-0" : f ?? "", j = l(() => D === null ? void 0 : e.find((e) => e.key === D.columnKey && e.sortValue !== void 0), [e, D]), ne = j?.sortValue, re = l(() => ne === void 0 ? t : ac(t, D, ne), [
7168
7168
  t,
7169
- E,
7170
- A
7171
- ]), ne = k === void 0 ? null : E, re = g === void 0 ? null : Js(j, _ ?? w, g), M = re === null ? j : re.pageRows, ie = re !== null && re.pageCount > 1 ? /* @__PURE__ */ z(qs, {
7172
- page: re,
7173
- labels: y,
7174
- onPageChange: D
7175
- }) : null, ae = b === void 0 ? e : [$s(b, M, (e) => String(n ? n(e, t.indexOf(e)) : t.indexOf(e))), ...e];
7169
+ D,
7170
+ ne
7171
+ ]), M = j === void 0 ? null : D, ie = _ === void 0 ? null : Js(re, v ?? T, _), ae = ie === null ? re : ie.pageRows, oe = ie !== null && ie.pageCount > 1 ? /* @__PURE__ */ z(qs, {
7172
+ page: ie,
7173
+ labels: b,
7174
+ onPageChange: k
7175
+ }) : null, se = x === void 0 ? e : [$s(x, ae, (e) => String(n ? n(e, t.indexOf(e)) : t.indexOf(e))), ...e];
7176
7176
  if (t.length === 0 && o) return /* @__PURE__ */ z("div", {
7177
7177
  className: `rounded-lg ${c ? "border border-border" : ""} bg-surface px-3 py-4 text-xs text-foreground-subtle text-center ${s ?? ""}`,
7178
7178
  children: o
7179
7179
  });
7180
7180
  if (t.length === 0) return null;
7181
- if (O === "cards") return /* @__PURE__ */ B("div", {
7182
- className: s,
7181
+ if (ee === "cards") return /* @__PURE__ */ B("div", {
7182
+ className: p ? `flex min-h-0 flex-1 flex-col ${s ?? ""}` : s,
7183
7183
  children: [/* @__PURE__ */ z("div", {
7184
- className: `space-y-2 ${te ? `${f} overflow-y-auto` : ""}`,
7185
- children: M.map((e, t) => /* @__PURE__ */ z(lc, {
7184
+ className: `space-y-2 ${A ? `${te} overflow-y-auto` : ""} ${p ? "min-h-0 flex-1" : ""}`,
7185
+ children: ae.map((e, t) => /* @__PURE__ */ z(lc, {
7186
7186
  row: e,
7187
7187
  rowIndex: t,
7188
- columns: ae,
7188
+ columns: se,
7189
7189
  bordered: c,
7190
7190
  onRowClick: r,
7191
7191
  rowClassName: u
7192
7192
  }, n ? n(e, t) : t))
7193
- }), ie]
7193
+ }), oe]
7194
7194
  });
7195
- let oe = /* @__PURE__ */ z("div", {
7195
+ let N = /* @__PURE__ */ z("div", {
7196
7196
  className: [
7197
7197
  "rounded-lg",
7198
7198
  c ? "border border-border" : "",
7199
7199
  "bg-surface overflow-x-auto",
7200
- te ? `${f} overflow-y-auto` : "",
7201
- ie === null ? s ?? "" : ""
7200
+ A ? `${te} overflow-y-auto` : "",
7201
+ p ? "min-h-0 flex-1" : "",
7202
+ !p && oe === null ? s ?? "" : ""
7202
7203
  ].filter(Boolean).join(" "),
7203
7204
  children: /* @__PURE__ */ B("table", {
7204
- className: `w-full text-xs ${te ? "border-separate border-spacing-0" : ""}`,
7205
+ className: `w-full text-xs ${A ? "border-separate border-spacing-0" : ""}`,
7205
7206
  style: { minWidth: `${i}px` },
7206
7207
  children: [/* @__PURE__ */ z("thead", {
7207
7208
  className: "bg-surface",
7208
- children: /* @__PURE__ */ z("tr", { children: ae.map((e) => {
7209
- let t = e.align ?? "left", n = e.nowrap ?? !0, r = e.sortValue !== void 0, i = ne !== null && ne.columnKey === e.key;
7209
+ children: /* @__PURE__ */ z("tr", { children: se.map((e) => {
7210
+ let t = e.align ?? "left", n = e.nowrap ?? !0, r = e.sortValue !== void 0, i = M !== null && M.columnKey === e.key;
7210
7211
  return /* @__PURE__ */ z("th", {
7211
- "aria-sort": r ? oc(ne, e.key) : void 0,
7212
+ "aria-sort": r ? oc(M, e.key) : void 0,
7212
7213
  title: r ? void 0 : e.notSortableReason,
7213
7214
  className: [
7214
7215
  "px-3 py-2 text-foreground-subtle font-medium bg-surface border-b border-border",
7215
- te ? "sticky top-0 z-10" : "",
7216
+ A ? "sticky top-0 z-10" : "",
7216
7217
  sc[t],
7217
7218
  n ? "whitespace-nowrap" : "",
7218
7219
  e.width ?? ""
@@ -7220,17 +7221,17 @@ function cc({ columns: e, rows: t, rowKey: n, onRowClick: r, minWidthPx: i = 480
7220
7221
  children: r ? /* @__PURE__ */ z(tc, {
7221
7222
  label: e.headerRender ? e.headerRender() : e.header,
7222
7223
  active: i,
7223
- dir: i && ne !== null ? ne.dir : "asc",
7224
- onSort: () => ee(rc(E, e.key))
7224
+ dir: i && M !== null ? M.dir : "asc",
7225
+ onSort: () => O(rc(D, e.key))
7225
7226
  }) : e.headerRender ? e.headerRender() : e.header
7226
7227
  }, e.key);
7227
7228
  }) })
7228
- }), /* @__PURE__ */ z("tbody", { children: M.map((e, t) => {
7229
+ }), /* @__PURE__ */ z("tbody", { children: ae.map((e, t) => {
7229
7230
  let i = n ? n(e, t) : t, a = u?.(e, t) ?? "", o = r !== void 0;
7230
7231
  return /* @__PURE__ */ z("tr", {
7231
7232
  onClick: o ? () => r(e, t) : void 0,
7232
7233
  className: [o ? "cursor-pointer hover:bg-primary/5" : "hover:bg-primary/5", a].filter(Boolean).join(" "),
7233
- children: ae.map((n) => {
7234
+ children: se.map((n) => {
7234
7235
  let r = n.align ?? "left", i = n.nowrap ?? !0;
7235
7236
  return /* @__PURE__ */ z("td", {
7236
7237
  "data-cell": n.key,
@@ -7246,9 +7247,12 @@ function cc({ columns: e, rows: t, rowKey: n, onRowClick: r, minWidthPx: i = 480
7246
7247
  }) })]
7247
7248
  })
7248
7249
  });
7249
- return ie === null ? oe : /* @__PURE__ */ B("div", {
7250
- className: s,
7251
- children: [oe, ie]
7250
+ return oe === null ? p ? /* @__PURE__ */ z("div", {
7251
+ className: `flex min-h-0 flex-1 flex-col ${s ?? ""}`,
7252
+ children: N
7253
+ }) : N : /* @__PURE__ */ B("div", {
7254
+ className: p ? `flex min-h-0 flex-1 flex-col ${s ?? ""}` : s,
7255
+ children: [N, oe]
7252
7256
  });
7253
7257
  }
7254
7258
  function lc({ row: e, rowIndex: t, columns: n, bordered: r, onRowClick: i, rowClassName: a }) {
@@ -7902,25 +7906,25 @@ function Nl(e, t) {
7902
7906
  return t ? (Al[e] ?? 0) >= (Al[t] ?? 0) : !0;
7903
7907
  }
7904
7908
  function Pl({ agentId: e, addonId: t, deviceId: r, containerDeviceId: i, integrationId: s, requestId: c, level: u, maxHeight: f = "max-h-96", showScope: p = !1, showDeviceChip: h = !1, showFilters: g = !0, limit: _ = 100, liveBuffer: v, onClose: y, className: b }) {
7905
- let [x, S] = a(""), [C, w] = a(""), [T, E] = a(u ?? "info"), ee = e, D = t ?? (x || void 0), O = r ?? (C ? Number(C) : void 0), te = s, k = c, A = l(() => {
7909
+ let [x, S] = a(""), [C, w] = a(""), [T, E] = a(u ?? "info"), D = e, O = t ?? (x || void 0), k = r ?? (C ? Number(C) : void 0), ee = s, A = c, te = l(() => {
7906
7910
  let e = {};
7907
- return ee && (e.agentId = ee), D && (e.addonId = D), i !== void 0 && Number.isFinite(i) ? e.containerDeviceId = i : O !== void 0 && Number.isFinite(O) && (e.deviceId = O), te && (e.integrationId = te), k && (e.requestId = k), Object.keys(e).length > 0 ? e : void 0;
7911
+ return D && (e.agentId = D), O && (e.addonId = O), i !== void 0 && Number.isFinite(i) ? e.containerDeviceId = i : k !== void 0 && Number.isFinite(k) && (e.deviceId = k), ee && (e.integrationId = ee), A && (e.requestId = A), Object.keys(e).length > 0 ? e : void 0;
7908
7912
  }, [
7909
- ee,
7910
7913
  D,
7911
7914
  O,
7915
+ k,
7912
7916
  i,
7913
- te,
7914
- k
7915
- ]), j = El(Ml), ne = v ?? j, re = ne.entries, [M, oe] = a(0), [se, P] = a(!0), ce = o(!1), [le, F] = a(!1), [ue, de] = a(!1), [fe, pe] = a(/* @__PURE__ */ new Set()), [me, he] = a(""), I = o(null), ge = `${ee ?? ""}:${D ?? ""}:${String(O ?? "")}:${String(i ?? "")}:${te ?? ""}:${k ?? ""}`, _e = o(ge);
7917
+ ee,
7918
+ A
7919
+ ]), j = El(Ml), ne = v ?? j, re = ne.entries, [M, oe] = a(0), [se, P] = a(!0), ce = o(!1), [le, F] = a(!1), [ue, de] = a(!1), [fe, pe] = a(/* @__PURE__ */ new Set()), [me, he] = a(""), I = o(null), ge = `${D ?? ""}:${O ?? ""}:${String(k ?? "")}:${String(i ?? "")}:${ee ?? ""}:${A ?? ""}`, _e = o(ge);
7916
7920
  m(() => {
7917
7921
  _e.current !== ge && (_e.current = ge, ne.reset(), oe(0), pe(/* @__PURE__ */ new Set()), F(!1));
7918
7922
  }, [ge, ne]);
7919
7923
  let { data: ve, isLoading: ye } = V.logs.query.useQuery({
7920
- ...A ? { tags: A } : {},
7924
+ ...te ? { tags: te } : {},
7921
7925
  limit: _
7922
7926
  }, { staleTime: 3e4 });
7923
- V.logs.subscribe.useSubscription(A ? { tags: A } : {}, { onData: (e) => {
7927
+ V.logs.subscribe.useSubscription(te ? { tags: te } : {}, { onData: (e) => {
7924
7928
  ne.append(e);
7925
7929
  } });
7926
7930
  let be = l(() => {
@@ -7990,11 +7994,11 @@ function Pl({ agentId: e, addonId: t, deviceId: r, containerDeviceId: i, integra
7990
7994
  de(!0), setTimeout(() => de(!1), 1500);
7991
7995
  });
7992
7996
  }, [be]), R = V.logs.clear.useMutation(), ke = n(() => {
7993
- oe(Date.now()), ne.reset(), R.mutate(A ? { tags: A } : {});
7997
+ oe(Date.now()), ne.reset(), R.mutate(te ? { tags: te } : {});
7994
7998
  }, [
7995
7999
  ne,
7996
8000
  R,
7997
- A
8001
+ te
7998
8002
  ]), Ae = n((e) => {
7999
8003
  pe((t) => {
8000
8004
  let n = new Set(t);
@@ -8019,17 +8023,17 @@ function Pl({ agentId: e, addonId: t, deviceId: r, containerDeviceId: i, integra
8019
8023
  className: "text-[10px] uppercase tracking-wide text-foreground-subtle font-medium",
8020
8024
  children: "Logs"
8021
8025
  }),
8022
- ee && /* @__PURE__ */ z(Il, {
8026
+ D && /* @__PURE__ */ z(Il, {
8023
8027
  label: "agent",
8024
- value: ee
8028
+ value: D
8025
8029
  }),
8026
- D && /* @__PURE__ */ z(Il, {
8030
+ O && /* @__PURE__ */ z(Il, {
8027
8031
  label: "addon",
8028
- value: D
8032
+ value: O
8029
8033
  }),
8030
- O !== void 0 && /* @__PURE__ */ z(Il, {
8034
+ k !== void 0 && /* @__PURE__ */ z(Il, {
8031
8035
  label: "device",
8032
- value: `#${O}`
8036
+ value: `#${k}`
8033
8037
  }),
8034
8038
  /* @__PURE__ */ z("div", {
8035
8039
  className: "flex rounded border border-border overflow-hidden text-[9px]",
@@ -8605,7 +8609,7 @@ function cu({ trpc: e, deviceId: t, layout: n, optimistic: r, features: i }) {
8605
8609
  }
8606
8610
  }, E = () => {
8607
8611
  p || f(null);
8608
- }, ee = async () => {
8612
+ }, D = async () => {
8609
8613
  if (!(p || d === null)) {
8610
8614
  g(null), m(!0);
8611
8615
  try {
@@ -8616,14 +8620,14 @@ function cu({ trpc: e, deviceId: t, layout: n, optimistic: r, features: i }) {
8616
8620
  m(!1);
8617
8621
  }
8618
8622
  }
8619
- }, D = _ ? "Unlock" : "Lock", O = d === "open" ? "Open door?" : "Unlock device?", te = d === "open" ? "This will release the latch and open the door." : "This will unlock the device.", k = d === "open" ? "Confirm open" : "Confirm unlock", A = z(d === "open" ? Jt : vn, { className: "h-4 w-4 text-amber-400" });
8623
+ }, O = _ ? "Unlock" : "Lock", k = d === "open" ? "Open door?" : "Unlock device?", ee = d === "open" ? "This will release the latch and open the door." : "This will unlock the device.", A = d === "open" ? "Confirm open" : "Confirm unlock", te = z(d === "open" ? Jt : vn, { className: "h-4 w-4 text-amber-400" });
8620
8624
  return /* @__PURE__ */ B("div", {
8621
8625
  className: G("inline-flex items-center", n === "full" ? "gap-2" : "gap-1"),
8622
8626
  children: [
8623
8627
  /* @__PURE__ */ B("button", {
8624
8628
  type: "button",
8625
- "aria-label": D,
8626
- title: l.state === "jammed" ? "Jammed" : D,
8629
+ "aria-label": O,
8630
+ title: l.state === "jammed" ? "Jammed" : O,
8627
8631
  disabled: v,
8628
8632
  onClick: (e) => {
8629
8633
  e.stopPropagation(), w();
@@ -8653,8 +8657,8 @@ function cu({ trpc: e, deviceId: t, layout: n, optimistic: r, features: i }) {
8653
8657
  children: [
8654
8658
  /* @__PURE__ */ B(eo, { children: [/* @__PURE__ */ B(no, {
8655
8659
  className: "flex items-center gap-2",
8656
- children: [A, O]
8657
- }), /* @__PURE__ */ z(ro, { children: te })] }),
8660
+ children: [te, k]
8661
+ }), /* @__PURE__ */ z(ro, { children: ee })] }),
8658
8662
  h !== null && /* @__PURE__ */ z("div", {
8659
8663
  className: "mt-2 px-3 py-2 rounded border border-danger/40 bg-danger/10 text-xs text-danger",
8660
8664
  children: h
@@ -8670,12 +8674,12 @@ function cu({ trpc: e, deviceId: t, layout: n, optimistic: r, features: i }) {
8670
8674
  type: "button",
8671
8675
  variant: "danger",
8672
8676
  size: "sm",
8673
- "aria-label": k,
8677
+ "aria-label": A,
8674
8678
  disabled: p,
8675
8679
  onClick: () => {
8676
- ee();
8680
+ D();
8677
8681
  },
8678
- children: [p && /* @__PURE__ */ z(_n, { className: "h-3.5 w-3.5 animate-spin" }), k]
8682
+ children: [p && /* @__PURE__ */ z(_n, { className: "h-3.5 w-3.5 animate-spin" }), A]
8679
8683
  })] })
8680
8684
  ]
8681
8685
  })
@@ -18862,27 +18866,27 @@ var Yx = f(function({ tree: e, agents: t, getCellState: n, onCellClick: r, onSte
18862
18866
  u,
18863
18867
  _,
18864
18868
  t
18865
- ]), [E, ee] = a({
18869
+ ]), [E, D] = a({
18866
18870
  r: 0,
18867
18871
  c: 0
18868
18872
  });
18869
18873
  m(() => {
18870
- T !== null && ee(T);
18874
+ T !== null && D(T);
18871
18875
  }, [T]);
18872
- let D = E.r < _.length && E.c < S ? E : {
18876
+ let O = E.r < _.length && E.c < S ? E : {
18873
18877
  r: 0,
18874
18878
  c: 0
18875
- }, O = (e, t) => {
18879
+ }, k = (e, t) => {
18876
18880
  y.current?.querySelector(`[data-r="${e}"][data-c="${t}"]`)?.focus();
18877
18881
  };
18878
18882
  return i(g, () => ({ focusCell: (e, n) => {
18879
18883
  let r = _.findIndex((t) => t.node.addonId === e);
18880
18884
  if (r < 0) return;
18881
18885
  let i = n === null ? -1 : t.findIndex((e) => Ax(e) === n), a = i < 0 ? 0 : i + 1;
18882
- ee({
18886
+ D({
18883
18887
  r,
18884
18888
  c: a
18885
- }), O(r, a);
18889
+ }), k(r, a);
18886
18890
  } }), [_, t]), d(() => {
18887
18891
  if (T === null) return;
18888
18892
  let e = y.current, t = e?.querySelector(`[data-r="${T.r}"][data-c="${T.c}"]`);
@@ -18913,7 +18917,7 @@ var Yx = f(function({ tree: e, agents: t, getCellState: n, onCellClick: r, onSte
18913
18917
  r: Number(e.target.dataset.r),
18914
18918
  c: Number(e.target.dataset.c)
18915
18919
  }, n = Kx(e.key, t, _.length, S);
18916
- n !== null && (e.preventDefault(), ee(n), O(n.r, n.c));
18920
+ n !== null && (e.preventDefault(), D(n), k(n.r, n.c));
18917
18921
  },
18918
18922
  children: [/* @__PURE__ */ B("div", {
18919
18923
  role: "row",
@@ -18937,7 +18941,7 @@ var Yx = f(function({ tree: e, agents: t, getCellState: n, onCellClick: r, onSte
18937
18941
  node: e,
18938
18942
  depth: i,
18939
18943
  r: a,
18940
- tabbable: D.r === a && D.c === 0,
18944
+ tabbable: O.r === a && O.c === 0,
18941
18945
  selected: u?.addonId === e.addonId,
18942
18946
  badge: c?.(e.addonId),
18943
18947
  onClick: s ? (t) => s(e.addonId, t) : void 0,
@@ -18953,7 +18957,7 @@ var Yx = f(function({ tree: e, agents: t, getCellState: n, onCellClick: r, onSte
18953
18957
  "data-c": i + 1,
18954
18958
  "data-step": e.addonId,
18955
18959
  "data-col": Ax(t),
18956
- tabIndex: D.r === a && D.c === i + 1 ? 0 : -1,
18960
+ tabIndex: O.r === a && O.c === i + 1 ? 0 : -1,
18957
18961
  "aria-disabled": !c,
18958
18962
  "aria-selected": s,
18959
18963
  onClick: (n) => {
@@ -19020,15 +19024,15 @@ f(function({ tree: e, agents: t, getCellState: n, onCellClick: r, selectedCell:
19020
19024
  function Xx({ selectedNodeId: e, onSelect: t, label: n = "Node", hideIcon: r = !1, alwaysShow: i = !1, allowOffline: a = !1 }) {
19021
19025
  let { nodes: o } = Rr(), s = Pa(void 0), c = l(() => Ws(s.data), [s.data]);
19022
19026
  return !i && o.length <= 1 ? null : /* @__PURE__ */ B("div", {
19023
- className: "flex items-center gap-1.5",
19027
+ className: "flex h-7 items-center gap-1.5",
19024
19028
  children: [
19025
- !r && /* @__PURE__ */ z(Kn, { className: "h-3.5 w-3.5 text-foreground-subtle" }),
19026
- n && /* @__PURE__ */ z("span", {
19029
+ !r && /* @__PURE__ */ z(Kn, { className: "h-3.5 w-3.5 shrink-0 text-foreground-subtle" }),
19030
+ n ? /* @__PURE__ */ z("span", {
19027
19031
  className: "text-[10px] uppercase tracking-wider text-foreground-subtle",
19028
19032
  children: n
19029
- }),
19033
+ }) : null,
19030
19034
  /* @__PURE__ */ z("div", {
19031
- className: "flex rounded-md border border-border overflow-hidden text-[11px] font-medium",
19035
+ className: "flex h-7 overflow-hidden rounded-md border border-border text-xs font-medium",
19032
19036
  children: o.map((n, r) => {
19033
19037
  let i = e === n.id, o = Gs(c, n.id), s = !a && !n.isOnline;
19034
19038
  return /* @__PURE__ */ z("button", {
@@ -19036,7 +19040,7 @@ function Xx({ selectedNodeId: e, onSelect: t, label: n = "Node", hideIcon: r = !
19036
19040
  onClick: () => t(n.id),
19037
19041
  disabled: s,
19038
19042
  title: n.isOnline ? n.name : `${n.name} (offline)`,
19039
- className: G("px-2.5 py-1 transition-colors", i ? G(Hs(o), Vs(o)) : G("bg-transparent hover:bg-surface-hover", Vs(o), !s && "opacity-70 hover:opacity-100"), r > 0 && "border-l border-border", s && "opacity-50 cursor-not-allowed"),
19043
+ className: G("inline-flex h-7 items-center px-2.5 transition-colors", i ? G(Hs(o), Vs(o)) : G("bg-transparent hover:bg-surface-hover", Vs(o), !s && "opacity-70 hover:opacity-100"), r > 0 && "border-l border-border", s && "cursor-not-allowed opacity-50"),
19040
19044
  children: n.shortName
19041
19045
  }, n.id);
19042
19046
  })
@@ -19046,13 +19050,13 @@ function Xx({ selectedNodeId: e, onSelect: t, label: n = "Node", hideIcon: r = !
19046
19050
  }
19047
19051
  //#endregion
19048
19052
  //#region ../ui-library/src/composites/page-shell.tsx
19049
- function Zx({ icon: e, title: t, subtitle: n, actions: r, nav: i, className: a, children: o }) {
19050
- let s = !!t || n != null || r != null, c = s || i != null;
19053
+ function Zx({ icon: e, title: t, subtitle: n, actions: r, nav: i, fill: a = !1, className: o, children: s }) {
19054
+ let c = !!t || n != null || r != null, l = c || i != null;
19051
19055
  return /* @__PURE__ */ B("div", {
19052
- className: G("space-y-4 overflow-x-clip p-2 sm:p-4", a),
19053
- children: [c && /* @__PURE__ */ B("div", {
19054
- className: "space-y-3",
19055
- children: [s && /* @__PURE__ */ B("div", {
19056
+ className: G("overflow-x-clip p-2 sm:p-4", a ? "flex h-full min-h-0 flex-col gap-4" : "space-y-4", o),
19057
+ children: [l && /* @__PURE__ */ B("div", {
19058
+ className: "shrink-0 space-y-3",
19059
+ children: [c && /* @__PURE__ */ B("div", {
19056
19060
  className: "flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between sm:gap-4",
19057
19061
  children: [/* @__PURE__ */ B("div", {
19058
19062
  className: "min-w-0",
@@ -19071,10 +19075,16 @@ function Zx({ icon: e, title: t, subtitle: n, actions: r, nav: i, className: a,
19071
19075
  children: r
19072
19076
  })]
19073
19077
  }), i]
19074
- }), o]
19078
+ }), a ? /* @__PURE__ */ z("div", {
19079
+ className: "flex min-h-0 flex-1 flex-col gap-3",
19080
+ children: s
19081
+ }) : s]
19075
19082
  });
19076
19083
  }
19077
19084
  //#endregion
19085
+ //#region ../ui-library/src/composites/sectioned-page.tsx
19086
+ t(), t();
19087
+ //#endregion
19078
19088
  //#region ../ui-library/src/composites/section-toolbar.tsx
19079
19089
  function Qx({ start: e, end: t, className: n, testId: r }) {
19080
19090
  return /* @__PURE__ */ B("div", {
@@ -19112,7 +19122,7 @@ function tS(e) {
19112
19122
  }
19113
19123
  //#endregion
19114
19124
  //#region ../ui-library/src/composites/step-inspector/step-inspector-panel.tsx
19115
- t(), t(), t(), G(C, "min-w-0 max-w-full gap-1.5 py-1 pl-1 pr-2.5 text-xs font-normal", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40"), G(D, "font-medium"), t(), t(), t(), t(), t();
19125
+ t(), t(), t(), G(C, "min-w-0 max-w-full gap-1.5 py-1 pl-1 pr-2.5 text-xs font-normal", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40"), G(O, "font-medium"), t(), t(), t(), t(), t();
19116
19126
  function nS({ dirtyCount: e, saving: t, status: n, error: r, onSave: i, onDiscard: a, scope: o }) {
19117
19127
  let s = e > 0, c = t ? "Saving…" : s ? `${e} unsaved change${e === 1 ? "" : "s"}` : n === "saved" ? "Saved" : n === "error" ? r ?? "Save failed" : "No unsaved changes";
19118
19128
  return /* @__PURE__ */ B("footer", {
@@ -20048,7 +20058,9 @@ async function qC(e, t) {
20048
20058
  function JC({ selectedNodeId: e, onSelect: t }) {
20049
20059
  return /* @__PURE__ */ z(Xx, {
20050
20060
  selectedNodeId: e,
20051
- onSelect: t
20061
+ onSelect: t,
20062
+ hideIcon: !0,
20063
+ label: ""
20052
20064
  });
20053
20065
  }
20054
20066
  //#endregion
@@ -20667,7 +20679,7 @@ var Hw = [
20667
20679
  label: "Test"
20668
20680
  }];
20669
20681
  function Ww({ trpc: e, landNodeId: t, onImported: r }) {
20670
- let i = uw(), [s, c] = a(null), [u, d] = a([]), [f, p] = a(null), [h, g] = a({}), [_, v] = a({}), [y, b] = a(null), [x, S] = a(null), [C, w] = a(null), [T, E] = a("relu"), [ee, D] = a(""), [O, te] = a(""), [k, A] = a(null), [j, ne] = a(""), re = o(0), M = o(!1), ie = t !== void 0 && t.length > 0 ? t : j.length > 0 ? j : void 0, ae = n(async () => {
20682
+ let i = uw(), [s, c] = a(null), [u, d] = a([]), [f, p] = a(null), [h, g] = a({}), [_, v] = a({}), [y, b] = a(null), [x, S] = a(null), [C, w] = a(null), [T, E] = a("relu"), [D, O] = a(""), [k, ee] = a(""), [A, te] = a(null), [j, ne] = a(""), re = o(0), M = o(!1), ie = t !== void 0 && t.length > 0 ? t : j.length > 0 ? j : void 0, ae = n(async () => {
20671
20683
  let t = ++re.current;
20672
20684
  b(null);
20673
20685
  try {
@@ -20684,7 +20696,7 @@ function Ww({ trpc: e, landNodeId: t, onImported: r }) {
20684
20696
  a
20685
20697
  ]);
20686
20698
  if (t !== re.current) return;
20687
- if (c(o.entries), d(o.drift), A(u), u.length > 0 && ne((e) => e.length > 0 && u.includes(e) ? e : u[0]), s.ok) {
20699
+ if (c(o.entries), d(o.drift), te(u), u.length > 0 && ne((e) => e.length > 0 && u.includes(e) ? e : u[0]), s.ok) {
20688
20700
  p(new Set(s.value.map((e) => e.entry.id)));
20689
20701
  let e = {};
20690
20702
  for (let t of s.value) e[t.entry.id] = zS(t.entry);
@@ -20703,9 +20715,9 @@ function Ww({ trpc: e, landNodeId: t, onImported: r }) {
20703
20715
  m(() => {
20704
20716
  ae();
20705
20717
  }, [ae]);
20706
- let oe = l(() => (s ?? []).filter((e) => e.variant === T), [s, T]), se = l(() => Mw(oe), [oe]), N = l(() => new Map(se.map((e) => [e.id, e])), [se]), P = ee.length > 0 && N.has(ee) ? ee : se[0]?.id ?? "", ce = n(async (n) => {
20707
- if (M.current || Vw(O)) return;
20708
- let a = Bw(O);
20718
+ let oe = l(() => (s ?? []).filter((e) => e.variant === T), [s, T]), se = l(() => Mw(oe), [oe]), N = l(() => new Map(se.map((e) => [e.id, e])), [se]), P = D.length > 0 && N.has(D) ? D : se[0]?.id ?? "", ce = n(async (n) => {
20719
+ if (M.current || Vw(k)) return;
20720
+ let a = Bw(k);
20709
20721
  M.current = !0, S(n.id), w(null);
20710
20722
  let o = n.format === "tflite" ? ie : t !== void 0 && t.length > 0 ? t : void 0;
20711
20723
  try {
@@ -20758,7 +20770,7 @@ function Ww({ trpc: e, landNodeId: t, onImported: r }) {
20758
20770
  ie,
20759
20771
  t,
20760
20772
  i,
20761
- O
20773
+ k
20762
20774
  ]);
20763
20775
  if (s === null && y === null) return /* @__PURE__ */ z("div", {
20764
20776
  "data-testid": "scrypted-tab",
@@ -20800,7 +20812,7 @@ function Ww({ trpc: e, landNodeId: t, onImported: r }) {
20800
20812
  className: "text-[11px] text-foreground-subtle",
20801
20813
  children: "Local Scrypted YOLO catalog. Import lands on the selected node."
20802
20814
  }),
20803
- t === void 0 && k !== null && k.length > 0 && /* @__PURE__ */ B("label", {
20815
+ t === void 0 && A !== null && A.length > 0 && /* @__PURE__ */ B("label", {
20804
20816
  className: "flex items-center gap-2 text-[11px] text-foreground",
20805
20817
  children: [/* @__PURE__ */ z("span", {
20806
20818
  className: "text-foreground-subtle uppercase tracking-wide text-[10px]",
@@ -20809,13 +20821,13 @@ function Ww({ trpc: e, landNodeId: t, onImported: r }) {
20809
20821
  className: "bg-surface border border-border rounded px-2 py-0.5 text-[11px]",
20810
20822
  value: j,
20811
20823
  onChange: (e) => ne(e.target.value),
20812
- children: k.map((e) => /* @__PURE__ */ z("option", {
20824
+ children: A.map((e) => /* @__PURE__ */ z("option", {
20813
20825
  value: e,
20814
20826
  children: e
20815
20827
  }, e))
20816
20828
  })]
20817
20829
  }),
20818
- t === void 0 && k !== null && k.length === 0 && /* @__PURE__ */ z("p", {
20830
+ t === void 0 && A !== null && A.length === 0 && /* @__PURE__ */ z("p", {
20819
20831
  className: "text-[11px] text-warning",
20820
20832
  children: "No Coral node — TFLite registers only."
20821
20833
  }),
@@ -20839,19 +20851,19 @@ function Ww({ trpc: e, landNodeId: t, onImported: r }) {
20839
20851
  count: (s ?? []).filter((t) => t.variant === e.value).length
20840
20852
  })),
20841
20853
  onChange: (e) => {
20842
- (e === "relu" || e === "relu_test") && (E(e), D(""));
20854
+ (e === "relu" || e === "relu_test") && (E(e), O(""));
20843
20855
  },
20844
20856
  compactWhenSingle: !1
20845
20857
  }],
20846
20858
  catalog: se,
20847
20859
  value: P,
20848
- onChange: D,
20860
+ onChange: O,
20849
20861
  emptyMessage: "No Scrypted artifacts for this variant.",
20850
20862
  actionRow: le && ue.length > 0 ? /* @__PURE__ */ B("div", {
20851
20863
  className: "space-y-2",
20852
20864
  children: [/* @__PURE__ */ z(zw, {
20853
- value: O,
20854
- onChange: te,
20865
+ value: k,
20866
+ onChange: ee,
20855
20867
  defaultName: le.name
20856
20868
  }), /* @__PURE__ */ z(Rw, {
20857
20869
  entries: ue,
@@ -22089,7 +22101,7 @@ function zT({ trpc: e, refreshKey: t, nodeId: r }) {
22089
22101
  return !n && Object.keys(e).length === Object.keys(t).length ? e : t;
22090
22102
  });
22091
22103
  }, [w, T]);
22092
- let E = uw(), ee = n(async (t, n) => {
22104
+ let E = uw(), D = n(async (t, n) => {
22093
22105
  if (IT(n)) {
22094
22106
  g(`${t.stepId}/${t.modelId}/${n}`), v(null);
22095
22107
  try {
@@ -22170,7 +22182,7 @@ function zT({ trpc: e, refreshKey: t, nodeId: r }) {
22170
22182
  ...n,
22171
22183
  [e]: t
22172
22184
  })),
22173
- onDownload: (e, t) => void ee(e, t)
22185
+ onDownload: (e, t) => void D(e, t)
22174
22186
  })
22175
22187
  ]
22176
22188
  });
@@ -22183,6 +22195,7 @@ function BT({ trpc: e, refreshKey: t, source: n, onSourceChange: r, onRegistered
22183
22195
  children: [
22184
22196
  /* @__PURE__ */ z(Qx, {
22185
22197
  testId: "catalog-toolbar",
22198
+ className: "sm:items-end",
22186
22199
  start: /* @__PURE__ */ z("div", {
22187
22200
  className: "flex flex-wrap gap-1",
22188
22201
  "data-testid": "catalog-source",
@@ -22193,7 +22206,7 @@ function BT({ trpc: e, refreshKey: t, source: n, onSourceChange: r, onRegistered
22193
22206
  type: "button",
22194
22207
  "aria-pressed": n === e.value,
22195
22208
  onClick: () => r(e.value),
22196
- className: G(C, "px-2", n === e.value ? D : _),
22209
+ className: G(C, "px-2", n === e.value ? O : _),
22197
22210
  children: e.label
22198
22211
  }, e.value))
22199
22212
  }),
@@ -22403,13 +22416,13 @@ var QT = [
22403
22416
  label: "Remote URL"
22404
22417
  }];
22405
22418
  function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsumed: i }) {
22406
- let s = uw(), [c, u] = a("upload"), [d, f] = a(""), [p, h] = a(""), [g, _] = a("object-detection"), [v, y] = a("onnx"), [b, x] = a(""), [S, C] = a(""), [w, T] = a(0), [E, ee] = a(320), [D, O] = a(320), [te, k] = a(""), [A, j] = a(null), [ne, re] = a([]), [M, ie] = a({ state: "idle" }), [ae, oe] = a(!1), [se, N] = a(null), [P, ce] = a(null), le = o(null), F = l(() => Xw(te), [te]);
22419
+ let s = uw(), [c, u] = a("upload"), [d, f] = a(""), [p, h] = a(""), [g, _] = a("object-detection"), [v, y] = a("onnx"), [b, x] = a(""), [S, C] = a(""), [w, T] = a(0), [E, D] = a(320), [O, k] = a(320), [ee, A] = a(""), [te, j] = a(null), [ne, re] = a([]), [M, ie] = a({ state: "idle" }), [ae, oe] = a(!1), [se, N] = a(null), [P, ce] = a(null), le = o(null), F = l(() => Xw(ee), [ee]);
22407
22420
  m(() => {
22408
- r != null && (u("upload"), y(r.format), x(r.postprocessor ?? ""), ee(r.inputSize), O(r.inputSize), k(r.labels.join("\n")), j(r.sourceLabel), N(null), ce(null), i?.());
22421
+ r != null && (u("upload"), y(r.format), x(r.postprocessor ?? ""), D(r.inputSize), k(r.inputSize), A(r.labels.join("\n")), j(r.sourceLabel), N(null), ce(null), i?.());
22409
22422
  }, [r, i]);
22410
22423
  let ue = n((e, t) => {
22411
22424
  let n = ZT(e);
22412
- re(n.hints), n.format !== null && y(n.format), ee(n.inputSize), O(n.inputSize), (t?.forceId || !d) && f(n.modelId), p || h(n.name), n.sizeMB !== null && e.kind === "url" && T(n.sizeMB);
22425
+ re(n.hints), n.format !== null && y(n.format), D(n.inputSize), k(n.inputSize), (t?.forceId || !d) && f(n.modelId), p || h(n.name), n.sizeMB !== null && e.kind === "url" && T(n.sizeMB);
22413
22426
  }, [d, p]), de = n(async (t) => {
22414
22427
  N(null), ue({
22415
22428
  kind: "file",
@@ -22476,7 +22489,7 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
22476
22489
  format: v,
22477
22490
  ...r === void 0 ? {} : { postprocessor: r },
22478
22491
  inputWidth: E,
22479
- inputHeight: D,
22492
+ inputHeight: O,
22480
22493
  labels: F
22481
22494
  });
22482
22495
  await s.run({
@@ -22519,7 +22532,7 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
22519
22532
  S,
22520
22533
  w,
22521
22534
  E,
22522
- D,
22535
+ O,
22523
22536
  F,
22524
22537
  M,
22525
22538
  t,
@@ -22554,14 +22567,14 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
22554
22567
  }, e.value))
22555
22568
  })]
22556
22569
  }),
22557
- A !== null && c === "upload" && /* @__PURE__ */ B("div", {
22570
+ te !== null && c === "upload" && /* @__PURE__ */ B("div", {
22558
22571
  className: "rounded-md border border-primary/30 bg-primary/10 px-3 py-2 text-[11px] text-foreground-subtle",
22559
22572
  children: [
22560
22573
  "Format, decode, input size and labelmap prefilled from the Frigate catalog:",
22561
22574
  " ",
22562
22575
  /* @__PURE__ */ z("span", {
22563
22576
  className: "text-foreground",
22564
- children: A
22577
+ children: te
22565
22578
  }),
22566
22579
  ". Upload your exported file below."
22567
22580
  ]
@@ -22667,13 +22680,13 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
22667
22680
  /* @__PURE__ */ z(ZC, {
22668
22681
  label: "Input width",
22669
22682
  value: E,
22670
- onChange: ee,
22683
+ onChange: D,
22671
22684
  min: 1
22672
22685
  }),
22673
22686
  /* @__PURE__ */ z(ZC, {
22674
22687
  label: "Input height",
22675
- value: D,
22676
- onChange: O,
22688
+ value: O,
22689
+ onChange: k,
22677
22690
  min: 1
22678
22691
  })
22679
22692
  ]
@@ -22716,8 +22729,8 @@ function nE({ trpc: e, onRegistered: t, initialPrefill: r = null, onPrefillConsu
22716
22729
  /* @__PURE__ */ z(YC, {
22717
22730
  label: `Labelmap (${F.length} labels — order = model output index)`,
22718
22731
  children: /* @__PURE__ */ z("textarea", {
22719
- value: te,
22720
- onChange: (e) => k(e.target.value),
22732
+ value: ee,
22733
+ onChange: (e) => A(e.target.value),
22721
22734
  rows: 8,
22722
22735
  spellCheck: !1,
22723
22736
  className: "w-full px-3 py-1.5 text-xs font-mono rounded-md border border-border bg-surface text-foreground focus:outline-none focus:border-primary/50"
@@ -23230,7 +23243,7 @@ function PE({ step: e, current: t, inputs: n, onChange: r }) {
23230
23243
  "data-step": e.stepId,
23231
23244
  children: [
23232
23245
  /* @__PURE__ */ B("header", {
23233
- className: `${O} flex min-h-9 flex-wrap items-center gap-2`,
23246
+ className: `${k} flex min-h-9 flex-wrap items-center gap-2`,
23234
23247
  children: [/* @__PURE__ */ B("h3", {
23235
23248
  id: `cluster-${e.stepId}`,
23236
23249
  className: `${T} min-w-0 flex-1`,
@@ -23265,7 +23278,7 @@ function PE({ step: e, current: t, inputs: n, onChange: r }) {
23265
23278
  })]
23266
23279
  }),
23267
23280
  /* @__PURE__ */ B("p", {
23268
- className: `${ee} px-3 pt-2 sm:px-4`,
23281
+ className: `${D} px-3 pt-2 sm:px-4`,
23269
23282
  children: [
23270
23283
  "One model for the whole cluster: every node writes into ",
23271
23284
  e.indexName,
@@ -23608,7 +23621,7 @@ function XE({ row: e }) {
23608
23621
  function ZE({ row: e, busy: t, onRemove: n }) {
23609
23622
  return e.removable ? /* @__PURE__ */ B("button", {
23610
23623
  type: "button",
23611
- className: te,
23624
+ className: ee,
23612
23625
  disabled: t,
23613
23626
  onClick: n,
23614
23627
  "aria-label": `Remove ${e.modelId} ${e.format}`,
@@ -23740,6 +23753,7 @@ function rD(e) {
23740
23753
  }))];
23741
23754
  return /* @__PURE__ */ z(Qx, {
23742
23755
  testId: "installed-filters",
23756
+ className: "sm:items-end",
23743
23757
  start: /* @__PURE__ */ B(it, { children: [
23744
23758
  /* @__PURE__ */ z("div", {
23745
23759
  className: "flex flex-wrap gap-1",
@@ -23750,7 +23764,7 @@ function rD(e) {
23750
23764
  type: "button",
23751
23765
  "aria-pressed": e.provider === t.value,
23752
23766
  onClick: () => e.onProvider(t.value),
23753
- className: G(C, "px-2", e.provider === t.value ? D : _),
23767
+ className: G(C, "px-2", e.provider === t.value ? O : _),
23754
23768
  children: t.label
23755
23769
  }, t.value))
23756
23770
  }),
@@ -23841,9 +23855,9 @@ function fD({ trpc: e, refreshKey: t }) {
23841
23855
  m(() => {
23842
23856
  v(null), E();
23843
23857
  }, [E, t]);
23844
- let D = n(async () => {
23858
+ let O = n(async () => {
23845
23859
  await E(), C((e) => e + 1);
23846
- }, [E]), O = l(() => _ === null ? [] : xE({
23860
+ }, [E]), k = l(() => _ === null ? [] : xE({
23847
23861
  nodeId: p,
23848
23862
  seeds: _.seeds,
23849
23863
  stepCatalogs: _.stepCatalogs,
@@ -23852,20 +23866,20 @@ function fD({ trpc: e, refreshKey: t }) {
23852
23866
  clusterModels: _.clusterModels,
23853
23867
  registry: _.models,
23854
23868
  availability: _.availability
23855
- }), [_, p]), te = _?.devices ?? [], k = l(() => SE(O, te, {
23869
+ }), [_, p]), ee = _?.devices ?? [], A = l(() => SE(k, ee, {
23856
23870
  provider: o,
23857
23871
  step: c,
23858
23872
  device: d
23859
23873
  }), [
23860
- O,
23861
- te,
23874
+ k,
23875
+ ee,
23862
23876
  o,
23863
23877
  c,
23864
23878
  d
23865
- ]), A = l(() => {
23866
- let e = new Set(O.map((e) => e.stepId));
23879
+ ]), te = l(() => {
23880
+ let e = new Set(k.map((e) => e.stepId));
23867
23881
  return c !== "all" && e.add(c), [...e].toSorted((e, t) => e.localeCompare(t));
23868
- }, [O, c]), j = n(async (t) => {
23882
+ }, [k, c]), j = n(async (t) => {
23869
23883
  if (!t.removable || !lD(t.format)) return;
23870
23884
  let n = {
23871
23885
  modelId: t.modelId,
@@ -23883,13 +23897,13 @@ function fD({ trpc: e, refreshKey: t }) {
23883
23897
  confirmLabel: "Delete file",
23884
23898
  cancelLabel: "Cancel",
23885
23899
  variant: "danger"
23886
- }) && (await j(e), await D());
23900
+ }) && (await j(e), await O());
23887
23901
  }, [
23888
23902
  g,
23889
23903
  j,
23890
23904
  p,
23891
- D
23892
- ]), re = l(() => k.filter((e) => e.usage === "unused" && e.removable), [k]), M = n(async () => {
23905
+ O
23906
+ ]), re = l(() => A.filter((e) => e.usage === "unused" && e.removable), [A]), M = n(async () => {
23893
23907
  if (re.length === 0) return;
23894
23908
  let e = re.reduce((e, t) => e + t.sizeMB, 0);
23895
23909
  if (await g({
@@ -23900,20 +23914,20 @@ function fD({ trpc: e, refreshKey: t }) {
23900
23914
  variant: "danger"
23901
23915
  })) {
23902
23916
  for (let e of re) await j(e);
23903
- await D();
23917
+ await O();
23904
23918
  }
23905
23919
  }, [
23906
23920
  g,
23907
23921
  j,
23908
23922
  p,
23909
- D,
23923
+ O,
23910
23924
  re
23911
23925
  ]), ie = n(async (t, n) => {
23912
23926
  await mC(e, {
23913
23927
  modelId: t.modelId,
23914
23928
  name: n
23915
- }), await D();
23916
- }, [e, D]), ae = n(async (t, n) => {
23929
+ }), await O();
23930
+ }, [e, O]), ae = n(async (t, n) => {
23917
23931
  if (n.configured) {
23918
23932
  T({
23919
23933
  row: t,
@@ -23929,15 +23943,15 @@ function fD({ trpc: e, refreshKey: t }) {
23929
23943
  variant: "default"
23930
23944
  }) && (await BC(e, {
23931
23945
  agentNodeId: p,
23932
- inferenceDevices: sE(te, t.stepId, t.modelId, [n.deviceKey])
23933
- }), await D());
23946
+ inferenceDevices: sE(ee, t.stepId, t.modelId, [n.deviceKey])
23947
+ }), await O());
23934
23948
  }, [
23935
23949
  g,
23936
23950
  p,
23937
23951
  e,
23938
- te,
23939
- D
23940
- ]), oe = O.reduce((e, t) => e + t.sizeMB, 0), se = o !== "all" || c !== "all" || d !== "all";
23952
+ ee,
23953
+ O
23954
+ ]), oe = k.reduce((e, t) => e + t.sizeMB, 0), se = o !== "all" || c !== "all" || d !== "all";
23941
23955
  return /* @__PURE__ */ B("div", {
23942
23956
  className: x,
23943
23957
  "data-testid": "installed-tab",
@@ -23950,10 +23964,10 @@ function fD({ trpc: e, refreshKey: t }) {
23950
23964
  provider: o,
23951
23965
  onProvider: s,
23952
23966
  step: c,
23953
- stepOptions: A,
23967
+ stepOptions: te,
23954
23968
  onStep: u,
23955
23969
  device: d,
23956
- deviceOptions: uE(te),
23970
+ deviceOptions: uE(ee),
23957
23971
  onDevice: f,
23958
23972
  nodeId: p,
23959
23973
  onNode: h
@@ -23965,20 +23979,20 @@ function fD({ trpc: e, refreshKey: t }) {
23965
23979
  /* @__PURE__ */ B("div", {
23966
23980
  className: "flex flex-wrap items-center justify-between gap-2",
23967
23981
  children: [/* @__PURE__ */ B("p", {
23968
- className: ee,
23982
+ className: D,
23969
23983
  "data-testid": "installed-summary",
23970
23984
  children: [
23971
- k.length,
23985
+ A.length,
23972
23986
  " ",
23973
- k.length === 1 ? "file" : "files",
23987
+ A.length === 1 ? "file" : "files",
23974
23988
  " on ",
23975
23989
  p,
23976
- se ? ` (of ${O.length})` : "",
23990
+ se ? ` (of ${k.length})` : "",
23977
23991
  " · ",
23978
23992
  eC(oe),
23979
23993
  " on disk ·",
23980
23994
  " ",
23981
- eC(CE(O)),
23995
+ eC(CE(k)),
23982
23996
  " reclaimable",
23983
23997
  _?.engines === null ? " · loaded state unavailable" : ""
23984
23998
  ]
@@ -23995,8 +24009,8 @@ function fD({ trpc: e, refreshKey: t }) {
23995
24009
  })]
23996
24010
  }),
23997
24011
  /* @__PURE__ */ z($E, {
23998
- rows: k,
23999
- emptyMessage: O.length === 0 ? `No model files on ${p}.` : "No files match these filters.",
24012
+ rows: A,
24013
+ emptyMessage: k.length === 0 ? `No model files on ${p}.` : "No files match these filters.",
24000
24014
  onRemove: ne,
24001
24015
  onRename: ie,
24002
24016
  onChip: ae,
@@ -24006,7 +24020,7 @@ function fD({ trpc: e, refreshKey: t }) {
24006
24020
  trpc: e,
24007
24021
  refreshKey: t + S,
24008
24022
  clusterModels: _?.clusterModels ?? null,
24009
- onChanged: () => void D(),
24023
+ onChanged: () => void O(),
24010
24024
  onError: b
24011
24025
  })
24012
24026
  ] }),
@@ -24016,10 +24030,10 @@ function fD({ trpc: e, refreshKey: t }) {
24016
24030
  stepId: w.row.stepId,
24017
24031
  modelId: w.row.modelId,
24018
24032
  modelName: w.row.name,
24019
- devices: te,
24033
+ devices: ee,
24020
24034
  deviceKey: w.deviceKey,
24021
24035
  onClose: () => T(null),
24022
- onDone: () => void D()
24036
+ onDone: () => void O()
24023
24037
  })
24024
24038
  ]
24025
24039
  });
@@ -24091,6 +24105,7 @@ function yD({ trpc: e }) {
24091
24105
  r,
24092
24106
  s
24093
24107
  ]), /* @__PURE__ */ z(dw, { children: /* @__PURE__ */ B(Zx, {
24108
+ icon: xt,
24094
24109
  title: "Model Studio",
24095
24110
  children: [/* @__PURE__ */ z(Fs, {
24096
24111
  value: c,