@camstack/ui-library 1.2.25 → 1.2.27

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.
@@ -27,7 +27,7 @@ export { ImageInlineControl, ImageHeroCard, type ImageHeroCardProps, } from './i
27
27
  export { DummyInline, DummyHeroCard } from './dummy-hero-card';
28
28
  export { SensorInlineControl } from './sensor-inline-control';
29
29
  export { SensorHeroCard } from './sensor-hero-card';
30
- export { SwitchInlineControl, SwitchHeroCard, LockInlineControl, LockHeroCard, LightInlineControl, LightHeroCard, FanInlineControl, FanHeroCard, ThermostatInlineControl, ThermostatHeroCard, MediaPlayerInlineControl, MediaPlayerHeroCard, AlarmPanelInlineControl, AlarmHeroCard, ControlInlineControl, ControlHeroCard, } from './panel-controls';
30
+ export { SwitchInlineControl, SwitchHeroCard, LockInlineControl, LockHeroCard, LightInlineControl, LightHeroCard, FanInlineControl, FanHeroCard, ThermostatInlineControl, ThermostatHeroCard, MediaPlayerInlineControl, MediaPlayerHeroCard, AlarmPanelInlineControl, AlarmHeroCard, ScriptInlineControl, ScriptHeroCard, AutomationInlineControl, AutomationHeroCard, ControlInlineControl, ControlHeroCard, } from './panel-controls';
31
31
  export { resolvePrimaryChild, PRIORITY, type ChildRef } from './primary-child';
32
32
  export { resolveContainerPrimary, overrideEntityIdFromLink, containerChildToRef, childEntityId, type ContainerChild, } from './container-primary';
33
33
  export { ContainerPrimaryHero, type ContainerPrimaryHeroProps, type ContainerHeroChild, } from './container-primary-hero';
@@ -7,6 +7,7 @@ export { FanHeroCard } from './fan-hero-card';
7
7
  export { SwitchHeroCard } from './switch-hero-card';
8
8
  export { MediaPlayerHeroCard } from './media-player-hero-card';
9
9
  export { AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl } from './alarm-hero-card';
10
+ export { AutomationHeroCard, AutomationInlineControl, ScriptHeroCard, ScriptInlineControl, } from './script-automation-controls';
10
11
  export declare function SwitchInlineControl({ trpc, deviceId, features, optimistic, }: DeviceControlProps): ReactNode;
11
12
  export declare function LockInlineControl({ trpc, deviceId, features, optimistic, }: DeviceControlProps): ReactNode;
12
13
  export declare function LightInlineControl({ trpc, deviceId, features, optimistic, }: DeviceControlProps): ReactNode;
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from 'react';
2
+ import { DeviceControlProps } from './control-registry';
3
+ /**
4
+ * "3 min ago", or nothing at all.
5
+ *
6
+ * **0 means NEVER RUN** on both status schemas, and it must not render as the
7
+ * epoch. "1 Jan 1970" next to a script is the kind of detail that sends an
8
+ * operator looking for a clock problem that does not exist.
9
+ */
10
+ export declare function lastRunLabel(atMs: number, nowMs: number): string | null;
11
+ export declare function ScriptInlineControl({ trpc, deviceId, optimistic }: DeviceControlProps): ReactNode;
12
+ export declare function ScriptHeroCard({ trpc, deviceId, optimistic }: DeviceControlProps): ReactNode;
13
+ export declare function AutomationInlineControl({ trpc, deviceId, optimistic, }: DeviceControlProps): ReactNode;
14
+ export declare function AutomationHeroCard({ trpc, deviceId, optimistic }: DeviceControlProps): ReactNode;
@@ -973,6 +973,10 @@ export declare const useNotificationRulesListSnoozes: typeof trpc.notificationRu
973
973
  export declare const useNotificationRulesCreateSnooze: typeof trpc.notificationRules.createSnooze.useMutation;
974
974
  /** Generated alias around `trpc.notificationRules.cancelSnooze.useMutation`. */
975
975
  export declare const useNotificationRulesCancelSnooze: typeof trpc.notificationRules.cancelSnooze.useMutation;
976
+ /** Generated alias around `trpc.notificationRules.getAlarmConfig.useQuery`. */
977
+ export declare const useNotificationRulesGetAlarmConfig: typeof trpc.notificationRules.getAlarmConfig.useQuery;
978
+ /** Generated alias around `trpc.notificationRules.setAlarmConfig.useMutation`. */
979
+ export declare const useNotificationRulesSetAlarmConfig: typeof trpc.notificationRules.setAlarmConfig.useMutation;
976
980
  /** Generated alias around `trpc.notifier.send.useMutation`. */
977
981
  export declare const useNotifierSend: typeof trpc.notifier.send.useMutation;
978
982
  /** Generated alias around `trpc.notifier.cancel.useMutation`. */
