@camstack/ui-library 1.2.375 → 1.2.377
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/CHANGELOG.md +18 -0
- package/dist/{MotionZonesSettings-Zcfa5c9l.js → MotionZonesSettings-BvpjmW6y.js} +1 -1
- package/dist/{PrivacyMaskSettings-B_X42yzN.js → PrivacyMaskSettings-D7o4tx8e.js} +1 -1
- package/dist/{SceneMonitorEditor-C8YXVzYI.js → SceneMonitorEditor-BwelmHlF.js} +1 -1
- package/dist/composites/cap-settings/PowerMeterLine.d.ts +10 -0
- package/dist/composites/cap-settings/index.d.ts +1 -0
- package/dist/composites/device-controls/appliance-control.d.ts +0 -2
- package/dist/composites/device-controls/media-player-hero-card.d.ts +15 -10
- package/dist/composites/device-controls/media-player-hero-parts.d.ts +18 -0
- package/dist/composites/device-controls/media-player-panel.d.ts +1 -1
- package/dist/composites/device-controls/media-player-view.d.ts +66 -0
- package/dist/composites/index.d.ts +1 -0
- package/dist/generated/system-hooks.d.ts +14 -0
- package/dist/{icons-DXwPEKdJ.cjs → icons-BWpVdTJu.cjs} +3 -83
- package/dist/{icons-e-xohmFb.js → icons-cIFSolkx.js} +1 -81
- package/dist/index.cjs +781 -156
- package/dist/index.js +776 -162
- package/dist/primitives/bottom-sheet.d.ts +1 -1
- package/dist/primitives/mobile-drawer.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3447,6 +3447,58 @@ var RefreshCw = createLucideIcon("refresh-cw", [
|
|
|
3447
3447
|
* This source code is licensed under the ISC license.
|
|
3448
3448
|
* See the LICENSE file in the root directory of this source tree.
|
|
3449
3449
|
*/
|
|
3450
|
+
var Repeat1 = createLucideIcon("repeat-1", [
|
|
3451
|
+
["path", {
|
|
3452
|
+
d: "m17 2 4 4-4 4",
|
|
3453
|
+
key: "nntrym"
|
|
3454
|
+
}],
|
|
3455
|
+
["path", {
|
|
3456
|
+
d: "M3 11v-1a4 4 0 0 1 4-4h14",
|
|
3457
|
+
key: "84bu3i"
|
|
3458
|
+
}],
|
|
3459
|
+
["path", {
|
|
3460
|
+
d: "m7 22-4-4 4-4",
|
|
3461
|
+
key: "1wqhfi"
|
|
3462
|
+
}],
|
|
3463
|
+
["path", {
|
|
3464
|
+
d: "M21 13v1a4 4 0 0 1-4 4H3",
|
|
3465
|
+
key: "1rx37r"
|
|
3466
|
+
}],
|
|
3467
|
+
["path", {
|
|
3468
|
+
d: "M11 10h1v4",
|
|
3469
|
+
key: "70cz1p"
|
|
3470
|
+
}]
|
|
3471
|
+
]);
|
|
3472
|
+
/**
|
|
3473
|
+
* @license lucide-react v0.576.0 - ISC
|
|
3474
|
+
*
|
|
3475
|
+
* This source code is licensed under the ISC license.
|
|
3476
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3477
|
+
*/
|
|
3478
|
+
var Repeat = createLucideIcon("repeat", [
|
|
3479
|
+
["path", {
|
|
3480
|
+
d: "m17 2 4 4-4 4",
|
|
3481
|
+
key: "nntrym"
|
|
3482
|
+
}],
|
|
3483
|
+
["path", {
|
|
3484
|
+
d: "M3 11v-1a4 4 0 0 1 4-4h14",
|
|
3485
|
+
key: "84bu3i"
|
|
3486
|
+
}],
|
|
3487
|
+
["path", {
|
|
3488
|
+
d: "m7 22-4-4 4-4",
|
|
3489
|
+
key: "1wqhfi"
|
|
3490
|
+
}],
|
|
3491
|
+
["path", {
|
|
3492
|
+
d: "M21 13v1a4 4 0 0 1-4 4H3",
|
|
3493
|
+
key: "1rx37r"
|
|
3494
|
+
}]
|
|
3495
|
+
]);
|
|
3496
|
+
/**
|
|
3497
|
+
* @license lucide-react v0.576.0 - ISC
|
|
3498
|
+
*
|
|
3499
|
+
* This source code is licensed under the ISC license.
|
|
3500
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3501
|
+
*/
|
|
3450
3502
|
var RotateCcw = createLucideIcon("rotate-ccw", [["path", {
|
|
3451
3503
|
d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",
|
|
3452
3504
|
key: "1357e3"
|
|
@@ -3822,6 +3874,34 @@ var Ship = createLucideIcon("ship", [
|
|
|
3822
3874
|
* This source code is licensed under the ISC license.
|
|
3823
3875
|
* See the LICENSE file in the root directory of this source tree.
|
|
3824
3876
|
*/
|
|
3877
|
+
var Shuffle = createLucideIcon("shuffle", [
|
|
3878
|
+
["path", {
|
|
3879
|
+
d: "m18 14 4 4-4 4",
|
|
3880
|
+
key: "10pe0f"
|
|
3881
|
+
}],
|
|
3882
|
+
["path", {
|
|
3883
|
+
d: "m18 2 4 4-4 4",
|
|
3884
|
+
key: "pucp1d"
|
|
3885
|
+
}],
|
|
3886
|
+
["path", {
|
|
3887
|
+
d: "M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22",
|
|
3888
|
+
key: "1ailkh"
|
|
3889
|
+
}],
|
|
3890
|
+
["path", {
|
|
3891
|
+
d: "M2 6h1.972a4 4 0 0 1 3.6 2.2",
|
|
3892
|
+
key: "km57vx"
|
|
3893
|
+
}],
|
|
3894
|
+
["path", {
|
|
3895
|
+
d: "M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45",
|
|
3896
|
+
key: "os18l9"
|
|
3897
|
+
}]
|
|
3898
|
+
]);
|
|
3899
|
+
/**
|
|
3900
|
+
* @license lucide-react v0.576.0 - ISC
|
|
3901
|
+
*
|
|
3902
|
+
* This source code is licensed under the ISC license.
|
|
3903
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3904
|
+
*/
|
|
3825
3905
|
var Siren = createLucideIcon("siren", [
|
|
3826
3906
|
["path", {
|
|
3827
3907
|
d: "M7 18v-6a5 5 0 1 1 10 0v6",
|
|
@@ -5970,7 +6050,7 @@ function lucideExportName(key) {
|
|
|
5970
6050
|
function loadIconGlyphs() {
|
|
5971
6051
|
if (fullTable !== void 0) return Promise.resolve();
|
|
5972
6052
|
if (failure$1 !== void 0) return Promise.reject(failure$1);
|
|
5973
|
-
pending ??= import("./icons-
|
|
6053
|
+
pending ??= import("./icons-cIFSolkx.js").then((module) => {
|
|
5974
6054
|
fullTable = module;
|
|
5975
6055
|
publish();
|
|
5976
6056
|
}, (error) => {
|
|
@@ -9715,14 +9795,15 @@ function BottomSheet({ open, onClose, title, children, className }) {
|
|
|
9715
9795
|
document.body.style.overflow = "";
|
|
9716
9796
|
};
|
|
9717
9797
|
}, [open, onClose]);
|
|
9798
|
+
if (!open) return null;
|
|
9718
9799
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", {
|
|
9719
|
-
className:
|
|
9800
|
+
className: "fixed inset-0 z-40 bg-black/50 animate-in fade-in duration-200",
|
|
9720
9801
|
onClick: onClose,
|
|
9721
9802
|
"aria-hidden": "true"
|
|
9722
9803
|
}), /* @__PURE__ */ jsxs("div", {
|
|
9723
9804
|
role: "dialog",
|
|
9724
9805
|
"aria-modal": "true",
|
|
9725
|
-
className: cn("fixed inset-x-0 bottom-0 z-50 flex flex-col bg-background-elevated border-t border-border rounded-t-xl shadow-2xl
|
|
9806
|
+
className: cn("fixed inset-x-0 bottom-0 z-50 flex flex-col bg-background-elevated border-t border-border rounded-t-xl shadow-2xl animate-in slide-in-from-bottom duration-200 ease-out pb-[env(safe-area-inset-bottom)]", "max-h-[80dvh]", className),
|
|
9726
9807
|
children: [
|
|
9727
9808
|
/* @__PURE__ */ jsx("div", {
|
|
9728
9809
|
className: "flex justify-center pt-2 pb-1",
|
|
@@ -11828,6 +11909,18 @@ var useLockControlUnlock = /*#__PURE__*/ alias(() => trpc.lockControl.unlock.use
|
|
|
11828
11909
|
var useLockControlOpen = /*#__PURE__*/ alias(() => trpc.lockControl.open.useMutation);
|
|
11829
11910
|
/** Generated alias around `trpc.lockControl.getStatus.useQuery`. */
|
|
11830
11911
|
var useLockControlGetStatus = /*#__PURE__*/ alias(() => trpc.lockControl.getStatus.useQuery);
|
|
11912
|
+
/** Generated alias around `trpc.mediaPlayer.turnOn.useMutation`. */
|
|
11913
|
+
var useMediaPlayerTurnOn = /*#__PURE__*/ alias(() => trpc.mediaPlayer.turnOn.useMutation);
|
|
11914
|
+
/** Generated alias around `trpc.mediaPlayer.turnOff.useMutation`. */
|
|
11915
|
+
var useMediaPlayerTurnOff = /*#__PURE__*/ alias(() => trpc.mediaPlayer.turnOff.useMutation);
|
|
11916
|
+
/** Generated alias around `trpc.mediaPlayer.volumeUp.useMutation`. */
|
|
11917
|
+
var useMediaPlayerVolumeUp = /*#__PURE__*/ alias(() => trpc.mediaPlayer.volumeUp.useMutation);
|
|
11918
|
+
/** Generated alias around `trpc.mediaPlayer.volumeDown.useMutation`. */
|
|
11919
|
+
var useMediaPlayerVolumeDown = /*#__PURE__*/ alias(() => trpc.mediaPlayer.volumeDown.useMutation);
|
|
11920
|
+
/** Generated alias around `trpc.mediaPlayer.channelUp.useMutation`. */
|
|
11921
|
+
var useMediaPlayerChannelUp = /*#__PURE__*/ alias(() => trpc.mediaPlayer.channelUp.useMutation);
|
|
11922
|
+
/** Generated alias around `trpc.mediaPlayer.channelDown.useMutation`. */
|
|
11923
|
+
var useMediaPlayerChannelDown = /*#__PURE__*/ alias(() => trpc.mediaPlayer.channelDown.useMutation);
|
|
11831
11924
|
/** Generated alias around `trpc.mediaPlayer.play.useMutation`. */
|
|
11832
11925
|
var useMediaPlayerPlay = /*#__PURE__*/ alias(() => trpc.mediaPlayer.play.useMutation);
|
|
11833
11926
|
/** Generated alias around `trpc.mediaPlayer.pause.useMutation`. */
|
|
@@ -12802,6 +12895,8 @@ var useRemoteSetConfig = /*#__PURE__*/ alias(() => trpc.remote.setConfig.useMuta
|
|
|
12802
12895
|
var useRemoteListCommands = /*#__PURE__*/ alias(() => trpc.remote.listCommands.useQuery);
|
|
12803
12896
|
/** Generated alias around `trpc.remote.sendCommand.useMutation`. */
|
|
12804
12897
|
var useRemoteSendCommand = /*#__PURE__*/ alias(() => trpc.remote.sendCommand.useMutation);
|
|
12898
|
+
/** Generated alias around `trpc.remote.getAssumedStatus.useQuery`. */
|
|
12899
|
+
var useRemoteGetAssumedStatus = /*#__PURE__*/ alias(() => trpc.remote.getAssumedStatus.useQuery);
|
|
12805
12900
|
/** Generated alias around `trpc.remote.sendMediaCommand.useMutation`. */
|
|
12806
12901
|
var useRemoteSendMediaCommand = /*#__PURE__*/ alias(() => trpc.remote.sendMediaCommand.useMutation);
|
|
12807
12902
|
/** Generated alias around `trpc.remoteLayoutComponents.listComponents.useQuery`. */
|
|
@@ -27722,6 +27817,92 @@ function NavigationPanel({ deviceId }) {
|
|
|
27722
27817
|
});
|
|
27723
27818
|
}
|
|
27724
27819
|
//#endregion
|
|
27820
|
+
//#region src/composites/cap-settings/PowerMeterLine.tsx
|
|
27821
|
+
/**
|
|
27822
|
+
* PowerMeterLine — the ONE place a device's electrical draw is shown (D1004):
|
|
27823
|
+
* a slim line directly under the device page's hero card, for every device
|
|
27824
|
+
* bound to the `power-meter` capability, whatever its type. The cap declares
|
|
27825
|
+
* `ui: { kind:'widget', widgetId:'host/power-meter-line', placement:'hero' }`;
|
|
27826
|
+
* no device-controls hero card draws watts itself
|
|
27827
|
+
* (`scripts/check-no-hero-self-drawn-power.ts`).
|
|
27828
|
+
*
|
|
27829
|
+
* A reading the device never reported is not drawn as a number: no slice, or
|
|
27830
|
+
* a slice with neither power nor energy, renders nothing; a missing field
|
|
27831
|
+
* (power but no energy, or the reverse) is simply absent, never `0` or `NaN`.
|
|
27832
|
+
*/
|
|
27833
|
+
/** A finite number, or null: the one gate between a slice field and the screen. */
|
|
27834
|
+
function known(value) {
|
|
27835
|
+
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
27836
|
+
}
|
|
27837
|
+
/** Whole watts below a kilowatt, one decimal above. */
|
|
27838
|
+
function formatPowerWatts(watts) {
|
|
27839
|
+
return Math.abs(watts) >= 1e3 ? {
|
|
27840
|
+
value: (watts / 1e3).toFixed(1),
|
|
27841
|
+
unit: "kW"
|
|
27842
|
+
} : {
|
|
27843
|
+
value: String(Math.round(watts)),
|
|
27844
|
+
unit: "W"
|
|
27845
|
+
};
|
|
27846
|
+
}
|
|
27847
|
+
/** Two decimals under 100 kWh, whole kWh above. */
|
|
27848
|
+
function formatEnergyKwh(kwh) {
|
|
27849
|
+
return Math.abs(kwh) >= 100 ? String(Math.round(kwh)) : kwh.toFixed(2);
|
|
27850
|
+
}
|
|
27851
|
+
function PowerMeterLine({ deviceId }) {
|
|
27852
|
+
const t = useUiText();
|
|
27853
|
+
const { slice } = useDeviceCapability({
|
|
27854
|
+
trpc: useSystem().trpcClient,
|
|
27855
|
+
deviceId,
|
|
27856
|
+
cap: (d) => d.powerMeter,
|
|
27857
|
+
slice: (d) => d.state.powerMeter
|
|
27858
|
+
});
|
|
27859
|
+
const power = known(slice?.power);
|
|
27860
|
+
const energy = known(slice?.energy);
|
|
27861
|
+
if (power === null && energy === null) return null;
|
|
27862
|
+
const drawing = power !== null && power > 0;
|
|
27863
|
+
const shown = power === null ? null : formatPowerWatts(power);
|
|
27864
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
27865
|
+
"data-testid": "power-meter-line",
|
|
27866
|
+
className: "flex items-center gap-3 rounded-lg border border-border bg-surface px-3 py-2",
|
|
27867
|
+
children: [
|
|
27868
|
+
/* @__PURE__ */ jsxs("span", {
|
|
27869
|
+
className: "relative flex h-5 w-5 shrink-0 items-center justify-center",
|
|
27870
|
+
children: [drawing && /* @__PURE__ */ jsx("span", {
|
|
27871
|
+
"aria-hidden": "true",
|
|
27872
|
+
"data-testid": "power-meter-pulse",
|
|
27873
|
+
className: "absolute inset-0 rounded-full bg-primary/20 motion-safe:animate-pulse"
|
|
27874
|
+
}), /* @__PURE__ */ jsx(Zap, {
|
|
27875
|
+
className: cn("relative h-3.5 w-3.5", drawing ? "text-primary" : "text-foreground-subtle"),
|
|
27876
|
+
"aria-hidden": true
|
|
27877
|
+
})]
|
|
27878
|
+
}),
|
|
27879
|
+
shown !== null && /* @__PURE__ */ jsxs("span", {
|
|
27880
|
+
"data-testid": "power-meter-power",
|
|
27881
|
+
className: "flex items-baseline gap-1 tabular-nums",
|
|
27882
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
27883
|
+
className: "text-lg font-semibold text-foreground",
|
|
27884
|
+
children: shown.value
|
|
27885
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
27886
|
+
className: "text-xs text-foreground-muted",
|
|
27887
|
+
children: shown.unit
|
|
27888
|
+
})]
|
|
27889
|
+
}),
|
|
27890
|
+
energy !== null && /* @__PURE__ */ jsxs("span", {
|
|
27891
|
+
"data-testid": "power-meter-energy",
|
|
27892
|
+
className: "ml-auto flex items-baseline gap-1 tabular-nums",
|
|
27893
|
+
title: t("uiLibrary.powerMeterLine.energy", "Energy"),
|
|
27894
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
27895
|
+
className: "text-sm text-foreground-muted",
|
|
27896
|
+
children: formatEnergyKwh(energy)
|
|
27897
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
27898
|
+
className: "text-xs text-foreground-subtle",
|
|
27899
|
+
children: "kWh"
|
|
27900
|
+
})]
|
|
27901
|
+
})
|
|
27902
|
+
]
|
|
27903
|
+
});
|
|
27904
|
+
}
|
|
27905
|
+
//#endregion
|
|
27725
27906
|
//#region src/lib/cap-error.ts
|
|
27726
27907
|
/**
|
|
27727
27908
|
* Shared capability-error utilities for the admin UI.
|
|
@@ -30695,11 +30876,12 @@ function RecordingPanel({ deviceId }) {
|
|
|
30695
30876
|
* `type:'widget'` ConfigField. `WidgetSlot` resolves these BEFORE the
|
|
30696
30877
|
* Module-Federation `WidgetRegistry`. ids are namespaced `host/<name>`. */
|
|
30697
30878
|
var HOST_WIDGETS = {
|
|
30698
|
-
"host/motion-zones-grid": lazy(() => import("./MotionZonesSettings-
|
|
30699
|
-
"host/privacy-mask-grid": lazy(() => import("./PrivacyMaskSettings-
|
|
30879
|
+
"host/motion-zones-grid": lazy(() => import("./MotionZonesSettings-BvpjmW6y.js").then((m) => ({ default: m.MotionZonesSettings }))),
|
|
30880
|
+
"host/privacy-mask-grid": lazy(() => import("./PrivacyMaskSettings-D7o4tx8e.js").then((m) => ({ default: m.PrivacyMaskSettings }))),
|
|
30700
30881
|
"host/ptz-panel": PtzPanel,
|
|
30701
30882
|
"host/navigation-panel": NavigationPanel,
|
|
30702
30883
|
"host/consumables-panel": ConsumablesPanel,
|
|
30884
|
+
"host/power-meter-line": PowerMeterLine,
|
|
30703
30885
|
"host/ptz-autotrack": AutotrackSection,
|
|
30704
30886
|
"host/recording-panel": RecordingPanel,
|
|
30705
30887
|
"host/camera-grid-layout": CameraGridLayoutEditor,
|
|
@@ -36420,7 +36602,8 @@ function MobileDrawer({ open, onClose, children, className, width = "w-64" }) {
|
|
|
36420
36602
|
document.body.style.overflow = "";
|
|
36421
36603
|
};
|
|
36422
36604
|
}, [open, onClose]);
|
|
36423
|
-
|
|
36605
|
+
if (!open) return null;
|
|
36606
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", {
|
|
36424
36607
|
className: "fixed inset-0 z-40 bg-black/50 animate-in fade-in duration-200",
|
|
36425
36608
|
onClick: onClose,
|
|
36426
36609
|
"aria-hidden": "true"
|
|
@@ -36428,7 +36611,7 @@ function MobileDrawer({ open, onClose, children, className, width = "w-64" }) {
|
|
|
36428
36611
|
ref: drawerRef,
|
|
36429
36612
|
role: "dialog",
|
|
36430
36613
|
"aria-modal": "true",
|
|
36431
|
-
className: cn("fixed inset-y-0 left-0 z-50 flex flex-col bg-surface border-r border-border shadow-2xl
|
|
36614
|
+
className: cn("fixed inset-y-0 left-0 z-50 flex flex-col bg-surface border-r border-border shadow-2xl animate-in slide-in-from-left duration-200 ease-out pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)]", width, className),
|
|
36432
36615
|
children
|
|
36433
36616
|
})] });
|
|
36434
36617
|
}
|
|
@@ -36513,7 +36696,7 @@ function AppShell({ sidebar, header, mobileLogo, mobileActions, children, classN
|
|
|
36513
36696
|
className: "flex flex-1 flex-col min-w-0",
|
|
36514
36697
|
children: [
|
|
36515
36698
|
isMobile && /* @__PURE__ */ jsxs("header", {
|
|
36516
|
-
className: "flex items-center h-12 border-b border-border px-3 shrink-0 bg-surface
|
|
36699
|
+
className: "flex items-center h-12 border-b border-border px-3 shrink-0 bg-surface",
|
|
36517
36700
|
children: [
|
|
36518
36701
|
/* @__PURE__ */ jsx("button", {
|
|
36519
36702
|
onClick: () => setDrawerOpen(true),
|
|
@@ -37035,8 +37218,8 @@ function pickWifiIcon(signalPercent) {
|
|
|
37035
37218
|
}
|
|
37036
37219
|
function signalColor(signalPercent) {
|
|
37037
37220
|
if (signalPercent === null) return "text-foreground-subtle";
|
|
37038
|
-
if (signalPercent <= 20) return "text-
|
|
37039
|
-
if (signalPercent <= 50) return "text-
|
|
37221
|
+
if (signalPercent <= 20) return "text-danger";
|
|
37222
|
+
if (signalPercent <= 50) return "text-warning";
|
|
37040
37223
|
return "text-foreground-subtle";
|
|
37041
37224
|
}
|
|
37042
37225
|
function NetworkLinkBadge({ status, className }) {
|
|
@@ -37047,15 +37230,16 @@ function NetworkLinkBadge({ status, className }) {
|
|
|
37047
37230
|
title: t("uiLibrary.networkLinkBadge.ethernet", "Network: ethernet"),
|
|
37048
37231
|
children: /* @__PURE__ */ jsx(Cable, { className: "h-3.5 w-3.5" })
|
|
37049
37232
|
});
|
|
37050
|
-
const
|
|
37051
|
-
const
|
|
37233
|
+
const reading = typeof status.signal === "number" && Number.isFinite(status.signal) ? status.signal : null;
|
|
37234
|
+
const Icon = status.type === "cellular" ? RadioTower : pickWifiIcon(reading);
|
|
37235
|
+
const signal = reading === null ? null : Math.round(reading);
|
|
37052
37236
|
const networkText = status.ssid ? t("uiLibrary.networkLinkBadge.typeSsid", "Network: {{type}} ({{ssid}})", {
|
|
37053
37237
|
type: status.type,
|
|
37054
37238
|
ssid: status.ssid
|
|
37055
37239
|
}) : t("uiLibrary.networkLinkBadge.type", "Network: {{type}}", { type: status.type });
|
|
37056
37240
|
const title = signal === null ? networkText : `${networkText} · ${t("uiLibrary.networkLinkBadge.signal", "signal {{percent}}%", { percent: signal })}`;
|
|
37057
37241
|
return /* @__PURE__ */ jsxs("span", {
|
|
37058
|
-
className: cn("inline-flex items-center gap-1 text-[10px] font-medium", signalColor(
|
|
37242
|
+
className: cn("inline-flex items-center gap-1 text-[10px] font-medium", signalColor(reading), className),
|
|
37059
37243
|
title,
|
|
37060
37244
|
children: [/* @__PURE__ */ jsx(Icon, { className: "h-3.5 w-3.5" }), signal !== null && /* @__PURE__ */ jsxs("span", { children: [signal, "%"] })]
|
|
37061
37245
|
});
|
|
@@ -48742,29 +48926,179 @@ function ClimatePanel({ trpc, deviceId, features: _features, layout, optimistic
|
|
|
48742
48926
|
});
|
|
48743
48927
|
}
|
|
48744
48928
|
//#endregion
|
|
48929
|
+
//#region src/composites/device-controls/media-player-view.ts
|
|
48930
|
+
/**
|
|
48931
|
+
* The state → view mapping of the media-player hero card, kept pure so it can
|
|
48932
|
+
* be specified without rendering.
|
|
48933
|
+
*
|
|
48934
|
+
* Two questions are answered separately. POWER is whether the device is on
|
|
48935
|
+
* (`off` / `standby` / on); RUNNING is what a powered device is doing
|
|
48936
|
+
* (`playing` / `paused` / `buffering` / `idle`). A status that never arrived
|
|
48937
|
+
* is `unknown` for both, and an unknown state is never drawn as off: it is
|
|
48938
|
+
* its own look. A value the driver only guesses (infrared has no feedback)
|
|
48939
|
+
* carries an `assumed` flag so the card can draw it as a guess.
|
|
48940
|
+
*
|
|
48941
|
+
* The controls are derived from what the device exposes — the status fields
|
|
48942
|
+
* it fills and the `DeviceFeature` flags it declares — never from a vendor.
|
|
48943
|
+
*/
|
|
48944
|
+
var NO_TRANSPORT = {
|
|
48945
|
+
playPause: false,
|
|
48946
|
+
previous: false,
|
|
48947
|
+
next: false,
|
|
48948
|
+
stop: false
|
|
48949
|
+
};
|
|
48950
|
+
/** Whether the status carries any activity the device actually reported. */
|
|
48951
|
+
function runningOf(state) {
|
|
48952
|
+
switch (state) {
|
|
48953
|
+
case "playing":
|
|
48954
|
+
case "paused":
|
|
48955
|
+
case "buffering":
|
|
48956
|
+
case "idle": return state;
|
|
48957
|
+
case void 0: return "unknown";
|
|
48958
|
+
default: return "none";
|
|
48959
|
+
}
|
|
48960
|
+
}
|
|
48961
|
+
function artworkOf(status) {
|
|
48962
|
+
const url = status.currentMedia?.imageUrl?.trim() ?? "";
|
|
48963
|
+
return url === "" ? null : url;
|
|
48964
|
+
}
|
|
48965
|
+
function powerOf(state) {
|
|
48966
|
+
if (state === void 0) return "unknown";
|
|
48967
|
+
if (state === "off") return "off";
|
|
48968
|
+
if (state === "standby") return "standby";
|
|
48969
|
+
return "on";
|
|
48970
|
+
}
|
|
48971
|
+
/**
|
|
48972
|
+
* A slice from before `assumedFields` existed (stateSource assumed, no list)
|
|
48973
|
+
* means the whole state is a guess; with a list, only the named fields are.
|
|
48974
|
+
*/
|
|
48975
|
+
function isAssumed(status, field) {
|
|
48976
|
+
if (status.stateSource !== "assumed") return false;
|
|
48977
|
+
const listed = status.assumedFields ?? [];
|
|
48978
|
+
return listed.length === 0 || listed.includes(field);
|
|
48979
|
+
}
|
|
48980
|
+
var UNKNOWN_VIEW = {
|
|
48981
|
+
power: "unknown",
|
|
48982
|
+
runningReading: "unknown",
|
|
48983
|
+
running: "unknown",
|
|
48984
|
+
stateAssumed: false,
|
|
48985
|
+
canSwitchPower: false,
|
|
48986
|
+
transport: NO_TRANSPORT,
|
|
48987
|
+
seek: false,
|
|
48988
|
+
volume: "none",
|
|
48989
|
+
volumeAssumed: false,
|
|
48990
|
+
volumeKnown: false,
|
|
48991
|
+
muteKnown: false,
|
|
48992
|
+
artworkUrl: null,
|
|
48993
|
+
mute: false,
|
|
48994
|
+
muteAssumed: false,
|
|
48995
|
+
source: null,
|
|
48996
|
+
sourceAssumed: false,
|
|
48997
|
+
shuffle: false,
|
|
48998
|
+
repeat: false
|
|
48999
|
+
};
|
|
49000
|
+
function readingOf(running) {
|
|
49001
|
+
if (running === true) return "running";
|
|
49002
|
+
if (running === false) return "idle";
|
|
49003
|
+
return "unknown";
|
|
49004
|
+
}
|
|
49005
|
+
function deriveMediaPlayerView(status, features, extras = {}) {
|
|
49006
|
+
const runningReading = readingOf(extras.running);
|
|
49007
|
+
const view = deriveFromStatus(status, features);
|
|
49008
|
+
const guessed = status === void 0 || status.state === void 0 || view.stateAssumed;
|
|
49009
|
+
if (runningReading === "unknown" || !guessed) return {
|
|
49010
|
+
...view,
|
|
49011
|
+
runningReading
|
|
49012
|
+
};
|
|
49013
|
+
if (runningReading === "idle") return {
|
|
49014
|
+
...UNKNOWN_VIEW,
|
|
49015
|
+
power: "off",
|
|
49016
|
+
running: "none",
|
|
49017
|
+
canSwitchPower: view.canSwitchPower,
|
|
49018
|
+
runningReading
|
|
49019
|
+
};
|
|
49020
|
+
return {
|
|
49021
|
+
...status === void 0 ? view : deriveFromStatus(status.state === void 0 || status.state === "off" || status.state === "standby" ? {
|
|
49022
|
+
...status,
|
|
49023
|
+
state: "on"
|
|
49024
|
+
} : status, features),
|
|
49025
|
+
power: "on",
|
|
49026
|
+
stateAssumed: false,
|
|
49027
|
+
runningReading
|
|
49028
|
+
};
|
|
49029
|
+
}
|
|
49030
|
+
function deriveFromStatus(status, features) {
|
|
49031
|
+
const has = (f) => features?.includes(f) ?? false;
|
|
49032
|
+
const canSwitchPower = has(DeviceFeature.MediaPlayerPower);
|
|
49033
|
+
if (status === void 0 || status.state === void 0) return {
|
|
49034
|
+
...UNKNOWN_VIEW,
|
|
49035
|
+
canSwitchPower
|
|
49036
|
+
};
|
|
49037
|
+
const power = powerOf(status.state);
|
|
49038
|
+
const running = runningOf(status.state);
|
|
49039
|
+
const base = {
|
|
49040
|
+
...UNKNOWN_VIEW,
|
|
49041
|
+
power,
|
|
49042
|
+
running,
|
|
49043
|
+
stateAssumed: isAssumed(status, "state"),
|
|
49044
|
+
canSwitchPower
|
|
49045
|
+
};
|
|
49046
|
+
if (power !== "on") return base;
|
|
49047
|
+
const hasTransportFeature = has(DeviceFeature.MediaPlayerNext) || has(DeviceFeature.MediaPlayerPrevious) || has(DeviceFeature.MediaPlayerStop) || has(DeviceFeature.MediaPlayerSeek);
|
|
49048
|
+
const volume = has(DeviceFeature.MediaPlayerVolume) ? "slider" : has(DeviceFeature.MediaPlayerVolumeStep) ? "steps" : "none";
|
|
49049
|
+
const sourceName = typeof status.source === "string" ? status.source.trim() : "";
|
|
49050
|
+
const options = status.availableSources ?? [];
|
|
49051
|
+
const hasSource = sourceName !== "" || options.length > 0;
|
|
49052
|
+
return {
|
|
49053
|
+
...base,
|
|
49054
|
+
transport: {
|
|
49055
|
+
playPause: running !== "none" || hasTransportFeature,
|
|
49056
|
+
previous: has(DeviceFeature.MediaPlayerPrevious),
|
|
49057
|
+
next: has(DeviceFeature.MediaPlayerNext),
|
|
49058
|
+
stop: has(DeviceFeature.MediaPlayerStop)
|
|
49059
|
+
},
|
|
49060
|
+
seek: has(DeviceFeature.MediaPlayerSeek) && status.duration !== null && status.duration > 0,
|
|
49061
|
+
volume,
|
|
49062
|
+
volumeAssumed: isAssumed(status, "volumeLevel"),
|
|
49063
|
+
mute: has(DeviceFeature.MediaPlayerMute) || volume === "slider" && status.isMuted !== null,
|
|
49064
|
+
volumeKnown: status.volumeLevel !== null,
|
|
49065
|
+
muteKnown: status.isMuted !== null,
|
|
49066
|
+
artworkUrl: artworkOf(status),
|
|
49067
|
+
muteAssumed: isAssumed(status, "isMuted"),
|
|
49068
|
+
source: hasSource ? {
|
|
49069
|
+
current: sourceName,
|
|
49070
|
+
options,
|
|
49071
|
+
selectable: has(DeviceFeature.MediaPlayerSelectSource) && options.length > 1
|
|
49072
|
+
} : null,
|
|
49073
|
+
sourceAssumed: isAssumed(status, "source"),
|
|
49074
|
+
shuffle: has(DeviceFeature.MediaPlayerShuffle) && status.shuffle !== null,
|
|
49075
|
+
repeat: has(DeviceFeature.MediaPlayerRepeat) && status.repeat !== null
|
|
49076
|
+
};
|
|
49077
|
+
}
|
|
49078
|
+
//#endregion
|
|
48745
49079
|
//#region src/composites/device-controls/media-player-panel.tsx
|
|
48746
49080
|
/**
|
|
48747
49081
|
* Exhaustive colour map — one entry per MediaPlayerState.
|
|
48748
49082
|
* Build fails if a state is added and not reflected here.
|
|
48749
49083
|
*/
|
|
48750
49084
|
var STATE_COLOR = {
|
|
48751
|
-
playing: "border-
|
|
48752
|
-
paused: "border-
|
|
48753
|
-
buffering: "border-
|
|
48754
|
-
on: "border-
|
|
48755
|
-
idle: "border-
|
|
48756
|
-
off: "border-
|
|
48757
|
-
standby: "border-
|
|
49085
|
+
playing: "border-success/50 bg-success/10",
|
|
49086
|
+
paused: "border-warning/50 bg-warning/10",
|
|
49087
|
+
buffering: "border-info/50 bg-info/10",
|
|
49088
|
+
on: "border-foreground-subtle/40 bg-surface-hover",
|
|
49089
|
+
idle: "border-foreground-subtle/40 bg-surface-hover",
|
|
49090
|
+
off: "border-border bg-surface",
|
|
49091
|
+
standby: "border-border bg-surface"
|
|
48758
49092
|
};
|
|
48759
49093
|
/** Dot indicator colour (small circle) per state. */
|
|
48760
49094
|
var STATE_DOT_COLOR = {
|
|
48761
|
-
playing: "bg-
|
|
48762
|
-
paused: "bg-
|
|
48763
|
-
buffering: "bg-
|
|
48764
|
-
on: "bg-
|
|
48765
|
-
idle: "bg-
|
|
48766
|
-
off: "bg-
|
|
48767
|
-
standby: "bg-
|
|
49095
|
+
playing: "bg-success",
|
|
49096
|
+
paused: "bg-warning",
|
|
49097
|
+
buffering: "bg-info",
|
|
49098
|
+
on: "bg-foreground-subtle",
|
|
49099
|
+
idle: "bg-foreground-subtle",
|
|
49100
|
+
off: "bg-border",
|
|
49101
|
+
standby: "bg-border"
|
|
48768
49102
|
};
|
|
48769
49103
|
/** Exhaustive tuple of valid repeat values — single source of truth. */
|
|
48770
49104
|
var REPEAT_VALUES = [
|
|
@@ -48788,7 +49122,7 @@ function toggleAction$1(state) {
|
|
|
48788
49122
|
if (state === "playing" || state === "buffering") return "pause";
|
|
48789
49123
|
return "play";
|
|
48790
49124
|
}
|
|
48791
|
-
function MediaPlayerPanel({ trpc, deviceId, features
|
|
49125
|
+
function MediaPlayerPanel({ trpc, deviceId, features, layout, optimistic }) {
|
|
48792
49126
|
const t = useUiText();
|
|
48793
49127
|
const { cap, slice, available } = useDeviceCapability({
|
|
48794
49128
|
trpc,
|
|
@@ -48798,6 +49132,7 @@ function MediaPlayerPanel({ trpc, deviceId, features: _features, layout, optimis
|
|
|
48798
49132
|
});
|
|
48799
49133
|
const { display, applyOptimistic } = useOptimisticSlice(slice, { enabled: optimistic ?? true });
|
|
48800
49134
|
if (display === void 0) return null;
|
|
49135
|
+
const declared = deriveMediaPlayerView(display, features, {});
|
|
48801
49136
|
const busy = !available;
|
|
48802
49137
|
const action = toggleAction$1(display.state);
|
|
48803
49138
|
return /* @__PURE__ */ jsxs("div", {
|
|
@@ -48852,7 +49187,7 @@ function MediaPlayerPanel({ trpc, deviceId, features: _features, layout, optimis
|
|
|
48852
49187
|
children: "⏭"
|
|
48853
49188
|
})]
|
|
48854
49189
|
}),
|
|
48855
|
-
display.volumeLevel !== null && /* @__PURE__ */ jsxs("label", {
|
|
49190
|
+
(declared.volume === "slider" || display.volumeLevel !== null) && /* @__PURE__ */ jsxs("label", {
|
|
48856
49191
|
className: "flex items-center gap-2 text-xs text-foreground-subtle",
|
|
48857
49192
|
children: [
|
|
48858
49193
|
/* @__PURE__ */ jsx("span", { children: t("uiLibrary.mediaPlayerPanel.vol", "Vol") }),
|
|
@@ -48862,7 +49197,7 @@ function MediaPlayerPanel({ trpc, deviceId, features: _features, layout, optimis
|
|
|
48862
49197
|
min: 0,
|
|
48863
49198
|
max: 100,
|
|
48864
49199
|
step: 1,
|
|
48865
|
-
value: display.volumeLevel,
|
|
49200
|
+
value: display.volumeLevel ?? 0,
|
|
48866
49201
|
disabled: busy,
|
|
48867
49202
|
onChange: (e) => {
|
|
48868
49203
|
const volumeLevel = Number(e.target.value);
|
|
@@ -48870,25 +49205,25 @@ function MediaPlayerPanel({ trpc, deviceId, features: _features, layout, optimis
|
|
|
48870
49205
|
if (!busy) cap?.setVolume({ volumeLevel });
|
|
48871
49206
|
}
|
|
48872
49207
|
}),
|
|
48873
|
-
/* @__PURE__ */
|
|
49208
|
+
/* @__PURE__ */ jsx("span", {
|
|
48874
49209
|
className: "tabular-nums w-8 text-right",
|
|
48875
|
-
children:
|
|
49210
|
+
children: display.volumeLevel === null ? "—" : `${display.volumeLevel}%`
|
|
48876
49211
|
})
|
|
48877
49212
|
]
|
|
48878
49213
|
}),
|
|
48879
|
-
display.isMuted !== null && /* @__PURE__ */ jsx("button", {
|
|
49214
|
+
(declared.mute || display.isMuted !== null) && /* @__PURE__ */ jsx("button", {
|
|
48880
49215
|
type: "button",
|
|
48881
49216
|
"aria-label": display.isMuted ? t("uiLibrary.mediaPlayerPanel.unmute", "Unmute") : t("uiLibrary.mediaPlayerPanel.mute", "Mute"),
|
|
48882
49217
|
disabled: busy,
|
|
48883
49218
|
onClick: (e) => {
|
|
48884
49219
|
e.stopPropagation();
|
|
48885
|
-
if (!busy
|
|
48886
|
-
const muted = !display.isMuted;
|
|
49220
|
+
if (!busy) {
|
|
49221
|
+
const muted = display.isMuted === null ? true : !display.isMuted;
|
|
48887
49222
|
applyOptimistic({ isMuted: muted });
|
|
48888
49223
|
cap?.setMute({ muted });
|
|
48889
49224
|
}
|
|
48890
49225
|
},
|
|
48891
|
-
className: cn("inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs transition-colors", display.isMuted ? "bg-
|
|
49226
|
+
className: cn("inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs transition-colors", display.isMuted ? "bg-warning-fill text-warning-on" : "text-foreground-subtle hover:text-foreground hover:bg-surface-hover", busy && "opacity-40 cursor-not-allowed"),
|
|
48892
49227
|
children: display.isMuted ? "🔇" : "🔊"
|
|
48893
49228
|
}),
|
|
48894
49229
|
display.availableSources.length > 0 && /* @__PURE__ */ jsxs("label", {
|
|
@@ -48927,7 +49262,7 @@ function MediaPlayerPanel({ trpc, deviceId, features: _features, layout, optimis
|
|
|
48927
49262
|
cap?.setShuffle({ shuffle });
|
|
48928
49263
|
}
|
|
48929
49264
|
},
|
|
48930
|
-
className: cn("inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs transition-colors", display.shuffle ? "bg-
|
|
49265
|
+
className: cn("inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs transition-colors", display.shuffle ? "bg-success-fill text-success-on" : "text-foreground-subtle hover:text-foreground hover:bg-surface-hover", busy && "opacity-40 cursor-not-allowed"),
|
|
48931
49266
|
children: ["⇌ ", t("uiLibrary.mediaPlayerPanel.shuffle", "Shuffle")]
|
|
48932
49267
|
}),
|
|
48933
49268
|
display.repeat !== null && /* @__PURE__ */ jsxs("label", {
|
|
@@ -55571,7 +55906,7 @@ function SwingToggle({ axis, on, busy, onToggle }) {
|
|
|
55571
55906
|
* "Run N min".
|
|
55572
55907
|
* - HeaterHeroCard (device-detail hero): the glowing heat backdrop (the same
|
|
55573
55908
|
* rising streaks a heating air conditioner draws) while it is on, the
|
|
55574
|
-
* on/off switch
|
|
55909
|
+
* on/off switch and the timed
|
|
55575
55910
|
* run (number, unit, Run, countdown, Cancel).
|
|
55576
55911
|
*
|
|
55577
55912
|
* Every reading may be unknown (`null`) and is drawn as a dash, never as zero.
|
|
@@ -55593,12 +55928,6 @@ function useHeater({ trpc, deviceId, optimistic }) {
|
|
|
55593
55928
|
cap: (d) => d.runningState,
|
|
55594
55929
|
slice: (d) => d.state.runningState
|
|
55595
55930
|
});
|
|
55596
|
-
const power = useDeviceCapability({
|
|
55597
|
-
trpc,
|
|
55598
|
-
deviceId,
|
|
55599
|
-
cap: (d) => d.powerMeter,
|
|
55600
|
-
slice: (d) => d.state.powerMeter
|
|
55601
|
-
});
|
|
55602
55931
|
const timer = useDeviceCapability({
|
|
55603
55932
|
trpc,
|
|
55604
55933
|
deviceId,
|
|
@@ -55612,7 +55941,6 @@ function useHeater({ trpc, deviceId, optimistic }) {
|
|
|
55612
55941
|
available,
|
|
55613
55942
|
applyOptimistic,
|
|
55614
55943
|
running: running.slice,
|
|
55615
|
-
power: power.slice,
|
|
55616
55944
|
timer
|
|
55617
55945
|
};
|
|
55618
55946
|
}
|
|
@@ -55655,11 +55983,10 @@ function HeaterInlineControl(props) {
|
|
|
55655
55983
|
}
|
|
55656
55984
|
function HeaterHeroCard(props) {
|
|
55657
55985
|
const t = useUiText();
|
|
55658
|
-
const { cap, display, available, applyOptimistic, running,
|
|
55986
|
+
const { cap, display, available, applyOptimistic, running, timer } = useHeater(props);
|
|
55659
55987
|
if (cap === void 0 || display === void 0) return null;
|
|
55660
55988
|
const on = display.on === true;
|
|
55661
55989
|
const heating = running?.running ?? on;
|
|
55662
|
-
const watts = power?.power ?? null;
|
|
55663
55990
|
return /* @__PURE__ */ jsxs("div", {
|
|
55664
55991
|
className: "relative flex flex-col items-stretch gap-3 overflow-hidden rounded-lg border border-border bg-surface p-4",
|
|
55665
55992
|
children: [
|
|
@@ -55677,21 +56004,13 @@ function HeaterHeroCard(props) {
|
|
|
55677
56004
|
})
|
|
55678
56005
|
}), /* @__PURE__ */ jsxs("div", {
|
|
55679
56006
|
className: "relative z-10 flex flex-col items-center gap-1",
|
|
55680
|
-
children: [
|
|
55681
|
-
|
|
55682
|
-
|
|
55683
|
-
|
|
55684
|
-
|
|
55685
|
-
|
|
55686
|
-
|
|
55687
|
-
children: heating ? t("uiLibrary.heater.heating", "Heating") : t("uiLibrary.heater.off", "Off")
|
|
55688
|
-
}),
|
|
55689
|
-
/* @__PURE__ */ jsx("span", {
|
|
55690
|
-
className: "text-xs tabular-nums text-foreground-muted",
|
|
55691
|
-
"data-testid": "heater-watts",
|
|
55692
|
-
children: watts === null ? "—" : `${Math.round(watts)} W`
|
|
55693
|
-
})
|
|
55694
|
-
]
|
|
56007
|
+
children: [/* @__PURE__ */ jsx(Flame, {
|
|
56008
|
+
className: cn("h-8 w-8", heating ? "text-warning" : "text-foreground-subtle"),
|
|
56009
|
+
"aria-hidden": true
|
|
56010
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
56011
|
+
className: "text-sm font-medium text-foreground",
|
|
56012
|
+
children: heating ? t("uiLibrary.heater.heating", "Heating") : t("uiLibrary.heater.off", "Off")
|
|
56013
|
+
})]
|
|
55695
56014
|
})]
|
|
55696
56015
|
}),
|
|
55697
56016
|
/* @__PURE__ */ jsxs("label", {
|
|
@@ -56136,17 +56455,16 @@ function DishwasherHeroCard(props) {
|
|
|
56136
56455
|
* Appliance card for a `DeviceType.Washer` / `DeviceType.Dryer` device.
|
|
56137
56456
|
*
|
|
56138
56457
|
* These appliances have no program surface: what is worth showing is whether
|
|
56139
|
-
* the cycle is running (the `running-state` cap)
|
|
56140
|
-
*
|
|
56141
|
-
*
|
|
56458
|
+
* the cycle is running (the `running-state` cap) and for how long. The draw
|
|
56459
|
+
* is NOT drawn here: the `power-meter` cap's hero widget shows it under every
|
|
56460
|
+
* hero card (D1004).
|
|
56142
56461
|
* - ApplianceInlineControl (device-list row): the running badge round the
|
|
56143
|
-
* drum icon
|
|
56462
|
+
* drum icon.
|
|
56144
56463
|
* - ApplianceHeroCard (device-detail hero): the drum (turning only while a
|
|
56145
|
-
* cycle runs), the state, the phase
|
|
56464
|
+
* cycle runs), the state, the phase and the dwell.
|
|
56146
56465
|
*
|
|
56147
56466
|
* UNKNOWN IS NOT OFF (D393). `running: null` is drawn as "Unknown" and the
|
|
56148
|
-
* drum stays still and unbadged
|
|
56149
|
-
* "0 W". A slice that has not landed hides its row instead of faking a value.
|
|
56467
|
+
* drum stays still and unbadged.
|
|
56150
56468
|
*/
|
|
56151
56469
|
var KEYFRAMES = `
|
|
56152
56470
|
@keyframes apl-tumble { to { transform: rotate(360deg) } }
|
|
@@ -56155,10 +56473,6 @@ var KEYFRAMES = `
|
|
|
56155
56473
|
.apl-drum-run { animation: none !important; }
|
|
56156
56474
|
}
|
|
56157
56475
|
`;
|
|
56158
|
-
/** Whole watts, or a dash when the appliance has not reported a reading. */
|
|
56159
|
-
function formatWatts(power) {
|
|
56160
|
-
return power === void 0 || !Number.isFinite(power) ? "—" : `${Math.round(power)} W`;
|
|
56161
|
-
}
|
|
56162
56476
|
/** The state to a person: running / idle, or why there is none (unknown). */
|
|
56163
56477
|
function applianceStateLabel(running, t) {
|
|
56164
56478
|
if (running === true) return {
|
|
@@ -56181,10 +56495,7 @@ function dwellText(running, since, now, t) {
|
|
|
56181
56495
|
return "minutes" in duration ? t("uiLibrary.appliance.forMinutes", "for {{count}} min", { count: duration.minutes }) : t("uiLibrary.appliance.forHours", "for {{count}} h", { count: duration.hours });
|
|
56182
56496
|
}
|
|
56183
56497
|
function useApplianceState(props) {
|
|
56184
|
-
return {
|
|
56185
|
-
running: useDeviceState(props.trpc, props.deviceId, (s) => s.runningState),
|
|
56186
|
-
power: useDeviceState(props.trpc, props.deviceId, (s) => s.powerMeter)
|
|
56187
|
-
};
|
|
56498
|
+
return { running: useDeviceState(props.trpc, props.deviceId, (s) => s.runningState) };
|
|
56188
56499
|
}
|
|
56189
56500
|
/** The drum: a ring with a few items in it, turning only while a cycle runs. */
|
|
56190
56501
|
function Drum({ running }) {
|
|
@@ -56206,7 +56517,7 @@ function Drum({ running }) {
|
|
|
56206
56517
|
}
|
|
56207
56518
|
function ApplianceHeroCard(props) {
|
|
56208
56519
|
const t = useUiText();
|
|
56209
|
-
const { running
|
|
56520
|
+
const { running } = useApplianceState(props);
|
|
56210
56521
|
const state = running?.running ?? null;
|
|
56211
56522
|
const meta = applianceStateLabel(state, t);
|
|
56212
56523
|
const phase = running?.phase?.trim() ?? "";
|
|
@@ -56218,50 +56529,35 @@ function ApplianceHeroCard(props) {
|
|
|
56218
56529
|
/* @__PURE__ */ jsx(Drum, { running: state }),
|
|
56219
56530
|
/* @__PURE__ */ jsxs("div", {
|
|
56220
56531
|
className: "flex min-w-0 flex-1 flex-col gap-2",
|
|
56221
|
-
children: [
|
|
56222
|
-
|
|
56223
|
-
|
|
56224
|
-
|
|
56225
|
-
|
|
56226
|
-
|
|
56227
|
-
|
|
56228
|
-
|
|
56229
|
-
|
|
56230
|
-
|
|
56231
|
-
|
|
56232
|
-
|
|
56233
|
-
phase
|
|
56234
|
-
|
|
56235
|
-
children: phase
|
|
56236
|
-
}),
|
|
56237
|
-
power !== void 0 && /* @__PURE__ */ jsxs("span", {
|
|
56238
|
-
"data-testid": "appliance-power",
|
|
56239
|
-
className: "inline-flex items-center gap-1 text-sm tabular-nums text-foreground-muted",
|
|
56240
|
-
title: power.power === void 0 ? t("uiLibrary.appliance.powerUnknown", "Power unknown") : void 0,
|
|
56241
|
-
children: [/* @__PURE__ */ jsx(Zap, {
|
|
56242
|
-
className: "h-3.5 w-3.5",
|
|
56243
|
-
"aria-hidden": true
|
|
56244
|
-
}), formatWatts(power.power)]
|
|
56245
|
-
})
|
|
56246
|
-
]
|
|
56532
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
56533
|
+
className: "flex flex-wrap items-baseline gap-x-2",
|
|
56534
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
56535
|
+
"data-testid": "appliance-state",
|
|
56536
|
+
className: cn("text-3xl font-semibold", meta.tone),
|
|
56537
|
+
children: meta.label
|
|
56538
|
+
}), dwell !== null && /* @__PURE__ */ jsx("span", {
|
|
56539
|
+
className: "text-sm tabular-nums text-foreground-subtle",
|
|
56540
|
+
children: dwell
|
|
56541
|
+
})]
|
|
56542
|
+
}), phase !== "" && state !== null && /* @__PURE__ */ jsx("span", {
|
|
56543
|
+
className: "text-sm text-foreground-subtle",
|
|
56544
|
+
children: phase
|
|
56545
|
+
})]
|
|
56247
56546
|
})
|
|
56248
56547
|
]
|
|
56249
56548
|
});
|
|
56250
56549
|
}
|
|
56251
56550
|
function ApplianceInlineControl(props) {
|
|
56252
|
-
const { running
|
|
56253
|
-
return /* @__PURE__ */
|
|
56551
|
+
const { running } = useApplianceState(props);
|
|
56552
|
+
return /* @__PURE__ */ jsx("div", {
|
|
56254
56553
|
className: "inline-flex items-center gap-1.5 max-w-full",
|
|
56255
|
-
children:
|
|
56554
|
+
children: /* @__PURE__ */ jsx(RunningBadge, {
|
|
56256
56555
|
running: running?.running ?? null,
|
|
56257
56556
|
children: /* @__PURE__ */ jsx(WashingMachine, {
|
|
56258
56557
|
className: "h-4 w-4 text-foreground-muted",
|
|
56259
56558
|
"aria-hidden": true
|
|
56260
56559
|
})
|
|
56261
|
-
})
|
|
56262
|
-
className: "text-xs tabular-nums text-foreground-subtle",
|
|
56263
|
-
children: formatWatts(power.power)
|
|
56264
|
-
})]
|
|
56560
|
+
})
|
|
56265
56561
|
});
|
|
56266
56562
|
}
|
|
56267
56563
|
//#endregion
|
|
@@ -57226,6 +57522,106 @@ function SwitchHeroCard({ trpc, deviceId, optimistic }) {
|
|
|
57226
57522
|
});
|
|
57227
57523
|
}
|
|
57228
57524
|
//#endregion
|
|
57525
|
+
//#region src/composites/device-controls/media-player-hero-parts.tsx
|
|
57526
|
+
/**
|
|
57527
|
+
* The animated parts of the media-player hero: the power orb and the running
|
|
57528
|
+
* indicator. Motion is transform / opacity only, plays only while the state
|
|
57529
|
+
* says so, and stops under `prefers-reduced-motion` (the state is still told
|
|
57530
|
+
* by colour, icon and text, never by motion alone).
|
|
57531
|
+
*/
|
|
57532
|
+
var MEDIA_HERO_KEYFRAMES = `
|
|
57533
|
+
@keyframes mph-eq { 0%, 100% { transform: scaleY(.3) } 50% { transform: scaleY(1) } }
|
|
57534
|
+
@keyframes mph-halo { 0% { transform: scale(.92); opacity: .55 } 100% { transform: scale(1.4); opacity: 0 } }
|
|
57535
|
+
.mph-eq { transform-origin: bottom; animation: mph-eq 1s ease-in-out infinite; }
|
|
57536
|
+
.mph-eq:nth-child(2) { animation-duration: .8s; animation-delay: -.3s; }
|
|
57537
|
+
.mph-eq:nth-child(3) { animation-duration: 1.2s; animation-delay: -.6s; }
|
|
57538
|
+
.mph-eq:nth-child(4) { animation-duration: .9s; animation-delay: -.1s; }
|
|
57539
|
+
.mph-halo { animation: mph-halo 2.8s ease-out infinite; }
|
|
57540
|
+
@keyframes mph-in { from { opacity: 0 } to { opacity: 1 } }
|
|
57541
|
+
@keyframes mph-out { from { opacity: 1 } to { opacity: 0 } }
|
|
57542
|
+
.mph-fade-in { animation: mph-in .6s ease-out both; }
|
|
57543
|
+
.mph-fade-out { animation: mph-out .6s ease-out both; }
|
|
57544
|
+
@media (prefers-reduced-motion: reduce) {
|
|
57545
|
+
.mph-eq, .mph-halo, .mph-fade-in, .mph-fade-out { animation: none !important; }
|
|
57546
|
+
.mph-fade-out { opacity: 0; }
|
|
57547
|
+
.mph-eq:nth-child(odd) { transform: scaleY(.6); }
|
|
57548
|
+
.mph-halo { opacity: 0; }
|
|
57549
|
+
}
|
|
57550
|
+
`;
|
|
57551
|
+
var ORB_TONE = {
|
|
57552
|
+
on: "border-success bg-success/15 text-success shadow-lg shadow-success/30",
|
|
57553
|
+
standby: "border-warning bg-warning/10 text-warning",
|
|
57554
|
+
off: "border-border bg-surface-hover text-foreground-subtle",
|
|
57555
|
+
unknown: "border-dashed border-border bg-transparent text-foreground-subtle"
|
|
57556
|
+
};
|
|
57557
|
+
/** The device's power: a glowing ring when on, amber in standby, flat when off, dashed when unknown. */
|
|
57558
|
+
function PowerOrb({ power, onPress, label, busy }) {
|
|
57559
|
+
const body = /* @__PURE__ */ jsx(Fragment$1, { children: power === "unknown" ? /* @__PURE__ */ jsx(CircleQuestionMark, {
|
|
57560
|
+
className: "h-7 w-7",
|
|
57561
|
+
"aria-hidden": "true"
|
|
57562
|
+
}) : /* @__PURE__ */ jsx(Power, {
|
|
57563
|
+
className: "h-7 w-7",
|
|
57564
|
+
"aria-hidden": "true"
|
|
57565
|
+
}) });
|
|
57566
|
+
const classes = cn("relative z-10 inline-flex h-16 w-16 items-center justify-center rounded-full border-2", "transition-all duration-500 motion-reduce:transition-none", ORB_TONE[power]);
|
|
57567
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
57568
|
+
className: "relative flex h-20 w-20 items-center justify-center",
|
|
57569
|
+
"data-power": power,
|
|
57570
|
+
children: [power === "on" && /* @__PURE__ */ jsx("span", {
|
|
57571
|
+
"aria-hidden": "true",
|
|
57572
|
+
"data-testid": "media-power-halo",
|
|
57573
|
+
className: "mph-halo absolute h-16 w-16 rounded-full bg-success/25"
|
|
57574
|
+
}), onPress === void 0 ? /* @__PURE__ */ jsx("span", {
|
|
57575
|
+
className: classes,
|
|
57576
|
+
"data-testid": "media-power",
|
|
57577
|
+
role: "img",
|
|
57578
|
+
"aria-label": label,
|
|
57579
|
+
children: body
|
|
57580
|
+
}) : /* @__PURE__ */ jsx("button", {
|
|
57581
|
+
type: "button",
|
|
57582
|
+
"aria-label": label,
|
|
57583
|
+
title: label,
|
|
57584
|
+
disabled: busy,
|
|
57585
|
+
"data-testid": "media-power",
|
|
57586
|
+
onClick: (e) => {
|
|
57587
|
+
e.stopPropagation();
|
|
57588
|
+
if (!busy) onPress();
|
|
57589
|
+
},
|
|
57590
|
+
className: cn(classes, "hover:brightness-110 active:scale-95", busy && "cursor-not-allowed opacity-40"),
|
|
57591
|
+
children: body
|
|
57592
|
+
})]
|
|
57593
|
+
});
|
|
57594
|
+
}
|
|
57595
|
+
var EQ_BARS = [
|
|
57596
|
+
0,
|
|
57597
|
+
1,
|
|
57598
|
+
2,
|
|
57599
|
+
3
|
|
57600
|
+
];
|
|
57601
|
+
/** Equalizer while playing, a spinner while buffering, a pause glyph when paused; nothing otherwise. */
|
|
57602
|
+
function RunningIndicator({ running }) {
|
|
57603
|
+
if (running === "playing") return /* @__PURE__ */ jsx("span", {
|
|
57604
|
+
className: "inline-flex h-4 items-end gap-0.5 text-primary",
|
|
57605
|
+
"data-testid": "media-running",
|
|
57606
|
+
"data-running": "playing",
|
|
57607
|
+
"aria-hidden": "true",
|
|
57608
|
+
children: EQ_BARS.map((bar) => /* @__PURE__ */ jsx("span", { className: "mph-eq h-4 w-1 rounded-full bg-primary" }, bar))
|
|
57609
|
+
});
|
|
57610
|
+
if (running === "buffering") return /* @__PURE__ */ jsx(LoaderCircle, {
|
|
57611
|
+
className: "h-4 w-4 animate-spin text-foreground-muted motion-reduce:animate-none",
|
|
57612
|
+
"data-testid": "media-running",
|
|
57613
|
+
"data-running": "buffering",
|
|
57614
|
+
"aria-hidden": "true"
|
|
57615
|
+
});
|
|
57616
|
+
if (running === "paused") return /* @__PURE__ */ jsx(Pause, {
|
|
57617
|
+
className: "h-4 w-4 text-foreground-muted",
|
|
57618
|
+
"data-testid": "media-running",
|
|
57619
|
+
"data-running": "paused",
|
|
57620
|
+
"aria-hidden": "true"
|
|
57621
|
+
});
|
|
57622
|
+
return null;
|
|
57623
|
+
}
|
|
57624
|
+
//#endregion
|
|
57229
57625
|
//#region src/composites/device-controls/media-player-hero-card.tsx
|
|
57230
57626
|
/** Which states map to play() vs pause() on the central transport button. */
|
|
57231
57627
|
function toggleAction(state) {
|
|
@@ -57242,12 +57638,50 @@ function formatClock(ms) {
|
|
|
57242
57638
|
const total = Math.floor(ms / 1e3);
|
|
57243
57639
|
return `${Math.floor(total / 60)}:${(total % 60).toString().padStart(2, "0")}`;
|
|
57244
57640
|
}
|
|
57245
|
-
|
|
57641
|
+
var NEXT_REPEAT = {
|
|
57642
|
+
off: "all",
|
|
57643
|
+
all: "one",
|
|
57644
|
+
one: "off"
|
|
57645
|
+
};
|
|
57646
|
+
/** The artwork of what is playing; a change cross-fades from the previous cover. */
|
|
57647
|
+
function Artwork({ url }) {
|
|
57648
|
+
const [shown, setShown] = useState(url);
|
|
57649
|
+
const [previous, setPrevious] = useState(null);
|
|
57650
|
+
const [failed, setFailed] = useState(null);
|
|
57651
|
+
const last = useRef(url);
|
|
57652
|
+
useEffect(() => {
|
|
57653
|
+
if (last.current === url) return;
|
|
57654
|
+
setPrevious(last.current);
|
|
57655
|
+
setShown(url);
|
|
57656
|
+
last.current = url;
|
|
57657
|
+
const timer = setTimeout(() => setPrevious(null), 700);
|
|
57658
|
+
return () => clearTimeout(timer);
|
|
57659
|
+
}, [url]);
|
|
57660
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
57661
|
+
"data-testid": "media-artwork",
|
|
57662
|
+
className: "relative h-40 w-40 overflow-hidden rounded-lg border border-border bg-surface-hover",
|
|
57663
|
+
children: [previous !== null && /* @__PURE__ */ jsx("img", {
|
|
57664
|
+
src: previous,
|
|
57665
|
+
alt: "",
|
|
57666
|
+
className: "mph-fade-out absolute inset-0 h-full w-full object-cover"
|
|
57667
|
+
}), shown !== null && failed !== shown ? /* @__PURE__ */ jsx("img", {
|
|
57668
|
+
src: shown,
|
|
57669
|
+
alt: "",
|
|
57670
|
+
"data-testid": "media-artwork-img",
|
|
57671
|
+
className: "mph-fade-in absolute inset-0 h-full w-full object-cover",
|
|
57672
|
+
onError: () => setFailed(shown)
|
|
57673
|
+
}, shown) : /* @__PURE__ */ jsx(Music, {
|
|
57674
|
+
className: "absolute inset-0 m-auto h-8 w-8 text-foreground-subtle",
|
|
57675
|
+
"aria-hidden": "true"
|
|
57676
|
+
})]
|
|
57677
|
+
});
|
|
57678
|
+
}
|
|
57679
|
+
function NowPlaying({ title, subtitle, artworkUrl }) {
|
|
57246
57680
|
const t = useUiText();
|
|
57247
57681
|
return /* @__PURE__ */ jsxs("div", {
|
|
57248
|
-
className: "flex flex-col items-center gap-
|
|
57682
|
+
className: "flex flex-col items-center gap-2 text-center",
|
|
57249
57683
|
children: [
|
|
57250
|
-
/* @__PURE__ */ jsx(Music, {
|
|
57684
|
+
artworkUrl !== null ? /* @__PURE__ */ jsx(Artwork, { url: artworkUrl }) : /* @__PURE__ */ jsx(Music, {
|
|
57251
57685
|
className: "h-6 w-6 text-foreground-subtle",
|
|
57252
57686
|
"aria-hidden": "true"
|
|
57253
57687
|
}),
|
|
@@ -57262,33 +57696,77 @@ function NowPlaying({ title, subtitle }) {
|
|
|
57262
57696
|
]
|
|
57263
57697
|
});
|
|
57264
57698
|
}
|
|
57265
|
-
|
|
57699
|
+
var STATE_LABEL$1 = {
|
|
57700
|
+
off: "Off",
|
|
57701
|
+
on: "On",
|
|
57702
|
+
idle: "Idle",
|
|
57703
|
+
playing: "Playing",
|
|
57704
|
+
paused: "Paused",
|
|
57705
|
+
buffering: "Buffering",
|
|
57706
|
+
standby: "Standby"
|
|
57707
|
+
};
|
|
57708
|
+
function StateLine({ state, assumed, source, running }) {
|
|
57709
|
+
const t = useUiText();
|
|
57710
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
57711
|
+
className: "flex flex-wrap items-center justify-center gap-2 text-xs text-foreground-muted",
|
|
57712
|
+
"data-testid": "media-state",
|
|
57713
|
+
children: [
|
|
57714
|
+
running,
|
|
57715
|
+
state === void 0 ? /* @__PURE__ */ jsx("span", {
|
|
57716
|
+
className: "font-medium text-foreground-subtle",
|
|
57717
|
+
"data-testid": "media-state-unknown",
|
|
57718
|
+
children: t("uiLibrary.mediaPlayerHero.state.unknown", "State unknown")
|
|
57719
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
57720
|
+
className: "font-medium text-foreground",
|
|
57721
|
+
children: t(`uiLibrary.mediaPlayerHero.state.${state}`, STATE_LABEL$1[state])
|
|
57722
|
+
}),
|
|
57723
|
+
assumed && /* @__PURE__ */ jsx("span", {
|
|
57724
|
+
className: "rounded border border-dashed border-border px-1.5 py-0.5 text-[11px] text-foreground-subtle",
|
|
57725
|
+
title: t("uiLibrary.mediaPlayerHero.assumedHint", "No feedback from the device: this is what was last sent."),
|
|
57726
|
+
"data-testid": "media-assumed",
|
|
57727
|
+
children: t("uiLibrary.mediaPlayerHero.assumed", "assumed")
|
|
57728
|
+
}),
|
|
57729
|
+
source !== "" && /* @__PURE__ */ jsx("span", {
|
|
57730
|
+
"data-testid": "media-source",
|
|
57731
|
+
children: source
|
|
57732
|
+
})
|
|
57733
|
+
]
|
|
57734
|
+
});
|
|
57735
|
+
}
|
|
57736
|
+
function TransportButton({ label, busy, onPress, children, primary, active, testId }) {
|
|
57266
57737
|
return /* @__PURE__ */ jsx("button", {
|
|
57267
57738
|
type: "button",
|
|
57268
57739
|
"aria-label": label,
|
|
57740
|
+
"aria-pressed": active,
|
|
57269
57741
|
title: label,
|
|
57270
57742
|
disabled: busy,
|
|
57743
|
+
"data-testid": testId,
|
|
57271
57744
|
onClick: (e) => {
|
|
57272
57745
|
e.stopPropagation();
|
|
57273
57746
|
if (!busy) onPress();
|
|
57274
57747
|
},
|
|
57275
|
-
className: cn("inline-flex items-center justify-center rounded-full transition-colors", primary ? "h-12 w-12 bg-primary text-primary-foreground hover:bg-primary/90 shadow-md" : "h-10 w-10 text-foreground-muted hover:bg-surface-hover", busy && "opacity-40 cursor-not-allowed"),
|
|
57748
|
+
className: cn("inline-flex items-center justify-center rounded-full transition-colors", primary ? "h-12 w-12 bg-primary text-primary-foreground hover:bg-primary/90 shadow-md" : "h-10 w-10 text-foreground-muted hover:bg-surface-hover", active === true && "bg-primary/15 text-primary", busy && "opacity-40 cursor-not-allowed"),
|
|
57276
57749
|
children
|
|
57277
57750
|
});
|
|
57278
57751
|
}
|
|
57279
57752
|
/**
|
|
57280
|
-
* MediaPlayerHeroCard —
|
|
57753
|
+
* MediaPlayerHeroCard — the state of a MediaPlayer device and every control it
|
|
57754
|
+
* exposes, drawn from `deriveMediaPlayerView` (the state → view mapping and
|
|
57755
|
+
* its spec live in `media-player-view.ts`).
|
|
57281
57756
|
*
|
|
57282
|
-
*
|
|
57283
|
-
*
|
|
57284
|
-
*
|
|
57285
|
-
*
|
|
57286
|
-
*
|
|
57287
|
-
*
|
|
57288
|
-
*
|
|
57289
|
-
*
|
|
57757
|
+
* - Power orb: glowing when on, amber in standby, flat when off, dashed with a
|
|
57758
|
+
* question mark while the state is unknown (never drawn as off). It is the
|
|
57759
|
+
* power switch when the device declares `MediaPlayerPower`.
|
|
57760
|
+
* - Running line: equalizer while playing, spinner while buffering, pause
|
|
57761
|
+
* glyph when paused; a value the driver only guesses carries an "assumed" mark.
|
|
57762
|
+
* - Only while the device is on: now-playing, seek, transport (previous /
|
|
57763
|
+
* play-pause / stop / next), volume (slider with mute, or steps when the
|
|
57764
|
+
* device has no level reading), the source (a picker when it can switch),
|
|
57765
|
+
* shuffle and repeat. Each appears only when the status fills it or a
|
|
57766
|
+
* `DeviceFeature` declares it — no per-vendor list.
|
|
57290
57767
|
*
|
|
57291
57768
|
* Cap-gated on `media-player` — returns null when the device lacks the cap.
|
|
57769
|
+
* Motion respects `prefers-reduced-motion`.
|
|
57292
57770
|
*/
|
|
57293
57771
|
function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
57294
57772
|
const t = useUiText();
|
|
@@ -57299,14 +57777,24 @@ function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
57299
57777
|
slice: (d) => d.state.mediaPlayer
|
|
57300
57778
|
});
|
|
57301
57779
|
const { display, applyOptimistic } = useOptimisticSlice(slice, { enabled: optimistic ?? true });
|
|
57780
|
+
const runningSlice = useDeviceState(trpc, deviceId, (st) => st.runningState);
|
|
57302
57781
|
if (cap === void 0) return null;
|
|
57303
|
-
|
|
57782
|
+
const view = deriveMediaPlayerView(display, features, { running: runningSlice?.running });
|
|
57304
57783
|
const busy = !available;
|
|
57305
|
-
const
|
|
57306
|
-
const
|
|
57307
|
-
const
|
|
57308
|
-
const
|
|
57309
|
-
|
|
57784
|
+
const status = display;
|
|
57785
|
+
const powered = status !== void 0 && view.power === "on";
|
|
57786
|
+
const action = toggleAction(status?.state ?? "off");
|
|
57787
|
+
const switchPower = () => {
|
|
57788
|
+
if (busy) return;
|
|
57789
|
+
if (view.power === "on") {
|
|
57790
|
+
applyOptimistic({ state: "off" });
|
|
57791
|
+
cap.turnOff({});
|
|
57792
|
+
} else {
|
|
57793
|
+
applyOptimistic({ state: "on" });
|
|
57794
|
+
cap.turnOn({});
|
|
57795
|
+
}
|
|
57796
|
+
};
|
|
57797
|
+
const powerLabel = powerLabelOf(view.power, t);
|
|
57310
57798
|
const handleToggle = () => {
|
|
57311
57799
|
if (busy) return;
|
|
57312
57800
|
if (action === "play") {
|
|
@@ -57317,17 +57805,60 @@ function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
57317
57805
|
cap.pause({});
|
|
57318
57806
|
}
|
|
57319
57807
|
};
|
|
57320
|
-
const
|
|
57321
|
-
const
|
|
57322
|
-
const
|
|
57808
|
+
const title = status?.currentMedia?.title ?? null;
|
|
57809
|
+
const subtitle = status?.currentMedia?.artist ?? status?.currentMedia?.album ?? null;
|
|
57810
|
+
const hasNowPlaying = powered && (title !== null || subtitle !== null || view.artworkUrl !== null);
|
|
57811
|
+
const assumedAny = view.stateAssumed || view.volumeAssumed || view.muteAssumed || view.sourceAssumed;
|
|
57812
|
+
const sourceText = powered && view.source !== null && !view.source.selectable ? view.source.current : "";
|
|
57813
|
+
const volumeLevel = status?.volumeLevel ?? null;
|
|
57323
57814
|
return /* @__PURE__ */ jsxs("div", {
|
|
57324
|
-
className: "flex flex-col items-stretch gap-4 rounded-lg border
|
|
57815
|
+
className: cn("flex flex-col items-stretch gap-4 rounded-lg border bg-surface p-6", "transition-colors duration-500 motion-reduce:transition-none", view.power === "on" ? "border-success/40" : "border-border"),
|
|
57816
|
+
"data-testid": "media-hero",
|
|
57817
|
+
"data-power": view.power,
|
|
57325
57818
|
children: [
|
|
57326
|
-
/* @__PURE__ */ jsx(
|
|
57327
|
-
|
|
57328
|
-
|
|
57819
|
+
/* @__PURE__ */ jsx("style", { children: MEDIA_HERO_KEYFRAMES }),
|
|
57820
|
+
/* @__PURE__ */ jsxs("div", {
|
|
57821
|
+
className: "flex flex-col items-center gap-2",
|
|
57822
|
+
children: [/* @__PURE__ */ jsx(PowerOrb, {
|
|
57823
|
+
power: view.power,
|
|
57824
|
+
label: powerLabel,
|
|
57825
|
+
busy,
|
|
57826
|
+
onPress: view.canSwitchPower ? switchPower : void 0
|
|
57827
|
+
}), /* @__PURE__ */ jsx(StateLine, {
|
|
57828
|
+
state: status?.state,
|
|
57829
|
+
assumed: assumedAny,
|
|
57830
|
+
source: sourceText,
|
|
57831
|
+
running: /* @__PURE__ */ jsx(RunningIndicator, { running: view.running })
|
|
57832
|
+
})]
|
|
57833
|
+
}),
|
|
57834
|
+
hasNowPlaying && /* @__PURE__ */ jsx(NowPlaying, {
|
|
57835
|
+
title,
|
|
57836
|
+
subtitle,
|
|
57837
|
+
artworkUrl: view.artworkUrl
|
|
57838
|
+
}),
|
|
57839
|
+
powered && view.source !== null && view.source.selectable && /* @__PURE__ */ jsxs("div", {
|
|
57840
|
+
"data-testid": "media-source-select",
|
|
57841
|
+
className: "flex items-center gap-2",
|
|
57842
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
57843
|
+
className: "text-xs text-foreground-subtle",
|
|
57844
|
+
children: t("uiLibrary.mediaPlayerHero.source", "Source")
|
|
57845
|
+
}), /* @__PURE__ */ jsx(Select, {
|
|
57846
|
+
"aria-label": t("uiLibrary.mediaPlayerHero.source", "Source"),
|
|
57847
|
+
value: view.source.current,
|
|
57848
|
+
disabled: busy,
|
|
57849
|
+
wrapperClassName: "relative min-w-0 flex-1",
|
|
57850
|
+
options: view.source.options.map((o) => ({
|
|
57851
|
+
value: o,
|
|
57852
|
+
label: o
|
|
57853
|
+
})),
|
|
57854
|
+
onChange: (e) => {
|
|
57855
|
+
if (busy) return;
|
|
57856
|
+
applyOptimistic({ source: e.target.value });
|
|
57857
|
+
cap.selectSource({ source: e.target.value });
|
|
57858
|
+
}
|
|
57859
|
+
})]
|
|
57329
57860
|
}),
|
|
57330
|
-
|
|
57861
|
+
powered && view.seek && status !== void 0 && /* @__PURE__ */ jsxs("div", {
|
|
57331
57862
|
"data-testid": "media-seek",
|
|
57332
57863
|
className: "flex flex-col gap-1",
|
|
57333
57864
|
children: [/* @__PURE__ */ jsxs("label", {
|
|
@@ -57341,10 +57872,10 @@ function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
57341
57872
|
"aria-label": t("uiLibrary.mediaPlayerHero.seek", "Seek"),
|
|
57342
57873
|
type: "range",
|
|
57343
57874
|
min: 0,
|
|
57344
|
-
max:
|
|
57875
|
+
max: status.duration ?? 0,
|
|
57345
57876
|
step: 1e3,
|
|
57346
57877
|
className: "absolute inset-0 h-4 w-full cursor-pointer opacity-0",
|
|
57347
|
-
value:
|
|
57878
|
+
value: status.position ?? 0,
|
|
57348
57879
|
disabled: busy,
|
|
57349
57880
|
onChange: (e) => {
|
|
57350
57881
|
if (busy) return;
|
|
@@ -57355,18 +57886,19 @@ function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
57355
57886
|
}),
|
|
57356
57887
|
/* @__PURE__ */ jsx("div", {
|
|
57357
57888
|
className: "pointer-events-none",
|
|
57358
|
-
children: /* @__PURE__ */ jsx(GripTrack, { fraction:
|
|
57889
|
+
children: /* @__PURE__ */ jsx(GripTrack, { fraction: progressFraction(status.position, status.duration) })
|
|
57359
57890
|
})
|
|
57360
57891
|
]
|
|
57361
57892
|
}), /* @__PURE__ */ jsxs("div", {
|
|
57362
57893
|
className: "flex justify-between text-[11px] tabular-nums text-foreground-subtle",
|
|
57363
|
-
children: [/* @__PURE__ */ jsx("span", { children: formatClock(
|
|
57894
|
+
children: [/* @__PURE__ */ jsx("span", { children: formatClock(status.position) }), /* @__PURE__ */ jsx("span", { children: formatClock(status.duration) })]
|
|
57364
57895
|
})]
|
|
57365
57896
|
}),
|
|
57366
|
-
/* @__PURE__ */ jsxs("div", {
|
|
57897
|
+
powered && view.transport.playPause && /* @__PURE__ */ jsxs("div", {
|
|
57367
57898
|
className: "flex items-center justify-center gap-4",
|
|
57899
|
+
"data-testid": "media-transport",
|
|
57368
57900
|
children: [
|
|
57369
|
-
|
|
57901
|
+
view.transport.previous && /* @__PURE__ */ jsx(TransportButton, {
|
|
57370
57902
|
label: t("uiLibrary.mediaPlayerHero.previous", "Previous"),
|
|
57371
57903
|
busy,
|
|
57372
57904
|
onPress: () => void cap.previous({}),
|
|
@@ -57388,7 +57920,16 @@ function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
57388
57920
|
"aria-hidden": "true"
|
|
57389
57921
|
})
|
|
57390
57922
|
}),
|
|
57391
|
-
|
|
57923
|
+
view.transport.stop && /* @__PURE__ */ jsx(TransportButton, {
|
|
57924
|
+
label: t("uiLibrary.mediaPlayerHero.stop", "Stop"),
|
|
57925
|
+
busy,
|
|
57926
|
+
onPress: () => void cap.stop({}),
|
|
57927
|
+
children: /* @__PURE__ */ jsx(Square, {
|
|
57928
|
+
className: "h-4 w-4",
|
|
57929
|
+
"aria-hidden": "true"
|
|
57930
|
+
})
|
|
57931
|
+
}),
|
|
57932
|
+
view.transport.next && /* @__PURE__ */ jsx(TransportButton, {
|
|
57392
57933
|
label: t("uiLibrary.mediaPlayerHero.next", "Next"),
|
|
57393
57934
|
busy,
|
|
57394
57935
|
onPress: () => void cap.next({}),
|
|
@@ -57399,24 +57940,24 @@ function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
57399
57940
|
})
|
|
57400
57941
|
]
|
|
57401
57942
|
}),
|
|
57402
|
-
|
|
57943
|
+
powered && view.volume === "slider" && /* @__PURE__ */ jsxs("div", {
|
|
57403
57944
|
"data-testid": "media-volume",
|
|
57404
57945
|
className: "flex items-center gap-2",
|
|
57405
57946
|
children: [
|
|
57406
|
-
/* @__PURE__ */ jsx("button", {
|
|
57947
|
+
view.mute && /* @__PURE__ */ jsx("button", {
|
|
57407
57948
|
type: "button",
|
|
57408
|
-
"aria-label":
|
|
57409
|
-
title:
|
|
57949
|
+
"aria-label": status?.isMuted === true ? t("uiLibrary.mediaPlayerHero.unmute", "Unmute") : t("uiLibrary.mediaPlayerHero.mute", "Mute"),
|
|
57950
|
+
title: status?.isMuted === true ? t("uiLibrary.mediaPlayerHero.unmute", "Unmute") : t("uiLibrary.mediaPlayerHero.mute", "Mute"),
|
|
57410
57951
|
disabled: busy,
|
|
57411
57952
|
onClick: (e) => {
|
|
57412
57953
|
e.stopPropagation();
|
|
57413
|
-
if (busy
|
|
57414
|
-
const muted = !
|
|
57954
|
+
if (busy) return;
|
|
57955
|
+
const muted = status?.isMuted === null || status === void 0 ? true : !status.isMuted;
|
|
57415
57956
|
applyOptimistic({ isMuted: muted });
|
|
57416
57957
|
cap.setMute({ muted });
|
|
57417
57958
|
},
|
|
57418
57959
|
className: cn("inline-flex h-7 w-7 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors", busy && "opacity-40 cursor-not-allowed"),
|
|
57419
|
-
children:
|
|
57960
|
+
children: status?.isMuted === true ? /* @__PURE__ */ jsx(VolumeX, {
|
|
57420
57961
|
className: "h-4 w-4",
|
|
57421
57962
|
"aria-hidden": "true"
|
|
57422
57963
|
}) : /* @__PURE__ */ jsx(Volume2, {
|
|
@@ -57438,7 +57979,7 @@ function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
57438
57979
|
max: 100,
|
|
57439
57980
|
step: 1,
|
|
57440
57981
|
className: "absolute inset-0 h-4 w-full cursor-pointer opacity-0",
|
|
57441
|
-
value: volumeLevel,
|
|
57982
|
+
value: volumeLevel ?? 0,
|
|
57442
57983
|
disabled: busy,
|
|
57443
57984
|
onChange: (e) => {
|
|
57444
57985
|
if (busy) return;
|
|
@@ -57449,19 +57990,92 @@ function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
57449
57990
|
}),
|
|
57450
57991
|
/* @__PURE__ */ jsx("div", {
|
|
57451
57992
|
className: "pointer-events-none",
|
|
57452
|
-
children: /* @__PURE__ */ jsx(
|
|
57993
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
57994
|
+
className: cn(volumeLevel === null && "opacity-40"),
|
|
57995
|
+
"data-testid": "media-volume-track",
|
|
57996
|
+
"data-known": volumeLevel !== null,
|
|
57997
|
+
children: /* @__PURE__ */ jsx(GripTrack, { fraction: status?.isMuted === true || volumeLevel === null ? 0 : volumeLevel / 100 })
|
|
57998
|
+
})
|
|
57453
57999
|
})
|
|
57454
58000
|
]
|
|
57455
58001
|
}),
|
|
57456
|
-
/* @__PURE__ */
|
|
58002
|
+
/* @__PURE__ */ jsx("span", {
|
|
57457
58003
|
className: "w-9 text-right text-[11px] tabular-nums text-foreground-subtle",
|
|
57458
|
-
children:
|
|
58004
|
+
children: volumeLevel === null ? "—" : `${volumeLevel}%`
|
|
57459
58005
|
})
|
|
57460
58006
|
]
|
|
58007
|
+
}),
|
|
58008
|
+
powered && view.volume === "steps" && /* @__PURE__ */ jsxs("div", {
|
|
58009
|
+
"data-testid": "media-volume-steps",
|
|
58010
|
+
className: "flex items-center justify-center gap-3 text-xs text-foreground-subtle",
|
|
58011
|
+
children: [
|
|
58012
|
+
/* @__PURE__ */ jsx(TransportButton, {
|
|
58013
|
+
label: t("uiLibrary.mediaPlayerHero.volumeDown", "Volume down"),
|
|
58014
|
+
busy,
|
|
58015
|
+
onPress: () => void cap.volumeDown({ steps: 1 }),
|
|
58016
|
+
children: /* @__PURE__ */ jsx(Minus, {
|
|
58017
|
+
className: "h-4 w-4",
|
|
58018
|
+
"aria-hidden": "true"
|
|
58019
|
+
})
|
|
58020
|
+
}),
|
|
58021
|
+
/* @__PURE__ */ jsx(Volume2, {
|
|
58022
|
+
className: "h-4 w-4",
|
|
58023
|
+
"aria-hidden": "true"
|
|
58024
|
+
}),
|
|
58025
|
+
/* @__PURE__ */ jsx(TransportButton, {
|
|
58026
|
+
label: t("uiLibrary.mediaPlayerHero.volumeUp", "Volume up"),
|
|
58027
|
+
busy,
|
|
58028
|
+
onPress: () => void cap.volumeUp({ steps: 1 }),
|
|
58029
|
+
children: /* @__PURE__ */ jsx(Plus, {
|
|
58030
|
+
className: "h-4 w-4",
|
|
58031
|
+
"aria-hidden": "true"
|
|
58032
|
+
})
|
|
58033
|
+
})
|
|
58034
|
+
]
|
|
58035
|
+
}),
|
|
58036
|
+
powered && status !== void 0 && (view.shuffle || view.repeat) && /* @__PURE__ */ jsxs("div", {
|
|
58037
|
+
className: "flex items-center justify-center gap-2",
|
|
58038
|
+
"data-testid": "media-modes",
|
|
58039
|
+
children: [view.shuffle && status.shuffle !== null && /* @__PURE__ */ jsx(TransportButton, {
|
|
58040
|
+
label: t("uiLibrary.mediaPlayerHero.shuffle", "Shuffle"),
|
|
58041
|
+
busy,
|
|
58042
|
+
active: status.shuffle,
|
|
58043
|
+
onPress: () => {
|
|
58044
|
+
const shuffle = !status.shuffle;
|
|
58045
|
+
applyOptimistic({ shuffle });
|
|
58046
|
+
cap.setShuffle({ shuffle });
|
|
58047
|
+
},
|
|
58048
|
+
children: /* @__PURE__ */ jsx(Shuffle, {
|
|
58049
|
+
className: "h-4 w-4",
|
|
58050
|
+
"aria-hidden": "true"
|
|
58051
|
+
})
|
|
58052
|
+
}), view.repeat && status.repeat !== null && /* @__PURE__ */ jsx(TransportButton, {
|
|
58053
|
+
label: t("uiLibrary.mediaPlayerHero.repeat", "Repeat"),
|
|
58054
|
+
busy,
|
|
58055
|
+
active: status.repeat !== "off",
|
|
58056
|
+
onPress: () => {
|
|
58057
|
+
if (status.repeat === null) return;
|
|
58058
|
+
const repeat = NEXT_REPEAT[status.repeat];
|
|
58059
|
+
applyOptimistic({ repeat });
|
|
58060
|
+
cap.setRepeat({ repeat });
|
|
58061
|
+
},
|
|
58062
|
+
children: status.repeat === "one" ? /* @__PURE__ */ jsx(Repeat1, {
|
|
58063
|
+
className: "h-4 w-4",
|
|
58064
|
+
"aria-hidden": "true"
|
|
58065
|
+
}) : /* @__PURE__ */ jsx(Repeat, {
|
|
58066
|
+
className: "h-4 w-4",
|
|
58067
|
+
"aria-hidden": "true"
|
|
58068
|
+
})
|
|
58069
|
+
})]
|
|
57461
58070
|
})
|
|
57462
58071
|
]
|
|
57463
58072
|
});
|
|
57464
58073
|
}
|
|
58074
|
+
function powerLabelOf(power, t) {
|
|
58075
|
+
if (power === "on") return t("uiLibrary.mediaPlayerHero.turnOff", "Turn off");
|
|
58076
|
+
if (power === "unknown") return t("uiLibrary.mediaPlayerHero.powerUnknown", "Power state unknown");
|
|
58077
|
+
return t("uiLibrary.mediaPlayerHero.turnOn", "Turn on");
|
|
58078
|
+
}
|
|
57465
58079
|
//#endregion
|
|
57466
58080
|
//#region src/composites/device-controls/alarm-hero-card.tsx
|
|
57467
58081
|
var ALARM_STATE_CONFIG = {
|
|
@@ -73035,7 +73649,7 @@ function TimelineSlider({ markers, bands = [], selectedId = null, step = 5, aria
|
|
|
73035
73649
|
}
|
|
73036
73650
|
//#endregion
|
|
73037
73651
|
//#region src/ui-library-version.ts
|
|
73038
|
-
var uiLibraryVersion = "1.2.
|
|
73652
|
+
var uiLibraryVersion = "1.2.377";
|
|
73039
73653
|
//#endregion
|
|
73040
73654
|
//#region src/hooks/use-account-unit-preferences.ts
|
|
73041
73655
|
/**
|
|
@@ -73979,12 +74593,12 @@ var statusIcons = {
|
|
|
73979
74593
|
* Render inside `<Suspense>` at all call sites. */
|
|
73980
74594
|
var MaskShapeCanvas = lazy(() => import("./MaskShapeCanvas-C9cJlxvG.js").then((m) => ({ default: m.MaskShapeCanvas })));
|
|
73981
74595
|
/** Lazy-wrapped `MotionZonesSettings` — code-split off the main bundle. */
|
|
73982
|
-
var MotionZonesSettings = lazy(() => import("./MotionZonesSettings-
|
|
74596
|
+
var MotionZonesSettings = lazy(() => import("./MotionZonesSettings-BvpjmW6y.js").then((m) => ({ default: m.MotionZonesSettings })));
|
|
73983
74597
|
/** Lazy-wrapped `SceneMonitorEditor` — code-split off the main bundle for the
|
|
73984
74598
|
* same reason: it mounts `MaskShapeCanvas`, which chains react-konva. Render
|
|
73985
74599
|
* inside `<Suspense>`; the admin-ui `/scenes` dialog is its only caller. */
|
|
73986
|
-
var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-
|
|
74600
|
+
var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-BwelmHlF.js").then((m) => ({ default: m.SceneMonitorEditor })));
|
|
73987
74601
|
/** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
|
|
73988
|
-
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-
|
|
74602
|
+
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-D7o4tx8e.js").then((m) => ({ default: m.PrivacyMaskSettings })));
|
|
73989
74603
|
//#endregion
|
|
73990
|
-
export { Ship as $, CloudSnow as $n, Activity as $r, Lock as $t, Trash2 as A, AddProviderEntryDialog, AddonGlobalSettingsForm, AdminLinkQuickAction, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, FlashlightOff as An, AppShell, Bot as Ar, ArcKnob, Phone as At, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, Sunrise as B, BATTERY_BADGE_LOW_KEY, BATTERY_BADGE_NORMAL_KEY, BINARY_BATTERY_LOW_BELOW, BOOLEAN_STATES, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, BackToStepsButton, Badge, BarSeries, BatteryBadge, Droplets as Bn, BottomSheet, BatteryLow as Br, Breadcrumb, BrightnessPanel, BrokerPickerSlotProvider, MoveHorizontal as Bt, Button, ButtonControl, ButtonHeroCard, Unlink2 as C, CENTER, CHART_SERIES_TOKENS, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONSUMABLE_LOW_PERCENT, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, ChartFrame, ChartPlaceholder, ChartSwatch, ChartWindowToggle, Checkbox, ChildSectionAccordion, ClimatePanel, Grid2x2 as Cn, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigNotificationTargetMultiSelectFieldView, ConfigNotificationTargetSelectFieldView, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumableLevelBadge, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, Cast as Cr, PowerOff as Ct, CustomFieldRenderersProvider, TriangleAlert as D, DATA_RECORDS_KIND_PARAM, DATA_RECORDS_OWNER_PARAM, DATA_RECORD_FACET_GROUPS, DEFAULT_COLOR, DEFAULT_PAGINATION_LABELS, DEFAULT_UNIT_PREFERENCES, DEVICE_COLUMNS, DEVICE_EXPORT_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_NAME_FORMS, DEVICE_NAME_JOIN, DEVICE_PICKER_GROUP_STORAGE_KEY, DEVICE_ROLE_META, DEVICE_ROLE_NOUNS, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DEVICE_TYPE_NOUNS, DataRecordsHub, DataTable, DataTableFilterBar, DataTablePager, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceExportSetup, DeviceFilterBar, DeviceFleetFromServer, DeviceFleetProvider, DeviceGrid, DeviceHistoryView, DeviceItem, DeviceList, DeviceMultiSelectField, DeviceName, DevicePicker, DeviceQuickDetailProvider, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, DevicesFailedLine, DevicesLoadingLine, DevicesWidenWarning, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DisclosureChevron, DiscoveryPanel, DisplayPaletteProvider, Funnel as Dn, DoorbellRecentPanel, Bus as Dr, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, Plane as Dt, DummyHeroCard, DummyInline, Truck as E, EMPTY_DATA_TABLE_FILTER, EMPTY_HISTORY_PANELS, EVENT_KIND_ICONS, EmptyState, Gamepad2 as En, EndpointResultsCard, EndpointTestCard, EntryJsonSchemaForm, Cable as Er, ErrorBox, Play as Et, EventKindGlyph, EventStream, ExtensionsPanel, Timer as F, FALLBACK_SCOPE, FAST_ICON_GLYPHS, FILL, FLEET_LIST_GC_TIME_MS, FLEET_LIST_QUERY_KEY, FLEET_LIST_STALE_TIME_MS, FanHeroCard, FanInlineControl, FanPanel, FileInput, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, Eye as Fn, FormField$1 as FormField, Bell as Fr, Network as Ft, Sprout as G, GAP_INTERVAL_FACTOR, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GateBadge, GateControl, Dog as Gn, ArrowUp as Gr, GripTrack, GroupedModelSelector, GroupedTilePicker, Minimize2 as Gt, SunMedium as H, HISTORY_PAGE_PATH, HISTORY_PANELS_NAMESPACE, HISTORY_SELECTION_MAX, HISTORY_WINDOW_IDS, HISTORY_WINDOW_MS, HOST_WIDGETS, HUB_SESSION_RUN_MS, HistoryChart, HistoryWindowBar, HlsVideo, Download as Hn, HotkeyProvider, HotkeyScope, HoverZoomImage, Bath as Hr, Moon as Ht, HubSessionTestCard, HumidifierHeroCard, HumidifierInlineControl, TimerOff as I, INPUT_COMPACT, INPUT_SHELL, IconAction, IconButton, IconPicker, ImageHeroCard, ImageInlineControl, ImageSelector, EyeOff as In, InferenceConfigSelector, Input, BellRing as Ir, Navigation as It, ItemFormDialog, Smartphone as J, Cpu as Jn, ArrowLeft as Jr, Menu as Jt, Sparkles as K, KebabMenu, KeyValueList, Database as Kn, ArrowUpToLine as Kr, Mic as Kt, Thermometer as L, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LayeredSettingsForm, LightHeroCard, LightInlineControl, ExternalLink as Ln, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, Battery as Lr, Music as Lt, Tractor as M, MEDIA_GRID, MINUTES_PER_DAY, MODE_COLOR, MaskShapeCanvas, MediaCard, MediaGrid, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, Film as Mn, MobileDrawer, ModelPicker, MotionZonesSettings, Blinds as Mr, PawPrint as Mt, ToggleRight as N, NAVIGATION_DRIVE_INTERVAL_MS, NODE_COLOR_IDS, NatResultCard, NavigationPanel, NetworkLinkBadge, Feather as Nn, NodeMultiSelectField, NodePicker, NodeSelectField, NotificationTargetSelectField, NotificationTargetsField, Bird as Nr, Pause as Nt, TrendingDown as O, OCCUPANCY_KEY, OPTION_SELECT_SEARCH_MIN_OPTIONS, OfflineBadge, Footprints as On, OptionSelect, Bug as Or, Pipette as Ot, ToggleLeft as P, PAGE_SIZE_ALL, PHASE_CONFIG, PICKER_CHIP_LIMIT, PICKER_DEFAULT_GROUP_BY, PICKER_GROUP_BY_MODES, PICKER_GROUP_COLLAPSE_AT, PICKER_NONE_KEY, PICKER_NOUN_PLURAL, PICKER_NO_FILTERS, PICKER_PAGE_SIZE, PICKER_SEARCH_DEBOUNCE_MS, PICKER_WINDOW, PRIORITY, PTZOverlay, PageHeader, PageShell, PageSizeSelect, Pagination, PasswordInput, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PlaceholderChipField, PlayerOverlaysProvider, Fan as Pn, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, Bike as Pr, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, ProviderEntryPills, Package as Pt, PtzPanel, Siren as Q, CloudSun as Qn, AirVent as Qr, QrCode, Mail as Qt, QuantityValueInput, Target as R, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RESOLUTION_BUCKET_MS, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, ROOT_DETECTOR_STEP_ID, RadialGauge, Radio, RecordEntriesPanel, RecordedPlaybackProvider, RecordingPanel, ResponseLog, RetrainReviewBadge, Eraser as Rn, RoleDisplayDefaultsFromServer, RoleDisplayDefaultsProvider, RoleNodePill, RootModelSourceControl, RootSuppliedModelNote, BatteryWarning as Rr, Move as Rt, RunReport, RunningBadge, RunningStatusLine, Upload as S, SCENE_CAPTURE_VARIANTS, SECRET_MASK_PLACEHOLDER, SECRET_REVEAL_MS, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SETTING_ROW, SETTING_ROW_LABEL, SETTING_ROW_STACK_BREAKPOINT, SETTING_ROW_VALUE, SETTING_ROW_VALUE_TEXT, SNAPSHOT_MEDIA_PATH, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, STEP_DOCK_WIDTH_PX, SUBJECT_PATH_DWELL_EPS, SUBJECT_PATH_FULL_FRAME_COVERAGE, SUBJECT_PATH_MAX_POINTS, SceneMonitorEditor, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, SecretFieldControl, SecretRevealProvider, SectionCard, SectionToolbar, SectionedPage, SegmentedChoice, Select, SelectedChip, SemanticBadge, SendFrameToTrainingButton, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideToggle, Slider, GripHorizontal as Sn, SnapshotButton, SortHeaderButton, Sparkline, Cat as Sr, Power as St, StableTabPanel, StatCard, StateTimeline, StateValuesStream, StatusBadge, StepDetailDock, StepInspectorPanel, StepModelRow, StepTimings, Stepper, StorageRecordsPanel, StreamBrokerSelector, StreamDebugOverlay, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, Type as T, TABLE_SCROLL_MAX_H, TEMPERATURE_SCALES, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, Textarea, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimeSeriesChart, TimelineSlider, TimezoneSelector, Gauge as Tn, Tooltip, TooltipContent, TooltipTrigger, Camera as Tr, TrainingBaseModelPicker, TrainingCollectionPicker, Plus as Tt, Star as U, UNIT_PREFERENCES_NAMESPACE, UiTextProvider, UiTrans, DoorOpen as Un, UnitPicker, UnitPreferencesFromServer, UnitPreferencesProvider, Ban as Ur, MonitorPlay as Ut, Sun as V, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, ViewSwitch, Droplet as Vn, VodPlaybackProvider, BatteryFull as Vr, MousePointerClick as Vt, Square as W, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, DoorClosed as Wn, Baby as Wr, Minus as Wt, SkipForward as X, Cog as Xn, ArrowDownToLine as Xr, Maximize2 as Xt, SlidersHorizontal as Y, Copy as Yn, ArrowDown as Yr, Megaphone as Yt, SkipBack as Z, Cloud as Zn, ZoneEditingProvider, AlarmSmoke as Zr, MapPin as Zt, Vibrate as _, Heater as _n, ChevronRight as _r, Radio$1 as _t, Wrench as a, acceleratorLabel, acceleratorShortLabel, agentColumnKey, alignSeries, allDeviceTypeFilterOptions, Link2 as an, anchorNow, applyFleetQueryDefaults, applyPickerFilters, CircleX as ar, ariaSortForColumn, assignNodeColorId, Settings as at, axisTicks, User as b, badgeFor, binaryBatteryIsLow, bindsToModel, Hand as bn, booleanLabels, boundsInPicked, Check as br, QrCode$1 as bt, bucketTotals, buildColorByNodeId, buildDataRecordRows, buildPeerConnectionConfig, buildStepTreeFromSchema, buildSubjectPath, buildTimeSeriesModel, Wifi as c, catalogHasDraft, chartKeys, chartSeriesStyle, childEntityId, childListName, chipOverflow, chunk, clampMinute, classifyAddressScope, classifyCapability, classifySessionVerdict, clearPickerGroup, clusterRootModelIds, cn, colorIdForNode, columnsForContext, compareSrflxMappings, computePageButtons, consumableItemLevel, consumableLevelBarClass, consumableLevelLabel, consumableLevelVariant, containerChildToRef, countableDevices, coverHighlight, coverageLine, CirclePlus as cr, createAddonI18n, createSharedContext, createTheme, ScrollText as ct, currentAddonLanguage, cursorFractionFor, WifiLow as d, darkColors, dataRecordContents, dataRecordKey, dataRecordSearchText, dataRecordType, dataTableFacetGroups, dataTableFacets, decodeCustomWindow, decodeSeriesRef, defaultAxisSpec, defaultOfField, defaultSelectClusterRoots, defaultSingleClusterRoot, defaultTheme, defaultUiText, deriveDeviceKind, deriveWebrtcDebugStats, describeDeviceSelector, detectPlatform, deviceIntegrationResolver, deviceListStateOf, deviceMatchesFilter, deviceNameNouns, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, Info as dn, dockBox, CircleCheck as dr, draftFromQuery, Sailboat as dt, effectivePageSize, emptyDevicesWidens, emptySessionRun, LockOpen as en, encodeCustomWindow, encodeSeriesRef, energyBuckets, ensureMfHostInit, CloudRain as er, Shield as et, eventKindLabel, WifiHigh as f, filterDataTableRows, filterDeviceOptions, filterOccupancyLines, filterOptions as filterOptionSelectOptions, filterPickerDevices, finalizeSessionRun, findTimezone, flattenPickerGrouping, flattenPickerRows, fleetViewOf, Inbox as fn, foldDeviceName, formatChartBytes, formatChartNumber, formatChartValue, formatControlDateTime, formatDeviceName, formatLastSeen, formatNumeric, formatSettingValue, formatSpan, formatTimeLabel, CircleCheckBig as fr, freezeVerdict, Router as ft, fuzzyMatch, Volume2 as g, gapThresholdMs, getClassColor, getPhaseVisual, History as gn, ChevronUp as gr, groupAgentColumns, groupChildrenByLayout, groupDeviceSeries, groupPickerDevices, groupPickerDevicesBy, RefreshCw as gt, VolumeX as h, hardwareLabel, historyPageHref, House as hn, ChevronsDownUp as hr, RotateCcw as ht, hubOrigin, hubPath, hubUrl, hubWsUrl, humanDuration, humanizeName, humidifierTint, X as i, iconGlyphsFailed, iconGlyphsLoaded, ListChecks as in, indexDeviceNames, initialScrubState, insertAtSelection, Clapperboard as ir, isAbsentProvider, isByteUnit, isConsumableLevelField, isDataTableFilterActive, isDeviceNameStock, isDrawableSubjectPath, isFieldVisible, isGroupExpanded, isHistoryWindowId, isKeychainFieldValue, isModelScopedField, isPickableUnit, isRedactedSecret, isRefusal, isSecretField, isValueField, Share2 as it, TrainFront as j, Flame as jn, Bone as jr, Pencil as jt, TrendingUp as k, Flashlight as kn, Box as kr, Pin as kt, WifiZero as l, lawnMowerActivityMeta, lightColors, linePoints, LayoutGrid as ln, loadIconGlyphs, loadRemoteBundle, CirclePause as lr, Scan as lt, lucideExportName, WashingMachine as m, makeScrubBridge, mapRootDetectorPlacements, matchesCombo, mergeSecretForSubmit, metadataEntries, metadataString, minuteFromPointer, ImageOff as mn, mountAddonPage, mountPath, ChevronsUpDown as mr, RotateCw as mt, ZoomIn as n, nextGridPosition, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, niceMax, niceRange, LoaderCircle as nn, nodeColorClass, nodeSoftBgClass, nodeTextColorClass, normalizeForSearch, normalizeLanguage, normalizeSelection, nounSpecFor, CloudFog as nr, ShieldCheck as nt, Workflow as o, occupancyFacets, occupancyLines, offListSelections, Lightbulb as on, openTopLayer, optionSearchText as optionSelectSearchText, CircleStop as or, orphanDeviceLabel, Server as ot, outsideBounds, overrideEntityIdFromLink, Waves as p, pageRows, pageSizeLabel, paginateRows, parentDetailOf, parseCapKey, parseCombo, parseConsumableLevel, parseIceCandidate, parsePickerGroupBy, parseProducerKey, parseRecordedServerMessage, partitionSelected as partitionOptionSelectSelected, partitionSuggested, pickerFacetFilterShown, pickerFacetKey, pickerFacetOptions, pickerFiltersActive, pickerGroupKey, pickerHiddenSelectedCount, pickerLocationKey, pickerQueryTokens, pickerRowFacts, pickerSearchText, pickerZoneFilterSuspended, pinnedStreamChoices, placePopover, Image as pn, CircleAlert as pr, preferenceForQuantity, previousWindow, projectSubjectPath, providerIcons, Route as pt, Snowflake as q, Crosshair as qn, ArrowRight as qr, MessageSquare as qt, quantityStoredUnit, quantityUnitChoices, Zap as r, readHistory, readHistoryPanels, readItemId, readStoredGroupBy, readUnitPreferences, reduceSessionRun, registerAddonBundle, renderMarkup, renderTagged, resetHubMountForTests, resetPickerFilters, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDeviceIntegration, resolveDeviceLabel, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolveHistoryWindow, resolveSearchable as resolveOptionSelectSearchable, resolveParentNames, resolvePrimaryChild, resolveSelectedDevices, resolveSensorDisplay, resolveStepDefaultModel, retrainReviewBadgeLook, List as rn, roiTooLarge, rootSourceState, routerBasename, Clock as rr, ShieldAlert as rt, runningDurationSince, runningStatusParts, Wind as s, sameDeviceName, sameLocationSuggestions, scrubReducer, searchSteps, secretDisplayValue, secretSubmitValue, segmentsFromChanges, selectPickerGroup, selectedDeviceOptions, serializeRecordedCommand, seriesRefId, settingsModelIdFor, sharedGapSpans, shiftPoints, shouldCommit, shouldEmit, shouldShowAddNewFooter, shouldShowUseQueryRow, shouldUseSingleNode, showsNoCamerasHint, Leaf as sn, snapMinute, sortRows, sortRowsByColumn, CircleQuestionMark as sr, Search as st, stackBuckets, stackSeries, stateAt, stateRow, stateStyle, statusIcons, statusLine, stepFieldDomId, stepHasModelForFormat, stepLocalFields, stepModelOptions, storedToPicked, stripDeviceParentPrefix, stripParentNamePrefix, subjectPathSampleFromBox, subjectPathSvgPoints, summarizeHubCandidates, swatchFillClass, swatchLineClass, ZoomOut as t, tabForSelector, themeToCss, themeToRootCss, timeInState, LocateFixed as tn, toStationaryOverlayBox, toggleDataTableFacet, toggleDataTableGroupFacet, togglePickerDevice, togglePickerKey, CloudLightning as tr, trainingRefusalText, translateAddonKey, trpc, ShieldOff as tt, typeLabel, typedToStored, WifiOff as u, uiLibraryVersion, Laugh as un, unitAxes, CircleDot as ur, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAccountUnitPreferences, useActionSourceListActions, useActionSourceRunAction, useActionSourceStopAction, useActionsCreate, useActionsDelete, useActionsGet, useActionsGetLinks, useActionsGetTraces, useActionsList, useActionsListForCamera, useActionsRun, useActionsSetLinks, useActionsStop, useActionsUpdate, useAddonPagesListPages, useAddonSettingsGetDeclaredSettingsKeys, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsGetIntegrationFormSchema, useAddonSettingsGetIntegrationSettings, useAddonSettingsUnsetStoredSettingsKeys, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonT, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCancelJob, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetJob, useAddonsGetLastRestart, useAddonsGetLogs, useAddonsGetPackageDocs, useAddonsGetVersions, useAddonsInstallPackage, useAddonsList, useAddonsListCapabilityProviders, useAddonsListFrameworkPackages, useAddonsListInstallations, useAddonsListJobs, useAddonsListPackages, useAddonsListUpdates, 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, useBoardKeySourceGetBoardKey, useBoardKeySourceListBoards, useBoardKeySourceListSources, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPickerSlot, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCalendarsGetPreferences, useCalendarsListCalendars, useCalendarsListEvents, useCalendarsSetCalendarPreference, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraGridLayoutApplyDeviceSettingsPatch, useCameraGridLayoutGetDeviceLiveContribution, useCameraGridLayoutGetDeviceSettingsContribution, useCameraGridLayoutGetLayout, useCameraGridLayoutSaveLayout, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCapabilityPresence, useCarbonMonoxideGetStatus, useClassPainter, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useClusterTopology, useColorGetStatus, useColorSetColor, useConfirm, useConnectionTestDescribeTest, useConnectionTestTestSettings, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoreBlocksCompile, useCoreBlocksCreate, useCoreBlocksCreateComposition, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetAutomationRunState, useCoreBlocksGetBlockSettings, useCoreBlocksGetComposition, useCoreBlocksGetCustomization, useCoreBlocksGetTraces, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksListComposableCaps, useCoreBlocksListCompositions, useCoreBlocksMigrateRawSecrets, useCoreBlocksReportAutomationRun, 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, useDeviceExportExposeEntity, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListExposedEntities, useDeviceExportListSupportedDeviceKinds, useDeviceExportListSupportedEntityKinds, useDeviceExportUnexposeDevice, useDeviceExportUnexposeEntity, useDeviceExtensionListCandidates, useDeviceExtensionListSlots, useDeviceExtensionListSources, useDeviceExtensionSetSlot, useDeviceHistoryDeclareSeries, useDeviceHistoryDeleteOrphanSeries, useDeviceHistoryGetDeviceEnabled, useDeviceHistoryGetStatus, useDeviceHistoryListNodeSeries, useDeviceHistoryListOrphanSeries, useDeviceHistoryListSeries, useDeviceHistoryQuery, useDeviceHistoryQueryMany, useDeviceHistoryQueryNode, useDeviceHistoryRecord, useDeviceHistoryRecordBuckets, useDeviceHistorySetDeviceEnabled, useDeviceId, useDeviceLabel, useDeviceLabelById, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionCancelJob, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionListJobs, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAdoptionStartJob, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyInitialMeta, useDeviceManagerCleanupDeletedDevicesData, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerDismissDiscoveryProposal, 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, useDeviceManagerListDiscoveryProposals, useDeviceManagerListLocationDescriptions, useDeviceManagerListLocationIcons, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListSiteZones, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerMigrateDevice, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRemoveSiteZone, useDeviceManagerRenameLocation, useDeviceManagerRenameSiteZone, useDeviceManagerReportDiscoveryObservations, useDeviceManagerRunDeviceAction, useDeviceManagerRunDiscoverySweep, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetLocationDescription, useDeviceManagerSetLocationIcon, useDeviceManagerSetLocationZone, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetSiteZone, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceNameIndex, useDeviceNameNouns, useDeviceNetworkLink, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderClassifyDiscoveryHits, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryModes, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderReloadDevice, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceQuickDetailOpen, useDeviceRunsGetCurrentRun, useDeviceRunsGetRun, useDeviceRunsListRuns, useDeviceSeriesList, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateClaimFields, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetNativeCapSlice, useDeviceStateGetSnapshot, useDeviceStateListClaims, useDeviceStatePatchOwnedFields, useDeviceStateReleaseClaim, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDiscoveredOptions, useDishwasherGetOptions, useDishwasherGetStatus, useDishwasherPause, useDishwasherResume, useDishwasherSetChildLock, useDishwasherSetExtraDry, useDishwasherSetHalfLoad, useDishwasherSetHygienePlus, useDishwasherSetIntensiveZone, useDishwasherSetOption, useDishwasherSetPower, useDishwasherSetProgram, useDishwasherSetVarioSpeedPlus, useDishwasherStart, useDishwasherStop, useDisplayIconResolver, useDisplayPaletteGetPalette, useDisplayPaletteListPresets, useDisplayPaletteSetPalette, useDisplayPaletteView, useDoNotDisturbGetStatus, useDoNotDisturbSetEnabled, 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, useFanPresetsApplyPreset, useFanPresetsCapturePreset, useFanPresetsGetPresets, useFanPresetsSetPresets, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useGroupActiveGetStatus, useGroupCommandsGetStatus, useGroupStatusGetStatus, useHeatingValveGetStatus, useHistoryPanels, useHistoryReader, useHistoryReads, useHotkey, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useIconGlyphsVersion, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationInstancesCreateInstance, useIntegrationInstancesDeleteInstance, useIntegrationInstancesDescribe, useIntegrationInstancesGetInstance, useIntegrationInstancesInstanceFormSchema, useIntegrationInstancesListInstances, useIntegrationInstancesSetInstanceEnabled, useIntegrationInstancesTestInstance, useIntegrationInstancesUpdateInstance, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIrTransmitterGetInfo, useIrTransmitterSend, 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, useLocalNetworkGetScanSubnets, useLocalNetworkGetTlsStatus, useLocalNetworkGetViewerEndpoints, useLocalNetworkList, useLocalNetworkRegenerateCertificate, useLocalNetworkRemoveCustomAddress, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkRevertToGeneratedCertificate, useLocalNetworkScanNetwork, useLocalNetworkSetAddressRole, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLocalNetworkSetScanSubnets, useLocalNetworkSetViewerEndpoints, useLocalNetworkUploadCertificate, useLocalNetworkUseStoredUploadedCertificate, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useLockDoorSensor, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMeterGetStatus, useMetricsProviderCollectSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetLoadSeries, useMetricsProviderGetProcessStats, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetOptions, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNativeObjectDetectionSetSettings, useNavigation, useNavigationGetFeatures, useNavigationGetStatus, useNavigationGoToPoint, useNavigationListActions, useNavigationMove, useNavigationPlaySound, useNavigationRunAction, useNavigationSetLightLevel, useNavigationSetLightMode, useNavigationSetLightOn, useNavigationStop, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkLinkGetStatus, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesDirectory, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputGetTarget, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputProbeTargetConfig, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesActivateAlarmProfile, useNotificationRulesCancelSnooze, useNotificationRulesCreateAlarmProfile, useNotificationRulesCreateRule, useNotificationRulesCreateSequence, useNotificationRulesCreateSnooze, useNotificationRulesDeleteAlarmProfile, useNotificationRulesDeleteRule, useNotificationRulesDeleteSequence, useNotificationRulesGetAlarmConfig, useNotificationRulesGetAlarmSensors, useNotificationRulesGetClipRetentionAsks, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesGetRuleLastRuns, useNotificationRulesGetSequence, useNotificationRulesGetTemplateCatalog, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSequences, useNotificationRulesListSnoozes, useNotificationRulesPreviewStateSummary, useNotificationRulesPreviewTemplate, useNotificationRulesRenameAlarmProfile, useNotificationRulesResolveArtifactUrl, useNotificationRulesSetAlarmConfig, useNotificationRulesSetDeviceMuted, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotificationRulesUpdateSequence, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOidcConnectionsConnectionFormSchema, useOidcConnectionsCreateConnection, useOidcConnectionsDeleteConnection, useOidcConnectionsListConnections, useOidcConnectionsUpdateConnection, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdManagerClearSlotBinding, useOsdManagerCopyDeviceConfiguration, useOsdManagerDeleteTemplate, useOsdManagerGetConditionSupport, useOsdManagerGetDeviceOsd, useOsdManagerGetSourceCatalog, useOsdManagerListTemplates, useOsdManagerPreviewSlot, useOsdManagerRenderDevice, useOsdManagerSetSlotBinding, useOsdManagerSetSlotCameraEnabled, useOsdManagerUpsertTemplate, useOsdSetOverlay, usePTZ, usePersistedDisclosure, usePersistedPageSize, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePetFountainGetStatus, usePetFountainResetDailyConsumption, usePetFountainSetPump, usePickerSiteZones, usePipelineAnalyticsAddRetrainFrameFromRecording, usePipelineAnalyticsAddRetrainFramesToCollection, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsBackfillRetrainOrigins, usePipelineAnalyticsCancelRelocateMedia, usePipelineAnalyticsCancelStorageMigrationMove, usePipelineAnalyticsClearTrackRelation, usePipelineAnalyticsClearTracks, usePipelineAnalyticsCompleteRetrainTrack, usePipelineAnalyticsCountRelocatableMedia, usePipelineAnalyticsCountUnstampedEventMedia, usePipelineAnalyticsCreateRetrainCollection, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteRetrainCollection, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsDeselectRetrainFrame, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventDensityBatch, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventMediaFootprintByKind, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetKeyEventsBatch, usePipelineAnalyticsGetMediaReclaimStatus, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetRetrainCorpusKpi, usePipelineAnalyticsGetRetrainExportUrl, usePipelineAnalyticsGetRetrainFrameImage, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetStorageMigrationMoveStatus, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListArchivedDebugNotes, usePipelineAnalyticsListBirthDecisions, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainAssistProfiles, usePipelineAnalyticsListRetrainCollectionFrames, usePipelineAnalyticsListRetrainCollections, usePipelineAnalyticsListRetrainCorpusPage, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTrackRelations, usePipelineAnalyticsListTracks, usePipelineAnalyticsOfferRetrainArchive, usePipelineAnalyticsOwnersWithMedia, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsProposeRetrainAnnotationsWithLlm, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsReadLongTermSeries, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsReclaimDebugMedia, usePipelineAnalyticsReconcileFromDisk, usePipelineAnalyticsRefreshStorageLocationsForMigration, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsRemoveRetrainFrameFromCollection, usePipelineAnalyticsRenameRetrainCollection, usePipelineAnalyticsResolveRetrainTrainingCorpus, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsResumeForStorageMigration, usePipelineAnalyticsSaveRetrainAnnotations, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsSelectRetrainFrames, usePipelineAnalyticsSetRetrainFrameComplete, usePipelineAnalyticsSetTrackFlags, usePipelineAnalyticsSetTrackPurity, usePipelineAnalyticsSetTrackRelation, usePipelineAnalyticsStartStorageMigrationMove, usePipelineAnalyticsWipeAllAnalytics, usePipelineAnalyticsWipeObjectEmbeddings, usePipelineAnalyticsWriteRetrainArchive, usePipelineExecutorCacheFrameInPool, usePipelineExecutorDeleteModel, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetInferenceDeviceHealth, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorRearmInferenceDevice, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorValidatePipeline, usePipelineOrchestratorAbortNodeBenchmark, usePipelineOrchestratorApplyAutoTune, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteNodeBenchmarkResult, usePipelineOrchestratorForgetInferenceDevice, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraDetectionSource, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraSwitches, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetClusterModelChoice, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetEffectiveShares, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeBenchmarkCandidates, usePipelineOrchestratorGetNodeBenchmarkPreflight, usePipelineOrchestratorGetNodeBenchmarkStatus, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorGetPlacementStats, usePipelineOrchestratorGetReconcileFromDiskStatus, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListNodeBenchmarkResults, usePipelineOrchestratorPauseForStorageMigration, usePipelineOrchestratorPlanAutoTune, usePipelineOrchestratorRebalance, usePipelineOrchestratorReconcileFromDisk, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorRequestOccupancyLook, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorResumeForStorageMigration, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDecodeLimits, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraDetectionSource, usePipelineOrchestratorSetCameraSensors, usePipelineOrchestratorSetCameraStepSettings, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetLoadBalancingShares, usePipelineOrchestratorSetNodeStepSettings, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorSetShareSource, usePipelineOrchestratorStartNodeBenchmark, usePipelineOrchestratorSuggestShares, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineRunnerAbortNodeBench, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerGetNodeBenchStatus, usePipelineRunnerGetParkedTrackFrame, usePipelineRunnerParkTrackFrame, usePipelineRunnerReleaseParkedTrackFrames, usePipelineRunnerReportMotion, usePipelineRunnerRequestOccupancyBurst, usePipelineRunnerRunDetailSubtree, usePipelineRunnerRunStatelessStep, usePipelineRunnerStartNodeBench, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlatformProbeGetCapabilities, usePlatformProbeGetHardware, usePlatformProbeRescanAccelerators, usePlatformProbeResolveHwAccel, usePlatformProbeResolveInferenceConfig, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePowerSourceForceRestart, usePowerSourceGetStatus, usePowerSourcePowerOff, usePowerSourcePowerOn, 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, usePumpCycleGetStatus, usePumpCycleSetEnabled, usePumpCycleSetOffMinutes, usePumpCycleSetOnMinutes, 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, useRegisteredHotkeys, useRemoteComponent, useRemoteGetConfig, useRemoteLayoutComponentsListComponents, useRemoteListCommands, useRemoteSendCommand, useRemoteSendMediaCommand, useRemoteSetConfig, useRoleDisplayDefaults, useRunningStateGetStatus, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorListScenesBatch, useSceneMonitorRecheckNow, useSceneMonitorResetScene, useSceneMonitorUpdateScene, useSchedulersConflicts, useSchedulersCreate, useSchedulersDelete, useSchedulersGet, useSchedulersGetStatus, useSchedulersGetTraces, useSchedulersList, useSchedulersPreview, useSchedulersSetEnabled, useSchedulersUpdate, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useSearchFieldHotkey, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetLaunchOverrides, useServerManagementGetServerPackageStatus, useServerManagementInstallDesktopUpdate, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useServerManagementSetLaunchOverrides, useSettingsStoreAggregate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreDeleteWhere, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreInsertMany, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreTransact, useSettingsStoreUpdate, useSettingsStoreUpdateWhere, useSettingsStoreUpsert, useSettingsStoreUpsertMany, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStationaryOverlay, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageList, useStorageListDrainProgress, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageMigrationCancel, useStorageMigrationCleanupCancel, useStorageMigrationCleanupStart, useStorageMigrationCleanupStatus, useStorageMigrationDrain, useStorageMigrationHistory, useStorageMigrationMoverClearance, useStorageMigrationMovers, useStorageMigrationPlan, useStorageMigrationResidue, useStorageMigrationStart, useStorageMigrationStatus, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStoredGroupBy, useStreamBrokerAcquireEgressTranscode, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerFetchEventMedia, useStreamBrokerForgetDeviceHardware, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetLiveViewerCounts, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerReportStreamSignal, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useStreamSignalsListSignals, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemDebugWatch, useSystemDetectSiteLocation, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetFailureContributions, useSystemGetLoadContributions, useSystemGetLoggingSettings, useSystemGetRequestCensus, useSystemGetRetentionConfig, useSystemGetSiteLocation, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetLoggingSettings, useSystemSetRetentionConfig, useSystemSetSiteLocation, useTamperGetStatus, useTemperatureSensorGetStatus, useTemplateCreate, useTemplateDelete, useTemplateGet, useTemplateList, useTemplateUpdate, useTerminalSessionAdoptLegacyMonitor, useTerminalSessionClose, useTerminalSessionCreateInstance, useTerminalSessionDeleteInstance, useTerminalSessionListInstances, useTerminalSessionListLegacyCameras, useTerminalSessionListProfiles, useTerminalSessionListSessions, useTerminalSessionOpenSession, useTerminalSessionPullOutput, useTerminalSessionResize, useTerminalSessionSetInstanceEnabled, useTerminalSessionUpdateInstance, useTerminalSessionWriteInput, useThemeMode, useTimedRunCancel, useTimedRunGetStatus, useTimedRunRunFor, useToastOnToast, useTrainingCanaryResult, useTrainingCancelJob, useTrainingDiscardResult, useTrainingGetJob, useTrainingGetJobResult, useTrainingListBaseModels, useTrainingListCanaryTargets, useTrainingListJobs, useTrainingPlanJob, useTrainingRegisterResult, useTrainingRollbackCanary, useTrainingStartJob, useTrainingStartJobBatch, useTurnProviderGetTurnServers, useUiText, useUnitPreferences, useUpdateGetStatus, useUpdateInstallUpdate, useUrlQueryParam, useUserManagementConfirmTotp, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementFindUserByExternalIdentity, useUserManagementGetAdminBootstrapStatus, useUserManagementGetTotpStatus, useUserManagementListExternalIdentities, useUserManagementListOauthSessions, useUserManagementListUsers, useUserManagementMigrateRawSecrets, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeOauthSession, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUnlinkExternalIdentity, useUserManagementUpdateUser, useUserManagementValidateCredentials, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, useVideoclipsDialClipStream, useVideoclipsGetClipPlayback, useVideoclipsGetPlaybackOptions, useVideoclipsListClips, useVideoclipsListSources, useVideoclipsOfferClipBytes, useVideoclipsReadClipBytes, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionApplyDownlinkProbe, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionDebug, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetCurrentSnapshotBatch, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, Save as ut, UtensilsCrossed as v, vacuumStateMeta, validateScopes, valveStateMeta, variantLabel, Hash as vn, ChevronLeft as vr, RadioTower as vt, Undo2 as w, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint, withHiddenChart, withPanel, withResolvedParentDetail, withUseRootModel, withoutModelScopedFields, withoutPanel, GraduationCap as wn, Car as wr, writeStoredGroupBy, Plug as wt, UserCheck as x, Hammer as xn, ChartLine as xr, Puzzle as xt, Users as y, HardDrive as yn, ChevronDown as yr, Radar as yt, Tag as z, EllipsisVertical as zn, BatteryMedium as zr, MoveVertical as zt };
|
|
74604
|
+
export { Shuffle as $, Cog as $n, ArrowDownToLine as $r, Maximize2 as $t, Trash2 as A, AddProviderEntryDialog, AddonGlobalSettingsForm, AdminLinkQuickAction, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, Funnel as An, AppShell, Bus as Ar, ArcKnob, Plane as At, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, Sunrise as B, BATTERY_BADGE_LOW_KEY, BATTERY_BADGE_NORMAL_KEY, BINARY_BATTERY_LOW_BELOW, BOOLEAN_STATES, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, BackToStepsButton, Badge, BarSeries, BatteryBadge, ExternalLink as Bn, BottomSheet, Battery as Br, Breadcrumb, BrightnessPanel, BrokerPickerSlotProvider, Music as Bt, Button, ButtonControl, ButtonHeroCard, Unlink2 as C, CENTER, CHART_SERIES_TOKENS, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONSUMABLE_LOW_PERCENT, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, ChartFrame, ChartPlaceholder, ChartSwatch, ChartWindowToggle, Checkbox, ChildSectionAccordion, ClimatePanel, Hand as Cn, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigNotificationTargetMultiSelectFieldView, ConfigNotificationTargetSelectFieldView, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumableLevelBadge, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, Check as Cr, QrCode$1 as Ct, CustomFieldRenderersProvider, TriangleAlert as D, DATA_RECORDS_KIND_PARAM, DATA_RECORDS_OWNER_PARAM, DATA_RECORD_FACET_GROUPS, DEFAULT_COLOR, DEFAULT_PAGINATION_LABELS, DEFAULT_UNIT_PREFERENCES, DEVICE_COLUMNS, DEVICE_EXPORT_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_NAME_FORMS, DEVICE_NAME_JOIN, DEVICE_PICKER_GROUP_STORAGE_KEY, DEVICE_ROLE_META, DEVICE_ROLE_NOUNS, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DEVICE_TYPE_NOUNS, DataRecordsHub, DataTable, DataTableFilterBar, DataTablePager, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceExportSetup, DeviceFilterBar, DeviceFleetFromServer, DeviceFleetProvider, DeviceGrid, DeviceHistoryView, DeviceItem, DeviceList, DeviceMultiSelectField, DeviceName, DevicePicker, DeviceQuickDetailProvider, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, DevicesFailedLine, DevicesLoadingLine, DevicesWidenWarning, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DisclosureChevron, DiscoveryPanel, DisplayPaletteProvider, GraduationCap as Dn, DoorbellRecentPanel, Car as Dr, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, Plug as Dt, DummyHeroCard, DummyInline, Truck as E, EMPTY_DATA_TABLE_FILTER, EMPTY_HISTORY_PANELS, EVENT_KIND_ICONS, EmptyState, Grid2x2 as En, EndpointResultsCard, EndpointTestCard, EntryJsonSchemaForm, Cast as Er, ErrorBox, PowerOff as Et, EventKindGlyph, EventStream, ExtensionsPanel, Timer as F, FALLBACK_SCOPE, FAST_ICON_GLYPHS, FILL, FLEET_LIST_GC_TIME_MS, FLEET_LIST_QUERY_KEY, FLEET_LIST_STALE_TIME_MS, FanHeroCard, FanInlineControl, FanPanel, FileInput, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, Film as Fn, FormField$1 as FormField, Blinds as Fr, PawPrint as Ft, Sprout as G, GAP_INTERVAL_FACTOR, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GateBadge, GateControl, Download as Gn, Bath as Gr, GripTrack, GroupedModelSelector, GroupedTilePicker, Moon as Gt, SunMedium as H, HISTORY_PAGE_PATH, HISTORY_PANELS_NAMESPACE, HISTORY_SELECTION_MAX, HISTORY_WINDOW_IDS, HISTORY_WINDOW_MS, HOST_WIDGETS, HUB_SESSION_RUN_MS, HistoryChart, HistoryWindowBar, HlsVideo, EllipsisVertical as Hn, HotkeyProvider, HotkeyScope, HoverZoomImage, BatteryMedium as Hr, MoveVertical as Ht, HubSessionTestCard, HumidifierHeroCard, HumidifierInlineControl, TimerOff as I, INPUT_COMPACT, INPUT_SHELL, IconAction, IconButton, IconPicker, ImageHeroCard, ImageInlineControl, ImageSelector, Feather as In, InferenceConfigSelector, Input, Bird as Ir, Pause as It, ItemFormDialog, Smartphone as J, Dog as Jn, ArrowUp as Jr, Minimize2 as Jt, Sparkles as K, KebabMenu, KeyValueList, DoorOpen as Kn, Ban as Kr, MonitorPlay as Kt, Thermometer as L, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LayeredSettingsForm, LightHeroCard, LightInlineControl, Fan as Ln, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, Bike as Lr, Package as Lt, Tractor as M, MEDIA_GRID, MINUTES_PER_DAY, MODE_COLOR, MaskShapeCanvas, MediaCard, MediaGrid, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, Flashlight as Mn, MobileDrawer, ModelPicker, MotionZonesSettings, Box as Mr, Pin as Mt, ToggleRight as N, NAVIGATION_DRIVE_INTERVAL_MS, NODE_COLOR_IDS, NatResultCard, NavigationPanel, NetworkLinkBadge, FlashlightOff as Nn, NodeMultiSelectField, NodePicker, NodeSelectField, NotificationTargetSelectField, NotificationTargetsField, Bot as Nr, Phone as Nt, TrendingDown as O, OCCUPANCY_KEY, OPTION_SELECT_SEARCH_MIN_OPTIONS, OfflineBadge, Gauge as On, OptionSelect, Camera as Or, Plus as Ot, ToggleLeft as P, PAGE_SIZE_ALL, PHASE_CONFIG, PICKER_CHIP_LIMIT, PICKER_DEFAULT_GROUP_BY, PICKER_GROUP_BY_MODES, PICKER_GROUP_COLLAPSE_AT, PICKER_NONE_KEY, PICKER_NOUN_PLURAL, PICKER_NO_FILTERS, PICKER_PAGE_SIZE, PICKER_SEARCH_DEBOUNCE_MS, PICKER_WINDOW, PRIORITY, PTZOverlay, PageHeader, PageShell, PageSizeSelect, Pagination, PasswordInput, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PlaceholderChipField, PlayerOverlaysProvider, Flame as Pn, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PowerMeterLine, Bone as Pr, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, ProviderEntryPills, Pencil as Pt, PtzPanel, Siren as Q, Copy as Qn, ArrowDown as Qr, QrCode, Megaphone as Qt, QuantityValueInput, Target as R, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RESOLUTION_BUCKET_MS, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, ROOT_DETECTOR_STEP_ID, RadialGauge, Radio, RecordEntriesPanel, RecordedPlaybackProvider, RecordingPanel, ResponseLog, RetrainReviewBadge, Eye as Rn, RoleDisplayDefaultsFromServer, RoleDisplayDefaultsProvider, RoleNodePill, RootModelSourceControl, RootSuppliedModelNote, Bell as Rr, Network as Rt, RunReport, RunningBadge, RunningStatusLine, Upload as S, SCENE_CAPTURE_VARIANTS, SECRET_MASK_PLACEHOLDER, SECRET_REVEAL_MS, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SETTING_ROW, SETTING_ROW_LABEL, SETTING_ROW_STACK_BREAKPOINT, SETTING_ROW_VALUE, SETTING_ROW_VALUE_TEXT, SNAPSHOT_MEDIA_PATH, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, STEP_DOCK_WIDTH_PX, SUBJECT_PATH_DWELL_EPS, SUBJECT_PATH_FULL_FRAME_COVERAGE, SUBJECT_PATH_MAX_POINTS, SceneMonitorEditor, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, SecretFieldControl, SecretRevealProvider, SectionCard, SectionToolbar, SectionedPage, SegmentedChoice, Select, SelectedChip, SemanticBadge, SendFrameToTrainingButton, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideToggle, Slider, HardDrive as Sn, SnapshotButton, SortHeaderButton, Sparkline, ChevronDown as Sr, Radar as St, StableTabPanel, StatCard, StateTimeline, StateValuesStream, StatusBadge, StepDetailDock, StepInspectorPanel, StepModelRow, StepTimings, Stepper, StorageRecordsPanel, StreamBrokerSelector, StreamDebugOverlay, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, Type as T, TABLE_SCROLL_MAX_H, TEMPERATURE_SCALES, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, Textarea, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimeSeriesChart, TimelineSlider, TimezoneSelector, GripHorizontal as Tn, Tooltip, TooltipContent, TooltipTrigger, Cat as Tr, TrainingBaseModelPicker, TrainingCollectionPicker, Power as Tt, Star as U, UNIT_PREFERENCES_NAMESPACE, UiTextProvider, UiTrans, Droplets as Un, UnitPicker, UnitPreferencesFromServer, UnitPreferencesProvider, BatteryLow as Ur, MoveHorizontal as Ut, Sun as V, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, ViewSwitch, Eraser as Vn, VodPlaybackProvider, BatteryWarning as Vr, Move as Vt, Square as W, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, Droplet as Wn, BatteryFull as Wr, MousePointerClick as Wt, SkipForward as X, Crosshair as Xn, ArrowRight as Xr, MessageSquare as Xt, SlidersHorizontal as Y, Database as Yn, ArrowUpToLine as Yr, Mic as Yt, SkipBack as Z, Cpu as Zn, ZoneEditingProvider, ArrowLeft as Zr, Menu as Zt, Vibrate as _, ImageOff as _n, ChevronsUpDown as _r, Repeat as _t, Wrench as a, acceleratorLabel, acceleratorShortLabel, agentColumnKey, alignSeries, allDeviceTypeFilterOptions, LoaderCircle as an, anchorNow, applyFleetQueryDefaults, applyPickerFilters, CloudFog as ar, ariaSortForColumn, assignNodeColorId, Share2 as at, axisTicks, User as b, badgeFor, binaryBatteryIsLow, bindsToModel, Heater as bn, booleanLabels, boundsInPicked, ChevronRight as br, Radio$1 as bt, bucketTotals, buildColorByNodeId, buildDataRecordRows, buildPeerConnectionConfig, buildStepTreeFromSchema, buildSubjectPath, buildTimeSeriesModel, Wifi as c, catalogHasDraft, chartKeys, chartSeriesStyle, childEntityId, childListName, chipOverflow, chunk, clampMinute, classifyAddressScope, classifyCapability, classifySessionVerdict, clearPickerGroup, clusterRootModelIds, cn, colorIdForNode, columnsForContext, compareSrflxMappings, computePageButtons, consumableItemLevel, consumableLevelBarClass, consumableLevelLabel, consumableLevelVariant, containerChildToRef, countableDevices, coverHighlight, coverageLine, CircleX as cr, createAddonI18n, createSharedContext, createTheme, Search as ct, currentAddonLanguage, cursorFractionFor, WifiLow as d, darkColors, dataRecordContents, dataRecordKey, dataRecordSearchText, dataRecordType, dataTableFacetGroups, dataTableFacets, decodeCustomWindow, decodeSeriesRef, defaultAxisSpec, defaultOfField, defaultSelectClusterRoots, defaultSingleClusterRoot, defaultTheme, defaultUiText, deriveDeviceKind, deriveWebrtcDebugStats, describeDeviceSelector, detectPlatform, deviceIntegrationResolver, deviceListStateOf, deviceMatchesFilter, deviceNameNouns, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, Leaf as dn, dockBox, CirclePlus as dr, draftFromQuery, Save as dt, effectivePageSize, AlarmSmoke as ei, emptyDevicesWidens, emptySessionRun, MapPin as en, encodeCustomWindow, encodeSeriesRef, energyBuckets, ensureMfHostInit, Cloud as er, Ship as et, eventKindLabel, WifiHigh as f, filterDataTableRows, filterDeviceOptions, filterOccupancyLines, filterOptions as filterOptionSelectOptions, filterPickerDevices, finalizeSessionRun, findTimezone, flattenPickerGrouping, flattenPickerRows, fleetViewOf, LayoutGrid as fn, foldDeviceName, formatChartBytes, formatChartNumber, formatChartValue, formatControlDateTime, formatDeviceName, formatLastSeen, formatNumeric, formatSettingValue, formatSpan, formatTimeLabel, CirclePause as fr, freezeVerdict, Sailboat as ft, fuzzyMatch, Volume2 as g, gapThresholdMs, getClassColor, getPhaseVisual, Image as gn, CircleAlert as gr, groupAgentColumns, groupChildrenByLayout, groupDeviceSeries, groupPickerDevices, groupPickerDevicesBy, RotateCcw as gt, VolumeX as h, hardwareLabel, historyPageHref, Inbox as hn, CircleCheckBig as hr, RotateCw as ht, hubOrigin, hubPath, hubUrl, hubWsUrl, humanDuration, humanizeName, humidifierTint, X as i, iconGlyphsFailed, iconGlyphsLoaded, LocateFixed as in, indexDeviceNames, initialScrubState, insertAtSelection, CloudLightning as ir, isAbsentProvider, isByteUnit, isConsumableLevelField, isDataTableFilterActive, isDeviceNameStock, isDrawableSubjectPath, isFieldVisible, isGroupExpanded, isHistoryWindowId, isKeychainFieldValue, isModelScopedField, isPickableUnit, isRedactedSecret, isRefusal, isSecretField, isValueField, ShieldAlert as it, TrainFront as j, Footprints as jn, Bug as jr, Pipette as jt, TrendingUp as k, Gamepad2 as kn, Cable as kr, Play as kt, WifiZero as l, lawnMowerActivityMeta, lightColors, linePoints, Link2 as ln, loadIconGlyphs, loadRemoteBundle, CircleStop as lr, ScrollText as lt, lucideExportName, WashingMachine as m, makeScrubBridge, mapRootDetectorPlacements, matchesCombo, mergeSecretForSubmit, metadataEntries, metadataString, minuteFromPointer, Info as mn, mountAddonPage, mountPath, CircleCheck as mr, Route as mt, ZoomIn as n, nextGridPosition, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, Activity as ni, niceMax, niceRange, Lock as nn, nodeColorClass, nodeSoftBgClass, nodeTextColorClass, normalizeForSearch, normalizeLanguage, normalizeSelection, nounSpecFor, CloudSnow as nr, ShieldOff as nt, Workflow as o, occupancyFacets, occupancyLines, offListSelections, List as on, openTopLayer, optionSearchText as optionSelectSearchText, Clock as or, orphanDeviceLabel, Settings as ot, outsideBounds, overrideEntityIdFromLink, Waves as p, pageRows, pageSizeLabel, paginateRows, parentDetailOf, parseCapKey, parseCombo, parseConsumableLevel, parseIceCandidate, parsePickerGroupBy, parseProducerKey, parseRecordedServerMessage, partitionSelected as partitionOptionSelectSelected, partitionSuggested, pickerFacetFilterShown, pickerFacetKey, pickerFacetOptions, pickerFiltersActive, pickerGroupKey, pickerHiddenSelectedCount, pickerLocationKey, pickerQueryTokens, pickerRowFacts, pickerSearchText, pickerZoneFilterSuspended, pinnedStreamChoices, placePopover, Laugh as pn, CircleDot as pr, preferenceForQuantity, previousWindow, projectSubjectPath, providerIcons, Router as pt, Snowflake as q, DoorClosed as qn, Baby as qr, Minus as qt, quantityStoredUnit, quantityUnitChoices, Zap as r, readHistory, readHistoryPanels, readItemId, readStoredGroupBy, readUnitPreferences, reduceSessionRun, registerAddonBundle, renderMarkup, renderTagged, resetHubMountForTests, resetPickerFilters, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDeviceIntegration, resolveDeviceLabel, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolveHistoryWindow, resolveSearchable as resolveOptionSelectSearchable, resolveParentNames, resolvePrimaryChild, resolveSelectedDevices, resolveSensorDisplay, resolveStepDefaultModel, retrainReviewBadgeLook, LockOpen as rn, roiTooLarge, rootSourceState, routerBasename, CloudRain as rr, ShieldCheck as rt, runningDurationSince, runningStatusParts, Wind as s, sameDeviceName, sameLocationSuggestions, scrubReducer, searchSteps, secretDisplayValue, secretSubmitValue, segmentsFromChanges, selectPickerGroup, selectedDeviceOptions, serializeRecordedCommand, seriesRefId, settingsModelIdFor, sharedGapSpans, shiftPoints, shouldCommit, shouldEmit, shouldShowAddNewFooter, shouldShowUseQueryRow, shouldUseSingleNode, showsNoCamerasHint, ListChecks as sn, snapMinute, sortRows, sortRowsByColumn, Clapperboard as sr, Server as st, stackBuckets, stackSeries, stateAt, stateRow, stateStyle, statusIcons, statusLine, stepFieldDomId, stepHasModelForFormat, stepLocalFields, stepModelOptions, storedToPicked, stripDeviceParentPrefix, stripParentNamePrefix, subjectPathSampleFromBox, subjectPathSvgPoints, summarizeHubCandidates, swatchFillClass, swatchLineClass, ZoomOut as t, tabForSelector, themeToCss, themeToRootCss, AirVent as ti, timeInState, Mail as tn, toStationaryOverlayBox, toggleDataTableFacet, toggleDataTableGroupFacet, togglePickerDevice, togglePickerKey, CloudSun as tr, trainingRefusalText, translateAddonKey, trpc, Shield as tt, typeLabel, typedToStored, WifiOff as u, uiLibraryVersion, Lightbulb as un, unitAxes, CircleQuestionMark as ur, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAccountUnitPreferences, useActionSourceListActions, useActionSourceRunAction, useActionSourceStopAction, useActionsCreate, useActionsDelete, useActionsGet, useActionsGetLinks, useActionsGetTraces, useActionsList, useActionsListForCamera, useActionsRun, useActionsSetLinks, useActionsStop, useActionsUpdate, useAddonPagesListPages, useAddonSettingsGetDeclaredSettingsKeys, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsGetIntegrationFormSchema, useAddonSettingsGetIntegrationSettings, useAddonSettingsUnsetStoredSettingsKeys, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonT, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCancelJob, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetJob, useAddonsGetLastRestart, useAddonsGetLogs, useAddonsGetPackageDocs, useAddonsGetVersions, useAddonsInstallPackage, useAddonsList, useAddonsListCapabilityProviders, useAddonsListFrameworkPackages, useAddonsListInstallations, useAddonsListJobs, useAddonsListPackages, useAddonsListUpdates, 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, useBoardKeySourceGetBoardKey, useBoardKeySourceListBoards, useBoardKeySourceListSources, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPickerSlot, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCalendarsGetPreferences, useCalendarsListCalendars, useCalendarsListEvents, useCalendarsSetCalendarPreference, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraGridLayoutApplyDeviceSettingsPatch, useCameraGridLayoutGetDeviceLiveContribution, useCameraGridLayoutGetDeviceSettingsContribution, useCameraGridLayoutGetLayout, useCameraGridLayoutSaveLayout, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCapabilityPresence, useCarbonMonoxideGetStatus, useClassPainter, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useClusterTopology, useColorGetStatus, useColorSetColor, useConfirm, useConnectionTestDescribeTest, useConnectionTestTestSettings, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoreBlocksCompile, useCoreBlocksCreate, useCoreBlocksCreateComposition, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetAutomationRunState, useCoreBlocksGetBlockSettings, useCoreBlocksGetComposition, useCoreBlocksGetCustomization, useCoreBlocksGetTraces, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksListComposableCaps, useCoreBlocksListCompositions, useCoreBlocksMigrateRawSecrets, useCoreBlocksReportAutomationRun, 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, useDeviceExportExposeEntity, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListExposedEntities, useDeviceExportListSupportedDeviceKinds, useDeviceExportListSupportedEntityKinds, useDeviceExportUnexposeDevice, useDeviceExportUnexposeEntity, useDeviceExtensionListCandidates, useDeviceExtensionListSlots, useDeviceExtensionListSources, useDeviceExtensionSetSlot, useDeviceHistoryDeclareSeries, useDeviceHistoryDeleteOrphanSeries, useDeviceHistoryGetDeviceEnabled, useDeviceHistoryGetStatus, useDeviceHistoryListNodeSeries, useDeviceHistoryListOrphanSeries, useDeviceHistoryListSeries, useDeviceHistoryQuery, useDeviceHistoryQueryMany, useDeviceHistoryQueryNode, useDeviceHistoryRecord, useDeviceHistoryRecordBuckets, useDeviceHistorySetDeviceEnabled, useDeviceId, useDeviceLabel, useDeviceLabelById, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionCancelJob, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionListJobs, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAdoptionStartJob, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyInitialMeta, useDeviceManagerCleanupDeletedDevicesData, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerDismissDiscoveryProposal, 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, useDeviceManagerListDiscoveryProposals, useDeviceManagerListLocationDescriptions, useDeviceManagerListLocationIcons, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListSiteZones, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerMigrateDevice, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRemoveSiteZone, useDeviceManagerRenameLocation, useDeviceManagerRenameSiteZone, useDeviceManagerReportDiscoveryObservations, useDeviceManagerRunDeviceAction, useDeviceManagerRunDiscoverySweep, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetLocationDescription, useDeviceManagerSetLocationIcon, useDeviceManagerSetLocationZone, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetSiteZone, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceNameIndex, useDeviceNameNouns, useDeviceNetworkLink, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderClassifyDiscoveryHits, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryModes, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderReloadDevice, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceQuickDetailOpen, useDeviceRunsGetCurrentRun, useDeviceRunsGetRun, useDeviceRunsListRuns, useDeviceSeriesList, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateClaimFields, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetNativeCapSlice, useDeviceStateGetSnapshot, useDeviceStateListClaims, useDeviceStatePatchOwnedFields, useDeviceStateReleaseClaim, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDiscoveredOptions, useDishwasherGetOptions, useDishwasherGetStatus, useDishwasherPause, useDishwasherResume, useDishwasherSetChildLock, useDishwasherSetExtraDry, useDishwasherSetHalfLoad, useDishwasherSetHygienePlus, useDishwasherSetIntensiveZone, useDishwasherSetOption, useDishwasherSetPower, useDishwasherSetProgram, useDishwasherSetVarioSpeedPlus, useDishwasherStart, useDishwasherStop, useDisplayIconResolver, useDisplayPaletteGetPalette, useDisplayPaletteListPresets, useDisplayPaletteSetPalette, useDisplayPaletteView, useDoNotDisturbGetStatus, useDoNotDisturbSetEnabled, 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, useFanPresetsApplyPreset, useFanPresetsCapturePreset, useFanPresetsGetPresets, useFanPresetsSetPresets, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useGroupActiveGetStatus, useGroupCommandsGetStatus, useGroupStatusGetStatus, useHeatingValveGetStatus, useHistoryPanels, useHistoryReader, useHistoryReads, useHotkey, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useIconGlyphsVersion, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationInstancesCreateInstance, useIntegrationInstancesDeleteInstance, useIntegrationInstancesDescribe, useIntegrationInstancesGetInstance, useIntegrationInstancesInstanceFormSchema, useIntegrationInstancesListInstances, useIntegrationInstancesSetInstanceEnabled, useIntegrationInstancesTestInstance, useIntegrationInstancesUpdateInstance, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIrTransmitterGetInfo, useIrTransmitterSend, 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, useLocalNetworkGetScanSubnets, useLocalNetworkGetTlsStatus, useLocalNetworkGetViewerEndpoints, useLocalNetworkList, useLocalNetworkRegenerateCertificate, useLocalNetworkRemoveCustomAddress, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkRevertToGeneratedCertificate, useLocalNetworkScanNetwork, useLocalNetworkSetAddressRole, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLocalNetworkSetScanSubnets, useLocalNetworkSetViewerEndpoints, useLocalNetworkUploadCertificate, useLocalNetworkUseStoredUploadedCertificate, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useLockDoorSensor, useMediaPlayerChannelDown, useMediaPlayerChannelUp, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMediaPlayerTurnOff, useMediaPlayerTurnOn, useMediaPlayerVolumeDown, useMediaPlayerVolumeUp, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMeterGetStatus, useMetricsProviderCollectSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetLoadSeries, useMetricsProviderGetProcessStats, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetOptions, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNativeObjectDetectionSetSettings, useNavigation, useNavigationGetFeatures, useNavigationGetStatus, useNavigationGoToPoint, useNavigationListActions, useNavigationMove, useNavigationPlaySound, useNavigationRunAction, useNavigationSetLightLevel, useNavigationSetLightMode, useNavigationSetLightOn, useNavigationStop, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkLinkGetStatus, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesDirectory, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputGetTarget, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputProbeTargetConfig, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesActivateAlarmProfile, useNotificationRulesCancelSnooze, useNotificationRulesCreateAlarmProfile, useNotificationRulesCreateRule, useNotificationRulesCreateSequence, useNotificationRulesCreateSnooze, useNotificationRulesDeleteAlarmProfile, useNotificationRulesDeleteRule, useNotificationRulesDeleteSequence, useNotificationRulesGetAlarmConfig, useNotificationRulesGetAlarmSensors, useNotificationRulesGetClipRetentionAsks, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesGetRuleLastRuns, useNotificationRulesGetSequence, useNotificationRulesGetTemplateCatalog, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSequences, useNotificationRulesListSnoozes, useNotificationRulesPreviewStateSummary, useNotificationRulesPreviewTemplate, useNotificationRulesRenameAlarmProfile, useNotificationRulesResolveArtifactUrl, useNotificationRulesSetAlarmConfig, useNotificationRulesSetDeviceMuted, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotificationRulesUpdateSequence, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOidcConnectionsConnectionFormSchema, useOidcConnectionsCreateConnection, useOidcConnectionsDeleteConnection, useOidcConnectionsListConnections, useOidcConnectionsUpdateConnection, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdManagerClearSlotBinding, useOsdManagerCopyDeviceConfiguration, useOsdManagerDeleteTemplate, useOsdManagerGetConditionSupport, useOsdManagerGetDeviceOsd, useOsdManagerGetSourceCatalog, useOsdManagerListTemplates, useOsdManagerPreviewSlot, useOsdManagerRenderDevice, useOsdManagerSetSlotBinding, useOsdManagerSetSlotCameraEnabled, useOsdManagerUpsertTemplate, useOsdSetOverlay, usePTZ, usePersistedDisclosure, usePersistedPageSize, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePetFountainGetStatus, usePetFountainResetDailyConsumption, usePetFountainSetPump, usePickerSiteZones, usePipelineAnalyticsAddRetrainFrameFromRecording, usePipelineAnalyticsAddRetrainFramesToCollection, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsBackfillRetrainOrigins, usePipelineAnalyticsCancelRelocateMedia, usePipelineAnalyticsCancelStorageMigrationMove, usePipelineAnalyticsClearTrackRelation, usePipelineAnalyticsClearTracks, usePipelineAnalyticsCompleteRetrainTrack, usePipelineAnalyticsCountRelocatableMedia, usePipelineAnalyticsCountUnstampedEventMedia, usePipelineAnalyticsCreateRetrainCollection, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteRetrainCollection, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsDeselectRetrainFrame, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventDensityBatch, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventMediaFootprintByKind, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetKeyEventsBatch, usePipelineAnalyticsGetMediaReclaimStatus, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetRetrainCorpusKpi, usePipelineAnalyticsGetRetrainExportUrl, usePipelineAnalyticsGetRetrainFrameImage, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetStorageMigrationMoveStatus, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListArchivedDebugNotes, usePipelineAnalyticsListBirthDecisions, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainAssistProfiles, usePipelineAnalyticsListRetrainCollectionFrames, usePipelineAnalyticsListRetrainCollections, usePipelineAnalyticsListRetrainCorpusPage, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTrackRelations, usePipelineAnalyticsListTracks, usePipelineAnalyticsOfferRetrainArchive, usePipelineAnalyticsOwnersWithMedia, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsProposeRetrainAnnotationsWithLlm, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsReadLongTermSeries, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsReclaimDebugMedia, usePipelineAnalyticsReconcileFromDisk, usePipelineAnalyticsRefreshStorageLocationsForMigration, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsRemoveRetrainFrameFromCollection, usePipelineAnalyticsRenameRetrainCollection, usePipelineAnalyticsResolveRetrainTrainingCorpus, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsResumeForStorageMigration, usePipelineAnalyticsSaveRetrainAnnotations, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsSelectRetrainFrames, usePipelineAnalyticsSetRetrainFrameComplete, usePipelineAnalyticsSetTrackFlags, usePipelineAnalyticsSetTrackPurity, usePipelineAnalyticsSetTrackRelation, usePipelineAnalyticsStartStorageMigrationMove, usePipelineAnalyticsWipeAllAnalytics, usePipelineAnalyticsWipeObjectEmbeddings, usePipelineAnalyticsWriteRetrainArchive, usePipelineExecutorCacheFrameInPool, usePipelineExecutorDeleteModel, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetInferenceDeviceHealth, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorRearmInferenceDevice, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorValidatePipeline, usePipelineOrchestratorAbortNodeBenchmark, usePipelineOrchestratorApplyAutoTune, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteNodeBenchmarkResult, usePipelineOrchestratorForgetInferenceDevice, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraDetectionSource, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraSwitches, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetClusterModelChoice, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetEffectiveShares, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeBenchmarkCandidates, usePipelineOrchestratorGetNodeBenchmarkPreflight, usePipelineOrchestratorGetNodeBenchmarkStatus, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorGetPlacementStats, usePipelineOrchestratorGetReconcileFromDiskStatus, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListNodeBenchmarkResults, usePipelineOrchestratorPauseForStorageMigration, usePipelineOrchestratorPlanAutoTune, usePipelineOrchestratorRebalance, usePipelineOrchestratorReconcileFromDisk, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorRequestOccupancyLook, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorResumeForStorageMigration, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDecodeLimits, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraDetectionSource, usePipelineOrchestratorSetCameraSensors, usePipelineOrchestratorSetCameraStepSettings, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetLoadBalancingShares, usePipelineOrchestratorSetNodeStepSettings, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorSetShareSource, usePipelineOrchestratorStartNodeBenchmark, usePipelineOrchestratorSuggestShares, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineRunnerAbortNodeBench, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerGetNodeBenchStatus, usePipelineRunnerGetParkedTrackFrame, usePipelineRunnerParkTrackFrame, usePipelineRunnerReleaseParkedTrackFrames, usePipelineRunnerReportMotion, usePipelineRunnerRequestOccupancyBurst, usePipelineRunnerRunDetailSubtree, usePipelineRunnerRunStatelessStep, usePipelineRunnerStartNodeBench, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlatformProbeGetCapabilities, usePlatformProbeGetHardware, usePlatformProbeRescanAccelerators, usePlatformProbeResolveHwAccel, usePlatformProbeResolveInferenceConfig, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePowerSourceForceRestart, usePowerSourceGetStatus, usePowerSourcePowerOff, usePowerSourcePowerOn, 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, usePumpCycleGetStatus, usePumpCycleSetEnabled, usePumpCycleSetOffMinutes, usePumpCycleSetOnMinutes, 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, useRegisteredHotkeys, useRemoteComponent, useRemoteGetAssumedStatus, useRemoteGetConfig, useRemoteLayoutComponentsListComponents, useRemoteListCommands, useRemoteSendCommand, useRemoteSendMediaCommand, useRemoteSetConfig, useRoleDisplayDefaults, useRunningStateGetStatus, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorListScenesBatch, useSceneMonitorRecheckNow, useSceneMonitorResetScene, useSceneMonitorUpdateScene, useSchedulersConflicts, useSchedulersCreate, useSchedulersDelete, useSchedulersGet, useSchedulersGetStatus, useSchedulersGetTraces, useSchedulersList, useSchedulersPreview, useSchedulersSetEnabled, useSchedulersUpdate, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useSearchFieldHotkey, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetLaunchOverrides, useServerManagementGetServerPackageStatus, useServerManagementInstallDesktopUpdate, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useServerManagementSetLaunchOverrides, useSettingsStoreAggregate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreDeleteWhere, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreInsertMany, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreTransact, useSettingsStoreUpdate, useSettingsStoreUpdateWhere, useSettingsStoreUpsert, useSettingsStoreUpsertMany, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStationaryOverlay, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageList, useStorageListDrainProgress, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageMigrationCancel, useStorageMigrationCleanupCancel, useStorageMigrationCleanupStart, useStorageMigrationCleanupStatus, useStorageMigrationDrain, useStorageMigrationHistory, useStorageMigrationMoverClearance, useStorageMigrationMovers, useStorageMigrationPlan, useStorageMigrationResidue, useStorageMigrationStart, useStorageMigrationStatus, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStoredGroupBy, useStreamBrokerAcquireEgressTranscode, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerFetchEventMedia, useStreamBrokerForgetDeviceHardware, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetLiveViewerCounts, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerReportStreamSignal, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useStreamSignalsListSignals, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemDebugWatch, useSystemDetectSiteLocation, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetFailureContributions, useSystemGetLoadContributions, useSystemGetLoggingSettings, useSystemGetRequestCensus, useSystemGetRetentionConfig, useSystemGetSiteLocation, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetLoggingSettings, useSystemSetRetentionConfig, useSystemSetSiteLocation, useTamperGetStatus, useTemperatureSensorGetStatus, useTemplateCreate, useTemplateDelete, useTemplateGet, useTemplateList, useTemplateUpdate, useTerminalSessionAdoptLegacyMonitor, useTerminalSessionClose, useTerminalSessionCreateInstance, useTerminalSessionDeleteInstance, useTerminalSessionListInstances, useTerminalSessionListLegacyCameras, useTerminalSessionListProfiles, useTerminalSessionListSessions, useTerminalSessionOpenSession, useTerminalSessionPullOutput, useTerminalSessionResize, useTerminalSessionSetInstanceEnabled, useTerminalSessionUpdateInstance, useTerminalSessionWriteInput, useThemeMode, useTimedRunCancel, useTimedRunGetStatus, useTimedRunRunFor, useToastOnToast, useTrainingCanaryResult, useTrainingCancelJob, useTrainingDiscardResult, useTrainingGetJob, useTrainingGetJobResult, useTrainingListBaseModels, useTrainingListCanaryTargets, useTrainingListJobs, useTrainingPlanJob, useTrainingRegisterResult, useTrainingRollbackCanary, useTrainingStartJob, useTrainingStartJobBatch, useTurnProviderGetTurnServers, useUiText, useUnitPreferences, useUpdateGetStatus, useUpdateInstallUpdate, useUrlQueryParam, useUserManagementConfirmTotp, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementFindUserByExternalIdentity, useUserManagementGetAdminBootstrapStatus, useUserManagementGetTotpStatus, useUserManagementListExternalIdentities, useUserManagementListOauthSessions, useUserManagementListUsers, useUserManagementMigrateRawSecrets, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeOauthSession, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUnlinkExternalIdentity, useUserManagementUpdateUser, useUserManagementValidateCredentials, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, useVideoclipsDialClipStream, useVideoclipsGetClipPlayback, useVideoclipsGetPlaybackOptions, useVideoclipsListClips, useVideoclipsListSources, useVideoclipsOfferClipBytes, useVideoclipsReadClipBytes, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionApplyDownlinkProbe, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionDebug, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetCurrentSnapshotBatch, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, Scan as ut, UtensilsCrossed as v, vacuumStateMeta, validateScopes, valveStateMeta, variantLabel, House as vn, ChevronsDownUp as vr, Repeat1 as vt, Undo2 as w, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint, withHiddenChart, withPanel, withResolvedParentDetail, withUseRootModel, withoutModelScopedFields, withoutPanel, Hammer as wn, ChartLine as wr, writeStoredGroupBy, Puzzle as wt, UserCheck as x, Hash as xn, ChevronLeft as xr, RadioTower as xt, Users as y, History as yn, ChevronUp as yr, RefreshCw as yt, Tag as z, EyeOff as zn, BellRing as zr, Navigation as zt };
|