@camstack/addon-model-studio 1.1.290 → 1.1.292

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 (19) hide show
  1. package/dist/{MotionZonesSettings-BDXv-_SC.mjs → MotionZonesSettings-BcdUnoUf.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-BFDJJ_jI.mjs → PrivacyMaskSettings-B8Fva5aA.mjs} +4 -4
  3. package/dist/{SceneMonitorEditor-DsKs-28v.mjs → SceneMonitorEditor-gGXbk_xd.mjs} +3 -3
  4. package/dist/_stub.js +2007 -2000
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-vqigWLhP.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-BQtGyoxs.mjs} +3 -3
  6. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BsM_g96G.mjs +26 -0
  7. package/dist/addon-model-studio.css +1 -1
  8. package/dist/{hostInit-RwS7Hfsn.mjs → hostInit-E9SMnTP0.mjs} +2 -2
  9. package/dist/model-studio.addon.js +189 -90
  10. package/dist/model-studio.addon.mjs +189 -90
  11. package/dist/{player-overlays-CSDHuCWB.mjs → player-overlays-CMJi9ZqH.mjs} +1 -1
  12. package/dist/remoteEntry.js +1 -1
  13. package/dist/{responsive-BOr_1QSL.mjs → responsive-BsA5VAZE.mjs} +1 -1
  14. package/dist/{scene-monitor-copy-CcAIfs8G.mjs → scene-monitor-copy-CoIP1A-9.mjs} +1 -1
  15. package/dist/{square-X2giTSaZ.mjs → square-DtlTO5Fw.mjs} +1 -1
  16. package/dist/{trash-2-CphQimp6.mjs → trash-2-CYc9z9Tz.mjs} +1 -1
  17. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-D6XbC3Hu.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-D-DKvrkx.mjs} +1 -1
  18. package/package.json +1 -1
  19. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-C2LtE9v7.mjs +0 -26
@@ -368,7 +368,7 @@ function buildScryptedRegistryDescriptor(entry) {
368
368
  };
369
369
  }
370
370
  //#endregion
371
- //#region ../types/dist/event-category-fDPduoeC.mjs
371
+ //#region ../types/dist/event-category-Ceif8n-v.mjs
372
372
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
373
373
  EventCategory["SystemBoot"] = "system.boot";
374
374
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -840,6 +840,10 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
840
840
  * on the device detail page.
841
841
  */
842
842
  EventCategory["DoorbellOnPressed"] = "doorbell.onPressed";
843
+ /** Mirrors `runningStateCapability.events.onStarted`. */
844
+ EventCategory["RunningStarted"] = "running.started";
845
+ /** Mirrors `runningStateCapability.events.onFinished`. */
846
+ EventCategory["RunningFinished"] = "running.finished";
843
847
  /**
844
848
  * Cap event fired by every device that registers the `event-emitter`
845
849
  * capability. Mirrors `eventEmitterCapability.events.onEvent`. Carries
@@ -5799,7 +5803,7 @@ var ZodIssueCode = {
5799
5803
  var ZodFirstPartyTypeKind;
5800
5804
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5801
5805
  //#endregion
5802
- //#region ../types/dist/sleep-CHIEEJkY.mjs
5806
+ //#region ../types/dist/sleep-CYfIZzGv.mjs
5803
5807
  /**
5804
5808
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5805
5809
  * window to float samples (D455).
@@ -6138,7 +6142,7 @@ Object.fromEntries([
6138
6142
  * `hydrateSchema` to skip the `value` injection for structural-only fields.
6139
6143
  */
6140
6144
  function isValuelessField(field) {
6141
- return field.type === "separator" || field.type === "info" || field.type === "qr-code" || field.type === "button" || field.type === "object-array" || field.type === "widget" || field.type === "addon-action-button" || field.type === "device-action-button";
6145
+ return field.type === "separator" || field.type === "info" || field.type === "qr-code" || field.type === "button" || field.type === "object-array" || field.type === "widget" || field.type === "addon-action-button" || field.type === "device-action-button" || field.type === "account-sign-in" || field.type === "secret-presence";
6142
6146
  }
