@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.
@@ -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({ view, onViewChange, hideView, typeOptions, selectedTypes, onTypesChange, addons, selectedAddons, onAddonsChange, hideAddons, }: FilterChipsProps): ReactNode;
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 { DeviceItemDevice } from '../device-item/helpers';
3
- import { CardsLayoutProps } from './cards-layout';
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
- interface TableLayoutProps extends CardsLayoutProps {
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
- export type DeviceListView = 'cards' | 'table';
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: [View toggle] [Type chips] [Integration multi-select]
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({ view, onViewChange, hideView = false, typeOptions, selectedTypes, onTypesChange, addons, selectedAddons, onAddonsChange, hideAddons = false }) {
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
- * `{view, addon, type, q}` (NEVER page). Used to rehydrate when
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 `view`, `page`, `addon`, `type`, `q`
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; preserves view.
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, defaultView, ls) {
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, defaultView) {
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"), next.view === defaultView ? null : next.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, defaultView, lsKey } = options;
43052
+ const { scope, lsKey } = options;
43113
43053
  const [state, setState] = (0, react$1.useState)(() => {
43114
- return readUrlState(scope, defaultView, readFromLS(lsKey));
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, defaultView, readFromLS(lsKey));
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, defaultView);
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", defaultView = "table", 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;
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 = view === "cards" ? pageSize.cards : tablePageSize;
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 && view === "table" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
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: [View toggle] [Type chips] [Integration multi-select]
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({ view, onViewChange, hideView = false, typeOptions, selectedTypes, onTypesChange, addons, selectedAddons, onAddonsChange, hideAddons = false }) {
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
- * `{view, addon, type, q}` (NEVER page). Used to rehydrate when
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 `view`, `page`, `addon`, `type`, `q`
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; preserves view.
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, defaultView, ls) {
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, defaultView) {
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"), next.view === defaultView ? null : next.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, defaultView, lsKey } = options;
43028
+ const { scope, lsKey } = options;
43089
43029
  const [state, setState] = useState(() => {
43090
- return readUrlState(scope, defaultView, readFromLS(lsKey));
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, defaultView, readFromLS(lsKey));
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, defaultView);
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", defaultView = "table", 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;
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 = view === "cards" ? pageSize.cards : tablePageSize;
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 && view === "table" && /* @__PURE__ */ jsxs("div", {
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/ui-library",
3
- "version": "1.2.104",
3
+ "version": "1.2.105",
4
4
  "type": "module",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
@@ -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;