@camstack/addon-training 0.1.78 → 0.1.79

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 (20) hide show
  1. package/dist/{MotionZonesSettings-jORey4uC.mjs → MotionZonesSettings-CHoUtlZU.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-P24unULW.mjs → PrivacyMaskSettings-DfxPrf-U.mjs} +2 -2
  3. package/dist/{SceneMonitorEditor-CkLN8Kee.mjs → SceneMonitorEditor-B32hWMGP.mjs} +1 -1
  4. package/dist/_stub.js +144 -129
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-BbQzUVOo.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-GwANcGcn.mjs} +3 -3
  6. package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-ff_0UQsH.mjs +26 -0
  7. package/dist/{dist-CKiSDi2Y.js → dist-DuaaneP-.js} +100 -4
  8. package/dist/{dist-DeD2tKQ2.mjs → dist-we-Yi15l.mjs} +100 -4
  9. package/dist/{hostInit-ndHJ_k8s.mjs → hostInit-OSodFHgq.mjs} +2 -2
  10. package/dist/index.js +1 -1
  11. package/dist/orchestrator/training.addon.js +1 -1
  12. package/dist/orchestrator/training.addon.mjs +1 -1
  13. package/dist/{player-overlays-CD0eup2L.mjs → player-overlays-CN0bZ_0v.mjs} +1 -1
  14. package/dist/providers/modal/training-modal.addon.js +1 -1
  15. package/dist/providers/modal/training-modal.addon.mjs +1 -1
  16. package/dist/remoteEntry.js +1 -1
  17. package/dist/{responsive-CBG3O0ME.mjs → responsive-wQi9hajb.mjs} +1 -1
  18. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-X4iAyyQb.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-CbTZ0yvt.mjs} +1 -1
  19. package/package.json +1 -1
  20. package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DiRkx0UL.mjs +0 -26
@@ -2,8 +2,8 @@ import { d as e, g as t, l as n, v as r, w as i, y as a } from "./_virtual_mf___
2
2
  import { n as o, r as s, t as ee } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DnrbBvrw.mjs";
3
3
  import { r as te, t as c } from "./ui-text-CqJgUCKX.mjs";
4
4
  import { t as ne } from "./grid-2x2-CHuMzRxF.mjs";
5
- import { c as l, d as u, m as d, u as f } from "./responsive-CBG3O0ME.mjs";
6
- import { r as re, t as p } from "./player-overlays-CD0eup2L.mjs";
5
+ import { c as l, d as u, m as d, u as f } from "./responsive-wQi9hajb.mjs";
6
+ import { r as re, t as p } from "./player-overlays-CN0bZ_0v.mjs";
7
7
  import { MaskShapeCanvas as m } from "./MaskShapeCanvas-HNL0xNpy.mjs";
8
8
  //#region ../ui-library/src/composites/cap-settings/MotionZonesSettings.tsx
9
9
  i();
@@ -4,8 +4,8 @@ import { r as te, t as ne } from "./ui-text-CqJgUCKX.mjs";
4
4
  import { n as re, r as ie, t as ae } from "./square-ZPUterXM.mjs";
5
5
  import { n as oe, t as se } from "./mic-off-2uHAsVtR.mjs";
6
6
  import { t as ce } from "./trash-2-BKfuhsgY.mjs";
7
- import { c, d as le, m as ue, u as de } from "./responsive-CBG3O0ME.mjs";
8
- import { r as fe, t as pe } from "./player-overlays-CD0eup2L.mjs";
7
+ import { c, d as le, m as ue, u as de } from "./responsive-wQi9hajb.mjs";
8
+ import { r as fe, t as pe } from "./player-overlays-CN0bZ_0v.mjs";
9
9
  import { MaskShapeCanvas as l } from "./MaskShapeCanvas-HNL0xNpy.mjs";
10
10
  //#region ../ui-library/src/composites/cap-settings/privacy-mask-audio.ts
11
11
  i();
@@ -4,7 +4,7 @@ import { r as l, t as u } from "./ui-text-CqJgUCKX.mjs";
4
4
  import { n as d, r as f, t as p } from "./rotate-ccw-Cu6tGrgG.mjs";
5
5
  import { t as m } from "./settings-2-xV0I5Y5U.mjs";
6
6
  import { t as h } from "./trash-2-BKfuhsgY.mjs";
7
- import { c as g, d as _, m as v, p as y, u as b } from "./responsive-CBG3O0ME.mjs";
7
+ import { c as g, d as _, m as v, p as y, u as b } from "./responsive-wQi9hajb.mjs";
8
8
  import { a as x, c as S, i as C, n as ee, o as w, r as te, s as T, t as E } from "./scene-monitor-copy-Cqfs4Vng.mjs";
9
9
  import { MaskShapeCanvas as D } from "./MaskShapeCanvas-HNL0xNpy.mjs";
