@camstack/ui-library 1.2.299 → 1.2.300
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/{MotionZonesSettings-Bv8XzCa3.js → MotionZonesSettings-C3Tj12yc.js} +1 -1
- package/dist/{PrivacyMaskSettings-BlkbESYj.js → PrivacyMaskSettings-C9wfHkiB.js} +1 -1
- package/dist/{SceneMonitorEditor-i3-nXAEU.js → SceneMonitorEditor-30H29vN4.js} +1 -1
- package/dist/composites/config-form-field.d.ts +3 -1
- package/dist/composites/device-controls/ac-panel.d.ts +14 -1
- package/dist/composites/device-controls/climate-panel.d.ts +4 -1
- package/dist/composites/device-controls/dishwasher-control.d.ts +17 -0
- package/dist/composites/device-controls/heating-valve-readout.d.ts +4 -0
- package/dist/composites/device-controls/types.d.ts +1 -1
- package/dist/generated/system-hooks.d.ts +20 -0
- package/dist/{icons-CLC60C-_.cjs → icons-B1AFXUaZ.cjs} +2 -78
- package/dist/{icons-BXXScOuy.js → icons-BT8c2hxp.js} +1 -77
- package/dist/index.cjs +860 -167
- package/dist/index.js +854 -173
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2161,6 +2161,54 @@ var Hash = createLucideIcon("hash", [
|
|
|
2161
2161
|
* This source code is licensed under the ISC license.
|
|
2162
2162
|
* See the LICENSE file in the root directory of this source tree.
|
|
2163
2163
|
*/
|
|
2164
|
+
var Heater = createLucideIcon("heater", [
|
|
2165
|
+
["path", {
|
|
2166
|
+
d: "M11 8c2-3-2-3 0-6",
|
|
2167
|
+
key: "1ldv5m"
|
|
2168
|
+
}],
|
|
2169
|
+
["path", {
|
|
2170
|
+
d: "M15.5 8c2-3-2-3 0-6",
|
|
2171
|
+
key: "1otqoz"
|
|
2172
|
+
}],
|
|
2173
|
+
["path", {
|
|
2174
|
+
d: "M6 10h.01",
|
|
2175
|
+
key: "1lbq93"
|
|
2176
|
+
}],
|
|
2177
|
+
["path", {
|
|
2178
|
+
d: "M6 14h.01",
|
|
2179
|
+
key: "zudwn7"
|
|
2180
|
+
}],
|
|
2181
|
+
["path", {
|
|
2182
|
+
d: "M10 16v-4",
|
|
2183
|
+
key: "1c25yv"
|
|
2184
|
+
}],
|
|
2185
|
+
["path", {
|
|
2186
|
+
d: "M14 16v-4",
|
|
2187
|
+
key: "1dkbt8"
|
|
2188
|
+
}],
|
|
2189
|
+
["path", {
|
|
2190
|
+
d: "M18 16v-4",
|
|
2191
|
+
key: "1yg9me"
|
|
2192
|
+
}],
|
|
2193
|
+
["path", {
|
|
2194
|
+
d: "M20 6a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3",
|
|
2195
|
+
key: "1ubg90"
|
|
2196
|
+
}],
|
|
2197
|
+
["path", {
|
|
2198
|
+
d: "M5 20v2",
|
|
2199
|
+
key: "1abpe8"
|
|
2200
|
+
}],
|
|
2201
|
+
["path", {
|
|
2202
|
+
d: "M19 20v2",
|
|
2203
|
+
key: "kqn6ft"
|
|
2204
|
+
}]
|
|
2205
|
+
]);
|
|
2206
|
+
/**
|
|
2207
|
+
* @license lucide-react v0.576.0 - ISC
|
|
2208
|
+
*
|
|
2209
|
+
* This source code is licensed under the ISC license.
|
|
2210
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
2211
|
+
*/
|
|
2164
2212
|
var House = createLucideIcon("house", [["path", {
|
|
2165
2213
|
d: "M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",
|
|
2166
2214
|
key: "5wwlr5"
|
|
@@ -4149,6 +4197,34 @@ var Thermometer = createLucideIcon("thermometer", [["path", {
|
|
|
4149
4197
|
* This source code is licensed under the ISC license.
|
|
4150
4198
|
* See the LICENSE file in the root directory of this source tree.
|
|
4151
4199
|
*/
|
|
4200
|
+
var Timer = createLucideIcon("timer", [
|
|
4201
|
+
["line", {
|
|
4202
|
+
x1: "10",
|
|
4203
|
+
x2: "14",
|
|
4204
|
+
y1: "2",
|
|
4205
|
+
y2: "2",
|
|
4206
|
+
key: "14vaq8"
|
|
4207
|
+
}],
|
|
4208
|
+
["line", {
|
|
4209
|
+
x1: "12",
|
|
4210
|
+
x2: "15",
|
|
4211
|
+
y1: "14",
|
|
4212
|
+
y2: "11",
|
|
4213
|
+
key: "17fdiu"
|
|
4214
|
+
}],
|
|
4215
|
+
["circle", {
|
|
4216
|
+
cx: "12",
|
|
4217
|
+
cy: "14",
|
|
4218
|
+
r: "8",
|
|
4219
|
+
key: "1e1u0o"
|
|
4220
|
+
}]
|
|
4221
|
+
]);
|
|
4222
|
+
/**
|
|
4223
|
+
* @license lucide-react v0.576.0 - ISC
|
|
4224
|
+
*
|
|
4225
|
+
* This source code is licensed under the ISC license.
|
|
4226
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
4227
|
+
*/
|
|
4152
4228
|
var ToggleLeft = createLucideIcon("toggle-left", [["circle", {
|
|
4153
4229
|
cx: "9",
|
|
4154
4230
|
cy: "12",
|
|
@@ -5251,6 +5327,11 @@ var DEVICE_TYPE_META = {
|
|
|
5251
5327
|
icon: Bone,
|
|
5252
5328
|
labelKey: "uiLibrary.deviceMeta.type.petFeeder",
|
|
5253
5329
|
labelFallback: "Pet feeder"
|
|
5330
|
+
},
|
|
5331
|
+
[DeviceType.Dishwasher]: {
|
|
5332
|
+
icon: Waves,
|
|
5333
|
+
labelKey: "uiLibrary.deviceMeta.type.dishwasher",
|
|
5334
|
+
labelFallback: "Dishwasher"
|
|
5254
5335
|
}
|
|
5255
5336
|
};
|
|
5256
5337
|
var DEVICE_ROLE_META = {
|
|
@@ -5732,7 +5813,7 @@ function lucideExportName(key) {
|
|
|
5732
5813
|
function loadIconGlyphs() {
|
|
5733
5814
|
if (fullTable !== void 0) return Promise.resolve();
|
|
5734
5815
|
if (failure !== void 0) return Promise.reject(failure);
|
|
5735
|
-
pending ??= import("./icons-
|
|
5816
|
+
pending ??= import("./icons-BT8c2hxp.js").then((module) => {
|
|
5736
5817
|
fullTable = module;
|
|
5737
5818
|
publish();
|
|
5738
5819
|
}, (error) => {
|
|
@@ -10907,6 +10988,24 @@ var useDeviceStateListClaims = trpc.deviceState.listClaims.useQuery;
|
|
|
10907
10988
|
var useDeviceStateGetNativeCapSlice = trpc.deviceState.getNativeCapSlice.useQuery;
|
|
10908
10989
|
/** Generated alias around `trpc.deviceStatus.getStatus.useQuery`. */
|
|
10909
10990
|
var useDeviceStatusGetStatus = trpc.deviceStatus.getStatus.useQuery;
|
|
10991
|
+
/** Generated alias around `trpc.dishwasher.start.useMutation`. */
|
|
10992
|
+
var useDishwasherStart = trpc.dishwasher.start.useMutation;
|
|
10993
|
+
/** Generated alias around `trpc.dishwasher.pause.useMutation`. */
|
|
10994
|
+
var useDishwasherPause = trpc.dishwasher.pause.useMutation;
|
|
10995
|
+
/** Generated alias around `trpc.dishwasher.stop.useMutation`. */
|
|
10996
|
+
var useDishwasherStop = trpc.dishwasher.stop.useMutation;
|
|
10997
|
+
/** Generated alias around `trpc.dishwasher.setProgram.useMutation`. */
|
|
10998
|
+
var useDishwasherSetProgram = trpc.dishwasher.setProgram.useMutation;
|
|
10999
|
+
/** Generated alias around `trpc.dishwasher.setPower.useMutation`. */
|
|
11000
|
+
var useDishwasherSetPower = trpc.dishwasher.setPower.useMutation;
|
|
11001
|
+
/** Generated alias around `trpc.dishwasher.setHalfLoad.useMutation`. */
|
|
11002
|
+
var useDishwasherSetHalfLoad = trpc.dishwasher.setHalfLoad.useMutation;
|
|
11003
|
+
/** Generated alias around `trpc.dishwasher.setHygienePlus.useMutation`. */
|
|
11004
|
+
var useDishwasherSetHygienePlus = trpc.dishwasher.setHygienePlus.useMutation;
|
|
11005
|
+
/** Generated alias around `trpc.dishwasher.setOption.useMutation`. */
|
|
11006
|
+
var useDishwasherSetOption = trpc.dishwasher.setOption.useMutation;
|
|
11007
|
+
/** Generated alias around `trpc.dishwasher.getStatus.useQuery`. */
|
|
11008
|
+
var useDishwasherGetStatus = trpc.dishwasher.getStatus.useQuery;
|
|
10910
11009
|
/** Generated alias around `trpc.doorbell.getStatus.useQuery`. */
|
|
10911
11010
|
var useDoorbellGetStatus = trpc.doorbell.getStatus.useQuery;
|
|
10912
11011
|
/** Generated alias around `trpc.enumSensor.getStatus.useQuery`. */
|
|
@@ -10961,6 +11060,8 @@ var useFeatureProbeGetStatus = trpc.featureProbe.getStatus.useQuery;
|
|
|
10961
11060
|
var useFloodGetStatus = trpc.flood.getStatus.useQuery;
|
|
10962
11061
|
/** Generated alias around `trpc.gas.getStatus.useQuery`. */
|
|
10963
11062
|
var useGasGetStatus = trpc.gas.getStatus.useQuery;
|
|
11063
|
+
/** Generated alias around `trpc.heatingValve.getStatus.useQuery`. */
|
|
11064
|
+
var useHeatingValveGetStatus = trpc.heatingValve.getStatus.useQuery;
|
|
10964
11065
|
/** Generated alias around `trpc.humidifier.setOn.useMutation`. */
|
|
10965
11066
|
var useHumidifierSetOn = trpc.humidifier.setOn.useMutation;
|
|
10966
11067
|
/** Generated alias around `trpc.humidifier.setTargetHumidity.useMutation`. */
|
|
@@ -26254,8 +26355,8 @@ function RecordingPanel({ deviceId }) {
|
|
|
26254
26355
|
* `type:'widget'` ConfigField. `WidgetSlot` resolves these BEFORE the
|
|
26255
26356
|
* Module-Federation `WidgetRegistry`. ids are namespaced `host/<name>`. */
|
|
26256
26357
|
var HOST_WIDGETS = {
|
|
26257
|
-
"host/motion-zones-grid": lazy(() => import("./MotionZonesSettings-
|
|
26258
|
-
"host/privacy-mask-grid": lazy(() => import("./PrivacyMaskSettings-
|
|
26358
|
+
"host/motion-zones-grid": lazy(() => import("./MotionZonesSettings-C3Tj12yc.js").then((m) => ({ default: m.MotionZonesSettings }))),
|
|
26359
|
+
"host/privacy-mask-grid": lazy(() => import("./PrivacyMaskSettings-C9wfHkiB.js").then((m) => ({ default: m.PrivacyMaskSettings }))),
|
|
26259
26360
|
"host/ptz-panel": PtzPanel,
|
|
26260
26361
|
"host/navigation-panel": NavigationPanel,
|
|
26261
26362
|
"host/consumables-panel": ConsumablesPanel,
|
|
@@ -28791,7 +28892,7 @@ function AddonActionSelectField({ field, value, values, onChange, disabled, onAc
|
|
|
28791
28892
|
})()
|
|
28792
28893
|
});
|
|
28793
28894
|
}
|
|
28794
|
-
function AddonActionButtonField({ field, values, disabled, onAction }) {
|
|
28895
|
+
function AddonActionButtonField({ field, values, disabled, onAction, onChange, onChangeMany }) {
|
|
28795
28896
|
const t = useUiText();
|
|
28796
28897
|
const [loading, setLoading] = useState(false);
|
|
28797
28898
|
const [status, setStatus] = useState(null);
|
|
@@ -28823,6 +28924,17 @@ function AddonActionButtonField({ field, values, disabled, onAction }) {
|
|
|
28823
28924
|
try {
|
|
28824
28925
|
const result = await onAction(field.action, field.key, params);
|
|
28825
28926
|
const resultRecord = typeof result === "object" && result !== null ? result : null;
|
|
28927
|
+
if (resultRecord !== null && field.assignResult && (onChange || onChangeMany)) {
|
|
28928
|
+
const patch = {};
|
|
28929
|
+
for (const [formKey, resultKey] of Object.entries(field.assignResult)) {
|
|
28930
|
+
const assigned = resultRecord[resultKey];
|
|
28931
|
+
if (typeof assigned === "string") patch[formKey] = assigned;
|
|
28932
|
+
}
|
|
28933
|
+
if (Object.keys(patch).length > 0) {
|
|
28934
|
+
if (onChangeMany) onChangeMany(patch);
|
|
28935
|
+
else if (onChange) for (const [formKey, assigned] of Object.entries(patch)) onChange(formKey, assigned);
|
|
28936
|
+
}
|
|
28937
|
+
}
|
|
28826
28938
|
setStatus({
|
|
28827
28939
|
kind: "ok",
|
|
28828
28940
|
text: field.successMessage ? field.successMessage.replace(/\{(\w+)\}/g, (_, k) => {
|
|
@@ -29171,7 +29283,7 @@ function isFieldVisible(field, values, allFields) {
|
|
|
29171
29283
|
if (condition.notIncludes !== void 0) return !Array.isArray(condVal) || !condVal.includes(condition.notIncludes);
|
|
29172
29284
|
return true;
|
|
29173
29285
|
}
|
|
29174
|
-
function FormField({ field, values, onChange, disabled, translationFn, onTestField, externalProbe, allFields, onAction }) {
|
|
29286
|
+
function FormField({ field, values, onChange, onChangeMany, disabled, translationFn, onTestField, externalProbe, allFields, onAction }) {
|
|
29175
29287
|
if (hasMultiple(field)) return /* @__PURE__ */ jsx(MultipleFieldWrapper, {
|
|
29176
29288
|
field,
|
|
29177
29289
|
values,
|
|
@@ -29407,7 +29519,9 @@ function FormField({ field, values, onChange, disabled, translationFn, onTestFie
|
|
|
29407
29519
|
field,
|
|
29408
29520
|
values,
|
|
29409
29521
|
disabled,
|
|
29410
|
-
onAction
|
|
29522
|
+
onAction,
|
|
29523
|
+
onChange,
|
|
29524
|
+
onChangeMany
|
|
29411
29525
|
});
|
|
29412
29526
|
case "device-action-button": return /* @__PURE__ */ jsx(DeviceActionButtonField, {
|
|
29413
29527
|
field,
|
|
@@ -42890,6 +43004,19 @@ function FanPanel({ trpc, deviceId, features, layout, optimistic }) {
|
|
|
42890
43004
|
}
|
|
42891
43005
|
//#endregion
|
|
42892
43006
|
//#region src/composites/device-controls/climate-panel.tsx
|
|
43007
|
+
/** Step size for target ± buttons; defaults to 1 °C when unset or invalid. */
|
|
43008
|
+
function resolveClimateTempStep(tempStep) {
|
|
43009
|
+
if (typeof tempStep === "number" && Number.isFinite(tempStep) && tempStep > 0) return tempStep;
|
|
43010
|
+
return 1;
|
|
43011
|
+
}
|
|
43012
|
+
function nextClimateTarget(current, deltaSteps, display) {
|
|
43013
|
+
let next = current + deltaSteps * resolveClimateTempStep(display.tempStep);
|
|
43014
|
+
const min = display.minTemp;
|
|
43015
|
+
const max = display.maxTemp;
|
|
43016
|
+
if (typeof min === "number" && Number.isFinite(min)) next = Math.max(next, min);
|
|
43017
|
+
if (typeof max === "number" && Number.isFinite(max)) next = Math.min(next, max);
|
|
43018
|
+
return next;
|
|
43019
|
+
}
|
|
42893
43020
|
/**
|
|
42894
43021
|
* Exhaustive colour map — one entry per HvacMode. Build will fail if a
|
|
42895
43022
|
* mode is added to the enum and not reflected here (Record<HvacMode, ...>
|
|
@@ -42970,7 +43097,7 @@ function ClimatePanel({ trpc, deviceId, features: _features, layout, optimistic
|
|
|
42970
43097
|
onClick: (e) => {
|
|
42971
43098
|
e.stopPropagation();
|
|
42972
43099
|
if (!busy && display.target !== null) {
|
|
42973
|
-
const next = display.target -
|
|
43100
|
+
const next = nextClimateTarget(display.target, -1, display);
|
|
42974
43101
|
applyOptimistic({ target: next });
|
|
42975
43102
|
cap.setTarget({ target: next });
|
|
42976
43103
|
}
|
|
@@ -42984,7 +43111,7 @@ function ClimatePanel({ trpc, deviceId, features: _features, layout, optimistic
|
|
|
42984
43111
|
onClick: (e) => {
|
|
42985
43112
|
e.stopPropagation();
|
|
42986
43113
|
if (!busy && display.target !== null) {
|
|
42987
|
-
const next = display.target
|
|
43114
|
+
const next = nextClimateTarget(display.target, 1, display);
|
|
42988
43115
|
applyOptimistic({ target: next });
|
|
42989
43116
|
cap.setTarget({ target: next });
|
|
42990
43117
|
}
|
|
@@ -43039,7 +43166,7 @@ function ClimatePanel({ trpc, deviceId, features: _features, layout, optimistic
|
|
|
43039
43166
|
onClick: (e) => {
|
|
43040
43167
|
e.stopPropagation();
|
|
43041
43168
|
if (!busy && display.target !== null) {
|
|
43042
|
-
const next = display.target -
|
|
43169
|
+
const next = nextClimateTarget(display.target, -1, display);
|
|
43043
43170
|
applyOptimistic({ target: next });
|
|
43044
43171
|
cap.setTarget({ target: next });
|
|
43045
43172
|
}
|
|
@@ -43054,7 +43181,7 @@ function ClimatePanel({ trpc, deviceId, features: _features, layout, optimistic
|
|
|
43054
43181
|
onClick: (e) => {
|
|
43055
43182
|
e.stopPropagation();
|
|
43056
43183
|
if (!busy && display.target !== null) {
|
|
43057
|
-
const next = display.target
|
|
43184
|
+
const next = nextClimateTarget(display.target, 1, display);
|
|
43058
43185
|
applyOptimistic({ target: next });
|
|
43059
43186
|
cap.setTarget({ target: next });
|
|
43060
43187
|
}
|
|
@@ -43712,7 +43839,8 @@ var CONTROL_CAP_NAMES = [
|
|
|
43712
43839
|
"climate-control",
|
|
43713
43840
|
"media-player",
|
|
43714
43841
|
"control",
|
|
43715
|
-
"pet-feeder"
|
|
43842
|
+
"pet-feeder",
|
|
43843
|
+
"dishwasher"
|
|
43716
43844
|
];
|
|
43717
43845
|
//#endregion
|
|
43718
43846
|
//#region src/composites/device-controls/popover-row-action.tsx
|
|
@@ -48523,7 +48651,405 @@ function PetFeederHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
48523
48651
|
});
|
|
48524
48652
|
}
|
|
48525
48653
|
//#endregion
|
|
48654
|
+
//#region src/composites/device-controls/dishwasher-control.tsx
|
|
48655
|
+
/**
|
|
48656
|
+
* Dishwasher controls for a `DeviceType.Dishwasher` device.
|
|
48657
|
+
*
|
|
48658
|
+
* Reads the `dishwasher` cap status slice and renders inline + hero surfaces
|
|
48659
|
+
* mirroring vacuum-control / pet-feeder patterns.
|
|
48660
|
+
*/
|
|
48661
|
+
function dishwasherStateMeta(state, t = defaultUiText) {
|
|
48662
|
+
switch (state) {
|
|
48663
|
+
case "running": return {
|
|
48664
|
+
label: t("uiLibrary.dishwasher.running", "Running"),
|
|
48665
|
+
tone: "text-primary"
|
|
48666
|
+
};
|
|
48667
|
+
case "paused": return {
|
|
48668
|
+
label: t("uiLibrary.dishwasher.paused", "Paused"),
|
|
48669
|
+
tone: "text-warning"
|
|
48670
|
+
};
|
|
48671
|
+
case "finished": return {
|
|
48672
|
+
label: t("uiLibrary.dishwasher.finished", "Finished"),
|
|
48673
|
+
tone: "text-success"
|
|
48674
|
+
};
|
|
48675
|
+
case "error": return {
|
|
48676
|
+
label: t("uiLibrary.dishwasher.error", "Error"),
|
|
48677
|
+
tone: "text-destructive"
|
|
48678
|
+
};
|
|
48679
|
+
case "unavailable": return {
|
|
48680
|
+
label: t("uiLibrary.dishwasher.unavailable", "Unavailable"),
|
|
48681
|
+
tone: "text-foreground-subtle"
|
|
48682
|
+
};
|
|
48683
|
+
case "idle": return {
|
|
48684
|
+
label: t("uiLibrary.dishwasher.idle", "Idle"),
|
|
48685
|
+
tone: "text-foreground-subtle"
|
|
48686
|
+
};
|
|
48687
|
+
case void 0: return {
|
|
48688
|
+
label: t("uiLibrary.dishwasher.unknown", "Unknown"),
|
|
48689
|
+
tone: "text-foreground-subtle"
|
|
48690
|
+
};
|
|
48691
|
+
}
|
|
48692
|
+
}
|
|
48693
|
+
function consumableTone(level) {
|
|
48694
|
+
switch (level) {
|
|
48695
|
+
case "ok": return "text-success";
|
|
48696
|
+
case "low": return "text-warning";
|
|
48697
|
+
case "empty": return "text-destructive";
|
|
48698
|
+
case null: return "text-foreground-subtle";
|
|
48699
|
+
}
|
|
48700
|
+
}
|
|
48701
|
+
function useDishwasher(trpc, deviceId) {
|
|
48702
|
+
return useDeviceCapability({
|
|
48703
|
+
trpc,
|
|
48704
|
+
deviceId,
|
|
48705
|
+
cap: (d) => d.dishwasher,
|
|
48706
|
+
slice: (d) => d.state.dishwasher
|
|
48707
|
+
});
|
|
48708
|
+
}
|
|
48709
|
+
function DishwasherIconButton({ label, busy, active, onClick, children }) {
|
|
48710
|
+
return /* @__PURE__ */ jsx("button", {
|
|
48711
|
+
type: "button",
|
|
48712
|
+
"aria-label": label,
|
|
48713
|
+
title: label,
|
|
48714
|
+
disabled: busy,
|
|
48715
|
+
onClick: (e) => {
|
|
48716
|
+
e.stopPropagation();
|
|
48717
|
+
onClick();
|
|
48718
|
+
},
|
|
48719
|
+
className: cn("inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors", active && "bg-primary text-primary-foreground", busy && "opacity-40 cursor-not-allowed"),
|
|
48720
|
+
children
|
|
48721
|
+
});
|
|
48722
|
+
}
|
|
48723
|
+
function ConsumableBadge({ label, level }) {
|
|
48724
|
+
if (level === null) return null;
|
|
48725
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
48726
|
+
className: cn("text-xs font-medium capitalize", consumableTone(level)),
|
|
48727
|
+
children: [
|
|
48728
|
+
label,
|
|
48729
|
+
": ",
|
|
48730
|
+
level
|
|
48731
|
+
]
|
|
48732
|
+
});
|
|
48733
|
+
}
|
|
48734
|
+
function DishwasherGraphic({ state, progressPercent }) {
|
|
48735
|
+
const running = state === "running";
|
|
48736
|
+
const pct = progressPercent != null ? Math.max(0, Math.min(100, progressPercent)) : running ? 40 : 0;
|
|
48737
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
48738
|
+
"aria-hidden": "true",
|
|
48739
|
+
className: "relative w-28 h-36 rounded border-2 border-border bg-gradient-to-b from-surface-hover to-surface overflow-hidden flex-shrink-0",
|
|
48740
|
+
style: { boxShadow: "inset 0 0 0 2px rgba(255,255,255,.06)" },
|
|
48741
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
48742
|
+
className: cn("absolute inset-x-0 bottom-0 bg-primary/25 transition-[height] duration-500", running && "animate-pulse"),
|
|
48743
|
+
style: { height: `${pct}%` }
|
|
48744
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
48745
|
+
className: "absolute inset-0 flex items-center justify-center text-foreground-subtle",
|
|
48746
|
+
children: /* @__PURE__ */ jsx(Waves, { className: "h-10 w-10 opacity-70" })
|
|
48747
|
+
})]
|
|
48748
|
+
});
|
|
48749
|
+
}
|
|
48750
|
+
function DishwasherPanel({ trpc, deviceId, layout, optimistic }) {
|
|
48751
|
+
const t = useUiText();
|
|
48752
|
+
const { cap, slice, available } = useDishwasher(trpc, deviceId);
|
|
48753
|
+
const { display, applyOptimistic } = useOptimisticSlice(slice, { enabled: optimistic ?? true });
|
|
48754
|
+
if (cap === void 0) return null;
|
|
48755
|
+
if (display === void 0) return null;
|
|
48756
|
+
const busy = !available;
|
|
48757
|
+
const meta = dishwasherStateMeta(display.state, t);
|
|
48758
|
+
const running = display.state === "running";
|
|
48759
|
+
const paused = display.state === "paused";
|
|
48760
|
+
const press = (fn, patch) => {
|
|
48761
|
+
if (busy) return;
|
|
48762
|
+
applyOptimistic(patch);
|
|
48763
|
+
fn();
|
|
48764
|
+
};
|
|
48765
|
+
if (layout === "compact") return /* @__PURE__ */ jsxs("div", {
|
|
48766
|
+
className: "inline-flex items-center gap-1",
|
|
48767
|
+
children: [
|
|
48768
|
+
display.doorOpen && /* @__PURE__ */ jsx("span", {
|
|
48769
|
+
className: "inline-flex text-warning",
|
|
48770
|
+
title: t("uiLibrary.dishwasher.doorOpen", "Door open"),
|
|
48771
|
+
"aria-label": t("uiLibrary.dishwasher.doorOpen", "Door open"),
|
|
48772
|
+
children: /* @__PURE__ */ jsx(DoorOpen, { className: "h-3.5 w-3.5" })
|
|
48773
|
+
}),
|
|
48774
|
+
/* @__PURE__ */ jsx("span", {
|
|
48775
|
+
className: cn("text-xs font-medium tabular-nums", meta.tone),
|
|
48776
|
+
children: meta.label
|
|
48777
|
+
}),
|
|
48778
|
+
display.remainingMinutes != null && /* @__PURE__ */ jsxs("span", {
|
|
48779
|
+
className: "inline-flex items-center gap-0.5 text-xs text-foreground-subtle tabular-nums",
|
|
48780
|
+
children: [
|
|
48781
|
+
/* @__PURE__ */ jsx(Timer, { className: "h-3 w-3" }),
|
|
48782
|
+
display.remainingMinutes,
|
|
48783
|
+
"m"
|
|
48784
|
+
]
|
|
48785
|
+
}),
|
|
48786
|
+
/* @__PURE__ */ jsx(DishwasherIconButton, {
|
|
48787
|
+
label: t("uiLibrary.dishwasher.start", "Start"),
|
|
48788
|
+
busy: busy || !display.remoteStartAllowed,
|
|
48789
|
+
active: running,
|
|
48790
|
+
onClick: () => press(() => cap.start({}), {
|
|
48791
|
+
state: "running",
|
|
48792
|
+
remoteStartAllowed: false
|
|
48793
|
+
}),
|
|
48794
|
+
children: /* @__PURE__ */ jsx(Play, { className: "h-3 w-3" })
|
|
48795
|
+
}),
|
|
48796
|
+
/* @__PURE__ */ jsx(DishwasherIconButton, {
|
|
48797
|
+
label: t("uiLibrary.dishwasher.pause", "Pause"),
|
|
48798
|
+
busy: busy || !running,
|
|
48799
|
+
active: paused,
|
|
48800
|
+
onClick: () => press(() => cap.pause({}), { state: "paused" }),
|
|
48801
|
+
children: /* @__PURE__ */ jsx(Pause, { className: "h-3 w-3" })
|
|
48802
|
+
})
|
|
48803
|
+
]
|
|
48804
|
+
});
|
|
48805
|
+
const programs = display.availablePrograms;
|
|
48806
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
48807
|
+
className: "flex flex-col gap-3 rounded-lg border border-border bg-surface p-4",
|
|
48808
|
+
children: [
|
|
48809
|
+
/* @__PURE__ */ jsxs("div", {
|
|
48810
|
+
className: "flex items-start gap-4",
|
|
48811
|
+
children: [/* @__PURE__ */ jsx(DishwasherGraphic, {
|
|
48812
|
+
state: display.state,
|
|
48813
|
+
progressPercent: display.progressPercent
|
|
48814
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
48815
|
+
className: "flex min-w-0 flex-1 flex-col gap-2",
|
|
48816
|
+
children: [
|
|
48817
|
+
/* @__PURE__ */ jsxs("div", {
|
|
48818
|
+
className: "flex flex-wrap items-center gap-2",
|
|
48819
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
48820
|
+
className: cn("text-3xl font-semibold", meta.tone),
|
|
48821
|
+
children: meta.label
|
|
48822
|
+
}), !display.powerOn && /* @__PURE__ */ jsx("span", {
|
|
48823
|
+
className: "text-xs font-medium text-foreground-subtle",
|
|
48824
|
+
children: t("uiLibrary.dishwasher.powerOff", "Power off")
|
|
48825
|
+
})]
|
|
48826
|
+
}),
|
|
48827
|
+
display.program != null && /* @__PURE__ */ jsx("span", {
|
|
48828
|
+
className: "text-sm text-foreground-subtle",
|
|
48829
|
+
children: display.program
|
|
48830
|
+
}),
|
|
48831
|
+
display.progressPercent != null && /* @__PURE__ */ jsxs("div", {
|
|
48832
|
+
className: "flex items-center gap-2",
|
|
48833
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
48834
|
+
className: "h-1.5 flex-1 rounded bg-surface-hover overflow-hidden",
|
|
48835
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
48836
|
+
className: "h-full bg-primary transition-[width] duration-500",
|
|
48837
|
+
style: { width: `${Math.max(0, Math.min(100, display.progressPercent))}%` }
|
|
48838
|
+
})
|
|
48839
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
48840
|
+
className: "tabular-nums text-xs text-foreground-subtle",
|
|
48841
|
+
children: [Math.round(display.progressPercent), "%"]
|
|
48842
|
+
})]
|
|
48843
|
+
}),
|
|
48844
|
+
/* @__PURE__ */ jsxs("div", {
|
|
48845
|
+
className: "flex flex-wrap gap-3",
|
|
48846
|
+
children: [
|
|
48847
|
+
/* @__PURE__ */ jsx(ConsumableBadge, {
|
|
48848
|
+
label: t("uiLibrary.dishwasher.salt", "Salt"),
|
|
48849
|
+
level: display.saltLevel
|
|
48850
|
+
}),
|
|
48851
|
+
/* @__PURE__ */ jsx(ConsumableBadge, {
|
|
48852
|
+
label: t("uiLibrary.dishwasher.rinseAid", "Rinse aid"),
|
|
48853
|
+
level: display.rinseAidLevel
|
|
48854
|
+
}),
|
|
48855
|
+
display.doorOpen && /* @__PURE__ */ jsxs("span", {
|
|
48856
|
+
className: "inline-flex items-center gap-1 text-xs text-warning",
|
|
48857
|
+
children: [/* @__PURE__ */ jsx(DoorOpen, { className: "h-3.5 w-3.5" }), t("uiLibrary.dishwasher.doorOpen", "Door open")]
|
|
48858
|
+
})
|
|
48859
|
+
]
|
|
48860
|
+
}),
|
|
48861
|
+
display.errorCode != null && display.errorCode !== 0 && /* @__PURE__ */ jsxs("div", {
|
|
48862
|
+
className: "inline-flex items-center gap-1 text-xs text-destructive",
|
|
48863
|
+
children: [/* @__PURE__ */ jsx(TriangleAlert, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ jsx("span", { children: display.errorLabel ?? t("uiLibrary.dishwasher.errorCode", "Error {{code}}", { code: display.errorCode }) })]
|
|
48864
|
+
}),
|
|
48865
|
+
/* @__PURE__ */ jsxs("div", {
|
|
48866
|
+
className: "flex flex-wrap items-center gap-2",
|
|
48867
|
+
children: [
|
|
48868
|
+
/* @__PURE__ */ jsx(DishwasherIconButton, {
|
|
48869
|
+
label: t("uiLibrary.dishwasher.start", "Start"),
|
|
48870
|
+
busy: busy || !display.remoteStartAllowed,
|
|
48871
|
+
active: running,
|
|
48872
|
+
onClick: () => press(() => cap.start({}), {
|
|
48873
|
+
state: "running",
|
|
48874
|
+
remoteStartAllowed: false
|
|
48875
|
+
}),
|
|
48876
|
+
children: /* @__PURE__ */ jsx(Play, { className: "h-4 w-4" })
|
|
48877
|
+
}),
|
|
48878
|
+
/* @__PURE__ */ jsx(DishwasherIconButton, {
|
|
48879
|
+
label: t("uiLibrary.dishwasher.pause", "Pause"),
|
|
48880
|
+
busy: busy || !running,
|
|
48881
|
+
active: paused,
|
|
48882
|
+
onClick: () => press(() => cap.pause({}), { state: "paused" }),
|
|
48883
|
+
children: /* @__PURE__ */ jsx(Pause, { className: "h-4 w-4" })
|
|
48884
|
+
}),
|
|
48885
|
+
/* @__PURE__ */ jsx(DishwasherIconButton, {
|
|
48886
|
+
label: t("uiLibrary.dishwasher.stop", "Stop"),
|
|
48887
|
+
busy,
|
|
48888
|
+
active: false,
|
|
48889
|
+
onClick: () => press(() => cap.stop({}), {
|
|
48890
|
+
state: "idle",
|
|
48891
|
+
remainingMinutes: null
|
|
48892
|
+
}),
|
|
48893
|
+
children: /* @__PURE__ */ jsx(Square, { className: "h-3.5 w-3.5" })
|
|
48894
|
+
}),
|
|
48895
|
+
/* @__PURE__ */ jsx(DishwasherIconButton, {
|
|
48896
|
+
label: t("uiLibrary.dishwasher.power", "Power"),
|
|
48897
|
+
busy,
|
|
48898
|
+
active: display.powerOn,
|
|
48899
|
+
onClick: () => {
|
|
48900
|
+
const next = !display.powerOn;
|
|
48901
|
+
press(() => cap.setPower({ on: next }), { powerOn: next });
|
|
48902
|
+
},
|
|
48903
|
+
children: /* @__PURE__ */ jsx(Power, { className: "h-4 w-4" })
|
|
48904
|
+
})
|
|
48905
|
+
]
|
|
48906
|
+
})
|
|
48907
|
+
]
|
|
48908
|
+
})]
|
|
48909
|
+
}),
|
|
48910
|
+
programs.length > 0 && /* @__PURE__ */ jsxs("label", {
|
|
48911
|
+
className: "flex items-center gap-2 text-xs text-foreground-subtle",
|
|
48912
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
48913
|
+
className: "w-16 shrink-0",
|
|
48914
|
+
children: t("uiLibrary.dishwasher.program", "Program")
|
|
48915
|
+
}), /* @__PURE__ */ jsxs("select", {
|
|
48916
|
+
"aria-label": t("uiLibrary.dishwasher.program", "Program"),
|
|
48917
|
+
value: display.program ?? "",
|
|
48918
|
+
disabled: busy,
|
|
48919
|
+
onChange: (e) => {
|
|
48920
|
+
const program = e.target.value;
|
|
48921
|
+
if (!program) return;
|
|
48922
|
+
applyOptimistic({ program });
|
|
48923
|
+
cap.setProgram({ program });
|
|
48924
|
+
},
|
|
48925
|
+
onClick: (e) => {
|
|
48926
|
+
e.stopPropagation();
|
|
48927
|
+
},
|
|
48928
|
+
className: "flex-1 rounded border border-border bg-surface px-2 py-1 text-foreground disabled:opacity-50",
|
|
48929
|
+
children: [display.program == null && /* @__PURE__ */ jsx("option", {
|
|
48930
|
+
value: "",
|
|
48931
|
+
children: "—"
|
|
48932
|
+
}), programs.map((p) => /* @__PURE__ */ jsx("option", {
|
|
48933
|
+
value: p,
|
|
48934
|
+
children: p
|
|
48935
|
+
}, p))]
|
|
48936
|
+
})]
|
|
48937
|
+
}),
|
|
48938
|
+
/* @__PURE__ */ jsxs("div", {
|
|
48939
|
+
className: "flex flex-wrap gap-4 text-xs",
|
|
48940
|
+
children: [/* @__PURE__ */ jsx(ToggleRow, {
|
|
48941
|
+
label: t("uiLibrary.dishwasher.halfLoad", "Half load"),
|
|
48942
|
+
checked: display.halfLoad,
|
|
48943
|
+
busy,
|
|
48944
|
+
onChange: (on) => {
|
|
48945
|
+
applyOptimistic({ halfLoad: on });
|
|
48946
|
+
cap.setHalfLoad({ on });
|
|
48947
|
+
}
|
|
48948
|
+
}), /* @__PURE__ */ jsx(ToggleRow, {
|
|
48949
|
+
label: t("uiLibrary.dishwasher.hygienePlus", "Hygiene plus"),
|
|
48950
|
+
checked: display.hygienePlus,
|
|
48951
|
+
busy,
|
|
48952
|
+
onChange: (on) => {
|
|
48953
|
+
applyOptimistic({ hygienePlus: on });
|
|
48954
|
+
cap.setHygienePlus({ on });
|
|
48955
|
+
}
|
|
48956
|
+
})]
|
|
48957
|
+
})
|
|
48958
|
+
]
|
|
48959
|
+
});
|
|
48960
|
+
}
|
|
48961
|
+
function ToggleRow({ label, checked, busy, onChange }) {
|
|
48962
|
+
return /* @__PURE__ */ jsxs("label", {
|
|
48963
|
+
className: "inline-flex items-center gap-2 cursor-pointer",
|
|
48964
|
+
children: [/* @__PURE__ */ jsx("input", {
|
|
48965
|
+
type: "checkbox",
|
|
48966
|
+
checked,
|
|
48967
|
+
disabled: busy,
|
|
48968
|
+
onChange: (e) => {
|
|
48969
|
+
onChange(e.target.checked);
|
|
48970
|
+
},
|
|
48971
|
+
onClick: (e) => {
|
|
48972
|
+
e.stopPropagation();
|
|
48973
|
+
},
|
|
48974
|
+
className: "rounded border-border"
|
|
48975
|
+
}), /* @__PURE__ */ jsx("span", { children: label })]
|
|
48976
|
+
});
|
|
48977
|
+
}
|
|
48978
|
+
function DishwasherInlineControl(props) {
|
|
48979
|
+
return /* @__PURE__ */ jsx(DishwasherPanel, {
|
|
48980
|
+
...props,
|
|
48981
|
+
layout: "compact"
|
|
48982
|
+
});
|
|
48983
|
+
}
|
|
48984
|
+
function DishwasherHeroCard(props) {
|
|
48985
|
+
return /* @__PURE__ */ jsx(DishwasherPanel, {
|
|
48986
|
+
...props,
|
|
48987
|
+
layout: "full"
|
|
48988
|
+
});
|
|
48989
|
+
}
|
|
48990
|
+
//#endregion
|
|
48991
|
+
//#region src/composites/device-controls/heating-valve-readout.tsx
|
|
48992
|
+
function formatHeatingValvePosition(position) {
|
|
48993
|
+
return position !== null ? `${position}%` : "—";
|
|
48994
|
+
}
|
|
48995
|
+
function HeatingValveReadout({ trpc, deviceId, layout }) {
|
|
48996
|
+
const t = useUiText();
|
|
48997
|
+
const { cap, slice } = useDeviceCapability({
|
|
48998
|
+
trpc,
|
|
48999
|
+
deviceId,
|
|
49000
|
+
cap: (d) => d.heatingValve,
|
|
49001
|
+
slice: (d) => d.state.heatingValve
|
|
49002
|
+
});
|
|
49003
|
+
if (cap === void 0 || slice === void 0) return null;
|
|
49004
|
+
const label = t("uiLibrary.heatingValveReadout.valve", "Valve");
|
|
49005
|
+
const value = formatHeatingValvePosition(slice.position);
|
|
49006
|
+
if (layout === "compact") return /* @__PURE__ */ jsx("span", {
|
|
49007
|
+
className: "inline-flex items-center text-xs tabular-nums text-foreground-subtle",
|
|
49008
|
+
"aria-label": `${label} ${value}`,
|
|
49009
|
+
children: value
|
|
49010
|
+
});
|
|
49011
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
49012
|
+
className: "flex items-center gap-2 text-xs tabular-nums text-foreground-subtle",
|
|
49013
|
+
children: [/* @__PURE__ */ jsx("span", { children: label }), /* @__PURE__ */ jsx("span", {
|
|
49014
|
+
className: "font-medium text-foreground",
|
|
49015
|
+
children: value
|
|
49016
|
+
})]
|
|
49017
|
+
});
|
|
49018
|
+
}
|
|
49019
|
+
//#endregion
|
|
48526
49020
|
//#region src/composites/device-controls/ac-panel.tsx
|
|
49021
|
+
/** Modes that mean the device can cool, dry, or move air — an air conditioner. */
|
|
49022
|
+
var COOLING_MODES = new Set([
|
|
49023
|
+
"cool",
|
|
49024
|
+
"heat_cool",
|
|
49025
|
+
"dry",
|
|
49026
|
+
"fan_only"
|
|
49027
|
+
]);
|
|
49028
|
+
/** A heater offers heat (and maybe auto/off) and none of the cooling modes. */
|
|
49029
|
+
function climateOffersCooling(modes) {
|
|
49030
|
+
return modes.some((mode) => COOLING_MODES.has(mode));
|
|
49031
|
+
}
|
|
49032
|
+
/** Setpoint track bounds. Absent when the integration did not report both ends. */
|
|
49033
|
+
function climateSetpointBounds(status) {
|
|
49034
|
+
const min = status.minTemp;
|
|
49035
|
+
const max = status.maxTemp;
|
|
49036
|
+
if (typeof min !== "number" || typeof max !== "number") return null;
|
|
49037
|
+
if (!Number.isFinite(min) || !Number.isFinite(max) || max <= min) return null;
|
|
49038
|
+
return {
|
|
49039
|
+
min,
|
|
49040
|
+
max
|
|
49041
|
+
};
|
|
49042
|
+
}
|
|
49043
|
+
/** Map a 0–1 drag fraction onto the setpoint, snapped to `tempStep`. */
|
|
49044
|
+
function climateTargetFromFraction(fraction, bounds, tempStep) {
|
|
49045
|
+
const step = resolveClimateTempStep(tempStep);
|
|
49046
|
+
const clamped = Math.min(1, Math.max(0, fraction));
|
|
49047
|
+
const raw = bounds.min + clamped * (bounds.max - bounds.min);
|
|
49048
|
+
const steps = Math.round((raw - bounds.min) / step);
|
|
49049
|
+
const snapped = bounds.min + steps * step;
|
|
49050
|
+
const rounded = Math.round(snapped * 1e3) / 1e3;
|
|
49051
|
+
return Math.min(bounds.max, Math.max(bounds.min, rounded));
|
|
49052
|
+
}
|
|
48527
49053
|
/** AC-appropriate short mode labels. Exhaustive over HvacMode. */
|
|
48528
49054
|
function modeLabel(t, mode) {
|
|
48529
49055
|
switch (mode) {
|
|
@@ -48557,9 +49083,6 @@ var MODE_ACCENT = {
|
|
|
48557
49083
|
dry: "#22d3ee",
|
|
48558
49084
|
off: "#a1a1aa"
|
|
48559
49085
|
};
|
|
48560
|
-
/** Practical AC setpoint range (Celsius) for the target range track. */
|
|
48561
|
-
var TARGET_MIN = 16;
|
|
48562
|
-
var TARGET_MAX = 30;
|
|
48563
49086
|
/** Title-case a snake/lower token for a selector option ('medium_low' → 'Medium
|
|
48564
49087
|
* low', 'turbo' → 'Turbo'). Shared by the fan + preset selectors. */
|
|
48565
49088
|
function fanLabel(token) {
|
|
@@ -48646,7 +49169,7 @@ function AcPanel({ trpc, deviceId, layout, optimistic }) {
|
|
|
48646
49169
|
onClick: (e) => {
|
|
48647
49170
|
e.stopPropagation();
|
|
48648
49171
|
if (!busy && display.target !== null) {
|
|
48649
|
-
const next = display.target -
|
|
49172
|
+
const next = nextClimateTarget(display.target, -1, display);
|
|
48650
49173
|
applyOptimistic({ target: next });
|
|
48651
49174
|
cap.setTarget({ target: next });
|
|
48652
49175
|
}
|
|
@@ -48660,7 +49183,7 @@ function AcPanel({ trpc, deviceId, layout, optimistic }) {
|
|
|
48660
49183
|
onClick: (e) => {
|
|
48661
49184
|
e.stopPropagation();
|
|
48662
49185
|
if (!busy && display.target !== null) {
|
|
48663
|
-
const next = display.target
|
|
49186
|
+
const next = nextClimateTarget(display.target, 1, display);
|
|
48664
49187
|
applyOptimistic({ target: next });
|
|
48665
49188
|
cap.setTarget({ target: next });
|
|
48666
49189
|
}
|
|
@@ -48690,6 +49213,8 @@ function AcPanel({ trpc, deviceId, layout, optimistic }) {
|
|
|
48690
49213
|
});
|
|
48691
49214
|
const accent = MODE_ACCENT[display.mode];
|
|
48692
49215
|
const on = display.mode !== "off";
|
|
49216
|
+
const heatingOnly = !climateOffersCooling(display.availableModes);
|
|
49217
|
+
const setpointBounds = climateSetpointBounds(display);
|
|
48693
49218
|
const CurrentPresetIcon = presetIcon(display.preset);
|
|
48694
49219
|
const boost = display.preset === "turbo";
|
|
48695
49220
|
const period = Math.max(.55, airflowPeriodSec(display.fanMode) * (boost ? .6 : 1));
|
|
@@ -48706,11 +49231,12 @@ function AcPanel({ trpc, deviceId, layout, optimistic }) {
|
|
|
48706
49231
|
children: [
|
|
48707
49232
|
/* @__PURE__ */ jsx("div", {
|
|
48708
49233
|
className: "pointer-events-none absolute inset-0 opacity-60",
|
|
48709
|
-
children: /* @__PURE__ */ jsx(AirflowViz, {
|
|
49234
|
+
children: heatingOnly && !on ? /* @__PURE__ */ jsx(RadiatorFins, {}) : /* @__PURE__ */ jsx(AirflowViz, {
|
|
48710
49235
|
mode: display.mode,
|
|
48711
49236
|
accent,
|
|
48712
49237
|
periodSec: period,
|
|
48713
|
-
swaying
|
|
49238
|
+
swaying,
|
|
49239
|
+
forceRising: heatingOnly
|
|
48714
49240
|
})
|
|
48715
49241
|
}),
|
|
48716
49242
|
/* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-0 bg-gradient-to-b from-surface/50 via-transparent to-surface/50" }),
|
|
@@ -48728,6 +49254,7 @@ function AcPanel({ trpc, deviceId, layout, optimistic }) {
|
|
|
48728
49254
|
children: [
|
|
48729
49255
|
/* @__PURE__ */ jsx(ModeIcon, {
|
|
48730
49256
|
mode: display.mode,
|
|
49257
|
+
heatingOnly,
|
|
48731
49258
|
className: "h-3.5 w-3.5"
|
|
48732
49259
|
}),
|
|
48733
49260
|
modeLabel(t, display.mode),
|
|
@@ -48754,7 +49281,7 @@ function AcPanel({ trpc, deviceId, layout, optimistic }) {
|
|
|
48754
49281
|
disabled: busy,
|
|
48755
49282
|
onClick: () => {
|
|
48756
49283
|
if (busy || display.target === null) return;
|
|
48757
|
-
const next = display.target -
|
|
49284
|
+
const next = nextClimateTarget(display.target, -1, display);
|
|
48758
49285
|
applyOptimistic({ target: next });
|
|
48759
49286
|
cap.setTarget({ target: next });
|
|
48760
49287
|
}
|
|
@@ -48776,19 +49303,29 @@ function AcPanel({ trpc, deviceId, layout, optimistic }) {
|
|
|
48776
49303
|
disabled: busy,
|
|
48777
49304
|
onClick: () => {
|
|
48778
49305
|
if (busy || display.target === null) return;
|
|
48779
|
-
const next = display.target
|
|
49306
|
+
const next = nextClimateTarget(display.target, 1, display);
|
|
48780
49307
|
applyOptimistic({ target: next });
|
|
48781
49308
|
cap.setTarget({ target: next });
|
|
48782
49309
|
}
|
|
48783
49310
|
})
|
|
48784
49311
|
]
|
|
48785
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
48786
|
-
className: "relative z-10 w-
|
|
49312
|
+
}), setpointBounds !== null && /* @__PURE__ */ jsx("div", {
|
|
49313
|
+
className: "relative z-10 w-full px-1",
|
|
48787
49314
|
children: /* @__PURE__ */ jsx(RangeTrack, {
|
|
48788
49315
|
value: display.target,
|
|
48789
|
-
min:
|
|
48790
|
-
max:
|
|
48791
|
-
|
|
49316
|
+
min: setpointBounds.min,
|
|
49317
|
+
max: setpointBounds.max,
|
|
49318
|
+
step: display.tempStep,
|
|
49319
|
+
accent,
|
|
49320
|
+
disabled: busy,
|
|
49321
|
+
label: t("uiLibrary.acPanel.setpoint", "Setpoint"),
|
|
49322
|
+
onPreview: (next) => {
|
|
49323
|
+
applyOptimistic({ target: next });
|
|
49324
|
+
},
|
|
49325
|
+
onCommit: (next) => {
|
|
49326
|
+
applyOptimistic({ target: next });
|
|
49327
|
+
cap.setTarget({ target: next });
|
|
49328
|
+
}
|
|
48792
49329
|
})
|
|
48793
49330
|
})] }) : /* @__PURE__ */ jsxs("div", {
|
|
48794
49331
|
className: "relative z-10 flex items-baseline gap-0.5",
|
|
@@ -48812,6 +49349,7 @@ function AcPanel({ trpc, deviceId, layout, optimistic }) {
|
|
|
48812
49349
|
className: "flex",
|
|
48813
49350
|
children: /* @__PURE__ */ jsx(ModeIcon, {
|
|
48814
49351
|
mode: display.mode,
|
|
49352
|
+
heatingOnly,
|
|
48815
49353
|
className: "h-4 w-4"
|
|
48816
49354
|
})
|
|
48817
49355
|
}),
|
|
@@ -48895,9 +49433,8 @@ function Field({ label, children }) {
|
|
|
48895
49433
|
}), children]
|
|
48896
49434
|
});
|
|
48897
49435
|
}
|
|
48898
|
-
function ModeIcon({ mode, className }) {
|
|
48899
|
-
|
|
48900
|
-
return /* @__PURE__ */ jsx(Icon, {
|
|
49436
|
+
function ModeIcon({ mode, heatingOnly = false, className }) {
|
|
49437
|
+
return /* @__PURE__ */ jsx(heatingOnly && mode === "heat" ? Heater : MODE_ICON[mode], {
|
|
48901
49438
|
className,
|
|
48902
49439
|
"aria-hidden": true
|
|
48903
49440
|
});
|
|
@@ -48947,11 +49484,89 @@ function RoundStep({ label, symbol, disabled, onClick }) {
|
|
|
48947
49484
|
children: symbol
|
|
48948
49485
|
});
|
|
48949
49486
|
}
|
|
48950
|
-
/**
|
|
48951
|
-
function RangeTrack({ value, min, max, accent }) {
|
|
48952
|
-
const
|
|
49487
|
+
/** Setpoint track. Drag previews; the command is sent when the pointer is released. */
|
|
49488
|
+
function RangeTrack({ value, min, max, step, accent, disabled, label, onPreview, onCommit }) {
|
|
49489
|
+
const trackRef = useRef(null);
|
|
49490
|
+
const draggingRef = useRef(false);
|
|
49491
|
+
const [draft, setDraft] = useState(null);
|
|
49492
|
+
const shown = draft ?? value;
|
|
49493
|
+
const pct = `${Math.min(1, Math.max(0, (shown - min) / (max - min))) * 100}%`;
|
|
49494
|
+
const tempAt = (clientX) => {
|
|
49495
|
+
const el = trackRef.current;
|
|
49496
|
+
if (el === null) return value;
|
|
49497
|
+
const rect = el.getBoundingClientRect();
|
|
49498
|
+
if (rect.width <= 0) return value;
|
|
49499
|
+
return climateTargetFromFraction((clientX - rect.left) / rect.width, {
|
|
49500
|
+
min,
|
|
49501
|
+
max
|
|
49502
|
+
}, step);
|
|
49503
|
+
};
|
|
49504
|
+
const onPointerDown = (event) => {
|
|
49505
|
+
if (disabled) return;
|
|
49506
|
+
event.stopPropagation();
|
|
49507
|
+
event.preventDefault();
|
|
49508
|
+
draggingRef.current = true;
|
|
49509
|
+
if (typeof event.currentTarget.setPointerCapture === "function") event.currentTarget.setPointerCapture(event.pointerId);
|
|
49510
|
+
const next = tempAt(event.clientX);
|
|
49511
|
+
setDraft(next);
|
|
49512
|
+
onPreview(next);
|
|
49513
|
+
};
|
|
49514
|
+
const onPointerMove = (event) => {
|
|
49515
|
+
if (disabled || !draggingRef.current) return;
|
|
49516
|
+
event.stopPropagation();
|
|
49517
|
+
const next = tempAt(event.clientX);
|
|
49518
|
+
setDraft(next);
|
|
49519
|
+
onPreview(next);
|
|
49520
|
+
};
|
|
49521
|
+
const endDrag = (event) => {
|
|
49522
|
+
if (!draggingRef.current) return;
|
|
49523
|
+
event.stopPropagation();
|
|
49524
|
+
draggingRef.current = false;
|
|
49525
|
+
const next = tempAt(event.clientX);
|
|
49526
|
+
setDraft(null);
|
|
49527
|
+
if (event.currentTarget.hasPointerCapture?.(event.pointerId) === true) event.currentTarget.releasePointerCapture(event.pointerId);
|
|
49528
|
+
onCommit(next);
|
|
49529
|
+
};
|
|
49530
|
+
const onKeyDown = (event) => {
|
|
49531
|
+
if (disabled) return;
|
|
49532
|
+
const current = draft ?? value;
|
|
49533
|
+
if (event.key === "ArrowRight" || event.key === "ArrowUp") {
|
|
49534
|
+
event.preventDefault();
|
|
49535
|
+
onCommit(nextClimateTarget(current, 1, {
|
|
49536
|
+
tempStep: step,
|
|
49537
|
+
minTemp: min,
|
|
49538
|
+
maxTemp: max
|
|
49539
|
+
}));
|
|
49540
|
+
} else if (event.key === "ArrowLeft" || event.key === "ArrowDown") {
|
|
49541
|
+
event.preventDefault();
|
|
49542
|
+
onCommit(nextClimateTarget(current, -1, {
|
|
49543
|
+
tempStep: step,
|
|
49544
|
+
minTemp: min,
|
|
49545
|
+
maxTemp: max
|
|
49546
|
+
}));
|
|
49547
|
+
} else if (event.key === "Home") {
|
|
49548
|
+
event.preventDefault();
|
|
49549
|
+
onCommit(min);
|
|
49550
|
+
} else if (event.key === "End") {
|
|
49551
|
+
event.preventDefault();
|
|
49552
|
+
onCommit(max);
|
|
49553
|
+
}
|
|
49554
|
+
};
|
|
48953
49555
|
return /* @__PURE__ */ jsxs("div", {
|
|
48954
|
-
|
|
49556
|
+
ref: trackRef,
|
|
49557
|
+
role: "slider",
|
|
49558
|
+
"aria-label": label,
|
|
49559
|
+
"aria-valuemin": min,
|
|
49560
|
+
"aria-valuemax": max,
|
|
49561
|
+
"aria-valuenow": shown,
|
|
49562
|
+
"aria-disabled": disabled,
|
|
49563
|
+
tabIndex: disabled ? -1 : 0,
|
|
49564
|
+
onPointerDown,
|
|
49565
|
+
onPointerMove,
|
|
49566
|
+
onPointerUp: endDrag,
|
|
49567
|
+
onPointerCancel: endDrag,
|
|
49568
|
+
onKeyDown,
|
|
49569
|
+
className: cn("mt-1 w-full touch-none select-none py-2", disabled ? "cursor-not-allowed opacity-40" : "cursor-ew-resize"),
|
|
48955
49570
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
48956
49571
|
className: "relative h-1.5 w-full rounded-full bg-surface-subtle",
|
|
48957
49572
|
children: [/* @__PURE__ */ jsx("div", {
|
|
@@ -48961,7 +49576,7 @@ function RangeTrack({ value, min, max, accent }) {
|
|
|
48961
49576
|
background: accent
|
|
48962
49577
|
}
|
|
48963
49578
|
}), /* @__PURE__ */ jsx("div", {
|
|
48964
|
-
className: "absolute top-1/2 h-3 w-3 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-surface shadow",
|
|
49579
|
+
className: "absolute top-1/2 h-3.5 w-3.5 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-surface shadow",
|
|
48965
49580
|
style: {
|
|
48966
49581
|
left: pct,
|
|
48967
49582
|
background: accent
|
|
@@ -48978,7 +49593,7 @@ function RangeTrack({ value, min, max, accent }) {
|
|
|
48978
49593
|
* vent; every active mode renders drifting particles that FALL (cool/dry/auto)
|
|
48979
49594
|
* or RISE (heat), with a horizontal sweep overlaid when a swing axis is active.
|
|
48980
49595
|
*/
|
|
48981
|
-
function AirflowViz({ mode, accent, periodSec, swaying }) {
|
|
49596
|
+
function AirflowViz({ mode, accent, periodSec, swaying, forceRising = false }) {
|
|
48982
49597
|
const columns = [
|
|
48983
49598
|
0,
|
|
48984
49599
|
1,
|
|
@@ -48987,7 +49602,7 @@ function AirflowViz({ mode, accent, periodSec, swaying }) {
|
|
|
48987
49602
|
4,
|
|
48988
49603
|
5
|
|
48989
49604
|
];
|
|
48990
|
-
const rising = mode === "heat";
|
|
49605
|
+
const rising = forceRising || mode === "heat";
|
|
48991
49606
|
const isDroplet = mode === "dry";
|
|
48992
49607
|
return /* @__PURE__ */ jsx("div", {
|
|
48993
49608
|
"aria-hidden": true,
|
|
@@ -49003,6 +49618,7 @@ function AirflowViz({ mode, accent, periodSec, swaying }) {
|
|
|
49003
49618
|
size: 56
|
|
49004
49619
|
})
|
|
49005
49620
|
}) : /* @__PURE__ */ jsx("div", {
|
|
49621
|
+
"data-testid": forceRising ? "climate-heat-rise" : void 0,
|
|
49006
49622
|
className: cn("acv-sway-wrap absolute inset-0", swaying && "acv-sway"),
|
|
49007
49623
|
style: swaying ? { animation: "acv-sway 2.6s ease-in-out infinite" } : void 0,
|
|
49008
49624
|
children: columns.map((i) => {
|
|
@@ -49025,6 +49641,23 @@ function AirflowViz({ mode, accent, periodSec, swaying }) {
|
|
|
49025
49641
|
})
|
|
49026
49642
|
});
|
|
49027
49643
|
}
|
|
49644
|
+
/** Still radiator fins — the off state of a heating-only climate. */
|
|
49645
|
+
function RadiatorFins() {
|
|
49646
|
+
return /* @__PURE__ */ jsx("div", {
|
|
49647
|
+
"data-testid": "climate-radiator",
|
|
49648
|
+
"aria-hidden": true,
|
|
49649
|
+
className: "flex h-full items-end justify-center gap-1.5 px-8 pb-3 opacity-40",
|
|
49650
|
+
children: [
|
|
49651
|
+
0,
|
|
49652
|
+
1,
|
|
49653
|
+
2,
|
|
49654
|
+
3,
|
|
49655
|
+
4,
|
|
49656
|
+
5,
|
|
49657
|
+
6
|
|
49658
|
+
].map((i) => /* @__PURE__ */ jsx("span", { className: "h-10 w-1.5 rounded-t-full bg-foreground-subtle" }, i))
|
|
49659
|
+
});
|
|
49660
|
+
}
|
|
49028
49661
|
/** Big spinning fan for `fan_only` mode. */
|
|
49029
49662
|
function FanBlades({ color, periodSec, size }) {
|
|
49030
49663
|
return /* @__PURE__ */ jsxs("svg", {
|
|
@@ -49191,16 +49824,33 @@ var MODE_ARC_COLOR = {
|
|
|
49191
49824
|
*/
|
|
49192
49825
|
function ThermostatHeroCard({ trpc, deviceId, features: _features, optimistic }) {
|
|
49193
49826
|
const t = useUiText();
|
|
49194
|
-
const
|
|
49827
|
+
const climate = useDeviceCapability({
|
|
49195
49828
|
trpc,
|
|
49196
49829
|
deviceId,
|
|
49197
49830
|
cap: (d) => d.climateControl,
|
|
49198
49831
|
slice: (d) => d.state.climateControl
|
|
49199
49832
|
});
|
|
49200
|
-
const
|
|
49201
|
-
|
|
49202
|
-
|
|
49203
|
-
|
|
49833
|
+
const valve = useDeviceCapability({
|
|
49834
|
+
trpc,
|
|
49835
|
+
deviceId,
|
|
49836
|
+
cap: (d) => d.heatingValve,
|
|
49837
|
+
slice: (d) => d.state.heatingValve
|
|
49838
|
+
});
|
|
49839
|
+
const { display, applyOptimistic } = useOptimisticSlice(climate.slice, { enabled: optimistic ?? true });
|
|
49840
|
+
const hasClimate = climate.cap !== void 0 && display !== void 0;
|
|
49841
|
+
const hasValve = valve.cap !== void 0;
|
|
49842
|
+
if (!hasClimate && !hasValve) return null;
|
|
49843
|
+
if (!hasClimate && hasValve) return /* @__PURE__ */ jsx("div", {
|
|
49844
|
+
className: "flex flex-col items-stretch gap-3 rounded-lg border border-border bg-surface p-4",
|
|
49845
|
+
children: /* @__PURE__ */ jsx(HeatingValveReadout, {
|
|
49846
|
+
trpc,
|
|
49847
|
+
deviceId,
|
|
49848
|
+
layout: "full"
|
|
49849
|
+
})
|
|
49850
|
+
});
|
|
49851
|
+
if (climate.cap === void 0 || display === void 0) return null;
|
|
49852
|
+
const cap = climate.cap;
|
|
49853
|
+
const busy = !climate.available;
|
|
49204
49854
|
const color = MODE_ARC_COLOR[display.mode];
|
|
49205
49855
|
const isRange = display.mode === "heat_cool" || display.targetLow !== null && display.targetHigh !== null;
|
|
49206
49856
|
const min = DEFAULT_TEMP_MIN;
|
|
@@ -49211,132 +49861,140 @@ function ThermostatHeroCard({ trpc, deviceId, features: _features, optimistic })
|
|
|
49211
49861
|
return /* @__PURE__ */ jsxs("div", {
|
|
49212
49862
|
"data-mode": display.mode,
|
|
49213
49863
|
className: cn("flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-4 transition-colors", MODE_COLOR[display.mode]),
|
|
49214
|
-
children: [
|
|
49215
|
-
|
|
49216
|
-
|
|
49217
|
-
|
|
49218
|
-
|
|
49219
|
-
|
|
49220
|
-
|
|
49221
|
-
|
|
49222
|
-
|
|
49223
|
-
|
|
49224
|
-
|
|
49225
|
-
|
|
49226
|
-
|
|
49227
|
-
|
|
49228
|
-
|
|
49229
|
-
|
|
49230
|
-
|
|
49231
|
-
|
|
49232
|
-
|
|
49233
|
-
color
|
|
49234
|
-
}),
|
|
49235
|
-
isRange ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", {
|
|
49236
|
-
"data-testid": "arc-knob",
|
|
49237
|
-
children: /* @__PURE__ */ jsx(ArcKnob, {
|
|
49238
|
-
fraction: fractionLow,
|
|
49239
|
-
color,
|
|
49240
|
-
knobTopPx: THERMOSTAT_KNOB_TOP_PX,
|
|
49241
|
-
onDragFraction: (f) => {
|
|
49242
|
-
if (busy || display.targetHigh === null) return;
|
|
49243
|
-
const next = Math.min(fractionToTemp(f, min, max), display.targetHigh);
|
|
49244
|
-
applyOptimistic({ targetLow: next });
|
|
49245
|
-
cap.setTargetRange({
|
|
49246
|
-
targetLow: next,
|
|
49247
|
-
targetHigh: display.targetHigh
|
|
49248
|
-
});
|
|
49249
|
-
}
|
|
49250
|
-
})
|
|
49251
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
49252
|
-
"data-testid": "arc-knob",
|
|
49253
|
-
children: /* @__PURE__ */ jsx(ArcKnob, {
|
|
49254
|
-
fraction: fractionHigh,
|
|
49255
|
-
color,
|
|
49256
|
-
knobTopPx: THERMOSTAT_KNOB_TOP_PX,
|
|
49257
|
-
onDragFraction: (f) => {
|
|
49258
|
-
if (busy || display.targetLow === null) return;
|
|
49259
|
-
const next = Math.max(fractionToTemp(f, min, max), display.targetLow);
|
|
49260
|
-
applyOptimistic({ targetHigh: next });
|
|
49261
|
-
cap.setTargetRange({
|
|
49262
|
-
targetLow: display.targetLow,
|
|
49263
|
-
targetHigh: next
|
|
49264
|
-
});
|
|
49265
|
-
}
|
|
49266
|
-
})
|
|
49267
|
-
})] }) : /* @__PURE__ */ jsx("div", {
|
|
49268
|
-
"data-testid": "arc-knob",
|
|
49269
|
-
children: /* @__PURE__ */ jsx(ArcKnob, {
|
|
49864
|
+
children: [
|
|
49865
|
+
/* @__PURE__ */ jsxs("div", {
|
|
49866
|
+
className: "flex flex-col items-center gap-3",
|
|
49867
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
49868
|
+
className: "relative",
|
|
49869
|
+
style: {
|
|
49870
|
+
width: GAUGE_SIZE,
|
|
49871
|
+
height: GAUGE_SIZE
|
|
49872
|
+
},
|
|
49873
|
+
children: [
|
|
49874
|
+
isRange ? /* @__PURE__ */ jsx(GaugeRing, {
|
|
49875
|
+
mode: "band",
|
|
49876
|
+
band: {
|
|
49877
|
+
from: fractionLow,
|
|
49878
|
+
to: fractionHigh
|
|
49879
|
+
},
|
|
49880
|
+
color
|
|
49881
|
+
}) : /* @__PURE__ */ jsx(GaugeRing, {
|
|
49882
|
+
mode: "fill",
|
|
49270
49883
|
fraction: singleFraction,
|
|
49271
|
-
color
|
|
49272
|
-
|
|
49273
|
-
|
|
49274
|
-
|
|
49275
|
-
|
|
49276
|
-
|
|
49277
|
-
|
|
49278
|
-
|
|
49279
|
-
|
|
49280
|
-
|
|
49281
|
-
|
|
49282
|
-
|
|
49283
|
-
|
|
49284
|
-
|
|
49285
|
-
|
|
49286
|
-
|
|
49287
|
-
|
|
49288
|
-
className: "text-lg text-foreground-subtle font-normal ml-0.5",
|
|
49289
|
-
children: "°"
|
|
49290
|
-
})]
|
|
49291
|
-
}),
|
|
49292
|
-
!isRange && display.target !== null && /* @__PURE__ */ jsx("div", {
|
|
49293
|
-
className: "text-xs font-semibold",
|
|
49294
|
-
style: { color },
|
|
49295
|
-
children: t("uiLibrary.thermostatHeroCard.setTo", "set {{value}}°", { value: display.target })
|
|
49296
|
-
}),
|
|
49297
|
-
isRange && display.targetLow !== null && display.targetHigh !== null && /* @__PURE__ */ jsxs("div", {
|
|
49298
|
-
className: "text-xs font-semibold",
|
|
49299
|
-
style: { color },
|
|
49300
|
-
children: [
|
|
49301
|
-
display.targetLow,
|
|
49302
|
-
"° – ",
|
|
49303
|
-
display.targetHigh,
|
|
49304
|
-
"°"
|
|
49305
|
-
]
|
|
49884
|
+
color
|
|
49885
|
+
}),
|
|
49886
|
+
isRange ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", {
|
|
49887
|
+
"data-testid": "arc-knob",
|
|
49888
|
+
children: /* @__PURE__ */ jsx(ArcKnob, {
|
|
49889
|
+
fraction: fractionLow,
|
|
49890
|
+
color,
|
|
49891
|
+
knobTopPx: THERMOSTAT_KNOB_TOP_PX,
|
|
49892
|
+
onDragFraction: (f) => {
|
|
49893
|
+
if (busy || display.targetHigh === null) return;
|
|
49894
|
+
const next = Math.min(fractionToTemp(f, min, max), display.targetHigh);
|
|
49895
|
+
applyOptimistic({ targetLow: next });
|
|
49896
|
+
cap.setTargetRange({
|
|
49897
|
+
targetLow: next,
|
|
49898
|
+
targetHigh: display.targetHigh
|
|
49899
|
+
});
|
|
49900
|
+
}
|
|
49306
49901
|
})
|
|
49307
|
-
|
|
49902
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
49903
|
+
"data-testid": "arc-knob",
|
|
49904
|
+
children: /* @__PURE__ */ jsx(ArcKnob, {
|
|
49905
|
+
fraction: fractionHigh,
|
|
49906
|
+
color,
|
|
49907
|
+
knobTopPx: THERMOSTAT_KNOB_TOP_PX,
|
|
49908
|
+
onDragFraction: (f) => {
|
|
49909
|
+
if (busy || display.targetLow === null) return;
|
|
49910
|
+
const next = Math.max(fractionToTemp(f, min, max), display.targetLow);
|
|
49911
|
+
applyOptimistic({ targetHigh: next });
|
|
49912
|
+
cap.setTargetRange({
|
|
49913
|
+
targetLow: display.targetLow,
|
|
49914
|
+
targetHigh: next
|
|
49915
|
+
});
|
|
49916
|
+
}
|
|
49917
|
+
})
|
|
49918
|
+
})] }) : /* @__PURE__ */ jsx("div", {
|
|
49919
|
+
"data-testid": "arc-knob",
|
|
49920
|
+
children: /* @__PURE__ */ jsx(ArcKnob, {
|
|
49921
|
+
fraction: singleFraction,
|
|
49922
|
+
color,
|
|
49923
|
+
knobTopPx: THERMOSTAT_KNOB_TOP_PX,
|
|
49924
|
+
onDragFraction: (f) => {
|
|
49925
|
+
if (busy) return;
|
|
49926
|
+
const next = fractionToTemp(f, min, max);
|
|
49927
|
+
applyOptimistic({ target: next });
|
|
49928
|
+
cap.setTarget({ target: next });
|
|
49929
|
+
}
|
|
49930
|
+
})
|
|
49931
|
+
}),
|
|
49932
|
+
/* @__PURE__ */ jsxs("div", {
|
|
49933
|
+
className: "absolute inset-0 flex flex-col items-center justify-center gap-0.5 pointer-events-none",
|
|
49934
|
+
children: [
|
|
49935
|
+
/* @__PURE__ */ jsxs("div", {
|
|
49936
|
+
"data-testid": "current-temp",
|
|
49937
|
+
className: "text-4xl font-bold tabular-nums text-foreground leading-none",
|
|
49938
|
+
children: [display.currentTemp !== null ? display.currentTemp : "—", /* @__PURE__ */ jsx("span", {
|
|
49939
|
+
className: "text-lg text-foreground-subtle font-normal ml-0.5",
|
|
49940
|
+
children: "°"
|
|
49941
|
+
})]
|
|
49942
|
+
}),
|
|
49943
|
+
!isRange && display.target !== null && /* @__PURE__ */ jsx("div", {
|
|
49944
|
+
className: "text-xs font-semibold",
|
|
49945
|
+
style: { color },
|
|
49946
|
+
children: t("uiLibrary.thermostatHeroCard.setTo", "set {{value}}°", { value: display.target })
|
|
49947
|
+
}),
|
|
49948
|
+
isRange && display.targetLow !== null && display.targetHigh !== null && /* @__PURE__ */ jsxs("div", {
|
|
49949
|
+
className: "text-xs font-semibold",
|
|
49950
|
+
style: { color },
|
|
49951
|
+
children: [
|
|
49952
|
+
display.targetLow,
|
|
49953
|
+
"° – ",
|
|
49954
|
+
display.targetHigh,
|
|
49955
|
+
"°"
|
|
49956
|
+
]
|
|
49957
|
+
})
|
|
49958
|
+
]
|
|
49959
|
+
})
|
|
49960
|
+
]
|
|
49961
|
+
}), !isRange && display.target !== null && /* @__PURE__ */ jsx("div", {
|
|
49962
|
+
className: "w-[200px]",
|
|
49963
|
+
children: /* @__PURE__ */ jsx(Stepper, {
|
|
49964
|
+
value: `${display.target}°`,
|
|
49965
|
+
onDelta: (d) => {
|
|
49966
|
+
if (busy || display.target === null) return;
|
|
49967
|
+
const next = display.target + d;
|
|
49968
|
+
applyOptimistic({ target: next });
|
|
49969
|
+
cap.setTarget({ target: next });
|
|
49970
|
+
}
|
|
49308
49971
|
})
|
|
49309
|
-
]
|
|
49310
|
-
}),
|
|
49311
|
-
|
|
49312
|
-
|
|
49313
|
-
|
|
49314
|
-
|
|
49315
|
-
|
|
49316
|
-
|
|
49317
|
-
|
|
49318
|
-
|
|
49972
|
+
})]
|
|
49973
|
+
}),
|
|
49974
|
+
hasValve ? /* @__PURE__ */ jsx(HeatingValveReadout, {
|
|
49975
|
+
trpc,
|
|
49976
|
+
deviceId,
|
|
49977
|
+
layout: "full"
|
|
49978
|
+
}) : null,
|
|
49979
|
+
/* @__PURE__ */ jsx("select", {
|
|
49980
|
+
"aria-label": t("uiLibrary.thermostatHeroCard.mode", "Mode"),
|
|
49981
|
+
value: display.mode,
|
|
49982
|
+
disabled: busy,
|
|
49983
|
+
onChange: (e) => {
|
|
49984
|
+
e.stopPropagation();
|
|
49985
|
+
const mode = e.target.value;
|
|
49986
|
+
if (!busy && mode) {
|
|
49987
|
+
applyOptimistic({ mode: display.availableModes.find((m) => m === mode) ?? display.mode });
|
|
49988
|
+
cap.setMode({ mode: display.availableModes.find((m) => m === mode) ?? display.mode });
|
|
49319
49989
|
}
|
|
49320
|
-
}
|
|
49321
|
-
|
|
49322
|
-
|
|
49323
|
-
|
|
49324
|
-
|
|
49325
|
-
|
|
49326
|
-
|
|
49327
|
-
|
|
49328
|
-
const mode = e.target.value;
|
|
49329
|
-
if (!busy && mode) {
|
|
49330
|
-
applyOptimistic({ mode: display.availableModes.find((m) => m === mode) ?? display.mode });
|
|
49331
|
-
cap.setMode({ mode: display.availableModes.find((m) => m === mode) ?? display.mode });
|
|
49332
|
-
}
|
|
49333
|
-
},
|
|
49334
|
-
className: cn("w-full rounded border border-border bg-surface px-3 py-1.5 text-sm", busy && "opacity-40 cursor-not-allowed"),
|
|
49335
|
-
children: display.availableModes.map((m) => /* @__PURE__ */ jsx("option", {
|
|
49336
|
-
value: m,
|
|
49337
|
-
children: m
|
|
49338
|
-
}, m))
|
|
49339
|
-
})]
|
|
49990
|
+
},
|
|
49991
|
+
className: cn("w-full rounded border border-border bg-surface px-3 py-1.5 text-sm", busy && "opacity-40 cursor-not-allowed"),
|
|
49992
|
+
children: display.availableModes.map((m) => /* @__PURE__ */ jsx("option", {
|
|
49993
|
+
value: m,
|
|
49994
|
+
children: m
|
|
49995
|
+
}, m))
|
|
49996
|
+
})
|
|
49997
|
+
]
|
|
49340
49998
|
});
|
|
49341
49999
|
}
|
|
49342
50000
|
//#endregion
|
|
@@ -50844,14 +51502,32 @@ function useClimateCapGuard(trpc, deviceId) {
|
|
|
50844
51502
|
});
|
|
50845
51503
|
return cap !== void 0;
|
|
50846
51504
|
}
|
|
50847
|
-
function
|
|
50848
|
-
|
|
50849
|
-
return /* @__PURE__ */ jsx(ClimatePanel, {
|
|
51505
|
+
function useHeatingValveCapGuard(trpc, deviceId) {
|
|
51506
|
+
const { cap } = useDeviceCapability({
|
|
50850
51507
|
trpc,
|
|
50851
51508
|
deviceId,
|
|
50852
|
-
|
|
50853
|
-
|
|
50854
|
-
|
|
51509
|
+
cap: (d) => d.heatingValve,
|
|
51510
|
+
slice: (d) => d.state.heatingValve
|
|
51511
|
+
});
|
|
51512
|
+
return cap !== void 0;
|
|
51513
|
+
}
|
|
51514
|
+
function ThermostatInlineControl({ trpc, deviceId, features, optimistic }) {
|
|
51515
|
+
const hasClimate = useClimateCapGuard(trpc, deviceId);
|
|
51516
|
+
const hasValve = useHeatingValveCapGuard(trpc, deviceId);
|
|
51517
|
+
if (!hasClimate && !hasValve) return null;
|
|
51518
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
51519
|
+
className: "inline-flex items-center gap-2",
|
|
51520
|
+
children: [hasClimate ? /* @__PURE__ */ jsx(ClimatePanel, {
|
|
51521
|
+
trpc,
|
|
51522
|
+
deviceId,
|
|
51523
|
+
features,
|
|
51524
|
+
layout: "compact",
|
|
51525
|
+
optimistic
|
|
51526
|
+
}) : null, hasValve ? /* @__PURE__ */ jsx(HeatingValveReadout, {
|
|
51527
|
+
trpc,
|
|
51528
|
+
deviceId,
|
|
51529
|
+
layout: "compact"
|
|
51530
|
+
}) : null]
|
|
50855
51531
|
});
|
|
50856
51532
|
}
|
|
50857
51533
|
function AcInlineControl({ trpc, deviceId, features, optimistic }) {
|
|
@@ -51016,6 +51692,10 @@ var CONTROL_KIND_COMPONENTS = {
|
|
|
51016
51692
|
InlineControl: PetFeederInlineControl,
|
|
51017
51693
|
HeroCard: PetFeederHeroCard
|
|
51018
51694
|
},
|
|
51695
|
+
dishwasher: {
|
|
51696
|
+
InlineControl: DishwasherInlineControl,
|
|
51697
|
+
HeroCard: DishwasherHeroCard
|
|
51698
|
+
},
|
|
51019
51699
|
script: {
|
|
51020
51700
|
InlineControl: ScriptInlineControl,
|
|
51021
51701
|
HeroCard: ScriptHeroCard
|
|
@@ -51092,7 +51772,8 @@ var CONTROL_FILLS = {
|
|
|
51092
51772
|
[DeviceType.Weather]: false,
|
|
51093
51773
|
[DeviceType.Container]: false,
|
|
51094
51774
|
[DeviceType.Image]: false,
|
|
51095
|
-
[DeviceType.PetFeeder]: false
|
|
51775
|
+
[DeviceType.PetFeeder]: false,
|
|
51776
|
+
[DeviceType.Dishwasher]: false
|
|
51096
51777
|
};
|
|
51097
51778
|
var DEVICE_TYPE_VALUES = new Set(Object.values(DeviceType));
|
|
51098
51779
|
/**
|
|
@@ -63695,12 +64376,12 @@ function mirror(input, t = defaultUiText) {
|
|
|
63695
64376
|
* Render inside `<Suspense>` at all call sites. */
|
|
63696
64377
|
var MaskShapeCanvas = lazy(() => import("./MaskShapeCanvas-C9cJlxvG.js").then((m) => ({ default: m.MaskShapeCanvas })));
|
|
63697
64378
|
/** Lazy-wrapped `MotionZonesSettings` — code-split off the main bundle. */
|
|
63698
|
-
var MotionZonesSettings = lazy(() => import("./MotionZonesSettings-
|
|
64379
|
+
var MotionZonesSettings = lazy(() => import("./MotionZonesSettings-C3Tj12yc.js").then((m) => ({ default: m.MotionZonesSettings })));
|
|
63699
64380
|
/** Lazy-wrapped `SceneMonitorEditor` — code-split off the main bundle for the
|
|
63700
64381
|
* same reason: it mounts `MaskShapeCanvas`, which chains react-konva. Render
|
|
63701
64382
|
* inside `<Suspense>`; the admin-ui `/scenes` dialog is its only caller. */
|
|
63702
|
-
var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-
|
|
64383
|
+
var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-30H29vN4.js").then((m) => ({ default: m.SceneMonitorEditor })));
|
|
63703
64384
|
/** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
|
|
63704
|
-
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-
|
|
64385
|
+
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-C9wfHkiB.js").then((m) => ({ default: m.PrivacyMaskSettings })));
|
|
63705
64386
|
//#endregion
|
|
63706
|
-
export { ShieldCheck as $, CircleX as $n, List as $t, TrainFront as A, AddProviderEntryDialog, AddonGlobalSettingsForm, AdminLinkQuickAction, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, Eye as An, AppShell, Battery as Ar, ArcKnob, Package as At, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, Star as B, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, BackToStepsButton, Badge, BatteryBadge, Database as Bn, BottomSheet, ArrowRight as Br, Breadcrumb, BrightnessPanel, Minus as Bt, Button, ButtonControl, ButtonHeroCard, Undo2 as C, CENTER, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, Checkbox, ChildSectionAccordion, ClimatePanel, FlaskConical as Cn, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigNotificationTargetMultiSelectFieldView, ConfigNotificationTargetSelectFieldView, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, Bot as Cr, Plane as Ct, CustomFieldRenderersProvider, TrendingDown as D, 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, DataTable, DataTableFilterBar, DataTablePager, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceExportSetup, DeviceFilterBar, DeviceGrid, DeviceItem, DeviceList, DeviceMultiSelectField, DevicePicker, DeviceQuickDetailProvider, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, DevicesFailedLine, DevicesLoadingLine, DevicesWidenWarning, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, Film as Dn, DoorbellRecentPanel, Bike as Dr, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, Pencil as Dt, DummyHeroCard, DummyInline, TriangleAlert as E, EMPTY_DATA_TABLE_FILTER, EVENT_KIND_ICONS, EmptyState, Flame as En, EndpointResultsCard, EndpointTestCard, EntryJsonSchemaForm, Bird as Er, ErrorBox, Phone as Et, EventKindGlyph, EventStream, ExtensionsPanel, Target 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, Droplet as Fn, FormField$1 as FormField, Bath as Fr, MoveVertical as Ft, Smartphone as G, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GateBadge, GateControl, Cloud as Gn, AirVent as Gr, GripTrack, GroupedModelSelector, Megaphone as Gt, Sprout as H, HOST_WIDGETS, HUB_SESSION_RUN_MS, HlsVideo, Cpu as Hn, HoverZoomImage, ArrowDown as Hr, Mic as Ht, HubSessionTestCard, HumidifierHeroCard, HumidifierInlineControl, Tag as I, INPUT_COMPACT, INPUT_SHELL, IconAction, IconButton, IconPicker, ImageHeroCard, ImageInlineControl, ImageSelector, Download as In, InferenceConfigSelector, Input, Ban as Ir, MoveHorizontal as It, ItemFormDialog, SkipBack as J, CloudRain as Jn, Mail as Jt, SlidersHorizontal as K, KebabMenu, KeyValueList, CloudSun as Kn, Activity as Kr, Maximize2 as Kt, Sunrise as L, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LayeredSettingsForm, LightHeroCard, LightInlineControl, DoorOpen as Ln, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, Baby as Lr, MousePointerClick as Lt, ToggleRight as M, MEDIA_GRID, MODE_COLOR, MaskShapeCanvas, MediaCard, MediaGrid, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, ExternalLink as Mn, MobileDrawer, ModelPicker, MotionZonesSettings, BatteryMedium as Mr, Navigation as Mt, ToggleLeft as N, NAVIGATION_DRIVE_INTERVAL_MS, NODE_COLOR_IDS, NatResultCard, NavigationPanel, NetworkLinkBadge, EllipsisVertical as Nn, NodeMultiSelectField, NodePicker, NodeSelectField, NotificationTargetSelectField, NotificationTargetsField, BatteryLow as Nr, Music as Nt, TrendingUp as O, OPTION_SELECT_SEARCH_MIN_OPTIONS, OfflineBadge, Feather as On, OptionSelect, Bell as Or, PawPrint as Ot, Thermometer 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, Droplets as Pn, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, BatteryFull as Pr, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, ProviderEntryPills, Move as Pt, PtzPanel, ShieldOff as Q, Clapperboard as Qn, QrCode, LoaderCircle as Qt, Sun as R, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RECORD_ENTRY_KIND_PARAM, RECORD_ENTRY_OWNER_PARAM, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, ROOT_DETECTOR_STEP_ID, RadialGauge, RecordEntriesHub, RecordEntriesPanel, RecordedPlaybackProvider, RecordingPanel, ResponseLog, RetrainReviewBadge, DoorClosed as Rn, RoleDisplayDefaultsFromServer, RoleDisplayDefaultsProvider, RoleNodePill, RootModelSourceControl, RootSuppliedModelNote, ArrowUp as Rr, Moon as Rt, RunReport, 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, STORAGE_RECORDS_KIND_PARAM, STORAGE_RECORDS_OWNER_PARAM, SceneMonitorEditor, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, SecretFieldControl, SecretRevealProvider, SectionCard, SectionToolbar, SectionedPage, SegmentedChoice, Select, SelectedChip, SemanticBadge, SendFrameToTrainingButton, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideToggle, Footprints as Sn, SnapshotButton, SortHeaderButton, Box as Sr, Play as St, StableTabPanel, StatCard, StateValuesStream, StatusBadge, StepDetailDock, StepInspectorPanel, StepModelRow, StepTimings, Stepper, StorageRecordsHub, 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, TimezoneSelector, FlashlightOff as Tn, Tooltip, TooltipContent, TooltipTrigger, Blinds as Tr, TrainingBaseModelPicker, TrainingCollectionPicker, Pin as Tt, Sparkles as U, UiTextProvider, UiTrans, Copy as Un, UnitPicker, ArrowDownToLine as Ur, MessageSquare as Ut, Square as V, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, Crosshair as Vn, VodPlaybackProvider, ArrowLeft as Vr, Minimize2 as Vt, Snowflake as W, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, Cog as Wn, AlarmSmoke as Wr, Menu as Wt, Ship as X, CloudFog as Xn, LockOpen as Xt, Siren as Y, CloudLightning as Yn, Lock as Yt, Shield as Z, Clock as Zn, ZoneEditingProvider, LocateFixed as Zt, UtensilsCrossed as _, Grid2x2 as _n, Car as _r, Puzzle as _t, Wrench as a, acceleratorLabel, acceleratorShortLabel, agentColumnKey, allDeviceTypeFilterOptions, Laugh as an, applyFleetQueryDefaults, applyPickerFilters, CircleCheck as ar, ariaSortForColumn, assignNodeColorId, ScrollText as at, UserCheck as b, badgeFor, bindsToModel, Gamepad2 as bn, Bus as br, Plug as bt, buildColorByNodeId, buildPeerConnectionConfig, buildStepTreeFromSchema, Wifi as c, catalogHasDraft, childEntityId, childListName, chipOverflow, classifyAddressScope, classifyCapability, classifySessionVerdict, clearPickerGroup, clusterRootModelIds, cn, colorIdForNode, columnsForContext, compareSrflxMappings, computePageButtons, containerChildToRef, countableDevices, coverHighlight, coverageLine, ChevronsUpDown as cr, createAddonI18n, createSharedContext, createTheme, Sailboat as ct, currentAddonLanguage, cursorFractionFor, WifiLow as d, darkColors, dataTableFacetGroups, dataTableFacets, defaultOfField, defaultSelectClusterRoots, defaultSingleClusterRoot, defaultTheme, defaultUiText, deriveDeviceKind, deriveWebrtcDebugStats, describeDeviceSelector, deviceIntegrationResolver, deviceListStateOf, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, House as dn, dockBox, ChevronRight as dr, draftFromQuery, RotateCcw as dt, effectivePageSize, emptyDevicesWidens, emptySessionRun, ListChecks as en, ensureMfHostInit, CircleStop as er, ShieldAlert as et, eventKindLabel, WifiHigh as f, filterDataTableRows, filterDeviceOptions, filterOptions as filterOptionSelectOptions, filterPickerDevices, finalizeSessionRun, findTimezone, flattenPickerGrouping, flattenPickerRows, fleetViewOf, Hash as fn, formatControlDateTime, formatLastSeen, formatNumeric, formatSettingValue, ChevronLeft as fr, freezeVerdict, RefreshCw as ft, fuzzyMatch, Vibrate as g, getClassColor, getPhaseVisual, GripHorizontal as gn, Cast as gr, groupAgentColumns, groupChildrenByLayout, groupPickerDevices, groupPickerDevicesBy, QrCode$1 as gt, Volume2 as h, hardwareLabel, Hammer as hn, Cat as hr, Radar as ht, hubOrigin, hubPath, hubUrl, hubWsUrl, humanDuration, humidifierTint, X as i, iconGlyphsFailed, iconGlyphsLoaded, LayoutGrid as in, initialScrubState, insertAtSelection, CircleDot as ir, isAbsentProvider, isDataTableFilterActive, isFieldVisible, isGroupExpanded, isKeychainFieldValue, isRedactedSecret, isSecretField, isValueField, Search as it, Tractor as j, EyeOff as jn, BatteryWarning as jr, Network as jt, Trash2 as k, Fan as kn, BellRing as kr, Pause as kt, WifiZero as l, lawnMowerActivityMeta, lightColors, Image as ln, loadIconGlyphs, loadRemoteBundle, ChevronsDownUp as lr, Route as lt, lucideExportName, VolumeX as m, makeScrubBridge, mapRootDetectorPlacements, mergeSecretForSubmit, metadataEntries, metadataString, mirror, Hand as mn, mountAddonPage, mountPath, Check as mr, RadioTower as mt, ZoomIn as n, nextGridPosition, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, Lightbulb as nn, nodeColorClass, nodeSoftBgClass, nodeTextColorClass, normalizeForSearch, normalizeLanguage, CirclePlus as nr, Settings as nt, Workflow as o, offListSelections, Info as on, openTopLayer, optionSearchText as optionSelectSearchText, CircleCheckBig as or, orphanDeviceLabel, Scan as ot, overrideEntityIdFromLink, Waves as p, pageRows, pageSizeLabel, paginateRows, parentDetailOf, parseIceCandidate, parsePickerGroupBy, parseRecordedServerMessage, partitionSelected as partitionOptionSelectSelected, partitionSuggested, pickerFacetFilterShown, pickerFacetKey, pickerFacetOptions, pickerFiltersActive, pickerGroupKey, pickerHiddenSelectedCount, pickerLocationKey, pickerQueryTokens, pickerRowFacts, pickerSearchText, pickerZoneFilterSuspended, pinnedStreamChoices, placePopover, HardDrive as pn, ChevronDown as pr, providerIcons, Radio as pt, SkipForward as q, CloudSnow as qn, MapPin as qt, Zap as r, readStoredGroupBy, reduceSessionRun, registerAddonBundle, renderMarkup, renderTagged, resetHubMountForTests, resetPickerFilters, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDeviceIntegration, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolveSearchable as resolveOptionSelectSearchable, resolveParentNames, resolvePrimaryChild, resolveSelectedDevices, resolveSensorDisplay, resolveStepDefaultModel, retrainReviewBadgeLook, Leaf as rn, roiTooLarge, rootSourceState, routerBasename, CirclePause as rr, Server as rt, Wind as s, sameLocationSuggestions, scrubReducer, searchSteps, secretDisplayValue, secretSubmitValue, selectPickerGroup, selectedDeviceOptions, serializeRecordedCommand, settingsModelIdFor, shouldCommit, shouldEmit, shouldShowAddNewFooter, shouldShowUseQueryRow, shouldUseSingleNode, showsNoCamerasHint, Inbox as sn, sortRows, sortRowsByColumn, CircleAlert as sr, Save as st, statusIcons, statusLine, stepFieldDomId, stepHasModelForFormat, stepLocalFields, stepModelOptions, stripParentNamePrefix, summarizeHubCandidates, ZoomOut as t, tabForSelector, tankAlert, themeToCss, themeToRootCss, Link2 as tn, toStationaryOverlayBox, toggleDataTableFacet, toggleDataTableGroupFacet, togglePickerDevice, togglePickerKey, CircleQuestionMark as tr, trainingRefusalText, translateAddonKey, trpc, Share2 as tt, typeLabel, WifiOff as u, ImageOff as un, ChevronUp as ur, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsGetIntegrationSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonT, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCancelJob, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetJob, useAddonsGetLastRestart, useAddonsGetLogs, 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, 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, useDeviceHistoryGetDeviceEnabled, useDeviceHistoryGetStatus, useDeviceHistoryListNodeSeries, useDeviceHistoryListSeries, useDeviceHistoryQuery, 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, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateClaimFields, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetNativeCapSlice, useDeviceStateGetSnapshot, useDeviceStateListClaims, useDeviceStatePatchOwnedFields, useDeviceStateReleaseClaim, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDisplayIconResolver, 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, 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, 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, usePipelineExecutorClearDeviceOverrides, usePipelineExecutorClearModelBoundDeviceOverrides, usePipelineExecutorDeleteModel, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, 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, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraDetectionSource, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, 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, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraSensors, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepSettings, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetLoadBalancingShares, 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, 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, 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, useTrainingListJobs, useTrainingPlanJob, useTrainingRegisterResult, useTrainingRollbackCanary, useTrainingStartJob, useTrainingStartJobBatch, useTurnProviderGetTurnServers, useUiText, useUpdateGetStatus, useUpdateInstallUpdate, useUrlQueryParam, useUserManagementConfirmTotp, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementFindUserByExternalIdentity, useUserManagementGetTotpStatus, useUserManagementListApiKeys, useUserManagementListExternalIdentities, useUserManagementListOauthSessions, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementMigrateRawSecrets, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeOauthSession, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUnlinkExternalIdentity, useUserManagementUpdateUser, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, 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, RotateCw as ut, Users as v, vacuumStateMeta, validateScopes, valveStateMeta, variantLabel, GraduationCap as vn, Camera as vr, Power as vt, Type as w, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint, withResolvedParentDetail, withUseRootModel, Flashlight as wn, Bone as wr, writeStoredGroupBy, Pipette as wt, Upload as x, Funnel as xn, Bug as xr, Plus as xt, User as y, Gauge as yn, Cable as yr, PowerOff as yt, SunMedium as z, Dog as zn, ArrowUpToLine as zr, MonitorPlay as zt };
|
|
64387
|
+
export { ShieldOff as $, Clock as $n, LoaderCircle as $t, TrainFront as A, AddProviderEntryDialog, AddonGlobalSettingsForm, AdminLinkQuickAction, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, Feather as An, AppShell, Bell as Ar, ArcKnob, Pause as At, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, SunMedium as B, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, BackToStepsButton, Badge, BatteryBadge, DoorClosed as Bn, BottomSheet, ArrowUp as Br, Breadcrumb, BrightnessPanel, MonitorPlay as Bt, Button, ButtonControl, ButtonHeroCard, Undo2 as C, CENTER, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, Checkbox, ChildSectionAccordion, ClimatePanel, Funnel as Cn, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigNotificationTargetMultiSelectFieldView, ConfigNotificationTargetSelectFieldView, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, Bug as Cr, Play as Ct, CustomFieldRenderersProvider, TrendingDown as D, 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, DataTable, DataTableFilterBar, DataTablePager, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceExportSetup, DeviceFilterBar, DeviceGrid, DeviceItem, DeviceList, DeviceMultiSelectField, DevicePicker, DeviceQuickDetailProvider, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, DevicesFailedLine, DevicesLoadingLine, DevicesWidenWarning, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, FlashlightOff as Dn, DoorbellRecentPanel, Blinds as Dr, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, Phone as Dt, DummyHeroCard, DummyInline, TriangleAlert as E, EMPTY_DATA_TABLE_FILTER, EVENT_KIND_ICONS, EmptyState, Flashlight as En, EndpointResultsCard, EndpointTestCard, EntryJsonSchemaForm, Bone 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, BatteryLow as Fr, Move as Ft, Snowflake as G, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GateBadge, GateControl, Copy as Gn, ArrowDownToLine as Gr, GripTrack, GroupedModelSelector, Menu as Gt, Square as H, HOST_WIDGETS, HUB_SESSION_RUN_MS, HlsVideo, Database as Hn, HoverZoomImage, ArrowRight 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, BatteryFull as Ir, MoveVertical as It, ItemFormDialog, SkipForward as J, CloudSun as Jn, Activity as Jr, MapPin as Jt, Smartphone as K, KebabMenu, KeyValueList, Cog as Kn, AlarmSmoke as Kr, Megaphone as Kt, Tag as L, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LayeredSettingsForm, LightHeroCard, LightInlineControl, Droplet as Ln, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, Bath as Lr, MoveHorizontal as Lt, ToggleRight as M, MEDIA_GRID, MODE_COLOR, MaskShapeCanvas, MediaCard, MediaGrid, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, Eye as Mn, MobileDrawer, ModelPicker, MotionZonesSettings, Battery 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, BatteryWarning as Nr, Navigation as Nt, TrendingUp as O, OPTION_SELECT_SEARCH_MIN_OPTIONS, OfflineBadge, Flame as On, OptionSelect, Bird 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, BatteryMedium 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, RECORD_ENTRY_KIND_PARAM, RECORD_ENTRY_OWNER_PARAM, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, ROOT_DETECTOR_STEP_ID, RadialGauge, RecordEntriesHub, RecordEntriesPanel, RecordedPlaybackProvider, RecordingPanel, ResponseLog, RetrainReviewBadge, Download as Rn, RoleDisplayDefaultsFromServer, RoleDisplayDefaultsProvider, RoleNodePill, RootModelSourceControl, RootSuppliedModelNote, Ban as Rr, MousePointerClick as Rt, RunReport, 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, STORAGE_RECORDS_KIND_PARAM, STORAGE_RECORDS_OWNER_PARAM, SceneMonitorEditor, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, SecretFieldControl, SecretRevealProvider, SectionCard, SectionToolbar, SectionedPage, SegmentedChoice, Select, SelectedChip, SemanticBadge, SendFrameToTrainingButton, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideToggle, Gamepad2 as Sn, SnapshotButton, SortHeaderButton, Bus as Sr, Plus as St, StableTabPanel, StatCard, StateValuesStream, StatusBadge, StepDetailDock, StepInspectorPanel, StepModelRow, StepTimings, Stepper, StorageRecordsHub, 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, TimezoneSelector, FlaskConical as Tn, Tooltip, TooltipContent, TooltipTrigger, Bot as Tr, TrainingBaseModelPicker, TrainingCollectionPicker, Pipette as Tt, Sprout as U, UiTextProvider, UiTrans, Crosshair as Un, UnitPicker, ArrowLeft as Ur, Mic as Ut, Star as V, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, Dog as Vn, VodPlaybackProvider, ArrowUpToLine as Vr, Minus as Vt, Sparkles as W, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, Cpu as Wn, ArrowDown as Wr, MessageSquare as Wt, Siren as X, CloudRain as Xn, Lock as Xt, SkipBack as Y, CloudSnow as Yn, Mail as Yt, Ship as Z, CloudLightning as Zn, ZoneEditingProvider, LockOpen as Zt, UtensilsCrossed as _, Hammer as _n, Cat as _r, QrCode$1 as _t, Wrench as a, acceleratorLabel, acceleratorShortLabel, agentColumnKey, allDeviceTypeFilterOptions, LayoutGrid as an, applyFleetQueryDefaults, applyPickerFilters, CirclePause as ar, ariaSortForColumn, assignNodeColorId, Search as at, UserCheck as b, badgeFor, bindsToModel, GraduationCap as bn, Camera as br, PowerOff as bt, buildColorByNodeId, buildPeerConnectionConfig, buildStepTreeFromSchema, Wifi as c, catalogHasDraft, childEntityId, childListName, chipOverflow, classifyAddressScope, classifyCapability, classifySessionVerdict, clearPickerGroup, clusterRootModelIds, cn, colorIdForNode, columnsForContext, compareSrflxMappings, computePageButtons, containerChildToRef, countableDevices, coverHighlight, coverageLine, CircleCheckBig as cr, createAddonI18n, createSharedContext, createTheme, Save as ct, currentAddonLanguage, cursorFractionFor, WifiLow as d, darkColors, dataTableFacetGroups, dataTableFacets, 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, ensureMfHostInit, Clapperboard as er, ShieldCheck as et, eventKindLabel, WifiHigh as f, filterDataTableRows, filterDeviceOptions, filterOptions as filterOptionSelectOptions, filterPickerDevices, finalizeSessionRun, findTimezone, flattenPickerGrouping, flattenPickerRows, fleetViewOf, House as fn, formatControlDateTime, formatLastSeen, formatNumeric, formatSettingValue, ChevronUp as fr, freezeVerdict, RotateCcw as ft, fuzzyMatch, Vibrate as g, getClassColor, getPhaseVisual, Hand as gn, Check as gr, groupAgentColumns, groupChildrenByLayout, groupPickerDevices, groupPickerDevicesBy, Radar as gt, Volume2 as h, hardwareLabel, HardDrive as hn, ChevronDown as hr, RadioTower as ht, hubOrigin, hubPath, hubUrl, hubWsUrl, humanDuration, humidifierTint, X as i, iconGlyphsFailed, iconGlyphsLoaded, Leaf as in, initialScrubState, insertAtSelection, CirclePlus as ir, isAbsentProvider, isDataTableFilterActive, isFieldVisible, isGroupExpanded, isKeychainFieldValue, isRedactedSecret, isSecretField, isValueField, Server as it, Tractor as j, Fan as jn, BellRing as jr, Package as jt, Trash2 as k, Film as kn, Bike as kr, PawPrint as kt, WifiZero as l, lawnMowerActivityMeta, lightColors, Inbox as ln, loadIconGlyphs, loadRemoteBundle, CircleAlert as lr, Sailboat as lt, lucideExportName, VolumeX as m, makeScrubBridge, mapRootDetectorPlacements, mergeSecretForSubmit, metadataEntries, metadataString, mirror, Hash as mn, mountAddonPage, mountPath, ChevronLeft as mr, Radio as mt, ZoomIn as n, nextGridPosition, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, Link2 as nn, nodeColorClass, nodeSoftBgClass, nodeTextColorClass, normalizeForSearch, normalizeLanguage, CircleStop as nr, Share2 as nt, Workflow as o, offListSelections, Laugh as on, openTopLayer, optionSearchText as optionSelectSearchText, CircleDot as or, orphanDeviceLabel, ScrollText as ot, overrideEntityIdFromLink, Waves as p, pageRows, pageSizeLabel, paginateRows, parentDetailOf, parseIceCandidate, parsePickerGroupBy, parseRecordedServerMessage, partitionSelected as partitionOptionSelectSelected, partitionSuggested, pickerFacetFilterShown, pickerFacetKey, pickerFacetOptions, pickerFiltersActive, pickerGroupKey, pickerHiddenSelectedCount, pickerLocationKey, pickerQueryTokens, pickerRowFacts, pickerSearchText, pickerZoneFilterSuspended, pinnedStreamChoices, placePopover, Heater as pn, ChevronRight as pr, providerIcons, RefreshCw as pt, SlidersHorizontal as q, Cloud as qn, AirVent as qr, Maximize2 as qt, Zap as r, readStoredGroupBy, reduceSessionRun, registerAddonBundle, renderMarkup, renderTagged, resetHubMountForTests, resetPickerFilters, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDeviceIntegration, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolveSearchable as resolveOptionSelectSearchable, resolveParentNames, resolvePrimaryChild, resolveSelectedDevices, resolveSensorDisplay, resolveStepDefaultModel, retrainReviewBadgeLook, Lightbulb as rn, roiTooLarge, rootSourceState, routerBasename, CircleQuestionMark as rr, Settings as rt, Wind as s, sameLocationSuggestions, scrubReducer, searchSteps, secretDisplayValue, secretSubmitValue, selectPickerGroup, selectedDeviceOptions, serializeRecordedCommand, settingsModelIdFor, shouldCommit, shouldEmit, shouldShowAddNewFooter, shouldShowUseQueryRow, shouldUseSingleNode, showsNoCamerasHint, Info as sn, sortRows, sortRowsByColumn, CircleCheck as sr, Scan as st, statusIcons, statusLine, stepFieldDomId, stepHasModelForFormat, stepLocalFields, stepModelOptions, stripParentNamePrefix, summarizeHubCandidates, ZoomOut as t, tabForSelector, tankAlert, themeToCss, themeToRootCss, ListChecks as tn, toStationaryOverlayBox, toggleDataTableFacet, toggleDataTableGroupFacet, togglePickerDevice, togglePickerKey, CircleX as tr, trainingRefusalText, translateAddonKey, trpc, ShieldAlert as tt, typeLabel, WifiOff as u, Image as un, ChevronsUpDown as ur, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsGetIntegrationSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonT, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCancelJob, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetJob, useAddonsGetLastRestart, useAddonsGetLogs, 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, 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, useDeviceHistoryGetDeviceEnabled, useDeviceHistoryGetStatus, useDeviceHistoryListNodeSeries, useDeviceHistoryListSeries, useDeviceHistoryQuery, 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, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateClaimFields, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetNativeCapSlice, useDeviceStateGetSnapshot, useDeviceStateListClaims, useDeviceStatePatchOwnedFields, useDeviceStateReleaseClaim, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDishwasherGetStatus, useDishwasherPause, useDishwasherSetHalfLoad, useDishwasherSetHygienePlus, useDishwasherSetOption, useDishwasherSetPower, useDishwasherSetProgram, useDishwasherStart, useDishwasherStop, useDisplayIconResolver, 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, useHeatingValveGetStatus, 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, 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, usePipelineExecutorClearDeviceOverrides, usePipelineExecutorClearModelBoundDeviceOverrides, usePipelineExecutorDeleteModel, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, 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, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraDetectionSource, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, 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, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraSensors, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepSettings, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetLoadBalancingShares, 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, 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, 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, useTrainingListJobs, useTrainingPlanJob, useTrainingRegisterResult, useTrainingRollbackCanary, useTrainingStartJob, useTrainingStartJobBatch, useTurnProviderGetTurnServers, useUiText, useUpdateGetStatus, useUpdateInstallUpdate, useUrlQueryParam, useUserManagementConfirmTotp, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementFindUserByExternalIdentity, useUserManagementGetTotpStatus, useUserManagementListApiKeys, useUserManagementListExternalIdentities, useUserManagementListOauthSessions, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementMigrateRawSecrets, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeOauthSession, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUnlinkExternalIdentity, useUserManagementUpdateUser, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, 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, GripHorizontal as vn, Cast as vr, Puzzle as vt, Type as w, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint, withResolvedParentDetail, withUseRootModel, Footprints as wn, Box as wr, writeStoredGroupBy, Plane as wt, Upload as x, Gauge as xn, Cable as xr, Plug as xt, User as y, Grid2x2 as yn, Car as yr, Power as yt, Sun as z, DoorOpen as zn, Baby as zr, Moon as zt };
|