6143
6147
  function hydrateSchema(schema, values, options = {}) {
6144
6148
  return {
@@ -9180,7 +9184,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
9180
9184
  return DeviceRole;
9181
9185
  }({});
9182
9186
  //#endregion
9183
- //#region ../types/dist/composition-CB6PMT9p.mjs
9187
+ //#region ../types/dist/composition-BJ8iAZb3.mjs
9184
9188
  /**
9185
9189
  * The ffmpeg build every CamStack node downloads, per platform and arch.
9186
9190
  *
@@ -9240,7 +9244,7 @@ portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac
9240
9244
  * ONE table for everyone who asks "is this device HIGH?": the
9241
9245
  * recorder's `RecordingTriggers.sensorDeviceIds` trigger, the post-analysis
9242
9246
  * sensor markers, the orchestrator's camera-sensors bridge and
9243
- * the sources of a composite doorbell (`doorbellFeatureSources`, D671).
9247
+ * the sources of a pulse (`compilePulseOverride`, D936).
9244
9248
  * A second copy would diverge at the first cap added, and the symptom — "the
9245
9249
  * sensor rings the doorbell but does not record" — is exactly D62.
9246
9250
  *
@@ -9481,6 +9485,20 @@ var table = {
9481
9485
  apply: () => {
9482
9486
  throw new ExpressionEvalError("count: stateful evaluation context is required");
9483
9487
  }
9488
+ },
9489
+ dwell: {
9490
+ minArgs: 3,
9491
+ maxArgs: 3,
9492
+ apply: () => {
9493
+ throw new ExpressionEvalError("dwell: stateful evaluation context is required");
9494
+ }
9495
+ },
9496
+ latchedAt: {
9497
+ minArgs: 1,
9498
+ maxArgs: 1,
9499
+ apply: () => {
9500
+ throw new ExpressionEvalError("latchedAt: stateful evaluation context is required");
9501
+ }
9484
9502
  }
9485
9503
  };
9486
9504
  Object.freeze(Object.assign(Object.create(null), table));
@@ -16480,7 +16498,15 @@ Object.freeze({
16480
16498
  kind: "fixed",
16481
16499
  result: ["number", "null"]
16482
16500
  },
16483
- count: NUMBER
16501
+ count: NUMBER,
16502
+ dwell: {
16503
+ kind: "fixed",
16504
+ result: ["boolean", "null"]
16505
+ },
16506
+ latchedAt: {
16507
+ kind: "fixed",
16508
+ result: ["number", "null"]
16509
+ }
16484
16510
  });
16485
16511
  `${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
16486
16512
  /**
@@ -42708,9 +42734,6 @@ var NcSystemEventKindSchema = _enum([
42708
42734
  "device-battery-normal",
42709
42735
  "device-consumable-low",
42710
42736
  "device-consumable-normal",
42711
- "device-tank-low",
42712
- "device-tank-full",
42713
- "device-tank-normal",
42714
42737
  "stream-online",
42715
42738
  "stream-offline",
42716
42739
  "node-online",
@@ -42757,13 +42780,14 @@ var NcSystemEventKindSchema = _enum([
42757
42780
  "camera-enabled"
42758
42781
  ]);
42759
42782
  /** The legacy tail of {@link NcSystemEventKindSchema} — see its docblock. */
42760
- var NC_LEGACY_SYSTEM_EVENT_KINDS = new Set([
42783
+ var NC_LEGACY_SYSTEM_EVENT_KINDS = [
42761
42784
  "camera-online",
42762
42785
  "camera-offline",
42763
42786
  "camera-disabled",
42764
42787
  "camera-enabled"
42765
- ]);
42766
- NcSystemEventKindSchema.options.filter((kind) => !NC_LEGACY_SYSTEM_EVENT_KINDS.has(kind));
42788
+ ];
42789
+ var NC_LEGACY_SYSTEM_EVENT_KIND_SET = new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
42790
+ NcSystemEventKindSchema.options.filter((kind) => !NC_LEGACY_SYSTEM_EVENT_KIND_SET.has(kind));
42767
42791
  /**
42768
42792
  * The panel's transitions, as ONE list.
42769
42793
  *
@@ -43882,18 +43906,11 @@ var NcRuleSchema = NcRuleInputSchema.extend({
43882
43906
  */
43883
43907
  disabledTargetIds: array(string()).default([])
43884
43908
  });