10
10
  //#region ../ui-library/src/composites/cap-settings/SceneReferenceGallery.tsx
package/dist/_stub.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import "./virtualExposes-0m8NqEDE.mjs";
2
- import { a as e, i as t, o as n, r } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-X4iAyyQb.mjs";
2
+ import { a as e, i as t, o as n, r } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-CbTZ0yvt.mjs";
3
3
  import { C as i, S as a, _ as o, a as s, b as c, d as l, f as u, g as d, h as f, i as p, l as m, m as h, n as g, p as _, r as v, t as y, u as b, v as x, w as S, x as C, y as w } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react__loadShare__.js-CEvdvp1T.mjs";
4
4
  import { i as T, n as E, r as D, t as O } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DnrbBvrw.mjs";
5
5
  import { n as k, r as A, t as j } from "./ui-text-CqJgUCKX.mjs";
6
- import { $ as M, A as N, B as P, D as F, E as I, F as L, G as R, H as z, I as ee, J as B, K as V, L as te, M as ne, N as H, O as re, P as U, Q as ie, R as ae, S as oe, T as se, U as ce, V as le, W as ue, X as W, Y as de, _ as fe, a as pe, b as me, c as he, d as ge, et as _e, f as ve, g as ye, h as be, i as xe, j as Se, k as Ce, l as we, m as Te, n as Ee, o as De, p as Oe, q as ke, r as Ae, s as je, t as Me, tt as Ne, u as Pe, v as Fe, w as Ie, x as Le, y as Re, z as ze } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DiRkx0UL.mjs";
6
+ import { $ as M, A as N, B as P, D as F, E as I, F as L, G as R, H as z, I as ee, J as B, K as V, L as te, M as ne, N as H, O as re, P as U, Q as ie, R as ae, S as oe, T as se, U as ce, V as le, W as ue, X as W, Y as de, _ as fe, a as pe, b as me, c as he, d as ge, et as _e, f as ve, g as ye, h as be, i as xe, j as Se, k as Ce, l as we, m as Te, n as Ee, o as De, p as Oe, q as ke, r as Ae, s as je, t as Me, tt as Ne, u as Pe, v as Fe, w as Ie, x as Le, y as Re, z as ze } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-ff_0UQsH.mjs";
7
7
  import { $n as Be, $t as Ve, A as He, An as Ue, At as We, B as Ge, Bn as Ke, Bt as qe, C as Je, Cn as Ye, Ct as Xe, D as Ze, Dn as Qe, Dt as $e, E as et, En as tt, Et as nt, F as rt, Fn as it, Ft as at, G as ot, Gn as st, Gt as ct, H as lt, Hn as ut, Ht as dt, I as ft, In as pt, It as mt, J as ht, Jn as gt, Jt as _t, K as vt, Kn as yt, Kt as bt, L as xt, Ln as St, Lt as Ct, Mn as wt, Mt as Tt, N as Et, Nn as Dt, Nt as Ot, O as kt, On as At, Ot as jt, P as Mt, Pn as Nt, Pt, Q as Ft, Qn as It, Qt as Lt, R as Rt, Rn as zt, Rt as Bt, S as Vt, Sn as Ht, St as Ut, T as Wt, Tn as Gt, Tt as Kt, U as qt, Un as Jt, Ut as Yt, V as Xt, Vn as Zt, Vt as Qt, W as $t, Wn as en, Wt as tn, X as nn, Xn as rn, Xt as an, Y as on, Yn as sn, Yt as cn, Z as ln, Zn as un, Zt as dn, _ as fn, _n as pn, _t as mn, a as hn, an as gn, ar as _n, at as vn, b as yn, bn, bt as xn, c as Sn, cn as Cn, cr as wn, ct as Tn, d as En, dn as Dn, dr as On, dt as kn, en as An, er as jn, et as Mn, f as Nn, fn as Pn, fr as Fn, ft as In, g as Ln, gn as Rn, gt as zn, h as Bn, hn as Vn, ht as Hn, i as Un, in as Wn, ir as Gn, it as Kn, j as qn, jn as Jn, jt as Yn, k as Xn, kn as Zn, kt as Qn, l as $n, ln as er, lr as tr, lt as nr, m as rr, mn as ir, mr as ar, mt as or, n as sr, nn as cr, nr as lr, nt as ur, o as dr, on as fr, or as pr, ot as mr, p as hr, pn as gr, pr as _r, pt as vr, q as yr, qn as br, qt as xr, r as Sr, rn as Cr, rr as wr, rt as Tr, s as Er, sn as Dr, sr as Or, st as kr, t as Ar, tn as jr, tr as Mr, tt as Nr, u as Pr, un as Fr, ur as Ir, ut as Lr, v as Rr, vn as zr, vt as Br, w as Vr, wn as Hr, wt as Ur, x as Wr, xn as Gr, xt as Kr, y as qr, yn as Jr, yt as Yr, z as Xr, zn as Zr, zt as Qr } from "./zoom-out-DzQMgNQw.mjs";
