@camstack/ui-library 1.2.376 → 1.2.378
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 +16 -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 +2 -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 +724 -160
- package/dist/index.js +725 -166
- 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) => {
|
|
@@ -11111,6 +11191,8 @@ var useCoreBlocksGetCustomization = /*#__PURE__*/ alias(() => trpc.coreBlocks.ge
|
|
|
11111
11191
|
var useCoreBlocksListComposableCaps = /*#__PURE__*/ alias(() => trpc.coreBlocks.listComposableCaps.useQuery);
|
|
11112
11192
|
/** Generated alias around `trpc.coreBlocks.validateComposition.useMutation`. */
|
|
11113
11193
|
var useCoreBlocksValidateComposition = /*#__PURE__*/ alias(() => trpc.coreBlocks.validateComposition.useMutation);
|
|
11194
|
+
/** Generated alias around `trpc.coreBlocks.proposeRunningThreshold.useQuery`. */
|
|
11195
|
+
var useCoreBlocksProposeRunningThreshold = /*#__PURE__*/ alias(() => trpc.coreBlocks.proposeRunningThreshold.useQuery);
|
|
11114
11196
|
/** Generated alias around `trpc.coreBlocks.reportAutomationRun.useMutation`. */
|
|
11115
11197
|
var useCoreBlocksReportAutomationRun = /*#__PURE__*/ alias(() => trpc.coreBlocks.reportAutomationRun.useMutation);
|
|
11116
11198
|
/** Generated alias around `trpc.coreBlocks.getAutomationRunState.useQuery`. */
|
|
@@ -27737,6 +27819,92 @@ function NavigationPanel({ deviceId }) {
|
|
|
27737
27819
|
});
|
|
27738
27820
|
}
|
|
27739
27821
|
//#endregion
|
|
27822
|
+
//#region src/composites/cap-settings/PowerMeterLine.tsx
|
|
27823
|
+
/**
|
|
27824
|
+
* PowerMeterLine — the ONE place a device's electrical draw is shown (D1004):
|
|
27825
|
+
* a slim line directly under the device page's hero card, for every device
|
|
27826
|
+
* bound to the `power-meter` capability, whatever its type. The cap declares
|
|
27827
|
+
* `ui: { kind:'widget', widgetId:'host/power-meter-line', placement:'hero' }`;
|
|
27828
|
+
* no device-controls hero card draws watts itself
|
|
27829
|
+
* (`scripts/check-no-hero-self-drawn-power.ts`).
|
|
27830
|
+
*
|
|
27831
|
+
* A reading the device never reported is not drawn as a number: no slice, or
|
|
27832
|
+
* a slice with neither power nor energy, renders nothing; a missing field
|
|
27833
|
+
* (power but no energy, or the reverse) is simply absent, never `0` or `NaN`.
|
|
27834
|
+
*/
|
|
27835
|
+
/** A finite number, or null: the one gate between a slice field and the screen. */
|
|
27836
|
+
function known(value) {
|
|
27837
|
+
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
27838
|
+
}
|
|
27839
|
+
/** Whole watts below a kilowatt, one decimal above. */
|
|
27840
|
+
function formatPowerWatts(watts) {
|
|
27841
|
+
return Math.abs(watts) >= 1e3 ? {
|
|
27842
|
+
value: (watts / 1e3).toFixed(1),
|
|
27843
|
+
unit: "kW"
|
|
27844
|
+
} : {
|
|
27845
|
+
value: String(Math.round(watts)),
|
|
27846
|
+
unit: "W"
|
|
27847
|
+
};
|
|
27848
|
+
}
|
|
27849
|
+
/** Two decimals under 100 kWh, whole kWh above. */
|
|
27850
|
+
function formatEnergyKwh(kwh) {
|
|
27851
|
+
return Math.abs(kwh) >= 100 ? String(Math.round(kwh)) : kwh.toFixed(2);
|
|
27852
|
+
}
|
|
27853
|
+
function PowerMeterLine({ deviceId }) {
|
|
27854
|
+
const t = useUiText();
|
|
27855
|
+
const { slice } = useDeviceCapability({
|
|
27856
|
+
trpc: useSystem().trpcClient,
|
|
27857
|
+
deviceId,
|
|
27858
|
+
cap: (d) => d.powerMeter,
|
|
27859
|
+
slice: (d) => d.state.powerMeter
|
|
27860
|
+
});
|
|
27861
|
+
const power = known(slice?.power);
|
|
27862
|
+
const energy = known(slice?.energy);
|
|
27863
|
+
if (power === null && energy === null) return null;
|
|
27864
|
+
const drawing = power !== null && power > 0;
|
|
27865
|
+
const shown = power === null ? null : formatPowerWatts(power);
|
|
27866
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
27867
|
+
"data-testid": "power-meter-line",
|
|
27868
|
+
className: "flex items-center gap-3 rounded-lg border border-border bg-surface px-3 py-2",
|
|
27869
|
+
children: [
|
|
27870
|
+
/* @__PURE__ */ jsxs("span", {
|
|
27871
|
+
className: "relative flex h-5 w-5 shrink-0 items-center justify-center",
|
|
27872
|
+
children: [drawing && /* @__PURE__ */ jsx("span", {
|
|
27873
|
+
"aria-hidden": "true",
|
|
27874
|
+
"data-testid": "power-meter-pulse",
|
|
27875
|
+
className: "absolute inset-0 rounded-full bg-primary/20 motion-safe:animate-pulse"
|
|
27876
|
+
}), /* @__PURE__ */ jsx(Zap, {
|
|
27877
|
+
className: cn("relative h-3.5 w-3.5", drawing ? "text-primary" : "text-foreground-subtle"),
|
|
27878
|
+
"aria-hidden": true
|
|
27879
|
+
})]
|
|
27880
|
+
}),
|
|
27881
|
+
shown !== null && /* @__PURE__ */ jsxs("span", {
|
|
27882
|
+
"data-testid": "power-meter-power",
|
|
27883
|
+
className: "flex items-baseline gap-1 tabular-nums",
|
|
27884
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
27885
|
+
className: "text-lg font-semibold text-foreground",
|
|
27886
|
+
children: shown.value
|
|
27887
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
27888
|
+
className: "text-xs text-foreground-muted",
|
|
27889
|
+
children: shown.unit
|
|
27890
|
+
})]
|
|
27891
|
+
}),
|
|
27892
|
+
energy !== null && /* @__PURE__ */ jsxs("span", {
|
|
27893
|
+
"data-testid": "power-meter-energy",
|
|
27894
|
+
className: "ml-auto flex items-baseline gap-1 tabular-nums",
|
|
27895
|
+
title: t("uiLibrary.powerMeterLine.energy", "Energy"),
|
|
27896
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
27897
|
+
className: "text-sm text-foreground-muted",
|
|
27898
|
+
children: formatEnergyKwh(energy)
|
|
27899
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
27900
|
+
className: "text-xs text-foreground-subtle",
|
|
27901
|
+
children: "kWh"
|
|
27902
|
+
})]
|
|
27903
|
+
})
|
|
27904
|
+
]
|
|
27905
|
+
});
|
|
27906
|
+
}
|
|
27907
|
+
//#endregion
|
|
27740
27908
|
//#region src/lib/cap-error.ts
|
|
27741
27909
|
/**
|
|
27742
27910
|
* Shared capability-error utilities for the admin UI.
|
|
@@ -30710,11 +30878,12 @@ function RecordingPanel({ deviceId }) {
|
|
|
30710
30878
|
* `type:'widget'` ConfigField. `WidgetSlot` resolves these BEFORE the
|
|
30711
30879
|
* Module-Federation `WidgetRegistry`. ids are namespaced `host/<name>`. */
|
|
30712
30880
|
var HOST_WIDGETS = {
|
|
30713
|
-
"host/motion-zones-grid": lazy(() => import("./MotionZonesSettings-
|
|
30714
|
-
"host/privacy-mask-grid": lazy(() => import("./PrivacyMaskSettings-
|
|
30881
|
+
"host/motion-zones-grid": lazy(() => import("./MotionZonesSettings-BvpjmW6y.js").then((m) => ({ default: m.MotionZonesSettings }))),
|
|
30882
|
+
"host/privacy-mask-grid": lazy(() => import("./PrivacyMaskSettings-D7o4tx8e.js").then((m) => ({ default: m.PrivacyMaskSettings }))),
|
|
30715
30883
|
"host/ptz-panel": PtzPanel,
|
|
30716
30884
|
"host/navigation-panel": NavigationPanel,
|
|
30717
30885
|
"host/consumables-panel": ConsumablesPanel,
|
|
30886
|
+
"host/power-meter-line": PowerMeterLine,
|
|
30718
30887
|
"host/ptz-autotrack": AutotrackSection,
|
|
30719
30888
|
"host/recording-panel": RecordingPanel,
|
|
30720
30889
|
"host/camera-grid-layout": CameraGridLayoutEditor,
|
|
@@ -37051,8 +37220,8 @@ function pickWifiIcon(signalPercent) {
|
|
|
37051
37220
|
}
|
|
37052
37221
|
function signalColor(signalPercent) {
|
|
37053
37222
|
if (signalPercent === null) return "text-foreground-subtle";
|
|
37054
|
-
if (signalPercent <= 20) return "text-
|
|
37055
|
-
if (signalPercent <= 50) return "text-
|
|
37223
|
+
if (signalPercent <= 20) return "text-danger";
|
|
37224
|
+
if (signalPercent <= 50) return "text-warning";
|
|
37056
37225
|
return "text-foreground-subtle";
|
|
37057
37226
|
}
|
|
37058
37227
|
function NetworkLinkBadge({ status, className }) {
|
|
@@ -37063,15 +37232,16 @@ function NetworkLinkBadge({ status, className }) {
|
|
|
37063
37232
|
title: t("uiLibrary.networkLinkBadge.ethernet", "Network: ethernet"),
|
|
37064
37233
|
children: /* @__PURE__ */ jsx(Cable, { className: "h-3.5 w-3.5" })
|
|
37065
37234
|
});
|
|
37066
|
-
const
|
|
37067
|
-
const
|
|
37235
|
+
const reading = typeof status.signal === "number" && Number.isFinite(status.signal) ? status.signal : null;
|
|
37236
|
+
const Icon = status.type === "cellular" ? RadioTower : pickWifiIcon(reading);
|
|
37237
|
+
const signal = reading === null ? null : Math.round(reading);
|
|
37068
37238
|
const networkText = status.ssid ? t("uiLibrary.networkLinkBadge.typeSsid", "Network: {{type}} ({{ssid}})", {
|
|
37069
37239
|
type: status.type,
|
|
37070
37240
|
ssid: status.ssid
|
|
37071
37241
|
}) : t("uiLibrary.networkLinkBadge.type", "Network: {{type}}", { type: status.type });
|
|
37072
37242
|
const title = signal === null ? networkText : `${networkText} · ${t("uiLibrary.networkLinkBadge.signal", "signal {{percent}}%", { percent: signal })}`;
|
|
37073
37243
|
return /* @__PURE__ */ jsxs("span", {
|
|
37074
|
-
className: cn("inline-flex items-center gap-1 text-[10px] font-medium", signalColor(
|
|
37244
|
+
className: cn("inline-flex items-center gap-1 text-[10px] font-medium", signalColor(reading), className),
|
|
37075
37245
|
title,
|
|
37076
37246
|
children: [/* @__PURE__ */ jsx(Icon, { className: "h-3.5 w-3.5" }), signal !== null && /* @__PURE__ */ jsxs("span", { children: [signal, "%"] })]
|
|
37077
37247
|
});
|
|
@@ -48758,29 +48928,179 @@ function ClimatePanel({ trpc, deviceId, features: _features, layout, optimistic
|
|
|
48758
48928
|
});
|
|
48759
48929
|
}
|
|
48760
48930
|
//#endregion
|
|
48931
|
+
//#region src/composites/device-controls/media-player-view.ts
|
|
48932
|
+
/**
|
|
48933
|
+
* The state → view mapping of the media-player hero card, kept pure so it can
|
|
48934
|
+
* be specified without rendering.
|
|
48935
|
+
*
|
|
48936
|
+
* Two questions are answered separately. POWER is whether the device is on
|
|
48937
|
+
* (`off` / `standby` / on); RUNNING is what a powered device is doing
|
|
48938
|
+
* (`playing` / `paused` / `buffering` / `idle`). A status that never arrived
|
|
48939
|
+
* is `unknown` for both, and an unknown state is never drawn as off: it is
|
|
48940
|
+
* its own look. A value the driver only guesses (infrared has no feedback)
|
|
48941
|
+
* carries an `assumed` flag so the card can draw it as a guess.
|
|
48942
|
+
*
|
|
48943
|
+
* The controls are derived from what the device exposes — the status fields
|
|
48944
|
+
* it fills and the `DeviceFeature` flags it declares — never from a vendor.
|
|
48945
|
+
*/
|
|
48946
|
+
var NO_TRANSPORT = {
|
|
48947
|
+
playPause: false,
|
|
48948
|
+
previous: false,
|
|
48949
|
+
next: false,
|
|
48950
|
+
stop: false
|
|
48951
|
+
};
|
|
48952
|
+
/** Whether the status carries any activity the device actually reported. */
|
|
48953
|
+
function runningOf(state) {
|
|
48954
|
+
switch (state) {
|
|
48955
|
+
case "playing":
|
|
48956
|
+
case "paused":
|
|
48957
|
+
case "buffering":
|
|
48958
|
+
case "idle": return state;
|
|
48959
|
+
case void 0: return "unknown";
|
|
48960
|
+
default: return "none";
|
|
48961
|
+
}
|
|
48962
|
+
}
|
|
48963
|
+
function artworkOf(status) {
|
|
48964
|
+
const url = status.currentMedia?.imageUrl?.trim() ?? "";
|
|
48965
|
+
return url === "" ? null : url;
|
|
48966
|
+
}
|
|
48967
|
+
function powerOf(state) {
|
|
48968
|
+
if (state === void 0) return "unknown";
|
|
48969
|
+
if (state === "off") return "off";
|
|
48970
|
+
if (state === "standby") return "standby";
|
|
48971
|
+
return "on";
|
|
48972
|
+
}
|
|
48973
|
+
/**
|
|
48974
|
+
* A slice from before `assumedFields` existed (stateSource assumed, no list)
|
|
48975
|
+
* means the whole state is a guess; with a list, only the named fields are.
|
|
48976
|
+
*/
|
|
48977
|
+
function isAssumed(status, field) {
|
|
48978
|
+
if (status.stateSource !== "assumed") return false;
|
|
48979
|
+
const listed = status.assumedFields ?? [];
|
|
48980
|
+
return listed.length === 0 || listed.includes(field);
|
|
48981
|
+
}
|
|
48982
|
+
var UNKNOWN_VIEW = {
|
|
48983
|
+
power: "unknown",
|
|
48984
|
+
runningReading: "unknown",
|
|
48985
|
+
running: "unknown",
|
|
48986
|
+
stateAssumed: false,
|
|
48987
|
+
canSwitchPower: false,
|
|
48988
|
+
transport: NO_TRANSPORT,
|
|
48989
|
+
seek: false,
|
|
48990
|
+
volume: "none",
|
|
48991
|
+
volumeAssumed: false,
|
|
48992
|
+
volumeKnown: false,
|
|
48993
|
+
muteKnown: false,
|
|
48994
|
+
artworkUrl: null,
|
|
48995
|
+
mute: false,
|
|
48996
|
+
muteAssumed: false,
|
|
48997
|
+
source: null,
|
|
48998
|
+
sourceAssumed: false,
|
|
48999
|
+
shuffle: false,
|
|
49000
|
+
repeat: false
|
|
49001
|
+
};
|
|
49002
|
+
function readingOf(running) {
|
|
49003
|
+
if (running === true) return "running";
|
|
49004
|
+
if (running === false) return "idle";
|
|
49005
|
+
return "unknown";
|
|
49006
|
+
}
|
|
49007
|
+
function deriveMediaPlayerView(status, features, extras = {}) {
|
|
49008
|
+
const runningReading = readingOf(extras.running);
|
|
49009
|
+
const view = deriveFromStatus(status, features);
|
|
49010
|
+
const guessed = status === void 0 || status.state === void 0 || view.stateAssumed;
|
|
49011
|
+
if (runningReading === "unknown" || !guessed) return {
|
|
49012
|
+
...view,
|
|
49013
|
+
runningReading
|
|
49014
|
+
};
|
|
49015
|
+
if (runningReading === "idle") return {
|
|
49016
|
+
...UNKNOWN_VIEW,
|
|
49017
|
+
power: "off",
|
|
49018
|
+
running: "none",
|
|
49019
|
+
canSwitchPower: view.canSwitchPower,
|
|
49020
|
+
runningReading
|
|
49021
|
+
};
|
|
49022
|
+
return {
|
|
49023
|
+
...status === void 0 ? view : deriveFromStatus(status.state === void 0 || status.state === "off" || status.state === "standby" ? {
|
|
49024
|
+
...status,
|
|
49025
|
+
state: "on"
|
|
49026
|
+
} : status, features),
|
|
49027
|
+
power: "on",
|
|
49028
|
+
stateAssumed: false,
|
|
49029
|
+
runningReading
|
|
49030
|
+
};
|
|
49031
|
+
}
|
|
49032
|
+
function deriveFromStatus(status, features) {
|
|
49033
|
+
const has = (f) => features?.includes(f) ?? false;
|
|
49034
|
+
const canSwitchPower = has(DeviceFeature.MediaPlayerPower);
|
|
49035
|
+
if (status === void 0 || status.state === void 0) return {
|
|
49036
|
+
...UNKNOWN_VIEW,
|
|
49037
|
+
canSwitchPower
|
|
49038
|
+
};
|
|
49039
|
+
const power = powerOf(status.state);
|
|
49040
|
+
const running = runningOf(status.state);
|
|
49041
|
+
const base = {
|
|
49042
|
+
...UNKNOWN_VIEW,
|
|
49043
|
+
power,
|
|
49044
|
+
running,
|
|
49045
|
+
stateAssumed: isAssumed(status, "state"),
|
|
49046
|
+
canSwitchPower
|
|
49047
|
+
};
|
|
49048
|
+
if (power !== "on") return base;
|
|
49049
|
+
const hasTransportFeature = has(DeviceFeature.MediaPlayerNext) || has(DeviceFeature.MediaPlayerPrevious) || has(DeviceFeature.MediaPlayerStop) || has(DeviceFeature.MediaPlayerSeek);
|
|
49050
|
+
const volume = has(DeviceFeature.MediaPlayerVolume) ? "slider" : has(DeviceFeature.MediaPlayerVolumeStep) ? "steps" : "none";
|
|
49051
|
+
const sourceName = typeof status.source === "string" ? status.source.trim() : "";
|
|
49052
|
+
const options = status.availableSources ?? [];
|
|
49053
|
+
const hasSource = sourceName !== "" || options.length > 0;
|
|
49054
|
+
return {
|
|
49055
|
+
...base,
|
|
49056
|
+
transport: {
|
|
49057
|
+
playPause: running !== "none" || hasTransportFeature,
|
|
49058
|
+
previous: has(DeviceFeature.MediaPlayerPrevious),
|
|
49059
|
+
next: has(DeviceFeature.MediaPlayerNext),
|
|
49060
|
+
stop: has(DeviceFeature.MediaPlayerStop)
|
|
49061
|
+
},
|
|
49062
|
+
seek: has(DeviceFeature.MediaPlayerSeek) && status.duration !== null && status.duration > 0,
|
|
49063
|
+
volume,
|
|
49064
|
+
volumeAssumed: isAssumed(status, "volumeLevel"),
|
|
49065
|
+
mute: has(DeviceFeature.MediaPlayerMute) || volume === "slider" && status.isMuted !== null,
|
|
49066
|
+
volumeKnown: status.volumeLevel !== null,
|
|
49067
|
+
muteKnown: status.isMuted !== null,
|
|
49068
|
+
artworkUrl: artworkOf(status),
|
|
49069
|
+
muteAssumed: isAssumed(status, "isMuted"),
|
|
49070
|
+
source: hasSource ? {
|
|
49071
|
+
current: sourceName,
|
|
49072
|
+
options,
|
|
49073
|
+
selectable: has(DeviceFeature.MediaPlayerSelectSource) && options.length > 1
|
|
49074
|
+
} : null,
|
|
49075
|
+
sourceAssumed: isAssumed(status, "source"),
|
|
49076
|
+
shuffle: has(DeviceFeature.MediaPlayerShuffle) && status.shuffle !== null,
|
|
49077
|
+
repeat: has(DeviceFeature.MediaPlayerRepeat) && status.repeat !== null
|
|
49078
|
+
};
|
|
49079
|
+
}
|
|
49080
|
+
//#endregion
|
|
48761
49081
|
//#region src/composites/device-controls/media-player-panel.tsx
|
|
48762
49082
|
/**
|
|
48763
49083
|
* Exhaustive colour map — one entry per MediaPlayerState.
|
|
48764
49084
|
* Build fails if a state is added and not reflected here.
|
|
48765
49085
|
*/
|
|
48766
49086
|
var STATE_COLOR = {
|
|
48767
|
-
playing: "border-
|
|
48768
|
-
paused: "border-
|
|
48769
|
-
buffering: "border-
|
|
48770
|
-
on: "border-
|
|
48771
|
-
idle: "border-
|
|
48772
|
-
off: "border-
|
|
48773
|
-
standby: "border-
|
|
49087
|
+
playing: "border-success/50 bg-success/10",
|
|
49088
|
+
paused: "border-warning/50 bg-warning/10",
|
|
49089
|
+
buffering: "border-info/50 bg-info/10",
|
|
49090
|
+
on: "border-foreground-subtle/40 bg-surface-hover",
|
|
49091
|
+
idle: "border-foreground-subtle/40 bg-surface-hover",
|
|
49092
|
+
off: "border-border bg-surface",
|
|
49093
|
+
standby: "border-border bg-surface"
|
|
48774
49094
|
};
|
|
48775
49095
|
/** Dot indicator colour (small circle) per state. */
|
|
48776
49096
|
var STATE_DOT_COLOR = {
|
|
48777
|
-
playing: "bg-
|
|
48778
|
-
paused: "bg-
|
|
48779
|
-
buffering: "bg-
|
|
48780
|
-
on: "bg-
|
|
48781
|
-
idle: "bg-
|
|
48782
|
-
off: "bg-
|
|
48783
|
-
standby: "bg-
|
|
49097
|
+
playing: "bg-success",
|
|
49098
|
+
paused: "bg-warning",
|
|
49099
|
+
buffering: "bg-info",
|
|
49100
|
+
on: "bg-foreground-subtle",
|
|
49101
|
+
idle: "bg-foreground-subtle",
|
|
49102
|
+
off: "bg-border",
|
|
49103
|
+
standby: "bg-border"
|
|
48784
49104
|
};
|
|
48785
49105
|
/** Exhaustive tuple of valid repeat values — single source of truth. */
|
|
48786
49106
|
var REPEAT_VALUES = [
|
|
@@ -48804,7 +49124,7 @@ function toggleAction$1(state) {
|
|
|
48804
49124
|
if (state === "playing" || state === "buffering") return "pause";
|
|
48805
49125
|
return "play";
|
|
48806
49126
|
}
|
|
48807
|
-
function MediaPlayerPanel({ trpc, deviceId, features
|
|
49127
|
+
function MediaPlayerPanel({ trpc, deviceId, features, layout, optimistic }) {
|
|
48808
49128
|
const t = useUiText();
|
|
48809
49129
|
const { cap, slice, available } = useDeviceCapability({
|
|
48810
49130
|
trpc,
|
|
@@ -48814,6 +49134,7 @@ function MediaPlayerPanel({ trpc, deviceId, features: _features, layout, optimis
|
|
|
48814
49134
|
});
|
|
48815
49135
|
const { display, applyOptimistic } = useOptimisticSlice(slice, { enabled: optimistic ?? true });
|
|
48816
49136
|
if (display === void 0) return null;
|
|
49137
|
+
const declared = deriveMediaPlayerView(display, features, {});
|
|
48817
49138
|
const busy = !available;
|
|
48818
49139
|
const action = toggleAction$1(display.state);
|
|
48819
49140
|
return /* @__PURE__ */ jsxs("div", {
|
|
@@ -48868,7 +49189,7 @@ function MediaPlayerPanel({ trpc, deviceId, features: _features, layout, optimis
|
|
|
48868
49189
|
children: "⏭"
|
|
48869
49190
|
})]
|
|
48870
49191
|
}),
|
|
48871
|
-
display.volumeLevel !== null && /* @__PURE__ */ jsxs("label", {
|
|
49192
|
+
(declared.volume === "slider" || display.volumeLevel !== null) && /* @__PURE__ */ jsxs("label", {
|
|
48872
49193
|
className: "flex items-center gap-2 text-xs text-foreground-subtle",
|
|
48873
49194
|
children: [
|
|
48874
49195
|
/* @__PURE__ */ jsx("span", { children: t("uiLibrary.mediaPlayerPanel.vol", "Vol") }),
|
|
@@ -48878,7 +49199,7 @@ function MediaPlayerPanel({ trpc, deviceId, features: _features, layout, optimis
|
|
|
48878
49199
|
min: 0,
|
|
48879
49200
|
max: 100,
|
|
48880
49201
|
step: 1,
|
|
48881
|
-
value: display.volumeLevel,
|
|
49202
|
+
value: display.volumeLevel ?? 0,
|
|
48882
49203
|
disabled: busy,
|
|
48883
49204
|
onChange: (e) => {
|
|
48884
49205
|
const volumeLevel = Number(e.target.value);
|
|
@@ -48886,25 +49207,25 @@ function MediaPlayerPanel({ trpc, deviceId, features: _features, layout, optimis
|
|
|
48886
49207
|
if (!busy) cap?.setVolume({ volumeLevel });
|
|
48887
49208
|
}
|
|
48888
49209
|
}),
|
|
48889
|
-
/* @__PURE__ */
|
|
49210
|
+
/* @__PURE__ */ jsx("span", {
|
|
48890
49211
|
className: "tabular-nums w-8 text-right",
|
|
48891
|
-
children:
|
|
49212
|
+
children: display.volumeLevel === null ? "—" : `${display.volumeLevel}%`
|
|
48892
49213
|
})
|
|
48893
49214
|
]
|
|
48894
49215
|
}),
|
|
48895
|
-
display.isMuted !== null && /* @__PURE__ */ jsx("button", {
|
|
49216
|
+
(declared.mute || display.isMuted !== null) && /* @__PURE__ */ jsx("button", {
|
|
48896
49217
|
type: "button",
|
|
48897
49218
|
"aria-label": display.isMuted ? t("uiLibrary.mediaPlayerPanel.unmute", "Unmute") : t("uiLibrary.mediaPlayerPanel.mute", "Mute"),
|
|
48898
49219
|
disabled: busy,
|
|
48899
49220
|
onClick: (e) => {
|
|
48900
49221
|
e.stopPropagation();
|
|
48901
|
-
if (!busy
|
|
48902
|
-
const muted = !display.isMuted;
|
|
49222
|
+
if (!busy) {
|
|
49223
|
+
const muted = display.isMuted === null ? true : !display.isMuted;
|
|
48903
49224
|
applyOptimistic({ isMuted: muted });
|
|
48904
49225
|
cap?.setMute({ muted });
|
|
48905
49226
|
}
|
|
48906
49227
|
},
|
|
48907
|
-
className: cn("inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs transition-colors", display.isMuted ? "bg-
|
|
49228
|
+
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"),
|
|
48908
49229
|
children: display.isMuted ? "🔇" : "🔊"
|
|
48909
49230
|
}),
|
|
48910
49231
|
display.availableSources.length > 0 && /* @__PURE__ */ jsxs("label", {
|
|
@@ -48943,7 +49264,7 @@ function MediaPlayerPanel({ trpc, deviceId, features: _features, layout, optimis
|
|
|
48943
49264
|
cap?.setShuffle({ shuffle });
|
|
48944
49265
|
}
|
|
48945
49266
|
},
|
|
48946
|
-
className: cn("inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs transition-colors", display.shuffle ? "bg-
|
|
49267
|
+
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"),
|
|
48947
49268
|
children: ["⇌ ", t("uiLibrary.mediaPlayerPanel.shuffle", "Shuffle")]
|
|
48948
49269
|
}),
|
|
48949
49270
|
display.repeat !== null && /* @__PURE__ */ jsxs("label", {
|
|
@@ -55587,7 +55908,7 @@ function SwingToggle({ axis, on, busy, onToggle }) {
|
|
|
55587
55908
|
* "Run N min".
|
|
55588
55909
|
* - HeaterHeroCard (device-detail hero): the glowing heat backdrop (the same
|
|
55589
55910
|
* rising streaks a heating air conditioner draws) while it is on, the
|
|
55590
|
-
* on/off switch
|
|
55911
|
+
* on/off switch and the timed
|
|
55591
55912
|
* run (number, unit, Run, countdown, Cancel).
|
|
55592
55913
|
*
|
|
55593
55914
|
* Every reading may be unknown (`null`) and is drawn as a dash, never as zero.
|
|
@@ -55609,12 +55930,6 @@ function useHeater({ trpc, deviceId, optimistic }) {
|
|
|
55609
55930
|
cap: (d) => d.runningState,
|
|
55610
55931
|
slice: (d) => d.state.runningState
|
|
55611
55932
|
});
|
|
55612
|
-
const power = useDeviceCapability({
|
|
55613
|
-
trpc,
|
|
55614
|
-
deviceId,
|
|
55615
|
-
cap: (d) => d.powerMeter,
|
|
55616
|
-
slice: (d) => d.state.powerMeter
|
|
55617
|
-
});
|
|
55618
55933
|
const timer = useDeviceCapability({
|
|
55619
55934
|
trpc,
|
|
55620
55935
|
deviceId,
|
|
@@ -55628,7 +55943,6 @@ function useHeater({ trpc, deviceId, optimistic }) {
|
|
|
55628
55943
|
available,
|
|
55629
55944
|
applyOptimistic,
|
|
55630
55945
|
running: running.slice,
|
|
55631
|
-
power: power.slice,
|
|
55632
55946
|
timer
|
|
55633
55947
|
};
|
|
55634
55948
|
}
|
|
@@ -55671,11 +55985,10 @@ function HeaterInlineControl(props) {
|
|
|
55671
55985
|
}
|
|
55672
55986
|
function HeaterHeroCard(props) {
|
|
55673
55987
|
const t = useUiText();
|
|
55674
|
-
const { cap, display, available, applyOptimistic, running,
|
|
55988
|
+
const { cap, display, available, applyOptimistic, running, timer } = useHeater(props);
|
|
55675
55989
|
if (cap === void 0 || display === void 0) return null;
|
|
55676
55990
|
const on = display.on === true;
|
|
55677
55991
|
const heating = running?.running ?? on;
|
|
55678
|
-
const watts = power?.power ?? null;
|
|
55679
55992
|
return /* @__PURE__ */ jsxs("div", {
|
|
55680
55993
|
className: "relative flex flex-col items-stretch gap-3 overflow-hidden rounded-lg border border-border bg-surface p-4",
|
|
55681
55994
|
children: [
|
|
@@ -55693,21 +56006,13 @@ function HeaterHeroCard(props) {
|
|
|
55693
56006
|
})
|
|
55694
56007
|
}), /* @__PURE__ */ jsxs("div", {
|
|
55695
56008
|
className: "relative z-10 flex flex-col items-center gap-1",
|
|
55696
|
-
children: [
|
|
55697
|
-
|
|
55698
|
-
|
|
55699
|
-
|
|
55700
|
-
|
|
55701
|
-
|
|
55702
|
-
|
|
55703
|
-
children: heating ? t("uiLibrary.heater.heating", "Heating") : t("uiLibrary.heater.off", "Off")
|
|
55704
|
-
}),
|
|
55705
|
-
/* @__PURE__ */ jsx("span", {
|
|
55706
|
-
className: "text-xs tabular-nums text-foreground-muted",
|
|
55707
|
-
"data-testid": "heater-watts",
|
|
55708
|
-
children: watts === null ? "—" : `${Math.round(watts)} W`
|
|
55709
|
-
})
|
|
55710
|
-
]
|
|
56009
|
+
children: [/* @__PURE__ */ jsx(Flame, {
|
|
56010
|
+
className: cn("h-8 w-8", heating ? "text-warning" : "text-foreground-subtle"),
|
|
56011
|
+
"aria-hidden": true
|
|
56012
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
56013
|
+
className: "text-sm font-medium text-foreground",
|
|
56014
|
+
children: heating ? t("uiLibrary.heater.heating", "Heating") : t("uiLibrary.heater.off", "Off")
|
|
56015
|
+
})]
|
|
55711
56016
|
})]
|
|
55712
56017
|
}),
|
|
55713
56018
|
/* @__PURE__ */ jsxs("label", {
|
|
@@ -56152,17 +56457,16 @@ function DishwasherHeroCard(props) {
|
|
|
56152
56457
|
* Appliance card for a `DeviceType.Washer` / `DeviceType.Dryer` device.
|
|
56153
56458
|
*
|
|
56154
56459
|
* These appliances have no program surface: what is worth showing is whether
|
|
56155
|
-
* the cycle is running (the `running-state` cap)
|
|
56156
|
-
*
|
|
56157
|
-
*
|
|
56460
|
+
* the cycle is running (the `running-state` cap) and for how long. The draw
|
|
56461
|
+
* is NOT drawn here: the `power-meter` cap's hero widget shows it under every
|
|
56462
|
+
* hero card (D1004).
|
|
56158
56463
|
* - ApplianceInlineControl (device-list row): the running badge round the
|
|
56159
|
-
* drum icon
|
|
56464
|
+
* drum icon.
|
|
56160
56465
|
* - ApplianceHeroCard (device-detail hero): the drum (turning only while a
|
|
56161
|
-
* cycle runs), the state, the phase
|
|
56466
|
+
* cycle runs), the state, the phase and the dwell.
|
|
56162
56467
|
*
|
|
56163
56468
|
* UNKNOWN IS NOT OFF (D393). `running: null` is drawn as "Unknown" and the
|
|
56164
|
-
* drum stays still and unbadged
|
|
56165
|
-
* "0 W". A slice that has not landed hides its row instead of faking a value.
|
|
56469
|
+
* drum stays still and unbadged.
|
|
56166
56470
|
*/
|
|
56167
56471
|
var KEYFRAMES = `
|
|
56168
56472
|
@keyframes apl-tumble { to { transform: rotate(360deg) } }
|
|
@@ -56171,10 +56475,6 @@ var KEYFRAMES = `
|
|
|
56171
56475
|
.apl-drum-run { animation: none !important; }
|
|
56172
56476
|
}
|
|
56173
56477
|
`;
|
|
56174
|
-
/** Whole watts, or a dash when the appliance has not reported a reading. */
|
|
56175
|
-
function formatWatts(power) {
|
|
56176
|
-
return power === void 0 || !Number.isFinite(power) ? "—" : `${Math.round(power)} W`;
|
|
56177
|
-
}
|
|
56178
56478
|
/** The state to a person: running / idle, or why there is none (unknown). */
|
|
56179
56479
|
function applianceStateLabel(running, t) {
|
|
56180
56480
|
if (running === true) return {
|
|
@@ -56197,10 +56497,7 @@ function dwellText(running, since, now, t) {
|
|
|
56197
56497
|
return "minutes" in duration ? t("uiLibrary.appliance.forMinutes", "for {{count}} min", { count: duration.minutes }) : t("uiLibrary.appliance.forHours", "for {{count}} h", { count: duration.hours });
|
|
56198
56498
|
}
|
|
56199
56499
|
function useApplianceState(props) {
|
|
56200
|
-
return {
|
|
56201
|
-
running: useDeviceState(props.trpc, props.deviceId, (s) => s.runningState),
|
|
56202
|
-
power: useDeviceState(props.trpc, props.deviceId, (s) => s.powerMeter)
|
|
56203
|
-
};
|
|
56500
|
+
return { running: useDeviceState(props.trpc, props.deviceId, (s) => s.runningState) };
|
|
56204
56501
|
}
|
|
56205
56502
|
/** The drum: a ring with a few items in it, turning only while a cycle runs. */
|
|
56206
56503
|
function Drum({ running }) {
|
|
@@ -56222,7 +56519,7 @@ function Drum({ running }) {
|
|
|
56222
56519
|
}
|
|
56223
56520
|
function ApplianceHeroCard(props) {
|
|
56224
56521
|
const t = useUiText();
|
|
56225
|
-
const { running
|
|
56522
|
+
const { running } = useApplianceState(props);
|
|
56226
56523
|
const state = running?.running ?? null;
|
|
56227
56524
|
const meta = applianceStateLabel(state, t);
|
|
56228
56525
|
const phase = running?.phase?.trim() ?? "";
|
|
@@ -56234,50 +56531,35 @@ function ApplianceHeroCard(props) {
|
|
|
56234
56531
|
/* @__PURE__ */ jsx(Drum, { running: state }),
|
|
56235
56532
|
/* @__PURE__ */ jsxs("div", {
|
|
56236
56533
|
className: "flex min-w-0 flex-1 flex-col gap-2",
|
|
56237
|
-
children: [
|
|
56238
|
-
|
|
56239
|
-
|
|
56240
|
-
|
|
56241
|
-
|
|
56242
|
-
|
|
56243
|
-
|
|
56244
|
-
|
|
56245
|
-
|
|
56246
|
-
|
|
56247
|
-
|
|
56248
|
-
|
|
56249
|
-
phase
|
|
56250
|
-
|
|
56251
|
-
children: phase
|
|
56252
|
-
}),
|
|
56253
|
-
power !== void 0 && /* @__PURE__ */ jsxs("span", {
|
|
56254
|
-
"data-testid": "appliance-power",
|
|
56255
|
-
className: "inline-flex items-center gap-1 text-sm tabular-nums text-foreground-muted",
|
|
56256
|
-
title: power.power === void 0 ? t("uiLibrary.appliance.powerUnknown", "Power unknown") : void 0,
|
|
56257
|
-
children: [/* @__PURE__ */ jsx(Zap, {
|
|
56258
|
-
className: "h-3.5 w-3.5",
|
|
56259
|
-
"aria-hidden": true
|
|
56260
|
-
}), formatWatts(power.power)]
|
|
56261
|
-
})
|
|
56262
|
-
]
|
|
56534
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
56535
|
+
className: "flex flex-wrap items-baseline gap-x-2",
|
|
56536
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
56537
|
+
"data-testid": "appliance-state",
|
|
56538
|
+
className: cn("text-3xl font-semibold", meta.tone),
|
|
56539
|
+
children: meta.label
|
|
56540
|
+
}), dwell !== null && /* @__PURE__ */ jsx("span", {
|
|
56541
|
+
className: "text-sm tabular-nums text-foreground-subtle",
|
|
56542
|
+
children: dwell
|
|
56543
|
+
})]
|
|
56544
|
+
}), phase !== "" && state !== null && /* @__PURE__ */ jsx("span", {
|
|
56545
|
+
className: "text-sm text-foreground-subtle",
|
|
56546
|
+
children: phase
|
|
56547
|
+
})]
|
|
56263
56548
|
})
|
|
56264
56549
|
]
|
|
56265
56550
|
});
|
|
56266
56551
|
}
|
|
56267
56552
|
function ApplianceInlineControl(props) {
|
|
56268
|
-
const { running
|
|
56269
|
-
return /* @__PURE__ */
|
|
56553
|
+
const { running } = useApplianceState(props);
|
|
56554
|
+
return /* @__PURE__ */ jsx("div", {
|
|
56270
56555
|
className: "inline-flex items-center gap-1.5 max-w-full",
|
|
56271
|
-
children:
|
|
56556
|
+
children: /* @__PURE__ */ jsx(RunningBadge, {
|
|
56272
56557
|
running: running?.running ?? null,
|
|
56273
56558
|
children: /* @__PURE__ */ jsx(WashingMachine, {
|
|
56274
56559
|
className: "h-4 w-4 text-foreground-muted",
|
|
56275
56560
|
"aria-hidden": true
|
|
56276
56561
|
})
|
|
56277
|
-
})
|
|
56278
|
-
className: "text-xs tabular-nums text-foreground-subtle",
|
|
56279
|
-
children: formatWatts(power.power)
|
|
56280
|
-
})]
|
|
56562
|
+
})
|
|
56281
56563
|
});
|
|
56282
56564
|
}
|
|
56283
56565
|
//#endregion
|
|
@@ -57242,6 +57524,106 @@ function SwitchHeroCard({ trpc, deviceId, optimistic }) {
|
|
|
57242
57524
|
});
|
|
57243
57525
|
}
|
|
57244
57526
|
//#endregion
|
|
57527
|
+
//#region src/composites/device-controls/media-player-hero-parts.tsx
|
|
57528
|
+
/**
|
|
57529
|
+
* The animated parts of the media-player hero: the power orb and the running
|
|
57530
|
+
* indicator. Motion is transform / opacity only, plays only while the state
|
|
57531
|
+
* says so, and stops under `prefers-reduced-motion` (the state is still told
|
|
57532
|
+
* by colour, icon and text, never by motion alone).
|
|
57533
|
+
*/
|
|
57534
|
+
var MEDIA_HERO_KEYFRAMES = `
|
|
57535
|
+
@keyframes mph-eq { 0%, 100% { transform: scaleY(.3) } 50% { transform: scaleY(1) } }
|
|
57536
|
+
@keyframes mph-halo { 0% { transform: scale(.92); opacity: .55 } 100% { transform: scale(1.4); opacity: 0 } }
|
|
57537
|
+
.mph-eq { transform-origin: bottom; animation: mph-eq 1s ease-in-out infinite; }
|
|
57538
|
+
.mph-eq:nth-child(2) { animation-duration: .8s; animation-delay: -.3s; }
|
|
57539
|
+
.mph-eq:nth-child(3) { animation-duration: 1.2s; animation-delay: -.6s; }
|
|
57540
|
+
.mph-eq:nth-child(4) { animation-duration: .9s; animation-delay: -.1s; }
|
|
57541
|
+
.mph-halo { animation: mph-halo 2.8s ease-out infinite; }
|
|
57542
|
+
@keyframes mph-in { from { opacity: 0 } to { opacity: 1 } }
|
|
57543
|
+
@keyframes mph-out { from { opacity: 1 } to { opacity: 0 } }
|
|
57544
|
+
.mph-fade-in { animation: mph-in .6s ease-out both; }
|
|
57545
|
+
.mph-fade-out { animation: mph-out .6s ease-out both; }
|
|
57546
|
+
@media (prefers-reduced-motion: reduce) {
|
|
57547
|
+
.mph-eq, .mph-halo, .mph-fade-in, .mph-fade-out { animation: none !important; }
|
|
57548
|
+
.mph-fade-out { opacity: 0; }
|
|
57549
|
+
.mph-eq:nth-child(odd) { transform: scaleY(.6); }
|
|
57550
|
+
.mph-halo { opacity: 0; }
|
|
57551
|
+
}
|
|
57552
|
+
`;
|
|
57553
|
+
var ORB_TONE = {
|
|
57554
|
+
on: "border-success bg-success/15 text-success shadow-lg shadow-success/30",
|
|
57555
|
+
standby: "border-warning bg-warning/10 text-warning",
|
|
57556
|
+
off: "border-border bg-surface-hover text-foreground-subtle",
|
|
57557
|
+
unknown: "border-dashed border-border bg-transparent text-foreground-subtle"
|
|
57558
|
+
};
|
|
57559
|
+
/** The device's power: a glowing ring when on, amber in standby, flat when off, dashed when unknown. */
|
|
57560
|
+
function PowerOrb({ power, onPress, label, busy }) {
|
|
57561
|
+
const body = /* @__PURE__ */ jsx(Fragment$1, { children: power === "unknown" ? /* @__PURE__ */ jsx(CircleQuestionMark, {
|
|
57562
|
+
className: "h-7 w-7",
|
|
57563
|
+
"aria-hidden": "true"
|
|
57564
|
+
}) : /* @__PURE__ */ jsx(Power, {
|
|
57565
|
+
className: "h-7 w-7",
|
|
57566
|
+
"aria-hidden": "true"
|
|
57567
|
+
}) });
|
|
57568
|
+
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]);
|
|
57569
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
57570
|
+
className: "relative flex h-20 w-20 items-center justify-center",
|
|
57571
|
+
"data-power": power,
|
|
57572
|
+
children: [power === "on" && /* @__PURE__ */ jsx("span", {
|
|
57573
|
+
"aria-hidden": "true",
|
|
57574
|
+
"data-testid": "media-power-halo",
|
|
57575
|
+
className: "mph-halo absolute h-16 w-16 rounded-full bg-success/25"
|
|
57576
|
+
}), onPress === void 0 ? /* @__PURE__ */ jsx("span", {
|
|
57577
|
+
className: classes,
|
|
57578
|
+
"data-testid": "media-power",
|
|
57579
|
+
role: "img",
|
|
57580
|
+
"aria-label": label,
|
|
57581
|
+
children: body
|
|
57582
|
+
}) : /* @__PURE__ */ jsx("button", {
|
|
57583
|
+
type: "button",
|
|
57584
|
+
"aria-label": label,
|
|
57585
|
+
title: label,
|
|
57586
|
+
disabled: busy,
|
|
57587
|
+
"data-testid": "media-power",
|
|
57588
|
+
onClick: (e) => {
|
|
57589
|
+
e.stopPropagation();
|
|
57590
|
+
if (!busy) onPress();
|
|
57591
|
+
},
|
|
57592
|
+
className: cn(classes, "hover:brightness-110 active:scale-95", busy && "cursor-not-allowed opacity-40"),
|
|
57593
|
+
children: body
|
|
57594
|
+
})]
|
|
57595
|
+
});
|
|
57596
|
+
}
|
|
57597
|
+
var EQ_BARS = [
|
|
57598
|
+
0,
|
|
57599
|
+
1,
|
|
57600
|
+
2,
|
|
57601
|
+
3
|
|
57602
|
+
];
|
|
57603
|
+
/** Equalizer while playing, a spinner while buffering, a pause glyph when paused; nothing otherwise. */
|
|
57604
|
+
function RunningIndicator({ running }) {
|
|
57605
|
+
if (running === "playing") return /* @__PURE__ */ jsx("span", {
|
|
57606
|
+
className: "inline-flex h-4 items-end gap-0.5 text-primary",
|
|
57607
|
+
"data-testid": "media-running",
|
|
57608
|
+
"data-running": "playing",
|
|
57609
|
+
"aria-hidden": "true",
|
|
57610
|
+
children: EQ_BARS.map((bar) => /* @__PURE__ */ jsx("span", { className: "mph-eq h-4 w-1 rounded-full bg-primary" }, bar))
|
|
57611
|
+
});
|
|
57612
|
+
if (running === "buffering") return /* @__PURE__ */ jsx(LoaderCircle, {
|
|
57613
|
+
className: "h-4 w-4 animate-spin text-foreground-muted motion-reduce:animate-none",
|
|
57614
|
+
"data-testid": "media-running",
|
|
57615
|
+
"data-running": "buffering",
|
|
57616
|
+
"aria-hidden": "true"
|
|
57617
|
+
});
|
|
57618
|
+
if (running === "paused") return /* @__PURE__ */ jsx(Pause, {
|
|
57619
|
+
className: "h-4 w-4 text-foreground-muted",
|
|
57620
|
+
"data-testid": "media-running",
|
|
57621
|
+
"data-running": "paused",
|
|
57622
|
+
"aria-hidden": "true"
|
|
57623
|
+
});
|
|
57624
|
+
return null;
|
|
57625
|
+
}
|
|
57626
|
+
//#endregion
|
|
57245
57627
|
//#region src/composites/device-controls/media-player-hero-card.tsx
|
|
57246
57628
|
/** Which states map to play() vs pause() on the central transport button. */
|
|
57247
57629
|
function toggleAction(state) {
|
|
@@ -57258,12 +57640,50 @@ function formatClock(ms) {
|
|
|
57258
57640
|
const total = Math.floor(ms / 1e3);
|
|
57259
57641
|
return `${Math.floor(total / 60)}:${(total % 60).toString().padStart(2, "0")}`;
|
|
57260
57642
|
}
|
|
57261
|
-
|
|
57643
|
+
var NEXT_REPEAT = {
|
|
57644
|
+
off: "all",
|
|
57645
|
+
all: "one",
|
|
57646
|
+
one: "off"
|
|
57647
|
+
};
|
|
57648
|
+
/** The artwork of what is playing; a change cross-fades from the previous cover. */
|
|
57649
|
+
function Artwork({ url }) {
|
|
57650
|
+
const [shown, setShown] = useState(url);
|
|
57651
|
+
const [previous, setPrevious] = useState(null);
|
|
57652
|
+
const [failed, setFailed] = useState(null);
|
|
57653
|
+
const last = useRef(url);
|
|
57654
|
+
useEffect(() => {
|
|
57655
|
+
if (last.current === url) return;
|
|
57656
|
+
setPrevious(last.current);
|
|
57657
|
+
setShown(url);
|
|
57658
|
+
last.current = url;
|
|
57659
|
+
const timer = setTimeout(() => setPrevious(null), 700);
|
|
57660
|
+
return () => clearTimeout(timer);
|
|
57661
|
+
}, [url]);
|
|
57662
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
57663
|
+
"data-testid": "media-artwork",
|
|
57664
|
+
className: "relative h-40 w-40 overflow-hidden rounded-lg border border-border bg-surface-hover",
|
|
57665
|
+
children: [previous !== null && /* @__PURE__ */ jsx("img", {
|
|
57666
|
+
src: previous,
|
|
57667
|
+
alt: "",
|
|
57668
|
+
className: "mph-fade-out absolute inset-0 h-full w-full object-cover"
|
|
57669
|
+
}), shown !== null && failed !== shown ? /* @__PURE__ */ jsx("img", {
|
|
57670
|
+
src: shown,
|
|
57671
|
+
alt: "",
|
|
57672
|
+
"data-testid": "media-artwork-img",
|
|
57673
|
+
className: "mph-fade-in absolute inset-0 h-full w-full object-cover",
|
|
57674
|
+
onError: () => setFailed(shown)
|
|
57675
|
+
}, shown) : /* @__PURE__ */ jsx(Music, {
|
|
57676
|
+
className: "absolute inset-0 m-auto h-8 w-8 text-foreground-subtle",
|
|
57677
|
+
"aria-hidden": "true"
|
|
57678
|
+
})]
|
|
57679
|
+
});
|
|
57680
|
+
}
|
|
57681
|
+
function NowPlaying({ title, subtitle, artworkUrl }) {
|
|
57262
57682
|
const t = useUiText();
|
|
57263
57683
|
return /* @__PURE__ */ jsxs("div", {
|
|
57264
|
-
className: "flex flex-col items-center gap-
|
|
57684
|
+
className: "flex flex-col items-center gap-2 text-center",
|
|
57265
57685
|
children: [
|
|
57266
|
-
/* @__PURE__ */ jsx(Music, {
|
|
57686
|
+
artworkUrl !== null ? /* @__PURE__ */ jsx(Artwork, { url: artworkUrl }) : /* @__PURE__ */ jsx(Music, {
|
|
57267
57687
|
className: "h-6 w-6 text-foreground-subtle",
|
|
57268
57688
|
"aria-hidden": "true"
|
|
57269
57689
|
}),
|
|
@@ -57287,18 +57707,23 @@ var STATE_LABEL$1 = {
|
|
|
57287
57707
|
buffering: "Buffering",
|
|
57288
57708
|
standby: "Standby"
|
|
57289
57709
|
};
|
|
57290
|
-
function StateLine({ state, assumed, source }) {
|
|
57710
|
+
function StateLine({ state, assumed, source, running }) {
|
|
57291
57711
|
const t = useUiText();
|
|
57292
57712
|
return /* @__PURE__ */ jsxs("div", {
|
|
57293
57713
|
className: "flex flex-wrap items-center justify-center gap-2 text-xs text-foreground-muted",
|
|
57294
57714
|
"data-testid": "media-state",
|
|
57295
57715
|
children: [
|
|
57296
|
-
|
|
57716
|
+
running,
|
|
57717
|
+
state === void 0 ? /* @__PURE__ */ jsx("span", {
|
|
57718
|
+
className: "font-medium text-foreground-subtle",
|
|
57719
|
+
"data-testid": "media-state-unknown",
|
|
57720
|
+
children: t("uiLibrary.mediaPlayerHero.state.unknown", "State unknown")
|
|
57721
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
57297
57722
|
className: "font-medium text-foreground",
|
|
57298
57723
|
children: t(`uiLibrary.mediaPlayerHero.state.${state}`, STATE_LABEL$1[state])
|
|
57299
57724
|
}),
|
|
57300
57725
|
assumed && /* @__PURE__ */ jsx("span", {
|
|
57301
|
-
className: "rounded border border-border px-1.5 py-0.5 text-[11px] text-foreground-subtle",
|
|
57726
|
+
className: "rounded border border-dashed border-border px-1.5 py-0.5 text-[11px] text-foreground-subtle",
|
|
57302
57727
|
title: t("uiLibrary.mediaPlayerHero.assumedHint", "No feedback from the device: this is what was last sent."),
|
|
57303
57728
|
"data-testid": "media-assumed",
|
|
57304
57729
|
children: t("uiLibrary.mediaPlayerHero.assumed", "assumed")
|
|
@@ -57310,33 +57735,40 @@ function StateLine({ state, assumed, source }) {
|
|
|
57310
57735
|
]
|
|
57311
57736
|
});
|
|
57312
57737
|
}
|
|
57313
|
-
function TransportButton({ label, busy, onPress, children, primary }) {
|
|
57738
|
+
function TransportButton({ label, busy, onPress, children, primary, active, testId }) {
|
|
57314
57739
|
return /* @__PURE__ */ jsx("button", {
|
|
57315
57740
|
type: "button",
|
|
57316
57741
|
"aria-label": label,
|
|
57742
|
+
"aria-pressed": active,
|
|
57317
57743
|
title: label,
|
|
57318
57744
|
disabled: busy,
|
|
57745
|
+
"data-testid": testId,
|
|
57319
57746
|
onClick: (e) => {
|
|
57320
57747
|
e.stopPropagation();
|
|
57321
57748
|
if (!busy) onPress();
|
|
57322
57749
|
},
|
|
57323
|
-
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"),
|
|
57750
|
+
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"),
|
|
57324
57751
|
children
|
|
57325
57752
|
});
|
|
57326
57753
|
}
|
|
57327
57754
|
/**
|
|
57328
|
-
* MediaPlayerHeroCard —
|
|
57755
|
+
* MediaPlayerHeroCard — the state of a MediaPlayer device and every control it
|
|
57756
|
+
* exposes, drawn from `deriveMediaPlayerView` (the state → view mapping and
|
|
57757
|
+
* its spec live in `media-player-view.ts`).
|
|
57329
57758
|
*
|
|
57330
|
-
*
|
|
57331
|
-
*
|
|
57332
|
-
*
|
|
57333
|
-
*
|
|
57334
|
-
*
|
|
57335
|
-
*
|
|
57336
|
-
*
|
|
57337
|
-
*
|
|
57759
|
+
* - Power orb: glowing when on, amber in standby, flat when off, dashed with a
|
|
57760
|
+
* question mark while the state is unknown (never drawn as off). It is the
|
|
57761
|
+
* power switch when the device declares `MediaPlayerPower`.
|
|
57762
|
+
* - Running line: equalizer while playing, spinner while buffering, pause
|
|
57763
|
+
* glyph when paused; a value the driver only guesses carries an "assumed" mark.
|
|
57764
|
+
* - Only while the device is on: now-playing, seek, transport (previous /
|
|
57765
|
+
* play-pause / stop / next), volume (slider with mute, or steps when the
|
|
57766
|
+
* device has no level reading), the source (a picker when it can switch),
|
|
57767
|
+
* shuffle and repeat. Each appears only when the status fills it or a
|
|
57768
|
+
* `DeviceFeature` declares it — no per-vendor list.
|
|
57338
57769
|
*
|
|
57339
57770
|
* Cap-gated on `media-player` — returns null when the device lacks the cap.
|
|
57771
|
+
* Motion respects `prefers-reduced-motion`.
|
|
57340
57772
|
*/
|
|
57341
57773
|
function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
57342
57774
|
const t = useUiText();
|
|
@@ -57347,15 +57779,24 @@ function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
57347
57779
|
slice: (d) => d.state.mediaPlayer
|
|
57348
57780
|
});
|
|
57349
57781
|
const { display, applyOptimistic } = useOptimisticSlice(slice, { enabled: optimistic ?? true });
|
|
57782
|
+
const runningSlice = useDeviceState(trpc, deviceId, (st) => st.runningState);
|
|
57350
57783
|
if (cap === void 0) return null;
|
|
57351
|
-
|
|
57784
|
+
const view = deriveMediaPlayerView(display, features, { running: runningSlice?.running });
|
|
57352
57785
|
const busy = !available;
|
|
57353
|
-
const
|
|
57354
|
-
const
|
|
57355
|
-
const
|
|
57356
|
-
const
|
|
57357
|
-
|
|
57358
|
-
|
|
57786
|
+
const status = display;
|
|
57787
|
+
const powered = status !== void 0 && view.power === "on";
|
|
57788
|
+
const action = toggleAction(status?.state ?? "off");
|
|
57789
|
+
const switchPower = () => {
|
|
57790
|
+
if (busy) return;
|
|
57791
|
+
if (view.power === "on") {
|
|
57792
|
+
applyOptimistic({ state: "off" });
|
|
57793
|
+
cap.turnOff({});
|
|
57794
|
+
} else {
|
|
57795
|
+
applyOptimistic({ state: "on" });
|
|
57796
|
+
cap.turnOn({});
|
|
57797
|
+
}
|
|
57798
|
+
};
|
|
57799
|
+
const powerLabel = powerLabelOf(view.power, t);
|
|
57359
57800
|
const handleToggle = () => {
|
|
57360
57801
|
if (busy) return;
|
|
57361
57802
|
if (action === "play") {
|
|
@@ -57366,25 +57807,60 @@ function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
57366
57807
|
cap.pause({});
|
|
57367
57808
|
}
|
|
57368
57809
|
};
|
|
57369
|
-
const title =
|
|
57370
|
-
const subtitle =
|
|
57371
|
-
const hasNowPlaying = title !== null || subtitle !== null;
|
|
57372
|
-
const
|
|
57373
|
-
const
|
|
57374
|
-
const
|
|
57810
|
+
const title = status?.currentMedia?.title ?? null;
|
|
57811
|
+
const subtitle = status?.currentMedia?.artist ?? status?.currentMedia?.album ?? null;
|
|
57812
|
+
const hasNowPlaying = powered && (title !== null || subtitle !== null || view.artworkUrl !== null);
|
|
57813
|
+
const assumedAny = view.stateAssumed || view.volumeAssumed || view.muteAssumed || view.sourceAssumed;
|
|
57814
|
+
const sourceText = powered && view.source !== null && !view.source.selectable ? view.source.current : "";
|
|
57815
|
+
const volumeLevel = status?.volumeLevel ?? null;
|
|
57375
57816
|
return /* @__PURE__ */ jsxs("div", {
|
|
57376
|
-
className: "flex flex-col items-stretch gap-4 rounded-lg border
|
|
57817
|
+
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"),
|
|
57818
|
+
"data-testid": "media-hero",
|
|
57819
|
+
"data-power": view.power,
|
|
57377
57820
|
children: [
|
|
57378
|
-
/* @__PURE__ */ jsx(
|
|
57379
|
-
|
|
57380
|
-
|
|
57381
|
-
|
|
57821
|
+
/* @__PURE__ */ jsx("style", { children: MEDIA_HERO_KEYFRAMES }),
|
|
57822
|
+
/* @__PURE__ */ jsxs("div", {
|
|
57823
|
+
className: "flex flex-col items-center gap-2",
|
|
57824
|
+
children: [/* @__PURE__ */ jsx(PowerOrb, {
|
|
57825
|
+
power: view.power,
|
|
57826
|
+
label: powerLabel,
|
|
57827
|
+
busy,
|
|
57828
|
+
onPress: view.canSwitchPower ? switchPower : void 0
|
|
57829
|
+
}), /* @__PURE__ */ jsx(StateLine, {
|
|
57830
|
+
state: status?.state,
|
|
57831
|
+
assumed: assumedAny,
|
|
57832
|
+
source: sourceText,
|
|
57833
|
+
running: /* @__PURE__ */ jsx(RunningIndicator, { running: view.running })
|
|
57834
|
+
})]
|
|
57382
57835
|
}),
|
|
57383
57836
|
hasNowPlaying && /* @__PURE__ */ jsx(NowPlaying, {
|
|
57384
57837
|
title,
|
|
57385
|
-
subtitle
|
|
57838
|
+
subtitle,
|
|
57839
|
+
artworkUrl: view.artworkUrl
|
|
57840
|
+
}),
|
|
57841
|
+
powered && view.source !== null && view.source.selectable && /* @__PURE__ */ jsxs("div", {
|
|
57842
|
+
"data-testid": "media-source-select",
|
|
57843
|
+
className: "flex items-center gap-2",
|
|
57844
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
57845
|
+
className: "text-xs text-foreground-subtle",
|
|
57846
|
+
children: t("uiLibrary.mediaPlayerHero.source", "Source")
|
|
57847
|
+
}), /* @__PURE__ */ jsx(Select, {
|
|
57848
|
+
"aria-label": t("uiLibrary.mediaPlayerHero.source", "Source"),
|
|
57849
|
+
value: view.source.current,
|
|
57850
|
+
disabled: busy,
|
|
57851
|
+
wrapperClassName: "relative min-w-0 flex-1",
|
|
57852
|
+
options: view.source.options.map((o) => ({
|
|
57853
|
+
value: o,
|
|
57854
|
+
label: o
|
|
57855
|
+
})),
|
|
57856
|
+
onChange: (e) => {
|
|
57857
|
+
if (busy) return;
|
|
57858
|
+
applyOptimistic({ source: e.target.value });
|
|
57859
|
+
cap.selectSource({ source: e.target.value });
|
|
57860
|
+
}
|
|
57861
|
+
})]
|
|
57386
57862
|
}),
|
|
57387
|
-
|
|
57863
|
+
powered && view.seek && status !== void 0 && /* @__PURE__ */ jsxs("div", {
|
|
57388
57864
|
"data-testid": "media-seek",
|
|
57389
57865
|
className: "flex flex-col gap-1",
|
|
57390
57866
|
children: [/* @__PURE__ */ jsxs("label", {
|
|
@@ -57398,10 +57874,10 @@ function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
57398
57874
|
"aria-label": t("uiLibrary.mediaPlayerHero.seek", "Seek"),
|
|
57399
57875
|
type: "range",
|
|
57400
57876
|
min: 0,
|
|
57401
|
-
max:
|
|
57877
|
+
max: status.duration ?? 0,
|
|
57402
57878
|
step: 1e3,
|
|
57403
57879
|
className: "absolute inset-0 h-4 w-full cursor-pointer opacity-0",
|
|
57404
|
-
value:
|
|
57880
|
+
value: status.position ?? 0,
|
|
57405
57881
|
disabled: busy,
|
|
57406
57882
|
onChange: (e) => {
|
|
57407
57883
|
if (busy) return;
|
|
@@ -57412,18 +57888,19 @@ function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
57412
57888
|
}),
|
|
57413
57889
|
/* @__PURE__ */ jsx("div", {
|
|
57414
57890
|
className: "pointer-events-none",
|
|
57415
|
-
children: /* @__PURE__ */ jsx(GripTrack, { fraction:
|
|
57891
|
+
children: /* @__PURE__ */ jsx(GripTrack, { fraction: progressFraction(status.position, status.duration) })
|
|
57416
57892
|
})
|
|
57417
57893
|
]
|
|
57418
57894
|
}), /* @__PURE__ */ jsxs("div", {
|
|
57419
57895
|
className: "flex justify-between text-[11px] tabular-nums text-foreground-subtle",
|
|
57420
|
-
children: [/* @__PURE__ */ jsx("span", { children: formatClock(
|
|
57896
|
+
children: [/* @__PURE__ */ jsx("span", { children: formatClock(status.position) }), /* @__PURE__ */ jsx("span", { children: formatClock(status.duration) })]
|
|
57421
57897
|
})]
|
|
57422
57898
|
}),
|
|
57423
|
-
/* @__PURE__ */ jsxs("div", {
|
|
57899
|
+
powered && view.transport.playPause && /* @__PURE__ */ jsxs("div", {
|
|
57424
57900
|
className: "flex items-center justify-center gap-4",
|
|
57901
|
+
"data-testid": "media-transport",
|
|
57425
57902
|
children: [
|
|
57426
|
-
|
|
57903
|
+
view.transport.previous && /* @__PURE__ */ jsx(TransportButton, {
|
|
57427
57904
|
label: t("uiLibrary.mediaPlayerHero.previous", "Previous"),
|
|
57428
57905
|
busy,
|
|
57429
57906
|
onPress: () => void cap.previous({}),
|
|
@@ -57445,7 +57922,16 @@ function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
57445
57922
|
"aria-hidden": "true"
|
|
57446
57923
|
})
|
|
57447
57924
|
}),
|
|
57448
|
-
|
|
57925
|
+
view.transport.stop && /* @__PURE__ */ jsx(TransportButton, {
|
|
57926
|
+
label: t("uiLibrary.mediaPlayerHero.stop", "Stop"),
|
|
57927
|
+
busy,
|
|
57928
|
+
onPress: () => void cap.stop({}),
|
|
57929
|
+
children: /* @__PURE__ */ jsx(Square, {
|
|
57930
|
+
className: "h-4 w-4",
|
|
57931
|
+
"aria-hidden": "true"
|
|
57932
|
+
})
|
|
57933
|
+
}),
|
|
57934
|
+
view.transport.next && /* @__PURE__ */ jsx(TransportButton, {
|
|
57449
57935
|
label: t("uiLibrary.mediaPlayerHero.next", "Next"),
|
|
57450
57936
|
busy,
|
|
57451
57937
|
onPress: () => void cap.next({}),
|
|
@@ -57456,24 +57942,24 @@ function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
57456
57942
|
})
|
|
57457
57943
|
]
|
|
57458
57944
|
}),
|
|
57459
|
-
|
|
57945
|
+
powered && view.volume === "slider" && /* @__PURE__ */ jsxs("div", {
|
|
57460
57946
|
"data-testid": "media-volume",
|
|
57461
57947
|
className: "flex items-center gap-2",
|
|
57462
57948
|
children: [
|
|
57463
|
-
/* @__PURE__ */ jsx("button", {
|
|
57949
|
+
view.mute && /* @__PURE__ */ jsx("button", {
|
|
57464
57950
|
type: "button",
|
|
57465
|
-
"aria-label":
|
|
57466
|
-
title:
|
|
57951
|
+
"aria-label": status?.isMuted === true ? t("uiLibrary.mediaPlayerHero.unmute", "Unmute") : t("uiLibrary.mediaPlayerHero.mute", "Mute"),
|
|
57952
|
+
title: status?.isMuted === true ? t("uiLibrary.mediaPlayerHero.unmute", "Unmute") : t("uiLibrary.mediaPlayerHero.mute", "Mute"),
|
|
57467
57953
|
disabled: busy,
|
|
57468
57954
|
onClick: (e) => {
|
|
57469
57955
|
e.stopPropagation();
|
|
57470
|
-
if (busy
|
|
57471
|
-
const muted = !
|
|
57956
|
+
if (busy) return;
|
|
57957
|
+
const muted = status?.isMuted === null || status === void 0 ? true : !status.isMuted;
|
|
57472
57958
|
applyOptimistic({ isMuted: muted });
|
|
57473
57959
|
cap.setMute({ muted });
|
|
57474
57960
|
},
|
|
57475
57961
|
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"),
|
|
57476
|
-
children:
|
|
57962
|
+
children: status?.isMuted === true ? /* @__PURE__ */ jsx(VolumeX, {
|
|
57477
57963
|
className: "h-4 w-4",
|
|
57478
57964
|
"aria-hidden": "true"
|
|
57479
57965
|
}) : /* @__PURE__ */ jsx(Volume2, {
|
|
@@ -57495,7 +57981,7 @@ function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
57495
57981
|
max: 100,
|
|
57496
57982
|
step: 1,
|
|
57497
57983
|
className: "absolute inset-0 h-4 w-full cursor-pointer opacity-0",
|
|
57498
|
-
value: volumeLevel,
|
|
57984
|
+
value: volumeLevel ?? 0,
|
|
57499
57985
|
disabled: busy,
|
|
57500
57986
|
onChange: (e) => {
|
|
57501
57987
|
if (busy) return;
|
|
@@ -57506,19 +57992,92 @@ function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
|
57506
57992
|
}),
|
|
57507
57993
|
/* @__PURE__ */ jsx("div", {
|
|
57508
57994
|
className: "pointer-events-none",
|
|
57509
|
-
children: /* @__PURE__ */ jsx(
|
|
57995
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
57996
|
+
className: cn(volumeLevel === null && "opacity-40"),
|
|
57997
|
+
"data-testid": "media-volume-track",
|
|
57998
|
+
"data-known": volumeLevel !== null,
|
|
57999
|
+
children: /* @__PURE__ */ jsx(GripTrack, { fraction: status?.isMuted === true || volumeLevel === null ? 0 : volumeLevel / 100 })
|
|
58000
|
+
})
|
|
57510
58001
|
})
|
|
57511
58002
|
]
|
|
57512
58003
|
}),
|
|
57513
|
-
/* @__PURE__ */
|
|
58004
|
+
/* @__PURE__ */ jsx("span", {
|
|
57514
58005
|
className: "w-9 text-right text-[11px] tabular-nums text-foreground-subtle",
|
|
57515
|
-
children:
|
|
58006
|
+
children: volumeLevel === null ? "—" : `${volumeLevel}%`
|
|
57516
58007
|
})
|
|
57517
58008
|
]
|
|
58009
|
+
}),
|
|
58010
|
+
powered && view.volume === "steps" && /* @__PURE__ */ jsxs("div", {
|
|
58011
|
+
"data-testid": "media-volume-steps",
|
|
58012
|
+
className: "flex items-center justify-center gap-3 text-xs text-foreground-subtle",
|
|
58013
|
+
children: [
|
|
58014
|
+
/* @__PURE__ */ jsx(TransportButton, {
|
|
58015
|
+
label: t("uiLibrary.mediaPlayerHero.volumeDown", "Volume down"),
|
|
58016
|
+
busy,
|
|
58017
|
+
onPress: () => void cap.volumeDown({ steps: 1 }),
|
|
58018
|
+
children: /* @__PURE__ */ jsx(Minus, {
|
|
58019
|
+
className: "h-4 w-4",
|
|
58020
|
+
"aria-hidden": "true"
|
|
58021
|
+
})
|
|
58022
|
+
}),
|
|
58023
|
+
/* @__PURE__ */ jsx(Volume2, {
|
|
58024
|
+
className: "h-4 w-4",
|
|
58025
|
+
"aria-hidden": "true"
|
|
58026
|
+
}),
|
|
58027
|
+
/* @__PURE__ */ jsx(TransportButton, {
|
|
58028
|
+
label: t("uiLibrary.mediaPlayerHero.volumeUp", "Volume up"),
|
|
58029
|
+
busy,
|
|
58030
|
+
onPress: () => void cap.volumeUp({ steps: 1 }),
|
|
58031
|
+
children: /* @__PURE__ */ jsx(Plus, {
|
|
58032
|
+
className: "h-4 w-4",
|
|
58033
|
+
"aria-hidden": "true"
|
|
58034
|
+
})
|
|
58035
|
+
})
|
|
58036
|
+
]
|
|
58037
|
+
}),
|
|
58038
|
+
powered && status !== void 0 && (view.shuffle || view.repeat) && /* @__PURE__ */ jsxs("div", {
|
|
58039
|
+
className: "flex items-center justify-center gap-2",
|
|
58040
|
+
"data-testid": "media-modes",
|
|
58041
|
+
children: [view.shuffle && status.shuffle !== null && /* @__PURE__ */ jsx(TransportButton, {
|
|
58042
|
+
label: t("uiLibrary.mediaPlayerHero.shuffle", "Shuffle"),
|
|
58043
|
+
busy,
|
|
58044
|
+
active: status.shuffle,
|
|
58045
|
+
onPress: () => {
|
|
58046
|
+
const shuffle = !status.shuffle;
|
|
58047
|
+
applyOptimistic({ shuffle });
|
|
58048
|
+
cap.setShuffle({ shuffle });
|
|
58049
|
+
},
|
|
58050
|
+
children: /* @__PURE__ */ jsx(Shuffle, {
|
|
58051
|
+
className: "h-4 w-4",
|
|
58052
|
+
"aria-hidden": "true"
|
|
58053
|
+
})
|
|
58054
|
+
}), view.repeat && status.repeat !== null && /* @__PURE__ */ jsx(TransportButton, {
|
|
58055
|
+
label: t("uiLibrary.mediaPlayerHero.repeat", "Repeat"),
|
|
58056
|
+
busy,
|
|
58057
|
+
active: status.repeat !== "off",
|
|
58058
|
+
onPress: () => {
|
|
58059
|
+
if (status.repeat === null) return;
|
|
58060
|
+
const repeat = NEXT_REPEAT[status.repeat];
|
|
58061
|
+
applyOptimistic({ repeat });
|
|
58062
|
+
cap.setRepeat({ repeat });
|
|
58063
|
+
},
|
|
58064
|
+
children: status.repeat === "one" ? /* @__PURE__ */ jsx(Repeat1, {
|
|
58065
|
+
className: "h-4 w-4",
|
|
58066
|
+
"aria-hidden": "true"
|
|
58067
|
+
}) : /* @__PURE__ */ jsx(Repeat, {
|
|
58068
|
+
className: "h-4 w-4",
|
|
58069
|
+
"aria-hidden": "true"
|
|
58070
|
+
})
|
|
58071
|
+
})]
|
|
57518
58072
|
})
|
|
57519
58073
|
]
|
|
57520
58074
|
});
|
|
57521
58075
|
}
|
|
58076
|
+
function powerLabelOf(power, t) {
|
|
58077
|
+
if (power === "on") return t("uiLibrary.mediaPlayerHero.turnOff", "Turn off");
|
|
58078
|
+
if (power === "unknown") return t("uiLibrary.mediaPlayerHero.powerUnknown", "Power state unknown");
|
|
58079
|
+
return t("uiLibrary.mediaPlayerHero.turnOn", "Turn on");
|
|
58080
|
+
}
|
|
57522
58081
|
//#endregion
|
|
57523
58082
|
//#region src/composites/device-controls/alarm-hero-card.tsx
|
|
57524
58083
|
var ALARM_STATE_CONFIG = {
|
|
@@ -73092,7 +73651,7 @@ function TimelineSlider({ markers, bands = [], selectedId = null, step = 5, aria
|
|
|
73092
73651
|
}
|
|
73093
73652
|
//#endregion
|
|
73094
73653
|
//#region src/ui-library-version.ts
|
|
73095
|
-
var uiLibraryVersion = "1.2.
|
|
73654
|
+
var uiLibraryVersion = "1.2.378";
|
|
73096
73655
|
//#endregion
|
|
73097
73656
|
//#region src/hooks/use-account-unit-preferences.ts
|
|
73098
73657
|
/**
|
|
@@ -74036,12 +74595,12 @@ var statusIcons = {
|
|
|
74036
74595
|
* Render inside `<Suspense>` at all call sites. */
|
|
74037
74596
|
var MaskShapeCanvas = lazy(() => import("./MaskShapeCanvas-C9cJlxvG.js").then((m) => ({ default: m.MaskShapeCanvas })));
|
|
74038
74597
|
/** Lazy-wrapped `MotionZonesSettings` — code-split off the main bundle. */
|
|
74039
|
-
var MotionZonesSettings = lazy(() => import("./MotionZonesSettings-
|
|
74598
|
+
var MotionZonesSettings = lazy(() => import("./MotionZonesSettings-BvpjmW6y.js").then((m) => ({ default: m.MotionZonesSettings })));
|
|
74040
74599
|
/** Lazy-wrapped `SceneMonitorEditor` — code-split off the main bundle for the
|
|
74041
74600
|
* same reason: it mounts `MaskShapeCanvas`, which chains react-konva. Render
|
|
74042
74601
|
* inside `<Suspense>`; the admin-ui `/scenes` dialog is its only caller. */
|
|
74043
|
-
var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-
|
|
74602
|
+
var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-BwelmHlF.js").then((m) => ({ default: m.SceneMonitorEditor })));
|
|
74044
74603
|
/** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
|
|
74045
|
-
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-
|
|
74604
|
+
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-D7o4tx8e.js").then((m) => ({ default: m.PrivacyMaskSettings })));
|
|
74046
74605
|
//#endregion
|
|
74047
|
-
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, 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, 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 };
|
|
74606
|
+
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, useCoreBlocksProposeRunningThreshold, 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 };
|