@camstack/ui-library 1.2.207 → 1.2.209
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/composites/extensions/AssociationSlotCard.d.ts +14 -1
- package/dist/composites/extensions/extensions-view-state.d.ts +50 -1
- package/dist/composites/index.d.ts +0 -1
- package/dist/generated/system-hooks.d.ts +10 -12
- package/dist/index.cjs +187 -48
- package/dist/index.js +183 -40
- package/package.json +1 -1
- package/dist/composites/extensions/extension-invalidation.d.ts +0 -9
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { ExtensionSlotSource, ExtensionSlotState } from '@camstack/types';
|
|
2
|
+
import { TrackedOption } from './extensions-view-state.js';
|
|
2
3
|
export interface SlotSourceListProps {
|
|
3
4
|
readonly sources: readonly ExtensionSlotSource[];
|
|
5
|
+
/** The tracked-event opt-in, when the slot carries one. */
|
|
6
|
+
readonly tracked?: readonly number[] | undefined;
|
|
4
7
|
}
|
|
5
8
|
/** The saved sources, each with its health — a bad one is shown, never hidden. */
|
|
6
|
-
export declare function SlotSourceList({ sources }: SlotSourceListProps): import("react").JSX.Element;
|
|
9
|
+
export declare function SlotSourceList({ sources, tracked }: SlotSourceListProps): import("react").JSX.Element;
|
|
7
10
|
export interface AssociationSlotCardProps {
|
|
8
11
|
readonly deviceId: number;
|
|
9
12
|
readonly row: ExtensionSlotState;
|
|
@@ -12,4 +15,14 @@ export interface AssociationSlotCardProps {
|
|
|
12
15
|
export interface ActivationLineProps {
|
|
13
16
|
readonly row: ExtensionSlotState;
|
|
14
17
|
}
|
|
18
|
+
export interface ImpliedSourceListProps {
|
|
19
|
+
readonly sources: readonly ExtensionSlotSource[];
|
|
20
|
+
readonly tracked?: readonly number[] | undefined;
|
|
21
|
+
}
|
|
22
|
+
export interface TrackedTogglesProps {
|
|
23
|
+
readonly options: readonly TrackedOption[];
|
|
24
|
+
readonly tracked: readonly number[];
|
|
25
|
+
readonly nameOf: (id: number) => string;
|
|
26
|
+
readonly onToggle: (id: number) => void;
|
|
27
|
+
}
|
|
15
28
|
export declare function AssociationSlotCard({ deviceId, row, onSaved }: AssociationSlotCardProps): import("react").JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ExtensionCandidate, ExtensionSlotCardinality, ExtensionSlotRow, ExtensionSlotState, ExtensionSlotUnreachable } from '@camstack/types';
|
|
1
|
+
import { ExtensionCandidate, ExtensionSlotCardinality, ExtensionSlotRow, ExtensionSlotState, ExtensionSlotUnreachable, ExtensionSlotValue } from '@camstack/types';
|
|
2
2
|
/** The one field of a query error this module reads. */
|
|
3
3
|
export interface ExtensionsQueryError {
|
|
4
4
|
readonly message: string;
|
|
@@ -38,3 +38,52 @@ export declare function pendingSuggestions(candidates: readonly ExtensionCandida
|
|
|
38
38
|
export declare function searchCandidates(candidates: readonly ExtensionCandidate[], draft: readonly number[], query: string): readonly ExtensionCandidate[];
|
|
39
39
|
/** Whether the draft differs from what the owner's store holds. */
|
|
40
40
|
export declare function isDirty(saved: readonly number[], draft: readonly number[]): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* The tracked-event opt-in a slot's value carries, or `undefined` when it
|
|
43
|
+
* carries none — every slot but `linked-devices`, and a `linked-devices` row
|
|
44
|
+
* from a server older than D655. `undefined` is "this owner offers no
|
|
45
|
+
* opt-in", never "nothing is opted in": the card then shows no toggle rather
|
|
46
|
+
* than a row of unticked ones it could not save.
|
|
47
|
+
*/
|
|
48
|
+
export declare function trackedOptInOf(value: ExtensionSlotValue): readonly number[] | undefined;
|
|
49
|
+
/** Flip one device's tracked-event opt-in. */
|
|
50
|
+
export declare function toggleTracked(tracked: readonly number[], deviceId: number): readonly number[];
|
|
51
|
+
/** Whether two opt-ins differ as SETS — the order carries no meaning. */
|
|
52
|
+
export declare function isTrackedDirty(saved: readonly number[], draft: readonly number[]): boolean;
|
|
53
|
+
/** Where a tracked-event toggle comes from — said next to it. */
|
|
54
|
+
export type TrackedOptionOrigin = 'pick' | 'implied' | 'not-linked';
|
|
55
|
+
/** One device the editor offers a tracked-event toggle for. */
|
|
56
|
+
export interface TrackedOption {
|
|
57
|
+
readonly deviceId: number;
|
|
58
|
+
readonly origin: TrackedOptionOrigin;
|
|
59
|
+
}
|
|
60
|
+
/** What `trackedOptions` builds the toggle list from. */
|
|
61
|
+
export interface TrackedOptionsInput {
|
|
62
|
+
/** The draft picks. */
|
|
63
|
+
readonly picks: readonly number[];
|
|
64
|
+
/** Saved picks that are not a valid source (a container, D356) — no toggle. */
|
|
65
|
+
readonly invalidPicks: readonly number[];
|
|
66
|
+
/** Linked by the owner's own structure (`impliedSources`). */
|
|
67
|
+
readonly implied: readonly number[];
|
|
68
|
+
/** The draft opt-in. */
|
|
69
|
+
readonly tracked: readonly number[];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* One toggle per device the camera links — the old section's set (D655):
|
|
73
|
+
* the valid picks, then what the owner links by structure (tree children, a
|
|
74
|
+
* picked container's child — never the container itself, D356), then every
|
|
75
|
+
* opted-in device that is linked no more, so a stored opt-in is always
|
|
76
|
+
* visible and can always be removed.
|
|
77
|
+
*/
|
|
78
|
+
export declare function trackedOptions(input: TrackedOptionsInput): readonly TrackedOption[];
|
|
79
|
+
/**
|
|
80
|
+
* The opt-in after one device is removed from the draft picks: its toggle
|
|
81
|
+
* goes with it, unless the camera still links it by structure.
|
|
82
|
+
*/
|
|
83
|
+
export declare function untrackUnpicked(tracked: readonly number[], deviceId: number, implied: readonly number[]): readonly number[];
|
|
84
|
+
/**
|
|
85
|
+
* The value a Save sends. The opt-in travels only when the owner offered one,
|
|
86
|
+
* and then WHOLE: it replaces the stored one, and the owner accepts any id it
|
|
87
|
+
* already stored, so what was read can be sent back unchanged (D655).
|
|
88
|
+
*/
|
|
89
|
+
export declare function slotWriteValue(saved: ExtensionSlotValue, deviceIds: readonly number[], tracked: readonly number[] | undefined): ExtensionSlotValue;
|
|
@@ -169,4 +169,3 @@ export * from './version-badge';
|
|
|
169
169
|
export * from './widget-panel.js';
|
|
170
170
|
export type { WidgetSlotProps } from './widget-slot';
|
|
171
171
|
export { WidgetSlot } from './widget-slot';
|
|
172
|
-
export { DEVICE_AGGREGATE_QUERY_KEY, EXTENSION_SLOTS_QUERY_KEY, invalidateExtensionSurfaces, type QueryInvalidator, } from './extensions/extension-invalidation.js';
|
|
@@ -327,6 +327,16 @@ export declare const useCoreBlocksRestart: typeof trpc.coreBlocks.restart.useMut
|
|
|
327
327
|
export declare const useCoreBlocksCompile: typeof trpc.coreBlocks.compile.useMutation;
|
|
328
328
|
/** Generated alias around `trpc.coreBlocks.getTypeDefs.useQuery`. */
|
|
329
329
|
export declare const useCoreBlocksGetTypeDefs: typeof trpc.coreBlocks.getTypeDefs.useQuery;
|
|
330
|
+
/** Generated alias around `trpc.coreBlocks.createComposition.useMutation`. */
|
|
331
|
+
export declare const useCoreBlocksCreateComposition: typeof trpc.coreBlocks.createComposition.useMutation;
|
|
332
|
+
/** Generated alias around `trpc.coreBlocks.updateComposition.useMutation`. */
|
|
333
|
+
export declare const useCoreBlocksUpdateComposition: typeof trpc.coreBlocks.updateComposition.useMutation;
|
|
334
|
+
/** Generated alias around `trpc.coreBlocks.getComposition.useQuery`. */
|
|
335
|
+
export declare const useCoreBlocksGetComposition: typeof trpc.coreBlocks.getComposition.useQuery;
|
|
336
|
+
/** Generated alias around `trpc.coreBlocks.listCompositions.useQuery`. */
|
|
337
|
+
export declare const useCoreBlocksListCompositions: typeof trpc.coreBlocks.listCompositions.useQuery;
|
|
338
|
+
/** Generated alias around `trpc.coreBlocks.validateComposition.useMutation`. */
|
|
339
|
+
export declare const useCoreBlocksValidateComposition: typeof trpc.coreBlocks.validateComposition.useMutation;
|
|
330
340
|
/** Generated alias around `trpc.cover.open.useMutation`. */
|
|
331
341
|
export declare const useCoverOpen: typeof trpc.cover.open.useMutation;
|
|
332
342
|
/** Generated alias around `trpc.cover.close.useMutation`. */
|
|
@@ -609,12 +619,6 @@ export declare const useDeviceManagerTestField: typeof trpc.deviceManager.testFi
|
|
|
609
619
|
export declare const useDeviceManagerGetDeviceStatusAggregate: typeof trpc.deviceManager.getDeviceStatusAggregate.useQuery;
|
|
610
620
|
/** Generated alias around `trpc.deviceManager.getDeviceStatusAggregateBatch.useQuery`. */
|
|
611
621
|
export declare const useDeviceManagerGetDeviceStatusAggregateBatch: typeof trpc.deviceManager.getDeviceStatusAggregateBatch.useQuery;
|
|
612
|
-
/** Generated alias around `trpc.deviceManager.getDeviceSettingsContribution.useQuery`. */
|
|
613
|
-
export declare const useDeviceManagerGetDeviceSettingsContribution: typeof trpc.deviceManager.getDeviceSettingsContribution.useQuery;
|
|
614
|
-
/** Generated alias around `trpc.deviceManager.getDeviceLiveContribution.useQuery`. */
|
|
615
|
-
export declare const useDeviceManagerGetDeviceLiveContribution: typeof trpc.deviceManager.getDeviceLiveContribution.useQuery;
|
|
616
|
-
/** Generated alias around `trpc.deviceManager.applyDeviceSettingsPatch.useMutation`. */
|
|
617
|
-
export declare const useDeviceManagerApplyDeviceSettingsPatch: typeof trpc.deviceManager.applyDeviceSettingsPatch.useMutation;
|
|
618
622
|
/** Generated alias around `trpc.deviceOps.getStreamSources.useQuery`. */
|
|
619
623
|
export declare const useDeviceOpsGetStreamSources: typeof trpc.deviceOps.getStreamSources.useQuery;
|
|
620
624
|
/** Generated alias around `trpc.deviceOps.getConfigEntries.useQuery`. */
|
|
@@ -669,12 +673,6 @@ export declare const useDeviceStateSetCapSlice: typeof trpc.deviceState.setCapSl
|
|
|
669
673
|
export declare const useDeviceStatusGetStatus: typeof trpc.deviceStatus.getStatus.useQuery;
|
|
670
674
|
/** Generated alias around `trpc.doorbell.getStatus.useQuery`. */
|
|
671
675
|
export declare const useDoorbellGetStatus: typeof trpc.doorbell.getStatus.useQuery;
|
|
672
|
-
/** Generated alias around `trpc.doorbell.getDeviceSettingsContribution.useQuery`. */
|
|
673
|
-
export declare const useDoorbellGetDeviceSettingsContribution: typeof trpc.doorbell.getDeviceSettingsContribution.useQuery;
|
|
674
|
-
/** Generated alias around `trpc.doorbell.getDeviceLiveContribution.useQuery`. */
|
|
675
|
-
export declare const useDoorbellGetDeviceLiveContribution: typeof trpc.doorbell.getDeviceLiveContribution.useQuery;
|
|
676
|
-
/** Generated alias around `trpc.doorbell.applyDeviceSettingsPatch.useMutation`. */
|
|
677
|
-
export declare const useDoorbellApplyDeviceSettingsPatch: typeof trpc.doorbell.applyDeviceSettingsPatch.useMutation;
|
|
678
676
|
/** Generated alias around `trpc.enumSensor.getStatus.useQuery`. */
|
|
679
677
|
export declare const useEnumSensorGetStatus: typeof trpc.enumSensor.getStatus.useQuery;
|
|
680
678
|
/** Generated alias around `trpc.eventEmitter.getStatus.useQuery`. */
|
package/dist/index.cjs
CHANGED
|
@@ -6846,6 +6846,16 @@ var useCoreBlocksRestart = trpc.coreBlocks.restart.useMutation;
|
|
|
6846
6846
|
var useCoreBlocksCompile = trpc.coreBlocks.compile.useMutation;
|
|
6847
6847
|
/** Generated alias around `trpc.coreBlocks.getTypeDefs.useQuery`. */
|
|
6848
6848
|
var useCoreBlocksGetTypeDefs = trpc.coreBlocks.getTypeDefs.useQuery;
|
|
6849
|
+
/** Generated alias around `trpc.coreBlocks.createComposition.useMutation`. */
|
|
6850
|
+
var useCoreBlocksCreateComposition = trpc.coreBlocks.createComposition.useMutation;
|
|
6851
|
+
/** Generated alias around `trpc.coreBlocks.updateComposition.useMutation`. */
|
|
6852
|
+
var useCoreBlocksUpdateComposition = trpc.coreBlocks.updateComposition.useMutation;
|
|
6853
|
+
/** Generated alias around `trpc.coreBlocks.getComposition.useQuery`. */
|
|
6854
|
+
var useCoreBlocksGetComposition = trpc.coreBlocks.getComposition.useQuery;
|
|
6855
|
+
/** Generated alias around `trpc.coreBlocks.listCompositions.useQuery`. */
|
|
6856
|
+
var useCoreBlocksListCompositions = trpc.coreBlocks.listCompositions.useQuery;
|
|
6857
|
+
/** Generated alias around `trpc.coreBlocks.validateComposition.useMutation`. */
|
|
6858
|
+
var useCoreBlocksValidateComposition = trpc.coreBlocks.validateComposition.useMutation;
|
|
6849
6859
|
/** Generated alias around `trpc.cover.open.useMutation`. */
|
|
6850
6860
|
var useCoverOpen = trpc.cover.open.useMutation;
|
|
6851
6861
|
/** Generated alias around `trpc.cover.close.useMutation`. */
|
|
@@ -7128,12 +7138,6 @@ var useDeviceManagerTestField = trpc.deviceManager.testField.useMutation;
|
|
|
7128
7138
|
var useDeviceManagerGetDeviceStatusAggregate = trpc.deviceManager.getDeviceStatusAggregate.useQuery;
|
|
7129
7139
|
/** Generated alias around `trpc.deviceManager.getDeviceStatusAggregateBatch.useQuery`. */
|
|
7130
7140
|
var useDeviceManagerGetDeviceStatusAggregateBatch = trpc.deviceManager.getDeviceStatusAggregateBatch.useQuery;
|
|
7131
|
-
/** Generated alias around `trpc.deviceManager.getDeviceSettingsContribution.useQuery`. */
|
|
7132
|
-
var useDeviceManagerGetDeviceSettingsContribution = trpc.deviceManager.getDeviceSettingsContribution.useQuery;
|
|
7133
|
-
/** Generated alias around `trpc.deviceManager.getDeviceLiveContribution.useQuery`. */
|
|
7134
|
-
var useDeviceManagerGetDeviceLiveContribution = trpc.deviceManager.getDeviceLiveContribution.useQuery;
|
|
7135
|
-
/** Generated alias around `trpc.deviceManager.applyDeviceSettingsPatch.useMutation`. */
|
|
7136
|
-
var useDeviceManagerApplyDeviceSettingsPatch = trpc.deviceManager.applyDeviceSettingsPatch.useMutation;
|
|
7137
7141
|
/** Generated alias around `trpc.deviceOps.getStreamSources.useQuery`. */
|
|
7138
7142
|
var useDeviceOpsGetStreamSources = trpc.deviceOps.getStreamSources.useQuery;
|
|
7139
7143
|
/** Generated alias around `trpc.deviceOps.getConfigEntries.useQuery`. */
|
|
@@ -7188,12 +7192,6 @@ var useDeviceStateSetCapSlice = trpc.deviceState.setCapSlice.useMutation;
|
|
|
7188
7192
|
var useDeviceStatusGetStatus = trpc.deviceStatus.getStatus.useQuery;
|
|
7189
7193
|
/** Generated alias around `trpc.doorbell.getStatus.useQuery`. */
|
|
7190
7194
|
var useDoorbellGetStatus = trpc.doorbell.getStatus.useQuery;
|
|
7191
|
-
/** Generated alias around `trpc.doorbell.getDeviceSettingsContribution.useQuery`. */
|
|
7192
|
-
var useDoorbellGetDeviceSettingsContribution = trpc.doorbell.getDeviceSettingsContribution.useQuery;
|
|
7193
|
-
/** Generated alias around `trpc.doorbell.getDeviceLiveContribution.useQuery`. */
|
|
7194
|
-
var useDoorbellGetDeviceLiveContribution = trpc.doorbell.getDeviceLiveContribution.useQuery;
|
|
7195
|
-
/** Generated alias around `trpc.doorbell.applyDeviceSettingsPatch.useMutation`. */
|
|
7196
|
-
var useDoorbellApplyDeviceSettingsPatch = trpc.doorbell.applyDeviceSettingsPatch.useMutation;
|
|
7197
7195
|
/** Generated alias around `trpc.enumSensor.getStatus.useQuery`. */
|
|
7198
7196
|
var useEnumSensorGetStatus = trpc.enumSensor.getStatus.useQuery;
|
|
7199
7197
|
/** Generated alias around `trpc.eventEmitter.getStatus.useQuery`. */
|
|
@@ -12327,8 +12325,8 @@ function selectedDeviceOptions(options, selected) {
|
|
|
12327
12325
|
* `device-select-filter.ts`). No server-computed option list is involved —
|
|
12328
12326
|
* the form field carries only the filter. Value(s) are device ids as strings.
|
|
12329
12327
|
*
|
|
12330
|
-
* The multi variant
|
|
12331
|
-
*
|
|
12328
|
+
* The multi variant is a searchable combobox (removable chips + typeahead
|
|
12329
|
+
* dropdown); the single variant is a native
|
|
12332
12330
|
* select. Both are inline in ui-library (like `node-select`) so any host that
|
|
12333
12331
|
* renders the shared form field gets them without extra registration.
|
|
12334
12332
|
*/
|
|
@@ -20916,16 +20914,6 @@ function ClipsSection({ deviceId }) {
|
|
|
20916
20914
|
});
|
|
20917
20915
|
}
|
|
20918
20916
|
//#endregion
|
|
20919
|
-
//#region src/composites/extensions/extension-invalidation.ts
|
|
20920
|
-
/** tRPC v11 query-key prefix of `deviceManager.getDeviceAggregate`. */
|
|
20921
|
-
var DEVICE_AGGREGATE_QUERY_KEY = [["deviceManager", "getDeviceAggregate"]];
|
|
20922
|
-
/** tRPC v11 query-key prefix of `deviceExtension.listSlots`. */
|
|
20923
|
-
var EXTENSION_SLOTS_QUERY_KEY = [["deviceExtension", "listSlots"]];
|
|
20924
|
-
/** Re-read both surfaces over the linked-devices / doorbell stores. */
|
|
20925
|
-
async function invalidateExtensionSurfaces(client) {
|
|
20926
|
-
await Promise.all([client.invalidateQueries({ queryKey: DEVICE_AGGREGATE_QUERY_KEY }), client.invalidateQueries({ queryKey: EXTENSION_SLOTS_QUERY_KEY })]);
|
|
20927
|
-
}
|
|
20928
|
-
//#endregion
|
|
20929
20917
|
//#region src/composites/extensions/extensions-view-state.ts
|
|
20930
20918
|
/**
|
|
20931
20919
|
* What the Extensions section may CLAIM, from what `listSlots` answered
|
|
@@ -20990,6 +20978,70 @@ function searchCandidates(candidates, draft, query) {
|
|
|
20990
20978
|
function isDirty(saved, draft) {
|
|
20991
20979
|
return saved.length !== draft.length || saved.some((id, i) => draft[i] !== id);
|
|
20992
20980
|
}
|
|
20981
|
+
/**
|
|
20982
|
+
* The tracked-event opt-in a slot's value carries, or `undefined` when it
|
|
20983
|
+
* carries none — every slot but `linked-devices`, and a `linked-devices` row
|
|
20984
|
+
* from a server older than D655. `undefined` is "this owner offers no
|
|
20985
|
+
* opt-in", never "nothing is opted in": the card then shows no toggle rather
|
|
20986
|
+
* than a row of unticked ones it could not save.
|
|
20987
|
+
*/
|
|
20988
|
+
function trackedOptInOf(value) {
|
|
20989
|
+
return value.slot === "linked-devices" ? value.trackedDeviceIds : void 0;
|
|
20990
|
+
}
|
|
20991
|
+
/** Flip one device's tracked-event opt-in. */
|
|
20992
|
+
function toggleTracked(tracked, deviceId) {
|
|
20993
|
+
return tracked.includes(deviceId) ? tracked.filter((id) => id !== deviceId) : [...tracked, deviceId];
|
|
20994
|
+
}
|
|
20995
|
+
/** Whether two opt-ins differ as SETS — the order carries no meaning. */
|
|
20996
|
+
function isTrackedDirty(saved, draft) {
|
|
20997
|
+
return saved.length !== draft.length || saved.some((id) => !draft.includes(id));
|
|
20998
|
+
}
|
|
20999
|
+
/**
|
|
21000
|
+
* One toggle per device the camera links — the old section's set (D655):
|
|
21001
|
+
* the valid picks, then what the owner links by structure (tree children, a
|
|
21002
|
+
* picked container's child — never the container itself, D356), then every
|
|
21003
|
+
* opted-in device that is linked no more, so a stored opt-in is always
|
|
21004
|
+
* visible and can always be removed.
|
|
21005
|
+
*/
|
|
21006
|
+
function trackedOptions(input) {
|
|
21007
|
+
const out = [];
|
|
21008
|
+
const seen = /* @__PURE__ */ new Set();
|
|
21009
|
+
const add = (deviceId, origin) => {
|
|
21010
|
+
if (seen.has(deviceId)) return;
|
|
21011
|
+
seen.add(deviceId);
|
|
21012
|
+
out.push({
|
|
21013
|
+
deviceId,
|
|
21014
|
+
origin
|
|
21015
|
+
});
|
|
21016
|
+
};
|
|
21017
|
+
for (const id of input.picks) if (!input.invalidPicks.includes(id)) add(id, "pick");
|
|
21018
|
+
for (const id of input.implied) add(id, "implied");
|
|
21019
|
+
for (const id of input.tracked) add(id, "not-linked");
|
|
21020
|
+
return out;
|
|
21021
|
+
}
|
|
21022
|
+
/**
|
|
21023
|
+
* The opt-in after one device is removed from the draft picks: its toggle
|
|
21024
|
+
* goes with it, unless the camera still links it by structure.
|
|
21025
|
+
*/
|
|
21026
|
+
function untrackUnpicked(tracked, deviceId, implied) {
|
|
21027
|
+
return implied.includes(deviceId) ? tracked : tracked.filter((id) => id !== deviceId);
|
|
21028
|
+
}
|
|
21029
|
+
/**
|
|
21030
|
+
* The value a Save sends. The opt-in travels only when the owner offered one,
|
|
21031
|
+
* and then WHOLE: it replaces the stored one, and the owner accepts any id it
|
|
21032
|
+
* already stored, so what was read can be sent back unchanged (D655).
|
|
21033
|
+
*/
|
|
21034
|
+
function slotWriteValue(saved, deviceIds, tracked) {
|
|
21035
|
+
if (saved.slot === "linked-devices" && tracked !== void 0) return {
|
|
21036
|
+
slot: "linked-devices",
|
|
21037
|
+
deviceIds: [...deviceIds],
|
|
21038
|
+
trackedDeviceIds: [...tracked]
|
|
21039
|
+
};
|
|
21040
|
+
return {
|
|
21041
|
+
slot: saved.slot,
|
|
21042
|
+
deviceIds: [...deviceIds]
|
|
21043
|
+
};
|
|
21044
|
+
}
|
|
20993
21045
|
//#endregion
|
|
20994
21046
|
//#region src/composites/extensions/AssociationSlotCard.tsx
|
|
20995
21047
|
/**
|
|
@@ -21006,6 +21058,11 @@ function isDirty(saved, draft) {
|
|
|
21006
21058
|
* shown with its reason and never silently dropped from the draft.
|
|
21007
21059
|
* - A gate owned by ANOTHER authority (the doorbell wrapper's binding) is
|
|
21008
21060
|
* shown read-only, naming that authority (D62).
|
|
21061
|
+
* - A slot whose value carries a tracked-event opt-in (`linked-devices`,
|
|
21062
|
+
* D655) gets one toggle per LINKED device — the picks, what the owner links
|
|
21063
|
+
* by structure (`impliedSources`: tree children, never a container, D356)
|
|
21064
|
+
* and any stored opt-in no longer linked, so each can be removed — saved
|
|
21065
|
+
* with the picks, whole.
|
|
21009
21066
|
*/
|
|
21010
21067
|
var HEALTH_LABEL = {
|
|
21011
21068
|
ok: "OK",
|
|
@@ -21020,7 +21077,7 @@ var HEALTH_VARIANT = {
|
|
|
21020
21077
|
unavailable: "warning"
|
|
21021
21078
|
};
|
|
21022
21079
|
/** The saved sources, each with its health — a bad one is shown, never hidden. */
|
|
21023
|
-
function SlotSourceList({ sources }) {
|
|
21080
|
+
function SlotSourceList({ sources, tracked }) {
|
|
21024
21081
|
if (sources.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
21025
21082
|
className: "text-[11px] text-foreground-subtle italic",
|
|
21026
21083
|
children: "No devices picked."
|
|
@@ -21038,6 +21095,10 @@ function SlotSourceList({ sources }) {
|
|
|
21038
21095
|
variant: HEALTH_VARIANT[s.health],
|
|
21039
21096
|
children: HEALTH_LABEL[s.health]
|
|
21040
21097
|
}),
|
|
21098
|
+
tracked?.includes(s.deviceId) === true && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Badge, {
|
|
21099
|
+
variant: "info",
|
|
21100
|
+
children: "Tracked events"
|
|
21101
|
+
}),
|
|
21041
21102
|
s.detail !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
21042
21103
|
className: "text-[10px] text-foreground-subtle",
|
|
21043
21104
|
children: s.detail
|
|
@@ -21061,11 +21122,75 @@ function ActivationLine({ row }) {
|
|
|
21061
21122
|
]
|
|
21062
21123
|
});
|
|
21063
21124
|
}
|
|
21125
|
+
/**
|
|
21126
|
+
* What the owner links by structure — tree children, a picked container's
|
|
21127
|
+
* child (D356). Shown, never editable as a pick: removing one is not the
|
|
21128
|
+
* editor's to do.
|
|
21129
|
+
*/
|
|
21130
|
+
function ImpliedSourceList({ sources, tracked }) {
|
|
21131
|
+
if (sources.length === 0) return null;
|
|
21132
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
21133
|
+
className: "flex flex-col gap-1",
|
|
21134
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
21135
|
+
className: "text-[10px] text-foreground-subtle",
|
|
21136
|
+
children: "Always linked (device tree):"
|
|
21137
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
|
|
21138
|
+
"aria-label": "Always linked",
|
|
21139
|
+
className: "flex flex-col gap-1",
|
|
21140
|
+
children: sources.map((s) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
|
|
21141
|
+
className: "flex flex-wrap items-center gap-2 text-[11px]",
|
|
21142
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
21143
|
+
className: "text-foreground",
|
|
21144
|
+
children: s.name ?? `Device ${s.deviceId}`
|
|
21145
|
+
}), tracked?.includes(s.deviceId) === true && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Badge, {
|
|
21146
|
+
variant: "info",
|
|
21147
|
+
children: "Tracked events"
|
|
21148
|
+
})]
|
|
21149
|
+
}, s.deviceId))
|
|
21150
|
+
})]
|
|
21151
|
+
});
|
|
21152
|
+
}
|
|
21153
|
+
var ORIGIN_NOTE = {
|
|
21154
|
+
pick: null,
|
|
21155
|
+
implied: "always linked",
|
|
21156
|
+
"not-linked": "not linked any more — untick to remove"
|
|
21157
|
+
};
|
|
21158
|
+
/** One opt-in toggle per linked device: does it produce tracked events here? */
|
|
21159
|
+
function TrackedToggles({ options, tracked, nameOf, onToggle }) {
|
|
21160
|
+
if (options.length === 0) return null;
|
|
21161
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("fieldset", {
|
|
21162
|
+
className: "flex flex-col gap-1",
|
|
21163
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("legend", {
|
|
21164
|
+
className: "text-[10px] text-foreground-subtle",
|
|
21165
|
+
children: "Produce tracked events on this camera (opt-in):"
|
|
21166
|
+
}), options.map(({ deviceId: id, origin }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
21167
|
+
className: "flex items-center gap-2 text-[11px] text-foreground",
|
|
21168
|
+
children: [
|
|
21169
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
21170
|
+
type: "checkbox",
|
|
21171
|
+
"aria-label": `Tracked events from ${nameOf(id)}`,
|
|
21172
|
+
checked: tracked.includes(id),
|
|
21173
|
+
onChange: () => onToggle(id)
|
|
21174
|
+
}),
|
|
21175
|
+
nameOf(id),
|
|
21176
|
+
ORIGIN_NOTE[origin] !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
21177
|
+
className: "text-[10px] text-foreground-subtle",
|
|
21178
|
+
children: ["· ", ORIGIN_NOTE[origin]]
|
|
21179
|
+
})
|
|
21180
|
+
]
|
|
21181
|
+
}, id))]
|
|
21182
|
+
});
|
|
21183
|
+
}
|
|
21064
21184
|
function AssociationSlotCard({ deviceId, row, onSaved }) {
|
|
21065
21185
|
const descriptor = _camstack_types.EXTENSION_SLOTS[row.slot].descriptor;
|
|
21066
21186
|
const saved = row.value.deviceIds;
|
|
21187
|
+
const savedTracked = trackedOptInOf(row.value);
|
|
21188
|
+
const implied = row.impliedSources ?? [];
|
|
21189
|
+
const impliedIds = implied.map((s) => s.deviceId);
|
|
21190
|
+
const invalidPicks = row.sources.filter((s) => s.health === "unavailable").map((s) => s.deviceId);
|
|
21067
21191
|
const [editing, setEditing] = (0, react$1.useState)(false);
|
|
21068
21192
|
const [draft, setDraft] = (0, react$1.useState)(saved);
|
|
21193
|
+
const [draftTracked, setDraftTracked] = (0, react$1.useState)(savedTracked ?? []);
|
|
21069
21194
|
const [search, setSearch] = (0, react$1.useState)("");
|
|
21070
21195
|
const [refusal, setRefusal] = (0, react$1.useState)(null);
|
|
21071
21196
|
const candidatesQuery = useDeviceExtensionListCandidates({
|
|
@@ -21073,11 +21198,15 @@ function AssociationSlotCard({ deviceId, row, onSaved }) {
|
|
|
21073
21198
|
slotRef: row.slotRef
|
|
21074
21199
|
}, { enabled: editing });
|
|
21075
21200
|
const setSlot = useDeviceExtensionSetSlot();
|
|
21076
|
-
const queryClient = (0, _tanstack_react_query.useQueryClient)();
|
|
21077
21201
|
const candidates = candidatesQuery.data?.candidates ?? [];
|
|
21078
|
-
const nameOf = (id) => candidates.find((c) => c.deviceId === id)?.name ?? row.sources.find((s) => s.deviceId === id)?.name ?? `Device ${id}`;
|
|
21202
|
+
const nameOf = (id) => candidates.find((c) => c.deviceId === id)?.name ?? row.sources.find((s) => s.deviceId === id)?.name ?? implied.find((s) => s.deviceId === id)?.name ?? `Device ${id}`;
|
|
21203
|
+
const removePick = (id) => {
|
|
21204
|
+
setDraft(togglePick(draft, id, descriptor.cardinality));
|
|
21205
|
+
setDraftTracked(untrackUnpicked(draftTracked, id, impliedIds));
|
|
21206
|
+
};
|
|
21079
21207
|
const startEditing = () => {
|
|
21080
21208
|
setDraft(saved);
|
|
21209
|
+
setDraftTracked(savedTracked ?? []);
|
|
21081
21210
|
setRefusal(null);
|
|
21082
21211
|
setEditing(true);
|
|
21083
21212
|
};
|
|
@@ -21087,13 +21216,9 @@ function AssociationSlotCard({ deviceId, row, onSaved }) {
|
|
|
21087
21216
|
await setSlot.mutateAsync({
|
|
21088
21217
|
deviceId,
|
|
21089
21218
|
slotRef: row.slotRef,
|
|
21090
|
-
value:
|
|
21091
|
-
slot: row.value.slot,
|
|
21092
|
-
deviceIds: [...draft]
|
|
21093
|
-
}
|
|
21219
|
+
value: slotWriteValue(row.value, draft, savedTracked === void 0 ? void 0 : draftTracked)
|
|
21094
21220
|
});
|
|
21095
21221
|
setEditing(false);
|
|
21096
|
-
await invalidateExtensionSurfaces(queryClient);
|
|
21097
21222
|
onSaved();
|
|
21098
21223
|
} catch (err) {
|
|
21099
21224
|
setRefusal(err instanceof Error ? err.message : String(err));
|
|
@@ -21130,7 +21255,14 @@ function AssociationSlotCard({ deviceId, row, onSaved }) {
|
|
|
21130
21255
|
})]
|
|
21131
21256
|
}),
|
|
21132
21257
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ActivationLine, { row }),
|
|
21133
|
-
!editing && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SlotSourceList, {
|
|
21258
|
+
!editing && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SlotSourceList, {
|
|
21259
|
+
sources: row.sources,
|
|
21260
|
+
tracked: savedTracked
|
|
21261
|
+
}),
|
|
21262
|
+
!editing && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ImpliedSourceList, {
|
|
21263
|
+
sources: implied,
|
|
21264
|
+
tracked: savedTracked
|
|
21265
|
+
}),
|
|
21134
21266
|
editing && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
21135
21267
|
className: "flex flex-col gap-2",
|
|
21136
21268
|
children: [
|
|
@@ -21140,7 +21272,7 @@ function AssociationSlotCard({ deviceId, row, onSaved }) {
|
|
|
21140
21272
|
children: draft.map((id) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
21141
21273
|
type: "button",
|
|
21142
21274
|
"aria-label": `Remove ${nameOf(id)}`,
|
|
21143
|
-
onClick: () =>
|
|
21275
|
+
onClick: () => removePick(id),
|
|
21144
21276
|
className: "inline-flex items-center gap-1 rounded-full bg-primary/15 px-2 py-0.5 text-[11px] text-foreground",
|
|
21145
21277
|
children: [nameOf(id), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(X, { className: "h-3 w-3" })]
|
|
21146
21278
|
}) }, id))
|
|
@@ -21210,6 +21342,17 @@ function AssociationSlotCard({ deviceId, row, onSaved }) {
|
|
|
21210
21342
|
]
|
|
21211
21343
|
}) }, c.deviceId))
|
|
21212
21344
|
}),
|
|
21345
|
+
savedTracked !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TrackedToggles, {
|
|
21346
|
+
options: trackedOptions({
|
|
21347
|
+
picks: draft,
|
|
21348
|
+
invalidPicks,
|
|
21349
|
+
implied: impliedIds,
|
|
21350
|
+
tracked: draftTracked
|
|
21351
|
+
}),
|
|
21352
|
+
tracked: draftTracked,
|
|
21353
|
+
nameOf,
|
|
21354
|
+
onToggle: (id) => setDraftTracked(toggleTracked(draftTracked, id))
|
|
21355
|
+
}),
|
|
21213
21356
|
refusal !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", {
|
|
21214
21357
|
role: "alert",
|
|
21215
21358
|
className: "text-[11px] text-danger break-words",
|
|
@@ -21224,7 +21367,7 @@ function AssociationSlotCard({ deviceId, row, onSaved }) {
|
|
|
21224
21367
|
children: "Cancel"
|
|
21225
21368
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
|
|
21226
21369
|
size: "sm",
|
|
21227
|
-
disabled: !isDirty(saved, draft) || setSlot.isPending,
|
|
21370
|
+
disabled: !(isDirty(saved, draft) || savedTracked !== void 0 && isTrackedDirty(savedTracked, draftTracked)) || setSlot.isPending,
|
|
21228
21371
|
onClick: () => void save(),
|
|
21229
21372
|
children: "Save"
|
|
21230
21373
|
})]
|
|
@@ -21246,11 +21389,11 @@ function AssociationSlotCard({ deviceId, row, onSaved }) {
|
|
|
21246
21389
|
* section (D14). The panel STORES NOTHING: every card is one row of
|
|
21247
21390
|
* `device-extension.listSlots`, read by the slot's owner from the store it
|
|
21248
21391
|
* already has, and every save is `setSlot`, written by that owner through its
|
|
21249
|
-
* existing path.
|
|
21250
|
-
*
|
|
21251
|
-
*
|
|
21392
|
+
* existing path. It is the only editor of what it shows: the hand-written
|
|
21393
|
+
* "Linked devices" and "Virtual doorbell" sections it replaced were retired
|
|
21394
|
+
* once the live read matched them on every measured camera (D655).
|
|
21252
21395
|
*
|
|
21253
|
-
*
|
|
21396
|
+
* It renders ASSOCIATION cards only (a device multiselect). A `graft`
|
|
21254
21397
|
* slot (slice 2) gets a read-only card here until its editor exists.
|
|
21255
21398
|
*
|
|
21256
21399
|
* Absence is claimed only from an answer (D315): pending, failed and empty
|
|
@@ -56493,7 +56636,6 @@ exports.CoverInlineControl = CoverInlineControl;
|
|
|
56493
56636
|
exports.CoverPanel = CoverPanel;
|
|
56494
56637
|
exports.CustomFieldRenderersProvider = CustomFieldRenderersProvider;
|
|
56495
56638
|
exports.DEFAULT_COLOR = DEFAULT_COLOR;
|
|
56496
|
-
exports.DEVICE_AGGREGATE_QUERY_KEY = DEVICE_AGGREGATE_QUERY_KEY;
|
|
56497
56639
|
exports.DEVICE_COLUMNS = DEVICE_COLUMNS;
|
|
56498
56640
|
exports.DEVICE_LIST_PAGE_SIZE_KEY = DEVICE_LIST_PAGE_SIZE_KEY;
|
|
56499
56641
|
exports.DEVICE_LIST_PAGE_SIZE_OPTIONS = DEVICE_LIST_PAGE_SIZE_OPTIONS;
|
|
@@ -56537,7 +56679,6 @@ exports.DummyHeroCard = DummyHeroCard;
|
|
|
56537
56679
|
exports.DummyInline = DummyInline;
|
|
56538
56680
|
exports.EMPTY_DATA_TABLE_FILTER = EMPTY_DATA_TABLE_FILTER;
|
|
56539
56681
|
exports.EVENT_KIND_ICONS = EVENT_KIND_ICONS;
|
|
56540
|
-
exports.EXTENSION_SLOTS_QUERY_KEY = EXTENSION_SLOTS_QUERY_KEY;
|
|
56541
56682
|
exports.EmptyState = EmptyState;
|
|
56542
56683
|
exports.ErrorBox = ErrorBox;
|
|
56543
56684
|
exports.EventKindGlyph = EventKindGlyph;
|
|
@@ -56780,7 +56921,6 @@ exports.hubWsUrl = hubWsUrl;
|
|
|
56780
56921
|
exports.humanDuration = humanDuration;
|
|
56781
56922
|
exports.humidifierTint = humidifierTint;
|
|
56782
56923
|
exports.initialScrubState = initialScrubState;
|
|
56783
|
-
exports.invalidateExtensionSurfaces = invalidateExtensionSurfaces;
|
|
56784
56924
|
exports.isAbsentProvider = isAbsentProvider;
|
|
56785
56925
|
exports.isAbsentProvider$1 = isAbsentProvider;
|
|
56786
56926
|
exports.isDataTableFilterActive = isDataTableFilterActive;
|
|
@@ -57002,13 +57142,18 @@ exports.useControlGetStatus = useControlGetStatus;
|
|
|
57002
57142
|
exports.useControlSetValue = useControlSetValue;
|
|
57003
57143
|
exports.useCoreBlocksCompile = useCoreBlocksCompile;
|
|
57004
57144
|
exports.useCoreBlocksCreate = useCoreBlocksCreate;
|
|
57145
|
+
exports.useCoreBlocksCreateComposition = useCoreBlocksCreateComposition;
|
|
57005
57146
|
exports.useCoreBlocksDelete = useCoreBlocksDelete;
|
|
57006
57147
|
exports.useCoreBlocksGet = useCoreBlocksGet;
|
|
57148
|
+
exports.useCoreBlocksGetComposition = useCoreBlocksGetComposition;
|
|
57007
57149
|
exports.useCoreBlocksGetTypeDefs = useCoreBlocksGetTypeDefs;
|
|
57008
57150
|
exports.useCoreBlocksList = useCoreBlocksList;
|
|
57151
|
+
exports.useCoreBlocksListCompositions = useCoreBlocksListCompositions;
|
|
57009
57152
|
exports.useCoreBlocksRestart = useCoreBlocksRestart;
|
|
57010
57153
|
exports.useCoreBlocksSetEnabled = useCoreBlocksSetEnabled;
|
|
57011
57154
|
exports.useCoreBlocksUpdate = useCoreBlocksUpdate;
|
|
57155
|
+
exports.useCoreBlocksUpdateComposition = useCoreBlocksUpdateComposition;
|
|
57156
|
+
exports.useCoreBlocksValidateComposition = useCoreBlocksValidateComposition;
|
|
57012
57157
|
exports.useCoverClose = useCoverClose;
|
|
57013
57158
|
exports.useCoverGetStatus = useCoverGetStatus;
|
|
57014
57159
|
exports.useCoverOpen = useCoverOpen;
|
|
@@ -57086,7 +57231,6 @@ exports.useDeviceManagerAdoptionRelease = useDeviceManagerAdoptionRelease;
|
|
|
57086
57231
|
exports.useDeviceManagerAdoptionResync = useDeviceManagerAdoptionResync;
|
|
57087
57232
|
exports.useDeviceManagerAdoptionStartJob = useDeviceManagerAdoptionStartJob;
|
|
57088
57233
|
exports.useDeviceManagerAllocateDeviceId = useDeviceManagerAllocateDeviceId;
|
|
57089
|
-
exports.useDeviceManagerApplyDeviceSettingsPatch = useDeviceManagerApplyDeviceSettingsPatch;
|
|
57090
57234
|
exports.useDeviceManagerApplyInitialMeta = useDeviceManagerApplyInitialMeta;
|
|
57091
57235
|
exports.useDeviceManagerCreateDevice = useDeviceManagerCreateDevice;
|
|
57092
57236
|
exports.useDeviceManagerDisable = useDeviceManagerDisable;
|
|
@@ -57104,10 +57248,8 @@ exports.useDeviceManagerGetConfigSchema = useDeviceManagerGetConfigSchema;
|
|
|
57104
57248
|
exports.useDeviceManagerGetCreationSchema = useDeviceManagerGetCreationSchema;
|
|
57105
57249
|
exports.useDeviceManagerGetDevice = useDeviceManagerGetDevice;
|
|
57106
57250
|
exports.useDeviceManagerGetDeviceAggregate = useDeviceManagerGetDeviceAggregate;
|
|
57107
|
-
exports.useDeviceManagerGetDeviceLiveContribution = useDeviceManagerGetDeviceLiveContribution;
|
|
57108
57251
|
exports.useDeviceManagerGetDeviceLiveInfoAggregate = useDeviceManagerGetDeviceLiveInfoAggregate;
|
|
57109
57252
|
exports.useDeviceManagerGetDeviceSettingsAggregate = useDeviceManagerGetDeviceSettingsAggregate;
|
|
57110
|
-
exports.useDeviceManagerGetDeviceSettingsContribution = useDeviceManagerGetDeviceSettingsContribution;
|
|
57111
57253
|
exports.useDeviceManagerGetDeviceStatusAggregate = useDeviceManagerGetDeviceStatusAggregate;
|
|
57112
57254
|
exports.useDeviceManagerGetDeviceStatusAggregateBatch = useDeviceManagerGetDeviceStatusAggregateBatch;
|
|
57113
57255
|
exports.useDeviceManagerGetLinkedDevices = useDeviceManagerGetLinkedDevices;
|
|
@@ -57203,10 +57345,7 @@ exports.useDeviceStateSlice$1 = useDeviceStateSlice;
|
|
|
57203
57345
|
exports.useDeviceStatusGetStatus = useDeviceStatusGetStatus;
|
|
57204
57346
|
exports.useDeviceWebrtc = useDeviceWebrtc;
|
|
57205
57347
|
exports.useDevices = useDevices;
|
|
57206
|
-
exports.useDoorbellApplyDeviceSettingsPatch = useDoorbellApplyDeviceSettingsPatch;
|
|
57207
57348
|
exports.useDoorbellEvents = useDoorbellEvents;
|
|
57208
|
-
exports.useDoorbellGetDeviceLiveContribution = useDoorbellGetDeviceLiveContribution;
|
|
57209
|
-
exports.useDoorbellGetDeviceSettingsContribution = useDoorbellGetDeviceSettingsContribution;
|
|
57210
57349
|
exports.useDoorbellGetStatus = useDoorbellGetStatus;
|
|
57211
57350
|
exports.useEnumSensorGetStatus = useEnumSensorGetStatus;
|
|
57212
57351
|
exports.useEventEmitterGetStatus = useEventEmitterGetStatus;
|
package/dist/index.js
CHANGED
|
@@ -6822,6 +6822,16 @@ var useCoreBlocksRestart = trpc.coreBlocks.restart.useMutation;
|
|
|
6822
6822
|
var useCoreBlocksCompile = trpc.coreBlocks.compile.useMutation;
|
|
6823
6823
|
/** Generated alias around `trpc.coreBlocks.getTypeDefs.useQuery`. */
|
|
6824
6824
|
var useCoreBlocksGetTypeDefs = trpc.coreBlocks.getTypeDefs.useQuery;
|
|
6825
|
+
/** Generated alias around `trpc.coreBlocks.createComposition.useMutation`. */
|
|
6826
|
+
var useCoreBlocksCreateComposition = trpc.coreBlocks.createComposition.useMutation;
|
|
6827
|
+
/** Generated alias around `trpc.coreBlocks.updateComposition.useMutation`. */
|
|
6828
|
+
var useCoreBlocksUpdateComposition = trpc.coreBlocks.updateComposition.useMutation;
|
|
6829
|
+
/** Generated alias around `trpc.coreBlocks.getComposition.useQuery`. */
|
|
6830
|
+
var useCoreBlocksGetComposition = trpc.coreBlocks.getComposition.useQuery;
|
|
6831
|
+
/** Generated alias around `trpc.coreBlocks.listCompositions.useQuery`. */
|
|
6832
|
+
var useCoreBlocksListCompositions = trpc.coreBlocks.listCompositions.useQuery;
|
|
6833
|
+
/** Generated alias around `trpc.coreBlocks.validateComposition.useMutation`. */
|
|
6834
|
+
var useCoreBlocksValidateComposition = trpc.coreBlocks.validateComposition.useMutation;
|
|
6825
6835
|
/** Generated alias around `trpc.cover.open.useMutation`. */
|
|
6826
6836
|
var useCoverOpen = trpc.cover.open.useMutation;
|
|
6827
6837
|
/** Generated alias around `trpc.cover.close.useMutation`. */
|
|
@@ -7104,12 +7114,6 @@ var useDeviceManagerTestField = trpc.deviceManager.testField.useMutation;
|
|
|
7104
7114
|
var useDeviceManagerGetDeviceStatusAggregate = trpc.deviceManager.getDeviceStatusAggregate.useQuery;
|
|
7105
7115
|
/** Generated alias around `trpc.deviceManager.getDeviceStatusAggregateBatch.useQuery`. */
|
|
7106
7116
|
var useDeviceManagerGetDeviceStatusAggregateBatch = trpc.deviceManager.getDeviceStatusAggregateBatch.useQuery;
|
|
7107
|
-
/** Generated alias around `trpc.deviceManager.getDeviceSettingsContribution.useQuery`. */
|
|
7108
|
-
var useDeviceManagerGetDeviceSettingsContribution = trpc.deviceManager.getDeviceSettingsContribution.useQuery;
|
|
7109
|
-
/** Generated alias around `trpc.deviceManager.getDeviceLiveContribution.useQuery`. */
|
|
7110
|
-
var useDeviceManagerGetDeviceLiveContribution = trpc.deviceManager.getDeviceLiveContribution.useQuery;
|
|
7111
|
-
/** Generated alias around `trpc.deviceManager.applyDeviceSettingsPatch.useMutation`. */
|
|
7112
|
-
var useDeviceManagerApplyDeviceSettingsPatch = trpc.deviceManager.applyDeviceSettingsPatch.useMutation;
|
|
7113
7117
|
/** Generated alias around `trpc.deviceOps.getStreamSources.useQuery`. */
|
|
7114
7118
|
var useDeviceOpsGetStreamSources = trpc.deviceOps.getStreamSources.useQuery;
|
|
7115
7119
|
/** Generated alias around `trpc.deviceOps.getConfigEntries.useQuery`. */
|
|
@@ -7164,12 +7168,6 @@ var useDeviceStateSetCapSlice = trpc.deviceState.setCapSlice.useMutation;
|
|
|
7164
7168
|
var useDeviceStatusGetStatus = trpc.deviceStatus.getStatus.useQuery;
|
|
7165
7169
|
/** Generated alias around `trpc.doorbell.getStatus.useQuery`. */
|
|
7166
7170
|
var useDoorbellGetStatus = trpc.doorbell.getStatus.useQuery;
|
|
7167
|
-
/** Generated alias around `trpc.doorbell.getDeviceSettingsContribution.useQuery`. */
|
|
7168
|
-
var useDoorbellGetDeviceSettingsContribution = trpc.doorbell.getDeviceSettingsContribution.useQuery;
|
|
7169
|
-
/** Generated alias around `trpc.doorbell.getDeviceLiveContribution.useQuery`. */
|
|
7170
|
-
var useDoorbellGetDeviceLiveContribution = trpc.doorbell.getDeviceLiveContribution.useQuery;
|
|
7171
|
-
/** Generated alias around `trpc.doorbell.applyDeviceSettingsPatch.useMutation`. */
|
|
7172
|
-
var useDoorbellApplyDeviceSettingsPatch = trpc.doorbell.applyDeviceSettingsPatch.useMutation;
|
|
7173
7171
|
/** Generated alias around `trpc.enumSensor.getStatus.useQuery`. */
|
|
7174
7172
|
var useEnumSensorGetStatus = trpc.enumSensor.getStatus.useQuery;
|
|
7175
7173
|
/** Generated alias around `trpc.eventEmitter.getStatus.useQuery`. */
|
|
@@ -12303,8 +12301,8 @@ function selectedDeviceOptions(options, selected) {
|
|
|
12303
12301
|
* `device-select-filter.ts`). No server-computed option list is involved —
|
|
12304
12302
|
* the form field carries only the filter. Value(s) are device ids as strings.
|
|
12305
12303
|
*
|
|
12306
|
-
* The multi variant
|
|
12307
|
-
*
|
|
12304
|
+
* The multi variant is a searchable combobox (removable chips + typeahead
|
|
12305
|
+
* dropdown); the single variant is a native
|
|
12308
12306
|
* select. Both are inline in ui-library (like `node-select`) so any host that
|
|
12309
12307
|
* renders the shared form field gets them without extra registration.
|
|
12310
12308
|
*/
|
|
@@ -20892,16 +20890,6 @@ function ClipsSection({ deviceId }) {
|
|
|
20892
20890
|
});
|
|
20893
20891
|
}
|
|
20894
20892
|
//#endregion
|
|
20895
|
-
//#region src/composites/extensions/extension-invalidation.ts
|
|
20896
|
-
/** tRPC v11 query-key prefix of `deviceManager.getDeviceAggregate`. */
|
|
20897
|
-
var DEVICE_AGGREGATE_QUERY_KEY = [["deviceManager", "getDeviceAggregate"]];
|
|
20898
|
-
/** tRPC v11 query-key prefix of `deviceExtension.listSlots`. */
|
|
20899
|
-
var EXTENSION_SLOTS_QUERY_KEY = [["deviceExtension", "listSlots"]];
|
|
20900
|
-
/** Re-read both surfaces over the linked-devices / doorbell stores. */
|
|
20901
|
-
async function invalidateExtensionSurfaces(client) {
|
|
20902
|
-
await Promise.all([client.invalidateQueries({ queryKey: DEVICE_AGGREGATE_QUERY_KEY }), client.invalidateQueries({ queryKey: EXTENSION_SLOTS_QUERY_KEY })]);
|
|
20903
|
-
}
|
|
20904
|
-
//#endregion
|
|
20905
20893
|
//#region src/composites/extensions/extensions-view-state.ts
|
|
20906
20894
|
/**
|
|
20907
20895
|
* What the Extensions section may CLAIM, from what `listSlots` answered
|
|
@@ -20966,6 +20954,70 @@ function searchCandidates(candidates, draft, query) {
|
|
|
20966
20954
|
function isDirty(saved, draft) {
|
|
20967
20955
|
return saved.length !== draft.length || saved.some((id, i) => draft[i] !== id);
|
|
20968
20956
|
}
|
|
20957
|
+
/**
|
|
20958
|
+
* The tracked-event opt-in a slot's value carries, or `undefined` when it
|
|
20959
|
+
* carries none — every slot but `linked-devices`, and a `linked-devices` row
|
|
20960
|
+
* from a server older than D655. `undefined` is "this owner offers no
|
|
20961
|
+
* opt-in", never "nothing is opted in": the card then shows no toggle rather
|
|
20962
|
+
* than a row of unticked ones it could not save.
|
|
20963
|
+
*/
|
|
20964
|
+
function trackedOptInOf(value) {
|
|
20965
|
+
return value.slot === "linked-devices" ? value.trackedDeviceIds : void 0;
|
|
20966
|
+
}
|
|
20967
|
+
/** Flip one device's tracked-event opt-in. */
|
|
20968
|
+
function toggleTracked(tracked, deviceId) {
|
|
20969
|
+
return tracked.includes(deviceId) ? tracked.filter((id) => id !== deviceId) : [...tracked, deviceId];
|
|
20970
|
+
}
|
|
20971
|
+
/** Whether two opt-ins differ as SETS — the order carries no meaning. */
|
|
20972
|
+
function isTrackedDirty(saved, draft) {
|
|
20973
|
+
return saved.length !== draft.length || saved.some((id) => !draft.includes(id));
|
|
20974
|
+
}
|
|
20975
|
+
/**
|
|
20976
|
+
* One toggle per device the camera links — the old section's set (D655):
|
|
20977
|
+
* the valid picks, then what the owner links by structure (tree children, a
|
|
20978
|
+
* picked container's child — never the container itself, D356), then every
|
|
20979
|
+
* opted-in device that is linked no more, so a stored opt-in is always
|
|
20980
|
+
* visible and can always be removed.
|
|
20981
|
+
*/
|
|
20982
|
+
function trackedOptions(input) {
|
|
20983
|
+
const out = [];
|
|
20984
|
+
const seen = /* @__PURE__ */ new Set();
|
|
20985
|
+
const add = (deviceId, origin) => {
|
|
20986
|
+
if (seen.has(deviceId)) return;
|
|
20987
|
+
seen.add(deviceId);
|
|
20988
|
+
out.push({
|
|
20989
|
+
deviceId,
|
|
20990
|
+
origin
|
|
20991
|
+
});
|
|
20992
|
+
};
|
|
20993
|
+
for (const id of input.picks) if (!input.invalidPicks.includes(id)) add(id, "pick");
|
|
20994
|
+
for (const id of input.implied) add(id, "implied");
|
|
20995
|
+
for (const id of input.tracked) add(id, "not-linked");
|
|
20996
|
+
return out;
|
|
20997
|
+
}
|
|
20998
|
+
/**
|
|
20999
|
+
* The opt-in after one device is removed from the draft picks: its toggle
|
|
21000
|
+
* goes with it, unless the camera still links it by structure.
|
|
21001
|
+
*/
|
|
21002
|
+
function untrackUnpicked(tracked, deviceId, implied) {
|
|
21003
|
+
return implied.includes(deviceId) ? tracked : tracked.filter((id) => id !== deviceId);
|
|
21004
|
+
}
|
|
21005
|
+
/**
|
|
21006
|
+
* The value a Save sends. The opt-in travels only when the owner offered one,
|
|
21007
|
+
* and then WHOLE: it replaces the stored one, and the owner accepts any id it
|
|
21008
|
+
* already stored, so what was read can be sent back unchanged (D655).
|
|
21009
|
+
*/
|
|
21010
|
+
function slotWriteValue(saved, deviceIds, tracked) {
|
|
21011
|
+
if (saved.slot === "linked-devices" && tracked !== void 0) return {
|
|
21012
|
+
slot: "linked-devices",
|
|
21013
|
+
deviceIds: [...deviceIds],
|
|
21014
|
+
trackedDeviceIds: [...tracked]
|
|
21015
|
+
};
|
|
21016
|
+
return {
|
|
21017
|
+
slot: saved.slot,
|
|
21018
|
+
deviceIds: [...deviceIds]
|
|
21019
|
+
};
|
|
21020
|
+
}
|
|
20969
21021
|
//#endregion
|
|
20970
21022
|
//#region src/composites/extensions/AssociationSlotCard.tsx
|
|
20971
21023
|
/**
|
|
@@ -20982,6 +21034,11 @@ function isDirty(saved, draft) {
|
|
|
20982
21034
|
* shown with its reason and never silently dropped from the draft.
|
|
20983
21035
|
* - A gate owned by ANOTHER authority (the doorbell wrapper's binding) is
|
|
20984
21036
|
* shown read-only, naming that authority (D62).
|
|
21037
|
+
* - A slot whose value carries a tracked-event opt-in (`linked-devices`,
|
|
21038
|
+
* D655) gets one toggle per LINKED device — the picks, what the owner links
|
|
21039
|
+
* by structure (`impliedSources`: tree children, never a container, D356)
|
|
21040
|
+
* and any stored opt-in no longer linked, so each can be removed — saved
|
|
21041
|
+
* with the picks, whole.
|
|
20985
21042
|
*/
|
|
20986
21043
|
var HEALTH_LABEL = {
|
|
20987
21044
|
ok: "OK",
|
|
@@ -20996,7 +21053,7 @@ var HEALTH_VARIANT = {
|
|
|
20996
21053
|
unavailable: "warning"
|
|
20997
21054
|
};
|
|
20998
21055
|
/** The saved sources, each with its health — a bad one is shown, never hidden. */
|
|
20999
|
-
function SlotSourceList({ sources }) {
|
|
21056
|
+
function SlotSourceList({ sources, tracked }) {
|
|
21000
21057
|
if (sources.length === 0) return /* @__PURE__ */ jsx("p", {
|
|
21001
21058
|
className: "text-[11px] text-foreground-subtle italic",
|
|
21002
21059
|
children: "No devices picked."
|
|
@@ -21014,6 +21071,10 @@ function SlotSourceList({ sources }) {
|
|
|
21014
21071
|
variant: HEALTH_VARIANT[s.health],
|
|
21015
21072
|
children: HEALTH_LABEL[s.health]
|
|
21016
21073
|
}),
|
|
21074
|
+
tracked?.includes(s.deviceId) === true && /* @__PURE__ */ jsx(Badge, {
|
|
21075
|
+
variant: "info",
|
|
21076
|
+
children: "Tracked events"
|
|
21077
|
+
}),
|
|
21017
21078
|
s.detail !== void 0 && /* @__PURE__ */ jsx("span", {
|
|
21018
21079
|
className: "text-[10px] text-foreground-subtle",
|
|
21019
21080
|
children: s.detail
|
|
@@ -21037,11 +21098,75 @@ function ActivationLine({ row }) {
|
|
|
21037
21098
|
]
|
|
21038
21099
|
});
|
|
21039
21100
|
}
|
|
21101
|
+
/**
|
|
21102
|
+
* What the owner links by structure — tree children, a picked container's
|
|
21103
|
+
* child (D356). Shown, never editable as a pick: removing one is not the
|
|
21104
|
+
* editor's to do.
|
|
21105
|
+
*/
|
|
21106
|
+
function ImpliedSourceList({ sources, tracked }) {
|
|
21107
|
+
if (sources.length === 0) return null;
|
|
21108
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
21109
|
+
className: "flex flex-col gap-1",
|
|
21110
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
21111
|
+
className: "text-[10px] text-foreground-subtle",
|
|
21112
|
+
children: "Always linked (device tree):"
|
|
21113
|
+
}), /* @__PURE__ */ jsx("ul", {
|
|
21114
|
+
"aria-label": "Always linked",
|
|
21115
|
+
className: "flex flex-col gap-1",
|
|
21116
|
+
children: sources.map((s) => /* @__PURE__ */ jsxs("li", {
|
|
21117
|
+
className: "flex flex-wrap items-center gap-2 text-[11px]",
|
|
21118
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
21119
|
+
className: "text-foreground",
|
|
21120
|
+
children: s.name ?? `Device ${s.deviceId}`
|
|
21121
|
+
}), tracked?.includes(s.deviceId) === true && /* @__PURE__ */ jsx(Badge, {
|
|
21122
|
+
variant: "info",
|
|
21123
|
+
children: "Tracked events"
|
|
21124
|
+
})]
|
|
21125
|
+
}, s.deviceId))
|
|
21126
|
+
})]
|
|
21127
|
+
});
|
|
21128
|
+
}
|
|
21129
|
+
var ORIGIN_NOTE = {
|
|
21130
|
+
pick: null,
|
|
21131
|
+
implied: "always linked",
|
|
21132
|
+
"not-linked": "not linked any more — untick to remove"
|
|
21133
|
+
};
|
|
21134
|
+
/** One opt-in toggle per linked device: does it produce tracked events here? */
|
|
21135
|
+
function TrackedToggles({ options, tracked, nameOf, onToggle }) {
|
|
21136
|
+
if (options.length === 0) return null;
|
|
21137
|
+
return /* @__PURE__ */ jsxs("fieldset", {
|
|
21138
|
+
className: "flex flex-col gap-1",
|
|
21139
|
+
children: [/* @__PURE__ */ jsx("legend", {
|
|
21140
|
+
className: "text-[10px] text-foreground-subtle",
|
|
21141
|
+
children: "Produce tracked events on this camera (opt-in):"
|
|
21142
|
+
}), options.map(({ deviceId: id, origin }) => /* @__PURE__ */ jsxs("label", {
|
|
21143
|
+
className: "flex items-center gap-2 text-[11px] text-foreground",
|
|
21144
|
+
children: [
|
|
21145
|
+
/* @__PURE__ */ jsx("input", {
|
|
21146
|
+
type: "checkbox",
|
|
21147
|
+
"aria-label": `Tracked events from ${nameOf(id)}`,
|
|
21148
|
+
checked: tracked.includes(id),
|
|
21149
|
+
onChange: () => onToggle(id)
|
|
21150
|
+
}),
|
|
21151
|
+
nameOf(id),
|
|
21152
|
+
ORIGIN_NOTE[origin] !== null && /* @__PURE__ */ jsxs("span", {
|
|
21153
|
+
className: "text-[10px] text-foreground-subtle",
|
|
21154
|
+
children: ["· ", ORIGIN_NOTE[origin]]
|
|
21155
|
+
})
|
|
21156
|
+
]
|
|
21157
|
+
}, id))]
|
|
21158
|
+
});
|
|
21159
|
+
}
|
|
21040
21160
|
function AssociationSlotCard({ deviceId, row, onSaved }) {
|
|
21041
21161
|
const descriptor = EXTENSION_SLOTS[row.slot].descriptor;
|
|
21042
21162
|
const saved = row.value.deviceIds;
|
|
21163
|
+
const savedTracked = trackedOptInOf(row.value);
|
|
21164
|
+
const implied = row.impliedSources ?? [];
|
|
21165
|
+
const impliedIds = implied.map((s) => s.deviceId);
|
|
21166
|
+
const invalidPicks = row.sources.filter((s) => s.health === "unavailable").map((s) => s.deviceId);
|
|
21043
21167
|
const [editing, setEditing] = useState(false);
|
|
21044
21168
|
const [draft, setDraft] = useState(saved);
|
|
21169
|
+
const [draftTracked, setDraftTracked] = useState(savedTracked ?? []);
|
|
21045
21170
|
const [search, setSearch] = useState("");
|
|
21046
21171
|
const [refusal, setRefusal] = useState(null);
|
|
21047
21172
|
const candidatesQuery = useDeviceExtensionListCandidates({
|
|
@@ -21049,11 +21174,15 @@ function AssociationSlotCard({ deviceId, row, onSaved }) {
|
|
|
21049
21174
|
slotRef: row.slotRef
|
|
21050
21175
|
}, { enabled: editing });
|
|
21051
21176
|
const setSlot = useDeviceExtensionSetSlot();
|
|
21052
|
-
const queryClient = useQueryClient();
|
|
21053
21177
|
const candidates = candidatesQuery.data?.candidates ?? [];
|
|
21054
|
-
const nameOf = (id) => candidates.find((c) => c.deviceId === id)?.name ?? row.sources.find((s) => s.deviceId === id)?.name ?? `Device ${id}`;
|
|
21178
|
+
const nameOf = (id) => candidates.find((c) => c.deviceId === id)?.name ?? row.sources.find((s) => s.deviceId === id)?.name ?? implied.find((s) => s.deviceId === id)?.name ?? `Device ${id}`;
|
|
21179
|
+
const removePick = (id) => {
|
|
21180
|
+
setDraft(togglePick(draft, id, descriptor.cardinality));
|
|
21181
|
+
setDraftTracked(untrackUnpicked(draftTracked, id, impliedIds));
|
|
21182
|
+
};
|
|
21055
21183
|
const startEditing = () => {
|
|
21056
21184
|
setDraft(saved);
|
|
21185
|
+
setDraftTracked(savedTracked ?? []);
|
|
21057
21186
|
setRefusal(null);
|
|
21058
21187
|
setEditing(true);
|
|
21059
21188
|
};
|
|
@@ -21063,13 +21192,9 @@ function AssociationSlotCard({ deviceId, row, onSaved }) {
|
|
|
21063
21192
|
await setSlot.mutateAsync({
|
|
21064
21193
|
deviceId,
|
|
21065
21194
|
slotRef: row.slotRef,
|
|
21066
|
-
value:
|
|
21067
|
-
slot: row.value.slot,
|
|
21068
|
-
deviceIds: [...draft]
|
|
21069
|
-
}
|
|
21195
|
+
value: slotWriteValue(row.value, draft, savedTracked === void 0 ? void 0 : draftTracked)
|
|
21070
21196
|
});
|
|
21071
21197
|
setEditing(false);
|
|
21072
|
-
await invalidateExtensionSurfaces(queryClient);
|
|
21073
21198
|
onSaved();
|
|
21074
21199
|
} catch (err) {
|
|
21075
21200
|
setRefusal(err instanceof Error ? err.message : String(err));
|
|
@@ -21106,7 +21231,14 @@ function AssociationSlotCard({ deviceId, row, onSaved }) {
|
|
|
21106
21231
|
})]
|
|
21107
21232
|
}),
|
|
21108
21233
|
/* @__PURE__ */ jsx(ActivationLine, { row }),
|
|
21109
|
-
!editing && /* @__PURE__ */ jsx(SlotSourceList, {
|
|
21234
|
+
!editing && /* @__PURE__ */ jsx(SlotSourceList, {
|
|
21235
|
+
sources: row.sources,
|
|
21236
|
+
tracked: savedTracked
|
|
21237
|
+
}),
|
|
21238
|
+
!editing && /* @__PURE__ */ jsx(ImpliedSourceList, {
|
|
21239
|
+
sources: implied,
|
|
21240
|
+
tracked: savedTracked
|
|
21241
|
+
}),
|
|
21110
21242
|
editing && /* @__PURE__ */ jsxs("div", {
|
|
21111
21243
|
className: "flex flex-col gap-2",
|
|
21112
21244
|
children: [
|
|
@@ -21116,7 +21248,7 @@ function AssociationSlotCard({ deviceId, row, onSaved }) {
|
|
|
21116
21248
|
children: draft.map((id) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("button", {
|
|
21117
21249
|
type: "button",
|
|
21118
21250
|
"aria-label": `Remove ${nameOf(id)}`,
|
|
21119
|
-
onClick: () =>
|
|
21251
|
+
onClick: () => removePick(id),
|
|
21120
21252
|
className: "inline-flex items-center gap-1 rounded-full bg-primary/15 px-2 py-0.5 text-[11px] text-foreground",
|
|
21121
21253
|
children: [nameOf(id), /* @__PURE__ */ jsx(X, { className: "h-3 w-3" })]
|
|
21122
21254
|
}) }, id))
|
|
@@ -21186,6 +21318,17 @@ function AssociationSlotCard({ deviceId, row, onSaved }) {
|
|
|
21186
21318
|
]
|
|
21187
21319
|
}) }, c.deviceId))
|
|
21188
21320
|
}),
|
|
21321
|
+
savedTracked !== void 0 && /* @__PURE__ */ jsx(TrackedToggles, {
|
|
21322
|
+
options: trackedOptions({
|
|
21323
|
+
picks: draft,
|
|
21324
|
+
invalidPicks,
|
|
21325
|
+
implied: impliedIds,
|
|
21326
|
+
tracked: draftTracked
|
|
21327
|
+
}),
|
|
21328
|
+
tracked: draftTracked,
|
|
21329
|
+
nameOf,
|
|
21330
|
+
onToggle: (id) => setDraftTracked(toggleTracked(draftTracked, id))
|
|
21331
|
+
}),
|
|
21189
21332
|
refusal !== null && /* @__PURE__ */ jsxs("p", {
|
|
21190
21333
|
role: "alert",
|
|
21191
21334
|
className: "text-[11px] text-danger break-words",
|
|
@@ -21200,7 +21343,7 @@ function AssociationSlotCard({ deviceId, row, onSaved }) {
|
|
|
21200
21343
|
children: "Cancel"
|
|
21201
21344
|
}), /* @__PURE__ */ jsx(Button, {
|
|
21202
21345
|
size: "sm",
|
|
21203
|
-
disabled: !isDirty(saved, draft) || setSlot.isPending,
|
|
21346
|
+
disabled: !(isDirty(saved, draft) || savedTracked !== void 0 && isTrackedDirty(savedTracked, draftTracked)) || setSlot.isPending,
|
|
21204
21347
|
onClick: () => void save(),
|
|
21205
21348
|
children: "Save"
|
|
21206
21349
|
})]
|
|
@@ -21222,11 +21365,11 @@ function AssociationSlotCard({ deviceId, row, onSaved }) {
|
|
|
21222
21365
|
* section (D14). The panel STORES NOTHING: every card is one row of
|
|
21223
21366
|
* `device-extension.listSlots`, read by the slot's owner from the store it
|
|
21224
21367
|
* already has, and every save is `setSlot`, written by that owner through its
|
|
21225
|
-
* existing path.
|
|
21226
|
-
*
|
|
21227
|
-
*
|
|
21368
|
+
* existing path. It is the only editor of what it shows: the hand-written
|
|
21369
|
+
* "Linked devices" and "Virtual doorbell" sections it replaced were retired
|
|
21370
|
+
* once the live read matched them on every measured camera (D655).
|
|
21228
21371
|
*
|
|
21229
|
-
*
|
|
21372
|
+
* It renders ASSOCIATION cards only (a device multiselect). A `graft`
|
|
21230
21373
|
* slot (slice 2) gets a read-only card here until its editor exists.
|
|
21231
21374
|
*
|
|
21232
21375
|
* Absence is claimed only from an answer (D315): pending, failed and empty
|
|
@@ -56406,4 +56549,4 @@ var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-vfWTm6qv.js").t
|
|
|
56406
56549
|
/** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
|
|
56407
56550
|
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-DMkchqO1.js").then((m) => ({ default: m.PrivacyMaskSettings })));
|
|
56408
56551
|
//#endregion
|
|
56409
|
-
export { AddonGlobalSettingsForm, AdminLinkQuickAction, 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_AGGREGATE_QUERY_KEY, 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, DataTableFilterBar, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceGrid, DeviceItem, DeviceList, DeviceMultiSelectField, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EMPTY_DATA_TABLE_FILTER, EVENT_KIND_ICONS, EXTENSION_SLOTS_QUERY_KEY, EmptyState, ErrorBox, EventKindGlyph, EventStream, FILL, FLEET_LIST_GC_TIME_MS, FLEET_LIST_QUERY_KEY, FLEET_LIST_STALE_TIME_MS, 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, IconPicker, 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, NAVIGATION_DRIVE_INTERVAL_MS, NavigationPanel, NetworkLinkBadge, 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, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, RoleDisplayDefaultsFromServer, RoleDisplayDefaultsProvider, SCENE_CAPTURE_VARIANTS, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SETTING_ROW, SETTING_ROW_LABEL, SETTING_ROW_STACK_BREAKPOINT, SETTING_ROW_VALUE, SETTING_ROW_VALUE_TEXT, SNAPSHOT_MEDIA_PATH, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, SceneMonitorEditor, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SlideToggle, SnapshotButton, SortHeaderButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, Stepper, StreamBrokerSelector, StreamDebugOverlay, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, TABLE_SCROLL_MAX_H, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimezoneSelector, Tooltip, TooltipContent, TooltipTrigger, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, VodPlaybackProvider, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, MicOff as a, agentColumnKey, allDeviceTypeFilterOptions, applyFleetQueryDefaults, ariaSortForColumn, badgeFor, buildStepTreeFromSchema, EyeOff as c, childEntityId, childListName, classifyCapability, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, coverageLine, createSharedContext, createTheme, cursorFractionFor, darkColors, dataTableFacets, defaultTheme, deriveDeviceKind, deriveWebrtcDebugStats, describeDeviceSelector, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, ensureMfHostInit, eventKindLabel, filterDataTableRows, filterDeviceOptions, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, freezeVerdict, fuzzyMatch, getClassColor, getPhaseVisual, groupAgentColumns, groupChildrenByLayout, hardwareLabel, hubOrigin, hubPath, hubUrl, hubWsUrl, humanDuration, humidifierTint, Mic as i, initialScrubState, invalidateExtensionSurfaces, isAbsentProvider, isDataTableFilterActive, isFieldVisible, Camera as l, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, mountPath, Square as n, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, normalizeForSearch, ImageOff as o, openTopLayer, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, RotateCcw as r, resetHubMountForTests, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, roiTooLarge, routerBasename, Grid2x2 as s, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, shouldUseSingleNode, sortRows, sortRowsByColumn, statusIcons, statusLine, stepHasModelForFormat, stepModelOptions, stripParentNamePrefix, Trash2 as t, tabForSelector, tankAlert, themeToCss, toStationaryOverlayBox, toggleDataTableFacet, trpc, createLucideIcon as u, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsGetIntegrationSettings, 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, useAlert, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerAttachDevice, useAudioAnalyzerClassify, useAudioAnalyzerDetachDevice, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupCancel, useBackupDelete, useBackupDeleteSchedule, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupListRuns, 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, useCameraGridLayoutApplyDeviceSettingsPatch, useCameraGridLayoutGetDeviceLiveContribution, useCameraGridLayoutGetDeviceSettingsContribution, useCameraGridLayoutGetLayout, useCameraGridLayoutSaveLayout, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCapabilityPresence, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useClusterTopology, useColorGetStatus, useColorSetColor, useConfirm, useConnectionTestDescribeTest, useConnectionTestTestSettings, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoreBlocksCompile, useCoreBlocksCreate, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksRestart, useCoreBlocksSetEnabled, useCoreBlocksUpdate, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDataTableFilter, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdminLink, useDeviceAdminLinkGetAdminLink, 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, useDeviceExtensionListCandidates, useDeviceExtensionListSlots, useDeviceExtensionListSources, useDeviceExtensionSetSlot, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionCancelJob, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionListJobs, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAdoptionStartJob, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyDeviceSettingsPatch, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetBindingsBatch, useDeviceManagerGetChildren, useDeviceManagerGetChildrenBatch, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveContribution, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceSettingsContribution, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetDeviceStatusAggregateBatch, useDeviceManagerGetLinkedDevices, useDeviceManagerGetLinkedDevicesBatch, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListDeviceIdsByCaps, useDeviceManagerListLocationDescriptions, useDeviceManagerListLocationIcons, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListSiteZones, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerMigrateDevice, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRemoveSiteZone, useDeviceManagerRenameLocation, useDeviceManagerRenameSiteZone, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetLocationDescription, useDeviceManagerSetLocationIcon, useDeviceManagerSetLocationZone, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetSiteZone, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceNetworkLink, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderReloadDevice, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellApplyDeviceSettingsPatch, useDoorbellEvents, useDoorbellGetDeviceLiveContribution, useDoorbellGetDeviceSettingsContribution, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryAuditIdentitySamples, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, 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, useLlmCancel, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmResolveModelRef, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkDownloadCa, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkGetTlsStatus, useLocalNetworkGetViewerEndpoints, useLocalNetworkList, useLocalNetworkRegenerateCertificate, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkRevertToGeneratedCertificate, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLocalNetworkSetViewerEndpoints, useLocalNetworkUploadCertificate, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetLoadSeries, useMetricsProviderGetProcessStats, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetOptions, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNativeObjectDetectionSetSettings, useNavigation, useNavigationGetFeatures, useNavigationGetStatus, useNavigationGoToPoint, useNavigationListActions, useNavigationMove, useNavigationPlaySound, useNavigationRunAction, useNavigationSetLightLevel, useNavigationSetLightMode, useNavigationSetLightOn, useNavigationStop, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkLinkGetStatus, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesDirectory, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesCancelSnooze, useNotificationRulesCreateRule, useNotificationRulesCreateSnooze, useNotificationRulesDeleteRule, useNotificationRulesGetAlarmConfig, useNotificationRulesGetClipRetentionAsks, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesGetRuleLastRuns, useNotificationRulesGetTemplateCatalog, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSnoozes, useNotificationRulesPreviewStateSummary, useNotificationRulesPreviewTemplate, useNotificationRulesResolveArtifactUrl, useNotificationRulesSetAlarmConfig, useNotificationRulesSetDeviceMuted, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdManagerClearSlotBinding, useOsdManagerCopyDeviceConfiguration, useOsdManagerGetConditionSupport, useOsdManagerGetDeviceOsd, useOsdManagerGetSourceCatalog, useOsdManagerPreviewSlot, useOsdManagerRenderDevice, useOsdManagerSetSlotBinding, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsCancelRelocateMedia, usePipelineAnalyticsCancelStorageMigrationMove, usePipelineAnalyticsClearTracks, usePipelineAnalyticsCompleteRetrainTrack, usePipelineAnalyticsCountRelocatableMedia, usePipelineAnalyticsCountUnstampedEventMedia, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsDeselectRetrainFrame, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventDensityBatch, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventMediaFootprintByKind, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetKeyEventsBatch, usePipelineAnalyticsGetMediaReclaimStatus, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetRetrainExportUrl, usePipelineAnalyticsGetRetrainFrameImage, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetStorageMigrationMoveStatus, usePipelineAnalyticsGetSummary, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListArchivedDebugNotes, usePipelineAnalyticsListBirthDecisions, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentSummaries, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListSummaries, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsOwnersWithMedia, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsReadLongTermSeries, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsReclaimDebugMedia, usePipelineAnalyticsReconcileFromDisk, usePipelineAnalyticsRefreshStorageLocationsForMigration, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsResumeForStorageMigration, usePipelineAnalyticsSaveRetrainAnnotations, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsSelectRetrainFrames, usePipelineAnalyticsSetTrackFlags, usePipelineAnalyticsStartStorageMigrationMove, usePipelineAnalyticsWipeAllAnalytics, usePipelineAnalyticsWipeObjectEmbeddings, usePipelineExecutorCacheFrameInPool, usePipelineExecutorClearDeviceOverrides, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetInferenceDeviceHealth, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorRearmInferenceDevice, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineExecutorValidatePipeline, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCameraSwitches, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetClusterModelChoice, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorGetReconcileFromDiskStatus, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorPauseForStorageMigration, usePipelineOrchestratorRebalance, usePipelineOrchestratorReconcileFromDisk, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorResumeForStorageMigration, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDecodeLimits, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerGetParkedTrackFrame, usePipelineRunnerParkTrackFrame, usePipelineRunnerReleaseParkedTrackFrames, usePipelineRunnerReportMotion, usePipelineRunnerRequestOccupancyBurst, usePipelineRunnerRunDetailSubtree, usePipelineRunnerRunStatelessStep, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetAudioEnabled, usePrivacyMaskSetMask, usePrompt, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzCaptureHomeHere, usePtzContinuousMove, usePtzDeletePreset, usePtzGetHomePreset, usePtzGetHomeReturn, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzSetHomePreset, usePtzSetHomeReturn, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingArchiveApplyDeviceSettingsPatch, useRecordingArchiveCancelRelocateJob, useRecordingArchiveCancelStorageMigrationMove, useRecordingArchiveDeleteFootprint, useRecordingArchiveGetAvailabilityBatch, useRecordingArchiveGetDaysWithRecordingsBatch, useRecordingArchiveGetDeviceConfig, useRecordingArchiveGetDeviceLiveContribution, useRecordingArchiveGetDeviceSettingsContribution, useRecordingArchiveGetPlacement, useRecordingArchiveGetRelocateResidue, useRecordingArchiveGetStatus, useRecordingArchiveGetStorageMigrationMoveStatus, useRecordingArchiveGetStorageUsage, useRecordingArchiveListOpsLog, useRecordingArchiveListRelocateJobs, useRecordingArchiveLocateSegment, useRecordingArchivePauseForStorageMigration, useRecordingArchivePlanStorageRebalance, useRecordingArchivePruneFootage, useRecordingArchiveReadGopBytes, useRecordingArchiveReadSegmentBytes, useRecordingArchiveReadWindowBytes, useRecordingArchiveReconcileLedgerAgainstDisk, useRecordingArchiveRefreshStorageLocationsForMigration, useRecordingArchiveRelocateFootage, useRecordingArchiveRenderClip, useRecordingArchiveRenderGif, useRecordingArchiveRescanStorage, useRecordingArchiveResumeForStorageMigration, useRecordingArchiveSetDeviceConfig, useRecordingArchiveSetDevicePlacement, useRecordingArchiveStartStorageMigrationMove, useRecordingArchiveStartStorageRebalance, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingExportReadExportBytes, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetPlayback, useRecordingGetPlaybackOptions, useRecordingListSources, useRecordingOnboardGetOptions, useRecordingOnboardGetStatus, useRecordingOnboardSetSettings, useRecordingSignalGetStatus, useRemoteComponent, useRoleDisplayDefaults, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorListScenesBatch, useSceneMonitorRecheckNow, useSceneMonitorResetScene, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreAggregate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreDeleteWhere, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreInsertMany, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSettingsStoreUpdateWhere, useSettingsStoreUpsert, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStationaryOverlay, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageList, useStorageListDrainProgress, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageMigrationCancel, useStorageMigrationCleanupCancel, useStorageMigrationCleanupStart, useStorageMigrationCleanupStatus, useStorageMigrationDrain, useStorageMigrationHistory, useStorageMigrationMovers, useStorageMigrationPlan, useStorageMigrationResidue, useStorageMigrationStart, useStorageMigrationStatus, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStreamBrokerAcquireEgressTranscode, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerFetchEventMedia, useStreamBrokerForgetDeviceHardware, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerReportStreamSignal, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useStreamSignalsListSignals, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemDetectSiteLocation, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetFailureContributions, useSystemGetLoadContributions, useSystemGetLoggingSettings, useSystemGetRequestCensus, useSystemGetRetentionConfig, useSystemGetSiteLocation, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetLoggingSettings, useSystemSetRetentionConfig, useSystemSetSiteLocation, useTamperGetStatus, useTemperatureSensorGetStatus, useTerminalSessionAdoptLegacyMonitor, useTerminalSessionClose, useTerminalSessionCreateInstance, useTerminalSessionDeleteInstance, useTerminalSessionListInstances, useTerminalSessionListLegacyCameras, useTerminalSessionListProfiles, useTerminalSessionListSessions, useTerminalSessionOpenSession, useTerminalSessionPullOutput, useTerminalSessionResize, useTerminalSessionSetInstanceEnabled, useTerminalSessionUpdateInstance, useTerminalSessionWriteInput, useThemeMode, useToastOnToast, 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, useVideoclipsDialClipStream, useVideoclipsGetClipPlayback, useVideoclipsGetPlaybackOptions, useVideoclipsListClips, useVideoclipsListSources, useVideoclipsOfferClipBytes, useVideoclipsReadClipBytes, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionDebug, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetCurrentSnapshotBatch, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, vacuumStateMeta, validateScopes, valveStateMeta, variantLabel, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint };
|
|
56552
|
+
export { AddonGlobalSettingsForm, AdminLinkQuickAction, 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, DataTableFilterBar, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceGrid, DeviceItem, DeviceList, DeviceMultiSelectField, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EMPTY_DATA_TABLE_FILTER, EVENT_KIND_ICONS, EmptyState, ErrorBox, EventKindGlyph, EventStream, FILL, FLEET_LIST_GC_TIME_MS, FLEET_LIST_QUERY_KEY, FLEET_LIST_STALE_TIME_MS, 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, IconPicker, 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, NAVIGATION_DRIVE_INTERVAL_MS, NavigationPanel, NetworkLinkBadge, 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, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, RoleDisplayDefaultsFromServer, RoleDisplayDefaultsProvider, SCENE_CAPTURE_VARIANTS, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SETTING_ROW, SETTING_ROW_LABEL, SETTING_ROW_STACK_BREAKPOINT, SETTING_ROW_VALUE, SETTING_ROW_VALUE_TEXT, SNAPSHOT_MEDIA_PATH, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, SceneMonitorEditor, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SlideToggle, SnapshotButton, SortHeaderButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, Stepper, StreamBrokerSelector, StreamDebugOverlay, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, TABLE_SCROLL_MAX_H, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimezoneSelector, Tooltip, TooltipContent, TooltipTrigger, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, VodPlaybackProvider, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, MicOff as a, agentColumnKey, allDeviceTypeFilterOptions, applyFleetQueryDefaults, ariaSortForColumn, badgeFor, buildStepTreeFromSchema, EyeOff as c, childEntityId, childListName, classifyCapability, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, coverageLine, createSharedContext, createTheme, cursorFractionFor, darkColors, dataTableFacets, defaultTheme, deriveDeviceKind, deriveWebrtcDebugStats, describeDeviceSelector, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, ensureMfHostInit, eventKindLabel, filterDataTableRows, filterDeviceOptions, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, freezeVerdict, fuzzyMatch, getClassColor, getPhaseVisual, groupAgentColumns, groupChildrenByLayout, hardwareLabel, hubOrigin, hubPath, hubUrl, hubWsUrl, humanDuration, humidifierTint, Mic as i, initialScrubState, isAbsentProvider, isDataTableFilterActive, isFieldVisible, Camera as l, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, mountPath, Square as n, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, normalizeForSearch, ImageOff as o, openTopLayer, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, RotateCcw as r, resetHubMountForTests, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, roiTooLarge, routerBasename, Grid2x2 as s, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, shouldUseSingleNode, sortRows, sortRowsByColumn, statusIcons, statusLine, stepHasModelForFormat, stepModelOptions, stripParentNamePrefix, Trash2 as t, tabForSelector, tankAlert, themeToCss, toStationaryOverlayBox, toggleDataTableFacet, trpc, createLucideIcon as u, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsGetIntegrationSettings, 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, useAlert, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerAttachDevice, useAudioAnalyzerClassify, useAudioAnalyzerDetachDevice, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupCancel, useBackupDelete, useBackupDeleteSchedule, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupListRuns, 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, useCameraGridLayoutApplyDeviceSettingsPatch, useCameraGridLayoutGetDeviceLiveContribution, useCameraGridLayoutGetDeviceSettingsContribution, useCameraGridLayoutGetLayout, useCameraGridLayoutSaveLayout, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCapabilityPresence, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useClusterTopology, useColorGetStatus, useColorSetColor, useConfirm, useConnectionTestDescribeTest, useConnectionTestTestSettings, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoreBlocksCompile, useCoreBlocksCreate, useCoreBlocksCreateComposition, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetComposition, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksListCompositions, useCoreBlocksRestart, useCoreBlocksSetEnabled, useCoreBlocksUpdate, useCoreBlocksUpdateComposition, useCoreBlocksValidateComposition, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDataTableFilter, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdminLink, useDeviceAdminLinkGetAdminLink, 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, useDeviceExtensionListCandidates, useDeviceExtensionListSlots, useDeviceExtensionListSources, useDeviceExtensionSetSlot, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionCancelJob, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionListJobs, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAdoptionStartJob, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetBindingsBatch, useDeviceManagerGetChildren, useDeviceManagerGetChildrenBatch, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetDeviceStatusAggregateBatch, useDeviceManagerGetLinkedDevices, useDeviceManagerGetLinkedDevicesBatch, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListDeviceIdsByCaps, useDeviceManagerListLocationDescriptions, useDeviceManagerListLocationIcons, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListSiteZones, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerMigrateDevice, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRemoveSiteZone, useDeviceManagerRenameLocation, useDeviceManagerRenameSiteZone, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetLocationDescription, useDeviceManagerSetLocationIcon, useDeviceManagerSetLocationZone, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetSiteZone, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceNetworkLink, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderReloadDevice, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellEvents, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryAuditIdentitySamples, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, 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, useLlmCancel, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmResolveModelRef, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkDownloadCa, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkGetTlsStatus, useLocalNetworkGetViewerEndpoints, useLocalNetworkList, useLocalNetworkRegenerateCertificate, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkRevertToGeneratedCertificate, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLocalNetworkSetViewerEndpoints, useLocalNetworkUploadCertificate, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetLoadSeries, useMetricsProviderGetProcessStats, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetOptions, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNativeObjectDetectionSetSettings, useNavigation, useNavigationGetFeatures, useNavigationGetStatus, useNavigationGoToPoint, useNavigationListActions, useNavigationMove, useNavigationPlaySound, useNavigationRunAction, useNavigationSetLightLevel, useNavigationSetLightMode, useNavigationSetLightOn, useNavigationStop, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkLinkGetStatus, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesDirectory, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesCancelSnooze, useNotificationRulesCreateRule, useNotificationRulesCreateSnooze, useNotificationRulesDeleteRule, useNotificationRulesGetAlarmConfig, useNotificationRulesGetClipRetentionAsks, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesGetRuleLastRuns, useNotificationRulesGetTemplateCatalog, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSnoozes, useNotificationRulesPreviewStateSummary, useNotificationRulesPreviewTemplate, useNotificationRulesResolveArtifactUrl, useNotificationRulesSetAlarmConfig, useNotificationRulesSetDeviceMuted, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdManagerClearSlotBinding, useOsdManagerCopyDeviceConfiguration, useOsdManagerGetConditionSupport, useOsdManagerGetDeviceOsd, useOsdManagerGetSourceCatalog, useOsdManagerPreviewSlot, useOsdManagerRenderDevice, useOsdManagerSetSlotBinding, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsCancelRelocateMedia, usePipelineAnalyticsCancelStorageMigrationMove, usePipelineAnalyticsClearTracks, usePipelineAnalyticsCompleteRetrainTrack, usePipelineAnalyticsCountRelocatableMedia, usePipelineAnalyticsCountUnstampedEventMedia, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsDeselectRetrainFrame, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventDensityBatch, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventMediaFootprintByKind, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetKeyEventsBatch, usePipelineAnalyticsGetMediaReclaimStatus, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetRetrainExportUrl, usePipelineAnalyticsGetRetrainFrameImage, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetStorageMigrationMoveStatus, usePipelineAnalyticsGetSummary, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListArchivedDebugNotes, usePipelineAnalyticsListBirthDecisions, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentSummaries, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListSummaries, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsOwnersWithMedia, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsReadLongTermSeries, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsReclaimDebugMedia, usePipelineAnalyticsReconcileFromDisk, usePipelineAnalyticsRefreshStorageLocationsForMigration, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsResumeForStorageMigration, usePipelineAnalyticsSaveRetrainAnnotations, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsSelectRetrainFrames, usePipelineAnalyticsSetTrackFlags, usePipelineAnalyticsStartStorageMigrationMove, usePipelineAnalyticsWipeAllAnalytics, usePipelineAnalyticsWipeObjectEmbeddings, usePipelineExecutorCacheFrameInPool, usePipelineExecutorClearDeviceOverrides, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetInferenceDeviceHealth, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorRearmInferenceDevice, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineExecutorValidatePipeline, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCameraSwitches, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetClusterModelChoice, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorGetReconcileFromDiskStatus, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorPauseForStorageMigration, usePipelineOrchestratorRebalance, usePipelineOrchestratorReconcileFromDisk, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorResumeForStorageMigration, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDecodeLimits, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerGetParkedTrackFrame, usePipelineRunnerParkTrackFrame, usePipelineRunnerReleaseParkedTrackFrames, usePipelineRunnerReportMotion, usePipelineRunnerRequestOccupancyBurst, usePipelineRunnerRunDetailSubtree, usePipelineRunnerRunStatelessStep, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetAudioEnabled, usePrivacyMaskSetMask, usePrompt, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzCaptureHomeHere, usePtzContinuousMove, usePtzDeletePreset, usePtzGetHomePreset, usePtzGetHomeReturn, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzSetHomePreset, usePtzSetHomeReturn, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingArchiveApplyDeviceSettingsPatch, useRecordingArchiveCancelRelocateJob, useRecordingArchiveCancelStorageMigrationMove, useRecordingArchiveDeleteFootprint, useRecordingArchiveGetAvailabilityBatch, useRecordingArchiveGetDaysWithRecordingsBatch, useRecordingArchiveGetDeviceConfig, useRecordingArchiveGetDeviceLiveContribution, useRecordingArchiveGetDeviceSettingsContribution, useRecordingArchiveGetPlacement, useRecordingArchiveGetRelocateResidue, useRecordingArchiveGetStatus, useRecordingArchiveGetStorageMigrationMoveStatus, useRecordingArchiveGetStorageUsage, useRecordingArchiveListOpsLog, useRecordingArchiveListRelocateJobs, useRecordingArchiveLocateSegment, useRecordingArchivePauseForStorageMigration, useRecordingArchivePlanStorageRebalance, useRecordingArchivePruneFootage, useRecordingArchiveReadGopBytes, useRecordingArchiveReadSegmentBytes, useRecordingArchiveReadWindowBytes, useRecordingArchiveReconcileLedgerAgainstDisk, useRecordingArchiveRefreshStorageLocationsForMigration, useRecordingArchiveRelocateFootage, useRecordingArchiveRenderClip, useRecordingArchiveRenderGif, useRecordingArchiveRescanStorage, useRecordingArchiveResumeForStorageMigration, useRecordingArchiveSetDeviceConfig, useRecordingArchiveSetDevicePlacement, useRecordingArchiveStartStorageMigrationMove, useRecordingArchiveStartStorageRebalance, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingExportReadExportBytes, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetPlayback, useRecordingGetPlaybackOptions, useRecordingListSources, useRecordingOnboardGetOptions, useRecordingOnboardGetStatus, useRecordingOnboardSetSettings, useRecordingSignalGetStatus, useRemoteComponent, useRoleDisplayDefaults, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorListScenesBatch, useSceneMonitorRecheckNow, useSceneMonitorResetScene, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreAggregate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreDeleteWhere, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreInsertMany, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSettingsStoreUpdateWhere, useSettingsStoreUpsert, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStationaryOverlay, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageList, useStorageListDrainProgress, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageMigrationCancel, useStorageMigrationCleanupCancel, useStorageMigrationCleanupStart, useStorageMigrationCleanupStatus, useStorageMigrationDrain, useStorageMigrationHistory, useStorageMigrationMovers, useStorageMigrationPlan, useStorageMigrationResidue, useStorageMigrationStart, useStorageMigrationStatus, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStreamBrokerAcquireEgressTranscode, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerFetchEventMedia, useStreamBrokerForgetDeviceHardware, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerReportStreamSignal, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useStreamSignalsListSignals, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemDetectSiteLocation, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetFailureContributions, useSystemGetLoadContributions, useSystemGetLoggingSettings, useSystemGetRequestCensus, useSystemGetRetentionConfig, useSystemGetSiteLocation, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetLoggingSettings, useSystemSetRetentionConfig, useSystemSetSiteLocation, useTamperGetStatus, useTemperatureSensorGetStatus, useTerminalSessionAdoptLegacyMonitor, useTerminalSessionClose, useTerminalSessionCreateInstance, useTerminalSessionDeleteInstance, useTerminalSessionListInstances, useTerminalSessionListLegacyCameras, useTerminalSessionListProfiles, useTerminalSessionListSessions, useTerminalSessionOpenSession, useTerminalSessionPullOutput, useTerminalSessionResize, useTerminalSessionSetInstanceEnabled, useTerminalSessionUpdateInstance, useTerminalSessionWriteInput, useThemeMode, useToastOnToast, 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, useVideoclipsDialClipStream, useVideoclipsGetClipPlayback, useVideoclipsGetPlaybackOptions, useVideoclipsListClips, useVideoclipsListSources, useVideoclipsOfferClipBytes, useVideoclipsReadClipBytes, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionDebug, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetCurrentSnapshotBatch, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, vacuumStateMeta, validateScopes, valveStateMeta, variantLabel, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint };
|
package/package.json
CHANGED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { QueryClient } from '@tanstack/react-query';
|
|
2
|
-
/** tRPC v11 query-key prefix of `deviceManager.getDeviceAggregate`. */
|
|
3
|
-
export declare const DEVICE_AGGREGATE_QUERY_KEY: readonly [readonly ["deviceManager", "getDeviceAggregate"]];
|
|
4
|
-
/** tRPC v11 query-key prefix of `deviceExtension.listSlots`. */
|
|
5
|
-
export declare const EXTENSION_SLOTS_QUERY_KEY: readonly [readonly ["deviceExtension", "listSlots"]];
|
|
6
|
-
/** The one method of a query client these helpers use. */
|
|
7
|
-
export type QueryInvalidator = Pick<QueryClient, 'invalidateQueries'>;
|
|
8
|
-
/** Re-read both surfaces over the linked-devices / doorbell stores. */
|
|
9
|
-
export declare function invalidateExtensionSurfaces(client: QueryInvalidator): Promise<void>;
|