@camstack/ui-library 1.1.18 → 1.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import * as __mfHostReact from "react";
|
|
|
3
3
|
import React, { Fragment, Suspense, createContext, createElement, forwardRef, lazy, useCallback, useContext, useEffect, useId, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore } from "react";
|
|
4
4
|
import * as __mfHostReactJsxRuntime from "react/jsx-runtime";
|
|
5
5
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
import { ALL_CAPABILITY_DEFINITIONS, DeviceExportStatusSchema, DeviceFeature, DeviceRole, DeviceType, EventCategory, ExposedDeviceSchema, KNOWN_CAP_NAMES, RecordingConfigSchema, RecordingStatusSchema, SourceInfoSchema, TIMEZONES, canConvertUnit, createDeviceProxy, createLazyTrpcSource, createSliceHandle, findTimezone, tryConvertUnit } from "@camstack/types";
|
|
6
|
+
import { ALL_CAPABILITY_DEFINITIONS, DeviceExportStatusSchema, DeviceFeature, DeviceRole, DeviceType, EventCategory, ExposedDeviceSchema, KNOWN_CAP_NAMES, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, RecordingConfigSchema, RecordingStatusSchema, SourceInfoSchema, TIMEZONES, canConvertUnit, createDeviceProxy, createLazyTrpcSource, createSliceHandle, findTimezone, tryConvertUnit } from "@camstack/types";
|
|
7
7
|
import * as __mfHostReactDOM from "react-dom";
|
|
8
8
|
import { createPortal } from "react-dom";
|
|
9
9
|
import * as __mfHostReactDOMClient from "react-dom/client";
|
|
@@ -8468,6 +8468,16 @@ var Blinds = createLucideIcon("blinds", [
|
|
|
8468
8468
|
* This source code is licensed under the ISC license.
|
|
8469
8469
|
* See the LICENSE file in the root directory of this source tree.
|
|
8470
8470
|
*/
|
|
8471
|
+
var Bone = createLucideIcon("bone", [["path", {
|
|
8472
|
+
d: "M17 10c.7-.7 1.69 0 2.5 0a2.5 2.5 0 1 0 0-5 .5.5 0 0 1-.5-.5 2.5 2.5 0 1 0-5 0c0 .81.7 1.8 0 2.5l-7 7c-.7.7-1.69 0-2.5 0a2.5 2.5 0 0 0 0 5c.28 0 .5.22.5.5a2.5 2.5 0 1 0 5 0c0-.81-.7-1.8 0-2.5Z",
|
|
8473
|
+
key: "w610uw"
|
|
8474
|
+
}]]);
|
|
8475
|
+
/**
|
|
8476
|
+
* @license lucide-react v0.576.0 - ISC
|
|
8477
|
+
*
|
|
8478
|
+
* This source code is licensed under the ISC license.
|
|
8479
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
8480
|
+
*/
|
|
8471
8481
|
var Bot = createLucideIcon("bot", [
|
|
8472
8482
|
["path", {
|
|
8473
8483
|
d: "M12 8V4H8",
|
|
@@ -10435,6 +10445,36 @@ var Pause = createLucideIcon("pause", [["rect", {
|
|
|
10435
10445
|
* This source code is licensed under the ISC license.
|
|
10436
10446
|
* See the LICENSE file in the root directory of this source tree.
|
|
10437
10447
|
*/
|
|
10448
|
+
var PawPrint = createLucideIcon("paw-print", [
|
|
10449
|
+
["circle", {
|
|
10450
|
+
cx: "11",
|
|
10451
|
+
cy: "4",
|
|
10452
|
+
r: "2",
|
|
10453
|
+
key: "vol9p0"
|
|
10454
|
+
}],
|
|
10455
|
+
["circle", {
|
|
10456
|
+
cx: "18",
|
|
10457
|
+
cy: "8",
|
|
10458
|
+
r: "2",
|
|
10459
|
+
key: "17gozi"
|
|
10460
|
+
}],
|
|
10461
|
+
["circle", {
|
|
10462
|
+
cx: "20",
|
|
10463
|
+
cy: "16",
|
|
10464
|
+
r: "2",
|
|
10465
|
+
key: "1v9bxh"
|
|
10466
|
+
}],
|
|
10467
|
+
["path", {
|
|
10468
|
+
d: "M9 10a5 5 0 0 1 5 5v3.5a3.5 3.5 0 0 1-6.84 1.045Q6.52 17.48 4.46 16.84A3.5 3.5 0 0 1 5.5 10Z",
|
|
10469
|
+
key: "1ydw1z"
|
|
10470
|
+
}]
|
|
10471
|
+
]);
|
|
10472
|
+
/**
|
|
10473
|
+
* @license lucide-react v0.576.0 - ISC
|
|
10474
|
+
*
|
|
10475
|
+
* This source code is licensed under the ISC license.
|
|
10476
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
10477
|
+
*/
|
|
10438
10478
|
var Pencil = createLucideIcon("pencil", [["path", {
|
|
10439
10479
|
d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",
|
|
10440
10480
|
key: "1a8usu"
|
|
@@ -11634,6 +11674,30 @@ var Upload = createLucideIcon("upload", [
|
|
|
11634
11674
|
* This source code is licensed under the ISC license.
|
|
11635
11675
|
* See the LICENSE file in the root directory of this source tree.
|
|
11636
11676
|
*/
|
|
11677
|
+
var UtensilsCrossed = createLucideIcon("utensils-crossed", [
|
|
11678
|
+
["path", {
|
|
11679
|
+
d: "m16 2-2.3 2.3a3 3 0 0 0 0 4.2l1.8 1.8a3 3 0 0 0 4.2 0L22 8",
|
|
11680
|
+
key: "n7qcjb"
|
|
11681
|
+
}],
|
|
11682
|
+
["path", {
|
|
11683
|
+
d: "M15 15 3.3 3.3a4.2 4.2 0 0 0 0 6l7.3 7.3c.7.7 2 .7 2.8 0L15 15Zm0 0 7 7",
|
|
11684
|
+
key: "d0u48b"
|
|
11685
|
+
}],
|
|
11686
|
+
["path", {
|
|
11687
|
+
d: "m2.1 21.8 6.4-6.3",
|
|
11688
|
+
key: "yn04lh"
|
|
11689
|
+
}],
|
|
11690
|
+
["path", {
|
|
11691
|
+
d: "m19 5-7 7",
|
|
11692
|
+
key: "194lzd"
|
|
11693
|
+
}]
|
|
11694
|
+
]);
|
|
11695
|
+
/**
|
|
11696
|
+
* @license lucide-react v0.576.0 - ISC
|
|
11697
|
+
*
|
|
11698
|
+
* This source code is licensed under the ISC license.
|
|
11699
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11700
|
+
*/
|
|
11637
11701
|
var Vibrate = createLucideIcon("vibrate", [
|
|
11638
11702
|
["path", {
|
|
11639
11703
|
d: "m2 8 2 2-2 2 2 2-2 2",
|
|
@@ -17415,6 +17479,28 @@ var useNumericSensorGetStatus = trpc.numericSensor.getStatus.useQuery;
|
|
|
17415
17479
|
var useOsdSetOverlay = trpc.osd.setOverlay.useMutation;
|
|
17416
17480
|
/** Generated alias around `trpc.osd.getStatus.useQuery`. */
|
|
17417
17481
|
var useOsdGetStatus = trpc.osd.getStatus.useQuery;
|
|
17482
|
+
/** Generated alias around `trpc.petFeeder.feed.useMutation`. */
|
|
17483
|
+
var usePetFeederFeed = trpc.petFeeder.feed.useMutation;
|
|
17484
|
+
/** Generated alias around `trpc.petFeeder.cancelFeed.useMutation`. */
|
|
17485
|
+
var usePetFeederCancelFeed = trpc.petFeeder.cancelFeed.useMutation;
|
|
17486
|
+
/** Generated alias around `trpc.petFeeder.resetDesiccant.useMutation`. */
|
|
17487
|
+
var usePetFeederResetDesiccant = trpc.petFeeder.resetDesiccant.useMutation;
|
|
17488
|
+
/** Generated alias around `trpc.petFeeder.markFoodReplenished.useMutation`. */
|
|
17489
|
+
var usePetFeederMarkFoodReplenished = trpc.petFeeder.markFoodReplenished.useMutation;
|
|
17490
|
+
/** Generated alias around `trpc.petFeeder.callPet.useMutation`. */
|
|
17491
|
+
var usePetFeederCallPet = trpc.petFeeder.callPet.useMutation;
|
|
17492
|
+
/** Generated alias around `trpc.petFeeder.playSound.useMutation`. */
|
|
17493
|
+
var usePetFeederPlaySound = trpc.petFeeder.playSound.useMutation;
|
|
17494
|
+
/** Generated alias around `trpc.petFeeder.setChildLock.useMutation`. */
|
|
17495
|
+
var usePetFeederSetChildLock = trpc.petFeeder.setChildLock.useMutation;
|
|
17496
|
+
/** Generated alias around `trpc.petFeeder.setIndicatorLight.useMutation`. */
|
|
17497
|
+
var usePetFeederSetIndicatorLight = trpc.petFeeder.setIndicatorLight.useMutation;
|
|
17498
|
+
/** Generated alias around `trpc.petFeeder.setFeedSound.useMutation`. */
|
|
17499
|
+
var usePetFeederSetFeedSound = trpc.petFeeder.setFeedSound.useMutation;
|
|
17500
|
+
/** Generated alias around `trpc.petFeeder.setVolume.useMutation`. */
|
|
17501
|
+
var usePetFeederSetVolume = trpc.petFeeder.setVolume.useMutation;
|
|
17502
|
+
/** Generated alias around `trpc.petFeeder.getStatus.useQuery`. */
|
|
17503
|
+
var usePetFeederGetStatus = trpc.petFeeder.getStatus.useQuery;
|
|
17418
17504
|
/** Generated alias around `trpc.pipelineAnalytics.getActiveTracks.useQuery`. */
|
|
17419
17505
|
var usePipelineAnalyticsGetActiveTracks = trpc.pipelineAnalytics.getActiveTracks.useQuery;
|
|
17420
17506
|
/** Generated alias around `trpc.pipelineAnalytics.getTrack.useQuery`. */
|
|
@@ -21357,7 +21443,7 @@ function renderScene(glyph, uid) {
|
|
|
21357
21443
|
default: return null;
|
|
21358
21444
|
}
|
|
21359
21445
|
}
|
|
21360
|
-
function Readout({ icon, label, value }) {
|
|
21446
|
+
function Readout$1({ icon, label, value }) {
|
|
21361
21447
|
return /* @__PURE__ */ jsxs("div", {
|
|
21362
21448
|
className: "flex items-center gap-1.5 text-xs text-foreground-subtle",
|
|
21363
21449
|
title: label,
|
|
@@ -21412,12 +21498,12 @@ function WeatherHeroCard({ trpc, deviceId }) {
|
|
|
21412
21498
|
}), /* @__PURE__ */ jsxs("div", {
|
|
21413
21499
|
className: "flex flex-col gap-1.5",
|
|
21414
21500
|
children: [
|
|
21415
|
-
slice.humidity !== null && /* @__PURE__ */ jsx(Readout, {
|
|
21501
|
+
slice.humidity !== null && /* @__PURE__ */ jsx(Readout$1, {
|
|
21416
21502
|
icon: /* @__PURE__ */ jsx(Droplets, { className: "h-3.5 w-3.5" }),
|
|
21417
21503
|
label: "Humidity",
|
|
21418
21504
|
value: `${Math.round(slice.humidity)}%`
|
|
21419
21505
|
}),
|
|
21420
|
-
slice.windSpeed !== null && /* @__PURE__ */ jsx(Readout, {
|
|
21506
|
+
slice.windSpeed !== null && /* @__PURE__ */ jsx(Readout$1, {
|
|
21421
21507
|
icon: slice.windBearing !== null ? /* @__PURE__ */ jsx(Navigation, {
|
|
21422
21508
|
className: "h-3.5 w-3.5",
|
|
21423
21509
|
style: { transform: `rotate(${slice.windBearing}deg)` }
|
|
@@ -21425,7 +21511,7 @@ function WeatherHeroCard({ trpc, deviceId }) {
|
|
|
21425
21511
|
label: "Wind",
|
|
21426
21512
|
value: `${Math.round(slice.windSpeed)} ${slice.windSpeedUnit ?? ""}`.trim()
|
|
21427
21513
|
}),
|
|
21428
|
-
slice.pressure !== null && /* @__PURE__ */ jsx(Readout, {
|
|
21514
|
+
slice.pressure !== null && /* @__PURE__ */ jsx(Readout$1, {
|
|
21429
21515
|
icon: /* @__PURE__ */ jsx(Gauge, { className: "h-3.5 w-3.5" }),
|
|
21430
21516
|
label: "Pressure",
|
|
21431
21517
|
value: `${Math.round(slice.pressure)} ${slice.pressureUnit ?? ""}`.trim()
|
|
@@ -21638,6 +21724,522 @@ function ImageHeroCard({ trpc, deviceId, deviceName }) {
|
|
|
21638
21724
|
});
|
|
21639
21725
|
}
|
|
21640
21726
|
//#endregion
|
|
21727
|
+
//#region src/composites/device-controls/pet-feeder-panel.tsx
|
|
21728
|
+
/**
|
|
21729
|
+
* Pet-feeder controls for a `DeviceType.PetFeeder` device.
|
|
21730
|
+
*
|
|
21731
|
+
* Reads the `pet-feeder` cap status slice (foodLevel / food1 / food2 /
|
|
21732
|
+
* lowFood / batteryPower / desiccantLeftDays / feeding / status / error /
|
|
21733
|
+
* errorCode / isDualHopper + the four persisted settings) and renders:
|
|
21734
|
+
* - PetFeederInlineControl (device-list row): a compact food-level +
|
|
21735
|
+
* battery readout with a one-tap Feed button (default portion).
|
|
21736
|
+
* - PetFeederHeroCard (device-detail hero): the food-bowl fill gauge
|
|
21737
|
+
* signature, battery + desiccant readouts, a manual-feed portion
|
|
21738
|
+
* stepper honouring the 4-200 g hardware range (per-hopper on
|
|
21739
|
+
* dual-hopper models), a maintenance action row (Call pet / Reset
|
|
21740
|
+
* desiccant / Mark refilled) and the child-lock / indicator-light /
|
|
21741
|
+
* feed-sound / volume settings.
|
|
21742
|
+
*
|
|
21743
|
+
* Mirrors the AC card's `useDeviceCapability` + inferred-cap pattern so
|
|
21744
|
+
* the row and hero never diverge. Actions are gated on `available`.
|
|
21745
|
+
*/
|
|
21746
|
+
/** Default one-tap manual-feed portion (grams) — the low end of the
|
|
21747
|
+
* hardware range, a safe snack-sized dispense. */
|
|
21748
|
+
var DEFAULT_PORTION = 20;
|
|
21749
|
+
var VOLUME_MAX = 9;
|
|
21750
|
+
/** Amber kibble accent for the bowl fill; destructive red when low. */
|
|
21751
|
+
var KIBBLE = "#f59e0b";
|
|
21752
|
+
var KIBBLE_LOW = "#ef4444";
|
|
21753
|
+
function clampPortion(grams) {
|
|
21754
|
+
return Math.min(PET_FEEDER_MANUAL_FEED_MAX, Math.max(PET_FEEDER_MANUAL_FEED_MIN, grams));
|
|
21755
|
+
}
|
|
21756
|
+
var KEYFRAMES$1 = `
|
|
21757
|
+
@keyframes pf-eat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(2px)} }
|
|
21758
|
+
@keyframes pf-pulse { 0%,100%{opacity:.55} 50%{opacity:1} }
|
|
21759
|
+
@media (prefers-reduced-motion: reduce) {
|
|
21760
|
+
.pf-eat, .pf-pulse { animation: none !important; }
|
|
21761
|
+
}
|
|
21762
|
+
`;
|
|
21763
|
+
function PetFeederPanel({ trpc, deviceId, layout, optimistic }) {
|
|
21764
|
+
const { cap, slice, available } = useDeviceCapability({
|
|
21765
|
+
trpc,
|
|
21766
|
+
deviceId,
|
|
21767
|
+
cap: (d) => d.petFeeder,
|
|
21768
|
+
slice: (d) => d.state.petFeeder
|
|
21769
|
+
});
|
|
21770
|
+
const { display, applyOptimistic } = useOptimisticSlice(slice, { enabled: optimistic ?? true });
|
|
21771
|
+
const [portion, setPortion] = useState(DEFAULT_PORTION);
|
|
21772
|
+
const [hopper1, setHopper1] = useState(DEFAULT_PORTION);
|
|
21773
|
+
const [hopper2, setHopper2] = useState(DEFAULT_PORTION);
|
|
21774
|
+
if (cap === void 0) return null;
|
|
21775
|
+
if (display === void 0) return null;
|
|
21776
|
+
const busy = !available;
|
|
21777
|
+
const faultMsg = display.error && display.error !== "no_error" ? display.error : null;
|
|
21778
|
+
const offline = display.status === "offline";
|
|
21779
|
+
const onBatteries = display.status === "on_batteries";
|
|
21780
|
+
if (layout === "compact") return /* @__PURE__ */ jsxs("div", {
|
|
21781
|
+
className: "inline-flex items-center gap-2",
|
|
21782
|
+
children: [
|
|
21783
|
+
(faultMsg !== null || offline) && /* @__PURE__ */ jsx("span", {
|
|
21784
|
+
className: "inline-flex items-center text-destructive",
|
|
21785
|
+
title: faultMsg ?? "Offline",
|
|
21786
|
+
"aria-label": faultMsg ?? "Offline",
|
|
21787
|
+
children: offline ? /* @__PURE__ */ jsx(WifiOff, {
|
|
21788
|
+
className: "h-3.5 w-3.5",
|
|
21789
|
+
"aria-hidden": true
|
|
21790
|
+
}) : /* @__PURE__ */ jsx(TriangleAlert, {
|
|
21791
|
+
className: "h-3.5 w-3.5",
|
|
21792
|
+
"aria-hidden": true
|
|
21793
|
+
})
|
|
21794
|
+
}),
|
|
21795
|
+
/* @__PURE__ */ jsxs("span", {
|
|
21796
|
+
className: cn("inline-flex items-center gap-1 text-xs tabular-nums font-medium", display.lowFood ? "text-destructive" : "text-foreground"),
|
|
21797
|
+
children: [
|
|
21798
|
+
/* @__PURE__ */ jsx(UtensilsCrossed, {
|
|
21799
|
+
className: "h-3.5 w-3.5",
|
|
21800
|
+
"aria-hidden": true
|
|
21801
|
+
}),
|
|
21802
|
+
display.foodLevel ?? "—",
|
|
21803
|
+
/* @__PURE__ */ jsx("span", {
|
|
21804
|
+
className: "text-foreground-subtle",
|
|
21805
|
+
children: "g"
|
|
21806
|
+
})
|
|
21807
|
+
]
|
|
21808
|
+
}),
|
|
21809
|
+
display.batteryPower !== null && /* @__PURE__ */ jsxs("span", {
|
|
21810
|
+
className: "inline-flex items-center gap-0.5 text-xs tabular-nums text-foreground-subtle",
|
|
21811
|
+
children: [
|
|
21812
|
+
/* @__PURE__ */ jsx(BatteryMedium, {
|
|
21813
|
+
className: "h-3.5 w-3.5",
|
|
21814
|
+
"aria-hidden": true
|
|
21815
|
+
}),
|
|
21816
|
+
display.batteryPower,
|
|
21817
|
+
"%"
|
|
21818
|
+
]
|
|
21819
|
+
}),
|
|
21820
|
+
/* @__PURE__ */ jsxs("button", {
|
|
21821
|
+
type: "button",
|
|
21822
|
+
"aria-label": "Feed now",
|
|
21823
|
+
disabled: busy || display.feeding,
|
|
21824
|
+
onClick: (e) => {
|
|
21825
|
+
e.stopPropagation();
|
|
21826
|
+
if (busy || display.feeding) return;
|
|
21827
|
+
applyOptimistic({ feeding: true });
|
|
21828
|
+
cap.feed({ grams: DEFAULT_PORTION });
|
|
21829
|
+
},
|
|
21830
|
+
className: cn("inline-flex items-center gap-1 rounded-md border border-border bg-surface px-2 py-1 text-xs font-medium text-foreground transition-colors hover:bg-surface-hover", (busy || display.feeding) && "opacity-40 cursor-not-allowed"),
|
|
21831
|
+
children: [/* @__PURE__ */ jsx(PawPrint, {
|
|
21832
|
+
className: "h-3.5 w-3.5",
|
|
21833
|
+
"aria-hidden": true
|
|
21834
|
+
}), "Feed"]
|
|
21835
|
+
})
|
|
21836
|
+
]
|
|
21837
|
+
});
|
|
21838
|
+
const feedSingle = (grams) => {
|
|
21839
|
+
if (busy || display.feeding) return;
|
|
21840
|
+
applyOptimistic({ feeding: true });
|
|
21841
|
+
cap.feed({ grams: clampPortion(grams) });
|
|
21842
|
+
};
|
|
21843
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
21844
|
+
className: "relative flex flex-col items-stretch gap-3 overflow-hidden rounded-lg border border-border bg-surface p-4",
|
|
21845
|
+
children: [
|
|
21846
|
+
/* @__PURE__ */ jsx("style", { children: KEYFRAMES$1 }),
|
|
21847
|
+
/* @__PURE__ */ jsxs("div", {
|
|
21848
|
+
className: "flex items-center gap-4 rounded-lg border border-border/50 bg-surface-subtle/40 p-3",
|
|
21849
|
+
children: [/* @__PURE__ */ jsx(BowlGauge, {
|
|
21850
|
+
grams: display.foodLevel,
|
|
21851
|
+
low: display.lowFood,
|
|
21852
|
+
eating: display.feeding
|
|
21853
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
21854
|
+
className: "flex min-w-0 flex-1 flex-col gap-1.5",
|
|
21855
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
21856
|
+
className: "flex items-baseline gap-1",
|
|
21857
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
21858
|
+
className: "text-3xl font-bold leading-none tabular-nums",
|
|
21859
|
+
style: { color: display.lowFood ? KIBBLE_LOW : KIBBLE },
|
|
21860
|
+
children: display.foodLevel ?? "—"
|
|
21861
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
21862
|
+
className: "text-sm text-foreground-subtle",
|
|
21863
|
+
children: "g in bowl"
|
|
21864
|
+
})]
|
|
21865
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
21866
|
+
className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-foreground-subtle",
|
|
21867
|
+
children: [
|
|
21868
|
+
display.batteryPower !== null && /* @__PURE__ */ jsx(Readout, {
|
|
21869
|
+
icon: /* @__PURE__ */ jsx(BatteryMedium, { className: "h-3.5 w-3.5" }),
|
|
21870
|
+
label: `${display.batteryPower}%`
|
|
21871
|
+
}),
|
|
21872
|
+
display.desiccantLeftDays !== null && /* @__PURE__ */ jsx(Readout, {
|
|
21873
|
+
icon: /* @__PURE__ */ jsx(Wind, { className: "h-3.5 w-3.5" }),
|
|
21874
|
+
label: `${display.desiccantLeftDays}d desiccant`
|
|
21875
|
+
}),
|
|
21876
|
+
onBatteries && /* @__PURE__ */ jsxs("span", {
|
|
21877
|
+
className: "inline-flex items-center gap-1 font-medium text-amber-500",
|
|
21878
|
+
children: [/* @__PURE__ */ jsx(BatteryWarning, {
|
|
21879
|
+
className: "h-3.5 w-3.5",
|
|
21880
|
+
"aria-hidden": true
|
|
21881
|
+
}), "On battery"]
|
|
21882
|
+
}),
|
|
21883
|
+
offline ? /* @__PURE__ */ jsxs("span", {
|
|
21884
|
+
className: "inline-flex items-center gap-1 font-medium text-destructive",
|
|
21885
|
+
children: [/* @__PURE__ */ jsx(WifiOff, {
|
|
21886
|
+
className: "h-3.5 w-3.5",
|
|
21887
|
+
"aria-hidden": true
|
|
21888
|
+
}), "Offline"]
|
|
21889
|
+
}) : display.feeding ? /* @__PURE__ */ jsxs("span", {
|
|
21890
|
+
className: "pf-pulse inline-flex items-center gap-1 font-medium text-amber-500",
|
|
21891
|
+
style: { animation: "pf-pulse 1.2s ease-in-out infinite" },
|
|
21892
|
+
children: [/* @__PURE__ */ jsx(PawPrint, {
|
|
21893
|
+
className: "h-3.5 w-3.5",
|
|
21894
|
+
"aria-hidden": true
|
|
21895
|
+
}), "Feeding…"]
|
|
21896
|
+
}) : display.lowFood ? /* @__PURE__ */ jsxs("span", {
|
|
21897
|
+
className: "inline-flex items-center gap-1 font-medium text-destructive",
|
|
21898
|
+
children: [/* @__PURE__ */ jsx(Ban, {
|
|
21899
|
+
className: "h-3.5 w-3.5",
|
|
21900
|
+
"aria-hidden": true
|
|
21901
|
+
}), "Low food"]
|
|
21902
|
+
}) : /* @__PURE__ */ jsxs("span", {
|
|
21903
|
+
className: "inline-flex items-center gap-1 font-medium text-success",
|
|
21904
|
+
children: [/* @__PURE__ */ jsx(CircleCheck, {
|
|
21905
|
+
className: "h-3.5 w-3.5",
|
|
21906
|
+
"aria-hidden": true
|
|
21907
|
+
}), "Ready"]
|
|
21908
|
+
})
|
|
21909
|
+
]
|
|
21910
|
+
})]
|
|
21911
|
+
})]
|
|
21912
|
+
}),
|
|
21913
|
+
faultMsg !== null && /* @__PURE__ */ jsxs("div", {
|
|
21914
|
+
className: "flex items-start gap-2 rounded-lg border border-destructive/40 bg-destructive/10 px-3 py-2 text-xs font-medium text-destructive",
|
|
21915
|
+
children: [/* @__PURE__ */ jsx(TriangleAlert, {
|
|
21916
|
+
className: "mt-px h-4 w-4 shrink-0",
|
|
21917
|
+
"aria-hidden": true
|
|
21918
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
21919
|
+
className: "min-w-0 break-words",
|
|
21920
|
+
children: faultMsg
|
|
21921
|
+
})]
|
|
21922
|
+
}),
|
|
21923
|
+
display.isDualHopper ? /* @__PURE__ */ jsxs("div", {
|
|
21924
|
+
className: "grid grid-cols-2 gap-2",
|
|
21925
|
+
children: [/* @__PURE__ */ jsx(HopperFeed, {
|
|
21926
|
+
label: "Hopper 1",
|
|
21927
|
+
grams: hopper1,
|
|
21928
|
+
busy: busy || display.feeding,
|
|
21929
|
+
onGrams: setHopper1,
|
|
21930
|
+
onFeed: () => {
|
|
21931
|
+
if (busy || display.feeding) return;
|
|
21932
|
+
applyOptimistic({ feeding: true });
|
|
21933
|
+
cap.feed({ hopper1: clampPortion(hopper1) });
|
|
21934
|
+
}
|
|
21935
|
+
}), /* @__PURE__ */ jsx(HopperFeed, {
|
|
21936
|
+
label: "Hopper 2",
|
|
21937
|
+
grams: hopper2,
|
|
21938
|
+
busy: busy || display.feeding,
|
|
21939
|
+
onGrams: setHopper2,
|
|
21940
|
+
onFeed: () => {
|
|
21941
|
+
if (busy || display.feeding) return;
|
|
21942
|
+
applyOptimistic({ feeding: true });
|
|
21943
|
+
cap.feed({ hopper2: clampPortion(hopper2) });
|
|
21944
|
+
}
|
|
21945
|
+
})]
|
|
21946
|
+
}) : /* @__PURE__ */ jsx(HopperFeed, {
|
|
21947
|
+
label: "Manual feed",
|
|
21948
|
+
grams: portion,
|
|
21949
|
+
busy: busy || display.feeding,
|
|
21950
|
+
onGrams: setPortion,
|
|
21951
|
+
onFeed: () => feedSingle(portion)
|
|
21952
|
+
}),
|
|
21953
|
+
/* @__PURE__ */ jsxs("div", {
|
|
21954
|
+
className: "grid grid-cols-3 gap-2",
|
|
21955
|
+
children: [
|
|
21956
|
+
/* @__PURE__ */ jsx(ActionButton, {
|
|
21957
|
+
icon: /* @__PURE__ */ jsx(PawPrint, { className: "h-4 w-4" }),
|
|
21958
|
+
label: "Call pet",
|
|
21959
|
+
busy,
|
|
21960
|
+
onClick: () => void cap.callPet({})
|
|
21961
|
+
}),
|
|
21962
|
+
/* @__PURE__ */ jsx(ActionButton, {
|
|
21963
|
+
icon: /* @__PURE__ */ jsx(RefreshCw, { className: "h-4 w-4" }),
|
|
21964
|
+
label: "Reset desiccant",
|
|
21965
|
+
busy,
|
|
21966
|
+
onClick: () => void cap.resetDesiccant({})
|
|
21967
|
+
}),
|
|
21968
|
+
/* @__PURE__ */ jsx(ActionButton, {
|
|
21969
|
+
icon: /* @__PURE__ */ jsx(UtensilsCrossed, { className: "h-4 w-4" }),
|
|
21970
|
+
label: "Mark refilled",
|
|
21971
|
+
busy,
|
|
21972
|
+
onClick: () => void cap.markFoodReplenished({})
|
|
21973
|
+
})
|
|
21974
|
+
]
|
|
21975
|
+
}),
|
|
21976
|
+
display.feeding && /* @__PURE__ */ jsxs("button", {
|
|
21977
|
+
type: "button",
|
|
21978
|
+
disabled: busy,
|
|
21979
|
+
onClick: () => {
|
|
21980
|
+
applyOptimistic({ feeding: false });
|
|
21981
|
+
cap.cancelFeed({});
|
|
21982
|
+
},
|
|
21983
|
+
className: cn("flex items-center justify-center gap-2 rounded-lg border border-destructive/40 bg-destructive/10 px-2 py-1.5 text-xs font-medium text-destructive transition-colors hover:bg-destructive/20", busy && "opacity-40 cursor-not-allowed"),
|
|
21984
|
+
children: [/* @__PURE__ */ jsx(Ban, {
|
|
21985
|
+
className: "h-4 w-4",
|
|
21986
|
+
"aria-hidden": true
|
|
21987
|
+
}), "Cancel feed"]
|
|
21988
|
+
}),
|
|
21989
|
+
/* @__PURE__ */ jsx(Field$1, {
|
|
21990
|
+
label: "Settings",
|
|
21991
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
21992
|
+
className: "grid grid-cols-3 gap-2",
|
|
21993
|
+
children: [
|
|
21994
|
+
/* @__PURE__ */ jsx(SettingToggle, {
|
|
21995
|
+
icon: /* @__PURE__ */ jsx(Lock, { className: "h-4 w-4" }),
|
|
21996
|
+
label: "Child lock",
|
|
21997
|
+
on: display.childLock,
|
|
21998
|
+
busy,
|
|
21999
|
+
onToggle: (next) => {
|
|
22000
|
+
applyOptimistic({ childLock: next });
|
|
22001
|
+
cap.setChildLock({ on: next });
|
|
22002
|
+
}
|
|
22003
|
+
}),
|
|
22004
|
+
/* @__PURE__ */ jsx(SettingToggle, {
|
|
22005
|
+
icon: /* @__PURE__ */ jsx(Lightbulb, { className: "h-4 w-4" }),
|
|
22006
|
+
label: "Light",
|
|
22007
|
+
on: display.indicatorLight,
|
|
22008
|
+
busy,
|
|
22009
|
+
onToggle: (next) => {
|
|
22010
|
+
applyOptimistic({ indicatorLight: next });
|
|
22011
|
+
cap.setIndicatorLight({ on: next });
|
|
22012
|
+
}
|
|
22013
|
+
}),
|
|
22014
|
+
/* @__PURE__ */ jsx(SettingToggle, {
|
|
22015
|
+
icon: /* @__PURE__ */ jsx(Bell, { className: "h-4 w-4" }),
|
|
22016
|
+
label: "Feed sound",
|
|
22017
|
+
on: display.feedSound,
|
|
22018
|
+
busy,
|
|
22019
|
+
onToggle: (next) => {
|
|
22020
|
+
applyOptimistic({ feedSound: next });
|
|
22021
|
+
cap.setFeedSound({ on: next });
|
|
22022
|
+
}
|
|
22023
|
+
})
|
|
22024
|
+
]
|
|
22025
|
+
})
|
|
22026
|
+
}),
|
|
22027
|
+
/* @__PURE__ */ jsx(Field$1, {
|
|
22028
|
+
label: "Volume",
|
|
22029
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
22030
|
+
className: "flex items-center gap-3",
|
|
22031
|
+
children: [
|
|
22032
|
+
/* @__PURE__ */ jsx(Volume2, {
|
|
22033
|
+
className: "h-4 w-4 shrink-0 text-foreground-subtle",
|
|
22034
|
+
"aria-hidden": true
|
|
22035
|
+
}),
|
|
22036
|
+
/* @__PURE__ */ jsx(RoundStep$1, {
|
|
22037
|
+
label: "Decrease volume",
|
|
22038
|
+
symbol: "−",
|
|
22039
|
+
disabled: busy || display.volume <= 0,
|
|
22040
|
+
onClick: () => {
|
|
22041
|
+
const next = Math.max(0, display.volume - 1);
|
|
22042
|
+
applyOptimistic({ volume: next });
|
|
22043
|
+
cap.setVolume({ level: next });
|
|
22044
|
+
}
|
|
22045
|
+
}),
|
|
22046
|
+
/* @__PURE__ */ jsx("span", {
|
|
22047
|
+
className: "w-6 text-center text-lg font-semibold tabular-nums text-foreground",
|
|
22048
|
+
children: display.volume
|
|
22049
|
+
}),
|
|
22050
|
+
/* @__PURE__ */ jsx(RoundStep$1, {
|
|
22051
|
+
label: "Increase volume",
|
|
22052
|
+
symbol: "+",
|
|
22053
|
+
disabled: busy || display.volume >= VOLUME_MAX,
|
|
22054
|
+
onClick: () => {
|
|
22055
|
+
const next = Math.min(VOLUME_MAX, display.volume + 1);
|
|
22056
|
+
applyOptimistic({ volume: next });
|
|
22057
|
+
cap.setVolume({ level: next });
|
|
22058
|
+
}
|
|
22059
|
+
})
|
|
22060
|
+
]
|
|
22061
|
+
})
|
|
22062
|
+
})
|
|
22063
|
+
]
|
|
22064
|
+
});
|
|
22065
|
+
}
|
|
22066
|
+
/** Labelled control group — a small uppercase header above its control. */
|
|
22067
|
+
function Field$1({ label, children }) {
|
|
22068
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
22069
|
+
className: "flex flex-col gap-1",
|
|
22070
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
22071
|
+
className: "text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle",
|
|
22072
|
+
children: label
|
|
22073
|
+
}), children]
|
|
22074
|
+
});
|
|
22075
|
+
}
|
|
22076
|
+
function Readout({ icon, label }) {
|
|
22077
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
22078
|
+
className: "inline-flex items-center gap-1 tabular-nums",
|
|
22079
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
22080
|
+
className: "text-foreground-subtle",
|
|
22081
|
+
children: icon
|
|
22082
|
+
}), label]
|
|
22083
|
+
});
|
|
22084
|
+
}
|
|
22085
|
+
/**
|
|
22086
|
+
* Signature element — a food bowl whose kibble fills proportionally to the
|
|
22087
|
+
* bowl reading (0–200 g). Amber when stocked, red when the low-food flag is
|
|
22088
|
+
* set; the kibble mound bobs while the pet is eating.
|
|
22089
|
+
*/
|
|
22090
|
+
function BowlGauge({ grams, low, eating }) {
|
|
22091
|
+
const frac = Math.min(1, Math.max(0, (grams ?? 0) / PET_FEEDER_MANUAL_FEED_MAX));
|
|
22092
|
+
const fill = low ? KIBBLE_LOW : KIBBLE;
|
|
22093
|
+
const surfaceY = 52 - frac * 24;
|
|
22094
|
+
return /* @__PURE__ */ jsxs("svg", {
|
|
22095
|
+
width: 72,
|
|
22096
|
+
height: 72,
|
|
22097
|
+
viewBox: "0 0 72 72",
|
|
22098
|
+
role: "img",
|
|
22099
|
+
"aria-label": grams === null ? "Food level unknown" : `${grams} grams in bowl`,
|
|
22100
|
+
className: "shrink-0",
|
|
22101
|
+
children: [
|
|
22102
|
+
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", {
|
|
22103
|
+
id: "pf-bowl-clip",
|
|
22104
|
+
children: /* @__PURE__ */ jsx("path", { d: "M14 26 H58 L52 54 A6 6 0 0 1 46 58 H26 A6 6 0 0 1 20 54 Z" })
|
|
22105
|
+
}) }),
|
|
22106
|
+
/* @__PURE__ */ jsxs("g", {
|
|
22107
|
+
clipPath: "url(#pf-bowl-clip)",
|
|
22108
|
+
className: eating ? "pf-eat" : void 0,
|
|
22109
|
+
style: eating ? { animation: "pf-eat 1.1s ease-in-out infinite" } : void 0,
|
|
22110
|
+
children: [/* @__PURE__ */ jsx("rect", {
|
|
22111
|
+
x: "14",
|
|
22112
|
+
y: surfaceY,
|
|
22113
|
+
width: "44",
|
|
22114
|
+
height: "34",
|
|
22115
|
+
fill,
|
|
22116
|
+
opacity: .9
|
|
22117
|
+
}), /* @__PURE__ */ jsx("ellipse", {
|
|
22118
|
+
cx: "36",
|
|
22119
|
+
cy: surfaceY,
|
|
22120
|
+
rx: "22",
|
|
22121
|
+
ry: "4",
|
|
22122
|
+
fill
|
|
22123
|
+
})]
|
|
22124
|
+
}),
|
|
22125
|
+
/* @__PURE__ */ jsx("path", {
|
|
22126
|
+
d: "M14 26 H58 L52 54 A6 6 0 0 1 46 58 H26 A6 6 0 0 1 20 54 Z",
|
|
22127
|
+
fill: "none",
|
|
22128
|
+
stroke: "currentColor",
|
|
22129
|
+
strokeWidth: "2.5",
|
|
22130
|
+
className: "text-border"
|
|
22131
|
+
}),
|
|
22132
|
+
/* @__PURE__ */ jsx("rect", {
|
|
22133
|
+
x: "11",
|
|
22134
|
+
y: "22",
|
|
22135
|
+
width: "50",
|
|
22136
|
+
height: "6",
|
|
22137
|
+
rx: "3",
|
|
22138
|
+
fill: "currentColor",
|
|
22139
|
+
className: "text-border"
|
|
22140
|
+
})
|
|
22141
|
+
]
|
|
22142
|
+
});
|
|
22143
|
+
}
|
|
22144
|
+
/** Manual-feed portion stepper + Feed button, honouring the 4-200 g range. */
|
|
22145
|
+
function HopperFeed({ label, grams, busy, onGrams, onFeed }) {
|
|
22146
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
22147
|
+
className: "flex flex-col gap-1",
|
|
22148
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
22149
|
+
className: "text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle",
|
|
22150
|
+
children: label
|
|
22151
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
22152
|
+
className: "flex items-center gap-2",
|
|
22153
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
22154
|
+
className: "flex items-center gap-1 rounded-lg border border-border/60 bg-surface-subtle px-1 py-1",
|
|
22155
|
+
children: [
|
|
22156
|
+
/* @__PURE__ */ jsx(RoundStep$1, {
|
|
22157
|
+
label: `Decrease ${label} portion`,
|
|
22158
|
+
symbol: "−",
|
|
22159
|
+
disabled: busy || grams <= PET_FEEDER_MANUAL_FEED_MIN,
|
|
22160
|
+
onClick: () => onGrams(clampPortion(grams - 1))
|
|
22161
|
+
}),
|
|
22162
|
+
/* @__PURE__ */ jsxs("span", {
|
|
22163
|
+
className: "w-12 text-center text-sm font-semibold tabular-nums text-foreground",
|
|
22164
|
+
children: [grams, /* @__PURE__ */ jsx("span", {
|
|
22165
|
+
className: "text-xs text-foreground-subtle",
|
|
22166
|
+
children: "g"
|
|
22167
|
+
})]
|
|
22168
|
+
}),
|
|
22169
|
+
/* @__PURE__ */ jsx(RoundStep$1, {
|
|
22170
|
+
label: `Increase ${label} portion`,
|
|
22171
|
+
symbol: "+",
|
|
22172
|
+
disabled: busy || grams >= PET_FEEDER_MANUAL_FEED_MAX,
|
|
22173
|
+
onClick: () => onGrams(clampPortion(grams + 1))
|
|
22174
|
+
})
|
|
22175
|
+
]
|
|
22176
|
+
}), /* @__PURE__ */ jsxs("button", {
|
|
22177
|
+
type: "button",
|
|
22178
|
+
disabled: busy,
|
|
22179
|
+
onClick: onFeed,
|
|
22180
|
+
className: cn("flex flex-1 items-center justify-center gap-1.5 rounded-lg border border-transparent bg-amber-400 px-2 py-2 text-sm font-semibold text-amber-950 transition-colors hover:bg-amber-300 active:scale-95", busy && "opacity-40 cursor-not-allowed"),
|
|
22181
|
+
children: [/* @__PURE__ */ jsx(PawPrint, {
|
|
22182
|
+
className: "h-4 w-4",
|
|
22183
|
+
"aria-hidden": true
|
|
22184
|
+
}), "Feed"]
|
|
22185
|
+
})]
|
|
22186
|
+
})]
|
|
22187
|
+
});
|
|
22188
|
+
}
|
|
22189
|
+
/** Circular ± button. */
|
|
22190
|
+
function RoundStep$1({ label, symbol, disabled, onClick }) {
|
|
22191
|
+
return /* @__PURE__ */ jsx("button", {
|
|
22192
|
+
type: "button",
|
|
22193
|
+
"aria-label": label,
|
|
22194
|
+
disabled,
|
|
22195
|
+
onClick,
|
|
22196
|
+
className: cn("flex h-7 w-7 shrink-0 items-center justify-center rounded-full border border-border bg-surface text-base leading-none text-foreground-subtle transition-colors hover:bg-surface-hover hover:text-foreground active:scale-95", disabled && "opacity-40 cursor-not-allowed"),
|
|
22197
|
+
children: symbol
|
|
22198
|
+
});
|
|
22199
|
+
}
|
|
22200
|
+
/** Neutral maintenance action button (icon over label). */
|
|
22201
|
+
function ActionButton({ icon, label, busy, onClick }) {
|
|
22202
|
+
return /* @__PURE__ */ jsxs("button", {
|
|
22203
|
+
type: "button",
|
|
22204
|
+
disabled: busy,
|
|
22205
|
+
onClick,
|
|
22206
|
+
className: cn("flex flex-col items-center justify-center gap-1 rounded-lg border border-border/60 bg-surface-subtle px-1 py-2 text-[11px] font-medium text-foreground-subtle transition-colors hover:bg-surface-hover hover:text-foreground", busy && "opacity-40 cursor-not-allowed"),
|
|
22207
|
+
children: [icon, label]
|
|
22208
|
+
});
|
|
22209
|
+
}
|
|
22210
|
+
/** Setting toggle card — reflects the persisted setting; tap to flip. */
|
|
22211
|
+
function SettingToggle({ icon, label, on, busy, onToggle }) {
|
|
22212
|
+
return /* @__PURE__ */ jsxs("button", {
|
|
22213
|
+
type: "button",
|
|
22214
|
+
"aria-label": label,
|
|
22215
|
+
"aria-pressed": on,
|
|
22216
|
+
disabled: busy,
|
|
22217
|
+
onClick: () => {
|
|
22218
|
+
if (!busy) onToggle(!on);
|
|
22219
|
+
},
|
|
22220
|
+
className: cn("flex flex-col items-center justify-center gap-1 rounded-lg border px-1 py-2 text-[11px] font-medium transition-colors", on ? "border-transparent bg-indigo-400 text-indigo-950 shadow-sm" : "border-border/60 bg-surface-subtle text-foreground-subtle hover:bg-surface-hover hover:text-foreground", busy && "opacity-40 cursor-not-allowed"),
|
|
22221
|
+
children: [icon, label]
|
|
22222
|
+
});
|
|
22223
|
+
}
|
|
22224
|
+
function PetFeederInlineControl({ trpc, deviceId, features, optimistic }) {
|
|
22225
|
+
return /* @__PURE__ */ jsx(PetFeederPanel, {
|
|
22226
|
+
trpc,
|
|
22227
|
+
deviceId,
|
|
22228
|
+
features,
|
|
22229
|
+
layout: "compact",
|
|
22230
|
+
optimistic
|
|
22231
|
+
});
|
|
22232
|
+
}
|
|
22233
|
+
function PetFeederHeroCard({ trpc, deviceId, features, optimistic }) {
|
|
22234
|
+
return /* @__PURE__ */ jsx(PetFeederPanel, {
|
|
22235
|
+
trpc,
|
|
22236
|
+
deviceId,
|
|
22237
|
+
features,
|
|
22238
|
+
layout: "full",
|
|
22239
|
+
optimistic
|
|
22240
|
+
});
|
|
22241
|
+
}
|
|
22242
|
+
//#endregion
|
|
21641
22243
|
//#region src/composites/device-controls/switch-panel.tsx
|
|
21642
22244
|
function SwitchPanel({ trpc, deviceId, optimistic }) {
|
|
21643
22245
|
const { cap, slice, available } = useDeviceCapability({
|
|
@@ -24823,6 +25425,10 @@ var IMAGE_CONTROL = {
|
|
|
24823
25425
|
InlineControl: ImageInlineControl,
|
|
24824
25426
|
HeroCard: ImageHeroCard
|
|
24825
25427
|
};
|
|
25428
|
+
var PET_FEEDER_CONTROL = {
|
|
25429
|
+
InlineControl: PetFeederInlineControl,
|
|
25430
|
+
HeroCard: PetFeederHeroCard
|
|
25431
|
+
};
|
|
24826
25432
|
/**
|
|
24827
25433
|
* Exhaustive record over DeviceType. Omitting a member causes a
|
|
24828
25434
|
* TypeScript build error (same pattern as DEVICE_TYPE_ACTIONS).
|
|
@@ -24860,7 +25466,8 @@ var DEVICE_TYPE_CONTROL = {
|
|
|
24860
25466
|
[DeviceType.Vacuum]: VACUUM_CONTROL,
|
|
24861
25467
|
[DeviceType.LawnMower]: LAWN_MOWER_CONTROL,
|
|
24862
25468
|
[DeviceType.Container]: DUMMY_CONTROL,
|
|
24863
|
-
[DeviceType.Image]: IMAGE_CONTROL
|
|
25469
|
+
[DeviceType.Image]: IMAGE_CONTROL,
|
|
25470
|
+
[DeviceType.PetFeeder]: PET_FEEDER_CONTROL
|
|
24864
25471
|
};
|
|
24865
25472
|
/**
|
|
24866
25473
|
* Per-type FILL flag.
|
|
@@ -24911,7 +25518,8 @@ var CONTROL_FILLS = {
|
|
|
24911
25518
|
[DeviceType.Generic]: false,
|
|
24912
25519
|
[DeviceType.Weather]: false,
|
|
24913
25520
|
[DeviceType.Container]: false,
|
|
24914
|
-
[DeviceType.Image]: false
|
|
25521
|
+
[DeviceType.Image]: false,
|
|
25522
|
+
[DeviceType.PetFeeder]: false
|
|
24915
25523
|
};
|
|
24916
25524
|
var DEVICE_TYPE_VALUES$1 = new Set(Object.values(DeviceType));
|
|
24917
25525
|
/**
|
|
@@ -25160,6 +25768,10 @@ var DEVICE_TYPE_META = {
|
|
|
25160
25768
|
[DeviceType.Image]: {
|
|
25161
25769
|
icon: Image,
|
|
25162
25770
|
label: "Image"
|
|
25771
|
+
},
|
|
25772
|
+
[DeviceType.PetFeeder]: {
|
|
25773
|
+
icon: Bone,
|
|
25774
|
+
label: "Pet feeder"
|
|
25163
25775
|
}
|
|
25164
25776
|
};
|
|
25165
25777
|
var DEVICE_ROLE_META = {
|
|
@@ -28987,7 +29599,8 @@ var CONTROL_CAP_NAMES = [
|
|
|
28987
29599
|
"fan-control",
|
|
28988
29600
|
"climate-control",
|
|
28989
29601
|
"media-player",
|
|
28990
|
-
"control"
|
|
29602
|
+
"control",
|
|
29603
|
+
"pet-feeder"
|
|
28991
29604
|
];
|
|
28992
29605
|
//#endregion
|
|
28993
29606
|
//#region src/composites/device-controls/popover-row-action.tsx
|
|
@@ -44226,4 +44839,4 @@ var MotionZonesSettings = lazy(() => import("./MotionZonesSettings-NcxxQN8r.js")
|
|
|
44226
44839
|
/** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
|
|
44227
44840
|
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-APgPLF7p.js").then((m) => ({ default: m.PrivacyMaskSettings })));
|
|
44228
44841
|
//#endregion
|
|
44229
|
-
export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, CENTER, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, Checkbox, ChildSectionAccordion, ClimatePanel, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, CustomFieldRenderersProvider, DEFAULT_COLOR, DEVICE_COLUMNS, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceGrid, DeviceItem, DeviceList, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EmptyState, ErrorBox, EventStream, FILL, FanHeroCard, FanInlineControl, FanPanel, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, FormField$1 as FormField, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GripTrack, HOST_WIDGETS, HlsVideo, HoverZoomImage, HumidifierHeroCard, HumidifierInlineControl, INPUT_COMPACT, IconAction, IconButton, ImageHeroCard, ImageInlineControl, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LightHeroCard, LightInlineControl, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, MODE_COLOR, MaskShapeCanvas, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, MobileDrawer, MotionZonesSettings, NodeMultiSelectField, NodePicker, NodeSelectField, OfflineBadge, PHASE_CONFIG, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECORDED_PLAYBACK_MODES, RIGHT, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, ScopePicker, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SlideToggle, SnapshotButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, Stepper, StreamBrokerSelector, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimezoneSelector, Tooltip, TooltipContent, TooltipTrigger, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, VodPlaybackProvider, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, allDeviceTypeFilterOptions, buildStepTreeFromSchema, childEntityId, childListName, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, deviceRoleMeta, deviceRoleMetaOf, deviceTypeMeta, deviceTypeMetaOf, ensureMfHostInit, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, fuzzyMatch, getClassColor, getPhaseVisual, groupChildrenByLayout, hardwareLabel, humidifierTint, createLucideIcon as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextSort, normalizeForSearch, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, EyeOff as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolvePrimaryChild, resolveSensorDisplay, scrubReducer, serializeRecordedCommand, shouldCommit, shouldEmit, sortRows, statusIcons, stripParentNamePrefix, Trash2 as t, tankAlert, themeToCss, trpc, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCancelJob, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetJob, useAddonsGetLastRestart, useAddonsGetLogs, useAddonsGetVersions, useAddonsInstallFromWorkspace, useAddonsInstallPackage, useAddonsIsWorkspaceAvailable, useAddonsList, useAddonsListCapabilityProviders, useAddonsListFrameworkPackages, useAddonsListJobs, useAddonsListPackages, useAddonsListUpdates, useAddonsListWorkspacePackages, useAddonsOnAddonLogs, useAddonsReloadPackages, useAddonsRestartAddon, useAddonsRestartServer, useAddonsRetryLoad, useAddonsRollbackPackage, useAddonsSearchAvailable, useAddonsSetAddonAutoUpdate, useAddonsSetAutoUpdateSettings, useAddonsSetCapabilityProviderEnabled, useAddonsStartJob, useAddonsUninstallPackage, useAddonsUpdateFrameworkPackage, useAddonsUpdatePackage, useAirQualitySensorGetStatus, useAlarmPanelArm, useAlarmPanelDisarm, useAlarmPanelGetStatus, useAlarmPanelTrigger, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerClassify, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupDelete, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useColorGetStatus, useColorSetColor, useConfirm, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetChildren, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDeviceLinks, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellEvents, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetPreferred, useLocalNetworkList, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkSetAllowedAddresses, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderDumpHeapSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetProcessStats, useMetricsProviderKillProcess, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdSetOverlay, usePTZ, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsClearTracks, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsSearchObjectEvents, usePipelineExecutorCacheFrameInPool, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDetect, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorReprobeEngine, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignDecoder, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDecoderAssignment, usePipelineOrchestratorGetDecoderAssignments, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentAddonDefaults, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignDecoder, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerReportMotion, usePlateGalleryCorrectPlateText, usePlateGalleryDeletePlate, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetMask, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlaybackManifest, useRecordingGetStatus, useRecordingGetStorageUsage, useRecordingLocateSegment, useRecordingPruneFootage, useRecordingReadSegmentBytes, useRecordingRescanStorage, useRecordingSetDeviceConfig, useRemoteComponent, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetStatus, useSnapshotInvalidateCache, useSnapshotProviderGetSnapshot, useSnapshotProviderSupportsDevice, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageGetDefaultLocation, useStorageList, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetRetentionConfig, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetRetentionConfig, useTamperGetStatus, useTemperatureSensorGetStatus, useThemeMode, useToastOnToast, useTurnProviderGetTurnServers, useUpdateGetStatus, useUpdateInstallUpdate, useUserManagementConfirmTotp, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementGetTotpStatus, useUserManagementListApiKeys, useUserManagementListOauthSessions, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeOauthSession, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, useVideoclipsGetClipPlayback, useVideoclipsListClips, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, vacuumStateMeta, validateScopes, valveStateMeta, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint };
|
|
44842
|
+
export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, CENTER, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, Checkbox, ChildSectionAccordion, ClimatePanel, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, CustomFieldRenderersProvider, DEFAULT_COLOR, DEVICE_COLUMNS, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceGrid, DeviceItem, DeviceList, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EmptyState, ErrorBox, EventStream, FILL, FanHeroCard, FanInlineControl, FanPanel, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, FormField$1 as FormField, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GripTrack, HOST_WIDGETS, HlsVideo, HoverZoomImage, HumidifierHeroCard, HumidifierInlineControl, INPUT_COMPACT, IconAction, IconButton, ImageHeroCard, ImageInlineControl, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LightHeroCard, LightInlineControl, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, MODE_COLOR, MaskShapeCanvas, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, MobileDrawer, MotionZonesSettings, NodeMultiSelectField, NodePicker, NodeSelectField, OfflineBadge, PHASE_CONFIG, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECORDED_PLAYBACK_MODES, RIGHT, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, ScopePicker, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SlideToggle, SnapshotButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, Stepper, StreamBrokerSelector, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimezoneSelector, Tooltip, TooltipContent, TooltipTrigger, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, VodPlaybackProvider, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, allDeviceTypeFilterOptions, buildStepTreeFromSchema, childEntityId, childListName, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, deviceRoleMeta, deviceRoleMetaOf, deviceTypeMeta, deviceTypeMetaOf, ensureMfHostInit, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, fuzzyMatch, getClassColor, getPhaseVisual, groupChildrenByLayout, hardwareLabel, humidifierTint, createLucideIcon as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextSort, normalizeForSearch, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, EyeOff as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolvePrimaryChild, resolveSensorDisplay, scrubReducer, serializeRecordedCommand, shouldCommit, shouldEmit, sortRows, statusIcons, stripParentNamePrefix, Trash2 as t, tankAlert, themeToCss, trpc, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCancelJob, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetJob, useAddonsGetLastRestart, useAddonsGetLogs, useAddonsGetVersions, useAddonsInstallFromWorkspace, useAddonsInstallPackage, useAddonsIsWorkspaceAvailable, useAddonsList, useAddonsListCapabilityProviders, useAddonsListFrameworkPackages, useAddonsListJobs, useAddonsListPackages, useAddonsListUpdates, useAddonsListWorkspacePackages, useAddonsOnAddonLogs, useAddonsReloadPackages, useAddonsRestartAddon, useAddonsRestartServer, useAddonsRetryLoad, useAddonsRollbackPackage, useAddonsSearchAvailable, useAddonsSetAddonAutoUpdate, useAddonsSetAutoUpdateSettings, useAddonsSetCapabilityProviderEnabled, useAddonsStartJob, useAddonsUninstallPackage, useAddonsUpdateFrameworkPackage, useAddonsUpdatePackage, useAirQualitySensorGetStatus, useAlarmPanelArm, useAlarmPanelDisarm, useAlarmPanelGetStatus, useAlarmPanelTrigger, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerClassify, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupDelete, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useColorGetStatus, useColorSetColor, useConfirm, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetChildren, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDeviceLinks, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellEvents, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetPreferred, useLocalNetworkList, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkSetAllowedAddresses, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderDumpHeapSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetProcessStats, useMetricsProviderKillProcess, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsClearTracks, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsSearchObjectEvents, usePipelineExecutorCacheFrameInPool, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDetect, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorReprobeEngine, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignDecoder, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDecoderAssignment, usePipelineOrchestratorGetDecoderAssignments, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentAddonDefaults, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignDecoder, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerReportMotion, usePlateGalleryCorrectPlateText, usePlateGalleryDeletePlate, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetMask, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlaybackManifest, useRecordingGetStatus, useRecordingGetStorageUsage, useRecordingLocateSegment, useRecordingPruneFootage, useRecordingReadSegmentBytes, useRecordingRescanStorage, useRecordingSetDeviceConfig, useRemoteComponent, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetStatus, useSnapshotInvalidateCache, useSnapshotProviderGetSnapshot, useSnapshotProviderSupportsDevice, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageGetDefaultLocation, useStorageList, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetRetentionConfig, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetRetentionConfig, useTamperGetStatus, useTemperatureSensorGetStatus, useThemeMode, useToastOnToast, useTurnProviderGetTurnServers, useUpdateGetStatus, useUpdateInstallUpdate, useUserManagementConfirmTotp, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementGetTotpStatus, useUserManagementListApiKeys, useUserManagementListOauthSessions, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeOauthSession, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, useVideoclipsGetClipPlayback, useVideoclipsListClips, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, vacuumStateMeta, validateScopes, valveStateMeta, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint };
|