@camstack/addon-model-studio 1.1.306 → 1.1.307

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 (18) hide show
  1. package/dist/{MotionZonesSettings-BdAF3Lx2.mjs → MotionZonesSettings-DkgjOPCB.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-bRMKWnGr.mjs → PrivacyMaskSettings-fESQpFIS.mjs} +4 -4
  3. package/dist/{SceneMonitorEditor-DffVOhzN.mjs → SceneMonitorEditor-C9B7EixP.mjs} +123 -124
  4. package/dist/_stub.js +4265 -4277
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-DVVRygHY.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-DLl1PFV-.mjs} +3 -3
  6. package/dist/{_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CsIeC3fr.mjs → _virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BQQ1gj_P.mjs} +1 -1
  7. package/dist/addon-model-studio.css +1 -1
  8. package/dist/{hostInit-fNjQtgdi.mjs → hostInit-DHIO-yMd.mjs} +2 -2
  9. package/dist/model-studio.addon.js +37 -6
  10. package/dist/model-studio.addon.mjs +37 -6
  11. package/dist/{player-overlays-BQux3aXS.mjs → player-overlays-SAR77Y-f.mjs} +1 -1
  12. package/dist/remoteEntry.js +1 -1
  13. package/dist/{responsive-BOS8RfJa.mjs → responsive-DhsW4w_p.mjs} +1 -1
  14. package/dist/{scene-monitor-copy-CaVNQakt.mjs → scene-monitor-copy-BYVAve5e.mjs} +63 -50
  15. package/dist/{square-DCA-7eaY.mjs → square-Dy3-P6UW.mjs} +1 -1
  16. package/dist/{trash-2-DYZFq4gu.mjs → trash-2-DScdmxQC.mjs} +1 -1
  17. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-CWXLGHpz.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-cC9vn7dW.mjs} +1 -1
  18. package/package.json +1 -1
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.424",
39
+ version: "1.2.427",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.335",
84
+ version: "1.2.336",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
@@ -17619,7 +17619,22 @@ var BrokerProviderInfoSchema = object({
17619
17619
  */
17620
17620
  interactiveConnectPath: string().min(1).optional(),
17621
17621
  /** Relative hub path to disconnect the linked account (same popup pattern). */
17622
- interactiveDisconnectPath: string().min(1).optional()
17622
+ interactiveDisconnectPath: string().min(1).optional(),
17623
+ /**
17624
+ * The kind signs in through a server-held interactive session instead of
17625
+ * (or before) typed credentials. `basePath` is a hub-relative route set
17626
+ * served by the owning addon (`/addon/<id>/...`) speaking the sign-in
17627
+ * contract: `POST {basePath}/start` (body: the form's settings) answers
17628
+ * `{ sessionId, loginUrl }`; `GET {basePath}/status?sessionId=` answers
17629
+ * `{ phase: 'starting' | 'awaiting-login' | 'captured' | 'error' |
17630
+ * 'cancelled', loginUrl, error }`; `POST {basePath}/commit`
17631
+ * (`{ sessionId, name, brokerId? }`) stores the credentials on a new or
17632
+ * existing broker and answers `{ brokerId }`; `POST {basePath}/cancel`
17633
+ * (`{ sessionId }`) drops the session. The dialog that edits a broker
17634
+ * offers it as the default path; the fields the session fills are
17635
+ * marked `filledBySignIn` in the kind's settings schema.
17636
+ */
17637
+ signIn: object({ basePath: string().min(1) }).optional()
17623
17638
  }))
17624
17639
  });