package/dist/index.cjs CHANGED
@@ -9082,6 +9082,25 @@ var CircleQuestionMark = createLucideIcon("circle-question-mark", [
9082
9082
  * This source code is licensed under the ISC license.
9083
9083
  * See the LICENSE file in the root directory of this source tree.
9084
9084
  */
9085
+ var CircleStop = createLucideIcon("circle-stop", [["circle", {
9086
+ cx: "12",
9087
+ cy: "12",
9088
+ r: "10",
9089
+ key: "1mglay"
9090
+ }], ["rect", {
9091
+ x: "9",
9092
+ y: "9",
9093
+ width: "6",
9094
+ height: "6",
9095
+ rx: "1",
9096
+ key: "1ssd4o"
9097
+ }]]);
9098
+ /**
9099
+ * @license lucide-react v0.576.0 - ISC
9100
+ *
9101
+ * This source code is licensed under the ISC license.
9102
+ * See the LICENSE file in the root directory of this source tree.
9103
+ */
9085
9104
  var CircleX = createLucideIcon("circle-x", [
9086
9105
  ["circle", {
9087
9106
  cx: "12",
@@ -19095,6 +19114,10 @@ var useNotificationRulesListSnoozes = trpc.notificationRules.listSnoozes.useQuer
19095
19114
  var useNotificationRulesCreateSnooze = trpc.notificationRules.createSnooze.useMutation;
19096
19115
  /** Generated alias around `trpc.notificationRules.cancelSnooze.useMutation`. */
19097
19116
  var useNotificationRulesCancelSnooze = trpc.notificationRules.cancelSnooze.useMutation;
19117
+ /** Generated alias around `trpc.notificationRules.getAlarmConfig.useQuery`. */
19118
+ var useNotificationRulesGetAlarmConfig = trpc.notificationRules.getAlarmConfig.useQuery;
19119
+ /** Generated alias around `trpc.notificationRules.setAlarmConfig.useMutation`. */
19120
+ var useNotificationRulesSetAlarmConfig = trpc.notificationRules.setAlarmConfig.useMutation;
19098
19121
  /** Generated alias around `trpc.notifier.send.useMutation`. */
19099
19122
  var useNotifierSend = trpc.notifier.send.useMutation;
19100
19123
  /** Generated alias around `trpc.notifier.cancel.useMutation`. */
@@ -26958,6 +26981,285 @@ function AlarmHeroCard({ trpc, deviceId, optimistic }) {
26958
26981
  });
26959
26982
  }
26960
26983
  //#endregion
26984
+ //#region src/composites/device-controls/script-automation-controls.tsx
26985
+ /**
26986
+ * "3 min ago", or nothing at all.
26987
+ *
26988
+ * **0 means NEVER RUN** on both status schemas, and it must not render as the
26989
+ * epoch. "1 Jan 1970" next to a script is the kind of detail that sends an
26990
+ * operator looking for a clock problem that does not exist.
26991
+ */
26992
+ function lastRunLabel(atMs, nowMs) {
26993
+ if (atMs <= 0) return null;
26994
+ const deltaSec = Math.max(0, Math.round((nowMs - atMs) / 1e3));
26995
+ if (deltaSec < 60) return "just now";
26996
+ if (deltaSec < 3600) return `${Math.floor(deltaSec / 60)} min ago`;
26997
+ if (deltaSec < 86400) return `${Math.floor(deltaSec / 3600)} h ago`;
26998
+ return new Date(atMs).toLocaleDateString();
26999
+ }
27000
+ function LastRun({ atMs, neverLabel }) {
27001
+ const label = lastRunLabel(atMs, Date.now());
27002
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
27003
+ className: "text-xs text-foreground-subtle",
27004
+ "data-testid": "last-run",
27005
+ children: label === null ? neverLabel : label
27006
+ });
27007
+ }
27008
+ /** Rendered ONLY when a message exists — see the file docblock. */
27009
+ function LastError({ error }) {
27010
+ if (error === null || error === "") return null;
27011
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
27012
+ className: "inline-flex items-center gap-1 text-xs text-danger",
27013
+ title: error,
27014
+ "data-testid": "last-error",
27015
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(TriangleAlert, {
27016
+ className: "h-3 w-3 shrink-0",
27017
+ "aria-hidden": "true"
27018
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
27019
+ className: "truncate",
27020
+ children: error
27021
+ })]
27022
+ });
27023
+ }
27024
+ /**
27025
+ * Subscribes to `script-runner` ONCE, so the hero and the inline control never
27026
+ * double-subscribe. Mirrors `useAlarmControl`.
27027
+ */
27028
+ function useScriptControl(trpc, deviceId, optimistic) {
27029
+ const { cap, slice, available } = useDeviceCapability({
27030
+ trpc,
27031
+ deviceId,
27032
+ cap: (d) => d.scriptRunner,
27033
+ slice: (d) => d.state.scriptRunner
27034
+ });
27035
+ const { display, applyOptimistic } = useOptimisticSlice(slice, { enabled: optimistic ?? true });
27036
+ const busy = !available;
27037
+ const running = display?.isRunning === true;
27038
+ return {
27039
+ display,
27040
+ capPresent: cap !== void 0,
27041
+ busy,
27042
+ running,
27043
+ run: () => {
27044
+ if (cap === void 0 || busy || running) return;
27045
+ applyOptimistic({ isRunning: true });
27046
+ cap.run({});
27047
+ },
27048
+ stop: () => {
27049
+ if (cap === void 0 || busy || !running) return;
27050
+ applyOptimistic({ isRunning: false });
27051
+ cap.stop({});
27052
+ }
27053
+ };
27054
+ }
27055
+ function RunButton({ running, busy, large, onRun, onStop }) {
27056
+ const label = running ? "Stop" : "Run";
27057
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
27058
+ type: "button",
27059
+ "aria-label": label,
27060
+ title: label,
27061
+ disabled: busy,
27062
+ "data-testid": "script-run",
27063
+ "data-running": running ? "true" : "false",
27064
+ onClick: (e) => {
27065
+ e.stopPropagation();
27066
+ if (running) onStop();
27067
+ else onRun();
27068
+ },
27069
+ className: cn("inline-flex items-center gap-1 rounded transition-colors", large ? "h-10 px-4 text-sm" : "h-5 px-1.5 text-xs", running ? "bg-danger text-danger-foreground hover:bg-danger/90" : "bg-primary text-primary-foreground hover:bg-primary/90", busy && "cursor-not-allowed opacity-40"),
27070
+ children: [running ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CircleStop, {
27071
+ className: large ? "h-4 w-4" : "h-3 w-3",
27072
+ "aria-hidden": "true"
27073
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Play, {
27074
+ className: large ? "h-4 w-4" : "h-3 w-3",
27075
+ "aria-hidden": "true"
27076
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: label })]
27077
+ });
27078
+ }
27079
+ function ScriptInlineControl({ trpc, deviceId, optimistic }) {
27080
+ const { display, capPresent, busy, running, run, stop } = useScriptControl(trpc, deviceId, optimistic);
27081
+ if (!capPresent) return null;
27082
+ if (display === void 0) return null;
27083
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
27084
+ className: "flex min-w-0 items-center gap-2",
27085
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(RunButton, {
27086
+ running,
27087
+ busy,
27088
+ large: false,
27089
+ onRun: run,
27090
+ onStop: stop
27091
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LastRun, {
27092
+ atMs: display.lastRunAt,
27093
+ neverLabel: "never run"
27094
+ })]
27095
+ });
27096
+ }
27097
+ function ScriptHeroCard({ trpc, deviceId, optimistic }) {
27098
+ const { display, capPresent, busy, running, run, stop } = useScriptControl(trpc, deviceId, optimistic);
27099
+ if (!capPresent) return null;
27100
+ if (display === void 0) return null;
27101
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
27102
+ className: "flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-6",
27103
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
27104
+ className: "flex flex-col items-center gap-2",
27105
+ children: [
27106
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
27107
+ "data-testid": "script-state",
27108
+ "data-running": running ? "true" : "false",
27109
+ className: cn("flex h-16 w-16 items-center justify-center rounded-full border-2", running ? "border-primary text-primary animate-pulse" : "border-border text-foreground-subtle"),
27110
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Play, {
27111
+ className: "h-8 w-8",
27112
+ "aria-hidden": "true"
27113
+ })
27114
+ }),
27115
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
27116
+ className: "text-sm font-medium",
27117
+ children: running ? "Running" : "Idle"
27118
+ }),
27119
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LastRun, {
27120
+ atMs: display.lastRunAt,
27121
+ neverLabel: "never run"
27122
+ }),
27123
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LastError, { error: display.lastError })
27124
+ ]
27125
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
27126
+ className: "flex justify-center",
27127
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RunButton, {
27128
+ running,
27129
+ busy,
27130
+ large: true,
27131
+ onRun: run,
27132
+ onStop: stop
27133
+ })
27134
+ })]
27135
+ });
27136
+ }
27137
+ function useAutomationControl(trpc, deviceId, optimistic) {
27138
+ const { cap, slice, available } = useDeviceCapability({
27139
+ trpc,
27140
+ deviceId,
27141
+ cap: (d) => d.automationControl,
27142
+ slice: (d) => d.state.automationControl
27143
+ });
27144
+ const { display, applyOptimistic } = useOptimisticSlice(slice, { enabled: optimistic ?? true });
27145
+ const busy = !available;
27146
+ return {
27147
+ display,
27148
+ capPresent: cap !== void 0,
27149
+ busy,
27150
+ setEnabled: (next) => {
27151
+ if (cap === void 0 || busy) return;
27152
+ applyOptimistic({ enabled: next });
27153
+ if (next) cap.enable({});
27154
+ else cap.disable({});
27155
+ },
27156
+ trigger: () => {
27157
+ if (cap === void 0 || busy) return;
27158
+ cap.trigger({});
27159
+ }
27160
+ };
27161
+ }
27162
+ function EnabledPill({ enabled, busy, onToggle }) {
27163
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
27164
+ type: "button",
27165
+ role: "switch",
27166
+ "aria-checked": enabled,
27167
+ "aria-label": "Automation enabled",
27168
+ disabled: busy,
27169
+ "data-testid": "automation-enabled",
27170
+ onClick: (e) => {
27171
+ e.stopPropagation();
27172
+ onToggle(!enabled);
27173
+ },
27174
+ className: cn("inline-flex shrink-0 items-center gap-1 rounded-md border px-1.5 py-0.5", "text-[11px] font-medium whitespace-nowrap transition-colors", enabled ? "border-success/40 bg-success/10 text-success" : "border-border bg-surface-subtle text-foreground-subtle", busy && "cursor-not-allowed opacity-40"),
27175
+ children: enabled ? "Enabled" : "Disabled"
27176
+ });
27177
+ }
27178
+ /**
27179
+ * Always available, even while the automation is DISABLED.
27180
+ *
27181
+ * That is the cap's contract, not an oversight: a disabled automation ignores
27182
+ * its trigger block but a manual `trigger` still runs it, which is exactly how
27183
+ * an operator tests one before switching it on.
27184
+ */
27185
+ function TriggerButton({ busy, large, onTrigger }) {
27186
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
27187
+ type: "button",
27188
+ "aria-label": "Trigger",
27189
+ title: "Run this automation now",
27190
+ disabled: busy,
27191
+ "data-testid": "automation-trigger",
27192
+ onClick: (e) => {
27193
+ e.stopPropagation();
27194
+ onTrigger();
27195
+ },
27196
+ className: cn("inline-flex items-center gap-1 rounded transition-colors", large ? "h-10 px-4 text-sm" : "h-5 px-1.5 text-xs", "bg-primary text-primary-foreground hover:bg-primary/90", busy && "cursor-not-allowed opacity-40"),
27197
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Zap, {
27198
+ className: large ? "h-4 w-4" : "h-3 w-3",
27199
+ "aria-hidden": "true"
27200
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "Trigger" })]
27201
+ });
27202
+ }
27203
+ function AutomationInlineControl({ trpc, deviceId, optimistic }) {
27204
+ const { display, capPresent, busy, setEnabled, trigger } = useAutomationControl(trpc, deviceId, optimistic);
27205
+ if (!capPresent) return null;
27206
+ if (display === void 0) return null;
27207
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
27208
+ className: "flex min-w-0 items-center gap-2",
27209
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(EnabledPill, {
27210
+ enabled: display.enabled,
27211
+ busy,
27212
+ onToggle: setEnabled
27213
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TriggerButton, {
27214
+ busy,
27215
+ large: false,
27216
+ onTrigger: trigger
27217
+ })]
27218
+ });
27219
+ }
27220
+ function AutomationHeroCard({ trpc, deviceId, optimistic }) {
27221
+ const { display, capPresent, busy, setEnabled, trigger } = useAutomationControl(trpc, deviceId, optimistic);
27222
+ if (!capPresent) return null;
27223
+ if (display === void 0) return null;
27224
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
27225
+ className: "flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-6",
27226
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
27227
+ className: "flex flex-col items-center gap-2",
27228
+ children: [
27229
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
27230
+ "data-testid": "automation-state",
27231
+ "data-enabled": display.enabled ? "true" : "false",
27232
+ className: cn("flex h-16 w-16 items-center justify-center rounded-full border-2", display.enabled ? "border-success text-success" : "border-border text-foreground-subtle"),
27233
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Zap, {
27234
+ className: "h-8 w-8",
27235
+ "aria-hidden": "true"
27236
+ })
27237
+ }),
27238
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
27239
+ className: "text-sm font-medium",
27240
+ children: display.enabled ? "Enabled" : "Disabled"
27241
+ }),
27242
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LastRun, {
27243
+ atMs: display.lastTriggeredAt,
27244
+ neverLabel: "never triggered"
27245
+ }),
27246
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LastError, { error: display.lastError })
27247
+ ]
27248
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
27249
+ className: "flex items-center justify-center gap-3",
27250
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(EnabledPill, {
27251
+ enabled: display.enabled,
27252
+ busy,
27253
+ onToggle: setEnabled
27254
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TriggerButton, {
27255
+ busy,
27256
+ large: true,
27257
+ onTrigger: trigger
27258
+ })]
27259
+ })]
27260
+ });
27261
+ }
27262
+ //#endregion
26961
27263
  //#region src/composites/device-controls/panel-controls.tsx
