@camstack/ui-library 1.2.104 → 1.2.105
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/device-list/device-mode.d.ts +0 -2
- package/dist/composites/device-list/filter-chips.d.ts +9 -6
- package/dist/composites/device-list/table-layout.d.ts +23 -3
- package/dist/composites/device-list/url-state.d.ts +13 -4
- package/dist/generated/system-hooks.d.ts +0 -2
- package/dist/index.cjs +34 -155
- package/dist/index.js +35 -155
- package/package.json +1 -1
- package/dist/composites/device-list/cards-layout.d.ts +0 -18
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { UseDeviceProxyTrpc } from '../../hooks/use-device-proxy';
|
|
3
3
|
import { DeviceItemDevice, DeviceItemParent } from '../device-item/helpers';
|
|
4
|
-
import { DeviceListView } from './url-state';
|
|
5
4
|
import { TableContext } from './columns';
|
|
6
5
|
import { MultiSelectOption } from './multi-select';
|
|
7
6
|
export interface DeviceListAddonOption {
|
|
@@ -20,7 +19,6 @@ export interface DeviceListDeviceProps {
|
|
|
20
19
|
readonly context?: TableContext;
|
|
21
20
|
readonly devices: readonly DeviceItemDevice[];
|
|
22
21
|
readonly trpc: UseDeviceProxyTrpc;
|
|
23
|
-
readonly defaultView?: DeviceListView;
|
|
24
22
|
/**
|
|
25
23
|
* Integration filter options + an optional TYPE-filter override.
|
|
26
24
|
*
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { DeviceListView } from './url-state';
|
|
3
2
|
import { MultiSelectOption } from './multi-select';
|
|
4
3
|
export interface FilterChipsAddonOption {
|
|
5
4
|
readonly id: string;
|
|
@@ -7,10 +6,6 @@ export interface FilterChipsAddonOption {
|
|
|
7
6
|
readonly icon?: ReactNode;
|
|
8
7
|
}
|
|
9
8
|
export interface FilterChipsProps {
|
|
10
|
-
readonly view?: DeviceListView;
|
|
11
|
-
readonly onViewChange?: (view: DeviceListView) => void;
|
|
12
|
-
/** Hide the cards/table view toggle (generic lists have a single view). */
|
|
13
|
-
readonly hideView?: boolean;
|
|
14
9
|
/**
|
|
15
10
|
* Ready-made options for the shared multi-select type filter. Built once by
|
|
16
11
|
* the caller from the exhaustive device-type meta (`allDeviceTypeFilterOptions`)
|
|
@@ -26,5 +21,13 @@ export interface FilterChipsProps {
|
|
|
26
21
|
readonly onAddonsChange: (addons: readonly string[]) => void;
|
|
27
22
|
/** When true, the addon group is hidden (used by Integrations expand-row inner DeviceList). */
|
|
28
23
|
readonly hideAddons?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Free-text search, read ONLY to decide whether any filter is set. The input
|
|
26
|
+
* itself lives outside this component; a Clear that ignored it would leave
|
|
27
|
+
* the list filtered after the operator was told it had been cleared.
|
|
28
|
+
*/
|
|
29
|
+
readonly query?: string;
|
|
30
|
+
/** Clear every filter at once. Omit to hide the affordance entirely. */
|
|
31
|
+
readonly onClearFilters?: () => void;
|
|
29
32
|
}
|
|
30
|
-
export declare function FilterChips({
|
|
33
|
+
export declare function FilterChips({ typeOptions, selectedTypes, onTypesChange, addons, selectedAddons, onAddonsChange, hideAddons, query, onClearFilters, }: FilterChipsProps): ReactNode;
|
|
@@ -1,9 +1,29 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { UseDeviceProxyTrpc } from '../../hooks/use-device-proxy';
|
|
3
|
+
import { DeviceItemDevice, DeviceItemParent } from '../device-item/helpers';
|
|
4
4
|
import { DeviceColumnId } from './columns';
|
|
5
5
|
import { DeviceSort, SortableColumnId } from './sort';
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* The row-layout contract. It used to live in `cards-layout.tsx` and be
|
|
8
|
+
* EXTENDED here, because two layouts shared it. The cards layout is gone — the
|
|
9
|
+
* device list is a table, always — so the contract lives with its only
|
|
10
|
+
* implementation rather than in a file that exists to be inherited from.
|
|
11
|
+
*/
|
|
12
|
+
interface DeviceRowsProps {
|
|
13
|
+
readonly rows: readonly DeviceItemDevice[];
|
|
14
|
+
readonly accessoriesByParent: ReadonlyMap<number, readonly DeviceItemDevice[]>;
|
|
15
|
+
readonly trpc: UseDeviceProxyTrpc;
|
|
16
|
+
readonly resolveIntegrationIcon: ((addonId: string) => ReactNode | null) | null;
|
|
17
|
+
readonly resolveParent: ((parentId: number) => DeviceItemParent | null) | null;
|
|
18
|
+
readonly onNavigate: ((deviceId: number) => void) | null;
|
|
19
|
+
readonly renderRowAction: ((device: DeviceItemDevice) => ReactNode) | null;
|
|
20
|
+
readonly selectable: boolean;
|
|
21
|
+
/** Batch mode active — a row click toggles selection instead of navigating. */
|
|
22
|
+
readonly rowClickSelects: boolean;
|
|
23
|
+
readonly activeSelected: ReadonlySet<number>;
|
|
24
|
+
readonly onToggleSelection: (id: number) => void;
|
|
25
|
+
}
|
|
26
|
+
interface TableLayoutProps extends DeviceRowsProps {
|
|
7
27
|
/** Built-in confirmed delete (table feature). Null ⇒ no trash. Only
|
|
8
28
|
* top-level rows carry it (accessory sub-rows are excluded — same gate
|
|
9
29
|
* as `renderRowAction`). */
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* There is ONE device list rendering: the table.
|
|
3
|
+
*
|
|
4
|
+
* A cards view existed alongside it and the operator chose between them. It is
|
|
5
|
+
* gone — every surface is a table now, so `view` is no longer part of this
|
|
6
|
+
* state and no longer written to the URL or to localStorage. A legacy
|
|
7
|
+
* `?view=cards` link still opens: the parameter is simply not read, and the
|
|
8
|
+
* next write drops it from the URL.
|
|
9
|
+
*
|
|
10
|
+
* The DataTable's own phone rendering is a different thing entirely and is
|
|
11
|
+
* untouched (`data-table-layout.ts`): that is how ONE table degrades on a
|
|
12
|
+
* narrow screen, not a view the operator picks.
|
|
13
|
+
*/
|
|
2
14
|
export interface DeviceListUrlState {
|
|
3
|
-
readonly view: DeviceListView;
|
|
4
15
|
readonly page: number;
|
|
5
16
|
/**
|
|
6
17
|
* Selected integration ids. Multi-select: empty array = no integration
|
|
@@ -18,13 +29,11 @@ export interface DeviceListUrlState {
|
|
|
18
29
|
}
|
|
19
30
|
export interface UseDeviceListUrlStateOptions {
|
|
20
31
|
readonly scope: 'root' | 'nested';
|
|
21
|
-
readonly defaultView: DeviceListView;
|
|
22
32
|
/** LocalStorage key prefix, e.g. `'devices'` → `camstack:devices:lastFilters`. */
|
|
23
33
|
readonly lsKey: string;
|
|
24
34
|
}
|
|
25
35
|
export interface UseDeviceListUrlStateResult {
|
|
26
36
|
readonly state: DeviceListUrlState;
|
|
27
|
-
readonly setView: (view: DeviceListView) => void;
|
|
28
37
|
readonly setPage: (page: number) => void;
|
|
29
38
|
readonly setAddons: (addons: readonly string[]) => void;
|
|
30
39
|
readonly setTypes: (types: readonly string[]) => void;
|
|
@@ -883,8 +883,6 @@ export declare const useMetricsProviderGetAddonStats: typeof trpc.metricsProvide
|
|
|
883
883
|
export declare const useMetricsProviderListNodeProcesses: typeof trpc.metricsProvider.listNodeProcesses.useQuery;
|
|
884
884
|
/** Generated alias around `trpc.metricsProvider.getLoadSeries.useQuery`. */
|
|
885
885
|
export declare const useMetricsProviderGetLoadSeries: typeof trpc.metricsProvider.getLoadSeries.useQuery;
|
|
886
|
-
/** Generated alias around `trpc.metricsProvider.dumpHeapSnapshot.useMutation`. */
|
|
887
|
-
export declare const useMetricsProviderDumpHeapSnapshot: typeof trpc.metricsProvider.dumpHeapSnapshot.useMutation;
|
|
888
886
|
/** Generated alias around `trpc.motion.isDetected.useQuery`. */
|
|
889
887
|
export declare const useMotionIsDetected: typeof trpc.motion.isDetected.useQuery;
|
|
890
888
|
/** Generated alias around `trpc.motion.getStatus.useQuery`. */
|
package/dist/index.cjs
CHANGED
|
@@ -2253,46 +2253,6 @@ var Laugh = createLucideIcon("laugh", [
|
|
|
2253
2253
|
* This source code is licensed under the ISC license.
|
|
2254
2254
|
* See the LICENSE file in the root directory of this source tree.
|
|
2255
2255
|
*/
|
|
2256
|
-
var LayoutGrid = createLucideIcon("layout-grid", [
|
|
2257
|
-
["rect", {
|
|
2258
|
-
width: "7",
|
|
2259
|
-
height: "7",
|
|
2260
|
-
x: "3",
|
|
2261
|
-
y: "3",
|
|
2262
|
-
rx: "1",
|
|
2263
|
-
key: "1g98yp"
|
|
2264
|
-
}],
|
|
2265
|
-
["rect", {
|
|
2266
|
-
width: "7",
|
|
2267
|
-
height: "7",
|
|
2268
|
-
x: "14",
|
|
2269
|
-
y: "3",
|
|
2270
|
-
rx: "1",
|
|
2271
|
-
key: "6d4xhi"
|
|
2272
|
-
}],
|
|
2273
|
-
["rect", {
|
|
2274
|
-
width: "7",
|
|
2275
|
-
height: "7",
|
|
2276
|
-
x: "14",
|
|
2277
|
-
y: "14",
|
|
2278
|
-
rx: "1",
|
|
2279
|
-
key: "nxv5o0"
|
|
2280
|
-
}],
|
|
2281
|
-
["rect", {
|
|
2282
|
-
width: "7",
|
|
2283
|
-
height: "7",
|
|
2284
|
-
x: "3",
|
|
2285
|
-
y: "14",
|
|
2286
|
-
rx: "1",
|
|
2287
|
-
key: "1bb6yr"
|
|
2288
|
-
}]
|
|
2289
|
-
]);
|
|
2290
|
-
/**
|
|
2291
|
-
* @license lucide-react v0.576.0 - ISC
|
|
2292
|
-
*
|
|
2293
|
-
* This source code is licensed under the ISC license.
|
|
2294
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
2295
|
-
*/
|
|
2296
2256
|
var Leaf = createLucideIcon("leaf", [["path", {
|
|
2297
2257
|
d: "M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z",
|
|
2298
2258
|
key: "nnexq3"
|
|
@@ -3956,16 +3916,6 @@ var Sunrise = createLucideIcon("sunrise", [
|
|
|
3956
3916
|
* This source code is licensed under the ISC license.
|
|
3957
3917
|
* See the LICENSE file in the root directory of this source tree.
|
|
3958
3918
|
*/
|
|
3959
|
-
var Table2 = createLucideIcon("table-2", [["path", {
|
|
3960
|
-
d: "M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",
|
|
3961
|
-
key: "gugj83"
|
|
3962
|
-
}]]);
|
|
3963
|
-
/**
|
|
3964
|
-
* @license lucide-react v0.576.0 - ISC
|
|
3965
|
-
*
|
|
3966
|
-
* This source code is licensed under the ISC license.
|
|
3967
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
3968
|
-
*/
|
|
3969
3919
|
var Tag = createLucideIcon("tag", [["path", {
|
|
3970
3920
|
d: "M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",
|
|
3971
3921
|
key: "vktsd0"
|
|
@@ -5803,8 +5753,6 @@ var useMetricsProviderGetAddonStats = trpc.metricsProvider.getAddonStats.useQuer
|
|
|
5803
5753
|
var useMetricsProviderListNodeProcesses = trpc.metricsProvider.listNodeProcesses.useQuery;
|
|
5804
5754
|
/** Generated alias around `trpc.metricsProvider.getLoadSeries.useQuery`. */
|
|
5805
5755
|
var useMetricsProviderGetLoadSeries = trpc.metricsProvider.getLoadSeries.useQuery;
|
|
5806
|
-
/** Generated alias around `trpc.metricsProvider.dumpHeapSnapshot.useMutation`. */
|
|
5807
|
-
var useMetricsProviderDumpHeapSnapshot = trpc.metricsProvider.dumpHeapSnapshot.useMutation;
|
|
5808
5756
|
/** Generated alias around `trpc.motion.isDetected.useQuery`. */
|
|
5809
5757
|
var useMotionIsDetected = trpc.motion.isDetected.useQuery;
|
|
5810
5758
|
/** Generated alias around `trpc.motion.getStatus.useQuery`. */
|
|
@@ -22049,7 +21997,11 @@ function ModelPicker({ models, value, onChange, disabled }) {
|
|
|
22049
21997
|
onChange,
|
|
22050
21998
|
disabled
|
|
22051
21999
|
}),
|
|
22052
|
-
ungrouped.length > 0 && flatSelect(ungrouped, grouped.length > 0 ? "— other models —" : "— select a model —")
|
|
22000
|
+
ungrouped.length > 0 && flatSelect(ungrouped, grouped.length > 0 ? "— other models —" : "— select a model —"),
|
|
22001
|
+
models.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
22002
|
+
className: "text-[11px] text-foreground-subtle",
|
|
22003
|
+
children: "No model is published for this engine format."
|
|
22004
|
+
})
|
|
22053
22005
|
]
|
|
22054
22006
|
});
|
|
22055
22007
|
}
|
|
@@ -42883,7 +42835,7 @@ function ResponsiveTypeFilter({ label, options, selected, onChange }) {
|
|
|
42883
42835
|
/**
|
|
42884
42836
|
* <FilterChips> — top-row filter UI for DeviceList.
|
|
42885
42837
|
*
|
|
42886
|
-
* Layout: [
|
|
42838
|
+
* Layout: [Type chips] [Integration multi-select] [Clear filters]
|
|
42887
42839
|
* (search input lives separately; this component only handles the
|
|
42888
42840
|
* chip-style selectors + the integration dropdown).
|
|
42889
42841
|
*
|
|
@@ -42893,26 +42845,11 @@ function ResponsiveTypeFilter({ label, options, selected, onChange }) {
|
|
|
42893
42845
|
* now a single "Integration" button opens a checkbox menu so several
|
|
42894
42846
|
* integrations can be filtered at once without flooding the toolbar.
|
|
42895
42847
|
*/
|
|
42896
|
-
function FilterChips({
|
|
42848
|
+
function FilterChips({ typeOptions, selectedTypes, onTypesChange, addons, selectedAddons, onAddonsChange, hideAddons = false, query = "", onClearFilters }) {
|
|
42849
|
+
const hasActiveFilter = selectedTypes.length > 0 || selectedAddons.length > 0 || query.trim().length > 0;
|
|
42897
42850
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
42898
42851
|
className: "flex items-center gap-2 flex-wrap",
|
|
42899
42852
|
children: [
|
|
42900
|
-
!hideView && view !== void 0 && onViewChange !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
42901
|
-
className: "inline-flex border border-border rounded-md overflow-hidden",
|
|
42902
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
42903
|
-
type: "button",
|
|
42904
|
-
onClick: () => onViewChange("cards"),
|
|
42905
|
-
className: cn("inline-flex items-center justify-center h-7 w-8 transition-colors", view === "cards" ? "bg-primary/10 text-primary" : "bg-surface text-foreground-subtle hover:text-foreground hover:bg-surface-hover"),
|
|
42906
|
-
"aria-label": "Cards view",
|
|
42907
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LayoutGrid, { className: "h-3.5 w-3.5" })
|
|
42908
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
42909
|
-
type: "button",
|
|
42910
|
-
onClick: () => onViewChange("table"),
|
|
42911
|
-
className: cn("inline-flex items-center justify-center h-7 w-8 border-l border-border transition-colors", view === "table" ? "bg-primary/10 text-primary" : "bg-surface text-foreground-subtle hover:text-foreground hover:bg-surface-hover"),
|
|
42912
|
-
"aria-label": "Table view",
|
|
42913
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Table2, { className: "h-3.5 w-3.5" })
|
|
42914
|
-
})]
|
|
42915
|
-
}),
|
|
42916
42853
|
typeOptions && typeOptions.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ResponsiveTypeFilter, {
|
|
42917
42854
|
label: "Type",
|
|
42918
42855
|
options: typeOptions,
|
|
@@ -42923,6 +42860,12 @@ function FilterChips({ view, onViewChange, hideView = false, typeOptions, select
|
|
|
42923
42860
|
addons,
|
|
42924
42861
|
selected: selectedAddons,
|
|
42925
42862
|
onChange: onAddonsChange
|
|
42863
|
+
}),
|
|
42864
|
+
onClearFilters !== void 0 && hasActiveFilter && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
42865
|
+
type: "button",
|
|
42866
|
+
onClick: onClearFilters,
|
|
42867
|
+
className: "inline-flex items-center gap-1 h-7 rounded-md border border-border bg-surface px-2 text-[10.5px] text-foreground-subtle transition-colors hover:text-foreground hover:border-foreground-subtle/40",
|
|
42868
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(X, { className: "h-3 w-3" }), "Clear filters"]
|
|
42926
42869
|
})
|
|
42927
42870
|
]
|
|
42928
42871
|
});
|
|
@@ -43030,19 +42973,19 @@ function DeviceListEmptyState({ variant, onClearFilters }) {
|
|
|
43030
42973
|
* `popstate` (back/forward navigation). Writes via
|
|
43031
42974
|
* `history.replaceState` on every setter.
|
|
43032
42975
|
* - Fallback: `localStorage[<lsKey>:lastFilters]` — JSON object
|
|
43033
|
-
* `{
|
|
42976
|
+
* `{addon, type, q}` (NEVER page, NEVER view). Used to rehydrate when
|
|
43034
42977
|
* the URL has no params.
|
|
43035
42978
|
* - Defaults stripped from URL — when the value is the default AND
|
|
43036
42979
|
* not pinned by LS, it's removed (URL stays canonical).
|
|
43037
42980
|
*
|
|
43038
42981
|
* Two scopes:
|
|
43039
|
-
* - 'root' — uses `
|
|
42982
|
+
* - 'root' — uses `page`, `addon`, `type`, `q`
|
|
43040
42983
|
* - 'nested' — uses `deviceView`, `devicePage`, `deviceType`,
|
|
43041
42984
|
* `deviceQ` (no `deviceAddon` — outer ?expand= locks it). Used
|
|
43042
42985
|
* by Integrations page expanded row.
|
|
43043
42986
|
*
|
|
43044
42987
|
* Page reset rule: changing addon / type / q resets page to 1.
|
|
43045
|
-
* `clearFilters` clears addon / type / q
|
|
42988
|
+
* `clearFilters` clears addon / type / q.
|
|
43046
42989
|
*/
|
|
43047
42990
|
/** Parse a comma-joined param/LS value into a clean id array. */
|
|
43048
42991
|
function parseCsv(raw) {
|
|
@@ -43079,27 +43022,24 @@ function writeToLS(lsKey, filters) {
|
|
|
43079
43022
|
localStorage.setItem(`camstack:${lsKey}:lastFilters`, JSON.stringify(filters));
|
|
43080
43023
|
} catch {}
|
|
43081
43024
|
}
|
|
43082
|
-
function readUrlState(scope,
|
|
43025
|
+
function readUrlState(scope, ls) {
|
|
43083
43026
|
const params = new URLSearchParams(window.location.search);
|
|
43084
|
-
const rawView = params.get(paramKey(scope, "view"));
|
|
43085
|
-
const view = rawView === "cards" || rawView === "table" ? rawView : ls.view ?? defaultView;
|
|
43086
43027
|
const rawPage = params.get(paramKey(scope, "page"));
|
|
43087
43028
|
const pageNum = rawPage ? parseInt(rawPage, 10) : 1;
|
|
43088
43029
|
return {
|
|
43089
|
-
view,
|
|
43090
43030
|
page: Number.isFinite(pageNum) && pageNum >= 1 ? pageNum : 1,
|
|
43091
43031
|
addons: parseCsv(params.get(paramKey(scope, "addons")) ?? ls.addon ?? null),
|
|
43092
43032
|
types: parseCsv(params.get(paramKey(scope, "types")) ?? ls.type ?? null),
|
|
43093
43033
|
q: params.get(paramKey(scope, "q")) ?? ls.q ?? ""
|
|
43094
43034
|
};
|
|
43095
43035
|
}
|
|
43096
|
-
function writeUrlState(scope, next
|
|
43036
|
+
function writeUrlState(scope, next) {
|
|
43097
43037
|
const params = new URLSearchParams(window.location.search);
|
|
43098
43038
|
const set = (k, v) => {
|
|
43099
43039
|
if (v === null || v === "") params.delete(k);
|
|
43100
43040
|
else params.set(k, v);
|
|
43101
43041
|
};
|
|
43102
|
-
set(paramKey(scope, "view"),
|
|
43042
|
+
set(paramKey(scope, "view"), null);
|
|
43103
43043
|
set(paramKey(scope, "page"), next.page === 1 ? null : String(next.page));
|
|
43104
43044
|
set(paramKey(scope, "addons"), next.addons.length > 0 ? next.addons.join(",") : null);
|
|
43105
43045
|
set(paramKey(scope, "types"), next.types.length > 0 ? next.types.join(",") : null);
|
|
@@ -43109,47 +43049,34 @@ function writeUrlState(scope, next, defaultView) {
|
|
|
43109
43049
|
window.history.replaceState(null, "", url);
|
|
43110
43050
|
}
|
|
43111
43051
|
function useDeviceListUrlState(options) {
|
|
43112
|
-
const { scope,
|
|
43052
|
+
const { scope, lsKey } = options;
|
|
43113
43053
|
const [state, setState] = (0, react$1.useState)(() => {
|
|
43114
|
-
return readUrlState(scope,
|
|
43054
|
+
return readUrlState(scope, readFromLS(lsKey));
|
|
43115
43055
|
});
|
|
43116
43056
|
const stateRef = (0, react$1.useRef)(state);
|
|
43117
43057
|
stateRef.current = state;
|
|
43118
43058
|
(0, react$1.useEffect)(() => {
|
|
43119
43059
|
const handler = () => {
|
|
43120
|
-
const next = readUrlState(scope,
|
|
43060
|
+
const next = readUrlState(scope, readFromLS(lsKey));
|
|
43121
43061
|
stateRef.current = next;
|
|
43122
43062
|
setState(next);
|
|
43123
43063
|
};
|
|
43124
43064
|
window.addEventListener("popstate", handler);
|
|
43125
43065
|
return () => window.removeEventListener("popstate", handler);
|
|
43126
|
-
}, [
|
|
43127
|
-
scope,
|
|
43128
|
-
defaultView,
|
|
43129
|
-
lsKey
|
|
43130
|
-
]);
|
|
43066
|
+
}, [scope, lsKey]);
|
|
43131
43067
|
const apply = (0, react$1.useCallback)((mutate) => {
|
|
43132
43068
|
const next = mutate(stateRef.current);
|
|
43133
43069
|
stateRef.current = next;
|
|
43134
43070
|
setState(next);
|
|
43135
|
-
writeUrlState(scope, next
|
|
43071
|
+
writeUrlState(scope, next);
|
|
43136
43072
|
writeToLS(lsKey, {
|
|
43137
|
-
view: next.view,
|
|
43138
43073
|
addon: next.addons.length > 0 ? next.addons.join(",") : null,
|
|
43139
43074
|
type: next.types.length > 0 ? next.types.join(",") : null,
|
|
43140
43075
|
q: next.q
|
|
43141
43076
|
});
|
|
43142
|
-
}, [
|
|
43143
|
-
scope,
|
|
43144
|
-
defaultView,
|
|
43145
|
-
lsKey
|
|
43146
|
-
]);
|
|
43077
|
+
}, [scope, lsKey]);
|
|
43147
43078
|
return {
|
|
43148
43079
|
state,
|
|
43149
|
-
setView: (0, react$1.useCallback)((view) => apply((s) => ({
|
|
43150
|
-
...s,
|
|
43151
|
-
view
|
|
43152
|
-
})), [apply]),
|
|
43153
43080
|
setPage: (0, react$1.useCallback)((page) => apply((s) => ({
|
|
43154
43081
|
...s,
|
|
43155
43082
|
page
|
|
@@ -43179,32 +43106,6 @@ function useDeviceListUrlState(options) {
|
|
|
43179
43106
|
};
|
|
43180
43107
|
}
|
|
43181
43108
|
//#endregion
|
|
43182
|
-
//#region src/composites/device-list/cards-layout.tsx
|
|
43183
|
-
function CardsLayout({ rows, accessoriesByParent, trpc, resolveIntegrationIcon, resolveParent, onNavigate, renderRowAction, selectable, rowClickSelects, activeSelected, onToggleSelection }) {
|
|
43184
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
43185
|
-
className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3 items-stretch",
|
|
43186
|
-
children: rows.map((d) => {
|
|
43187
|
-
const accessories = accessoriesByParent.get(d.id) ?? [];
|
|
43188
|
-
const selection = selectable ? {
|
|
43189
|
-
selected: activeSelected.has(d.id),
|
|
43190
|
-
onToggle: () => onToggleSelection(d.id)
|
|
43191
|
-
} : void 0;
|
|
43192
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DeviceItem, {
|
|
43193
|
-
trpc,
|
|
43194
|
-
device: d,
|
|
43195
|
-
view: "card",
|
|
43196
|
-
integrationIcon: resolveIntegrationIcon?.(d.addonId) ?? null,
|
|
43197
|
-
parent: d.parentDeviceId !== null ? resolveParent?.(d.parentDeviceId) ?? null : null,
|
|
43198
|
-
children: accessories,
|
|
43199
|
-
onNavigate: onNavigate ?? void 0,
|
|
43200
|
-
renderRowAction: renderRowAction ?? void 0,
|
|
43201
|
-
selection,
|
|
43202
|
-
rowClickSelects
|
|
43203
|
-
}, d.id);
|
|
43204
|
-
})
|
|
43205
|
-
});
|
|
43206
|
-
}
|
|
43207
|
-
//#endregion
|
|
43208
43109
|
//#region src/composites/device-list/sortable-header.tsx
|
|
43209
43110
|
function SortableHeaderButton({ columnId, label, sort, onSort }) {
|
|
43210
43111
|
const active = sort !== null && sort.columnId === columnId;
|
|
@@ -43528,7 +43429,7 @@ var DEFAULT_PAGE_SIZE = {
|
|
|
43528
43429
|
table: 50
|
|
43529
43430
|
};
|
|
43530
43431
|
function DeviceModeList(props) {
|
|
43531
|
-
const { devices, trpc, context = "devices",
|
|
43432
|
+
const { devices, trpc, context = "devices", filters, forceAddon, resolveIntegrationIcon, resolveParent, onNavigate, pageSize = DEFAULT_PAGE_SIZE, urlScope = "root", lsKey = urlScope === "root" ? "devices" : "integrations:nested", renderRowAction, onDeleteDevice, selectable = false, selectedIds, onSelectionChange, batchActions } = props;
|
|
43532
43433
|
const [batchActive, setBatchActive] = (0, react$1.useState)(false);
|
|
43533
43434
|
const [internalSelected, setInternalSelected] = (0, react$1.useState)(/* @__PURE__ */ new Set());
|
|
43534
43435
|
const activeSelected = selectedIds ?? internalSelected;
|
|
@@ -43556,12 +43457,10 @@ function DeviceModeList(props) {
|
|
|
43556
43457
|
const typeFilterOptions = (0, react$1.useMemo)(() => typeOptionsOverride ?? allDeviceTypeFilterOptions(), [typeOptionsOverride]);
|
|
43557
43458
|
const url = useDeviceListUrlState({
|
|
43558
43459
|
scope: urlScope,
|
|
43559
|
-
defaultView,
|
|
43560
43460
|
lsKey
|
|
43561
43461
|
});
|
|
43562
|
-
const view = url.state.view;
|
|
43563
43462
|
const [tablePageSize, setTablePageSize] = useDeviceListPageSize(pageSize.table);
|
|
43564
|
-
const currentPageSize =
|
|
43463
|
+
const currentPageSize = tablePageSize;
|
|
43565
43464
|
const [searchInput, setSearchInput] = (0, react$1.useState)(url.state.q);
|
|
43566
43465
|
const debouncedSearch = useDebouncedString(searchInput, 300);
|
|
43567
43466
|
(0, react$1.useEffect)(() => {
|
|
@@ -43621,13 +43520,16 @@ function DeviceModeList(props) {
|
|
|
43621
43520
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
43622
43521
|
className: "flex items-center justify-between gap-3 flex-wrap",
|
|
43623
43522
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(FilterChips, {
|
|
43624
|
-
view,
|
|
43625
|
-
onViewChange: url.setView,
|
|
43626
43523
|
typeOptions: typeFilterOptions,
|
|
43627
43524
|
selectedTypes: url.state.types,
|
|
43628
43525
|
onTypesChange: url.setTypes,
|
|
43629
43526
|
addons: filters?.addons,
|
|
43630
43527
|
selectedAddons: url.state.addons,
|
|
43528
|
+
query: url.state.q,
|
|
43529
|
+
onClearFilters: () => {
|
|
43530
|
+
setSearchInput("");
|
|
43531
|
+
url.clearFilters();
|
|
43532
|
+
},
|
|
43631
43533
|
onAddonsChange: url.setAddons,
|
|
43632
43534
|
hideAddons: forceAddon !== void 0
|
|
43633
43535
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -43665,21 +43567,6 @@ function DeviceModeList(props) {
|
|
|
43665
43567
|
isEmpty ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DeviceListEmptyState, {
|
|
43666
43568
|
variant: isFiltered ? "filtered" : "nofilter",
|
|
43667
43569
|
onClearFilters: isFiltered ? url.clearFilters : void 0
|
|
43668
|
-
}) : view === "cards" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ContainerChildrenProvider, {
|
|
43669
|
-
value: grouped.accessoriesByParent,
|
|
43670
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CardsLayout, {
|
|
43671
|
-
rows: pageRows,
|
|
43672
|
-
accessoriesByParent: grouped.accessoriesByParent,
|
|
43673
|
-
trpc,
|
|
43674
|
-
resolveIntegrationIcon: resolveIntegrationIcon ?? null,
|
|
43675
|
-
resolveParent: resolveParent ?? null,
|
|
43676
|
-
onNavigate: onNavigate ?? null,
|
|
43677
|
-
renderRowAction: renderRowAction ?? null,
|
|
43678
|
-
selectable: showCheckboxes,
|
|
43679
|
-
rowClickSelects,
|
|
43680
|
-
activeSelected,
|
|
43681
|
-
onToggleSelection: toggleSelection
|
|
43682
|
-
})
|
|
43683
43570
|
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ContainerChildrenProvider, {
|
|
43684
43571
|
value: grouped.accessoriesByParent,
|
|
43685
43572
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableLayout, {
|
|
@@ -43702,7 +43589,7 @@ function DeviceModeList(props) {
|
|
|
43702
43589
|
onToggleSelection: toggleSelection
|
|
43703
43590
|
})
|
|
43704
43591
|
}),
|
|
43705
|
-
!isEmpty &&
|
|
43592
|
+
!isEmpty && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
43706
43593
|
className: "flex items-center justify-between gap-4 flex-wrap pt-2 text-[11px] text-foreground-subtle",
|
|
43707
43594
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
43708
43595
|
className: "inline-flex items-center gap-2",
|
|
@@ -43735,12 +43622,6 @@ function DeviceModeList(props) {
|
|
|
43735
43622
|
onPageChange: url.setPage
|
|
43736
43623
|
})]
|
|
43737
43624
|
}),
|
|
43738
|
-
!isEmpty && view === "cards" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Pagination, {
|
|
43739
|
-
currentPage: safePage,
|
|
43740
|
-
totalItems,
|
|
43741
|
-
pageSize: currentPageSize,
|
|
43742
|
-
onPageChange: url.setPage
|
|
43743
|
-
}),
|
|
43744
43625
|
forceAddon === void 0 && isFiltered && totalItems > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", {
|
|
43745
43626
|
className: "text-[11px] text-foreground-subtle",
|
|
43746
43627
|
children: [
|
|
@@ -44216,7 +44097,6 @@ function DeviceExportPanel({ addonId, trpc, onOpenDevice }) {
|
|
|
44216
44097
|
}) : hasSupportedKinds && candidateDevices.length > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DeviceList, {
|
|
44217
44098
|
devices: candidateDevices,
|
|
44218
44099
|
trpc,
|
|
44219
|
-
defaultView: "table",
|
|
44220
44100
|
filters: { typeOptions: supportedTypeOptions },
|
|
44221
44101
|
urlScope: "nested",
|
|
44222
44102
|
lsKey: `device-export:${addonId}`,
|
|
@@ -50022,7 +49902,6 @@ exports.useMeshNetworkLogout = useMeshNetworkLogout;
|
|
|
50022
49902
|
exports.useMeshNetworkStartLogin = useMeshNetworkStartLogin;
|
|
50023
49903
|
exports.useMeshNetworkTestConnection = useMeshNetworkTestConnection;
|
|
50024
49904
|
exports.useMetricsProviderCollectSnapshot = useMetricsProviderCollectSnapshot;
|
|
50025
|
-
exports.useMetricsProviderDumpHeapSnapshot = useMetricsProviderDumpHeapSnapshot;
|
|
50026
49905
|
exports.useMetricsProviderGetAddonStats = useMetricsProviderGetAddonStats;
|
|
50027
49906
|
exports.useMetricsProviderGetCached = useMetricsProviderGetCached;
|
|
50028
49907
|
exports.useMetricsProviderGetCpuTemperature = useMetricsProviderGetCpuTemperature;
|
package/dist/index.js
CHANGED
|
@@ -2229,46 +2229,6 @@ var Laugh = createLucideIcon("laugh", [
|
|
|
2229
2229
|
* This source code is licensed under the ISC license.
|
|
2230
2230
|
* See the LICENSE file in the root directory of this source tree.
|
|
2231
2231
|
*/
|
|
2232
|
-
var LayoutGrid = createLucideIcon("layout-grid", [
|
|
2233
|
-
["rect", {
|
|
2234
|
-
width: "7",
|
|
2235
|
-
height: "7",
|
|
2236
|
-
x: "3",
|
|
2237
|
-
y: "3",
|
|
2238
|
-
rx: "1",
|
|
2239
|
-
key: "1g98yp"
|
|
2240
|
-
}],
|
|
2241
|
-
["rect", {
|
|
2242
|
-
width: "7",
|
|
2243
|
-
height: "7",
|
|
2244
|
-
x: "14",
|
|
2245
|
-
y: "3",
|
|
2246
|
-
rx: "1",
|
|
2247
|
-
key: "6d4xhi"
|
|
2248
|
-
}],
|
|
2249
|
-
["rect", {
|
|
2250
|
-
width: "7",
|
|
2251
|
-
height: "7",
|
|
2252
|
-
x: "14",
|
|
2253
|
-
y: "14",
|
|
2254
|
-
rx: "1",
|
|
2255
|
-
key: "nxv5o0"
|
|
2256
|
-
}],
|
|
2257
|
-
["rect", {
|
|
2258
|
-
width: "7",
|
|
2259
|
-
height: "7",
|
|
2260
|
-
x: "3",
|
|
2261
|
-
y: "14",
|
|
2262
|
-
rx: "1",
|
|
2263
|
-
key: "1bb6yr"
|
|
2264
|
-
}]
|
|
2265
|
-
]);
|
|
2266
|
-
/**
|
|
2267
|
-
* @license lucide-react v0.576.0 - ISC
|
|
2268
|
-
*
|
|
2269
|
-
* This source code is licensed under the ISC license.
|
|
2270
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
2271
|
-
*/
|
|
2272
2232
|
var Leaf = createLucideIcon("leaf", [["path", {
|
|
2273
2233
|
d: "M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z",
|
|
2274
2234
|
key: "nnexq3"
|
|
@@ -3932,16 +3892,6 @@ var Sunrise = createLucideIcon("sunrise", [
|
|
|
3932
3892
|
* This source code is licensed under the ISC license.
|
|
3933
3893
|
* See the LICENSE file in the root directory of this source tree.
|
|
3934
3894
|
*/
|
|
3935
|
-
var Table2 = createLucideIcon("table-2", [["path", {
|
|
3936
|
-
d: "M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",
|
|
3937
|
-
key: "gugj83"
|
|
3938
|
-
}]]);
|
|
3939
|
-
/**
|
|
3940
|
-
* @license lucide-react v0.576.0 - ISC
|
|
3941
|
-
*
|
|
3942
|
-
* This source code is licensed under the ISC license.
|
|
3943
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
3944
|
-
*/
|
|
3945
3895
|
var Tag = createLucideIcon("tag", [["path", {
|
|
3946
3896
|
d: "M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",
|
|
3947
3897
|
key: "vktsd0"
|
|
@@ -5779,8 +5729,6 @@ var useMetricsProviderGetAddonStats = trpc.metricsProvider.getAddonStats.useQuer
|
|
|
5779
5729
|
var useMetricsProviderListNodeProcesses = trpc.metricsProvider.listNodeProcesses.useQuery;
|
|
5780
5730
|
/** Generated alias around `trpc.metricsProvider.getLoadSeries.useQuery`. */
|
|
5781
5731
|
var useMetricsProviderGetLoadSeries = trpc.metricsProvider.getLoadSeries.useQuery;
|
|
5782
|
-
/** Generated alias around `trpc.metricsProvider.dumpHeapSnapshot.useMutation`. */
|
|
5783
|
-
var useMetricsProviderDumpHeapSnapshot = trpc.metricsProvider.dumpHeapSnapshot.useMutation;
|
|
5784
5732
|
/** Generated alias around `trpc.motion.isDetected.useQuery`. */
|
|
5785
5733
|
var useMotionIsDetected = trpc.motion.isDetected.useQuery;
|
|
5786
5734
|
/** Generated alias around `trpc.motion.getStatus.useQuery`. */
|
|
@@ -22025,7 +21973,11 @@ function ModelPicker({ models, value, onChange, disabled }) {
|
|
|
22025
21973
|
onChange,
|
|
22026
21974
|
disabled
|
|
22027
21975
|
}),
|
|
22028
|
-
ungrouped.length > 0 && flatSelect(ungrouped, grouped.length > 0 ? "— other models —" : "— select a model —")
|
|
21976
|
+
ungrouped.length > 0 && flatSelect(ungrouped, grouped.length > 0 ? "— other models —" : "— select a model —"),
|
|
21977
|
+
models.length === 0 && /* @__PURE__ */ jsx("p", {
|
|
21978
|
+
className: "text-[11px] text-foreground-subtle",
|
|
21979
|
+
children: "No model is published for this engine format."
|
|
21980
|
+
})
|
|
22029
21981
|
]
|
|
22030
21982
|
});
|
|
22031
21983
|
}
|
|
@@ -42859,7 +42811,7 @@ function ResponsiveTypeFilter({ label, options, selected, onChange }) {
|
|
|
42859
42811
|
/**
|
|
42860
42812
|
* <FilterChips> — top-row filter UI for DeviceList.
|
|
42861
42813
|
*
|
|
42862
|
-
* Layout: [
|
|
42814
|
+
* Layout: [Type chips] [Integration multi-select] [Clear filters]
|
|
42863
42815
|
* (search input lives separately; this component only handles the
|
|
42864
42816
|
* chip-style selectors + the integration dropdown).
|
|
42865
42817
|
*
|
|
@@ -42869,26 +42821,11 @@ function ResponsiveTypeFilter({ label, options, selected, onChange }) {
|
|
|
42869
42821
|
* now a single "Integration" button opens a checkbox menu so several
|
|
42870
42822
|
* integrations can be filtered at once without flooding the toolbar.
|
|
42871
42823
|
*/
|
|
42872
|
-
function FilterChips({
|
|
42824
|
+
function FilterChips({ typeOptions, selectedTypes, onTypesChange, addons, selectedAddons, onAddonsChange, hideAddons = false, query = "", onClearFilters }) {
|
|
42825
|
+
const hasActiveFilter = selectedTypes.length > 0 || selectedAddons.length > 0 || query.trim().length > 0;
|
|
42873
42826
|
return /* @__PURE__ */ jsxs("div", {
|
|
42874
42827
|
className: "flex items-center gap-2 flex-wrap",
|
|
42875
42828
|
children: [
|
|
42876
|
-
!hideView && view !== void 0 && onViewChange !== void 0 && /* @__PURE__ */ jsxs("span", {
|
|
42877
|
-
className: "inline-flex border border-border rounded-md overflow-hidden",
|
|
42878
|
-
children: [/* @__PURE__ */ jsx("button", {
|
|
42879
|
-
type: "button",
|
|
42880
|
-
onClick: () => onViewChange("cards"),
|
|
42881
|
-
className: cn("inline-flex items-center justify-center h-7 w-8 transition-colors", view === "cards" ? "bg-primary/10 text-primary" : "bg-surface text-foreground-subtle hover:text-foreground hover:bg-surface-hover"),
|
|
42882
|
-
"aria-label": "Cards view",
|
|
42883
|
-
children: /* @__PURE__ */ jsx(LayoutGrid, { className: "h-3.5 w-3.5" })
|
|
42884
|
-
}), /* @__PURE__ */ jsx("button", {
|
|
42885
|
-
type: "button",
|
|
42886
|
-
onClick: () => onViewChange("table"),
|
|
42887
|
-
className: cn("inline-flex items-center justify-center h-7 w-8 border-l border-border transition-colors", view === "table" ? "bg-primary/10 text-primary" : "bg-surface text-foreground-subtle hover:text-foreground hover:bg-surface-hover"),
|
|
42888
|
-
"aria-label": "Table view",
|
|
42889
|
-
children: /* @__PURE__ */ jsx(Table2, { className: "h-3.5 w-3.5" })
|
|
42890
|
-
})]
|
|
42891
|
-
}),
|
|
42892
42829
|
typeOptions && typeOptions.length > 0 && /* @__PURE__ */ jsx(ResponsiveTypeFilter, {
|
|
42893
42830
|
label: "Type",
|
|
42894
42831
|
options: typeOptions,
|
|
@@ -42899,6 +42836,12 @@ function FilterChips({ view, onViewChange, hideView = false, typeOptions, select
|
|
|
42899
42836
|
addons,
|
|
42900
42837
|
selected: selectedAddons,
|
|
42901
42838
|
onChange: onAddonsChange
|
|
42839
|
+
}),
|
|
42840
|
+
onClearFilters !== void 0 && hasActiveFilter && /* @__PURE__ */ jsxs("button", {
|
|
42841
|
+
type: "button",
|
|
42842
|
+
onClick: onClearFilters,
|
|
42843
|
+
className: "inline-flex items-center gap-1 h-7 rounded-md border border-border bg-surface px-2 text-[10.5px] text-foreground-subtle transition-colors hover:text-foreground hover:border-foreground-subtle/40",
|
|
42844
|
+
children: [/* @__PURE__ */ jsx(X, { className: "h-3 w-3" }), "Clear filters"]
|
|
42902
42845
|
})
|
|
42903
42846
|
]
|
|
42904
42847
|
});
|
|
@@ -43006,19 +42949,19 @@ function DeviceListEmptyState({ variant, onClearFilters }) {
|
|
|
43006
42949
|
* `popstate` (back/forward navigation). Writes via
|
|
43007
42950
|
* `history.replaceState` on every setter.
|
|
43008
42951
|
* - Fallback: `localStorage[<lsKey>:lastFilters]` — JSON object
|
|
43009
|
-
* `{
|
|
42952
|
+
* `{addon, type, q}` (NEVER page, NEVER view). Used to rehydrate when
|
|
43010
42953
|
* the URL has no params.
|
|
43011
42954
|
* - Defaults stripped from URL — when the value is the default AND
|
|
43012
42955
|
* not pinned by LS, it's removed (URL stays canonical).
|
|
43013
42956
|
*
|
|
43014
42957
|
* Two scopes:
|
|
43015
|
-
* - 'root' — uses `
|
|
42958
|
+
* - 'root' — uses `page`, `addon`, `type`, `q`
|
|
43016
42959
|
* - 'nested' — uses `deviceView`, `devicePage`, `deviceType`,
|
|
43017
42960
|
* `deviceQ` (no `deviceAddon` — outer ?expand= locks it). Used
|
|
43018
42961
|
* by Integrations page expanded row.
|
|
43019
42962
|
*
|
|
43020
42963
|
* Page reset rule: changing addon / type / q resets page to 1.
|
|
43021
|
-
* `clearFilters` clears addon / type / q
|
|
42964
|
+
* `clearFilters` clears addon / type / q.
|
|
43022
42965
|
*/
|
|
43023
42966
|
/** Parse a comma-joined param/LS value into a clean id array. */
|
|
43024
42967
|
function parseCsv(raw) {
|
|
@@ -43055,27 +42998,24 @@ function writeToLS(lsKey, filters) {
|
|
|
43055
42998
|
localStorage.setItem(`camstack:${lsKey}:lastFilters`, JSON.stringify(filters));
|
|
43056
42999
|
} catch {}
|
|
43057
43000
|
}
|
|
43058
|
-
function readUrlState(scope,
|
|
43001
|
+
function readUrlState(scope, ls) {
|
|
43059
43002
|
const params = new URLSearchParams(window.location.search);
|
|
43060
|
-
const rawView = params.get(paramKey(scope, "view"));
|
|
43061
|
-
const view = rawView === "cards" || rawView === "table" ? rawView : ls.view ?? defaultView;
|
|
43062
43003
|
const rawPage = params.get(paramKey(scope, "page"));
|
|
43063
43004
|
const pageNum = rawPage ? parseInt(rawPage, 10) : 1;
|
|
43064
43005
|
return {
|
|
43065
|
-
view,
|
|
43066
43006
|
page: Number.isFinite(pageNum) && pageNum >= 1 ? pageNum : 1,
|
|
43067
43007
|
addons: parseCsv(params.get(paramKey(scope, "addons")) ?? ls.addon ?? null),
|
|
43068
43008
|
types: parseCsv(params.get(paramKey(scope, "types")) ?? ls.type ?? null),
|
|
43069
43009
|
q: params.get(paramKey(scope, "q")) ?? ls.q ?? ""
|
|
43070
43010
|
};
|
|
43071
43011
|
}
|
|
43072
|
-
function writeUrlState(scope, next
|
|
43012
|
+
function writeUrlState(scope, next) {
|
|
43073
43013
|
const params = new URLSearchParams(window.location.search);
|
|
43074
43014
|
const set = (k, v) => {
|
|
43075
43015
|
if (v === null || v === "") params.delete(k);
|
|
43076
43016
|
else params.set(k, v);
|
|
43077
43017
|
};
|
|
43078
|
-
set(paramKey(scope, "view"),
|
|
43018
|
+
set(paramKey(scope, "view"), null);
|
|
43079
43019
|
set(paramKey(scope, "page"), next.page === 1 ? null : String(next.page));
|
|
43080
43020
|
set(paramKey(scope, "addons"), next.addons.length > 0 ? next.addons.join(",") : null);
|
|
43081
43021
|
set(paramKey(scope, "types"), next.types.length > 0 ? next.types.join(",") : null);
|
|
@@ -43085,47 +43025,34 @@ function writeUrlState(scope, next, defaultView) {
|
|
|
43085
43025
|
window.history.replaceState(null, "", url);
|
|
43086
43026
|
}
|
|
43087
43027
|
function useDeviceListUrlState(options) {
|
|
43088
|
-
const { scope,
|
|
43028
|
+
const { scope, lsKey } = options;
|
|
43089
43029
|
const [state, setState] = useState(() => {
|
|
43090
|
-
return readUrlState(scope,
|
|
43030
|
+
return readUrlState(scope, readFromLS(lsKey));
|
|
43091
43031
|
});
|
|
43092
43032
|
const stateRef = useRef(state);
|
|
43093
43033
|
stateRef.current = state;
|
|
43094
43034
|
useEffect(() => {
|
|
43095
43035
|
const handler = () => {
|
|
43096
|
-
const next = readUrlState(scope,
|
|
43036
|
+
const next = readUrlState(scope, readFromLS(lsKey));
|
|
43097
43037
|
stateRef.current = next;
|
|
43098
43038
|
setState(next);
|
|
43099
43039
|
};
|
|
43100
43040
|
window.addEventListener("popstate", handler);
|
|
43101
43041
|
return () => window.removeEventListener("popstate", handler);
|
|
43102
|
-
}, [
|
|
43103
|
-
scope,
|
|
43104
|
-
defaultView,
|
|
43105
|
-
lsKey
|
|
43106
|
-
]);
|
|
43042
|
+
}, [scope, lsKey]);
|
|
43107
43043
|
const apply = useCallback((mutate) => {
|
|
43108
43044
|
const next = mutate(stateRef.current);
|
|
43109
43045
|
stateRef.current = next;
|
|
43110
43046
|
setState(next);
|
|
43111
|
-
writeUrlState(scope, next
|
|
43047
|
+
writeUrlState(scope, next);
|
|
43112
43048
|
writeToLS(lsKey, {
|
|
43113
|
-
view: next.view,
|
|
43114
43049
|
addon: next.addons.length > 0 ? next.addons.join(",") : null,
|
|
43115
43050
|
type: next.types.length > 0 ? next.types.join(",") : null,
|
|
43116
43051
|
q: next.q
|
|
43117
43052
|
});
|
|
43118
|
-
}, [
|
|
43119
|
-
scope,
|
|
43120
|
-
defaultView,
|
|
43121
|
-
lsKey
|
|
43122
|
-
]);
|
|
43053
|
+
}, [scope, lsKey]);
|
|
43123
43054
|
return {
|
|
43124
43055
|
state,
|
|
43125
|
-
setView: useCallback((view) => apply((s) => ({
|
|
43126
|
-
...s,
|
|
43127
|
-
view
|
|
43128
|
-
})), [apply]),
|
|
43129
43056
|
setPage: useCallback((page) => apply((s) => ({
|
|
43130
43057
|
...s,
|
|
43131
43058
|
page
|
|
@@ -43155,32 +43082,6 @@ function useDeviceListUrlState(options) {
|
|
|
43155
43082
|
};
|
|
43156
43083
|
}
|
|
43157
43084
|
//#endregion
|
|
43158
|
-
//#region src/composites/device-list/cards-layout.tsx
|
|
43159
|
-
function CardsLayout({ rows, accessoriesByParent, trpc, resolveIntegrationIcon, resolveParent, onNavigate, renderRowAction, selectable, rowClickSelects, activeSelected, onToggleSelection }) {
|
|
43160
|
-
return /* @__PURE__ */ jsx("div", {
|
|
43161
|
-
className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3 items-stretch",
|
|
43162
|
-
children: rows.map((d) => {
|
|
43163
|
-
const accessories = accessoriesByParent.get(d.id) ?? [];
|
|
43164
|
-
const selection = selectable ? {
|
|
43165
|
-
selected: activeSelected.has(d.id),
|
|
43166
|
-
onToggle: () => onToggleSelection(d.id)
|
|
43167
|
-
} : void 0;
|
|
43168
|
-
return /* @__PURE__ */ jsx(DeviceItem, {
|
|
43169
|
-
trpc,
|
|
43170
|
-
device: d,
|
|
43171
|
-
view: "card",
|
|
43172
|
-
integrationIcon: resolveIntegrationIcon?.(d.addonId) ?? null,
|
|
43173
|
-
parent: d.parentDeviceId !== null ? resolveParent?.(d.parentDeviceId) ?? null : null,
|
|
43174
|
-
children: accessories,
|
|
43175
|
-
onNavigate: onNavigate ?? void 0,
|
|
43176
|
-
renderRowAction: renderRowAction ?? void 0,
|
|
43177
|
-
selection,
|
|
43178
|
-
rowClickSelects
|
|
43179
|
-
}, d.id);
|
|
43180
|
-
})
|
|
43181
|
-
});
|
|
43182
|
-
}
|
|
43183
|
-
//#endregion
|
|
43184
43085
|
//#region src/composites/device-list/sortable-header.tsx
|
|
43185
43086
|
function SortableHeaderButton({ columnId, label, sort, onSort }) {
|
|
43186
43087
|
const active = sort !== null && sort.columnId === columnId;
|
|
@@ -43504,7 +43405,7 @@ var DEFAULT_PAGE_SIZE = {
|
|
|
43504
43405
|
table: 50
|
|
43505
43406
|
};
|
|
43506
43407
|
function DeviceModeList(props) {
|
|
43507
|
-
const { devices, trpc, context = "devices",
|
|
43408
|
+
const { devices, trpc, context = "devices", filters, forceAddon, resolveIntegrationIcon, resolveParent, onNavigate, pageSize = DEFAULT_PAGE_SIZE, urlScope = "root", lsKey = urlScope === "root" ? "devices" : "integrations:nested", renderRowAction, onDeleteDevice, selectable = false, selectedIds, onSelectionChange, batchActions } = props;
|
|
43508
43409
|
const [batchActive, setBatchActive] = useState(false);
|
|
43509
43410
|
const [internalSelected, setInternalSelected] = useState(/* @__PURE__ */ new Set());
|
|
43510
43411
|
const activeSelected = selectedIds ?? internalSelected;
|
|
@@ -43532,12 +43433,10 @@ function DeviceModeList(props) {
|
|
|
43532
43433
|
const typeFilterOptions = useMemo(() => typeOptionsOverride ?? allDeviceTypeFilterOptions(), [typeOptionsOverride]);
|
|
43533
43434
|
const url = useDeviceListUrlState({
|
|
43534
43435
|
scope: urlScope,
|
|
43535
|
-
defaultView,
|
|
43536
43436
|
lsKey
|
|
43537
43437
|
});
|
|
43538
|
-
const view = url.state.view;
|
|
43539
43438
|
const [tablePageSize, setTablePageSize] = useDeviceListPageSize(pageSize.table);
|
|
43540
|
-
const currentPageSize =
|
|
43439
|
+
const currentPageSize = tablePageSize;
|
|
43541
43440
|
const [searchInput, setSearchInput] = useState(url.state.q);
|
|
43542
43441
|
const debouncedSearch = useDebouncedString(searchInput, 300);
|
|
43543
43442
|
useEffect(() => {
|
|
@@ -43597,13 +43496,16 @@ function DeviceModeList(props) {
|
|
|
43597
43496
|
/* @__PURE__ */ jsxs("div", {
|
|
43598
43497
|
className: "flex items-center justify-between gap-3 flex-wrap",
|
|
43599
43498
|
children: [/* @__PURE__ */ jsx(FilterChips, {
|
|
43600
|
-
view,
|
|
43601
|
-
onViewChange: url.setView,
|
|
43602
43499
|
typeOptions: typeFilterOptions,
|
|
43603
43500
|
selectedTypes: url.state.types,
|
|
43604
43501
|
onTypesChange: url.setTypes,
|
|
43605
43502
|
addons: filters?.addons,
|
|
43606
43503
|
selectedAddons: url.state.addons,
|
|
43504
|
+
query: url.state.q,
|
|
43505
|
+
onClearFilters: () => {
|
|
43506
|
+
setSearchInput("");
|
|
43507
|
+
url.clearFilters();
|
|
43508
|
+
},
|
|
43607
43509
|
onAddonsChange: url.setAddons,
|
|
43608
43510
|
hideAddons: forceAddon !== void 0
|
|
43609
43511
|
}), /* @__PURE__ */ jsxs("div", {
|
|
@@ -43641,21 +43543,6 @@ function DeviceModeList(props) {
|
|
|
43641
43543
|
isEmpty ? /* @__PURE__ */ jsx(DeviceListEmptyState, {
|
|
43642
43544
|
variant: isFiltered ? "filtered" : "nofilter",
|
|
43643
43545
|
onClearFilters: isFiltered ? url.clearFilters : void 0
|
|
43644
|
-
}) : view === "cards" ? /* @__PURE__ */ jsx(ContainerChildrenProvider, {
|
|
43645
|
-
value: grouped.accessoriesByParent,
|
|
43646
|
-
children: /* @__PURE__ */ jsx(CardsLayout, {
|
|
43647
|
-
rows: pageRows,
|
|
43648
|
-
accessoriesByParent: grouped.accessoriesByParent,
|
|
43649
|
-
trpc,
|
|
43650
|
-
resolveIntegrationIcon: resolveIntegrationIcon ?? null,
|
|
43651
|
-
resolveParent: resolveParent ?? null,
|
|
43652
|
-
onNavigate: onNavigate ?? null,
|
|
43653
|
-
renderRowAction: renderRowAction ?? null,
|
|
43654
|
-
selectable: showCheckboxes,
|
|
43655
|
-
rowClickSelects,
|
|
43656
|
-
activeSelected,
|
|
43657
|
-
onToggleSelection: toggleSelection
|
|
43658
|
-
})
|
|
43659
43546
|
}) : /* @__PURE__ */ jsx(ContainerChildrenProvider, {
|
|
43660
43547
|
value: grouped.accessoriesByParent,
|
|
43661
43548
|
children: /* @__PURE__ */ jsx(TableLayout, {
|
|
@@ -43678,7 +43565,7 @@ function DeviceModeList(props) {
|
|
|
43678
43565
|
onToggleSelection: toggleSelection
|
|
43679
43566
|
})
|
|
43680
43567
|
}),
|
|
43681
|
-
!isEmpty &&
|
|
43568
|
+
!isEmpty && /* @__PURE__ */ jsxs("div", {
|
|
43682
43569
|
className: "flex items-center justify-between gap-4 flex-wrap pt-2 text-[11px] text-foreground-subtle",
|
|
43683
43570
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
43684
43571
|
className: "inline-flex items-center gap-2",
|
|
@@ -43711,12 +43598,6 @@ function DeviceModeList(props) {
|
|
|
43711
43598
|
onPageChange: url.setPage
|
|
43712
43599
|
})]
|
|
43713
43600
|
}),
|
|
43714
|
-
!isEmpty && view === "cards" && /* @__PURE__ */ jsx(Pagination, {
|
|
43715
|
-
currentPage: safePage,
|
|
43716
|
-
totalItems,
|
|
43717
|
-
pageSize: currentPageSize,
|
|
43718
|
-
onPageChange: url.setPage
|
|
43719
|
-
}),
|
|
43720
43601
|
forceAddon === void 0 && isFiltered && totalItems > 0 && /* @__PURE__ */ jsxs("p", {
|
|
43721
43602
|
className: "text-[11px] text-foreground-subtle",
|
|
43722
43603
|
children: [
|
|
@@ -44192,7 +44073,6 @@ function DeviceExportPanel({ addonId, trpc, onOpenDevice }) {
|
|
|
44192
44073
|
}) : hasSupportedKinds && candidateDevices.length > 0 ? /* @__PURE__ */ jsx(DeviceList, {
|
|
44193
44074
|
devices: candidateDevices,
|
|
44194
44075
|
trpc,
|
|
44195
|
-
defaultView: "table",
|
|
44196
44076
|
filters: { typeOptions: supportedTypeOptions },
|
|
44197
44077
|
urlScope: "nested",
|
|
44198
44078
|
lsKey: `device-export:${addonId}`,
|
|
@@ -49156,4 +49036,4 @@ var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-d_A4kO-M.js").t
|
|
|
49156
49036
|
/** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
|
|
49157
49037
|
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-DNSLc6ww.js").then((m) => ({ default: m.PrivacyMaskSettings })));
|
|
49158
49038
|
//#endregion
|
|
49159
|
-
export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, CARD_MODE_MIN_COLUMNS, CENTER, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, Checkbox, ChildSectionAccordion, ClimatePanel, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, CustomFieldRenderersProvider, DEFAULT_COLOR, DEVICE_COLUMNS, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceGrid, DeviceItem, DeviceList, DeviceMultiSelectField, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, 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, ImageHeroCard, ImageInlineControl, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LightHeroCard, LightInlineControl, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, MODE_COLOR, MaskShapeCanvas, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, MobileDrawer, ModelPicker, MotionZonesSettings, NodeMultiSelectField, NodePicker, NodeSelectField, OfflineBadge, PHASE_CONFIG, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, 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, 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, ImageOff as a, agentColumnKey, allDeviceTypeFilterOptions, applyFleetQueryDefaults, ariaSortForColumn, badgeFor, buildStepTreeFromSchema, createLucideIcon as c, childEntityId, childListName, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, coverageLine, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, describeDeviceSelector, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, ensureMfHostInit, eventKindLabel, filterDeviceOptions, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, fuzzyMatch, getClassColor, getPhaseVisual, groupAgentColumns, groupChildrenByLayout, hardwareLabel, humanDuration, humidifierTint, Mic as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, normalizeForSearch, EyeOff as o, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, RotateCcw as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, roiTooLarge, Camera as s, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, shouldUseSingleNode, sortRows, sortRowsByColumn, statusIcons, statusLine, stepHasModelForFormat, stepModelOptions, stripParentNamePrefix, Trash2 as t, tabForSelector, tankAlert, themeToCss, trpc, 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, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerClassify, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupDelete, useBackupDeleteSchedule, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupListSchedules, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBackupUpsertSchedule, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, 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, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, 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, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerMigrateDevice, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRenameLocation, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellApplyDeviceSettingsPatch, useDoorbellEvents, useDoorbellGetDeviceLiveContribution, useDoorbellGetDeviceSettingsContribution, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, 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, useMetricsProviderDumpHeapSnapshot, 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, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesCancelSnooze, useNotificationRulesCreateRule, useNotificationRulesCreateSnooze, useNotificationRulesDeleteRule, useNotificationRulesGetAlarmConfig, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSnoozes, 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, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsReclaimDebugMedia, usePipelineAnalyticsReconcileFromDisk, usePipelineAnalyticsRefreshStorageLocationsForMigration, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsResumeForStorageMigration, usePipelineAnalyticsRunReplayFrameProcessor, 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, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorGetReconcileFromDiskStatus, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorPauseForStorageMigration, usePipelineOrchestratorRebalance, usePipelineOrchestratorReconcileFromDisk, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorResumeForStorageMigration, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerReportMotion, 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, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingCancelRelocateJob, useRecordingCancelStorageMigrationMove, useRecordingDeleteFootprint, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingExportReadExportBytes, useRecordingGetAvailability, useRecordingGetAvailabilityBatch, useRecordingGetDaysWithRecordings, useRecordingGetDaysWithRecordingsBatch, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlacement, useRecordingGetPlaybackManifest, useRecordingGetRelocateResidue, useRecordingGetStatus, useRecordingGetStorageMigrationMoveStatus, useRecordingGetStorageUsage, useRecordingListOpsLog, useRecordingListRelocateJobs, useRecordingLocateSegment, useRecordingPauseForStorageMigration, useRecordingPlanStorageRebalance, useRecordingPruneFootage, useRecordingReadGopBytes, useRecordingReadSegmentBytes, useRecordingReadWindowBytes, useRecordingReconcileLedgerAgainstDisk, useRecordingRefreshStorageLocationsForMigration, useRecordingRelocateFootage, useRecordingRenderClip, useRecordingRenderGif, useRecordingRescanStorage, useRecordingResumeForStorageMigration, useRecordingSetDeviceConfig, useRecordingSetDevicePlacement, useRecordingStartStorageMigrationMove, useRecordingStartStorageRebalance, useRemoteComponent, 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, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageGetDefaultLocation, useStorageList, 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, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, 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, useVideoclipsGetClipPlayback, useVideoclipsListClips, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, 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 };
|
|
49039
|
+
export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, CARD_MODE_MIN_COLUMNS, CENTER, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, Checkbox, ChildSectionAccordion, ClimatePanel, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, CustomFieldRenderersProvider, DEFAULT_COLOR, DEVICE_COLUMNS, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceGrid, DeviceItem, DeviceList, DeviceMultiSelectField, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, 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, ImageHeroCard, ImageInlineControl, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LightHeroCard, LightInlineControl, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, MODE_COLOR, MaskShapeCanvas, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, MobileDrawer, ModelPicker, MotionZonesSettings, NodeMultiSelectField, NodePicker, NodeSelectField, OfflineBadge, PHASE_CONFIG, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, 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, 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, ImageOff as a, agentColumnKey, allDeviceTypeFilterOptions, applyFleetQueryDefaults, ariaSortForColumn, badgeFor, buildStepTreeFromSchema, createLucideIcon as c, childEntityId, childListName, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, coverageLine, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, describeDeviceSelector, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, ensureMfHostInit, eventKindLabel, filterDeviceOptions, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, fuzzyMatch, getClassColor, getPhaseVisual, groupAgentColumns, groupChildrenByLayout, hardwareLabel, humanDuration, humidifierTint, Mic as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, normalizeForSearch, EyeOff as o, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, RotateCcw as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, roiTooLarge, Camera as s, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, shouldUseSingleNode, sortRows, sortRowsByColumn, statusIcons, statusLine, stepHasModelForFormat, stepModelOptions, stripParentNamePrefix, Trash2 as t, tabForSelector, tankAlert, themeToCss, trpc, 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, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerClassify, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupDelete, useBackupDeleteSchedule, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupListSchedules, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBackupUpsertSchedule, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, 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, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, 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, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerMigrateDevice, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRenameLocation, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellApplyDeviceSettingsPatch, useDoorbellEvents, useDoorbellGetDeviceLiveContribution, useDoorbellGetDeviceSettingsContribution, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, 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, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesCancelSnooze, useNotificationRulesCreateRule, useNotificationRulesCreateSnooze, useNotificationRulesDeleteRule, useNotificationRulesGetAlarmConfig, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSnoozes, 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, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsReclaimDebugMedia, usePipelineAnalyticsReconcileFromDisk, usePipelineAnalyticsRefreshStorageLocationsForMigration, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsResumeForStorageMigration, usePipelineAnalyticsRunReplayFrameProcessor, 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, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorGetReconcileFromDiskStatus, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorPauseForStorageMigration, usePipelineOrchestratorRebalance, usePipelineOrchestratorReconcileFromDisk, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorResumeForStorageMigration, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerReportMotion, 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, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingCancelRelocateJob, useRecordingCancelStorageMigrationMove, useRecordingDeleteFootprint, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingExportReadExportBytes, useRecordingGetAvailability, useRecordingGetAvailabilityBatch, useRecordingGetDaysWithRecordings, useRecordingGetDaysWithRecordingsBatch, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlacement, useRecordingGetPlaybackManifest, useRecordingGetRelocateResidue, useRecordingGetStatus, useRecordingGetStorageMigrationMoveStatus, useRecordingGetStorageUsage, useRecordingListOpsLog, useRecordingListRelocateJobs, useRecordingLocateSegment, useRecordingPauseForStorageMigration, useRecordingPlanStorageRebalance, useRecordingPruneFootage, useRecordingReadGopBytes, useRecordingReadSegmentBytes, useRecordingReadWindowBytes, useRecordingReconcileLedgerAgainstDisk, useRecordingRefreshStorageLocationsForMigration, useRecordingRelocateFootage, useRecordingRenderClip, useRecordingRenderGif, useRecordingRescanStorage, useRecordingResumeForStorageMigration, useRecordingSetDeviceConfig, useRecordingSetDevicePlacement, useRecordingStartStorageMigrationMove, useRecordingStartStorageRebalance, useRemoteComponent, 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, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageGetDefaultLocation, useStorageList, 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, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, 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, useVideoclipsGetClipPlayback, useVideoclipsListClips, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, 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,18 +0,0 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
2
|
-
import { UseDeviceProxyTrpc } from '../../hooks/use-device-proxy';
|
|
3
|
-
import { DeviceItemDevice, DeviceItemParent } from '../device-item/helpers';
|
|
4
|
-
export interface CardsLayoutProps {
|
|
5
|
-
readonly rows: readonly DeviceItemDevice[];
|
|
6
|
-
readonly accessoriesByParent: ReadonlyMap<number, readonly DeviceItemDevice[]>;
|
|
7
|
-
readonly trpc: UseDeviceProxyTrpc;
|
|
8
|
-
readonly resolveIntegrationIcon: ((addonId: string) => ReactNode | null) | null;
|
|
9
|
-
readonly resolveParent: ((parentId: number) => DeviceItemParent | null) | null;
|
|
10
|
-
readonly onNavigate: ((deviceId: number) => void) | null;
|
|
11
|
-
readonly renderRowAction: ((device: DeviceItemDevice) => ReactNode) | null;
|
|
12
|
-
readonly selectable: boolean;
|
|
13
|
-
/** Batch mode active — a row click toggles selection instead of navigating. */
|
|
14
|
-
readonly rowClickSelects: boolean;
|
|
15
|
-
readonly activeSelected: ReadonlySet<number>;
|
|
16
|
-
readonly onToggleSelection: (id: number) => void;
|
|
17
|
-
}
|
|
18
|
-
export declare function CardsLayout({ rows, accessoriesByParent, trpc, resolveIntegrationIcon, resolveParent, onNavigate, renderRowAction, selectable, rowClickSelects, activeSelected, onToggleSelection, }: CardsLayoutProps): ReactNode;
|