17625
17640
  var ListInputSchema = object({
@@ -57400,7 +57415,7 @@ var BatteryStatusSchema = object({
57400
57415
  */
57401
57416
  binary: boolean().optional().meta({ label: "Binary indicator" })
57402
57417
  });
57403
- DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat;
57418
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.EventEmitter;
57404
57419
  method(object({
57405
57420
  deviceId: number(),
57406
57421
  /** Bound on the wait. Sensible range 3000–10000ms. */
@@ -62002,9 +62017,9 @@ object({
62002
62017
  /** Cumulative energy in kilowatt-hours since the meter was reset. */
62003
62018
  kwhTotal: number().optional().meta(readingMeta("energy", { label: "Energy" })),
62004
62019
  /** Voltage in volts. */
62005
- volts: number().optional().meta(readingMeta("voltage")),
62020
+ volts: number().optional().meta(readingMeta("voltage", { label: "Voltage" })),
62006
62021
  /** Current in amperes. */
62007
- amps: number().optional().meta(readingMeta("current")),
62022
+ amps: number().optional().meta(readingMeta("current", { label: "Current" })),
62008
62023
  /** Apparent power in volt-amperes. */
62009
62024
  va: number().optional().meta(readingMeta("apparent-power")),
62010
62025
  /** Power factor (0..1) if reported. */
@@ -62012,7 +62027,23 @@ object({
62012
62027
  /** Ms epoch when the slice was last updated. */
62013
62028
  lastFetchedAt: number()
62014
62029
  });
62015
- DeviceType.Sensor, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher;
62030
+ [
62031
+ DeviceType.Sensor,
62032
+ DeviceType.Switch,
62033
+ DeviceType.Light,
62034
+ DeviceType.Fan,
62035
+ DeviceType.Climate,
62036
+ DeviceType.Thermostat,
62037
+ DeviceType.Humidifier,
62038
+ DeviceType.WaterHeater,
62039
+ DeviceType.MediaPlayer,
62040
+ DeviceType.Washer,
62041
+ DeviceType.Dryer,
62042
+ DeviceType.Dishwasher,
62043
+ DeviceType.Vacuum,
62044
+ DeviceType.LawnMower,
62045
+ DeviceType.PetFeeder
62046
+ ].filter((type) => type !== DeviceType.Sensor);
62016
62047
  /**
62017
62048
  * Presence cap. Models HA `person.*` and `device_tracker.*` entities
62018
62049
  * on `DeviceType.Presence`. Read-only — no setters: presence is
@@ -66192,7 +66223,7 @@ method(object({}), array(TrainingBaseModelSchema).readonly(), { auth: "admin" })
66192
66223
  });
66193
66224
  DeviceFeature.FanSpeed, DeviceFeature.FanPreset, DeviceFeature.FanDirection, DeviceFeature.FanOscillating, DeviceFeature.CoverPositionable, DeviceFeature.CoverTilt, DeviceFeature.ValvePositionable, DeviceFeature.MediaPlayerVolume, DeviceFeature.ClimateFanMode;
66194
66225
  SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
66195
- 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.Washer, DeviceType.Dryer, DeviceType.Camera, DeviceType.Camera, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
66226
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.EventEmitter, 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.Washer, DeviceType.Dryer, DeviceType.Camera, DeviceType.Camera, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
66196
66227
  String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
66197
66228
  DeviceRole.BinarySensor, DeviceRole.MotionSensor;
66198
66229
  new Set(CAP_NAMES);
@@ -17593,7 +17593,22 @@ var BrokerProviderInfoSchema = object({
17593
17593
  */
17594
17594
  interactiveConnectPath: string().min(1).optional(),
17595
17595
  /** Relative hub path to disconnect the linked account (same popup pattern). */
17596
- interactiveDisconnectPath: string().min(1).optional()
17596
+ interactiveDisconnectPath: string().min(1).optional(),
17597
+ /**
17598
+ * The kind signs in through a server-held interactive session instead of
17599
+ * (or before) typed credentials. `basePath` is a hub-relative route set
17600
+ * served by the owning addon (`/addon/<id>/...`) speaking the sign-in
17601
+ * contract: `POST {basePath}/start` (body: the form's settings) answers
17602
+ * `{ sessionId, loginUrl }`; `GET {basePath}/status?sessionId=` answers
17603
+ * `{ phase: 'starting' | 'awaiting-login' | 'captured' | 'error' |
17604
+ * 'cancelled', loginUrl, error }`; `POST {basePath}/commit`
17605
+ * (`{ sessionId, name, brokerId? }`) stores the credentials on a new or
17606
+ * existing broker and answers `{ brokerId }`; `POST {basePath}/cancel`
17607
+ * (`{ sessionId }`) drops the session. The dialog that edits a broker
17608
+ * offers it as the default path; the fields the session fills are
17609
+ * marked `filledBySignIn` in the kind's settings schema.
17610
+ */
17611
+ signIn: object({ basePath: string().min(1) }).optional()
17597
17612
  }))
17598
17613
  });
17599
17614
  var ListInputSchema = object({
@@ -57374,7 +57389,7 @@ var BatteryStatusSchema = object({
57374
57389
  */
57375
57390
  binary: boolean().optional().meta({ label: "Binary indicator" })
57376
57391
  });
57377
- DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat;
57392
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.EventEmitter;
57378
57393
  method(object({
57379
57394
  deviceId: number(),
57380
57395
  /** Bound on the wait. Sensible range 3000–10000ms. */
@@ -61976,9 +61991,9 @@ object({
61976
61991
  /** Cumulative energy in kilowatt-hours since the meter was reset. */
61977
61992
  kwhTotal: number().optional().meta(readingMeta("energy", { label: "Energy" })),
61978
61993
  /** Voltage in volts. */
61979
- volts: number().optional().meta(readingMeta("voltage")),
61994
+ volts: number().optional().meta(readingMeta("voltage", { label: "Voltage" })),
61980
61995
  /** Current in amperes. */
61981
- amps: number().optional().meta(readingMeta("current")),
61996
+ amps: number().optional().meta(readingMeta("current", { label: "Current" })),
61982
61997
  /** Apparent power in volt-amperes. */
61983
61998
  va: number().optional().meta(readingMeta("apparent-power")),
61984
61999
  /** Power factor (0..1) if reported. */
@@ -61986,7 +62001,23 @@ object({
61986
62001
  /** Ms epoch when the slice was last updated. */
61987
62002
  lastFetchedAt: number()
61988
62003
  });
61989
- DeviceType.Sensor, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher;
62004
+ [
62005
+ DeviceType.Sensor,
62006
+ DeviceType.Switch,
62007
+ DeviceType.Light,
62008
+ DeviceType.Fan,
62009
+ DeviceType.Climate,
62010
+ DeviceType.Thermostat,
62011
+ DeviceType.Humidifier,
62012
+ DeviceType.WaterHeater,
62013
+ DeviceType.MediaPlayer,
62014
+ DeviceType.Washer,
62015
+ DeviceType.Dryer,
62016
+ DeviceType.Dishwasher,
62017
+ DeviceType.Vacuum,
62018
+ DeviceType.LawnMower,
62019
+ DeviceType.PetFeeder
62020
+ ].filter((type) => type !== DeviceType.Sensor);
61990
62021
  /**
61991
62022
  * Presence cap. Models HA `person.*` and `device_tracker.*` entities
61992
62023
  * on `DeviceType.Presence`. Read-only — no setters: presence is
@@ -66166,7 +66197,7 @@ method(object({}), array(TrainingBaseModelSchema).readonly(), { auth: "admin" })
66166
66197
  });
66167
66198
  DeviceFeature.FanSpeed, DeviceFeature.FanPreset, DeviceFeature.FanDirection, DeviceFeature.FanOscillating, DeviceFeature.CoverPositionable, DeviceFeature.CoverTilt, DeviceFeature.ValvePositionable, DeviceFeature.MediaPlayerVolume, DeviceFeature.ClimateFanMode;
66168
66199
  SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
66169
- 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.Washer, DeviceType.Dryer, DeviceType.Camera, DeviceType.Camera, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
66200
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.EventEmitter, 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.Washer, DeviceType.Dryer, DeviceType.Camera, DeviceType.Camera, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
66170
66201
  String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
66171
66202
  DeviceRole.BinarySensor, DeviceRole.MotionSensor;
66172
66203
  new Set(CAP_NAMES);
@@ -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 { _ as s, g as c } from "./responsive-BOS8RfJa.mjs";
3
+ import { _ as s, g as c } from "./responsive-DhsW4w_p.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-CWXLGHpz.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-cC9vn7dW.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 { S as u } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CsIeC3fr.mjs";
3
+ import { S as u } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BQQ1gj_P.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,7 +1,8 @@
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
- import { n as i } from "./ui-text-BqZa5BNK.mjs";
3
- import { _ as a } from "./responsive-BOS8RfJa.mjs";
4
- var o = a("camera", [["path", {
1
+ import { S as e, g as t, l as n, u as r, v as i } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DMBKVIH7.mjs";
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 { n as a } from "./ui-text-BqZa5BNK.mjs";
4
+ import { _ as o, g as s } from "./responsive-DhsW4w_p.mjs";
5
+ var c = o("camera", [["path", {
5
6
  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
7
  key: "18u6gg"
7
8
  }], ["circle", {
@@ -9,7 +10,7 @@ var o = a("camera", [["path", {
9
10
  cy: "13",
10
11
  r: "3",
11
12
  key: "1vg3eu"
12
- }]]), s = a("image-off", [
13
+ }]]), l = o("image-off", [
13
14
  ["line", {
14
15
  x1: "2",
15
16
  x2: "22",
@@ -43,7 +44,7 @@ var o = a("camera", [["path", {
43
44
  d: "M21 15V5a2 2 0 0 0-2-2H9",
44
45
  key: "43el77"
45
46
  }]
46
- ]), c = a("rotate-ccw", [["path", {
47
+ ]), u = o("rotate-ccw", [["path", {
47
48
  d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",
48
49
  key: "1357e3"
49
50
  }], ["path", {
@@ -51,53 +52,65 @@ var o = a("camera", [["path", {
51
52
  key: "1xhq8a"
52
53
  }]]);
53
54
  //#endregion
54
- //#region ../ui-library/src/lib/hub-mount.ts
55
+ //#region ../ui-library/src/composites/confirm-dialog.tsx
55
56
  e();
56
- var l = "camstack-mount", u = /^\/(?:[A-Za-z0-9_\-.]+\/)*$/, d = null;
57
- function f(e) {
57
+ var d = s("camstack:confirm-dialog", null);
58
+ function f() {
59
+ let e = r(d);
60
+ if (!e) throw Error("useConfirm must be used within ConfirmDialogProvider");
61
+ return e;
62
+ }
63
+ function p() {
64
+ return f().confirm;
65
+ }
66
+ //#endregion
67
+ //#region ../ui-library/src/lib/hub-mount.ts
68
+ var m = "camstack-mount", h = /^\/(?:[A-Za-z0-9_\-.]+\/)*$/, g = null;
69
+ function _(e) {
58
70
  if (e == null || e === "") return null;
59
71
  let t = e.endsWith("/") ? e : `${e}/`;
60
- return !u.test(t) || t.includes("/../") || t.includes("/./") ? null : t;
72
+ return !h.test(t) || t.includes("/../") || t.includes("/./") ? null : t;
61
73
  }
62
- function p() {
74
+ function v() {
63
75
  if (typeof document > "u") return "/";
64
- let e = f(document.querySelector(`meta[name="${l}"]`)?.getAttribute("content"));
76
+ let e = _(document.querySelector(`meta[name="${m}"]`)?.getAttribute("content"));
65
77
  if (e !== null) return e;
66
78
  if (document.querySelector("base[href]") !== null) try {
67
79
  let e = new URL(document.baseURI);
68
80
  if (e.origin === window.location.origin) {
69
- let t = f(e.pathname);
81
+ let t = _(e.pathname);
70
82
  if (t !== null) return t;
71
83
  }
72
84
  } catch {}
73
85
  return "/";
74
86
  }
75
- function m() {
76
- return d === null && (d = p()), d;
87
+ function y() {
88
+ return g === null && (g = v()), g;
77
89
  }
78
- function h() {
79
- return m().replace(/\/$/, "");
90
+ function b() {
91
+ return y().replace(/\/$/, "");
80
92
  }
81
- function g(e) {
93
+ function x(e) {
82
94
  return /^[a-z][a-z0-9+.-]*:/i.test(e) || e.startsWith("//");
83
95
  }
84
- function _(e) {
85
- if (g(e)) return e;
86
- let t = m(), n = e.replace(/^\/+/, "");
87
- return t !== "/" && (e === h() || e.startsWith(t)) ? e : `${t}${n}`;
96
+ function S(e) {
97
+ if (x(e)) return e;
98
+ let t = y(), n = e.replace(/^\/+/, "");
99
+ return t !== "/" && (e === b() || e.startsWith(t)) ? e : `${t}${n}`;
88
100
  }
89
101
  //#endregion
90
102
  //#region ../ui-library/src/hooks/use-device-snapshot.ts
91
- var v = "/addon/snapshot/media";
92
- function y(e, i = {}) {
93
- let { width: a, baseUrl: o } = i, [s, c] = r(0);
103
+ e();
104
+ var C = "/addon/snapshot/media";
105
+ function w(e, r = {}) {
106
+ let { width: a, baseUrl: o } = r, [s, c] = i(0);
94
107
  return {
95
108
  src: t(() => {
96
109
  if (e === null || e <= 0) return null;
97
- let t = o === void 0 ? h() : o.replace(/\/+$/, ""), n = new URLSearchParams();
110
+ let t = o === void 0 ? b() : o.replace(/\/+$/, ""), n = new URLSearchParams();
98
111
  a !== void 0 && Number.isInteger(a) && a > 0 && n.set("w", String(a)), s > 0 && (n.set("force", "1"), n.set("r", String(s)));
99
112
  let r = n.toString();
100
- return `${t}${v}/${String(e)}.jpg${r.length > 0 ? `?${r}` : ""}`;
113
+ return `${t}${C}/${String(e)}.jpg${r.length > 0 ? `?${r}` : ""}`;
101
114
  }, [
102
115
  e,
103
116
  a,
@@ -112,7 +125,7 @@ function y(e, i = {}) {
112
125
  }
113
126
  //#endregion
114
127
  //#region ../ui-library/src/composites/cap-settings/scene-monitor-copy.ts
115
- var b = ["day", "ir"], x = {
128
+ var T = ["day", "ir"], E = {
116
129
  day: {
117
130
  labelKey: "uiLibrary.sceneMonitor.variant.day",
118
131
  labelFallback: "Daylight"
@@ -134,17 +147,17 @@ var b = ["day", "ir"], x = {
134
147
  labelFallback: "Dusk"
135
148
  }
136
149
  };
137
- function S(e, t = i) {
138
- let n = x[e];
150
+ function D(e, t = a) {
151
+ let n = E[e];
139
152
  return n === void 0 ? e : t(n.labelKey, n.labelFallback);
140
153
  }
141
- function C(e, t = i) {
142
- let n = new Set(e.coveredConditions), r = b.map((e) => `${S(e, t)} ${n.has(e) ? "✓" : "✗"}`), a = [...n].filter((e) => !b.some((t) => t === e));
143
- for (let e of a) r.push(`${S(e, t)} ✓`);
144
- let o = b.filter((e) => !n.has(e));
154
+ function O(e, t = a) {
155
+ let n = new Set(e.coveredConditions), r = T.map((e) => `${D(e, t)} ${n.has(e) ? "✓" : "✗"}`), i = [...n].filter((e) => !T.some((t) => t === e));
156
+ for (let e of i) r.push(`${D(e, t)} ✓`);
157
+ let o = T.filter((e) => !n.has(e));
145
158
  if (o.length === 0) return r.join(" · ");
146
159
  if (n.size === 0) return t("uiLibrary.sceneMonitor.coverage.empty", "{{parts}} — nothing captured yet, so this scene is not watching.", { parts: r.join(" · ") });
147
- let [s = "", c] = o.map((e) => S(e, t).toLowerCase()), l = c === void 0 ? s : t("uiLibrary.sceneMonitor.coverage.namesJoin", "{{first}} and {{second}}", {
160
+ let [s = "", c] = o.map((e) => D(e, t).toLowerCase()), l = c === void 0 ? s : t("uiLibrary.sceneMonitor.coverage.namesJoin", "{{first}} and {{second}}", {
148
161
  first: s,
149
162
  second: c
150
163
  }), u = {
@@ -153,10 +166,10 @@ function C(e, t = i) {
153
166
  };
154
167
  return e.onUncoveredCondition === "judge-anyway" ? t("uiLibrary.sceneMonitor.coverage.judgeAnyway", "{{parts}} — {{names}} judged against the references you do have.", u) : t("uiLibrary.sceneMonitor.coverage.skip", "{{parts}} — optional; checks in {{names}} are skipped.", u);
155
168
  }
156
- function w(e, t = i) {
157
- return e.suspendedCondition === null ? null : t("uiLibrary.sceneMonitor.suspension", "Paused — nothing was captured in {{light}}, so checks are on hold until the light changes back. Capture {{light}} if you want it watched around the clock.", { light: S(e.suspendedCondition, t).toLowerCase() });
169
+ function k(e, t = a) {
170
+ return e.suspendedCondition === null ? null : t("uiLibrary.sceneMonitor.suspension", "Paused — nothing was captured in {{light}}, so checks are on hold until the light changes back. Capture {{light}} if you want it watched around the clock.", { light: D(e.suspendedCondition, t).toLowerCase() });
158
171
  }
159
- var T = {
172
+ var A = {
160
173
  "no-reference-for-condition": {
161
174
  key: "uiLibrary.sceneMonitor.unavailable.no_reference_for_condition",
162
175
  fallback: "can’t tell — nothing has been captured for this scene yet. Press “Capture daylight” to photograph what normal looks like."
@@ -178,19 +191,19 @@ var T = {
178
191
  fallback: "can’t tell — this camera did not return a frame."
179
192
  }
180
193
  };
181
- function E(e, t, n = i) {
194
+ function j(e, t, n = a) {
182
195
  if (e.states.length === 0) return n("uiLibrary.sceneMonitor.status.notArmed", "Not armed yet — capture the initial state to start watching.");
183
196
  if (e.verdict === "unknown") {
184
197
  if (e.unavailable === null) return n("uiLibrary.sceneMonitor.status.cantTellNow", "can’t tell right now.");
185
- let t = T[e.unavailable];
198
+ let t = A[e.unavailable];
186
199
  return n(t.key, t.fallback);
187
200
  }
188
- let r = e.verdict === "diverged" ? e.divergedAt : e.armedAt, a = r === null ? "" : ` ${n("uiLibrary.sceneMonitor.status.heldFor", "for {{duration}}", { duration: A(Math.max(0, t - r)) })}`;
189
- if (e.latched) return e.verdict === "diverged" ? n("uiLibrary.sceneMonitor.status.changedLatched", "CHANGED{{held}} — press Reset when you have dealt with it.", { held: a }) : n("uiLibrary.sceneMonitor.status.backToNormal", "Back to normal, but still flagged as changed{{held}}. Press Reset to clear it.", { held: a });
190
- let o = w(e, n);
191
- return o === null ? e.verdict === "diverged" ? n("uiLibrary.sceneMonitor.status.changed", "CHANGED{{held}}", { held: a }) : n("uiLibrary.sceneMonitor.status.normal", "Normal{{held}}", { held: a }) : o;
201
+ let r = e.verdict === "diverged" ? e.divergedAt : e.armedAt, i = r === null ? "" : ` ${n("uiLibrary.sceneMonitor.status.heldFor", "for {{duration}}", { duration: F(Math.max(0, t - r)) })}`;
202
+ if (e.latched) return e.verdict === "diverged" ? n("uiLibrary.sceneMonitor.status.changedLatched", "CHANGED{{held}} — press Reset when you have dealt with it.", { held: i }) : n("uiLibrary.sceneMonitor.status.backToNormal", "Back to normal, but still flagged as changed{{held}}. Press Reset to clear it.", { held: i });
203
+ let o = k(e, n);
204
+ return o === null ? e.verdict === "diverged" ? n("uiLibrary.sceneMonitor.status.changed", "CHANGED{{held}}", { held: i }) : n("uiLibrary.sceneMonitor.status.normal", "Normal{{held}}", { held: i }) : o;
192
205
  }
193
- function D(e, t = i) {
206
+ function M(e, t = a) {
194
207
  return e.states.length === 0 ? {
195
208
  text: t("uiLibrary.sceneMonitor.badge.notArmed", "Not armed"),
196
209
  tone: "unknown"
@@ -211,11 +224,11 @@ function D(e, t = i) {
211
224
  tone: "unknown"
212
225
  };
213
226
  }
214
- var O = .4;
215
- function k(e) {
216
- return e.width * e.height > O;
227
+ var N = .4;
228
+ function P(e) {
229
+ return e.width * e.height > N;
217
230
  }
218
- function A(e) {
231
+ function F(e) {
219
232
  let t = Math.floor(e / 1e3);
220
233
  if (t < 60) return `${t}s`;
221
234
  let n = Math.floor(t / 60);
@@ -224,4 +237,4 @@ function A(e) {
224
237
  return r < 48 ? `${r}h` : `${Math.floor(r / 24)}d`;
225
238
  }
226
239
  //#endregion
227
- export { E as a, _ as c, o as d, k as i, c as l, D as n, S as o, C as r, y as s, b as t, s as u };
240
+ export { j as a, S as c, l as d, c as f, P as i, p as l, M as n, D as o, O as r, w as s, T as t, u };
@@ -1,4 +1,4 @@
1
- import { _ as e } from "./responsive-BOS8RfJa.mjs";
1
+ import { _ as e } from "./responsive-DhsW4w_p.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 { _ as e } from "./responsive-BOS8RfJa.mjs";
1
+ import { _ as e } from "./responsive-DhsW4w_p.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-DVVRygHY.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-DLl1PFV-.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.306",
3
+ "version": "1.1.307",
4
4
  "description": "Custom detection model registry, conversion & distribution for CamStack",
5
5
  "keywords": [
6
6
  "camstack",