8
8
  import { n as $r, r as ei, t as ti } from "./rotate-ccw-Cu6tGrgG.mjs";
9
9
  import { n as ni, t as ri } from "./chevron-right-cA8Hucbi.mjs";
@@ -11,13 +11,13 @@ import { r as ii, t as ai } from "./square-ZPUterXM.mjs";
11
11
  import { t as oi } from "./grid-2x2-CHuMzRxF.mjs";
12
12
  import { t as si } from "./trash-2-BKfuhsgY.mjs";
13
13
  import { n as ci, t as li } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.js-BkvDudqY.mjs";
14
- import { a as ui, c as di, d as fi, f as pi, h as mi, i as hi, l as gi, m as _i, n as vi, o as yi, p as bi, r as xi, s as Si, t as Ci, u as wi } from "./responsive-CBG3O0ME.mjs";
14
+ import { a as ui, c as di, d as fi, f as pi, h as mi, i as hi, l as gi, m as _i, n as vi, o as yi, p as bi, r as xi, s as Si, t as Ci, u as wi } from "./responsive-wQi9hajb.mjs";
15
15
  import { n as Ti, t as Ei } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_2_dom__loadShare__.js-DAZkHxxU.mjs";
16
16
  import { n as Di, r as Oi, t as ki } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-DpjirGmB.mjs";
17
17
  import { t as Ai } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-CHqN9NLt.mjs";
18
18
  import { t as ji } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_trpc_mf_1_client__loadShare__.js-CFCVuRAs.mjs";
19
19
  import { c as Mi, s as Ni } from "./scene-monitor-copy-Cqfs4Vng.mjs";
20
- import { n as Pi, r as Fi } from "./player-overlays-CD0eup2L.mjs";
20
+ import { n as Pi, r as Fi } from "./player-overlays-CN0bZ_0v.mjs";
21
21
  import "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_sdk__loadShare__.js-ZeT4eUYy.mjs";
22
22
  //#region ../ui-library/src/trpc-react.ts
23
23
  S();
