@camstack/addon-training 0.1.72 → 0.1.74

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 (23) hide show
  1. package/dist/{MotionZonesSettings-DtrBEodK.mjs → MotionZonesSettings-C9bkQa-A.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-DMvD-Aoa.mjs → PrivacyMaskSettings-Q8Q9kHuZ.mjs} +2 -2
  3. package/dist/{SceneMonitorEditor-DlaZqKNk.mjs → SceneMonitorEditor-DVDBQyRh.mjs} +1 -1
  4. package/dist/_stub.js +5701 -5589
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-CR71IyGN.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-BEr-JRVK.mjs} +4 -4
  6. package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CSzn01SK.mjs +26 -0
  7. package/dist/addon-training.css +1 -1
  8. package/dist/{dist-Ch3aUw2u.mjs → dist-CZ8OqMuN.mjs} +151 -89
  9. package/dist/{dist-F0HQ_GTW.js → dist-DlBWQhNT.js} +151 -89
  10. package/dist/{hostInit-CqN7AHWD.mjs → hostInit-Cb-B0_my.mjs} +3 -3
  11. package/dist/{icons-DG9GIB-J.mjs → icons-DGnDNIHD.mjs} +615 -602
  12. package/dist/index.js +1 -1
  13. package/dist/orchestrator/training.addon.js +1 -1
  14. package/dist/orchestrator/training.addon.mjs +1 -1
  15. package/dist/{player-overlays-_18EagGF.mjs → player-overlays-CGcrSt2j.mjs} +19 -12
  16. package/dist/providers/modal/training-modal.addon.js +1 -1
  17. package/dist/providers/modal/training-modal.addon.mjs +1 -1
  18. package/dist/remoteEntry.js +1 -1
  19. package/dist/{responsive-pyVT1YFE.mjs → responsive-Dbc1rEu9.mjs} +1 -1
  20. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-qU7q9e7k.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-DuCpFRYX.mjs} +1 -1
  21. package/dist/{zoom-out-BqtOwgKe.mjs → zoom-out-DzQMgNQw.mjs} +117 -130
  22. package/package.json +1 -1
  23. package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B4oJE-uP.mjs +0 -26