26962
27264
  /** Matches CoverHeroCard's outer container — real design tokens only. */
26963
27265
  function HeroShell({ children }) {
@@ -27233,6 +27535,14 @@ var CONTROL_KIND_COMPONENTS = {
27233
27535
  InlineControl: PetFeederInlineControl,
27234
27536
  HeroCard: PetFeederHeroCard
27235
27537
  },
27538
+ script: {
27539
+ InlineControl: ScriptInlineControl,
27540
+ HeroCard: ScriptHeroCard
27541
+ },
27542
+ automation: {
27543
+ InlineControl: AutomationInlineControl,
27544
+ HeroCard: AutomationHeroCard
27545
+ },
27236
27546
  dummy: {
27237
27547
  InlineControl: DummyInline,
27238
27548
  HeroCard: DummyHeroCard
@@ -47539,6 +47849,8 @@ exports.ArcKnob = ArcKnob;
47539
47849
  exports.AudioClassificationList = AudioClassificationList;
47540
47850
  exports.AudioLevelWaveform = AudioLevelWaveform;
47541
47851
  exports.AudioWaveform = AudioWaveform;
47852
+ exports.AutomationHeroCard = AutomationHeroCard;
47853
+ exports.AutomationInlineControl = AutomationInlineControl;
47542
47854
  exports.AutotrackSection = AutotrackSection;
47543
47855
  exports.BTN_COMPACT = BTN_COMPACT;
47544
47856
  exports.BTN_COMPACT_DANGER = BTN_COMPACT_DANGER;
@@ -47725,6 +48037,8 @@ exports.SPLIT_PANEL_SIDE = SPLIT_PANEL_SIDE;
47725
48037
  exports.STACK_GAP = STACK_GAP;
47726
48038
  exports.STATE_COLOR = STATE_COLOR;
47727
48039
  exports.ScopePicker = ScopePicker;
48040
+ exports.ScriptHeroCard = ScriptHeroCard;
48041
+ exports.ScriptInlineControl = ScriptInlineControl;
47728
48042
  exports.ScrollArea = ScrollArea;
47729
48043
  exports.Select = Select;
47730
48044
  exports.SemanticBadge = SemanticBadge;
@@ -48375,11 +48689,13 @@ exports.useNotificationRulesCancelSnooze = useNotificationRulesCancelSnooze;
48375
48689
  exports.useNotificationRulesCreateRule = useNotificationRulesCreateRule;
48376
48690
  exports.useNotificationRulesCreateSnooze = useNotificationRulesCreateSnooze;
48377
48691
  exports.useNotificationRulesDeleteRule = useNotificationRulesDeleteRule;
48692
+ exports.useNotificationRulesGetAlarmConfig = useNotificationRulesGetAlarmConfig;
48378
48693
  exports.useNotificationRulesGetConditionCatalog = useNotificationRulesGetConditionCatalog;
48379
48694
  exports.useNotificationRulesGetHistory = useNotificationRulesGetHistory;
48380
48695
  exports.useNotificationRulesGetRule = useNotificationRulesGetRule;
48381
48696
  exports.useNotificationRulesListRules = useNotificationRulesListRules;
48382
48697
  exports.useNotificationRulesListSnoozes = useNotificationRulesListSnoozes;
48698
+ exports.useNotificationRulesSetAlarmConfig = useNotificationRulesSetAlarmConfig;
48383
48699
  exports.useNotificationRulesSetRuleEnabled = useNotificationRulesSetRuleEnabled;
48384
48700
  exports.useNotificationRulesTestRule = useNotificationRulesTestRule;
48385
48701
  exports.useNotificationRulesUpdateRule = useNotificationRulesUpdateRule;
package/dist/index.js CHANGED
@@ -9058,6 +9058,25 @@ var CircleQuestionMark = createLucideIcon("circle-question-mark", [
9058
9058
  * This source code is licensed under the ISC license.
9059
9059
  * See the LICENSE file in the root directory of this source tree.
9060
9060
  */
9061
+ var CircleStop = createLucideIcon("circle-stop", [["circle", {
9062
+ cx: "12",
9063
+ cy: "12",
9064
+ r: "10",
9065
+ key: "1mglay"
9066
+ }], ["rect", {
9067
+ x: "9",
9068
+ y: "9",
9069
+ width: "6",
9070
+ height: "6",
9071
+ rx: "1",
9072
+ key: "1ssd4o"
9073
+ }]]);
9074
+ /**
9075
+ * @license lucide-react v0.576.0 - ISC
9076
+ *
9077
+ * This source code is licensed under the ISC license.
9078
+ * See the LICENSE file in the root directory of this source tree.
9079
+ */
9061
9080
  var CircleX = createLucideIcon("circle-x", [
9062
9081
  ["circle", {
9063
9082
  cx: "12",
@@ -19071,6 +19090,10 @@ var useNotificationRulesListSnoozes = trpc.notificationRules.listSnoozes.useQuer
19071
19090
  var useNotificationRulesCreateSnooze = trpc.notificationRules.createSnooze.useMutation;
19072
19091
  /** Generated alias around `trpc.notificationRules.cancelSnooze.useMutation`. */
19073
19092
  var useNotificationRulesCancelSnooze = trpc.notificationRules.cancelSnooze.useMutation;
19093
+ /** Generated alias around `trpc.notificationRules.getAlarmConfig.useQuery`. */
19094
+ var useNotificationRulesGetAlarmConfig = trpc.notificationRules.getAlarmConfig.useQuery;
19095
+ /** Generated alias around `trpc.notificationRules.setAlarmConfig.useMutation`. */
19096
+ var useNotificationRulesSetAlarmConfig = trpc.notificationRules.setAlarmConfig.useMutation;
19074
19097
  /** Generated alias around `trpc.notifier.send.useMutation`. */
19075
19098
  var useNotifierSend = trpc.notifier.send.useMutation;
19076
19099
  /** Generated alias around `trpc.notifier.cancel.useMutation`. */
@@ -26934,6 +26957,285 @@ function AlarmHeroCard({ trpc, deviceId, optimistic }) {
26934
26957
  });
26935
26958
  }
26936
26959
  //#endregion
26960
+ //#region src/composites/device-controls/script-automation-controls.tsx
26961
+ /**
26962
+ * "3 min ago", or nothing at all.
26963
+ *
26964
+ * **0 means NEVER RUN** on both status schemas, and it must not render as the
26965
+ * epoch. "1 Jan 1970" next to a script is the kind of detail that sends an
26966
+ * operator looking for a clock problem that does not exist.
26967
+ */
26968
+ function lastRunLabel(atMs, nowMs) {
26969
+ if (atMs <= 0) return null;
26970
+ const deltaSec = Math.max(0, Math.round((nowMs - atMs) / 1e3));
26971
+ if (deltaSec < 60) return "just now";
26972
+ if (deltaSec < 3600) return `${Math.floor(deltaSec / 60)} min ago`;
26973
+ if (deltaSec < 86400) return `${Math.floor(deltaSec / 3600)} h ago`;
26974
+ return new Date(atMs).toLocaleDateString();
26975
+ }
26976
+ function LastRun({ atMs, neverLabel }) {
26977
+ const label = lastRunLabel(atMs, Date.now());
26978
+ return /* @__PURE__ */ jsx("span", {
26979
+ className: "text-xs text-foreground-subtle",
26980
+ "data-testid": "last-run",
26981
+ children: label === null ? neverLabel : label
26982
+ });
26983
+ }
26984
+ /** Rendered ONLY when a message exists — see the file docblock. */
26985
+ function LastError({ error }) {
26986
+ if (error === null || error === "") return null;
26987
+ return /* @__PURE__ */ jsxs("span", {
26988
+ className: "inline-flex items-center gap-1 text-xs text-danger",
26989
+ title: error,
26990
+ "data-testid": "last-error",
26991
+ children: [/* @__PURE__ */ jsx(TriangleAlert, {
26992
+ className: "h-3 w-3 shrink-0",
26993
+ "aria-hidden": "true"
26994
+ }), /* @__PURE__ */ jsx("span", {
26995
+ className: "truncate",
26996
+ children: error
26997
+ })]
26998
+ });
26999
+ }
27000
+ /**
27001
+ * Subscribes to `script-runner` ONCE, so the hero and the inline control never
27002
+ * double-subscribe. Mirrors `useAlarmControl`.
27003
+ */
27004
+ function useScriptControl(trpc, deviceId, optimistic) {
27005
+ const { cap, slice, available } = useDeviceCapability({
27006
+ trpc,
27007
+ deviceId,
27008
+ cap: (d) => d.scriptRunner,
27009
+ slice: (d) => d.state.scriptRunner
27010
+ });
27011
+ const { display, applyOptimistic } = useOptimisticSlice(slice, { enabled: optimistic ?? true });
27012
+ const busy = !available;
27013
+ const running = display?.isRunning === true;
27014
+ return {
27015
+ display,
27016
+ capPresent: cap !== void 0,
27017
+ busy,
27018
+ running,
27019
+ run: () => {
27020
+ if (cap === void 0 || busy || running) return;
27021
+ applyOptimistic({ isRunning: true });
27022
+ cap.run({});
27023
+ },
27024
+ stop: () => {
27025
+ if (cap === void 0 || busy || !running) return;
27026
+ applyOptimistic({ isRunning: false });
27027
+ cap.stop({});
27028
+ }
27029
+ };
27030
+ }
27031
+ function RunButton({ running, busy, large, onRun, onStop }) {
27032
+ const label = running ? "Stop" : "Run";
27033
+ return /* @__PURE__ */ jsxs("button", {
27034
+ type: "button",
27035
+ "aria-label": label,
27036
+ title: label,
27037
+ disabled: busy,
27038
+ "data-testid": "script-run",
27039
+ "data-running": running ? "true" : "false",
27040
+ onClick: (e) => {
27041
+ e.stopPropagation();
27042
+ if (running) onStop();
27043
+ else onRun();
27044
+ },
27045
+ className: cn("inline-flex items-center gap-1 rounded transition-colors", large ? "h-10 px-4 text-sm" : "h-5 px-1.5 text-xs", running ? "bg-danger text-danger-foreground hover:bg-danger/90" : "bg-primary text-primary-foreground hover:bg-primary/90", busy && "cursor-not-allowed opacity-40"),
27046
+ children: [running ? /* @__PURE__ */ jsx(CircleStop, {
27047
+ className: large ? "h-4 w-4" : "h-3 w-3",
27048
+ "aria-hidden": "true"
27049
+ }) : /* @__PURE__ */ jsx(Play, {
27050
+ className: large ? "h-4 w-4" : "h-3 w-3",
27051
+ "aria-hidden": "true"
27052
+ }), /* @__PURE__ */ jsx("span", { children: label })]
27053
+ });
27054
+ }
27055
+ function ScriptInlineControl({ trpc, deviceId, optimistic }) {
27056
+ const { display, capPresent, busy, running, run, stop } = useScriptControl(trpc, deviceId, optimistic);
27057
+ if (!capPresent) return null;
27058
+ if (display === void 0) return null;
27059
+ return /* @__PURE__ */ jsxs("div", {
27060
+ className: "flex min-w-0 items-center gap-2",
27061
+ children: [/* @__PURE__ */ jsx(RunButton, {
27062
+ running,
27063
+ busy,
27064
+ large: false,
27065
+ onRun: run,
27066
+ onStop: stop
27067
+ }), /* @__PURE__ */ jsx(LastRun, {
27068
+ atMs: display.lastRunAt,
27069
+ neverLabel: "never run"
27070
+ })]
27071
+ });
27072
+ }
27073
+ function ScriptHeroCard({ trpc, deviceId, optimistic }) {
27074
+ const { display, capPresent, busy, running, run, stop } = useScriptControl(trpc, deviceId, optimistic);
27075
+ if (!capPresent) return null;
27076
+ if (display === void 0) return null;
27077
+ return /* @__PURE__ */ jsxs("div", {
27078
+ className: "flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-6",
27079
+ children: [/* @__PURE__ */ jsxs("div", {
27080
+ className: "flex flex-col items-center gap-2",
27081
+ children: [
27082
+ /* @__PURE__ */ jsx("div", {
27083
+ "data-testid": "script-state",
27084
+ "data-running": running ? "true" : "false",
27085
+ className: cn("flex h-16 w-16 items-center justify-center rounded-full border-2", running ? "border-primary text-primary animate-pulse" : "border-border text-foreground-subtle"),
27086
+ children: /* @__PURE__ */ jsx(Play, {
27087
+ className: "h-8 w-8",
27088
+ "aria-hidden": "true"
27089
+ })
27090
+ }),
27091
+ /* @__PURE__ */ jsx("span", {
27092
+ className: "text-sm font-medium",
27093
+ children: running ? "Running" : "Idle"
27094
+ }),
27095
+ /* @__PURE__ */ jsx(LastRun, {
27096
+ atMs: display.lastRunAt,
27097
+ neverLabel: "never run"
27098
+ }),
27099
+ /* @__PURE__ */ jsx(LastError, { error: display.lastError })
27100
+ ]
27101
+ }), /* @__PURE__ */ jsx("div", {
27102
+ className: "flex justify-center",
27103
+ children: /* @__PURE__ */ jsx(RunButton, {
27104
+ running,
27105
+ busy,
27106
+ large: true,
27107
+ onRun: run,
27108
+ onStop: stop
27109
+ })
27110
+ })]
27111
+ });
27112
+ }
27113
+ function useAutomationControl(trpc, deviceId, optimistic) {
27114
+ const { cap, slice, available } = useDeviceCapability({
27115
+ trpc,
27116
+ deviceId,
27117
+ cap: (d) => d.automationControl,
27118
+ slice: (d) => d.state.automationControl
27119
+ });
27120
+ const { display, applyOptimistic } = useOptimisticSlice(slice, { enabled: optimistic ?? true });
27121
+ const busy = !available;
27122
+ return {
27123
+ display,
27124
+ capPresent: cap !== void 0,
27125
+ busy,
27126
+ setEnabled: (next) => {
27127
+ if (cap === void 0 || busy) return;
27128
+ applyOptimistic({ enabled: next });
27129
+ if (next) cap.enable({});
27130
+ else cap.disable({});
27131
+ },
27132
+ trigger: () => {
27133
+ if (cap === void 0 || busy) return;
27134
+ cap.trigger({});
27135
+ }
27136
+ };
27137
+ }
27138
+ function EnabledPill({ enabled, busy, onToggle }) {
27139
+ return /* @__PURE__ */ jsx("button", {
27140
+ type: "button",
27141
+ role: "switch",
27142
+ "aria-checked": enabled,
27143
+ "aria-label": "Automation enabled",
27144
+ disabled: busy,
27145
+ "data-testid": "automation-enabled",
27146
+ onClick: (e) => {
27147
+ e.stopPropagation();
27148
+ onToggle(!enabled);
27149
+ },
27150
+ className: cn("inline-flex shrink-0 items-center gap-1 rounded-md border px-1.5 py-0.5", "text-[11px] font-medium whitespace-nowrap transition-colors", enabled ? "border-success/40 bg-success/10 text-success" : "border-border bg-surface-subtle text-foreground-subtle", busy && "cursor-not-allowed opacity-40"),
27151
+ children: enabled ? "Enabled" : "Disabled"
27152
+ });
27153
+ }
27154
+ /**
27155
+ * Always available, even while the automation is DISABLED.
27156
+ *
27157
+ * That is the cap's contract, not an oversight: a disabled automation ignores
27158
+ * its trigger block but a manual `trigger` still runs it, which is exactly how
27159
+ * an operator tests one before switching it on.
27160
+ */
27161
+ function TriggerButton({ busy, large, onTrigger }) {
27162
+ return /* @__PURE__ */ jsxs("button", {
27163
+ type: "button",
27164
+ "aria-label": "Trigger",
27165
+ title: "Run this automation now",
27166
+ disabled: busy,
27167
+ "data-testid": "automation-trigger",
27168
+ onClick: (e) => {
27169
+ e.stopPropagation();
27170
+ onTrigger();
27171
+ },
27172
+ className: cn("inline-flex items-center gap-1 rounded transition-colors", large ? "h-10 px-4 text-sm" : "h-5 px-1.5 text-xs", "bg-primary text-primary-foreground hover:bg-primary/90", busy && "cursor-not-allowed opacity-40"),
27173
+ children: [/* @__PURE__ */ jsx(Zap, {
27174
+ className: large ? "h-4 w-4" : "h-3 w-3",
27175
+ "aria-hidden": "true"
27176
+ }), /* @__PURE__ */ jsx("span", { children: "Trigger" })]
27177
+ });
27178
+ }
27179
+ function AutomationInlineControl({ trpc, deviceId, optimistic }) {
27180
+ const { display, capPresent, busy, setEnabled, trigger } = useAutomationControl(trpc, deviceId, optimistic);
27181
+ if (!capPresent) return null;
27182
+ if (display === void 0) return null;
27183
+ return /* @__PURE__ */ jsxs("div", {
27184
+ className: "flex min-w-0 items-center gap-2",
27185
+ children: [/* @__PURE__ */ jsx(EnabledPill, {
27186
+ enabled: display.enabled,
27187
+ busy,
27188
+ onToggle: setEnabled
27189
+ }), /* @__PURE__ */ jsx(TriggerButton, {
27190
+ busy,
27191
+ large: false,
27192
+ onTrigger: trigger
27193
+ })]
27194
+ });
27195
+ }
27196
+ function AutomationHeroCard({ trpc, deviceId, optimistic }) {
27197
+ const { display, capPresent, busy, setEnabled, trigger } = useAutomationControl(trpc, deviceId, optimistic);
27198
+ if (!capPresent) return null;
27199
+ if (display === void 0) return null;
27200
+ return /* @__PURE__ */ jsxs("div", {
27201
+ className: "flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-6",
27202
+ children: [/* @__PURE__ */ jsxs("div", {
27203
+ className: "flex flex-col items-center gap-2",
27204
+ children: [
27205
+ /* @__PURE__ */ jsx("div", {
27206
+ "data-testid": "automation-state",
27207
+ "data-enabled": display.enabled ? "true" : "false",
27208
+ className: cn("flex h-16 w-16 items-center justify-center rounded-full border-2", display.enabled ? "border-success text-success" : "border-border text-foreground-subtle"),
27209
+ children: /* @__PURE__ */ jsx(Zap, {
27210
+ className: "h-8 w-8",
27211
+ "aria-hidden": "true"
27212
+ })
27213
+ }),
27214
+ /* @__PURE__ */ jsx("span", {
27215
+ className: "text-sm font-medium",
27216
+ children: display.enabled ? "Enabled" : "Disabled"
27217
+ }),
27218
+ /* @__PURE__ */ jsx(LastRun, {
27219
+ atMs: display.lastTriggeredAt,
27220
+ neverLabel: "never triggered"
27221
+ }),
27222
+ /* @__PURE__ */ jsx(LastError, { error: display.lastError })
27223
+ ]
27224
+ }), /* @__PURE__ */ jsxs("div", {
27225
+ className: "flex items-center justify-center gap-3",
27226
+ children: [/* @__PURE__ */ jsx(EnabledPill, {
27227
+ enabled: display.enabled,
27228
+ busy,
27229
+ onToggle: setEnabled
27230
+ }), /* @__PURE__ */ jsx(TriggerButton, {
27231
+ busy,
27232
+ large: true,
27233
+ onTrigger: trigger
27234
+ })]
27235
+ })]
27236
+ });
27237
+ }
27238
+ //#endregion
26937
27239
  //#region src/composites/device-controls/panel-controls.tsx
26938
27240
  /** Matches CoverHeroCard's outer container — real design tokens only. */
26939
27241
  function HeroShell({ children }) {
@@ -27209,6 +27511,14 @@ var CONTROL_KIND_COMPONENTS = {
27209
27511
  InlineControl: PetFeederInlineControl,
27210
27512
  HeroCard: PetFeederHeroCard
27211
27513
  },
27514
+ script: {
27515
+ InlineControl: ScriptInlineControl,
27516
+ HeroCard: ScriptHeroCard
27517
+ },
27518
+ automation: {
27519
+ InlineControl: AutomationInlineControl,
27520
+ HeroCard: AutomationHeroCard
27521
+ },
27212
27522
  dummy: {
27213
27523
  InlineControl: DummyInline,
27214
27524
  HeroCard: DummyHeroCard
@@ -47506,4 +47816,4 @@ var MotionZonesSettings = lazy(() => import("./MotionZonesSettings-NcxxQN8r.js")
47506
47816
  /** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
47507
47817
  var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-APgPLF7p.js").then((m) => ({ default: m.PrivacyMaskSettings })));
47508
47818
  //#endregion
47509
- 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, CARD_MODE_MIN_COLUMNS, 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, DeviceMultiSelectField, DeviceSelectField, DeviceStepMatrix, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EVENT_KIND_ICONS, EmptyState, ErrorBox, EventKindGlyph, EventStream, FILL, FanHeroCard, FanInlineControl, FanPanel, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, FormField$1 as FormField, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GripTrack, GroupedModelSelector, 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, ModelPicker, 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, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RIGHT, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SETTING_ROW, SETTING_ROW_LABEL, SETTING_ROW_STACK_BREAKPOINT, SETTING_ROW_VALUE, SETTING_ROW_VALUE_TEXT, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, ScopePicker, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, 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, agentColumnKey, allDeviceTypeFilterOptions, buildStepTreeFromSchema, childEntityId, childListName, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, ensureMfHostInit, eventKindLabel, filterDeviceOptions, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, fuzzyMatch, getClassColor, getPhaseVisual, groupAgentColumns, groupChildrenByLayout, hardwareLabel, humidifierTint, createLucideIcon as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextReconnectAction, nextSort, normalizeForSearch, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, EyeOff as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, shouldUseSingleNode, 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, 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, useBackupDeleteSchedule, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupListSchedules, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBackupUpsertSchedule, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, 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, useCoreBlocksCompile, useCoreBlocksCreate, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksSetEnabled, useCoreBlocksUpdate, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, 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, useDeviceManagerApplyDeviceSettingsPatch, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetChildren, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveContribution, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceSettingsContribution, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetDeviceStatusAggregateBatch, useDeviceManagerGetLinkedDevices, 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, useDoorbellApplyDeviceSettingsPatch, useDoorbellEvents, useDoorbellGetDeviceLiveContribution, useDoorbellGetDeviceSettingsContribution, 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, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, 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, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkList, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, 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, useNotificationRulesCancelSnooze, useNotificationRulesCreateRule, useNotificationRulesCreateSnooze, useNotificationRulesDeleteRule, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesListRules, useNotificationRulesListSnoozes, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsCancelMediaRelocate, usePipelineAnalyticsClearTracks, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetMediaRelocateStatus, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsWipeAllAnalytics, usePipelineExecutorCacheFrameInPool, usePipelineExecutorClearDeviceOverrides, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineExecutorValidatePipeline, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerReportMotion, usePipelineRunnerRunDetailSubtree, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetMask, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingCancelRelocate, useRecordingDeleteFootprint, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlaybackManifest, useRecordingGetRelocateStatus, useRecordingGetStatus, useRecordingGetStorageUsage, useRecordingListOpsLog, useRecordingLocateSegment, useRecordingPruneFootage, useRecordingReadSegmentBytes, useRecordingRelocateFootage, useRecordingRenderClip, useRecordingRenderGif, useRecordingRescanStorage, useRecordingSetDeviceConfig, useRemoteComponent, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorRecheckNow, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreDeleteWhere, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSettingsStoreUpdateWhere, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, 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, useStreamBrokerRenderPreBufferClip, 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, useTerminalSessionClose, useTerminalSessionListProfiles, useTerminalSessionListSessions, useTerminalSessionOpenSession, useTerminalSessionResize, 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 };
47819
+ export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, CARD_MODE_MIN_COLUMNS, 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, DeviceMultiSelectField, DeviceSelectField, DeviceStepMatrix, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EVENT_KIND_ICONS, EmptyState, ErrorBox, EventKindGlyph, EventStream, FILL, FanHeroCard, FanInlineControl, FanPanel, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, FormField$1 as FormField, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GripTrack, GroupedModelSelector, 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, ModelPicker, 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, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RIGHT, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SETTING_ROW, SETTING_ROW_LABEL, SETTING_ROW_STACK_BREAKPOINT, SETTING_ROW_VALUE, SETTING_ROW_VALUE_TEXT, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, 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, agentColumnKey, allDeviceTypeFilterOptions, buildStepTreeFromSchema, childEntityId, childListName, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, ensureMfHostInit, eventKindLabel, filterDeviceOptions, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, fuzzyMatch, getClassColor, getPhaseVisual, groupAgentColumns, groupChildrenByLayout, hardwareLabel, humidifierTint, createLucideIcon as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextReconnectAction, nextSort, normalizeForSearch, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, EyeOff as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, shouldUseSingleNode, 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, 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, useBackupDeleteSchedule, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupListSchedules, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBackupUpsertSchedule, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, 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, useCoreBlocksCompile, useCoreBlocksCreate, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksSetEnabled, useCoreBlocksUpdate, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, 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, useDeviceManagerApplyDeviceSettingsPatch, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetChildren, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveContribution, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceSettingsContribution, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetDeviceStatusAggregateBatch, useDeviceManagerGetLinkedDevices, 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, useDoorbellApplyDeviceSettingsPatch, useDoorbellEvents, useDoorbellGetDeviceLiveContribution, useDoorbellGetDeviceSettingsContribution, 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, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, 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, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkList, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, 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, useNotificationRulesCancelSnooze, useNotificationRulesCreateRule, useNotificationRulesCreateSnooze, useNotificationRulesDeleteRule, useNotificationRulesGetAlarmConfig, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesListRules, useNotificationRulesListSnoozes, useNotificationRulesSetAlarmConfig, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsCancelMediaRelocate, usePipelineAnalyticsClearTracks, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetMediaRelocateStatus, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsWipeAllAnalytics, usePipelineExecutorCacheFrameInPool, usePipelineExecutorClearDeviceOverrides, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineExecutorValidatePipeline, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerReportMotion, usePipelineRunnerRunDetailSubtree, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetMask, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingCancelRelocate, useRecordingDeleteFootprint, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlaybackManifest, useRecordingGetRelocateStatus, useRecordingGetStatus, useRecordingGetStorageUsage, useRecordingListOpsLog, useRecordingLocateSegment, useRecordingPruneFootage, useRecordingReadSegmentBytes, useRecordingRelocateFootage, useRecordingRenderClip, useRecordingRenderGif, useRecordingRescanStorage, useRecordingSetDeviceConfig, useRemoteComponent, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorRecheckNow, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreDeleteWhere, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSettingsStoreUpdateWhere, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, 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, useStreamBrokerRenderPreBufferClip, 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, useTerminalSessionClose, useTerminalSessionListProfiles, useTerminalSessionListSessions, useTerminalSessionOpenSession, useTerminalSessionResize, 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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/ui-library",
3
- "version": "1.2.25",
3
+ "version": "1.2.27",
4
4
  "type": "module",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",