@@ -10858,8 +10858,8 @@ function Vh({ deviceId: e }) {
10858
10858
  //#region ../ui-library/src/widgets/host-widgets.ts
10859
10859
  S();
10860
10860
  var Hh = {
10861
- "host/motion-zones-grid": s(() => import("./MotionZonesSettings-jORey4uC.mjs").then((e) => ({ default: e.MotionZonesSettings }))),
10862
- "host/privacy-mask-grid": s(() => import("./PrivacyMaskSettings-P24unULW.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))),
10861
+ "host/motion-zones-grid": s(() => import("./MotionZonesSettings-CHoUtlZU.mjs").then((e) => ({ default: e.MotionZonesSettings }))),
10862
+ "host/privacy-mask-grid": s(() => import("./PrivacyMaskSettings-DfxPrf-U.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))),
10863
10863
  "host/ptz-panel": Fm,
10864
10864
  "host/navigation-panel": Dm,
10865
10865
  "host/consumables-panel": jd,
@@ -27311,94 +27311,103 @@ function uP(e, t, n) {
27311
27311
  noun: $N(e, n)
27312
27312
  }) : n("uiLibrary.devicePicker.noneAvailable", "No {{plural}} available.", { plural: r });
27313
27313
  }
27314
- function dP({ devices: e, listState: t, fleet: n, value: r, onChange: i, emptyMeansAll: a = !1, savedHadDevices: o = !1, noun: s = "camera", groupTitle: c, emptyLabel: l, annotate: u, disabled: f = !1, testId: p, showAll: m = !1, lockedIds: h, lockedNote: g }) {
27315
- let _ = A(), v = c ?? ((e) => sP(e, _)), y = g ?? _("uiLibrary.devicePicker.alreadyAdded", "Already added"), b = d(() => zN(e), [e]), x = n ?? {
27314
+ function dP({ devices: e, listState: t, fleet: n, value: r, onChange: i, selection: a = "multiple", groupBy: o, emptyMeansAll: s = !1, savedHadDevices: c = !1, noun: l = "camera", groupTitle: u, emptyLabel: f, annotate: p, disabled: m = !1, testId: h, showAll: g = !1, lockedIds: _, lockedNote: v }) {
27315
+ let y = A(), b = u ?? ((e) => sP(e, y)), x = v ?? y("uiLibrary.devicePicker.alreadyAdded", "Already added"), S = d(() => zN(e), [e]), C = n ?? {
27316
27316
  state: t,
27317
- devices: t === "answered" ? b : void 0
27318
- }, S = d(() => new Set(h ?? []), [h]), C = (e) => i(S.size === 0 ? e : e.filter((e) => !S.has(e))), [T, O] = w(!1), [k, j] = w(!1), [M, N] = w(o || r.length > 0);
27319
- r.length > 0 && !M && N(!0);
27320
- let P = lP(r, b, x, s, _), F = YM(P, k || m), I = T || m, L = ZN(a, r.length, M), R = QN[s];
27321
- return t === "answered" && XN(t, b.length, r.length) ? /* @__PURE__ */ D("div", {
27322
- "data-testid": p,
27317
+ devices: t === "answered" ? S : void 0
27318
+ }, T = d(() => new Set(_ ?? []), [_]), O = (e) => i(T.size === 0 ? e : e.filter((e) => !T.has(e))), [k, j] = w(!1), [M, N] = w(!1), [P, F] = w(c || r.length > 0);
27319
+ r.length > 0 && !P && F(!0);
27320
+ let I = lP(r, S, C, l, y), L = YM(I, M || g), R = k || g, z = ZN(s, r.length, P), ee = QN[l];
27321
+ return t === "answered" && XN(t, S.length, r.length) ? /* @__PURE__ */ D("div", {
27322
+ "data-testid": h,
27323
27323
  children: [/* @__PURE__ */ E("p", {
27324
27324
  className: "text-[10px] text-foreground-subtle mt-0.5",
27325
- children: uP(s, a, _)
27326
- }), L && /* @__PURE__ */ E(rP, { noun: s })]
27325
+ children: uP(l, s, y)
27326
+ }), z && /* @__PURE__ */ E(rP, { noun: l })]
27327
27327
  }) : /* @__PURE__ */ D("div", {
27328
27328
  className: "mt-1 space-y-1.5",
27329
- "data-testid": p,
27329
+ "data-testid": h,
27330
27330
  children: [
27331
- t === "pending" && /* @__PURE__ */ E(iP, { noun: R }),
27332
- t === "failed" && /* @__PURE__ */ E(aP, { noun: s === "camera" ? "devices" : R }),
27333
- /* @__PURE__ */ D("div", {
27331
+ t === "pending" && /* @__PURE__ */ E(iP, { noun: ee }),
27332
+ t === "failed" && /* @__PURE__ */ E(aP, { noun: l === "camera" ? "devices" : ee }),
27333
+ !(a === "single" && I.length === 0) && /* @__PURE__ */ D("div", {
27334
27334
  className: "flex flex-wrap items-center gap-1",
27335
27335
  children: [
27336
- P.length === 0 ? /* @__PURE__ */ E("span", {
27336
+ I.length === 0 ? /* @__PURE__ */ E("span", {
27337
27337
  className: "text-[11px] text-foreground-subtle",
27338
- children: l ?? (a ? _("uiLibrary.devicePicker.everyNoRestriction", "Every {{noun}} — no restriction", { noun: $N(s, _) }) : _("uiLibrary.devicePicker.noneSelected", "None selected"))
27339
- }) : F.shown.map((e) => /* @__PURE__ */ E(sl, {
27338
+ children: f ?? (s ? y("uiLibrary.devicePicker.everyNoRestriction", "Every {{noun}} — no restriction", { noun: $N(l, y) }) : y("uiLibrary.devicePicker.noneSelected", "None selected"))
27339
+ }) : L.shown.map((e) => /* @__PURE__ */ E(sl, {
27340
27340
  testId: `picker-chip-${String(e.id)}`,
27341
27341
  label: e.label,
27342
27342
  warning: e.removed,
27343
- ...f ? {} : { onRemove: () => i(r.filter((t) => t !== e.id)) }
27343
+ ...m ? {} : { onRemove: () => i(r.filter((t) => t !== e.id)) }
27344
27344
  }, e.id)),
27345
- F.hidden > 0 && /* @__PURE__ */ E("button", {
27345
+ L.hidden > 0 && /* @__PURE__ */ E("button", {
27346
27346
  type: "button",
27347
27347
  className: "rounded-md border border-border px-1.5 py-0.5 text-[11px] text-foreground-subtle hover:bg-surface-hover",
27348
- onClick: () => j(!0),
27349
- children: _("uiLibrary.devicePicker.moreChips", "+{{count}} more", { count: F.hidden })
27348
+ onClick: () => N(!0),
27349
+ children: y("uiLibrary.devicePicker.moreChips", "+{{count}} more", { count: L.hidden })
27350
27350
  }),
27351
- k && P.length > 6 && /* @__PURE__ */ E("button", {
27351
+ M && I.length > 6 && /* @__PURE__ */ E("button", {
27352
27352
  type: "button",
27353
27353
  className: "text-[11px] text-foreground-subtle underline",
27354
- onClick: () => j(!1),
27355
- children: _("uiLibrary.devicePicker.showFewer", "Show fewer")
27354
+ onClick: () => N(!1),
27355
+ children: y("uiLibrary.devicePicker.showFewer", "Show fewer")
27356
27356
  }),
27357
- t !== "pending" && !m && /* @__PURE__ */ E("button", {
27357
+ t !== "pending" && !g && /* @__PURE__ */ E("button", {
27358
27358
  type: "button",
27359
- disabled: f,
27360
- "aria-expanded": T,
27361
- onClick: () => O((e) => !e),
27359
+ disabled: m,
27360
+ "aria-expanded": k,
27361
+ onClick: () => j((e) => !e),
27362
27362
  className: "rounded-md border border-dashed border-border px-1.5 py-0.5 text-[11px] text-foreground hover:bg-surface-hover disabled:opacity-50",
27363
- children: T ? _("uiLibrary.devicePicker.done", "Done") : r.length === 0 ? _("uiLibrary.devicePicker.addPlural", "Add {{plural}}…", { plural: eP(s, _) }) : _("uiLibrary.devicePicker.edit", "Edit…")
27363
+ children: k ? y("uiLibrary.devicePicker.done", "Done") : r.length === 0 ? y("uiLibrary.devicePicker.addPlural", "Add {{plural}}…", { plural: eP(l, y) }) : y("uiLibrary.devicePicker.edit", "Edit…")
27364
27364
  })
27365
27365
  ]
27366
27366
  }),
27367
- I && t === "answered" && (cP(s) ? /* @__PURE__ */ E(fP, {
27368
- devices: b,
27367
+ R && t === "answered" && (cP(l) ? /* @__PURE__ */ E(fP, {
27368
+ devices: S,
27369
27369
  value: r,
27370
- onChange: C,
27371
- locked: S,
27372
- lockedNote: y,
27373
- annotate: u,
27374
- groupTitle: v,
27375
- noun: s,
27376
- disabled: f,
27377
- showAll: m
27370
+ onChange: O,
27371
+ locked: T,
27372
+ lockedNote: x,
27373
+ annotate: p,
27374
+ groupTitle: b,
27375
+ noun: l,
27376
+ disabled: m,
27377
+ showAll: g,
27378
+ selection: a,
27379
+ ...o === void 0 ? {} : { pinnedGroupBy: o }
27378
27380
  }) : /* @__PURE__ */ E(hP, {
27379
- devices: b,
27381
+ devices: S,
27380
27382
  value: r,
27381
- onChange: C,
27382
- locked: S,
27383
- lockedNote: y,
27384
- annotate: u,
27385
- groupTitle: v,
27386
- noun: s,
27387
- disabled: f,
27388
- showAll: m
27383
+ onChange: O,
27384
+ locked: T,
27385
+ lockedNote: x,
27386
+ annotate: p,
27387
+ groupTitle: b,
27388
+ noun: l,
27389
+ disabled: m,
27390
+ showAll: g,
27391
+ selection: a
27389
27392
  })),
27390
- L && /* @__PURE__ */ E(rP, { noun: s })
27393
+ z && /* @__PURE__ */ E(rP, { noun: l })
27391
27394
  ]
27392
27395
  });
27393
27396
  }
27394
27397
  function fP(e) {
27395
- let { groupBy: t, setGroupBy: n } = GN(), r = KN(!0);
27398
+ let t = GN(), [n, r] = w(null), i = e.pinnedGroupBy, a = i === void 0 ? t.groupBy : n ?? i, o = (e) => {
27399
+ if (i !== void 0) {
27400
+ r(e);
27401
+ return;
27402
+ }
27403
+ t.setGroupBy(e);
27404
+ }, s = KN(!0);
27396
27405
  return /* @__PURE__ */ E(hP, {
27397
27406
  ...e,
27398
27407
  grouping: {
27399
- groupBy: t,
27400
- onGroupByChange: n,
27401
- zones: r
27408
+ groupBy: a,
27409
+ onGroupByChange: o,
27410
+ zones: s
27402
27411
  }
27403
27412
  });
27404
27413
  }
@@ -27409,101 +27418,106 @@ var mP = {
27409
27418
  state: "answered",
27410
27419
  zones: []
27411
27420
  };
27412
- function hP({ devices: e, value: t, onChange: n, annotate: r, groupTitle: i, noun: a, disabled: o, locked: s, lockedNote: c, showAll: l, grouping: u }) {
27413
- let f = A(), [p, m] = w(mN), [h, g] = w(/* @__PURE__ */ new Map()), [_, v] = w(60), y = l || RM(p.query).length > 0, b = u?.groupBy, x = u?.zones ?? mP, S = d(() => SN(e, p, x), [
27421
+ function hP({ devices: e, value: t, onChange: n, annotate: r, groupTitle: i, noun: a, disabled: o, locked: s, lockedNote: c, showAll: l, selection: u, grouping: f }) {
27422
+ let p = A(), m = _(), [h, g] = w(mN), [v, y] = w(/* @__PURE__ */ new Map()), [b, x] = w(60), S = l || RM(h.query).length > 0, C = f?.groupBy, T = f?.zones ?? mP, O = d(() => SN(e, h, T), [
27414
27423
  e,
27415
- p,
27416
- x
27417
- ]), C = d(() => b === void 0 ? null : uN(S, t, b, x), [
27418
- S,
27424
+ h,
27425
+ T
27426
+ ]), k = d(() => C === void 0 ? null : uN(O, t, C, T), [
27427
+ O,
27419
27428
  t,
27420
- b,
27421
- x
27422
- ]), T = d(() => C === null ? GM(UM(S, t), t, h, y) : dN(C, t, h, y), [
27423
27429
  C,
27424
- S,
27430
+ T
27431
+ ]), j = d(() => k === null ? GM(UM(O, t), t, v, S) : dN(k, t, v, S), [
27432
+ k,
27433
+ O,
27425
27434
  t,
27426
- h,
27427
- y
27428
- ]), O = C?.groupBy ?? null, k = d(() => yN(e, "type", p.types, x), [
27435
+ v,
27436
+ S
27437
+ ]), M = k?.groupBy ?? null, N = d(() => yN(e, "type", h.types, T), [
27429
27438
  e,
27430
- p.types,
27431
- x
27432
- ]), j = d(() => yN(e, "zone", p.zones, x), [
27439
+ h.types,
27440
+ T
27441
+ ]), P = d(() => yN(e, "zone", h.zones, T), [
27433
27442
  e,
27434
- p.zones,
27435
- x
27436
- ]), M = d(() => u === void 0 ? [] : yN(e, "location", p.locations, x), [
27443
+ h.zones,
27444
+ T
27445
+ ]), F = d(() => f === void 0 ? [] : yN(e, "location", h.locations, T), [
27437
27446
  e,
27438
- p.locations,
27439
- x,
27440
- u
27441
- ]), N = d(() => EN(t, e, S), [
27447
+ h.locations,
27448
+ T,
27449
+ f
27450
+ ]), I = d(() => EN(t, e, O), [
27442
27451
  e,
27443
27452
  t,
27444
- S
27445
- ]), P = XM(T, l ? T.length : _), F = (e, t) => g((n) => new Map([...n, [e.key, !t]]));
27453
+ O
27454
+ ]), L = XM(j, l ? j.length : b), R = (e, t) => y((n) => new Map([...n, [e.key, !t]]));
27446
27455
  return /* @__PURE__ */ D("div", {
27447
27456
  className: "rounded-md border border-border bg-surface p-2",
27448
27457
  "data-testid": "device-picker-panel",
27449
27458
  children: [
27450
27459
  /* @__PURE__ */ E(IN, {
27451
- filters: p,
27460
+ filters: h,
27452
27461
  onFiltersChange: (e) => {
27453
- m(e), v(60);
27462
+ g(e), x(60);
27454
27463
  },
27455
- typeOptions: k,
27456
- zoneOptions: j,
27457
- locationOptions: M,
27458
- zones: x,
27459
- ...u === void 0 ? {} : { grouping: {
27460
- groupBy: u.groupBy,
27461
- onGroupByChange: u.onGroupByChange,
27462
- fallback: C?.fallback ?? null
27464
+ typeOptions: N,
27465
+ zoneOptions: P,
27466
+ locationOptions: F,
27467
+ zones: T,
27468
+ ...f === void 0 ? {} : { grouping: {
27469
+ groupBy: f.groupBy,
27470
+ onGroupByChange: f.onGroupByChange,
27471
+ fallback: k?.fallback ?? null
27463
27472
  } },
27464
- searchPlaceholder: pP(a, f),
27465
- searchLabel: a === "camera" || a === "device" ? f("uiLibrary.devicePicker.searchDevices", "Search devices") : f("uiLibrary.devicePicker.searchPlural", "Search {{plural}}", { plural: eP(a, f) }),
27473
+ searchPlaceholder: pP(a, p),
27474
+ searchLabel: a === "camera" || a === "device" ? p("uiLibrary.devicePicker.searchDevices", "Search devices") : p("uiLibrary.devicePicker.searchPlural", "Search {{plural}}", { plural: eP(a, p) }),
27466
27475
  disabled: o
27467
27476
  }),
27468
27477
  /* @__PURE__ */ E("p", {
27469
27478
  className: "mt-1 text-[10px] text-foreground-subtle",
27470
- children: f("uiLibrary.devicePicker.shownOf", "{{shown}} of {{total}} shown · {{selected}} selected", {
27471
- shown: S.length,
27479
+ children: u === "single" ? p("uiLibrary.devicePicker.shownOfSingle", "{{shown}} of {{total}} shown", {
27480
+ shown: O.length,
27481
+ total: e.length
27482
+ }) : p("uiLibrary.devicePicker.shownOf", "{{shown}} of {{total}} shown · {{selected}} selected", {
27483
+ shown: O.length,
27472
27484
  total: e.length,
27473
27485
  selected: t.length
27474
27486
  })
27475
27487
  }),
27476
- T.length === 0 ? /* @__PURE__ */ E("p", {
27488
+ j.length === 0 ? /* @__PURE__ */ E("p", {
27477
27489
  className: "py-2 text-[11px] text-foreground-subtle italic",
27478
- children: a === "camera" || a === "device" ? f("uiLibrary.devicePicker.noDeviceMatches", "No device matches.") : f("uiLibrary.devicePicker.noNounMatches", "No {{noun}} matches.", { noun: $N(a, f) })
27490
+ children: a === "camera" || a === "device" ? p("uiLibrary.devicePicker.noDeviceMatches", "No device matches.") : p("uiLibrary.devicePicker.noNounMatches", "No {{noun}} matches.", { noun: $N(a, p) })
27479
27491
  }) : /* @__PURE__ */ D("div", {
27480
27492
  className: l ? "mt-1" : "mt-1 max-h-72 overflow-y-auto",
27481
27493
  "data-testid": "device-picker-rows",
27482
- children: [P.rows.map((e) => /* @__PURE__ */ E(_P, {
27494
+ children: [L.rows.map((e) => /* @__PURE__ */ E(_P, {
27483
27495
  row: e,
27484
27496
  value: t,
27485
27497
  onChange: n,
27486
- onToggleGroup: F,
27498
+ onToggleGroup: R,
27487
27499
  annotate: r,
27488
27500
  groupTitle: i,
27489
- groupBy: O,
27501
+ groupBy: M,
27490
27502
  disabled: o,
27491
27503
  locked: s,
27492
- lockedNote: c
27493
- }, e.key)), P.remaining > 0 && /* @__PURE__ */ E("button", {
27504
+ lockedNote: c,
27505
+ selection: u,
27506
+ radioName: m
27507
+ }, e.key)), L.remaining > 0 && /* @__PURE__ */ E("button", {
27494
27508
  type: "button",
27495
27509
  className: "mt-1 w-full rounded border border-border py-1 text-[11px] text-foreground-subtle hover:bg-surface-hover",
27496
- onClick: () => v((e) => e + 60),
27497
- children: f("uiLibrary.devicePicker.showMore", "Show {{count}} more ({{left}} left)", {
27498
- count: Math.min(P.remaining, 60),
27499
- left: P.remaining
27510
+ onClick: () => x((e) => e + 60),
27511
+ children: p("uiLibrary.devicePicker.showMore", "Show {{count}} more ({{left}} left)", {
27512
+ count: Math.min(L.remaining, 60),
27513
+ left: L.remaining
27500
27514
  })
27501
27515
  })]
27502
27516
  }),
27503
- N > 0 && /* @__PURE__ */ E("p", {
27517
+ I > 0 && /* @__PURE__ */ E("p", {
27504
27518
  className: "mt-1 text-[10px] text-foreground-subtle",
27505
27519
  "data-testid": "picker-hidden-selected",
27506
- children: f("uiLibrary.devicePicker.hiddenSelected", "{{count}} selected hidden by filters", { count: N })
27520
+ children: p("uiLibrary.devicePicker.hiddenSelected", "{{count}} selected hidden by filters", { count: I })
27507
27521
  })
27508
27522
  ]
27509
27523
  });
@@ -27517,8 +27531,8 @@ function gP(e, t) {
27517
27531
  ].filter((e) => e !== null);
27518
27532
  return r.length > 0 ? r.join(" · ") : void 0;
27519
27533
  }
27520
- function _P({ row: e, value: t, onChange: n, onToggleGroup: r, annotate: i, groupTitle: a, groupBy: o, disabled: s, locked: c, lockedNote: l }) {
27521
- let u = A();
27534
+ function _P({ row: e, value: t, onChange: n, onToggleGroup: r, annotate: i, groupTitle: a, groupBy: o, disabled: s, locked: c, lockedNote: l, selection: u, radioName: d }) {
27535
+ let f = A(), p = u === "single";
27522
27536
  if (e.kind === "header") {
27523
27537
  let { group: i, expanded: o } = e;
27524
27538
  return /* @__PURE__ */ D("div", {
@@ -27536,7 +27550,7 @@ function _P({ row: e, value: t, onChange: n, onToggleGroup: r, annotate: i, grou
27536
27550
  className: "truncate",
27537
27551
  children: a(i)
27538
27552
  }),
27539
- /* @__PURE__ */ D("span", {
27553
+ !p && /* @__PURE__ */ D("span", {
27540
27554
  className: "font-normal normal-case",
27541
27555
  children: [
27542
27556
  "(",
@@ -27548,32 +27562,33 @@ function _P({ row: e, value: t, onChange: n, onToggleGroup: r, annotate: i, grou
27548
27562
  })
27549
27563
  ]
27550
27564
  }),
27551
- /* @__PURE__ */ E("button", {
27565
+ !p && /* @__PURE__ */ E("button", {
27552
27566
  type: "button",
27553
27567
  disabled: s,
27554
27568
  className: "text-[10px] text-primary hover:underline disabled:opacity-50",
27555
27569
  onClick: () => n(qM(t, i)),
27556
- children: u("uiLibrary.devicePicker.all", "All")
27570
+ children: f("uiLibrary.devicePicker.all", "All")
27557
27571
  }),
27558
- /* @__PURE__ */ E("button", {
27572
+ !p && /* @__PURE__ */ E("button", {
27559
27573
  type: "button",
27560
27574
  disabled: s,
27561
27575
  className: "text-[10px] text-foreground-subtle hover:underline disabled:opacity-50",
27562
27576
  onClick: () => n(JM(t, i)),
27563
- children: u("uiLibrary.devicePicker.clear", "Clear")
27577
+ children: f("uiLibrary.devicePicker.clear", "Clear")
27564
27578
  })
27565
27579
  ]
27566
27580
  });
27567
27581
  }
27568
- let d = c.has(e.device.id), f = d ? l : i?.(e.device.id), p = gP(e.device, o);
27582
+ let m = c.has(e.device.id), h = m ? l : i?.(e.device.id), g = gP(e.device, o);
27569
27583
  return /* @__PURE__ */ D("label", {
27570
27584
  className: "flex cursor-pointer items-center gap-2.5 px-3 py-1 text-xs text-foreground hover:bg-surface-hover",
27571
27585
  "data-testid": "device-picker-row",
27572
27586
  children: [/* @__PURE__ */ E("input", {
27573
- type: "checkbox",
27574
- checked: e.selected || d,
27575
- disabled: s || d,
27576
- onChange: () => n(KM(t, e.device.id)),
27587
+ type: p ? "radio" : "checkbox",
27588
+ ...p ? { name: d } : {},
27589
+ checked: e.selected || m,
27590
+ disabled: s || m,
27591
+ onChange: () => n(p ? [e.device.id] : KM(t, e.device.id)),
27577
27592
  className: "accent-primary",
27578
27593
  "data-device-id": String(e.device.id)
27579
27594
  }), /* @__PURE__ */ D("span", {
@@ -27583,13 +27598,13 @@ function _P({ row: e, value: t, onChange: n, onToggleGroup: r, annotate: i, grou
27583
27598
  className: "truncate",
27584
27599
  children: e.device.name
27585
27600
  }),
27586
- p !== void 0 && /* @__PURE__ */ E("span", {
27601
+ g !== void 0 && /* @__PURE__ */ E("span", {
27587
27602
  className: "truncate text-[10px] text-foreground-subtle",
27588
- children: p
27603
+ children: g
27589
27604
  }),
27590
- f !== void 0 && /* @__PURE__ */ E("span", {
27591
- className: d ? "text-[10px] text-foreground-subtle" : "text-[10px] text-warning",
27592
- children: f
27605
+ h !== void 0 && /* @__PURE__ */ E("span", {
27606
+ className: m ? "text-[10px] text-foreground-subtle" : "text-[10px] text-warning",
27607
+ children: h
27593
27608
  })
27594
27609
  ]
27595
27610
  })]
@@ -27877,7 +27892,7 @@ function qP(e, t) {
27877
27892
  translate: (t, n) => VP(e, MP(), t, n)
27878
27893
  };
27879
27894
  }
27880
- S(), s(() => import("./MaskShapeCanvas-HNL0xNpy.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), s(() => import("./MotionZonesSettings-jORey4uC.mjs").then((e) => ({ default: e.MotionZonesSettings }))), s(() => import("./SceneMonitorEditor-CkLN8Kee.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), s(() => import("./PrivacyMaskSettings-P24unULW.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
27895
+ S(), s(() => import("./MaskShapeCanvas-HNL0xNpy.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), s(() => import("./MotionZonesSettings-CHoUtlZU.mjs").then((e) => ({ default: e.MotionZonesSettings }))), s(() => import("./SceneMonitorEditor-B32hWMGP.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), s(() => import("./PrivacyMaskSettings-DfxPrf-U.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
27881
27896
  //#endregion
27882
27897
  //#region src/i18n/index.ts
27883
27898
  var { useT: JP, Trans: YP, translate: XP } = qP("training", {
@@ -1,4 +1,4 @@
1
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-X4iAyyQb.mjs";
1
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-CbTZ0yvt.mjs";
2
2
  //#region \0virtual:mf-localSharedImportMap:__mfe_internal__addon_training_page
3
3
  var e = {
4
4
  "@camstack/sdk": {
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.406",
21
+ version: "1.2.407",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_training_page",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.321",
36
+ version: "1.2.322",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_training_page",