@camstack/ui-library 1.2.332 → 1.2.334

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -16,6 +16,7 @@ import * as __mfHostReactDOMClient from "react-dom/client";
16
16
  import { createRoot } from "react-dom/client";
17
17
  import * as __mfHostTrpcClient from "@trpc/client";
18
18
  import { createTRPCClient, createWSClient, httpLink, splitLink, wsLink } from "@trpc/client";
19
+ import { resolveContainerPrimaryChild as resolveContainerPrimaryChild$1 } from "@camstack/types/client";
19
20
  import { createSystem } from "@camstack/sdk";
20
21
  import { z } from "zod";
21
22
  //#region src/contexts/ui-text.tsx
@@ -4682,6 +4683,40 @@ var VolumeX = createLucideIcon("volume-x", [
4682
4683
  * This source code is licensed under the ISC license.
4683
4684
  * See the LICENSE file in the root directory of this source tree.
4684
4685
  */
4686
+ var WashingMachine = createLucideIcon("washing-machine", [
4687
+ ["path", {
4688
+ d: "M3 6h3",
4689
+ key: "155dbl"
4690
+ }],
4691
+ ["path", {
4692
+ d: "M17 6h.01",
4693
+ key: "e2y6kg"
4694
+ }],
4695
+ ["rect", {
4696
+ width: "18",
4697
+ height: "20",
4698
+ x: "3",
4699
+ y: "2",
4700
+ rx: "2",
4701
+ key: "od3kk9"
4702
+ }],
4703
+ ["circle", {
4704
+ cx: "12",
4705
+ cy: "13",
4706
+ r: "5",
4707
+ key: "nlbqau"
4708
+ }],
4709
+ ["path", {
4710
+ d: "M12 18a2.5 2.5 0 0 0 0-5 2.5 2.5 0 0 1 0-5",
4711
+ key: "17lach"
4712
+ }]
4713
+ ]);
4714
+ /**
4715
+ * @license lucide-react v0.576.0 - ISC
4716
+ *
4717
+ * This source code is licensed under the ISC license.
4718
+ * See the LICENSE file in the root directory of this source tree.
4719
+ */
4685
4720
  var Waves = createLucideIcon("waves", [
4686
4721
  ["path", {
4687
4722
  d: "M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",
@@ -5345,6 +5380,16 @@ var DEVICE_TYPE_META = {
5345
5380
  icon: Waves,
5346
5381
  labelKey: "uiLibrary.deviceMeta.type.dishwasher",
5347
5382
  labelFallback: "Dishwasher"
5383
+ },
5384
+ [DeviceType.Washer]: {
5385
+ icon: WashingMachine,
5386
+ labelKey: "uiLibrary.deviceMeta.type.washer",
5387
+ labelFallback: "Washing machine"
5388
+ },
5389
+ [DeviceType.Dryer]: {
5390
+ icon: Wind,
5391
+ labelKey: "uiLibrary.deviceMeta.type.dryer",
5392
+ labelFallback: "Dryer"
5348
5393
  }
5349
5394
  };
5350
5395
  var DEVICE_ROLE_META = {
@@ -5826,7 +5871,7 @@ function lucideExportName(key) {
5826
5871
  function loadIconGlyphs() {
5827
5872
  if (fullTable !== void 0) return Promise.resolve();
5828
5873
  if (failure$1 !== void 0) return Promise.reject(failure$1);
5829
- pending ??= import("./icons-aFMzvquu.js").then((module) => {
5874
+ pending ??= import("./icons-Bd6sbDsv.js").then((module) => {
5830
5875
  fullTable = module;
5831
5876
  publish();
5832
5877
  }, (error) => {
@@ -11325,6 +11370,8 @@ var useMeshNetworkLogout = trpc.meshNetwork.logout.useMutation;
11325
11370
  var useMeshNetworkListPeers = trpc.meshNetwork.listPeers.useQuery;
11326
11371
  /** Generated alias around `trpc.meshNetwork.testConnection.useMutation`. */
11327
11372
  var useMeshNetworkTestConnection = trpc.meshNetwork.testConnection.useMutation;
11373
+ /** Generated alias around `trpc.meter.getStatus.useQuery`. */
11374
+ var useMeterGetStatus = trpc.meter.getStatus.useQuery;
11328
11375
  /** Generated alias around `trpc.metricsProvider.collectSnapshot.useQuery`. */
11329
11376
  var useMetricsProviderCollectSnapshot = trpc.metricsProvider.collectSnapshot.useQuery;
11330
11377
  /** Generated alias around `trpc.metricsProvider.getCached.useQuery`. */
@@ -19603,6 +19650,1151 @@ function AutotrackSection({ deviceId }) {
19603
19650
  });
19604
19651
  }
19605
19652
  //#endregion
19653
+ //#region src/composites/device-name/device-fleet.tsx
19654
+ /**
19655
+ * One slim fleet, shared. A row reads its parent from this index — never a
19656
+ * `getDevice` per row (the Customize bounded-read rule). `null` is "not
19657
+ * answered yet": a label then keeps the stored name, so a list does not flash
19658
+ * `#id` while the fleet is in flight. An empty array is an answer.
19659
+ */
19660
+ var DeviceNameIndexContext = createContext(null);
19661
+ function useDeviceNameIndex() {
19662
+ return useContext(DeviceNameIndexContext);
19663
+ }
19664
+ function copyDevice(device) {
19665
+ const label = device.display?.label;
19666
+ const trimmed = label === void 0 || label === null ? "" : label.trim();
19667
+ return {
19668
+ id: device.id,
19669
+ name: device.name,
19670
+ type: device.type,
19671
+ stableId: device.stableId,
19672
+ role: device.role ?? null,
19673
+ parentDeviceId: device.parentDeviceId ?? null,
19674
+ location: device.location ?? null,
19675
+ ...trimmed.length > 0 ? { display: { label: trimmed } } : {},
19676
+ ...device.primaryChildEntityId !== void 0 ? { primaryChildEntityId: device.primaryChildEntityId } : {},
19677
+ ...device.userNamed === void 0 ? {} : { userNamed: device.userNamed }
19678
+ };
19679
+ }
19680
+ /** Build the parent/child maps once per fleet answer. */
19681
+ function indexDeviceNames(devices) {
19682
+ const byId = /* @__PURE__ */ new Map();
19683
+ const children = /* @__PURE__ */ new Map();
19684
+ for (const device of devices) {
19685
+ const fields = copyDevice(device);
19686
+ byId.set(fields.id, fields);
19687
+ const parentId = fields.parentDeviceId;
19688
+ if (parentId === null || parentId === void 0 || parentId === fields.id) continue;
19689
+ const list = children.get(parentId);
19690
+ if (list === void 0) children.set(parentId, [fields.id]);
19691
+ else list.push(fields.id);
19692
+ }
19693
+ return {
19694
+ byId,
19695
+ childIds: children
19696
+ };
19697
+ }
19698
+ function DeviceFleetProvider({ devices, children }) {
19699
+ const index = useMemo(() => devices === null ? null : indexDeviceNames(devices), [devices]);
19700
+ return /* @__PURE__ */ jsx(DeviceNameIndexContext.Provider, {
19701
+ value: index,
19702
+ children
19703
+ });
19704
+ }
19705
+ /**
19706
+ * The one `deviceManager.listAll` subscriber for names. Same query key the
19707
+ * pickers already use, so a second observer does not fetch a second fleet.
19708
+ */
19709
+ function DeviceFleetFromServer({ children }) {
19710
+ const query = useDeviceManagerListAll({ projection: "slim" });
19711
+ return /* @__PURE__ */ jsx(DeviceFleetProvider, {
19712
+ devices: query.data === void 0 ? null : query.data,
19713
+ children
19714
+ });
19715
+ }
19716
+ //#endregion
19717
+ //#region src/composites/device-name/format-device-name.ts
19718
+ /**
19719
+ * One display name for a device.
19720
+ *
19721
+ * Canonical copy: `packages/ui-library/src/composites/device-name/format-device-name.ts`.
19722
+ * The viewer mirrors this file; `scripts/check-device-name-in-sync.ts` diffs the two.
19723
+ * Noun strings stay outside — this file only decides which noun to ask for.
19724
+ */
19725
+ /** Middle dot used between a container and its noun, and before a room. */
19726
+ var DEVICE_NAME_JOIN = " · ";
19727
+ var DEVICE_NAME_FORMS = [
19728
+ "compact",
19729
+ "full",
19730
+ "nested",
19731
+ "with-location"
19732
+ ];
19733
+ var PARENT_SEPARATORS = [" — ", " "];
19734
+ /**
19735
+ * Readings that are never what a container is. Matches the comment on
19736
+ * `CONTAINER_CHILD_ROLE_PRIORITY`: battery, temperature, humidity, illuminance,
19737
+ * signal, last-seen, plus numeric and enum. `update` is the same kind of row.
19738
+ */
19739
+ var DIAGNOSTIC_ROLES = new Set([
19740
+ "battery-sensor",
19741
+ "temperature-sensor",
19742
+ "humidity-sensor",
19743
+ "ambient-light-sensor",
19744
+ "connectivity-sensor",
19745
+ "datetime-sensor",
19746
+ "numeric-sensor",
19747
+ "enum-sensor"
19748
+ ]);
19749
+ /** Hyphen, underscore and whitespace fold together — the namesake comparison. */
19750
+ function foldDeviceName(value) {
19751
+ return value.toLowerCase().replace(/[-_\s]+/g, " ").trim();
19752
+ }
19753
+ function sameDeviceName(left, right) {
19754
+ return foldDeviceName(left) === foldDeviceName(right);
19755
+ }
19756
+ /**
19757
+ * Drop a parent prefix. `" — "` before a space, case-insensitive, so a provider
19758
+ * that capitalised the parent differently still strips, and an em-dash child
19759
+ * does not keep a dangling dash.
19760
+ */
19761
+ function stripDeviceParentPrefix(name, parentName) {
19762
+ if (parentName.length === 0) return name;
19763
+ const nameFold = name.toLowerCase();
19764
+ const parentFold = parentName.toLowerCase();
19765
+ for (const separator of PARENT_SEPARATORS) {
19766
+ const prefix = `${parentFold}${separator}`;
19767
+ if (!nameFold.startsWith(prefix)) continue;
19768
+ return name.slice(prefix.length).trim();
19769
+ }
19770
+ return name;
19771
+ }
19772
+ function roleOf(device) {
19773
+ const role = device.role;
19774
+ if (role === void 0 || role === null || role.length === 0) return null;
19775
+ return role;
19776
+ }
19777
+ function isDiagnostic(device) {
19778
+ if (device.type === "update") return true;
19779
+ const role = roleOf(device);
19780
+ return role !== null && DIAGNOSTIC_ROLES.has(role);
19781
+ }
19782
+ function displayLabel(device) {
19783
+ const label = device.display?.label;
19784
+ if (label === void 0 || label === null) return "";
19785
+ return label.trim();
19786
+ }
19787
+ function nounOf(device, parent, nouns) {
19788
+ const caption = displayLabel(device);
19789
+ if (caption.length > 0) return caption;
19790
+ const stripped = stripDeviceParentPrefix(device.name, parent.name);
19791
+ const shown = stripped.length > 0 ? stripped : device.name;
19792
+ if (device.userNamed === true) return shown;
19793
+ if (stripped.length === 0 || sameDeviceName(stripped, parent.name) || nouns.isStockPhrase(shown, roleOf(device), device.type)) return nouns.shortNoun(roleOf(device), device.type);
19794
+ return shown;
19795
+ }
19796
+ function foldsIntoParent(device, parent, noun) {
19797
+ if (sameDeviceName(noun, parent.name)) return true;
19798
+ if (displayLabel(device).length > 0 || device.userNamed === true) return false;
19799
+ return sameDeviceName(stripDeviceParentPrefix(device.name, parent.name), parent.name);
19800
+ }
19801
+ function meaningfulChildCount(siblings) {
19802
+ let count = 0;
19803
+ for (const sibling of siblings) if (!isDiagnostic(sibling)) count += 1;
19804
+ return count;
19805
+ }
19806
+ function isContainerPrimary(device, parent, siblings) {
19807
+ const picked = resolveContainerPrimaryChild$1(siblings.map((sibling) => {
19808
+ const role = roleOf(sibling);
19809
+ return {
19810
+ id: sibling.id,
19811
+ stableId: sibling.stableId,
19812
+ type: sibling.type,
19813
+ name: sibling.name,
19814
+ ...role === null ? {} : { role }
19815
+ };
19816
+ }), parent.primaryChildEntityId, parent.name);
19817
+ return picked !== null && picked.id === device.id;
19818
+ }
19819
+ function childLine(device, parent, siblings, nouns, form) {
19820
+ const noun = nounOf(device, parent, nouns);
19821
+ if (foldsIntoParent(device, parent, noun)) return parent.name;
19822
+ if (form === "compact" && parent.type === "container" && isContainerPrimary(device, parent, siblings) && meaningfulChildCount(siblings) === 1) return parent.name;
19823
+ return `${parent.name}${DEVICE_NAME_JOIN}${noun}`;
19824
+ }
19825
+ function joinLocation(label, location) {
19826
+ if (location === void 0 || location === null) return label;
19827
+ const room = location.trim();
19828
+ if (room.length === 0) return label;
19829
+ if (label.split(" · ").some((segment) => sameDeviceName(segment, room))) return label;
19830
+ return `${label}${DEVICE_NAME_JOIN}${room}`;
19831
+ }
19832
+ function hasParent(device, parent) {
19833
+ if (parent === null) return false;
19834
+ const parentId = device.parentDeviceId;
19835
+ return parentId !== null && parentId !== void 0;
19836
+ }
19837
+ /**
19838
+ * The label for `form`. A top-level device keeps its stored name. A child uses
19839
+ * the noun: `compact` may stand in for the container when this child is what
19840
+ * the container is, `full` always names both unless they fold together,
19841
+ * `nested` is the noun alone, `with-location` is `compact` plus the room.
19842
+ */
19843
+ function formatDeviceName(device, form, context, nouns) {
19844
+ if (!hasParent(device, context.parent)) return form === "with-location" ? joinLocation(device.name, device.location) : device.name;
19845
+ if (form === "nested") return nounOf(device, context.parent, nouns);
19846
+ const line = childLine(device, context.parent, context.siblings, nouns, form === "full" ? "full" : "compact");
19847
+ return form === "with-location" ? joinLocation(line, device.location) : line;
19848
+ }
19849
+ //#endregion
19850
+ //#region src/composites/device-name/device-name-nouns.ts
19851
+ /**
19852
+ * Short nouns and the stock words they replace.
19853
+ *
19854
+ * Long labels are the existing role and type names, both locales, so a stored
19855
+ * "Motion sensor" and a stored "Sensore di movimento" are the same stock word.
19856
+ * The short noun is what a list shows. Where the long label is already one
19857
+ * word it is the short noun. Aliases are provider stock words that are not the
19858
+ * label ("Illumination", "Last seen").
19859
+ */
19860
+ var DEVICE_ROLE_NOUNS = [
19861
+ {
19862
+ id: "siren",
19863
+ key: "uiLibrary.deviceMeta.noun.role.siren",
19864
+ en: "Siren",
19865
+ it: "Sirena",
19866
+ shortEn: "Siren",
19867
+ shortIt: "Sirena",
19868
+ aliases: []
19869
+ },
19870
+ {
19871
+ id: "floodlight",
19872
+ key: "uiLibrary.deviceMeta.noun.role.floodlight",
19873
+ en: "Floodlight",
19874
+ it: "Faro",
19875
+ shortEn: "Floodlight",
19876
+ shortIt: "Faro",
19877
+ aliases: []
19878
+ },
19879
+ {
19880
+ id: "spotlight",
19881
+ key: "uiLibrary.deviceMeta.noun.role.spotlight",
19882
+ en: "Spotlight",
19883
+ it: "Faretto",
19884
+ shortEn: "Spotlight",
19885
+ shortIt: "Faretto",
19886
+ aliases: []
19887
+ },
19888
+ {
19889
+ id: "pir-sensor",
19890
+ key: "uiLibrary.deviceMeta.noun.role.pirSensor",
19891
+ en: "PIR sensor",
19892
+ it: "Sensore PIR",
19893
+ shortEn: "PIR",
19894
+ shortIt: "PIR",
19895
+ aliases: []
19896
+ },
19897
+ {
19898
+ id: "chime",
19899
+ key: "uiLibrary.deviceMeta.noun.role.chime",
19900
+ en: "Chime",
19901
+ it: "Campanello",
19902
+ shortEn: "Chime",
19903
+ shortIt: "Campanello",
19904
+ aliases: []
19905
+ },
19906
+ {
19907
+ id: "autotrack",
19908
+ key: "uiLibrary.deviceMeta.noun.role.autotrack",
19909
+ en: "Auto-track",
19910
+ it: "Auto-tracking",
19911
+ shortEn: "Auto-track",
19912
+ shortIt: "Auto-tracking",
19913
+ aliases: []
19914
+ },
19915
+ {
19916
+ id: "nightvision",
19917
+ key: "uiLibrary.deviceMeta.noun.role.nightvision",
19918
+ en: "Night vision",
19919
+ it: "Visione notturna",
19920
+ shortEn: "Night",
19921
+ shortIt: "Notturna",
19922
+ aliases: []
19923
+ },
19924
+ {
19925
+ id: "privacy-mask",
19926
+ key: "uiLibrary.deviceMeta.noun.role.privacyMask",
19927
+ en: "Privacy mask",
19928
+ it: "Maschera privacy",
19929
+ shortEn: "Privacy",
19930
+ shortIt: "Privacy",
19931
+ aliases: []
19932
+ },
19933
+ {
19934
+ id: "doorbell",
19935
+ key: "uiLibrary.deviceMeta.noun.role.doorbell",
19936
+ en: "Doorbell",
19937
+ it: "Campanello video",
19938
+ shortEn: "Doorbell",
19939
+ shortIt: "Campanello video",
19940
+ aliases: []
19941
+ },
19942
+ {
19943
+ id: "cover-blind",
19944
+ key: "uiLibrary.deviceMeta.noun.role.coverBlind",
19945
+ en: "Blind",
19946
+ it: "Tapparella",
19947
+ shortEn: "Blind",
19948
+ shortIt: "Tapparella",
19949
+ aliases: []
19950
+ },
19951
+ {
19952
+ id: "cover-shutter",
19953
+ key: "uiLibrary.deviceMeta.noun.role.coverShutter",
19954
+ en: "Shutter",
19955
+ it: "Persiana",
19956
+ shortEn: "Shutter",
19957
+ shortIt: "Persiana",
19958
+ aliases: []
19959
+ },
19960
+ {
19961
+ id: "cover-awning",
19962
+ key: "uiLibrary.deviceMeta.noun.role.coverAwning",
19963
+ en: "Awning",
19964
+ it: "Tenda da sole",
19965
+ shortEn: "Awning",
19966
+ shortIt: "Tenda da sole",
19967
+ aliases: []
19968
+ },
19969
+ {
19970
+ id: "cover-curtain",
19971
+ key: "uiLibrary.deviceMeta.noun.role.coverCurtain",
19972
+ en: "Curtain",
19973
+ it: "Tenda",
19974
+ shortEn: "Curtain",
19975
+ shortIt: "Tenda",
19976
+ aliases: []
19977
+ },
19978
+ {
19979
+ id: "cover-garage",
19980
+ key: "uiLibrary.deviceMeta.noun.role.coverGarage",
19981
+ en: "Garage door",
19982
+ it: "Porta del garage",
19983
+ shortEn: "Garage",
19984
+ shortIt: "Garage",
19985
+ aliases: []
19986
+ },
19987
+ {
19988
+ id: "cover-gate",
19989
+ key: "uiLibrary.deviceMeta.noun.role.coverGate",
19990
+ en: "Gate",
19991
+ it: "Cancello",
19992
+ shortEn: "Gate",
19993
+ shortIt: "Cancello",
19994
+ aliases: []
19995
+ },
19996
+ {
19997
+ id: "cover-door",
19998
+ key: "uiLibrary.deviceMeta.noun.role.coverDoor",
19999
+ en: "Door",
20000
+ it: "Porta",
20001
+ shortEn: "Door",
20002
+ shortIt: "Porta",
20003
+ aliases: []
20004
+ },
20005
+ {
20006
+ id: "cover-window",
20007
+ key: "uiLibrary.deviceMeta.noun.role.coverWindow",
20008
+ en: "Window",
20009
+ it: "Finestra",
20010
+ shortEn: "Window",
20011
+ shortIt: "Finestra",
20012
+ aliases: []
20013
+ },
20014
+ {
20015
+ id: "binary-helper",
20016
+ key: "uiLibrary.deviceMeta.noun.role.binaryHelper",
20017
+ en: "Binary helper",
20018
+ it: "Helper binario",
20019
+ shortEn: "Helper",
20020
+ shortIt: "Helper",
20021
+ aliases: []
20022
+ },
20023
+ {
20024
+ id: "outlet",
20025
+ key: "uiLibrary.deviceMeta.noun.role.outlet",
20026
+ en: "Outlet",
20027
+ it: "Presa",
20028
+ shortEn: "Outlet",
20029
+ shortIt: "Presa",
20030
+ aliases: []
20031
+ },
20032
+ {
20033
+ id: "motion-sensor",
20034
+ key: "uiLibrary.deviceMeta.noun.role.motionSensor",
20035
+ en: "Motion sensor",
20036
+ it: "Sensore di movimento",
20037
+ shortEn: "Motion",
20038
+ shortIt: "Movimento",
20039
+ aliases: []
20040
+ },
20041
+ {
20042
+ id: "contact-sensor",
20043
+ key: "uiLibrary.deviceMeta.noun.role.contactSensor",
20044
+ en: "Contact sensor",
20045
+ it: "Sensore di contatto",
20046
+ shortEn: "Contact",
20047
+ shortIt: "Contatto",
20048
+ aliases: []
20049
+ },
20050
+ {
20051
+ id: "leak-sensor",
20052
+ key: "uiLibrary.deviceMeta.noun.role.leakSensor",
20053
+ en: "Leak sensor",
20054
+ it: "Sensore di perdite",
20055
+ shortEn: "Leak",
20056
+ shortIt: "Perdita",
20057
+ aliases: []
20058
+ },
20059
+ {
20060
+ id: "smoke-sensor",
20061
+ key: "uiLibrary.deviceMeta.noun.role.smokeSensor",
20062
+ en: "Smoke sensor",
20063
+ it: "Sensore di fumo",
20064
+ shortEn: "Smoke",
20065
+ shortIt: "Fumo",
20066
+ aliases: []
20067
+ },
20068
+ {
20069
+ id: "co-sensor",
20070
+ key: "uiLibrary.deviceMeta.noun.role.cOSensor",
20071
+ en: "CO sensor",
20072
+ it: "Sensore di CO",
20073
+ shortEn: "CO",
20074
+ shortIt: "CO",
20075
+ aliases: []
20076
+ },
20077
+ {
20078
+ id: "gas-sensor",
20079
+ key: "uiLibrary.deviceMeta.noun.role.gasSensor",
20080
+ en: "Gas sensor",
20081
+ it: "Sensore di gas",
20082
+ shortEn: "Gas",
20083
+ shortIt: "Gas",
20084
+ aliases: []
20085
+ },
20086
+ {
20087
+ id: "tamper-sensor",
20088
+ key: "uiLibrary.deviceMeta.noun.role.tamperSensor",
20089
+ en: "Tamper sensor",
20090
+ it: "Sensore antimanomissione",
20091
+ shortEn: "Tamper",
20092
+ shortIt: "Manomissione",
20093
+ aliases: []
20094
+ },
20095
+ {
20096
+ id: "vibration-sensor",
20097
+ key: "uiLibrary.deviceMeta.noun.role.vibrationSensor",
20098
+ en: "Vibration sensor",
20099
+ it: "Sensore di vibrazione",
20100
+ shortEn: "Vibration",
20101
+ shortIt: "Vibrazione",
20102
+ aliases: []
20103
+ },
20104
+ {
20105
+ id: "connectivity-sensor",
20106
+ key: "uiLibrary.deviceMeta.noun.role.connectivitySensor",
20107
+ en: "Connectivity",
20108
+ it: "Connettività",
20109
+ shortEn: "Connectivity",
20110
+ shortIt: "Connettività",
20111
+ aliases: []
20112
+ },
20113
+ {
20114
+ id: "sound-sensor",
20115
+ key: "uiLibrary.deviceMeta.noun.role.soundSensor",
20116
+ en: "Sound sensor",
20117
+ it: "Sensore acustico",
20118
+ shortEn: "Sound",
20119
+ shortIt: "Suono",
20120
+ aliases: []
20121
+ },
20122
+ {
20123
+ id: "binary-sensor",
20124
+ key: "uiLibrary.deviceMeta.noun.role.binarySensor",
20125
+ en: "Binary sensor",
20126
+ it: "Sensore binario",
20127
+ shortEn: "Binary",
20128
+ shortIt: "Binario",
20129
+ aliases: []
20130
+ },
20131
+ {
20132
+ id: "temperature-sensor",
20133
+ key: "uiLibrary.deviceMeta.noun.role.temperatureSensor",
20134
+ en: "Temperature",
20135
+ it: "Temperatura",
20136
+ shortEn: "Temperature",
20137
+ shortIt: "Temperatura",
20138
+ aliases: []
20139
+ },
20140
+ {
20141
+ id: "humidity-sensor",
20142
+ key: "uiLibrary.deviceMeta.noun.role.humiditySensor",
20143
+ en: "Humidity",
20144
+ it: "Umidità",
20145
+ shortEn: "Humidity",
20146
+ shortIt: "Umidità",
20147
+ aliases: []
20148
+ },
20149
+ {
20150
+ id: "ambient-light-sensor",
20151
+ key: "uiLibrary.deviceMeta.noun.role.ambientLightSensor",
20152
+ en: "Ambient light",
20153
+ it: "Luce ambientale",
20154
+ shortEn: "Light",
20155
+ shortIt: "Luce",
20156
+ aliases: ["Illumination"]
20157
+ },
20158
+ {
20159
+ id: "pressure-sensor",
20160
+ key: "uiLibrary.deviceMeta.noun.role.pressureSensor",
20161
+ en: "Pressure",
20162
+ it: "Pressione",
20163
+ shortEn: "Pressure",
20164
+ shortIt: "Pressione",
20165
+ aliases: []
20166
+ },
20167
+ {
20168
+ id: "wind-sensor",
20169
+ key: "uiLibrary.deviceMeta.noun.role.windSensor",
20170
+ en: "Wind",
20171
+ it: "Vento",
20172
+ shortEn: "Wind",
20173
+ shortIt: "Vento",
20174
+ aliases: []
20175
+ },
20176
+ {
20177
+ id: "rain-sensor",
20178
+ key: "uiLibrary.deviceMeta.noun.role.rainSensor",
20179
+ en: "Rain",
20180
+ it: "Pioggia",
20181
+ shortEn: "Rain",
20182
+ shortIt: "Pioggia",
20183
+ aliases: []
20184
+ },
20185
+ {
20186
+ id: "uv-sensor",
20187
+ key: "uiLibrary.deviceMeta.noun.role.uvSensor",
20188
+ en: "UV index",
20189
+ it: "Indice UV",
20190
+ shortEn: "UV index",
20191
+ shortIt: "Indice UV",
20192
+ aliases: []
20193
+ },
20194
+ {
20195
+ id: "solar-radiation-sensor",
20196
+ key: "uiLibrary.deviceMeta.noun.role.solarRadiationSensor",
20197
+ en: "Solar radiation",
20198
+ it: "Radiazione solare",
20199
+ shortEn: "Solar radiation",
20200
+ shortIt: "Radiazione solare",
20201
+ aliases: []
20202
+ },
20203
+ {
20204
+ id: "soil-moisture-sensor",
20205
+ key: "uiLibrary.deviceMeta.noun.role.soilMoistureSensor",
20206
+ en: "Soil moisture",
20207
+ it: "Umidità del suolo",
20208
+ shortEn: "Soil moisture",
20209
+ shortIt: "Umidità del suolo",
20210
+ aliases: []
20211
+ },
20212
+ {
20213
+ id: "power-sensor",
20214
+ key: "uiLibrary.deviceMeta.noun.role.powerSensor",
20215
+ en: "Power",
20216
+ it: "Potenza",
20217
+ shortEn: "Power",
20218
+ shortIt: "Potenza",
20219
+ aliases: []
20220
+ },
20221
+ {
20222
+ id: "energy-sensor",
20223
+ key: "uiLibrary.deviceMeta.noun.role.energySensor",
20224
+ en: "Energy",
20225
+ it: "Energia",
20226
+ shortEn: "Energy",
20227
+ shortIt: "Energia",
20228
+ aliases: []
20229
+ },
20230
+ {
20231
+ id: "voltage-sensor",
20232
+ key: "uiLibrary.deviceMeta.noun.role.voltageSensor",
20233
+ en: "Voltage",
20234
+ it: "Tensione",
20235
+ shortEn: "Voltage",
20236
+ shortIt: "Tensione",
20237
+ aliases: []
20238
+ },
20239
+ {
20240
+ id: "current-sensor",
20241
+ key: "uiLibrary.deviceMeta.noun.role.currentSensor",
20242
+ en: "Current",
20243
+ it: "Corrente",
20244
+ shortEn: "Current",
20245
+ shortIt: "Corrente",
20246
+ aliases: []
20247
+ },
20248
+ {
20249
+ id: "air-quality-sensor",
20250
+ key: "uiLibrary.deviceMeta.noun.role.airQualitySensor",
20251
+ en: "Air quality",
20252
+ it: "Qualità dell’aria",
20253
+ shortEn: "Air quality",
20254
+ shortIt: "Qualità dell’aria",
20255
+ aliases: []
20256
+ },
20257
+ {
20258
+ id: "battery-sensor",
20259
+ key: "uiLibrary.deviceMeta.noun.role.batterySensor",
20260
+ en: "Battery",
20261
+ it: "Batteria",
20262
+ shortEn: "Battery",
20263
+ shortIt: "Batteria",
20264
+ aliases: []
20265
+ },
20266
+ {
20267
+ id: "numeric-sensor",
20268
+ key: "uiLibrary.deviceMeta.noun.role.numericSensor",
20269
+ en: "Numeric sensor",
20270
+ it: "Sensore numerico",
20271
+ shortEn: "Value",
20272
+ shortIt: "Numerico",
20273
+ aliases: []
20274
+ },
20275
+ {
20276
+ id: "enum-sensor",
20277
+ key: "uiLibrary.deviceMeta.noun.role.enumSensor",
20278
+ en: "Enum sensor",
20279
+ it: "Sensore a stati",
20280
+ shortEn: "State",
20281
+ shortIt: "Stato",
20282
+ aliases: []
20283
+ },
20284
+ {
20285
+ id: "datetime-sensor",
20286
+ key: "uiLibrary.deviceMeta.noun.role.dateTimeSensor",
20287
+ en: "Date / time",
20288
+ it: "Data / ora",
20289
+ shortEn: "Time",
20290
+ shortIt: "Ora",
20291
+ aliases: ["Last seen"]
20292
+ },
20293
+ {
20294
+ id: "generic-sensor",
20295
+ key: "uiLibrary.deviceMeta.noun.role.genericSensor",
20296
+ en: "Sensor",
20297
+ it: "Sensore",
20298
+ shortEn: "Sensor",
20299
+ shortIt: "Sensore",
20300
+ aliases: []
20301
+ },
20302
+ {
20303
+ id: "numeric-control",
20304
+ key: "uiLibrary.deviceMeta.noun.role.numericControl",
20305
+ en: "Numeric control",
20306
+ it: "Controllo numerico",
20307
+ shortEn: "Number",
20308
+ shortIt: "Numero",
20309
+ aliases: []
20310
+ },
20311
+ {
20312
+ id: "select-control",
20313
+ key: "uiLibrary.deviceMeta.noun.role.selectControl",
20314
+ en: "Select control",
20315
+ it: "Controllo a selezione",
20316
+ shortEn: "Select",
20317
+ shortIt: "Selezione",
20318
+ aliases: []
20319
+ },
20320
+ {
20321
+ id: "text-control",
20322
+ key: "uiLibrary.deviceMeta.noun.role.textControl",
20323
+ en: "Text control",
20324
+ it: "Controllo testo",
20325
+ shortEn: "Text",
20326
+ shortIt: "Testo",
20327
+ aliases: []
20328
+ },
20329
+ {
20330
+ id: "datetime-control",
20331
+ key: "uiLibrary.deviceMeta.noun.role.dateTimeControl",
20332
+ en: "Date / time control",
20333
+ it: "Controllo data / ora",
20334
+ shortEn: "Time",
20335
+ shortIt: "Ora",
20336
+ aliases: []
20337
+ },
20338
+ {
20339
+ id: "mobile-push-notifier",
20340
+ key: "uiLibrary.deviceMeta.noun.role.mobilePushNotifier",
20341
+ en: "Mobile push",
20342
+ it: "Push su mobile",
20343
+ shortEn: "Push",
20344
+ shortIt: "Push",
20345
+ aliases: []
20346
+ },
20347
+ {
20348
+ id: "messaging-notifier",
20349
+ key: "uiLibrary.deviceMeta.noun.role.messagingNotifier",
20350
+ en: "Messaging",
20351
+ it: "Messaggistica",
20352
+ shortEn: "Messaging",
20353
+ shortIt: "Messaggistica",
20354
+ aliases: []
20355
+ },
20356
+ {
20357
+ id: "email-notifier",
20358
+ key: "uiLibrary.deviceMeta.noun.role.emailNotifier",
20359
+ en: "Email",
20360
+ it: "Email",
20361
+ shortEn: "Email",
20362
+ shortIt: "Email",
20363
+ aliases: []
20364
+ },
20365
+ {
20366
+ id: "generic-notifier",
20367
+ key: "uiLibrary.deviceMeta.noun.role.genericNotifier",
20368
+ en: "Notifier",
20369
+ it: "Notificatore",
20370
+ shortEn: "Notifier",
20371
+ shortIt: "Notificatore",
20372
+ aliases: []
20373
+ }
20374
+ ];
20375
+ var DEVICE_TYPE_NOUNS = [
20376
+ {
20377
+ id: "camera",
20378
+ key: "uiLibrary.deviceMeta.noun.type.camera",
20379
+ en: "Camera",
20380
+ it: "Telecamera",
20381
+ shortEn: "Camera",
20382
+ shortIt: "Telecamera",
20383
+ aliases: []
20384
+ },
20385
+ {
20386
+ id: "hub",
20387
+ key: "uiLibrary.deviceMeta.noun.type.hub",
20388
+ en: "Hub",
20389
+ it: "Hub",
20390
+ shortEn: "Hub",
20391
+ shortIt: "Hub",
20392
+ aliases: []
20393
+ },
20394
+ {
20395
+ id: "light",
20396
+ key: "uiLibrary.deviceMeta.noun.type.light",
20397
+ en: "Light",
20398
+ it: "Luce",
20399
+ shortEn: "Light",
20400
+ shortIt: "Luce",
20401
+ aliases: []
20402
+ },
20403
+ {
20404
+ id: "siren",
20405
+ key: "uiLibrary.deviceMeta.noun.type.siren",
20406
+ en: "Siren",
20407
+ it: "Sirena",
20408
+ shortEn: "Siren",
20409
+ shortIt: "Sirena",
20410
+ aliases: []
20411
+ },
20412
+ {
20413
+ id: "switch",
20414
+ key: "uiLibrary.deviceMeta.noun.type.switch",
20415
+ en: "Switch",
20416
+ it: "Interruttore",
20417
+ shortEn: "Switch",
20418
+ shortIt: "Interruttore",
20419
+ aliases: []
20420
+ },
20421
+ {
20422
+ id: "sensor",
20423
+ key: "uiLibrary.deviceMeta.noun.type.sensor",
20424
+ en: "Sensor",
20425
+ it: "Sensore",
20426
+ shortEn: "Sensor",
20427
+ shortIt: "Sensore",
20428
+ aliases: []
20429
+ },
20430
+ {
20431
+ id: "thermostat",
20432
+ key: "uiLibrary.deviceMeta.noun.type.thermostat",
20433
+ en: "Thermostat",
20434
+ it: "Termostato",
20435
+ shortEn: "Thermostat",
20436
+ shortIt: "Termostato",
20437
+ aliases: []
20438
+ },
20439
+ {
20440
+ id: "climate",
20441
+ key: "uiLibrary.deviceMeta.noun.type.climate",
20442
+ en: "Air conditioner",
20443
+ it: "Condizionatore",
20444
+ shortEn: "Climate",
20445
+ shortIt: "Condizionatore",
20446
+ aliases: []
20447
+ },
20448
+ {
20449
+ id: "button",
20450
+ key: "uiLibrary.deviceMeta.noun.type.button",
20451
+ en: "Button",
20452
+ it: "Pulsante",
20453
+ shortEn: "Button",
20454
+ shortIt: "Pulsante",
20455
+ aliases: []
20456
+ },
20457
+ {
20458
+ id: "event-emitter",
20459
+ key: "uiLibrary.deviceMeta.noun.type.eventEmitter",
20460
+ en: "Event Emitter",
20461
+ it: "Emettitore di eventi",
20462
+ shortEn: "Event",
20463
+ shortIt: "Evento",
20464
+ aliases: []
20465
+ },
20466
+ {
20467
+ id: "update",
20468
+ key: "uiLibrary.deviceMeta.noun.type.update",
20469
+ en: "Update",
20470
+ it: "Aggiornamento",
20471
+ shortEn: "Update",
20472
+ shortIt: "Aggiornamento",
20473
+ aliases: []
20474
+ },
20475
+ {
20476
+ id: "generic",
20477
+ key: "uiLibrary.deviceMeta.noun.type.generic",
20478
+ en: "Generic",
20479
+ it: "Generico",
20480
+ shortEn: "Generic",
20481
+ shortIt: "Generico",
20482
+ aliases: []
20483
+ },
20484
+ {
20485
+ id: "notifier",
20486
+ key: "uiLibrary.deviceMeta.noun.type.notifier",
20487
+ en: "Notifier",
20488
+ it: "Notificatore",
20489
+ shortEn: "Notifier",
20490
+ shortIt: "Notificatore",
20491
+ aliases: []
20492
+ },
20493
+ {
20494
+ id: "script",
20495
+ key: "uiLibrary.deviceMeta.noun.type.script",
20496
+ en: "Script",
20497
+ it: "Script",
20498
+ shortEn: "Script",
20499
+ shortIt: "Script",
20500
+ aliases: []
20501
+ },
20502
+ {
20503
+ id: "automation",
20504
+ key: "uiLibrary.deviceMeta.noun.type.automation",
20505
+ en: "Automation",
20506
+ it: "Automazione",
20507
+ shortEn: "Automation",
20508
+ shortIt: "Automazione",
20509
+ aliases: []
20510
+ },
20511
+ {
20512
+ id: "lock",
20513
+ key: "uiLibrary.deviceMeta.noun.type.lock",
20514
+ en: "Lock",
20515
+ it: "Serratura",
20516
+ shortEn: "Lock",
20517
+ shortIt: "Serratura",
20518
+ aliases: []
20519
+ },
20520
+ {
20521
+ id: "cover",
20522
+ key: "uiLibrary.deviceMeta.noun.type.cover",
20523
+ en: "Cover",
20524
+ it: "Copertura",
20525
+ shortEn: "Cover",
20526
+ shortIt: "Copertura",
20527
+ aliases: []
20528
+ },
20529
+ {
20530
+ id: "valve",
20531
+ key: "uiLibrary.deviceMeta.noun.type.valve",
20532
+ en: "Valve",
20533
+ it: "Valvola",
20534
+ shortEn: "Valve",
20535
+ shortIt: "Valvola",
20536
+ aliases: []
20537
+ },
20538
+ {
20539
+ id: "humidifier",
20540
+ key: "uiLibrary.deviceMeta.noun.type.humidifier",
20541
+ en: "Humidifier",
20542
+ it: "Umidificatore",
20543
+ shortEn: "Humidifier",
20544
+ shortIt: "Umidificatore",
20545
+ aliases: []
20546
+ },
20547
+ {
20548
+ id: "water-heater",
20549
+ key: "uiLibrary.deviceMeta.noun.type.waterHeater",
20550
+ en: "Water heater",
20551
+ it: "Scaldabagno",
20552
+ shortEn: "Heater",
20553
+ shortIt: "Scaldabagno",
20554
+ aliases: []
20555
+ },
20556
+ {
20557
+ id: "fan",
20558
+ key: "uiLibrary.deviceMeta.noun.type.fan",
20559
+ en: "Fan",
20560
+ it: "Ventilatore",
20561
+ shortEn: "Fan",
20562
+ shortIt: "Ventilatore",
20563
+ aliases: []
20564
+ },
20565
+ {
20566
+ id: "media-player",
20567
+ key: "uiLibrary.deviceMeta.noun.type.mediaPlayer",
20568
+ en: "Media player",
20569
+ it: "Lettore multimediale",
20570
+ shortEn: "Player",
20571
+ shortIt: "Lettore",
20572
+ aliases: []
20573
+ },
20574
+ {
20575
+ id: "alarm-panel",
20576
+ key: "uiLibrary.deviceMeta.noun.type.alarmPanel",
20577
+ en: "Alarm panel",
20578
+ it: "Pannello allarme",
20579
+ shortEn: "Alarm",
20580
+ shortIt: "Allarme",
20581
+ aliases: []
20582
+ },
20583
+ {
20584
+ id: "control",
20585
+ key: "uiLibrary.deviceMeta.noun.type.control",
20586
+ en: "Control",
20587
+ it: "Controllo",
20588
+ shortEn: "Control",
20589
+ shortIt: "Controllo",
20590
+ aliases: []
20591
+ },
20592
+ {
20593
+ id: "presence",
20594
+ key: "uiLibrary.deviceMeta.noun.type.presence",
20595
+ en: "Presence",
20596
+ it: "Presenza",
20597
+ shortEn: "Presence",
20598
+ shortIt: "Presenza",
20599
+ aliases: []
20600
+ },
20601
+ {
20602
+ id: "weather",
20603
+ key: "uiLibrary.deviceMeta.noun.type.weather",
20604
+ en: "Weather",
20605
+ it: "Meteo",
20606
+ shortEn: "Weather",
20607
+ shortIt: "Meteo",
20608
+ aliases: []
20609
+ },
20610
+ {
20611
+ id: "vacuum",
20612
+ key: "uiLibrary.deviceMeta.noun.type.vacuum",
20613
+ en: "Vacuum",
20614
+ it: "Aspirapolvere",
20615
+ shortEn: "Vacuum",
20616
+ shortIt: "Aspirapolvere",
20617
+ aliases: []
20618
+ },
20619
+ {
20620
+ id: "lawn-mower",
20621
+ key: "uiLibrary.deviceMeta.noun.type.lawnMower",
20622
+ en: "Lawn mower",
20623
+ it: "Tagliaerba",
20624
+ shortEn: "Mower",
20625
+ shortIt: "Tagliaerba",
20626
+ aliases: []
20627
+ },
20628
+ {
20629
+ id: "container",
20630
+ key: "uiLibrary.deviceMeta.noun.type.container",
20631
+ en: "Container",
20632
+ it: "Contenitore",
20633
+ shortEn: "Container",
20634
+ shortIt: "Contenitore",
20635
+ aliases: []
20636
+ },
20637
+ {
20638
+ id: "image",
20639
+ key: "uiLibrary.deviceMeta.noun.type.image",
20640
+ en: "Image",
20641
+ it: "Immagine",
20642
+ shortEn: "Image",
20643
+ shortIt: "Immagine",
20644
+ aliases: []
20645
+ },
20646
+ {
20647
+ id: "pet-feeder",
20648
+ key: "uiLibrary.deviceMeta.noun.type.petFeeder",
20649
+ en: "Pet feeder",
20650
+ it: "Distributore di cibo per animali",
20651
+ shortEn: "Feeder",
20652
+ shortIt: "Distributore",
20653
+ aliases: []
20654
+ },
20655
+ {
20656
+ id: "dishwasher",
20657
+ key: "uiLibrary.deviceMeta.noun.type.dishwasher",
20658
+ en: "Dishwasher",
20659
+ it: "Lavastoviglie",
20660
+ shortEn: "Dishwasher",
20661
+ shortIt: "Lavastoviglie",
20662
+ aliases: []
20663
+ }
20664
+ ];
20665
+ var FALLBACK_NOUN = {
20666
+ id: "",
20667
+ key: "uiLibrary.deviceMeta.noun.fallback",
20668
+ en: "Device",
20669
+ it: "Dispositivo",
20670
+ shortEn: "Device",
20671
+ shortIt: "Dispositivo",
20672
+ aliases: []
20673
+ };
20674
+ function findNoun(list, id) {
20675
+ if (id === null || id.length === 0) return void 0;
20676
+ return list.find((spec) => spec.id === id);
20677
+ }
20678
+ /** Role wins when it has a noun; otherwise the type. Unknown types fall back. */
20679
+ function nounSpecFor(role, type) {
20680
+ if (role !== null) {
20681
+ const byRole = findNoun(DEVICE_ROLE_NOUNS, role);
20682
+ if (byRole !== void 0) return byRole;
20683
+ }
20684
+ return findNoun(DEVICE_TYPE_NOUNS, type) ?? FALLBACK_NOUN;
20685
+ }
20686
+ function stockPhrases(role, type) {
20687
+ const phrases = [];
20688
+ const specs = [findNoun(DEVICE_ROLE_NOUNS, role), findNoun(DEVICE_TYPE_NOUNS, type)];
20689
+ for (const spec of specs) {
20690
+ if (spec === void 0) continue;
20691
+ phrases.push(spec.en, spec.it, spec.shortEn, spec.shortIt, ...spec.aliases);
20692
+ }
20693
+ return phrases;
20694
+ }
20695
+ function isDeviceNameStock(text, role, type) {
20696
+ const folded = foldDeviceName(text);
20697
+ if (folded.length === 0) return true;
20698
+ return stockPhrases(role, type).some((phrase) => foldDeviceName(phrase) === folded);
20699
+ }
20700
+ /** Noun table for a locale. Tests and the viewer parity spec use this directly. */
20701
+ function deviceNameNouns(locale) {
20702
+ return {
20703
+ shortNoun(role, type) {
20704
+ const spec = nounSpecFor(role, type);
20705
+ return locale === "it" ? spec.shortIt : spec.shortEn;
20706
+ },
20707
+ isStockPhrase(text, role, type) {
20708
+ return isDeviceNameStock(text, role, type);
20709
+ }
20710
+ };
20711
+ }
20712
+ //#endregion
20713
+ //#region src/composites/device-name/use-device-label.ts
20714
+ /**
20715
+ * `useDeviceLabel` is the string `DeviceName` renders — sort keys, aria
20716
+ * labels, confirm copy and search titles call it instead of painting
20717
+ * `device.name`.
20718
+ */
20719
+ function useDeviceNameNouns() {
20720
+ const t = useUiText();
20721
+ return {
20722
+ shortNoun(role, type) {
20723
+ const spec = nounSpecFor(role, type);
20724
+ return t(spec.key, spec.shortEn);
20725
+ },
20726
+ isStockPhrase(text, role, type) {
20727
+ return isDeviceNameStock(text, role, type);
20728
+ }
20729
+ };
20730
+ }
20731
+ function placeholderParent(id) {
20732
+ return {
20733
+ id,
20734
+ name: `#${String(id)}`,
20735
+ type: "unknown",
20736
+ stableId: "",
20737
+ role: null,
20738
+ parentDeviceId: null
20739
+ };
20740
+ }
20741
+ function parentFromIndex(device, index) {
20742
+ const parentId = device.parentDeviceId;
20743
+ if (parentId === null || parentId === void 0) return null;
20744
+ return index.byId.get(parentId) ?? placeholderParent(parentId);
20745
+ }
20746
+ function siblingsFromIndex(device, index) {
20747
+ const parentId = device.parentDeviceId;
20748
+ if (parentId === null || parentId === void 0) return [];
20749
+ const ids = index.childIds.get(parentId) ?? [];
20750
+ const siblings = [];
20751
+ for (const id of ids) {
20752
+ const row = index.byId.get(id);
20753
+ if (row !== void 0) siblings.push(row);
20754
+ }
20755
+ if (!siblings.some((sibling) => sibling.id === device.id)) siblings.push(device);
20756
+ return siblings;
20757
+ }
20758
+ /**
20759
+ * Label for a device the caller already holds. While the fleet has not
20760
+ * answered and no parent was passed, this is the stored name — not `#id`.
20761
+ */
20762
+ function resolveDeviceLabel(device, form, index, nouns, scope) {
20763
+ const subject = index?.byId.get(device.id) ?? device;
20764
+ const parentId = subject.parentDeviceId;
20765
+ if (parentId !== null && parentId !== void 0 && index === null && scope?.parent === void 0) return subject.name;
20766
+ return formatDeviceName(subject, form, {
20767
+ parent: scope?.parent !== void 0 ? scope.parent : index === null ? null : parentFromIndex(subject, index),
20768
+ siblings: scope?.siblings ?? (index === null ? [] : siblingsFromIndex(subject, index))
20769
+ }, nouns);
20770
+ }
20771
+ function useDeviceLabel(device, form, scope) {
20772
+ return resolveDeviceLabel(device, form, useDeviceNameIndex(), useDeviceNameNouns(), scope);
20773
+ }
20774
+ /** `#id` until the fleet answers, and `#id` when the id is not in it. */
20775
+ function useDeviceLabelById(id, form, pendingName) {
20776
+ const index = useDeviceNameIndex();
20777
+ const nouns = useDeviceNameNouns();
20778
+ if (index === null) return pendingName ?? `#${String(id)}`;
20779
+ const device = index.byId.get(id);
20780
+ if (device === void 0) return `#${String(id)}`;
20781
+ return resolveDeviceLabel(device, form, index, nouns);
20782
+ }
20783
+ //#endregion
20784
+ //#region src/composites/device-name/DeviceName.tsx
20785
+ function DeviceName({ device, form, parent, siblings, className, testId }) {
20786
+ const label = useDeviceLabel(device, form, {
20787
+ ...parent !== void 0 ? { parent } : {},
20788
+ ...siblings !== void 0 ? { siblings } : {}
20789
+ });
20790
+ return /* @__PURE__ */ jsx("span", {
20791
+ className,
20792
+ title: label,
20793
+ "data-testid": testId,
20794
+ children: label
20795
+ });
20796
+ }
20797
+ //#endregion
19606
20798
  //#region src/hooks/use-device-proxy.ts
19607
20799
  /**
19608
20800
  * useDeviceProxy — canonical React entry point for a device.
@@ -20505,6 +21697,9 @@ function GridCellBox({ cell, selected, onSelect, onDragStart }) {
20505
21697
  }, handle))
20506
21698
  });
20507
21699
  }
21700
+ function CameraOptionLabel({ camera }) {
21701
+ return useDeviceLabel(camera, "compact");
21702
+ }
20508
21703
  function CellInspector({ cell, index, cameras, onChange, onRemove }) {
20509
21704
  const t = useUiText();
20510
21705
  return /* @__PURE__ */ jsxs("div", {
@@ -20535,7 +21730,7 @@ function CellInspector({ cell, index, cameras, onChange, onRemove }) {
20535
21730
  className: "flex-1 rounded border border-border bg-transparent px-1 py-0.5",
20536
21731
  children: cameras.map((camera) => /* @__PURE__ */ jsx("option", {
20537
21732
  value: String(camera.id),
20538
- children: camera.name
21733
+ children: /* @__PURE__ */ jsx(CameraOptionLabel, { camera })
20539
21734
  }, camera.id))
20540
21735
  })]
20541
21736
  }),
@@ -28840,8 +30035,8 @@ function RecordingPanel({ deviceId }) {
28840
30035
  * `type:'widget'` ConfigField. `WidgetSlot` resolves these BEFORE the
28841
30036
  * Module-Federation `WidgetRegistry`. ids are namespaced `host/<name>`. */
28842
30037
  var HOST_WIDGETS = {
28843
- "host/motion-zones-grid": lazy(() => import("./MotionZonesSettings-DR1g9ja3.js").then((m) => ({ default: m.MotionZonesSettings }))),
28844
- "host/privacy-mask-grid": lazy(() => import("./PrivacyMaskSettings-C9wfHkiB.js").then((m) => ({ default: m.PrivacyMaskSettings }))),
30038
+ "host/motion-zones-grid": lazy(() => import("./MotionZonesSettings-BCU2NW7w.js").then((m) => ({ default: m.MotionZonesSettings }))),
30039
+ "host/privacy-mask-grid": lazy(() => import("./PrivacyMaskSettings-VntwpB1u.js").then((m) => ({ default: m.PrivacyMaskSettings }))),
28845
30040
  "host/ptz-panel": PtzPanel,
28846
30041
  "host/navigation-panel": NavigationPanel,
28847
30042
  "host/consumables-panel": ConsumablesPanel,
@@ -48223,17 +49418,19 @@ function SensorHeroInner({ trpc, device }) {
48223
49418
  if (resolution.kind === "quiet") return /* @__PURE__ */ jsx("div", {
48224
49419
  className: "flex flex-col items-center justify-center gap-2 rounded-lg border border-border bg-surface p-4 min-h-[96px]",
48225
49420
  "data-testid": "sensor-hero-quiet",
48226
- children: /* @__PURE__ */ jsx("span", {
48227
- className: "text-sm text-foreground-subtle",
48228
- children: device.name
49421
+ children: /* @__PURE__ */ jsx(DeviceName, {
49422
+ device,
49423
+ form: "full",
49424
+ className: "text-sm text-foreground-subtle"
48229
49425
  })
48230
49426
  });
48231
49427
  const slice = resolution.kind === "value" ? resolution.slice : void 0;
48232
49428
  if (descriptor === void 0 || slice === void 0) return /* @__PURE__ */ jsxs("div", {
48233
49429
  className: "flex flex-col items-center justify-center gap-2 rounded-lg border border-border bg-surface p-4 min-h-[96px]",
48234
- children: [/* @__PURE__ */ jsx("span", {
48235
- className: "text-sm text-foreground-subtle",
48236
- children: device.name
49430
+ children: [/* @__PURE__ */ jsx(DeviceName, {
49431
+ device,
49432
+ form: "full",
49433
+ className: "text-sm text-foreground-subtle"
48237
49434
  }), /* @__PURE__ */ jsx("span", {
48238
49435
  className: "text-xs text-foreground-subtle italic",
48239
49436
  children: t("uiLibrary.sensorHeroCard.awaiting", "Awaiting state…")
@@ -48273,9 +49470,10 @@ function SensorHeroInner({ trpc, device }) {
48273
49470
  "data-testid": "sensor-hero-occupancy",
48274
49471
  children: occupancyOn ? t("uiLibrary.sensorHeroCard.occupied", "Occupied") : t("uiLibrary.sensorHeroCard.clear", "Clear")
48275
49472
  }),
48276
- /* @__PURE__ */ jsx("span", {
48277
- className: "text-sm text-foreground-subtle",
48278
- children: device.name
49473
+ /* @__PURE__ */ jsx(DeviceName, {
49474
+ device,
49475
+ form: "full",
49476
+ className: "text-sm text-foreground-subtle"
48279
49477
  })
48280
49478
  ]
48281
49479
  });
@@ -48290,9 +49488,10 @@ function SensorHeroInner({ trpc, device }) {
48290
49488
  children: [/* @__PURE__ */ jsx("span", {
48291
49489
  className: cn("inline-flex items-center rounded px-3 py-1.5 text-lg font-semibold", active ? "bg-warning/15 text-warning" : "bg-surface-subtle text-foreground-subtle"),
48292
49490
  children: label
48293
- }), /* @__PURE__ */ jsx("span", {
48294
- className: "text-sm text-foreground-subtle",
48295
- children: device.name
49491
+ }), /* @__PURE__ */ jsx(DeviceName, {
49492
+ device,
49493
+ form: "full",
49494
+ className: "text-sm text-foreground-subtle"
48296
49495
  })]
48297
49496
  });
48298
49497
  }
@@ -48300,9 +49499,10 @@ function SensorHeroInner({ trpc, device }) {
48300
49499
  if (!isStringSliceValue(slice)) return null;
48301
49500
  if (slice.value === "") return /* @__PURE__ */ jsxs("div", {
48302
49501
  className: "flex flex-col items-center justify-center gap-2 rounded-lg border border-border bg-surface p-4 min-h-[96px]",
48303
- children: [/* @__PURE__ */ jsx("span", {
48304
- className: "text-sm text-foreground-subtle",
48305
- children: device.name
49502
+ children: [/* @__PURE__ */ jsx(DeviceName, {
49503
+ device,
49504
+ form: "full",
49505
+ className: "text-sm text-foreground-subtle"
48306
49506
  }), /* @__PURE__ */ jsx("span", {
48307
49507
  className: "text-xs text-foreground-subtle italic",
48308
49508
  children: t("uiLibrary.sensorHeroCard.awaiting", "Awaiting state…")
@@ -48314,9 +49514,10 @@ function SensorHeroInner({ trpc, device }) {
48314
49514
  children: [/* @__PURE__ */ jsx("span", {
48315
49515
  className: "text-3xl font-semibold tabular-nums text-foreground",
48316
49516
  children: formatControlDateTime(slice.value, format)
48317
- }), /* @__PURE__ */ jsx("span", {
48318
- className: "text-sm text-foreground-subtle",
48319
- children: device.name
49517
+ }), /* @__PURE__ */ jsx(DeviceName, {
49518
+ device,
49519
+ form: "full",
49520
+ className: "text-sm text-foreground-subtle"
48320
49521
  })]
48321
49522
  });
48322
49523
  }
@@ -48328,9 +49529,10 @@ function SensorHeroInner({ trpc, device }) {
48328
49529
  children: [/* @__PURE__ */ jsx("span", {
48329
49530
  className: "text-xl font-semibold text-foreground",
48330
49531
  children: slice.value
48331
- }), /* @__PURE__ */ jsx("span", {
48332
- className: "text-sm text-foreground-subtle",
48333
- children: device.name
49532
+ }), /* @__PURE__ */ jsx(DeviceName, {
49533
+ device,
49534
+ form: "full",
49535
+ className: "text-sm text-foreground-subtle"
48334
49536
  })]
48335
49537
  });
48336
49538
  }
@@ -48341,9 +49543,10 @@ function SensorHeroInner({ trpc, device }) {
48341
49543
  children: [/* @__PURE__ */ jsx("span", {
48342
49544
  className: cn("inline-flex items-center rounded px-3 py-1.5 text-lg font-semibold", slice.state === "home" ? "bg-success/15 text-success" : "bg-surface-subtle text-foreground-subtle"),
48343
49545
  children: label
48344
- }), /* @__PURE__ */ jsx("span", {
48345
- className: "text-sm text-foreground-subtle",
48346
- children: device.name
49546
+ }), /* @__PURE__ */ jsx(DeviceName, {
49547
+ device,
49548
+ form: "full",
49549
+ className: "text-sm text-foreground-subtle"
48347
49550
  })]
48348
49551
  });
48349
49552
  }
@@ -55098,7 +56301,9 @@ var CONTROL_FILLS = {
55098
56301
  [DeviceType.Container]: false,
55099
56302
  [DeviceType.Image]: false,
55100
56303
  [DeviceType.PetFeeder]: false,
55101
- [DeviceType.Dishwasher]: false
56304
+ [DeviceType.Dishwasher]: false,
56305
+ [DeviceType.Washer]: false,
56306
+ [DeviceType.Dryer]: false
55102
56307
  };
55103
56308
  var DEVICE_TYPE_VALUES = new Set(Object.values(DeviceType));
55104
56309
  /**
@@ -56354,6 +57559,7 @@ function useContainerChildren(deviceId) {
56354
57559
  var SENSOR_VALUE_TYPES = new Set([DeviceType.Sensor, DeviceType.Presence]);
56355
57560
  function DeviceItemActions({ trpc, device, controlPlacement }) {
56356
57561
  const containerChildren = useContainerChildren(device.id);
57562
+ const deviceLabel = useDeviceLabel(device, "compact");
56357
57563
  const placement = controlPlacement ?? "right";
56358
57564
  if (!!device.disabled) return null;
56359
57565
  if (device.type === DeviceType.Container) {
@@ -56409,7 +57615,7 @@ function DeviceItemActions({ trpc, device, controlPlacement }) {
56409
57615
  showReboot && /* @__PURE__ */ jsx(RebootQuickAction, {
56410
57616
  trpc,
56411
57617
  deviceId: device.id,
56412
- deviceName: device.name
57618
+ deviceName: deviceLabel
56413
57619
  }),
56414
57620
  /* @__PURE__ */ jsx(AdminLinkQuickAction, {
56415
57621
  trpc,
@@ -56645,9 +57851,16 @@ function ChildRow$1({ trpc, child, onNavigate, parentName }) {
56645
57851
  running: runningSlice === void 0 || runningSlice.running === null ? null : runningSlice.running,
56646
57852
  children: /* @__PURE__ */ jsx(ChildIcon, { className: "h-3 w-3 text-foreground-subtle flex-shrink-0" })
56647
57853
  }),
56648
- /* @__PURE__ */ jsx("span", {
56649
- className: "text-[10.5px] text-foreground flex-1 truncate",
56650
- children: childListName(child, parentName)
57854
+ /* @__PURE__ */ jsx(DeviceName, {
57855
+ device: child,
57856
+ form: "nested",
57857
+ parent: {
57858
+ id: child.parentDeviceId ?? 0,
57859
+ name: parentName,
57860
+ type: "unknown",
57861
+ stableId: ""
57862
+ },
57863
+ className: "text-[10.5px] text-foreground flex-1 truncate"
56651
57864
  }),
56652
57865
  showMotionTrigger && /* @__PURE__ */ jsx(ChildMotionTriggerToggle, {
56653
57866
  trpc,
@@ -56754,8 +57967,9 @@ function IconAction({ icon: Icon, label, onClick, danger = false }) {
56754
57967
  function DeviceDeleteAction({ device, onDelete }) {
56755
57968
  const t = useUiText();
56756
57969
  const confirm = useConfirm();
57970
+ const deviceLabel = useDeviceLabel(device, "full");
56757
57971
  const requestDelete = async () => {
56758
- const label = device.name.trim() !== "" ? device.name : `#${String(device.id)}`;
57972
+ const label = deviceLabel.trim() !== "" ? deviceLabel : `#${String(device.id)}`;
56759
57973
  if (await confirm({
56760
57974
  title: t("uiLibrary.deviceDeleteAction.title", "Delete device?"),
56761
57975
  message: t("uiLibrary.deviceDeleteAction.message", "This will remove \"{{label}}\" and all its settings. This action cannot be undone.", { label }),
@@ -57038,7 +58252,7 @@ var CHEVRON_SLOT_CLASS = {
57038
58252
  horizontal: "h-3.5 w-3.5",
57039
58253
  stacked: "h-4 w-4 mt-0.5"
57040
58254
  };
57041
- function DeviceItemHeader({ trpc, device, variant, flags, parent, integrationIcon, hasChildren, expanded, onToggleExpand, onNavigateToParent, stacked = false, nameOverflow = "truncate" }) {
58255
+ function DeviceItemHeader({ trpc, device, variant, flags, parent, integrationIcon, hasChildren, expanded, onToggleExpand, onNavigateToParent, stacked = false, nameOverflow = "truncate", nameForm = "compact" }) {
57042
58256
  const t = useUiText();
57043
58257
  const containerChildren = useContainerChildren(device.id);
57044
58258
  const roleDefaults = useRoleDisplayDefaults();
@@ -57049,6 +58263,13 @@ function DeviceItemHeader({ trpc, device, variant, flags, parent, integrationIco
57049
58263
  const slotClass = stacked ? CHEVRON_SLOT_CLASS.stacked : CHEVRON_SLOT_CLASS.horizontal;
57050
58264
  const iconClass = cn("text-foreground-subtle flex-shrink-0", stacked ? "h-4 w-4 mt-0.5" : variant === "minimal" ? "h-3 w-3" : "h-3.5 w-3.5");
57051
58265
  const lineClass = nameOverflow === "scroll" ? NAME_TEXT_CLASS : "truncate";
58266
+ const nameParent = nameForm === "nested" && parent !== null ? {
58267
+ id: parent.id,
58268
+ name: parent.name,
58269
+ type: parent.type ?? "unknown",
58270
+ stableId: ""
58271
+ } : void 0;
58272
+ const parentLabel = useDeviceLabelById(parent?.id ?? 0, "compact", parent?.name);
57052
58273
  return /* @__PURE__ */ jsxs("div", {
57053
58274
  className: cn(stacked ? "flex items-start gap-2 w-full min-w-0" : "flex items-center gap-2 flex-1 min-w-0"),
57054
58275
  children: [
@@ -57079,11 +58300,12 @@ function DeviceItemHeader({ trpc, device, variant, flags, parent, integrationIco
57079
58300
  children: [flags.showIntegrationIcon && integrationIcon && /* @__PURE__ */ jsx("span", {
57080
58301
  className: "flex-shrink-0",
57081
58302
  children: integrationIcon
57082
- }), /* @__PURE__ */ jsx("span", {
57083
- "data-testid": "device-name",
57084
- className: cn("font-semibold text-foreground", stacked ? "text-[13px] leading-snug line-clamp-2 break-words" : cn(lineClass, variant === "minimal" ? "text-[10.5px]" : "text-[11px]")),
57085
- title: device.name,
57086
- children: device.name
58303
+ }), /* @__PURE__ */ jsx(DeviceName, {
58304
+ device,
58305
+ form: nameForm,
58306
+ ...nameParent !== void 0 ? { parent: nameParent } : {},
58307
+ testId: "device-name",
58308
+ className: cn("font-semibold text-foreground", stacked ? "text-[13px] leading-snug line-clamp-2 break-words" : cn(lineClass, variant === "minimal" ? "text-[10.5px]" : "text-[11px]"))
57087
58309
  })]
57088
58310
  }),
57089
58311
  (flags.showId || flags.showStableId) && /* @__PURE__ */ jsxs("div", {
@@ -57112,12 +58334,12 @@ function DeviceItemHeader({ trpc, device, variant, flags, parent, integrationIco
57112
58334
  },
57113
58335
  className: cn("mt-0.5 inline-flex items-center gap-1 text-[9px] text-foreground-subtle hover:text-primary transition-colors", nameOverflow === "scroll" ? "md:max-w-full" : "max-w-full"),
57114
58336
  title: t("uiLibrary.deviceItemHeader.openParent", "Open parent: {{name}} (#{{id}})", {
57115
- name: parent.name,
58337
+ name: parentLabel,
57116
58338
  id: parent.id
57117
58339
  }),
57118
58340
  children: [/* @__PURE__ */ jsx(Network, { className: "h-2.5 w-2.5 shrink-0" }), /* @__PURE__ */ jsx("span", {
57119
58341
  className: lineClass,
57120
- children: t("uiLibrary.deviceItemHeader.under", "Under: {{name}}", { name: parent.name })
58342
+ children: t("uiLibrary.deviceItemHeader.under", "Under: {{name}}", { name: parentLabel })
57121
58343
  })]
57122
58344
  })
57123
58345
  ]
@@ -57246,7 +58468,9 @@ function HoverZoomImage({ src, alt, caption, placeholder = "No image", thumbClas
57246
58468
  * the 288 px hover zoom. */
57247
58469
  var PREVIEW_SNAPSHOT_WIDTH = 480;
57248
58470
  function DeviceItemPreview({ trpc, device, status, enabled, showStatusPills = false }) {
57249
- const snapshot = useDeviceSnapshotImage(enabled && device.online ? device.id : null, { width: PREVIEW_SNAPSHOT_WIDTH });
58471
+ const liveActive = enabled && device.online;
58472
+ const deviceLabel = useDeviceLabel(device, "compact");
58473
+ const snapshot = useDeviceSnapshotImage(liveActive ? device.id : null, { width: PREVIEW_SNAPSHOT_WIDTH });
57250
58474
  const isBatteryOperated = (device.features ?? []).includes("battery-operated");
57251
58475
  const wantPills = showStatusPills && isBatteryOperated && !device.disabled;
57252
58476
  const batteryStatus = useDeviceBattery(trpc, wantPills ? device.id : null);
@@ -57262,7 +58486,7 @@ function DeviceItemPreview({ trpc, device, status, enabled, showStatusPills = fa
57262
58486
  wantLinkPill && /* @__PURE__ */ jsx(NetworkLinkBadge, { status: linkStatus }),
57263
58487
  enabled && /* @__PURE__ */ jsx(HoverZoomImage, {
57264
58488
  src: offline ? null : snapshot.src,
57265
- alt: device.name,
58489
+ alt: deviceLabel,
57266
58490
  placeholder,
57267
58491
  thumbClassName: "h-7 w-7 rounded"
57268
58492
  })
@@ -57485,6 +58709,14 @@ function DeviceItem(props) {
57485
58709
  const flags = resolveFlags(props);
57486
58710
  const variant = props.variant ?? "compact";
57487
58711
  const view = props.view ?? "card";
58712
+ const nameForm = props.isAccessoryRow ? "nested" : "compact";
58713
+ const nameParent = nameForm === "nested" && parent ? {
58714
+ id: parent.id,
58715
+ name: parent.name,
58716
+ type: parent.type ?? "unknown",
58717
+ stableId: ""
58718
+ } : void 0;
58719
+ const rowLabel = useDeviceLabel(device, nameForm, nameParent !== void 0 ? { parent: nameParent } : void 0);
57488
58720
  const enabled = !device.disabled;
57489
58721
  const isCamera = device.isCamera ?? device.type.toLowerCase() === "camera";
57490
58722
  const childrenList = props.children ?? [];
@@ -57560,7 +58792,7 @@ function DeviceItem(props) {
57560
58792
  checked: selection.selected,
57561
58793
  onChange: selection.onToggle,
57562
58794
  onClick: (e) => e.stopPropagation(),
57563
- "aria-label": t("uiLibrary.deviceItem.select", "Select {{name}}", { name: device.name }),
58795
+ "aria-label": t("uiLibrary.deviceItem.select", "Select {{name}}", { name: rowLabel }),
57564
58796
  className: "flex-shrink-0"
57565
58797
  }),
57566
58798
  /* @__PURE__ */ jsx(DeviceItemHeader, {
@@ -57569,6 +58801,7 @@ function DeviceItem(props) {
57569
58801
  variant,
57570
58802
  flags,
57571
58803
  parent: parent ?? null,
58804
+ nameForm,
57572
58805
  integrationIcon: integrationIcon ?? null,
57573
58806
  hasChildren,
57574
58807
  expanded,
@@ -57637,7 +58870,7 @@ function DeviceItem(props) {
57637
58870
  checked: selection.selected,
57638
58871
  onChange: selection.onToggle,
57639
58872
  onClick: (e) => e.stopPropagation(),
57640
- "aria-label": t("uiLibrary.deviceItem.select", "Select {{name}}", { name: device.name }),
58873
+ "aria-label": t("uiLibrary.deviceItem.select", "Select {{name}}", { name: rowLabel }),
57641
58874
  className: "flex-shrink-0 mt-0.5"
57642
58875
  }),
57643
58876
  /* @__PURE__ */ jsx(DeviceItemHeader, {
@@ -57646,6 +58879,7 @@ function DeviceItem(props) {
57646
58879
  variant,
57647
58880
  flags,
57648
58881
  parent: parent ?? null,
58882
+ nameForm,
57649
58883
  integrationIcon: integrationIcon ?? null,
57650
58884
  hasChildren,
57651
58885
  expanded,
@@ -57706,6 +58940,14 @@ function DeviceItemTableRow(props) {
57706
58940
  const t = useUiText();
57707
58941
  const { trpc, device, variant, flags, parent, integrationIcon, accessoryCount, adoptedCount, hasChildren, expanded, onToggleExpand, onNavigate, onRowClick, rowSelects, rowSelected, displayStatus, isCamera, showSnapshot, isAccessoryRow, indentLevel, className, renderRowAction, onDelete, selection, showTypeCell, showManufacturerCell, showFeaturesCell } = props;
57708
58942
  const containerChildren = useContainerChildren(device.id);
58943
+ const nameForm = isAccessoryRow ? "nested" : "compact";
58944
+ const nameParent = nameForm === "nested" && parent ? {
58945
+ id: parent.id,
58946
+ name: parent.name,
58947
+ type: parent.type ?? "unknown",
58948
+ stableId: ""
58949
+ } : void 0;
58950
+ const rowLabel = useDeviceLabel(device, nameForm, nameParent !== void 0 ? { parent: nameParent } : void 0);
57709
58951
  return /* @__PURE__ */ jsxs("tr", {
57710
58952
  onClick: onRowClick,
57711
58953
  ...rowSelects ? {
@@ -57730,7 +58972,7 @@ function DeviceItemTableRow(props) {
57730
58972
  checked: selection.selected,
57731
58973
  onChange: selection.onToggle,
57732
58974
  onClick: (e) => e.stopPropagation(),
57733
- "aria-label": t("uiLibrary.deviceItem.select", "Select {{name}}", { name: device.name }),
58975
+ "aria-label": t("uiLibrary.deviceItem.select", "Select {{name}}", { name: rowLabel }),
57734
58976
  className: "flex-shrink-0"
57735
58977
  }), /* @__PURE__ */ jsx(DeviceItemHeader, {
57736
58978
  trpc,
@@ -57738,6 +58980,7 @@ function DeviceItemTableRow(props) {
57738
58980
  variant,
57739
58981
  flags,
57740
58982
  parent,
58983
+ nameForm,
57741
58984
  integrationIcon,
57742
58985
  hasChildren,
57743
58986
  expanded,
@@ -58476,13 +59719,13 @@ function TableRowGroup({ parent, accessories, hasAccessories, expanded, onToggle
58476
59719
  function AccessorySubRow({ trpc, accessory, parentName, showType, showManufacturer, showFeatures, onNavigate, muted }) {
58477
59720
  return /* @__PURE__ */ jsx(DeviceItem, {
58478
59721
  trpc,
58479
- device: {
58480
- ...accessory,
58481
- name: childListName(accessory, parentName)
58482
- },
59722
+ device: accessory,
58483
59723
  view: "table",
58484
59724
  integrationIcon: null,
58485
- parent: null,
59725
+ parent: accessory.parentDeviceId === null ? null : {
59726
+ id: accessory.parentDeviceId,
59727
+ name: parentName
59728
+ },
58486
59729
  isAccessoryRow: true,
58487
59730
  showChildrenAccordion: false,
58488
59731
  onNavigate: onNavigate ?? void 0,
@@ -59281,6 +60524,15 @@ function DeviceExportSetup({ addonId }) {
59281
60524
  }), status.setup && /* @__PURE__ */ jsx(SetupSection, { setup: status.setup })]
59282
60525
  });
59283
60526
  }
60527
+ function ExportSelectCell({ device, checked, onToggle }) {
60528
+ return /* @__PURE__ */ jsx("input", {
60529
+ type: "checkbox",
60530
+ checked,
60531
+ onChange: onToggle,
60532
+ onClick: (e) => e.stopPropagation(),
60533
+ "aria-label": useUiText()("uiLibrary.deviceExport.select", "Select {{name}}", { name: useDeviceLabel(device, "compact") })
60534
+ });
60535
+ }
59284
60536
  /**
59285
60537
  * Per-row Expose/Exposed toggle. Reflects whether the row's device is exposed
59286
60538
  * to THIS exporter and flips it through the SAME runner the bulk buttons use —
@@ -59292,6 +60544,7 @@ function DeviceExportSetup({ addonId }) {
59292
60544
  */
59293
60545
  function ExportRowToggle({ addonId, device, exposed, busy, onToggle }) {
59294
60546
  const t = useUiText();
60547
+ const deviceLabel = useDeviceLabel(device, "compact");
59295
60548
  const handleClick = (e) => {
59296
60549
  e.stopPropagation();
59297
60550
  if (busy) return;
@@ -59302,7 +60555,7 @@ function ExportRowToggle({ addonId, device, exposed, busy, onToggle }) {
59302
60555
  variant: exposed ? "ghost" : "primary",
59303
60556
  disabled: busy,
59304
60557
  onClick: handleClick,
59305
- "aria-label": exposed ? t("uiLibrary.deviceExport.unexposeDevice", "Unexpose {{name}}", { name: device.name }) : t("uiLibrary.deviceExport.exposeDevice", "Expose {{name}}", { name: device.name }),
60558
+ "aria-label": exposed ? t("uiLibrary.deviceExport.unexposeDevice", "Unexpose {{name}}", { name: deviceLabel }) : t("uiLibrary.deviceExport.exposeDevice", "Expose {{name}}", { name: deviceLabel }),
59306
60559
  title: exposed ? t("uiLibrary.deviceExport.stopTitle", "Stop exposing to \"{{addon}}\"", { addon: addonId }) : t("uiLibrary.deviceExport.exposeTitle", "Expose to \"{{addon}}\"", { addon: addonId }),
59307
60560
  children: exposed ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Unlink2, { className: "mr-1 h-3.5 w-3.5" }), t("uiLibrary.deviceExport.exposed", "Exposed")] }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Share2, { className: "mr-1 h-3.5 w-3.5" }), t("uiLibrary.deviceExport.expose", "Expose")] })
59308
60561
  });
@@ -59518,12 +60771,10 @@ function DeviceExportPanel({ addonId, onOpenDevice, showSetup = true }) {
59518
60771
  key: "select",
59519
60772
  header: "",
59520
60773
  headerClassName: "w-8",
59521
- cell: (device) => /* @__PURE__ */ jsx("input", {
59522
- type: "checkbox",
60774
+ cell: (device) => /* @__PURE__ */ jsx(ExportSelectCell, {
60775
+ device,
59523
60776
  checked: selectedIds.has(String(device.id)),
59524
- onChange: () => toggleSelection(String(device.id)),
59525
- onClick: (e) => e.stopPropagation(),
59526
- "aria-label": t("uiLibrary.deviceExport.select", "Select {{name}}", { name: device.name })
60777
+ onToggle: () => toggleSelection(String(device.id))
59527
60778
  })
59528
60779
  },
59529
60780
  {
@@ -59542,9 +60793,10 @@ function DeviceExportPanel({ addonId, onOpenDevice, showSetup = true }) {
59542
60793
  {
59543
60794
  key: "name",
59544
60795
  header: t("uiLibrary.deviceExport.colName", "Name"),
59545
- cell: (device) => /* @__PURE__ */ jsx("span", {
59546
- className: "text-xs font-medium text-foreground",
59547
- children: device.name
60796
+ cell: (device) => /* @__PURE__ */ jsx(DeviceName, {
60797
+ device,
60798
+ form: "compact",
60799
+ className: "text-xs font-medium text-foreground"
59548
60800
  })
59549
60801
  },
59550
60802
  {
@@ -66357,6 +67609,26 @@ function deviceGroupTitle(group, t = defaultUiText) {
66357
67609
  function isDeviceNoun(noun) {
66358
67610
  return noun === "camera" || noun === "device";
66359
67611
  }
67612
+ /** Compact label for a device id. String ids (nodes, packages) keep the stored text. */
67613
+ function usePickerDeviceLabel(id, stored) {
67614
+ const lookedUp = useDeviceLabelById(typeof id === "number" ? id : 0, "compact", stored);
67615
+ return typeof id === "number" ? lookedUp : stored;
67616
+ }
67617
+ function PickerDeviceName({ id, stored, className }) {
67618
+ return /* @__PURE__ */ jsx("span", {
67619
+ className,
67620
+ children: usePickerDeviceLabel(id, stored)
67621
+ });
67622
+ }
67623
+ function PickerChip({ id, stored, removed, onRemove }) {
67624
+ const label = usePickerDeviceLabel(id, stored);
67625
+ return /* @__PURE__ */ jsx(SelectedChip, {
67626
+ testId: `picker-chip-${String(id)}`,
67627
+ label,
67628
+ warning: removed,
67629
+ ...onRemove !== void 0 ? { onRemove } : {}
67630
+ });
67631
+ }
66360
67632
  function chipsOf(value, devices, fleet, noun, t) {
66361
67633
  const byId = new Map(devices.map((device) => [device.id, device.name]));
66362
67634
  const orphans = new Map(offListSelections(value, devices, fleet.devices, fleet.state).map((row) => [row.id, row]));
@@ -66392,7 +67664,7 @@ function DevicePicker({ devices: devicesIn, listState, fleet, value, onChange, s
66392
67664
  const t = useUiText();
66393
67665
  const groupTitle = groupTitleProp ?? ((group) => deviceGroupTitle(group, t));
66394
67666
  const lockedNote = lockedNoteProp ?? t("uiLibrary.devicePicker.alreadyAdded", "Already added");
66395
- const devices = useMemo(() => withResolvedParentDetail(devicesIn), [devicesIn]);
67667
+ const devices = useMemo(() => isDeviceNoun(noun) ? devicesIn : withResolvedParentDetail(devicesIn), [devicesIn, noun]);
66396
67668
  const judge = fleet ?? {
66397
67669
  state: listState,
66398
67670
  devices: listState === "answered" ? devices : void 0
@@ -66427,10 +67699,10 @@ function DevicePicker({ devices: devicesIn, listState, fleet, value, onChange, s
66427
67699
  chips.length === 0 ? /* @__PURE__ */ jsx("span", {
66428
67700
  className: "text-[11px] text-foreground-subtle",
66429
67701
  children: emptyLabel ?? (emptyMeansAll ? t("uiLibrary.devicePicker.everyNoRestriction", "Every {{noun}} — no restriction", { noun: pickerNounLabel(noun, t) }) : t("uiLibrary.devicePicker.noneSelected", "None selected"))
66430
- }) : overflow.shown.map((chip) => /* @__PURE__ */ jsx(SelectedChip, {
66431
- testId: `picker-chip-${String(chip.id)}`,
66432
- label: chip.label,
66433
- warning: chip.removed,
67702
+ }) : overflow.shown.map((chip) => /* @__PURE__ */ jsx(PickerChip, {
67703
+ id: chip.id,
67704
+ stored: chip.label,
67705
+ removed: chip.removed,
66434
67706
  ...!disabled ? { onRemove: () => onChange(value.filter((id) => id !== chip.id)) } : {}
66435
67707
  }, chip.id)),
66436
67708
  overflow.hidden > 0 && /* @__PURE__ */ jsx("button", {
@@ -66723,9 +67995,10 @@ function PickerRowView({ row, value, onChange, onToggleGroup, annotate, groupTit
66723
67995
  }), /* @__PURE__ */ jsxs("span", {
66724
67996
  className: "flex min-w-0 flex-1 flex-col",
66725
67997
  children: [
66726
- /* @__PURE__ */ jsx("span", {
66727
- className: "truncate",
66728
- children: row.device.name
67998
+ /* @__PURE__ */ jsx(PickerDeviceName, {
67999
+ id: row.device.id,
68000
+ stored: row.device.name,
68001
+ className: "truncate"
66729
68002
  }),
66730
68003
  second !== void 0 && /* @__PURE__ */ jsx("span", {
66731
68004
  className: "truncate text-[10px] text-foreground-subtle",
@@ -69662,12 +70935,12 @@ var statusIcons = {
69662
70935
  * Render inside `<Suspense>` at all call sites. */
69663
70936
  var MaskShapeCanvas = lazy(() => import("./MaskShapeCanvas-C9cJlxvG.js").then((m) => ({ default: m.MaskShapeCanvas })));
69664
70937
  /** Lazy-wrapped `MotionZonesSettings` — code-split off the main bundle. */
69665
- var MotionZonesSettings = lazy(() => import("./MotionZonesSettings-DR1g9ja3.js").then((m) => ({ default: m.MotionZonesSettings })));
70938
+ var MotionZonesSettings = lazy(() => import("./MotionZonesSettings-BCU2NW7w.js").then((m) => ({ default: m.MotionZonesSettings })));
69666
70939
  /** Lazy-wrapped `SceneMonitorEditor` — code-split off the main bundle for the
69667
70940
  * same reason: it mounts `MaskShapeCanvas`, which chains react-konva. Render
69668
70941
  * inside `<Suspense>`; the admin-ui `/scenes` dialog is its only caller. */
69669
- var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-CrxB3ZPL.js").then((m) => ({ default: m.SceneMonitorEditor })));
70942
+ var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-5N2xqurW.js").then((m) => ({ default: m.SceneMonitorEditor })));
69670
70943
  /** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
69671
- var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-C9wfHkiB.js").then((m) => ({ default: m.PrivacyMaskSettings })));
70944
+ var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-VntwpB1u.js").then((m) => ({ default: m.PrivacyMaskSettings })));
69672
70945
  //#endregion
69673
- export { ShieldOff as $, Clock as $n, LoaderCircle as $t, TrainFront as A, AddProviderEntryDialog, AddonGlobalSettingsForm, AdminLinkQuickAction, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, Feather as An, AppShell, Bike as Ar, ArcKnob, Pause as At, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, SunMedium as B, BATTERY_BADGE_LOW_KEY, BATTERY_BADGE_NORMAL_KEY, BINARY_BATTERY_LOW_BELOW, BOOLEAN_STATES, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, BackToStepsButton, Badge, BarSeries, BatteryBadge, DoorClosed as Bn, BottomSheet, Baby as Br, Breadcrumb, BrightnessPanel, MonitorPlay as Bt, Button, ButtonControl, ButtonHeroCard, Undo2 as C, CENTER, CHART_SERIES_TOKENS, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONSUMABLE_LOW_PERCENT, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, ChartFrame, ChartPlaceholder, ChartSwatch, ChartWindowToggle, Checkbox, ChildSectionAccordion, ClimatePanel, Gamepad2 as Cn, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigNotificationTargetMultiSelectFieldView, ConfigNotificationTargetSelectFieldView, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumableLevelBadge, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, Bus as Cr, Play as Ct, CustomFieldRenderersProvider, TrendingDown as D, DATA_RECORDS_KIND_PARAM, DATA_RECORDS_OWNER_PARAM, DATA_RECORD_FACET_GROUPS, DEFAULT_COLOR, DEFAULT_PAGINATION_LABELS, DEVICE_COLUMNS, DEVICE_EXPORT_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_PICKER_GROUP_STORAGE_KEY, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DataRecordsHub, DataTable, DataTableFilterBar, DataTablePager, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceExportSetup, DeviceFilterBar, DeviceGrid, DeviceHistoryView, DeviceItem, DeviceList, DeviceMultiSelectField, DevicePicker, DeviceQuickDetailProvider, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, DevicesFailedLine, DevicesLoadingLine, DevicesWidenWarning, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DisplayPaletteProvider, FlashlightOff as Dn, DoorbellRecentPanel, Bone as Dr, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, Phone as Dt, DummyHeroCard, DummyInline, TriangleAlert as E, EMPTY_DATA_TABLE_FILTER, EMPTY_HISTORY_PANELS, EVENT_KIND_ICONS, EmptyState, Flashlight as En, EndpointResultsCard, EndpointTestCard, EntryJsonSchemaForm, Bot as Er, ErrorBox, Pin as Et, EventKindGlyph, EventStream, ExtensionsPanel, Thermometer as F, FAST_ICON_GLYPHS, FILL, FLEET_LIST_GC_TIME_MS, FLEET_LIST_QUERY_KEY, FLEET_LIST_STALE_TIME_MS, FanHeroCard, FanInlineControl, FanPanel, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, EllipsisVertical as Fn, FormField$1 as FormField, BatteryMedium as Fr, Move as Ft, Snowflake as G, GAP_INTERVAL_FACTOR, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GateBadge, GateControl, Copy as Gn, ArrowDown as Gr, GripTrack, GroupedModelSelector, GroupedTilePicker, Menu as Gt, Square as H, HISTORY_PAGE_PATH, HISTORY_PANELS_NAMESPACE, HISTORY_SELECTION_MAX, HISTORY_WINDOW_IDS, HISTORY_WINDOW_MS, HOST_WIDGETS, HUB_SESSION_RUN_MS, HistoryChart, HistoryWindowBar, HlsVideo, Database as Hn, HoverZoomImage, ArrowUpToLine as Hr, Minimize2 as Ht, HubSessionTestCard, HumidifierHeroCard, HumidifierInlineControl, Target as I, INPUT_COMPACT, INPUT_SHELL, IconAction, IconButton, IconPicker, ImageHeroCard, ImageInlineControl, ImageSelector, Droplets as In, InferenceConfigSelector, Input, BatteryLow as Ir, MoveVertical as It, ItemFormDialog, SkipForward as J, CloudSun as Jn, AirVent as Jr, MapPin as Jt, Smartphone as K, KebabMenu, KeyValueList, Cog as Kn, ArrowDownToLine as Kr, Megaphone as Kt, Tag as L, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LayeredSettingsForm, LightHeroCard, LightInlineControl, Droplet as Ln, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, BatteryFull as Lr, MoveHorizontal as Lt, ToggleRight as M, MEDIA_GRID, MODE_COLOR, MaskShapeCanvas, MediaCard, MediaGrid, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, Eye as Mn, MobileDrawer, ModelPicker, MotionZonesSettings, BellRing as Mr, Network as Mt, ToggleLeft as N, NAVIGATION_DRIVE_INTERVAL_MS, NODE_COLOR_IDS, NatResultCard, NavigationPanel, NetworkLinkBadge, EyeOff as Nn, NodeMultiSelectField, NodePicker, NodeSelectField, NotificationTargetSelectField, NotificationTargetsField, Battery as Nr, Navigation as Nt, TrendingUp as O, OCCUPANCY_KEY, OPTION_SELECT_SEARCH_MIN_OPTIONS, OfflineBadge, Flame as On, OptionSelect, Blinds as Or, Pencil as Ot, Timer as P, PAGE_SIZE_ALL, PHASE_CONFIG, PICKER_CHIP_LIMIT, PICKER_DEFAULT_GROUP_BY, PICKER_GROUP_BY_MODES, PICKER_GROUP_COLLAPSE_AT, PICKER_NONE_KEY, PICKER_NOUN_PLURAL, PICKER_NO_FILTERS, PICKER_PAGE_SIZE, PICKER_SEARCH_DEBOUNCE_MS, PICKER_WINDOW, PRIORITY, PTZOverlay, PageHeader, PageShell, PageSizeSelect, Pagination, PasswordInput, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PlaceholderChipField, PlayerOverlaysProvider, ExternalLink as Pn, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, BatteryWarning as Pr, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, ProviderEntryPills, Music as Pt, PtzPanel, Shield as Q, CloudFog as Qn, QrCode, LocateFixed as Qt, Sunrise as R, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RESOLUTION_BUCKET_MS, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, ROOT_DETECTOR_STEP_ID, RadialGauge, RecordEntriesPanel, RecordedPlaybackProvider, RecordingPanel, ResponseLog, RetrainReviewBadge, Download as Rn, RoleDisplayDefaultsFromServer, RoleDisplayDefaultsProvider, RoleNodePill, RootModelSourceControl, RootSuppliedModelNote, Bath as Rr, MousePointerClick as Rt, RunReport, RunningBadge, RunningStatusLine, Unlink2 as S, SCENE_CAPTURE_VARIANTS, SECRET_MASK_PLACEHOLDER, SECRET_REVEAL_MS, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SETTING_ROW, SETTING_ROW_LABEL, SETTING_ROW_STACK_BREAKPOINT, SETTING_ROW_VALUE, SETTING_ROW_VALUE_TEXT, SNAPSHOT_MEDIA_PATH, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, STEP_DOCK_WIDTH_PX, SUBJECT_PATH_DWELL_EPS, SUBJECT_PATH_FULL_FRAME_COVERAGE, SUBJECT_PATH_MAX_POINTS, SceneMonitorEditor, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, SecretFieldControl, SecretRevealProvider, SectionCard, SectionToolbar, SectionedPage, SegmentedChoice, Select, SelectedChip, SemanticBadge, SendFrameToTrainingButton, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideToggle, Gauge as Sn, SnapshotButton, SortHeaderButton, Sparkline, Cable as Sr, Plus as St, StableTabPanel, StatCard, StateTimeline, StateValuesStream, StatusBadge, StepDetailDock, StepInspectorPanel, StepModelRow, StepTimings, Stepper, StorageRecordsPanel, StreamBrokerSelector, StreamDebugOverlay, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, Truck as T, TABLE_SCROLL_MAX_H, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimeSeriesChart, TimezoneSelector, Footprints as Tn, Tooltip, TooltipContent, TooltipTrigger, Box as Tr, TrainingBaseModelPicker, TrainingCollectionPicker, Pipette as Tt, Sprout as U, UiTextProvider, UiTrans, Crosshair as Un, UnitPicker, ArrowRight as Ur, Mic as Ut, Star as V, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, ViewSwitch, Dog as Vn, VodPlaybackProvider, ArrowUp as Vr, Minus as Vt, Sparkles as W, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, Cpu as Wn, ArrowLeft as Wr, MessageSquare as Wt, Siren as X, CloudRain as Xn, Lock as Xt, SkipBack as Y, CloudSnow as Yn, Activity as Yr, Mail as Yt, Ship as Z, CloudLightning as Zn, ZoneEditingProvider, LockOpen as Zt, UtensilsCrossed as _, Hand as _n, ChartLine as _r, QrCode$1 as _t, Wrench as a, acceleratorLabel, acceleratorShortLabel, agentColumnKey, alignSeries, allDeviceTypeFilterOptions, LayoutGrid as an, anchorNow, applyFleetQueryDefaults, applyPickerFilters, CirclePause as ar, ariaSortForColumn, assignNodeColorId, Search as at, axisTicks, UserCheck as b, badgeFor, binaryBatteryIsLow, bindsToModel, Grid2x2 as bn, booleanLabels, Car as br, PowerOff as bt, bucketTotals, buildColorByNodeId, buildDataRecordRows, buildPeerConnectionConfig, buildStepTreeFromSchema, buildSubjectPath, buildTimeSeriesModel, Wifi as c, catalogHasDraft, chartKeys, chartSeriesStyle, childEntityId, childListName, chipOverflow, chunk, classifyAddressScope, classifyCapability, classifySessionVerdict, clearPickerGroup, clusterRootModelIds, cn, colorIdForNode, columnsForContext, compareSrflxMappings, computePageButtons, consumableItemLevel, consumableLevelBarClass, consumableLevelLabel, consumableLevelVariant, containerChildToRef, countableDevices, coverHighlight, coverageLine, CircleCheckBig as cr, createAddonI18n, createSharedContext, createTheme, Save as ct, currentAddonLanguage, cursorFractionFor, WifiLow as d, darkColors, dataRecordContents, dataRecordKey, dataRecordSearchText, dataRecordType, dataTableFacetGroups, dataTableFacets, decodeCustomWindow, decodeSeriesRef, defaultAxisSpec, defaultOfField, defaultSelectClusterRoots, defaultSingleClusterRoot, defaultTheme, defaultUiText, deriveDeviceKind, deriveWebrtcDebugStats, describeDeviceSelector, deviceIntegrationResolver, deviceListStateOf, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, ImageOff as dn, dockBox, ChevronsDownUp as dr, draftFromQuery, RotateCw as dt, effectivePageSize, emptyDevicesWidens, emptySessionRun, List as en, encodeCustomWindow, encodeSeriesRef, energyBuckets, ensureMfHostInit, Clapperboard as er, ShieldCheck as et, eventKindLabel, WifiHigh as f, filterDataTableRows, filterDeviceOptions, filterOccupancyLines, filterOptions as filterOptionSelectOptions, filterPickerDevices, finalizeSessionRun, findTimezone, flattenPickerGrouping, flattenPickerRows, fleetViewOf, House as fn, formatChartBytes, formatChartNumber, formatChartValue, formatControlDateTime, formatLastSeen, formatNumeric, formatSettingValue, formatSpan, formatTimeLabel, ChevronUp as fr, freezeVerdict, RotateCcw as ft, fuzzyMatch, Vibrate as g, gapThresholdMs, getClassColor, getPhaseVisual, HardDrive as gn, Check as gr, groupAgentColumns, groupChildrenByLayout, groupDeviceSeries, groupPickerDevices, groupPickerDevicesBy, Radar as gt, Volume2 as h, hardwareLabel, historyPageHref, Hash as hn, ChevronDown as hr, RadioTower as ht, hubOrigin, hubPath, hubUrl, hubWsUrl, humanDuration, humanizeName, humidifierTint, X as i, iconGlyphsFailed, iconGlyphsLoaded, Leaf as in, initialScrubState, insertAtSelection, CirclePlus as ir, isAbsentProvider, isByteUnit, isConsumableLevelField, isDataTableFilterActive, isDrawableSubjectPath, isFieldVisible, isGroupExpanded, isHistoryWindowId, isKeychainFieldValue, isModelScopedField, isRedactedSecret, isRefusal, isSecretField, isValueField, Server as it, Tractor as j, Fan as jn, Bell as jr, Package as jt, Trash2 as k, Film as kn, Bird as kr, PawPrint as kt, WifiZero as l, lawnMowerActivityMeta, lightColors, linePoints, Inbox as ln, loadIconGlyphs, loadRemoteBundle, CircleAlert as lr, Sailboat as lt, lucideExportName, VolumeX as m, makeScrubBridge, mapRootDetectorPlacements, mergeSecretForSubmit, metadataEntries, metadataString, Heater as mn, mountAddonPage, mountPath, ChevronLeft as mr, Radio as mt, ZoomIn as n, nextGridPosition, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, niceMax, niceRange, Link2 as nn, nodeColorClass, nodeSoftBgClass, nodeTextColorClass, normalizeForSearch, normalizeLanguage, normalizeSelection, CircleStop as nr, Share2 as nt, Workflow as o, occupancyFacets, occupancyLines, offListSelections, Laugh as on, openTopLayer, optionSearchText as optionSelectSearchText, CircleDot as or, orphanDeviceLabel, ScrollText as ot, overrideEntityIdFromLink, Waves as p, pageRows, pageSizeLabel, paginateRows, parentDetailOf, parseCapKey, parseConsumableLevel, parseIceCandidate, parsePickerGroupBy, parseProducerKey, parseRecordedServerMessage, partitionSelected as partitionOptionSelectSelected, partitionSuggested, pickerFacetFilterShown, pickerFacetKey, pickerFacetOptions, pickerFiltersActive, pickerGroupKey, pickerHiddenSelectedCount, pickerLocationKey, pickerQueryTokens, pickerRowFacts, pickerSearchText, pickerZoneFilterSuspended, pinnedStreamChoices, placePopover, History as pn, ChevronRight as pr, previousWindow, projectSubjectPath, providerIcons, RefreshCw as pt, SlidersHorizontal as q, Cloud as qn, AlarmSmoke as qr, Maximize2 as qt, Zap as r, readHistory, readHistoryPanels, readItemId, readStoredGroupBy, reduceSessionRun, registerAddonBundle, renderMarkup, renderTagged, resetHubMountForTests, resetPickerFilters, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDeviceIntegration, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolveHistoryWindow, resolveSearchable as resolveOptionSelectSearchable, resolveParentNames, resolvePrimaryChild, resolveSelectedDevices, resolveSensorDisplay, resolveStepDefaultModel, retrainReviewBadgeLook, Lightbulb as rn, roiTooLarge, rootSourceState, routerBasename, CircleQuestionMark as rr, Settings as rt, runningDurationSince, runningStatusParts, Wind as s, sameLocationSuggestions, scrubReducer, searchSteps, secretDisplayValue, secretSubmitValue, segmentsFromChanges, selectPickerGroup, selectedDeviceOptions, serializeRecordedCommand, seriesRefId, settingsModelIdFor, sharedGapSpans, shiftPoints, shouldCommit, shouldEmit, shouldShowAddNewFooter, shouldShowUseQueryRow, shouldUseSingleNode, showsNoCamerasHint, Info as sn, sortRows, sortRowsByColumn, CircleCheck as sr, Scan as st, stackBuckets, stackSeries, stateAt, stateRow, stateStyle, statusIcons, statusLine, stepFieldDomId, stepHasModelForFormat, stepLocalFields, stepModelOptions, stripParentNamePrefix, subjectPathSampleFromBox, subjectPathSvgPoints, summarizeHubCandidates, swatchFillClass, swatchLineClass, ZoomOut as t, tabForSelector, themeToCss, themeToRootCss, timeInState, ListChecks as tn, toStationaryOverlayBox, toggleDataTableFacet, toggleDataTableGroupFacet, togglePickerDevice, togglePickerKey, CircleX as tr, trainingRefusalText, translateAddonKey, trpc, ShieldAlert as tt, typeLabel, WifiOff as u, Image as un, unitAxes, ChevronsUpDown as ur, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsGetIntegrationSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonT, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCancelJob, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetJob, useAddonsGetLastRestart, useAddonsGetLogs, useAddonsGetPackageDocs, useAddonsGetVersions, useAddonsInstallFromWorkspace, useAddonsInstallPackage, useAddonsIsWorkspaceAvailable, useAddonsList, useAddonsListCapabilityProviders, useAddonsListFrameworkPackages, useAddonsListInstallations, useAddonsListJobs, useAddonsListPackages, useAddonsListUpdates, useAddonsListWorkspacePackages, useAddonsOnAddonLogs, useAddonsReloadPackages, useAddonsRestartAddon, useAddonsRestartServer, useAddonsRetryLoad, useAddonsRollbackPackage, useAddonsSearchAvailable, useAddonsSetAddonAutoUpdate, useAddonsSetAutoUpdateSettings, useAddonsSetCapabilityProviderEnabled, useAddonsStartJob, useAddonsUninstallPackage, useAddonsUpdatePackage, useAirQualitySensorGetStatus, useAlarmPanelArm, useAlarmPanelDisarm, useAlarmPanelGetStatus, useAlarmPanelTrigger, useAlert, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerAttachDevice, useAudioAnalyzerClassify, useAudioAnalyzerDetachDevice, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupCancel, useBackupCheckBackupKey, useBackupDelete, useBackupDeleteSchedule, useBackupDisableEncryption, useBackupGetEncryption, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListAvailableDatabases, useBackupListDestinations, useBackupListLocations, useBackupListRuns, useBackupListSchedules, useBackupPreviewSchedule, useBackupRestore, useBackupSetupEncryption, useBackupTrigger, useBackupUpsertDestinationPolicy, useBackupUpsertSchedule, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCalendarsGetPreferences, useCalendarsListCalendars, useCalendarsListEvents, useCalendarsSetCalendarPreference, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraGridLayoutApplyDeviceSettingsPatch, useCameraGridLayoutGetDeviceLiveContribution, useCameraGridLayoutGetDeviceSettingsContribution, useCameraGridLayoutGetLayout, useCameraGridLayoutSaveLayout, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCapabilityPresence, useCarbonMonoxideGetStatus, useClassPainter, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useClusterTopology, useColorGetStatus, useColorSetColor, useConfirm, useConnectionTestDescribeTest, useConnectionTestTestSettings, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoreBlocksCompile, useCoreBlocksCreate, useCoreBlocksCreateComposition, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetBlockSettings, useCoreBlocksGetComposition, useCoreBlocksGetCustomization, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksListComposableCaps, useCoreBlocksListCompositions, useCoreBlocksMigrateRawSecrets, useCoreBlocksRestart, useCoreBlocksSetEnabled, useCoreBlocksUpdate, useCoreBlocksUpdateBlockSettings, useCoreBlocksUpdateComposition, useCoreBlocksValidateComposition, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDataTableFilter, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderGetInfo, useDecoderReprobeHwaccel, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdminLink, useDeviceAdminLinkGetAdminLink, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceCredentialsDeleteDeviceCredential, useDeviceCredentialsGetDeviceCaStatus, useDeviceCredentialsGetDeviceCertificateSettings, useDeviceCredentialsListDeviceCredentials, useDeviceCredentialsRenameDeviceCredential, useDeviceCredentialsRevokeDeviceCredential, useDeviceCredentialsSetDeviceCertificateSettings, useDeviceCredentialsStartEnrollment, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceExtensionListCandidates, useDeviceExtensionListSlots, useDeviceExtensionListSources, useDeviceExtensionSetSlot, useDeviceHistoryDeclareSeries, useDeviceHistoryDeleteOrphanSeries, useDeviceHistoryGetDeviceEnabled, useDeviceHistoryGetStatus, useDeviceHistoryListNodeSeries, useDeviceHistoryListOrphanSeries, useDeviceHistoryListSeries, useDeviceHistoryQuery, useDeviceHistoryQueryMany, useDeviceHistoryQueryNode, useDeviceHistoryRecord, useDeviceHistoryRecordBuckets, useDeviceHistorySetDeviceEnabled, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionCancelJob, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionListJobs, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAdoptionStartJob, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyInitialMeta, useDeviceManagerCleanupDeletedDevicesData, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetBindingsBatch, useDeviceManagerGetChildren, useDeviceManagerGetChildrenBatch, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetDeviceStatusAggregateBatch, useDeviceManagerGetLinkedDevices, useDeviceManagerGetLinkedDevicesBatch, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerGetWrapperActivation, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListDeletedSince, useDeviceManagerListDeviceIdsByCaps, useDeviceManagerListLocationDescriptions, useDeviceManagerListLocationIcons, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListSiteZones, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerMigrateDevice, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRemoveSiteZone, useDeviceManagerRenameLocation, useDeviceManagerRenameSiteZone, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetLocationDescription, useDeviceManagerSetLocationIcon, useDeviceManagerSetLocationZone, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetSiteZone, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceNetworkLink, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderReloadDevice, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceQuickDetailOpen, useDeviceSeriesList, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateClaimFields, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetNativeCapSlice, useDeviceStateGetSnapshot, useDeviceStateListClaims, useDeviceStatePatchOwnedFields, useDeviceStateReleaseClaim, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDishwasherGetOptions, useDishwasherGetStatus, useDishwasherPause, useDishwasherResume, useDishwasherSetChildLock, useDishwasherSetExtraDry, useDishwasherSetHalfLoad, useDishwasherSetHygienePlus, useDishwasherSetIntensiveZone, useDishwasherSetOption, useDishwasherSetPower, useDishwasherSetProgram, useDishwasherSetVarioSpeedPlus, useDishwasherStart, useDishwasherStop, useDisplayIconResolver, useDisplayPaletteGetPalette, useDisplayPaletteListPresets, useDisplayPaletteSetPalette, useDisplayPaletteView, useDoorbellEvents, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryAuditIdentitySamples, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useGroupCommandsGetStatus, useGroupStatusGetStatus, useHeatingValveGetStatus, useHistoryPanels, useHistoryReader, useHistoryReads, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useIconGlyphsVersion, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useItemFormUrl, useKeychainAdminAcknowledgeReset, useKeychainAdminDeleteOrphans, useKeychainAdminDownloadRecoveryKey, useKeychainAdminImportSecret, useKeychainAdminListAudit, useKeychainAdminListSecrets, useKeychainAdminPurgeRetiredKeys, useKeychainAdminResetKeychain, useKeychainAdminResetReport, useKeychainAdminReveal, useKeychainAdminRotateMasterKey, useKeychainAdminSetSystemSecret, useKeychainAdminStatus, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, useLlmCancel, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmMigrateRawSecrets, useLlmResolveModelRef, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkAddCustomAddress, useLocalNetworkDownloadCa, useLocalNetworkGetAddresses, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetHubAddresses, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkGetTlsStatus, useLocalNetworkGetViewerEndpoints, useLocalNetworkList, useLocalNetworkRegenerateCertificate, useLocalNetworkRemoveCustomAddress, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkRevertToGeneratedCertificate, useLocalNetworkSetAddressRole, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLocalNetworkSetViewerEndpoints, useLocalNetworkUploadCertificate, useLocalNetworkUseStoredUploadedCertificate, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetLoadSeries, useMetricsProviderGetProcessStats, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetOptions, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNativeObjectDetectionSetSettings, useNavigation, useNavigationGetFeatures, useNavigationGetStatus, useNavigationGoToPoint, useNavigationListActions, useNavigationMove, useNavigationPlaySound, useNavigationRunAction, useNavigationSetLightLevel, useNavigationSetLightMode, useNavigationSetLightOn, useNavigationStop, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkLinkGetStatus, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesDirectory, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputGetTarget, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputProbeTargetConfig, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesActivateAlarmProfile, useNotificationRulesCancelSnooze, useNotificationRulesCreateAlarmProfile, useNotificationRulesCreateRule, useNotificationRulesCreateSequence, useNotificationRulesCreateSnooze, useNotificationRulesDeleteAlarmProfile, useNotificationRulesDeleteRule, useNotificationRulesDeleteSequence, useNotificationRulesGetAlarmConfig, useNotificationRulesGetAlarmSensors, useNotificationRulesGetClipRetentionAsks, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesGetRuleLastRuns, useNotificationRulesGetSequence, useNotificationRulesGetTemplateCatalog, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSequences, useNotificationRulesListSnoozes, useNotificationRulesPreviewStateSummary, useNotificationRulesPreviewTemplate, useNotificationRulesRenameAlarmProfile, useNotificationRulesResolveArtifactUrl, useNotificationRulesSetAlarmConfig, useNotificationRulesSetDeviceMuted, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotificationRulesUpdateSequence, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOidcConnectionsConnectionFormSchema, useOidcConnectionsCreateConnection, useOidcConnectionsDeleteConnection, useOidcConnectionsListConnections, useOidcConnectionsUpdateConnection, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdManagerClearSlotBinding, useOsdManagerCopyDeviceConfiguration, useOsdManagerDeleteTemplate, useOsdManagerGetConditionSupport, useOsdManagerGetDeviceOsd, useOsdManagerGetSourceCatalog, useOsdManagerListTemplates, useOsdManagerPreviewSlot, useOsdManagerRenderDevice, useOsdManagerSetSlotBinding, useOsdManagerSetSlotCameraEnabled, useOsdManagerUpsertTemplate, useOsdSetOverlay, usePTZ, usePersistedDisclosure, usePersistedPageSize, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePickerSiteZones, usePipelineAnalyticsAddRetrainFrameFromRecording, usePipelineAnalyticsAddRetrainFramesToCollection, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsBackfillRetrainOrigins, usePipelineAnalyticsCancelRelocateMedia, usePipelineAnalyticsCancelStorageMigrationMove, usePipelineAnalyticsClearTrackRelation, usePipelineAnalyticsClearTracks, usePipelineAnalyticsCompleteRetrainTrack, usePipelineAnalyticsCountRelocatableMedia, usePipelineAnalyticsCountUnstampedEventMedia, usePipelineAnalyticsCreateRetrainCollection, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteRetrainCollection, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsDeselectRetrainFrame, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventDensityBatch, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventMediaFootprintByKind, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetKeyEventsBatch, usePipelineAnalyticsGetMediaReclaimStatus, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetRetrainCorpusKpi, usePipelineAnalyticsGetRetrainExportUrl, usePipelineAnalyticsGetRetrainFrameImage, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetStorageMigrationMoveStatus, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListArchivedDebugNotes, usePipelineAnalyticsListBirthDecisions, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainAssistProfiles, usePipelineAnalyticsListRetrainCollectionFrames, usePipelineAnalyticsListRetrainCollections, usePipelineAnalyticsListRetrainCorpusPage, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTrackRelations, usePipelineAnalyticsListTracks, usePipelineAnalyticsOfferRetrainArchive, usePipelineAnalyticsOwnersWithMedia, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsProposeRetrainAnnotationsWithLlm, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsReadLongTermSeries, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsReclaimDebugMedia, usePipelineAnalyticsReconcileFromDisk, usePipelineAnalyticsRefreshStorageLocationsForMigration, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsRemoveRetrainFrameFromCollection, usePipelineAnalyticsRenameRetrainCollection, usePipelineAnalyticsResolveRetrainTrainingCorpus, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsResumeForStorageMigration, usePipelineAnalyticsSaveRetrainAnnotations, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsSelectRetrainFrames, usePipelineAnalyticsSetRetrainFrameComplete, usePipelineAnalyticsSetTrackFlags, usePipelineAnalyticsSetTrackPurity, usePipelineAnalyticsSetTrackRelation, usePipelineAnalyticsStartStorageMigrationMove, usePipelineAnalyticsWipeAllAnalytics, usePipelineAnalyticsWipeObjectEmbeddings, usePipelineAnalyticsWriteRetrainArchive, usePipelineExecutorCacheFrameInPool, usePipelineExecutorDeleteModel, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetInferenceDeviceHealth, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorRearmInferenceDevice, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorValidatePipeline, usePipelineOrchestratorAbortNodeBenchmark, usePipelineOrchestratorApplyAutoTune, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteNodeBenchmarkResult, usePipelineOrchestratorForgetInferenceDevice, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraDetectionSource, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraSwitches, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetClusterModelChoice, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetEffectiveShares, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeBenchmarkCandidates, usePipelineOrchestratorGetNodeBenchmarkPreflight, usePipelineOrchestratorGetNodeBenchmarkStatus, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorGetPlacementStats, usePipelineOrchestratorGetReconcileFromDiskStatus, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListNodeBenchmarkResults, usePipelineOrchestratorPauseForStorageMigration, usePipelineOrchestratorPlanAutoTune, usePipelineOrchestratorRebalance, usePipelineOrchestratorReconcileFromDisk, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorRequestOccupancyLook, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorResumeForStorageMigration, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDecodeLimits, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraDetectionSource, usePipelineOrchestratorSetCameraSensors, usePipelineOrchestratorSetCameraStepSettings, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetLoadBalancingShares, usePipelineOrchestratorSetNodeStepSettings, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorSetShareSource, usePipelineOrchestratorStartNodeBenchmark, usePipelineOrchestratorSuggestShares, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineRunnerAbortNodeBench, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerGetNodeBenchStatus, usePipelineRunnerGetParkedTrackFrame, usePipelineRunnerParkTrackFrame, usePipelineRunnerReleaseParkedTrackFrames, usePipelineRunnerReportMotion, usePipelineRunnerRequestOccupancyBurst, usePipelineRunnerRunDetailSubtree, usePipelineRunnerRunStatelessStep, usePipelineRunnerStartNodeBench, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetAudioEnabled, usePrivacyMaskSetMask, usePrompt, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzCaptureHomeHere, usePtzContinuousMove, usePtzDeletePreset, usePtzGetHomePreset, usePtzGetHomeReturn, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzSetHomePreset, usePtzSetHomeReturn, usePtzStop, useRebootReboot, useRecordEntriesDeleteEntry, useRecordEntriesListEntries, useRecordEntriesListEntryKinds, useRecordEntriesPutEntry, useRecordedPlayback, useRecordingArchiveApplyDeviceSettingsPatch, useRecordingArchiveCancelRelocateJob, useRecordingArchiveCancelStorageMigrationMove, useRecordingArchiveDeleteFootprint, useRecordingArchiveGetAvailabilityBatch, useRecordingArchiveGetDaysWithRecordingsBatch, useRecordingArchiveGetDeviceConfig, useRecordingArchiveGetDeviceLiveContribution, useRecordingArchiveGetDeviceSettingsContribution, useRecordingArchiveGetPlacement, useRecordingArchiveGetRelocateResidue, useRecordingArchiveGetStatus, useRecordingArchiveGetStorageMigrationMoveStatus, useRecordingArchiveGetStorageUsage, useRecordingArchiveListOpsLog, useRecordingArchiveListRelocateJobs, useRecordingArchiveLocateSegment, useRecordingArchivePauseForStorageMigration, useRecordingArchivePlanStorageRebalance, useRecordingArchivePruneFootage, useRecordingArchiveReadGopBytes, useRecordingArchiveReadSegmentBytes, useRecordingArchiveReadWindowBytes, useRecordingArchiveReconcileLedgerAgainstDisk, useRecordingArchiveRefreshStorageLocationsForMigration, useRecordingArchiveRelocateFootage, useRecordingArchiveRenderClip, useRecordingArchiveRenderGif, useRecordingArchiveRescanStorage, useRecordingArchiveResumeForStorageMigration, useRecordingArchiveSetDeviceConfig, useRecordingArchiveSetDevicePlacement, useRecordingArchiveStartStorageMigrationMove, useRecordingArchiveStartStorageRebalance, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingExportReadExportBytes, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetPlayback, useRecordingGetPlaybackOptions, useRecordingListSources, useRecordingOnboardGetOptions, useRecordingOnboardGetStatus, useRecordingOnboardSetSettings, useRecordingSignalGetStatus, useRemoteComponent, useRoleDisplayDefaults, useRunningStateGetStatus, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorListScenesBatch, useSceneMonitorRecheckNow, useSceneMonitorResetScene, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreAggregate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreDeleteWhere, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreInsertMany, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreTransact, useSettingsStoreUpdate, useSettingsStoreUpdateWhere, useSettingsStoreUpsert, useSettingsStoreUpsertMany, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStationaryOverlay, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageList, useStorageListDrainProgress, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageMigrationCancel, useStorageMigrationCleanupCancel, useStorageMigrationCleanupStart, useStorageMigrationCleanupStatus, useStorageMigrationDrain, useStorageMigrationHistory, useStorageMigrationMoverClearance, useStorageMigrationMovers, useStorageMigrationPlan, useStorageMigrationResidue, useStorageMigrationStart, useStorageMigrationStatus, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStoredGroupBy, useStreamBrokerAcquireEgressTranscode, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerFetchEventMedia, useStreamBrokerForgetDeviceHardware, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetLiveViewerCounts, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerReportStreamSignal, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useStreamSignalsListSignals, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemDetectSiteLocation, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetFailureContributions, useSystemGetLoadContributions, useSystemGetLoggingSettings, useSystemGetRequestCensus, useSystemGetRetentionConfig, useSystemGetSiteLocation, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetLoggingSettings, useSystemSetRetentionConfig, useSystemSetSiteLocation, useTamperGetStatus, useTemperatureSensorGetStatus, useTerminalSessionAdoptLegacyMonitor, useTerminalSessionClose, useTerminalSessionCreateInstance, useTerminalSessionDeleteInstance, useTerminalSessionListInstances, useTerminalSessionListLegacyCameras, useTerminalSessionListProfiles, useTerminalSessionListSessions, useTerminalSessionOpenSession, useTerminalSessionPullOutput, useTerminalSessionResize, useTerminalSessionSetInstanceEnabled, useTerminalSessionUpdateInstance, useTerminalSessionWriteInput, useThemeMode, useToastOnToast, useTrainingCanaryResult, useTrainingCancelJob, useTrainingDiscardResult, useTrainingGetJob, useTrainingGetJobResult, useTrainingListBaseModels, useTrainingListCanaryTargets, useTrainingListJobs, useTrainingPlanJob, useTrainingRegisterResult, useTrainingRollbackCanary, useTrainingStartJob, useTrainingStartJobBatch, useTurnProviderGetTurnServers, useUiText, useUpdateGetStatus, useUpdateInstallUpdate, useUrlQueryParam, useUserManagementConfirmTotp, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementFindUserByExternalIdentity, useUserManagementGetTotpStatus, useUserManagementListExternalIdentities, useUserManagementListOauthSessions, useUserManagementListUsers, useUserManagementMigrateRawSecrets, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeOauthSession, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUnlinkExternalIdentity, useUserManagementUpdateUser, useUserManagementValidateCredentials, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, useVideoclipsDialClipStream, useVideoclipsGetClipPlayback, useVideoclipsGetPlaybackOptions, useVideoclipsListClips, useVideoclipsListSources, useVideoclipsOfferClipBytes, useVideoclipsReadClipBytes, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionApplyDownlinkProbe, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionDebug, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetCurrentSnapshotBatch, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, Route as ut, Users as v, vacuumStateMeta, validateScopes, valveStateMeta, variantLabel, Hammer as vn, Cat as vr, Puzzle as vt, Type as w, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint, withHiddenChart, withPanel, withResolvedParentDetail, withUseRootModel, withoutModelScopedFields, withoutPanel, Funnel as wn, Bug as wr, writeStoredGroupBy, Plane as wt, Upload as x, GraduationCap as xn, Camera as xr, Plug as xt, User as y, GripHorizontal as yn, Cast as yr, Power as yt, Sun as z, DoorOpen as zn, Ban as zr, Moon as zt };
70946
+ export { Shield as $, CloudFog as $n, LocateFixed as $t, Trash2 as A, AddProviderEntryDialog, AddonGlobalSettingsForm, AdminLinkQuickAction, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, Film as An, AppShell, Bird as Ar, ArcKnob, PawPrint as At, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, Sun as B, BATTERY_BADGE_LOW_KEY, BATTERY_BADGE_NORMAL_KEY, BINARY_BATTERY_LOW_BELOW, BOOLEAN_STATES, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, BackToStepsButton, Badge, BarSeries, BatteryBadge, DoorOpen as Bn, BottomSheet, Ban as Br, Breadcrumb, BrightnessPanel, Moon as Bt, Button, ButtonControl, ButtonHeroCard, Unlink2 as C, CENTER, CHART_SERIES_TOKENS, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONSUMABLE_LOW_PERCENT, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, ChartFrame, ChartPlaceholder, ChartSwatch, ChartWindowToggle, Checkbox, ChildSectionAccordion, ClimatePanel, Gauge as Cn, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigNotificationTargetMultiSelectFieldView, ConfigNotificationTargetSelectFieldView, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumableLevelBadge, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, Cable as Cr, Plus as Ct, CustomFieldRenderersProvider, TriangleAlert as D, DATA_RECORDS_KIND_PARAM, DATA_RECORDS_OWNER_PARAM, DATA_RECORD_FACET_GROUPS, DEFAULT_COLOR, DEFAULT_PAGINATION_LABELS, DEVICE_COLUMNS, DEVICE_EXPORT_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_NAME_FORMS, DEVICE_NAME_JOIN, DEVICE_PICKER_GROUP_STORAGE_KEY, DEVICE_ROLE_META, DEVICE_ROLE_NOUNS, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DEVICE_TYPE_NOUNS, DataRecordsHub, DataTable, DataTableFilterBar, DataTablePager, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceExportSetup, DeviceFilterBar, DeviceFleetFromServer, DeviceFleetProvider, DeviceGrid, DeviceHistoryView, DeviceItem, DeviceList, DeviceMultiSelectField, DeviceName, DevicePicker, DeviceQuickDetailProvider, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, DevicesFailedLine, DevicesLoadingLine, DevicesWidenWarning, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DisplayPaletteProvider, Flashlight as Dn, DoorbellRecentPanel, Bot as Dr, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, Pin as Dt, DummyHeroCard, DummyInline, Truck as E, EMPTY_DATA_TABLE_FILTER, EMPTY_HISTORY_PANELS, EVENT_KIND_ICONS, EmptyState, Footprints as En, EndpointResultsCard, EndpointTestCard, EntryJsonSchemaForm, Box as Er, ErrorBox, Pipette as Et, EventKindGlyph, EventStream, ExtensionsPanel, Timer as F, FAST_ICON_GLYPHS, FILL, FLEET_LIST_GC_TIME_MS, FLEET_LIST_QUERY_KEY, FLEET_LIST_STALE_TIME_MS, FanHeroCard, FanInlineControl, FanPanel, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, ExternalLink as Fn, FormField$1 as FormField, BatteryWarning as Fr, Music as Ft, Sparkles as G, GAP_INTERVAL_FACTOR, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GateBadge, GateControl, Cpu as Gn, ArrowLeft as Gr, GripTrack, GroupedModelSelector, GroupedTilePicker, MessageSquare as Gt, Star as H, HISTORY_PAGE_PATH, HISTORY_PANELS_NAMESPACE, HISTORY_SELECTION_MAX, HISTORY_WINDOW_IDS, HISTORY_WINDOW_MS, HOST_WIDGETS, HUB_SESSION_RUN_MS, HistoryChart, HistoryWindowBar, HlsVideo, Dog as Hn, HoverZoomImage, ArrowUp as Hr, Minus as Ht, HubSessionTestCard, HumidifierHeroCard, HumidifierInlineControl, Thermometer as I, INPUT_COMPACT, INPUT_SHELL, IconAction, IconButton, IconPicker, ImageHeroCard, ImageInlineControl, ImageSelector, EllipsisVertical as In, InferenceConfigSelector, Input, BatteryMedium as Ir, Move as It, ItemFormDialog, SlidersHorizontal as J, Cloud as Jn, AlarmSmoke as Jr, Maximize2 as Jt, Snowflake as K, KebabMenu, KeyValueList, Copy as Kn, ArrowDown as Kr, Menu as Kt, Target as L, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LayeredSettingsForm, LightHeroCard, LightInlineControl, Droplets as Ln, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, BatteryLow as Lr, MoveVertical as Lt, Tractor as M, MEDIA_GRID, MODE_COLOR, MaskShapeCanvas, MediaCard, MediaGrid, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, Fan as Mn, MobileDrawer, ModelPicker, MotionZonesSettings, Bell as Mr, Package as Mt, ToggleRight as N, NAVIGATION_DRIVE_INTERVAL_MS, NODE_COLOR_IDS, NatResultCard, NavigationPanel, NetworkLinkBadge, Eye as Nn, NodeMultiSelectField, NodePicker, NodeSelectField, NotificationTargetSelectField, NotificationTargetsField, BellRing as Nr, Network as Nt, TrendingDown as O, OCCUPANCY_KEY, OPTION_SELECT_SEARCH_MIN_OPTIONS, OfflineBadge, FlashlightOff as On, OptionSelect, Bone as Or, Phone as Ot, ToggleLeft as P, PAGE_SIZE_ALL, PHASE_CONFIG, PICKER_CHIP_LIMIT, PICKER_DEFAULT_GROUP_BY, PICKER_GROUP_BY_MODES, PICKER_GROUP_COLLAPSE_AT, PICKER_NONE_KEY, PICKER_NOUN_PLURAL, PICKER_NO_FILTERS, PICKER_PAGE_SIZE, PICKER_SEARCH_DEBOUNCE_MS, PICKER_WINDOW, PRIORITY, PTZOverlay, PageHeader, PageShell, PageSizeSelect, Pagination, PasswordInput, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PlaceholderChipField, PlayerOverlaysProvider, EyeOff as Pn, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, Battery as Pr, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, ProviderEntryPills, Navigation as Pt, PtzPanel, Ship as Q, CloudLightning as Qn, QrCode, LockOpen as Qt, Tag as R, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RESOLUTION_BUCKET_MS, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, ROOT_DETECTOR_STEP_ID, RadialGauge, RecordEntriesPanel, RecordedPlaybackProvider, RecordingPanel, ResponseLog, RetrainReviewBadge, Droplet as Rn, RoleDisplayDefaultsFromServer, RoleDisplayDefaultsProvider, RoleNodePill, RootModelSourceControl, RootSuppliedModelNote, BatteryFull as Rr, MoveHorizontal as Rt, RunReport, RunningBadge, RunningStatusLine, Upload as S, SCENE_CAPTURE_VARIANTS, SECRET_MASK_PLACEHOLDER, SECRET_REVEAL_MS, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SETTING_ROW, SETTING_ROW_LABEL, SETTING_ROW_STACK_BREAKPOINT, SETTING_ROW_VALUE, SETTING_ROW_VALUE_TEXT, SNAPSHOT_MEDIA_PATH, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, STEP_DOCK_WIDTH_PX, SUBJECT_PATH_DWELL_EPS, SUBJECT_PATH_FULL_FRAME_COVERAGE, SUBJECT_PATH_MAX_POINTS, SceneMonitorEditor, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, SecretFieldControl, SecretRevealProvider, SectionCard, SectionToolbar, SectionedPage, SegmentedChoice, Select, SelectedChip, SemanticBadge, SendFrameToTrainingButton, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideToggle, GraduationCap as Sn, SnapshotButton, SortHeaderButton, Sparkline, Camera as Sr, Plug as St, StableTabPanel, StatCard, StateTimeline, StateValuesStream, StatusBadge, StepDetailDock, StepInspectorPanel, StepModelRow, StepTimings, Stepper, StorageRecordsPanel, StreamBrokerSelector, StreamDebugOverlay, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, Type as T, TABLE_SCROLL_MAX_H, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimeSeriesChart, TimezoneSelector, Funnel as Tn, Tooltip, TooltipContent, TooltipTrigger, Bug as Tr, TrainingBaseModelPicker, TrainingCollectionPicker, Plane as Tt, Square as U, UiTextProvider, UiTrans, Database as Un, UnitPicker, ArrowUpToLine as Ur, Minimize2 as Ut, SunMedium as V, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, ViewSwitch, DoorClosed as Vn, VodPlaybackProvider, Baby as Vr, MonitorPlay as Vt, Sprout as W, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, Crosshair as Wn, ArrowRight as Wr, Mic as Wt, SkipBack as X, CloudSnow as Xn, Activity as Xr, Mail as Xt, SkipForward as Y, CloudSun as Yn, AirVent as Yr, MapPin as Yt, Siren as Z, CloudRain as Zn, ZoneEditingProvider, Lock as Zt, Vibrate as _, HardDrive as _n, Check as _r, Radar as _t, Wrench as a, acceleratorLabel, acceleratorShortLabel, agentColumnKey, alignSeries, allDeviceTypeFilterOptions, Leaf as an, anchorNow, applyFleetQueryDefaults, applyPickerFilters, CirclePlus as ar, ariaSortForColumn, assignNodeColorId, Server as at, axisTicks, User as b, badgeFor, binaryBatteryIsLow, bindsToModel, GripHorizontal as bn, booleanLabels, Cast as br, Power as bt, bucketTotals, buildColorByNodeId, buildDataRecordRows, buildPeerConnectionConfig, buildStepTreeFromSchema, buildSubjectPath, buildTimeSeriesModel, Wifi as c, catalogHasDraft, chartKeys, chartSeriesStyle, childEntityId, childListName, chipOverflow, chunk, classifyAddressScope, classifyCapability, classifySessionVerdict, clearPickerGroup, clusterRootModelIds, cn, colorIdForNode, columnsForContext, compareSrflxMappings, computePageButtons, consumableItemLevel, consumableLevelBarClass, consumableLevelLabel, consumableLevelVariant, containerChildToRef, countableDevices, coverHighlight, coverageLine, CircleCheck as cr, createAddonI18n, createSharedContext, createTheme, Scan as ct, currentAddonLanguage, cursorFractionFor, WifiLow as d, darkColors, dataRecordContents, dataRecordKey, dataRecordSearchText, dataRecordType, dataTableFacetGroups, dataTableFacets, decodeCustomWindow, decodeSeriesRef, defaultAxisSpec, defaultOfField, defaultSelectClusterRoots, defaultSingleClusterRoot, defaultTheme, defaultUiText, deriveDeviceKind, deriveWebrtcDebugStats, describeDeviceSelector, deviceIntegrationResolver, deviceListStateOf, deviceMatchesFilter, deviceNameNouns, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, Image as dn, dockBox, ChevronsUpDown as dr, draftFromQuery, Route as dt, effectivePageSize, emptyDevicesWidens, emptySessionRun, LoaderCircle as en, encodeCustomWindow, encodeSeriesRef, energyBuckets, ensureMfHostInit, Clock as er, ShieldOff as et, eventKindLabel, WifiHigh as f, filterDataTableRows, filterDeviceOptions, filterOccupancyLines, filterOptions as filterOptionSelectOptions, filterPickerDevices, finalizeSessionRun, findTimezone, flattenPickerGrouping, flattenPickerRows, fleetViewOf, ImageOff as fn, foldDeviceName, formatChartBytes, formatChartNumber, formatChartValue, formatControlDateTime, formatDeviceName, formatLastSeen, formatNumeric, formatSettingValue, formatSpan, formatTimeLabel, ChevronsDownUp as fr, freezeVerdict, RotateCw as ft, fuzzyMatch, Volume2 as g, gapThresholdMs, getClassColor, getPhaseVisual, Hash as gn, ChevronDown as gr, groupAgentColumns, groupChildrenByLayout, groupDeviceSeries, groupPickerDevices, groupPickerDevicesBy, RadioTower as gt, VolumeX as h, hardwareLabel, historyPageHref, Heater as hn, ChevronLeft as hr, Radio as ht, hubOrigin, hubPath, hubUrl, hubWsUrl, humanDuration, humanizeName, humidifierTint, X as i, iconGlyphsFailed, iconGlyphsLoaded, Lightbulb as in, indexDeviceNames, initialScrubState, insertAtSelection, CircleQuestionMark as ir, isAbsentProvider, isByteUnit, isConsumableLevelField, isDataTableFilterActive, isDeviceNameStock, isDrawableSubjectPath, isFieldVisible, isGroupExpanded, isHistoryWindowId, isKeychainFieldValue, isModelScopedField, isRedactedSecret, isRefusal, isSecretField, isValueField, Settings as it, TrainFront as j, Feather as jn, Bike as jr, Pause as jt, TrendingUp as k, Flame as kn, Blinds as kr, Pencil as kt, WifiZero as l, lawnMowerActivityMeta, lightColors, linePoints, Info as ln, loadIconGlyphs, loadRemoteBundle, CircleCheckBig as lr, Save as lt, lucideExportName, WashingMachine as m, makeScrubBridge, mapRootDetectorPlacements, mergeSecretForSubmit, metadataEntries, metadataString, History as mn, mountAddonPage, mountPath, ChevronRight as mr, RefreshCw as mt, ZoomIn as n, nextGridPosition, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, niceMax, niceRange, ListChecks as nn, nodeColorClass, nodeSoftBgClass, nodeTextColorClass, normalizeForSearch, normalizeLanguage, normalizeSelection, nounSpecFor, CircleX as nr, ShieldAlert as nt, Workflow as o, occupancyFacets, occupancyLines, offListSelections, LayoutGrid as on, openTopLayer, optionSearchText as optionSelectSearchText, CirclePause as or, orphanDeviceLabel, Search as ot, overrideEntityIdFromLink, Waves as p, pageRows, pageSizeLabel, paginateRows, parentDetailOf, parseCapKey, parseConsumableLevel, parseIceCandidate, parsePickerGroupBy, parseProducerKey, parseRecordedServerMessage, partitionSelected as partitionOptionSelectSelected, partitionSuggested, pickerFacetFilterShown, pickerFacetKey, pickerFacetOptions, pickerFiltersActive, pickerGroupKey, pickerHiddenSelectedCount, pickerLocationKey, pickerQueryTokens, pickerRowFacts, pickerSearchText, pickerZoneFilterSuspended, pinnedStreamChoices, placePopover, House as pn, ChevronUp as pr, previousWindow, projectSubjectPath, providerIcons, RotateCcw as pt, Smartphone as q, Cog as qn, ArrowDownToLine as qr, Megaphone as qt, Zap as r, readHistory, readHistoryPanels, readItemId, readStoredGroupBy, reduceSessionRun, registerAddonBundle, renderMarkup, renderTagged, resetHubMountForTests, resetPickerFilters, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDeviceIntegration, resolveDeviceLabel, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolveHistoryWindow, resolveSearchable as resolveOptionSelectSearchable, resolveParentNames, resolvePrimaryChild, resolveSelectedDevices, resolveSensorDisplay, resolveStepDefaultModel, retrainReviewBadgeLook, Link2 as rn, roiTooLarge, rootSourceState, routerBasename, CircleStop as rr, Share2 as rt, runningDurationSince, runningStatusParts, Wind as s, sameDeviceName, sameLocationSuggestions, scrubReducer, searchSteps, secretDisplayValue, secretSubmitValue, segmentsFromChanges, selectPickerGroup, selectedDeviceOptions, serializeRecordedCommand, seriesRefId, settingsModelIdFor, sharedGapSpans, shiftPoints, shouldCommit, shouldEmit, shouldShowAddNewFooter, shouldShowUseQueryRow, shouldUseSingleNode, showsNoCamerasHint, Laugh as sn, sortRows, sortRowsByColumn, CircleDot as sr, ScrollText as st, stackBuckets, stackSeries, stateAt, stateRow, stateStyle, statusIcons, statusLine, stepFieldDomId, stepHasModelForFormat, stepLocalFields, stepModelOptions, stripDeviceParentPrefix, stripParentNamePrefix, subjectPathSampleFromBox, subjectPathSvgPoints, summarizeHubCandidates, swatchFillClass, swatchLineClass, ZoomOut as t, tabForSelector, themeToCss, themeToRootCss, timeInState, List as tn, toStationaryOverlayBox, toggleDataTableFacet, toggleDataTableGroupFacet, togglePickerDevice, togglePickerKey, Clapperboard as tr, trainingRefusalText, translateAddonKey, trpc, ShieldCheck as tt, typeLabel, WifiOff as u, Inbox as un, unitAxes, CircleAlert as ur, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsGetIntegrationSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonT, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCancelJob, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetJob, useAddonsGetLastRestart, useAddonsGetLogs, useAddonsGetPackageDocs, useAddonsGetVersions, useAddonsInstallFromWorkspace, useAddonsInstallPackage, useAddonsIsWorkspaceAvailable, useAddonsList, useAddonsListCapabilityProviders, useAddonsListFrameworkPackages, useAddonsListInstallations, useAddonsListJobs, useAddonsListPackages, useAddonsListUpdates, useAddonsListWorkspacePackages, useAddonsOnAddonLogs, useAddonsReloadPackages, useAddonsRestartAddon, useAddonsRestartServer, useAddonsRetryLoad, useAddonsRollbackPackage, useAddonsSearchAvailable, useAddonsSetAddonAutoUpdate, useAddonsSetAutoUpdateSettings, useAddonsSetCapabilityProviderEnabled, useAddonsStartJob, useAddonsUninstallPackage, useAddonsUpdatePackage, useAirQualitySensorGetStatus, useAlarmPanelArm, useAlarmPanelDisarm, useAlarmPanelGetStatus, useAlarmPanelTrigger, useAlert, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerAttachDevice, useAudioAnalyzerClassify, useAudioAnalyzerDetachDevice, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupCancel, useBackupCheckBackupKey, useBackupDelete, useBackupDeleteSchedule, useBackupDisableEncryption, useBackupGetEncryption, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListAvailableDatabases, useBackupListDestinations, useBackupListLocations, useBackupListRuns, useBackupListSchedules, useBackupPreviewSchedule, useBackupRestore, useBackupSetupEncryption, useBackupTrigger, useBackupUpsertDestinationPolicy, useBackupUpsertSchedule, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCalendarsGetPreferences, useCalendarsListCalendars, useCalendarsListEvents, useCalendarsSetCalendarPreference, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraGridLayoutApplyDeviceSettingsPatch, useCameraGridLayoutGetDeviceLiveContribution, useCameraGridLayoutGetDeviceSettingsContribution, useCameraGridLayoutGetLayout, useCameraGridLayoutSaveLayout, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCapabilityPresence, useCarbonMonoxideGetStatus, useClassPainter, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useClusterTopology, useColorGetStatus, useColorSetColor, useConfirm, useConnectionTestDescribeTest, useConnectionTestTestSettings, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoreBlocksCompile, useCoreBlocksCreate, useCoreBlocksCreateComposition, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetBlockSettings, useCoreBlocksGetComposition, useCoreBlocksGetCustomization, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksListComposableCaps, useCoreBlocksListCompositions, useCoreBlocksMigrateRawSecrets, useCoreBlocksRestart, useCoreBlocksSetEnabled, useCoreBlocksUpdate, useCoreBlocksUpdateBlockSettings, useCoreBlocksUpdateComposition, useCoreBlocksValidateComposition, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDataTableFilter, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderGetInfo, useDecoderReprobeHwaccel, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdminLink, useDeviceAdminLinkGetAdminLink, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceCredentialsDeleteDeviceCredential, useDeviceCredentialsGetDeviceCaStatus, useDeviceCredentialsGetDeviceCertificateSettings, useDeviceCredentialsListDeviceCredentials, useDeviceCredentialsRenameDeviceCredential, useDeviceCredentialsRevokeDeviceCredential, useDeviceCredentialsSetDeviceCertificateSettings, useDeviceCredentialsStartEnrollment, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceExtensionListCandidates, useDeviceExtensionListSlots, useDeviceExtensionListSources, useDeviceExtensionSetSlot, useDeviceHistoryDeclareSeries, useDeviceHistoryDeleteOrphanSeries, useDeviceHistoryGetDeviceEnabled, useDeviceHistoryGetStatus, useDeviceHistoryListNodeSeries, useDeviceHistoryListOrphanSeries, useDeviceHistoryListSeries, useDeviceHistoryQuery, useDeviceHistoryQueryMany, useDeviceHistoryQueryNode, useDeviceHistoryRecord, useDeviceHistoryRecordBuckets, useDeviceHistorySetDeviceEnabled, useDeviceId, useDeviceLabel, useDeviceLabelById, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionCancelJob, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionListJobs, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAdoptionStartJob, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyInitialMeta, useDeviceManagerCleanupDeletedDevicesData, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetBindingsBatch, useDeviceManagerGetChildren, useDeviceManagerGetChildrenBatch, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetDeviceStatusAggregateBatch, useDeviceManagerGetLinkedDevices, useDeviceManagerGetLinkedDevicesBatch, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerGetWrapperActivation, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListDeletedSince, useDeviceManagerListDeviceIdsByCaps, useDeviceManagerListLocationDescriptions, useDeviceManagerListLocationIcons, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListSiteZones, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerMigrateDevice, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRemoveSiteZone, useDeviceManagerRenameLocation, useDeviceManagerRenameSiteZone, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetLocationDescription, useDeviceManagerSetLocationIcon, useDeviceManagerSetLocationZone, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetSiteZone, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceNameIndex, useDeviceNameNouns, useDeviceNetworkLink, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderReloadDevice, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceQuickDetailOpen, useDeviceSeriesList, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateClaimFields, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetNativeCapSlice, useDeviceStateGetSnapshot, useDeviceStateListClaims, useDeviceStatePatchOwnedFields, useDeviceStateReleaseClaim, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDishwasherGetOptions, useDishwasherGetStatus, useDishwasherPause, useDishwasherResume, useDishwasherSetChildLock, useDishwasherSetExtraDry, useDishwasherSetHalfLoad, useDishwasherSetHygienePlus, useDishwasherSetIntensiveZone, useDishwasherSetOption, useDishwasherSetPower, useDishwasherSetProgram, useDishwasherSetVarioSpeedPlus, useDishwasherStart, useDishwasherStop, useDisplayIconResolver, useDisplayPaletteGetPalette, useDisplayPaletteListPresets, useDisplayPaletteSetPalette, useDisplayPaletteView, useDoorbellEvents, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryAuditIdentitySamples, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useGroupCommandsGetStatus, useGroupStatusGetStatus, useHeatingValveGetStatus, useHistoryPanels, useHistoryReader, useHistoryReads, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useIconGlyphsVersion, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useItemFormUrl, useKeychainAdminAcknowledgeReset, useKeychainAdminDeleteOrphans, useKeychainAdminDownloadRecoveryKey, useKeychainAdminImportSecret, useKeychainAdminListAudit, useKeychainAdminListSecrets, useKeychainAdminPurgeRetiredKeys, useKeychainAdminResetKeychain, useKeychainAdminResetReport, useKeychainAdminReveal, useKeychainAdminRotateMasterKey, useKeychainAdminSetSystemSecret, useKeychainAdminStatus, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, useLlmCancel, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmMigrateRawSecrets, useLlmResolveModelRef, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkAddCustomAddress, useLocalNetworkDownloadCa, useLocalNetworkGetAddresses, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetHubAddresses, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkGetTlsStatus, useLocalNetworkGetViewerEndpoints, useLocalNetworkList, useLocalNetworkRegenerateCertificate, useLocalNetworkRemoveCustomAddress, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkRevertToGeneratedCertificate, useLocalNetworkSetAddressRole, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLocalNetworkSetViewerEndpoints, useLocalNetworkUploadCertificate, useLocalNetworkUseStoredUploadedCertificate, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMeterGetStatus, useMetricsProviderCollectSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetLoadSeries, useMetricsProviderGetProcessStats, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetOptions, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNativeObjectDetectionSetSettings, useNavigation, useNavigationGetFeatures, useNavigationGetStatus, useNavigationGoToPoint, useNavigationListActions, useNavigationMove, useNavigationPlaySound, useNavigationRunAction, useNavigationSetLightLevel, useNavigationSetLightMode, useNavigationSetLightOn, useNavigationStop, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkLinkGetStatus, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesDirectory, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputGetTarget, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputProbeTargetConfig, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesActivateAlarmProfile, useNotificationRulesCancelSnooze, useNotificationRulesCreateAlarmProfile, useNotificationRulesCreateRule, useNotificationRulesCreateSequence, useNotificationRulesCreateSnooze, useNotificationRulesDeleteAlarmProfile, useNotificationRulesDeleteRule, useNotificationRulesDeleteSequence, useNotificationRulesGetAlarmConfig, useNotificationRulesGetAlarmSensors, useNotificationRulesGetClipRetentionAsks, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesGetRuleLastRuns, useNotificationRulesGetSequence, useNotificationRulesGetTemplateCatalog, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSequences, useNotificationRulesListSnoozes, useNotificationRulesPreviewStateSummary, useNotificationRulesPreviewTemplate, useNotificationRulesRenameAlarmProfile, useNotificationRulesResolveArtifactUrl, useNotificationRulesSetAlarmConfig, useNotificationRulesSetDeviceMuted, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotificationRulesUpdateSequence, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOidcConnectionsConnectionFormSchema, useOidcConnectionsCreateConnection, useOidcConnectionsDeleteConnection, useOidcConnectionsListConnections, useOidcConnectionsUpdateConnection, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdManagerClearSlotBinding, useOsdManagerCopyDeviceConfiguration, useOsdManagerDeleteTemplate, useOsdManagerGetConditionSupport, useOsdManagerGetDeviceOsd, useOsdManagerGetSourceCatalog, useOsdManagerListTemplates, useOsdManagerPreviewSlot, useOsdManagerRenderDevice, useOsdManagerSetSlotBinding, useOsdManagerSetSlotCameraEnabled, useOsdManagerUpsertTemplate, useOsdSetOverlay, usePTZ, usePersistedDisclosure, usePersistedPageSize, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePickerSiteZones, usePipelineAnalyticsAddRetrainFrameFromRecording, usePipelineAnalyticsAddRetrainFramesToCollection, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsBackfillRetrainOrigins, usePipelineAnalyticsCancelRelocateMedia, usePipelineAnalyticsCancelStorageMigrationMove, usePipelineAnalyticsClearTrackRelation, usePipelineAnalyticsClearTracks, usePipelineAnalyticsCompleteRetrainTrack, usePipelineAnalyticsCountRelocatableMedia, usePipelineAnalyticsCountUnstampedEventMedia, usePipelineAnalyticsCreateRetrainCollection, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteRetrainCollection, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsDeselectRetrainFrame, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventDensityBatch, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventMediaFootprintByKind, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetKeyEventsBatch, usePipelineAnalyticsGetMediaReclaimStatus, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetRetrainCorpusKpi, usePipelineAnalyticsGetRetrainExportUrl, usePipelineAnalyticsGetRetrainFrameImage, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetStorageMigrationMoveStatus, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListArchivedDebugNotes, usePipelineAnalyticsListBirthDecisions, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainAssistProfiles, usePipelineAnalyticsListRetrainCollectionFrames, usePipelineAnalyticsListRetrainCollections, usePipelineAnalyticsListRetrainCorpusPage, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTrackRelations, usePipelineAnalyticsListTracks, usePipelineAnalyticsOfferRetrainArchive, usePipelineAnalyticsOwnersWithMedia, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsProposeRetrainAnnotationsWithLlm, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsReadLongTermSeries, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsReclaimDebugMedia, usePipelineAnalyticsReconcileFromDisk, usePipelineAnalyticsRefreshStorageLocationsForMigration, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsRemoveRetrainFrameFromCollection, usePipelineAnalyticsRenameRetrainCollection, usePipelineAnalyticsResolveRetrainTrainingCorpus, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsResumeForStorageMigration, usePipelineAnalyticsSaveRetrainAnnotations, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsSelectRetrainFrames, usePipelineAnalyticsSetRetrainFrameComplete, usePipelineAnalyticsSetTrackFlags, usePipelineAnalyticsSetTrackPurity, usePipelineAnalyticsSetTrackRelation, usePipelineAnalyticsStartStorageMigrationMove, usePipelineAnalyticsWipeAllAnalytics, usePipelineAnalyticsWipeObjectEmbeddings, usePipelineAnalyticsWriteRetrainArchive, usePipelineExecutorCacheFrameInPool, usePipelineExecutorDeleteModel, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetInferenceDeviceHealth, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorRearmInferenceDevice, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorValidatePipeline, usePipelineOrchestratorAbortNodeBenchmark, usePipelineOrchestratorApplyAutoTune, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteNodeBenchmarkResult, usePipelineOrchestratorForgetInferenceDevice, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraDetectionSource, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraSwitches, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetClusterModelChoice, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetEffectiveShares, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeBenchmarkCandidates, usePipelineOrchestratorGetNodeBenchmarkPreflight, usePipelineOrchestratorGetNodeBenchmarkStatus, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorGetPlacementStats, usePipelineOrchestratorGetReconcileFromDiskStatus, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListNodeBenchmarkResults, usePipelineOrchestratorPauseForStorageMigration, usePipelineOrchestratorPlanAutoTune, usePipelineOrchestratorRebalance, usePipelineOrchestratorReconcileFromDisk, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorRequestOccupancyLook, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorResumeForStorageMigration, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDecodeLimits, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraDetectionSource, usePipelineOrchestratorSetCameraSensors, usePipelineOrchestratorSetCameraStepSettings, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetLoadBalancingShares, usePipelineOrchestratorSetNodeStepSettings, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorSetShareSource, usePipelineOrchestratorStartNodeBenchmark, usePipelineOrchestratorSuggestShares, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineRunnerAbortNodeBench, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerGetNodeBenchStatus, usePipelineRunnerGetParkedTrackFrame, usePipelineRunnerParkTrackFrame, usePipelineRunnerReleaseParkedTrackFrames, usePipelineRunnerReportMotion, usePipelineRunnerRequestOccupancyBurst, usePipelineRunnerRunDetailSubtree, usePipelineRunnerRunStatelessStep, usePipelineRunnerStartNodeBench, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetAudioEnabled, usePrivacyMaskSetMask, usePrompt, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzCaptureHomeHere, usePtzContinuousMove, usePtzDeletePreset, usePtzGetHomePreset, usePtzGetHomeReturn, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzSetHomePreset, usePtzSetHomeReturn, usePtzStop, useRebootReboot, useRecordEntriesDeleteEntry, useRecordEntriesListEntries, useRecordEntriesListEntryKinds, useRecordEntriesPutEntry, useRecordedPlayback, useRecordingArchiveApplyDeviceSettingsPatch, useRecordingArchiveCancelRelocateJob, useRecordingArchiveCancelStorageMigrationMove, useRecordingArchiveDeleteFootprint, useRecordingArchiveGetAvailabilityBatch, useRecordingArchiveGetDaysWithRecordingsBatch, useRecordingArchiveGetDeviceConfig, useRecordingArchiveGetDeviceLiveContribution, useRecordingArchiveGetDeviceSettingsContribution, useRecordingArchiveGetPlacement, useRecordingArchiveGetRelocateResidue, useRecordingArchiveGetStatus, useRecordingArchiveGetStorageMigrationMoveStatus, useRecordingArchiveGetStorageUsage, useRecordingArchiveListOpsLog, useRecordingArchiveListRelocateJobs, useRecordingArchiveLocateSegment, useRecordingArchivePauseForStorageMigration, useRecordingArchivePlanStorageRebalance, useRecordingArchivePruneFootage, useRecordingArchiveReadGopBytes, useRecordingArchiveReadSegmentBytes, useRecordingArchiveReadWindowBytes, useRecordingArchiveReconcileLedgerAgainstDisk, useRecordingArchiveRefreshStorageLocationsForMigration, useRecordingArchiveRelocateFootage, useRecordingArchiveRenderClip, useRecordingArchiveRenderGif, useRecordingArchiveRescanStorage, useRecordingArchiveResumeForStorageMigration, useRecordingArchiveSetDeviceConfig, useRecordingArchiveSetDevicePlacement, useRecordingArchiveStartStorageMigrationMove, useRecordingArchiveStartStorageRebalance, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingExportReadExportBytes, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetPlayback, useRecordingGetPlaybackOptions, useRecordingListSources, useRecordingOnboardGetOptions, useRecordingOnboardGetStatus, useRecordingOnboardSetSettings, useRecordingSignalGetStatus, useRemoteComponent, useRoleDisplayDefaults, useRunningStateGetStatus, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorListScenesBatch, useSceneMonitorRecheckNow, useSceneMonitorResetScene, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreAggregate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreDeleteWhere, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreInsertMany, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreTransact, useSettingsStoreUpdate, useSettingsStoreUpdateWhere, useSettingsStoreUpsert, useSettingsStoreUpsertMany, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStationaryOverlay, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageList, useStorageListDrainProgress, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageMigrationCancel, useStorageMigrationCleanupCancel, useStorageMigrationCleanupStart, useStorageMigrationCleanupStatus, useStorageMigrationDrain, useStorageMigrationHistory, useStorageMigrationMoverClearance, useStorageMigrationMovers, useStorageMigrationPlan, useStorageMigrationResidue, useStorageMigrationStart, useStorageMigrationStatus, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStoredGroupBy, useStreamBrokerAcquireEgressTranscode, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerFetchEventMedia, useStreamBrokerForgetDeviceHardware, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetLiveViewerCounts, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerReportStreamSignal, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useStreamSignalsListSignals, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemDetectSiteLocation, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetFailureContributions, useSystemGetLoadContributions, useSystemGetLoggingSettings, useSystemGetRequestCensus, useSystemGetRetentionConfig, useSystemGetSiteLocation, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetLoggingSettings, useSystemSetRetentionConfig, useSystemSetSiteLocation, useTamperGetStatus, useTemperatureSensorGetStatus, useTerminalSessionAdoptLegacyMonitor, useTerminalSessionClose, useTerminalSessionCreateInstance, useTerminalSessionDeleteInstance, useTerminalSessionListInstances, useTerminalSessionListLegacyCameras, useTerminalSessionListProfiles, useTerminalSessionListSessions, useTerminalSessionOpenSession, useTerminalSessionPullOutput, useTerminalSessionResize, useTerminalSessionSetInstanceEnabled, useTerminalSessionUpdateInstance, useTerminalSessionWriteInput, useThemeMode, useToastOnToast, useTrainingCanaryResult, useTrainingCancelJob, useTrainingDiscardResult, useTrainingGetJob, useTrainingGetJobResult, useTrainingListBaseModels, useTrainingListCanaryTargets, useTrainingListJobs, useTrainingPlanJob, useTrainingRegisterResult, useTrainingRollbackCanary, useTrainingStartJob, useTrainingStartJobBatch, useTurnProviderGetTurnServers, useUiText, useUpdateGetStatus, useUpdateInstallUpdate, useUrlQueryParam, useUserManagementConfirmTotp, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementFindUserByExternalIdentity, useUserManagementGetTotpStatus, useUserManagementListExternalIdentities, useUserManagementListOauthSessions, useUserManagementListUsers, useUserManagementMigrateRawSecrets, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeOauthSession, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUnlinkExternalIdentity, useUserManagementUpdateUser, useUserManagementValidateCredentials, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, useVideoclipsDialClipStream, useVideoclipsGetClipPlayback, useVideoclipsGetPlaybackOptions, useVideoclipsListClips, useVideoclipsListSources, useVideoclipsOfferClipBytes, useVideoclipsReadClipBytes, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionApplyDownlinkProbe, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionDebug, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetCurrentSnapshotBatch, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, Sailboat as ut, UtensilsCrossed as v, vacuumStateMeta, validateScopes, valveStateMeta, variantLabel, Hand as vn, ChartLine as vr, QrCode$1 as vt, Undo2 as w, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint, withHiddenChart, withPanel, withResolvedParentDetail, withUseRootModel, withoutModelScopedFields, withoutPanel, Gamepad2 as wn, Bus as wr, writeStoredGroupBy, Play as wt, UserCheck as x, Grid2x2 as xn, Car as xr, PowerOff as xt, Users as y, Hammer as yn, Cat as yr, Puzzle as yt, Sunrise as z, Download as zn, Bath as zr, MousePointerClick as zt };