43885
- /**
43886
- * The state-summary SECTIONS (D647 / D698 / D708): the D637 kind groups that
43887
- * report a still-true state. `addons` is the crash-looped addons only and
43888
- * `addon-updates` the addons that are behind (D708 split them). `backups-exports` and `alarm` are not sections — a completed
43889
- * job is not an open state, and the alarm stays instant.
43890
- */
43891
43909
  var NcStateSummarySectionIdSchema = _enum([
43892
43910
  "device-state",
43893
43911
  "streams",
43894
43912
  "battery",
43895
43913
  "consumables",
43896
- "tanks",
43897
43914
  "detection-blind",
43898
43915
  "nodes",
43899
43916
  "addons",
@@ -54257,7 +54274,8 @@ var BatteryStatusSchema = object({
54257
54274
  */
54258
54275
  binary: boolean().optional()
54259
54276
  });
54260
- DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, method(object({
54277
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat;
54278
+ method(object({
54261
54279
  deviceId: number(),
54262
54280
  /** Bound on the wait. Sensible range 3000–10000ms. */
54263
54281
  timeoutMs: number().int().min(500).max(3e4).default(8e3)
@@ -54966,6 +54984,7 @@ var ConsumablesStatusSchema = object({
54966
54984
  })),
54967
54985
  lastChangedAt: number()
54968
54986
  });
54987
+ Object.values(DeviceType), [...ConsumableRemainingUnitSchema.options], [...ConsumableStatusSchema.options], [...ConsumableKindSchema.options], [...ConsumableFormSchema.options];
54969
54988
  Object.values(DeviceType), method(object({
54970
54989
  deviceId: number().int().nonnegative(),
54971
54990
  key: string().min(1)
@@ -55437,6 +55456,7 @@ DeviceType.Dishwasher, method(object({
55437
55456
  kind: "mutation",
55438
55457
  auth: "protected"
55439
55458
  }), method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" });
55459
+ DeviceType.Camera;
55440
55460
  object({
55441
55461
  /** Ms epoch of the last press. null = never observed since this provider started. */
55442
55462
  lastPressedAt: number().nullable(),
@@ -57229,6 +57249,7 @@ authKey: string().optional() }), object({
57229
57249
  /** Human-readable error when `ok: false`. */
57230
57250
  error: string().optional()
57231
57251
  }), { kind: "mutation" });
57252
+ DeviceType.Camera;
57232
57253
  object({
57233
57254
  detected: boolean(),
57234
57255
  /** Ms epoch of the last detected-true observation. Null if never detected. */
@@ -59292,6 +59313,24 @@ DeviceType.Camera, method(object({ deviceId: number() }), PtzAutotrackStatusSche
59292
59313
  deviceId: number(),
59293
59314
  status: PtzAutotrackStatusSchema
59294
59315
  });
59316
+ var RunningStateSourceSchema = _enum(["native", "assigned"]);
59317
+ object({
59318
+ /** null = unknown — never coerced to false (D393). */
59319
+ running: boolean().nullable(),
59320
+ /** Epoch ms the current boolean began; null while `running` is null. */
59321
+ since: number().nullable(),
59322
+ source: RunningStateSourceSchema,
59323
+ phase: string().nullable(),
59324
+ /** null until a reading has been published (D393). */
59325
+ lastFetchedAt: number().nullable()
59326
+ });
59327
+ object({
59328
+ deviceId: number(),
59329
+ since: number().nullable(),
59330
+ phase: string().nullable()
59331
+ });
59332
+ Object.values(DeviceType);
59333
+ DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
59295
59334
  DeviceType.Camera, DeviceType.Sensor, DeviceType.Switch, method(object({ deviceId: number().int().nonnegative() }), object({ success: literal(true) }), {
59296
59335
  kind: "mutation",
59297
59336
  auth: "admin"
@@ -70684,6 +70723,13 @@ Object.freeze({
70684
70723
  access: "create",
70685
70724
  role: "admin"
70686
70725
  },
70726
+ "runningState.getStatus": {
70727
+ capName: "running-state",
70728
+ capScope: "device",
70729
+ addonId: null,
70730
+ access: "view",
70731
+ role: "viewer"
70732
+ },
70687
70733
  "sceneMonitor.captureReference": {
70688
70734
  capName: "scene-monitor",
70689
70735
  capScope: "device",
@@ -75398,6 +75444,32 @@ var APPLIANCE_CAP_VOCABULARY = {
75398
75444
  }],
75399
75445
  events: { onSent: { notOperatorFacing: "a delivery receipt of a send this system made — not a fact about the world" } }
75400
75446
  },
75447
+ "running-state": {
75448
+ scope: "device",
75449
+ noun: t("Running", "In funzione"),
75450
+ state: [{
75451
+ kind: "boolean",
75452
+ field: "running",
75453
+ label: t("Running", "In funzione"),
75454
+ whenTrue: t("When {device} starts", "Quando {device} inizia"),
75455
+ whenFalse: t("When {device} finishes", "Quando {device} finisce"),
75456
+ icon: "play"
75457
+ }],
75458
+ events: {
75459
+ onStarted: {
75460
+ category: EventCategory.RunningStarted,
75461
+ label: t("Started running", "Ha iniziato a funzionare"),
75462
+ phrase: t("When {device} starts running", "Quando {device} inizia a funzionare"),
75463
+ icon: "play"
75464
+ },
75465
+ onFinished: {
75466
+ category: EventCategory.RunningFinished,
75467
+ label: t("Finished", "Ha finito"),
75468
+ phrase: t("When {device} finishes", "Quando {device} finisce"),
75469
+ icon: "square"
75470
+ }
75471
+ }
75472
+ },
75401
75473
  update: {
75402
75474
  scope: "device",
75403
75475
  noun: t("Firmware update", "Aggiornamento firmware"),
@@ -78938,6 +79010,11 @@ Object.freeze({
78938
79010
  form: "single",
78939
79011
  optional: true
78940
79012
  }],
79013
+ "runningState.getStatus": [{
79014
+ name: "deviceId",
79015
+ form: "single",
79016
+ optional: false
79017
+ }],
78941
79018
  "sceneMonitor.captureReference": [{
78942
79019
  name: "deviceId",
78943
79020
  form: "single",
@@ -79436,6 +79513,96 @@ Object.freeze({
79436
79513
  "smtp-provider": "email"
79437
79514
  });
79438
79515
  DeviceType.Camera;
79516
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher, DeviceType.Camera, DeviceType.Camera, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
79517
+ /**
79518
+ * A saved Customize assignment (D936). The schema is the type: callers use
79519
+ * `z.infer`, they do not restate the shape.
79520
+ */
79521
+ var OverrideSourceSchema = object({
79522
+ addonId: string().min(1),
79523
+ stableId: string().min(1),
79524
+ cap: string().min(1),
79525
+ fieldPath: string().min(1)
79526
+ });
79527
+ var CustomizeTransformDraftSchema = discriminatedUnion("kind", [
79528
+ object({ kind: literal("identity") }),
79529
+ object({ kind: literal("invert") }),
79530
+ object({
79531
+ kind: literal("threshold"),
79532
+ comparison: _enum(["gte", "lte"]),
79533
+ threshold: number(),
79534
+ startDwellMs: number().nonnegative(),
79535
+ stopDwellMs: number().nonnegative()
79536
+ }),
79537
+ object({
79538
+ kind: literal("linear"),
79539
+ scale: number(),
79540
+ offset: number(),
79541
+ clampMin: number().optional(),
79542
+ clampMax: number().optional()
79543
+ }),
79544
+ object({
79545
+ kind: literal("enum-map"),
79546
+ mapping: record(string(), string().nullable())
79547
+ }),
79548
+ object({ kind: literal("number") })
79549
+ ]);
79550
+ var ScalarOverrideDraftSchema = object({
79551
+ kind: literal("scalar"),
79552
+ cap: string().min(1),
79553
+ targetId: string().min(1),
79554
+ source: OverrideSourceSchema,
79555
+ transform: CustomizeTransformDraftSchema
79556
+ });
79557
+ var KeyedArrayOverrideDraftSchema = object({
79558
+ kind: literal("keyedArray"),
79559
+ cap: string().min(1),
79560
+ targetId: string().min(1),
79561
+ key: string().min(1),
79562
+ label: string().min(1),
79563
+ fieldPath: string().min(1),
79564
+ source: OverrideSourceSchema,
79565
+ transform: CustomizeTransformDraftSchema
79566
+ });
79567
+ var PulseOverrideDraftSchema = object({
79568
+ kind: literal("pulse"),
79569
+ cap: string().min(1),
79570
+ targetId: string().min(1),
79571
+ enabled: boolean(),
79572
+ debounceMs: number().nonnegative(),
79573
+ sources: array(OverrideSourceSchema).min(1)
79574
+ });
79575
+ var SpanSourceDraftSchema = OverrideSourceSchema.extend({ mode: _enum([
79576
+ "in-addition",
79577
+ "confirm",
79578
+ "replace"
79579
+ ]).optional() });
79580
+ discriminatedUnion("kind", [
79581
+ ScalarOverrideDraftSchema,
79582
+ KeyedArrayOverrideDraftSchema,
79583
+ PulseOverrideDraftSchema,
79584
+ object({
79585
+ kind: literal("span"),
79586
+ cap: string().min(1),
79587
+ targetId: string().min(1),
79588
+ timeoutMs: number().nonnegative(),
79589
+ cooldownMs: number().nonnegative().optional(),
79590
+ sources: array(SpanSourceDraftSchema)
79591
+ })
79592
+ ]);
79593
+ object({
79594
+ targetId: string().min(1),
79595
+ configured: boolean(),
79596
+ source: _enum(["native", "assigned"]),
79597
+ state: _enum([
79598
+ "active",
79599
+ "stale",
79600
+ "released",
79601
+ "unavailable"
79602
+ ]),
79603
+ reason: string().nullable()
79604
+ });
79605
+ String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
79439
79606
  var G711_SCALE_CORRECTION_DB = {
79440
79607
  PCMU: 20 * Math.log10(4),
79441
79608
  PCMA: 20 * Math.log10(8)
@@ -79488,40 +79655,7 @@ var NC_AUDIO_DEFAULTS = {
79488
79655
  samplingSeconds: 10
79489
79656
  };
79490
79657
  new Set(["devices", "classes"]);
79491
- /**
79492
- * WHICH narrowing filter speaks about WHICH system-event kind — one predicate,
79493
- * consumed by the rule ENGINE and by every rule EDITOR.
79494
- *
79495
- * ── The failure this file exists for ───────────────────────────────────────
79496
- * `NcSystemEventConditionSchema` carries four optional narrowing lists
79497
- * (`deviceIds`, `deviceTypes`, `nodeIds`, `packageNames`) beside a required
79498
- * `kinds` gate. They are not four filters over one vocabulary: each belongs to
79499
- * a FAMILY of kinds and is meaningless outside it. A node going away has no
79500
- * device type; a completed export has no package; `stream-offline` deliberately
79501
- * carries no device type at all (a stream belongs to a camera by construction).
79502
- *
79503
- * The engine applied all four to every kind, so a filter from one family failed
79504
- * a kind from another family CLOSED. The operator's live rule "Eventi di
79505
- * sistema" selected eleven kinds and set `deviceTypes: ['camera']` — the only
79506
- * way to say "only my cameras" about the two liveness kinds — and NINE of the
79507
- * eleven silently stopped being deliverable. Four days of history contained
79508
- * `device-online` and `device-offline` and nothing else, across a window in
79509
- * which agents were restarted and addons were updated.
79510
- *
79511
- * Both editors already computed this scoping, to decide which filter boxes to
79512
- * render; the cap's own docblock already promised it ("Narrow a `device-*` kind
79513
- * to these device TYPES"). Only the engine disagreed, and it disagreed in the
79514
- * destructive direction. So the rule is stated ONCE, here, and the engine and
79515
- * the editors are readers of it rather than three independent authors.
79516
- *
79517
- * ── The direction ─────────────────────────────────────────────────────────
79518
- * Out of family ⇒ the filter is IGNORED, never fail-closed. An editor that
79519
- * hides a box has already told the operator this filter does not speak about
79520
- * these kinds, so honouring it as an exclusion contradicts the only
79521
- * explanation the operator was ever given. Inside its family the filter still
79522
- * narrows, and still fails CLOSED on a subject that cannot produce the identity
79523
- * it tests (a device the mirror cannot name is not evidence of a camera).
79524
- */
79658
+ new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
79525
79659
  /**
79526
79660
  * Every filter, for the callers that must cover all of them (guards, tests).
79527
79661
  *
@@ -79547,9 +79681,6 @@ new Map(Object.entries({
79547
79681
  "device-battery-normal": "device-events",
79548
79682
  "device-consumable-low": "device-events",
79549
79683
  "device-consumable-normal": "device-events",
79550
- "device-tank-low": "device-events",
79551
- "device-tank-full": "device-events",
79552
- "device-tank-normal": "device-events",
79553
79684
  "stream-online": "device-events",
79554
79685
  "stream-offline": "device-events",
79555
79686
  "detection-blind": "device-events",
@@ -79626,16 +79757,6 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
79626
79757
  label: "Consumables",
79627
79758
  kinds: ["device-consumable-low", "device-consumable-normal"]
79628
79759
  },
79629
- {
79630
- id: "tanks",
79631
- family: "device-events",
79632
- label: "Tanks",
79633
- kinds: [
79634
- "device-tank-low",
79635
- "device-tank-full",
79636
- "device-tank-normal"
79637
- ]
79638
- },
79639
79760
  {
79640
79761
  id: "detection-blind",
79641
79762
  family: "device-events",
@@ -79793,11 +79914,6 @@ var RULE_BODY_ONLY = ["body"];
79793
79914
  var RULE_TEXT = ["title", "body"];
79794
79915
  var BATTERY = ["device-battery-low", "device-battery-normal"];
79795
79916
  var CONSUMABLE = ["device-consumable-low", "device-consumable-normal"];
79796
- var TANK = [
79797
- "device-tank-low",
79798
- "device-tank-full",
79799
- "device-tank-normal"
79800
- ];
79801
79917
  var ALERT_EPISODE = [
79802
79918
  "alert-critical",
79803
79919
  "alert-error",
@@ -79829,7 +79945,6 @@ var DEVICE_EVENTS = [
79829
79945
  "device-enabled",
79830
79946
  ...BATTERY,
79831
79947
  ...CONSUMABLE,
79832
- ...TANK,
79833
79948
  "stream-online",
79834
79949
  "stream-offline",
79835
79950
  "detection-blind",
@@ -79875,12 +79990,6 @@ var STATE_SUMMARY_SECTION_VARS = [
79875
79990
  example: "Robot — filter 10 %",
79876
79991
  kinds: CONSUMABLE
79877
79992
  },
79878
- {
79879
- name: "summaryTanks",
79880
- label: "Summary: tanks",
79881
- example: "Robot — clean water low",
79882
- kinds: TANK
79883
- },
79884
79993
  {
79885
79994
  name: "summaryDetection",
79886
79995
  label: "Summary: cameras detecting nothing",
@@ -79996,8 +80105,7 @@ var STATE_SUMMARY_VARS = [
79996
80105
  ([...RULE_TEXT], [...COMBINED_ALARM]),
79997
80106
  ([...RULE_TEXT], [...DEVICE_EVENTS]),
79998
80107
  ([...RULE_TEXT], [...BATTERY, ...CONSUMABLE]),
79999
- ([...RULE_TEXT], [...CONSUMABLE, ...TANK]),
80000
- ([...RULE_TEXT], [...TANK]),
80108
+ ([...RULE_TEXT], [...CONSUMABLE]),
80001
80109
  [...RULE_TEXT],
80002
80110
  ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
80003
80111
  ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
@@ -80101,15 +80209,6 @@ new Map([
80101
80209
  snapshotLabel: "Consumables low now",
80102
80210
  snapshotSection: "consumables"
80103
80211
  },
80104
- {
80105
- id: "tanks",
80106
- family: "device-events",
80107
- label: "Tanks (low or full / back to normal)",
80108
- bad: ["device-tank-low", "device-tank-full"],
80109
- recovery: ["device-tank-normal"],
80110
- snapshotLabel: "Tanks low or full now",
80111
- snapshotSection: "tanks"
80112
- },
80113
80212
  {
80114
80213
  id: "motion-noise",
80115
80214
  family: "device-events",
@@ -1,6 +1,6 @@
1
1
  import { S as e, d as t, u as n, v as r } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DMBKVIH7.mjs";
2
2
  import { n as i, r as a, t as o } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
3
- import { g as s, h as c } from "./responsive-BOr_1QSL.mjs";
3
+ import { g as s, h as c } from "./responsive-BsA5VAZE.mjs";
4
4
  var l = s("chevron-down", [["path", {
5
5
  d: "m6 9 6 6 6-6",
6
6
  key: "qrunsl"
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-D6XbC3Hu.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-D-DKvrkx.mjs";
2
2
  export { t as get, e as init };
@@ -1,6 +1,6 @@
1
1
  import { S as e, d as t, g as n, i as r, l as i, n as a, r as o, u as s, v as c, y as l } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DMBKVIH7.mjs";
2
2
  import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
3
- import { g as u } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-C2LtE9v7.mjs";
3
+ import { g as u } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BsM_g96G.mjs";
4
4
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
5
5
  e();
6
6
  var d = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), f = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), p = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), m = (e) => {
@@ -1,6 +1,6 @@
1
1
  import { S as e, g as t, l as n, v as r } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DMBKVIH7.mjs";
2
2
  import { n as i } from "./ui-text-BqZa5BNK.mjs";
3
- import { g as a } from "./responsive-BOr_1QSL.mjs";
3
+ import { g as a } from "./responsive-BsA5VAZE.mjs";
4
4
  var o = a("camera", [["path", {
5
5
  d: "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",
6
6
  key: "18u6gg"
@@ -1,4 +1,4 @@
1
- import { g as e } from "./responsive-BOr_1QSL.mjs";
1
+ import { g as e } from "./responsive-BsA5VAZE.mjs";
2
2
  var t = e("eye-off", [
3
3
  ["path", {
4
4
  d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",
@@ -1,4 +1,4 @@
1
- import { g as e } from "./responsive-BOr_1QSL.mjs";
1
+ import { g as e } from "./responsive-BsA5VAZE.mjs";
2
2
  var t = e("trash-2", [
3
3
  ["path", {
4
4
  d: "M10 11v6",
@@ -2753,7 +2753,7 @@ async function rr(e) {
2753
2753
  }
2754
2754
  }
2755
2755
  async function ir() {
2756
- return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-vqigWLhP.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-BQtGyoxs.mjs")).catch((e) => {
2757
2757
  throw tr = void 0, e;
2758
2758
  }), tr;
2759
2759
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-model-studio",
3
- "version": "1.1.290",
3
+ "version": "1.1.292",
4
4
  "description": "Custom detection model registry, conversion & distribution for CamStack",
5
5
  "keywords": [
6
6
  "camstack",