@@ -5597,7 +5597,7 @@ var ZodIssueCode = {
5597
5597
  var ZodFirstPartyTypeKind;
5598
5598
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5599
5599
  //#endregion
5600
- //#region ../types/dist/sleep-DJFUfKvA.mjs
5600
+ //#region ../types/dist/sleep-CUp20JkO.mjs
5601
5601
  /**
5602
5602
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5603
5603
  * window to float samples (D455).
@@ -8670,7 +8670,11 @@ var ContributionSectionSchema = object({
8670
8670
  literal(4)
8671
8671
  ]).optional(),
8672
8672
  tab: string().optional(),
8673
- location: _enum(["settings", "top-tab"]).optional(),
8673
+ location: _enum([
8674
+ "settings",
8675
+ "top-tab",
8676
+ "hero"
8677
+ ]).optional(),
8674
8678
  order: number().optional(),
8675
8679
  fields: array(any())
8676
8680
  });
@@ -13624,7 +13628,11 @@ var ConfigSectionWithValuesSchema = object({
13624
13628
  literal(4)
13625
13629
  ]).optional(),
13626
13630
  tab: string().optional(),
13627
- location: _enum(["settings", "top-tab"]).optional(),
13631
+ location: _enum([
13632
+ "settings",
13633
+ "top-tab",
13634
+ "hero"
13635
+ ]).optional(),
13628
13636
  order: number().optional(),
13629
13637
  fields: array(any())
13630
13638
  });
@@ -17398,6 +17406,52 @@ var TierStatusSchema = object({
17398
17406
  countedAt: number().nullable()
17399
17407
  });
17400
17408
  /** Operator/diagnostic view: rows per tier, last runs, refusals and drops since boot. */
17409
+ /**
17410
+ * Why a series is orphan. `device-gone`: its device is absent from the
17411
+ * successful device listings (the departure clock). `undeclared`: its `cap:`
17412
+ * key is declared by no capability any more (a field a cap removed).
17413
+ */
17414
+ var DeviceHistoryOrphanReasonSchema = _enum(["device-gone", "undeclared"]);
17415
+ /** Rows held per stored tier. */
17416
+ var TierRowsSchema = object({
17417
+ raw: number().int(),
17418
+ "5m": number().int(),
17419
+ "1h": number().int(),
17420
+ "1d": number().int()
17421
+ });
17422
+ var OrphanSeriesSchema = object({
17423
+ seriesId: number().int(),
17424
+ deviceId: number().int(),
17425
+ key: string(),
17426
+ scope: string(),
17427
+ /** The metric's display name; `null` when its metric row is gone too. */
17428
+ displayName: string().nullable(),
17429
+ reason: DeviceHistoryOrphanReasonSchema,
17430
+ /** `device-gone`: since when the device has been absent; `null` otherwise. */
17431
+ missingSince: number().nullable(),
17432
+ firstTs: number(),
17433
+ lastTs: number(),
17434
+ rows: TierRowsSchema
17435
+ });
17436
+ var DeviceHistoryOrphanDeleteRefusalSchema = _enum([
17437
+ "not-found",
17438
+ "not-orphan",
17439
+ "failed"
17440
+ ]);
17441
+ var OrphanDeleteEntrySchema = discriminatedUnion("ok", [object({
17442
+ seriesId: number().int(),
17443
+ ok: literal(true),
17444
+ deleted: TierRowsSchema
17445
+ }), object({
17446
+ seriesId: number().int(),
17447
+ ok: literal(false),
17448
+ reason: DeviceHistoryOrphanDeleteRefusalSchema
17449
+ })]);
17450
+ var OrphanListSchema = object({
17451
+ series: array(OrphanSeriesSchema).readonly(),
17452
+ /** More orphans exist than {@link DEVICE_HISTORY_ORPHAN_LIST_MAX}. */
17453
+ truncated: boolean()
17454
+ });
17401
17455
  var DeviceHistoryStatusSchema = object({
17402
17456
  startedAt: number(),
17403
17457
  /** The store is declared, series loaded and the first reconcile has answered. */
@@ -17495,7 +17549,10 @@ method(object({ deviceId: number().int() }), array(SeriesInfoSchema).readonly())
17495
17549
  }), object({ enabled: boolean() }), {
17496
17550
  kind: "mutation",
17497
17551
  auth: "admin"
17498
- }), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" });
17552
+ }), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" }), method(object({}), OrphanListSchema, { auth: "admin" }), method(object({ seriesIds: array(number().int()).min(1).max(50) }), object({ results: array(OrphanDeleteEntrySchema).readonly() }), {
17553
+ kind: "mutation",
17554
+ auth: "admin"
17555
+ });
17499
17556
  var DeviceCaStatusSchema = discriminatedUnion("state", [
17500
17557
  object({ state: literal("absent") }),
17501
17558
  object({
@@ -47970,7 +48027,6 @@ var RecommendationReasonSchema = discriminatedUnion("kind", [
47970
48027
  modelId: string()
47971
48028
  }),
47972
48029
  object({ kind: literal("cpu-device") }),
47973
- object({ kind: literal("coral-untouched") }),
47974
48030
  object({ kind: literal("device-disabled") }),
47975
48031
  object({ kind: literal("device-unavailable") }),
47976
48032
  object({ kind: literal("node-offline") }),
@@ -48068,11 +48124,6 @@ var AutoTuneWarningSchema = discriminatedUnion("kind", [
48068
48124
  kind: literal("detector-store-unreadable"),
48069
48125
  error: string()
48070
48126
  }),
48071
- object({
48072
- kind: literal("coral-enabled"),
48073
- nodeId: string(),
48074
- deviceKey: string()
48075
- }),
48076
48127
  object({
48077
48128
  kind: literal("custom-pin-kept"),
48078
48129
  nodeId: string(),
@@ -54510,17 +54561,69 @@ object({
54510
54561
  });
54511
54562
  DeviceType.Sensor;
54512
54563
  /**
54513
- * Generic device-consumables capability — surfaces a device's
54514
- * maintenance items (vacuum filters/brushes, replaceable cartridges,
54515
- * descaling cycles, …) with their remaining life and an optional
54516
- * "Replaced" reset action. Device-agnostic: any provider that knows its
54517
- * device tracks consumables can register it; the cap declares no
54518
- * vocabulary of its own — the provider names each item verbatim.
54564
+ * Generic device-consumables capability — the ONE place a device reports what
54565
+ * it uses up or fills: wear parts (vacuum filters/brushes, cartridges,
54566
+ * descaling cycles), supplies it draws from (a vacuum's clean-water tank and
54567
+ * detergent, a dishwasher's salt and rinse aid) and waste it collects (a dirty
54568
+ * water tank, a dust bin). Each item carries its remaining life or fill and an
54569
+ * optional "Replaced" reset action. Device-agnostic: any provider that knows
54570
+ * its device tracks consumables registers it; the provider names each item
54571
+ * verbatim and says which `kind` it is.
54572
+ *
54573
+ * The admin UI renders it as ONE collapsible section directly under the
54574
+ * device page's hero card (`placement: 'hero'`), for every device bound to
54575
+ * this cap — never drawn by a device type's hero card itself (D915).
54519
54576
  *
54520
54577
  * Like `childLayout`, the cap is INERT until a provider sets items: no
54521
54578
  * provider populates it by guessing (no HA inference). The UI renders a
54522
54579
  * "No consumables reported" placeholder when `items` is empty.
54523
54580
  */
54581
+ /**
54582
+ * What an item IS, which decides which direction is bad:
54583
+ * - `wear` — a part that wears out (a brush, a filter); low life is bad.
54584
+ * - `supply` — something the device draws from (clean water, detergent,
54585
+ * salt, rinse aid); low or empty is bad.
54586
+ * - `waste` — something the device fills (dirty water, a dust bin); full is
54587
+ * bad.
54588
+ * Absent = `wear`.
54589
+ */
54590
+ var ConsumableKindSchema = _enum([
54591
+ "wear",
54592
+ "supply",
54593
+ "waste"
54594
+ ]);
54595
+ /**
54596
+ * What an item LOOKS like, which decides how a client draws it — independent
54597
+ * of `kind`, which decides which direction is bad:
54598
+ * - `part` — a part that wears (a brush, a filter, a mop pad): a wear bar,
54599
+ * remaining time and a reset.
54600
+ * - `tank` — a container of liquid (clean water, dirty water): a fill gauge.
54601
+ * - `product` — something bought and refilled (detergent, salt, rinse aid):
54602
+ * a stepped level and "refill".
54603
+ * - `bin` — a container that collects waste (a dust bin): a fill gauge
54604
+ * that warns when full.
54605
+ * Absent = derived from the kind ({@link consumableFormOf}).
54606
+ */
54607
+ var ConsumableFormSchema = _enum([
54608
+ "part",
54609
+ "tank",
54610
+ "product",
54611
+ "bin"
54612
+ ]);
54613
+ /** The provider's own discrete verdict on an item. */
54614
+ var ConsumableStatusSchema = _enum([
54615
+ "ok",
54616
+ "low",
54617
+ "empty",
54618
+ "full",
54619
+ "replace"
54620
+ ]);
54621
+ _enum([
54622
+ "ok",
54623
+ "low",
54624
+ "empty",
54625
+ "full"
54626
+ ]);
54524
54627
  /** Units a remaining-life counter is reported in. Closed: the panel renders
54525
54628
  * each. */
54526
54629
  var ConsumableRemainingUnitSchema = _enum([
@@ -54540,10 +54643,14 @@ var ConsumablesStatusSchema = object({
54540
54643
  key: string().min(1),
54541
54644
  /** Display name. */
54542
54645
  label: string().min(1),
54543
- /** Remaining life % when known (0..100). */
54646
+ /** Remaining life % (`wear`) or fill % (`supply`, `waste`) when known (0..100). */
54544
54647
  level: number().min(0).max(100).nullable(),
54545
- /** Discrete state when known (binary mode). */
54546
- status: _enum(["ok", "replace"]).nullable(),
54648
+ /** The provider's discrete verdict when known (binary mode). */
54649
+ status: ConsumableStatusSchema.nullable(),
54650
+ /** What the item is — decides whether low or full is bad. Absent = `wear`. */
54651
+ kind: ConsumableKindSchema.optional(),
54652
+ /** How the item is drawn (part, tank, product, bin). Absent = derived from `kind`. */
54653
+ form: ConsumableFormSchema.optional(),
54547
54654
  /** Ms epoch of the last replace, when known. */
54548
54655
  lastResetAt: number().nullable(),
54549
54656
  /** Whether `reset()` is meaningful for this item. */
@@ -54778,8 +54885,9 @@ object({
54778
54885
  status: DeviceStatusSchema
54779
54886
  });
54780
54887
  /**
54781
- * Smart-dishwasher cap — program lifecycle, door / remote-start gates,
54782
- * consumable levels (salt, rinse aid) and common program options.
54888
+ * Smart-dishwasher cap — program lifecycle, door / remote-start gates and
54889
+ * common program options. Salt and rinse aid are NOT here: they are items of
54890
+ * the device's `consumables` cap, like every other device's (D915).
54783
54891
  *
54784
54892
  * Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
54785
54893
  * by any integration that exposes the same program / option surface.
@@ -54827,11 +54935,6 @@ var DishwasherAvailabilitySchema = _enum([
54827
54935
  "offline",
54828
54936
  "description-missing"
54829
54937
  ]);
54830
- var DishwasherConsumableLevelSchema = _enum([
54831
- "ok",
54832
- "low",
54833
- "empty"
54834
- ]);
54835
54938
  object({
54836
54939
  availability: DishwasherAvailabilitySchema,
54837
54940
  /** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
@@ -54864,8 +54967,6 @@ object({
54864
54967
  powerOn: boolean().nullable(),
54865
54968
  /** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
54866
54969
  powerState: string().nullable(),
54867
- saltLevel: DishwasherConsumableLevelSchema.nullable(),
54868
- rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
54869
54970
  /**
54870
54971
  * True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
54871
54972
  * combined care-and-filter reminder raised); false when every such reminder reads clear; null
@@ -61648,60 +61749,17 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
61648
61749
  auth: "admin",
61649
61750
  access: "delete"
61650
61751
  });
61651
- /**
61652
- * Robot-vacuum cap. Models HA `vacuum.*` entities — anything with a
61653
- * cleaning lifecycle plus a return-to-base / locate surface and an
61654
- * optional fan-speed selector.
61655
- *
61656
- * State follows HA's canonical vacuum lifecycle: `idle` / `cleaning` /
61657
- * `paused` / `returning` / `docked` / `error`. `batteryLevel`
61658
- * (0..100) is nullable — some vacuums don't report a battery
61659
- * percentage. `fanSpeed` is the current speed token (provider-verbatim,
61660
- * e.g. `'standard'` / `'turbo'`) and `availableFanSpeeds` lists the
61661
- * tokens the hardware accepts so the UI renders only supported choices.
61662
- *
61663
- * The `setFanSpeed` method takes the bare `speed` token — the provider
61664
- * validates it against the vacuum's own list. `locate` triggers the
61665
- * find-me chirp; `returnToBase` sends it home.
61666
- *
61667
- * Consumable / waste tanks: `cleanWater` / `dirtyWater` / `detergent` /
61668
- * `dustBin` each carry a nullable `{ level (0..100 %), status ('ok' |
61669
- * 'low' | 'full') }` reading. Native providers (e.g. Dreame, Roborock)
61670
- * SHOULD populate whichever tanks the hardware has — leave a field `null`
61671
- * only when the device has no such tank at all, and use a `TankStatus`
61672
- * with both inner fields `null` when the tank exists but its level is
61673
- * currently unknown. HA `vacuum.*` entities expose no per-tank telemetry,
61674
- * so the HA provider leaves all four `null`.
61675
- */
61676
- var VacuumStateSchema = _enum([
61677
- "idle",
61678
- "cleaning",
61679
- "paused",
61680
- "returning",
61681
- "docked",
61682
- "drying",
61683
- "error"
61684
- ]);
61685
- /**
61686
- * One consumable / waste tank on a robot vacuum (clean-water, dirty-water,
61687
- * detergent or dust-bin). A tank can report a numeric fill `level` (0..100),
61688
- * a discrete `status` (binary-style hardware), or both. Both `null` means the
61689
- * level is currently unknown; the OWNING field being `null` means the
61690
- * hardware has no such tank at all.
61691
- */
61692
- var TankStatusSchema = object({
61693
- /** Numeric fill 0..100 when the hardware reports a percentage; null otherwise. */
61694
- level: number().min(0).max(100).nullable(),
61695
- /** Discrete state when the hardware is binary-mode; null otherwise. */
61696
- status: _enum([
61697
- "ok",
61698
- "low",
61699
- "full"
61700
- ]).nullable()
61701
- });
61702
61752
  object({
61703
61753
  /** Lifecycle state of the vacuum. */
61704
- state: VacuumStateSchema,
61754
+ state: _enum([
61755
+ "idle",
61756
+ "cleaning",
61757
+ "paused",
61758
+ "returning",
61759
+ "docked",
61760
+ "drying",
61761
+ "error"
61762
+ ]),
61705
61763
  /** 0..100 battery percentage. Null when the device has no battery
61706
61764
  * reading. */
61707
61765
  batteryLevel: number().min(0).max(100).nullable(),
@@ -61710,14 +61768,6 @@ object({
61710
61768
  fanSpeed: string().nullable(),
61711
61769
  /** Speed tokens the hardware accepts — drives the UI selector. */
61712
61770
  availableFanSpeeds: array(string()),
61713
- /** Clean-water (mop) tank. Null when the hardware has no clean-water tank. */
61714
- cleanWater: TankStatusSchema.nullable(),
61715
- /** Dirty-water (recovery) tank. Null when the hardware has no dirty-water tank. */
61716
- dirtyWater: TankStatusSchema.nullable(),
61717
- /** Detergent tank. Null when the hardware has no detergent tank. */
61718
- detergent: TankStatusSchema.nullable(),
61719
- /** Dust bin. Null when the hardware has no dust bin. */
61720
- dustBin: TankStatusSchema.nullable(),
61721
61771
  /** 0..100 cleaning-completion percentage of the current task, or null. */
61722
61772
  progressPercent: number().min(0).max(100).nullable(),
61723
61773
  /** Current error code (0 / null = no error). */
@@ -64358,6 +64408,12 @@ Object.freeze({
64358
64408
  addonId: null,
64359
64409
  access: "create"
64360
64410
  },
64411
+ "deviceHistory.deleteOrphanSeries": {
64412
+ capName: "device-history",
64413
+ capScope: "system",
64414
+ addonId: null,
64415
+ access: "delete"
64416
+ },
64361
64417
  "deviceHistory.getDeviceEnabled": {
64362
64418
  capName: "device-history",
64363
64419
  capScope: "system",
@@ -64376,6 +64432,12 @@ Object.freeze({
64376
64432
  addonId: null,
64377
64433
  access: "view"
64378
64434
  },
64435
+ "deviceHistory.listOrphanSeries": {
64436
+ capName: "device-history",
64437
+ capScope: "system",
64438
+ addonId: null,
64439
+ access: "view"
64440
+ },
64379
64441
  "deviceHistory.listSeries": {
64380
64442
  capName: "device-history",
64381
64443
  capScope: "system",
@@ -74381,7 +74443,7 @@ var STATE_SUMMARY_VARS = [
74381
74443
  ([...RULE_TEXT], [...COMBINED_ALARM]),
74382
74444
  ([...RULE_TEXT], [...DEVICE_EVENTS]),
74383
74445
  ([...RULE_TEXT], [...BATTERY, ...CONSUMABLE]),
74384
- ([...RULE_TEXT], [...CONSUMABLE]),
74446
+ ([...RULE_TEXT], [...CONSUMABLE, ...TANK]),
74385
74447
  ([...RULE_TEXT], [...TANK]),
74386
74448
  [...RULE_TEXT],
74387
74449
  ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.398",
39
+ version: "1.2.401",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -45,7 +45,7 @@ async function r() {
45
45
  }
46
46
  },
47
47
  "@camstack/sdk": {
48
- version: "1.2.148",
48
+ version: "1.2.150",
49
49
  scope: "default",
50
50
  shareConfig: {
51
51
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.315",
84
+ version: "1.2.317",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,