@camstack/ui-library 1.2.164 → 1.2.166
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/composites/confirm-dialog.d.ts +52 -7
- package/dist/generated/system-hooks.d.ts +2 -0
- package/dist/index.cjs +328 -64
- package/dist/index.js +325 -65
- package/package.json +2 -2
|
@@ -1,13 +1,58 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
export type DialogVariant = 'danger' | 'warning' | 'default';
|
|
3
|
+
export interface ConfirmOptions {
|
|
4
|
+
readonly title: string;
|
|
5
|
+
readonly message: string;
|
|
6
|
+
readonly confirmLabel?: string;
|
|
7
|
+
readonly cancelLabel?: string;
|
|
8
|
+
readonly variant?: DialogVariant;
|
|
9
|
+
}
|
|
10
|
+
export interface AlertOptions {
|
|
11
|
+
readonly title: string;
|
|
12
|
+
readonly message: string;
|
|
13
|
+
readonly acknowledgeLabel?: string;
|
|
14
|
+
readonly variant?: DialogVariant;
|
|
15
|
+
}
|
|
16
|
+
export type PromptInputType = 'text' | 'password';
|
|
17
|
+
export interface PromptOptions {
|
|
18
|
+
readonly title: string;
|
|
19
|
+
/** Explanatory paragraph above the field. */
|
|
20
|
+
readonly message?: string;
|
|
21
|
+
/** Label rendered against the input. Defaults to the title. */
|
|
22
|
+
readonly label?: string;
|
|
23
|
+
readonly defaultValue?: string;
|
|
24
|
+
/** `password` masks the value and opts out of autofill/remember. */
|
|
25
|
+
readonly inputType?: PromptInputType;
|
|
26
|
+
readonly placeholder?: string;
|
|
27
|
+
readonly confirmLabel?: string;
|
|
28
|
+
readonly cancelLabel?: string;
|
|
29
|
+
/**
|
|
30
|
+
* A field the operator reads/copies rather than edits (the clipboard
|
|
31
|
+
* fallback). Rendered unmasked, selected on open, with no validation.
|
|
32
|
+
*/
|
|
33
|
+
readonly readOnly?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Returns an error message to REFUSE the value and keep the dialog open, or
|
|
36
|
+
* `null` to accept. Runs on submit — the dialog is the validation surface, so
|
|
37
|
+
* a refusal never needs a second `alert`.
|
|
38
|
+
*/
|
|
39
|
+
readonly validate?: (value: string) => string | null;
|
|
40
|
+
}
|
|
41
|
+
export interface DialogContextValue {
|
|
42
|
+
readonly confirm: (options: ConfirmOptions) => Promise<boolean>;
|
|
43
|
+
readonly alert: (options: AlertOptions) => Promise<void>;
|
|
44
|
+
readonly prompt: (options: PromptOptions) => Promise<string | null>;
|
|
8
45
|
}
|
|
9
46
|
export declare function useConfirm(): (options: ConfirmOptions) => Promise<boolean>;
|
|
47
|
+
/** An error/notice with a single acknowledge. Replaces `window.alert`. */
|
|
48
|
+
export declare function useAlert(): (options: AlertOptions) => Promise<void>;
|
|
49
|
+
/** One text input with OK/Cancel. Replaces `window.prompt`. */
|
|
50
|
+
export declare function usePrompt(): (options: PromptOptions) => Promise<string | null>;
|
|
10
51
|
export declare function ConfirmDialogProvider({ children }: {
|
|
11
52
|
children: ReactNode;
|
|
12
53
|
}): import("react").JSX.Element;
|
|
13
|
-
|
|
54
|
+
/**
|
|
55
|
+
* Promotes `el` to the top layer. jsdom has `<dialog>` but no `showModal`, so
|
|
56
|
+
* the attribute is the fallback — see the file docblock.
|
|
57
|
+
*/
|
|
58
|
+
export declare function openTopLayer(el: HTMLDialogElement): void;
|
|
@@ -1039,6 +1039,8 @@ export declare const useNotificationRulesUpdateRule: typeof trpc.notificationRul
|
|
|
1039
1039
|
export declare const useNotificationRulesDeleteRule: typeof trpc.notificationRules.deleteRule.useMutation;
|
|
1040
1040
|
/** Generated alias around `trpc.notificationRules.setRuleEnabled.useMutation`. */
|
|
1041
1041
|
export declare const useNotificationRulesSetRuleEnabled: typeof trpc.notificationRules.setRuleEnabled.useMutation;
|
|
1042
|
+
/** Generated alias around `trpc.notificationRules.getClipRetentionAsks.useQuery`. */
|
|
1043
|
+
export declare const useNotificationRulesGetClipRetentionAsks: typeof trpc.notificationRules.getClipRetentionAsks.useQuery;
|
|
1042
1044
|
/** Generated alias around `trpc.notificationRules.listDeviceMutes.useQuery`. */
|
|
1043
1045
|
export declare const useNotificationRulesListDeviceMutes: typeof trpc.notificationRules.listDeviceMutes.useQuery;
|
|
1044
1046
|
/** Generated alias around `trpc.notificationRules.setDeviceMuted.useMutation`. */
|
package/dist/index.cjs
CHANGED
|
@@ -6091,6 +6091,8 @@ var useNotificationRulesUpdateRule = trpc.notificationRules.updateRule.useMutati
|
|
|
6091
6091
|
var useNotificationRulesDeleteRule = trpc.notificationRules.deleteRule.useMutation;
|
|
6092
6092
|
/** Generated alias around `trpc.notificationRules.setRuleEnabled.useMutation`. */
|
|
6093
6093
|
var useNotificationRulesSetRuleEnabled = trpc.notificationRules.setRuleEnabled.useMutation;
|
|
6094
|
+
/** Generated alias around `trpc.notificationRules.getClipRetentionAsks.useQuery`. */
|
|
6095
|
+
var useNotificationRulesGetClipRetentionAsks = trpc.notificationRules.getClipRetentionAsks.useQuery;
|
|
6094
6096
|
/** Generated alias around `trpc.notificationRules.listDeviceMutes.useQuery`. */
|
|
6095
6097
|
var useNotificationRulesListDeviceMutes = trpc.notificationRules.listDeviceMutes.useQuery;
|
|
6096
6098
|
/** Generated alias around `trpc.notificationRules.setDeviceMuted.useMutation`. */
|
|
@@ -11271,82 +11273,340 @@ function EventKindGlyph({ iconId, size = 16, color, className }) {
|
|
|
11271
11273
|
}
|
|
11272
11274
|
//#endregion
|
|
11273
11275
|
//#region src/composites/confirm-dialog.tsx
|
|
11276
|
+
/**
|
|
11277
|
+
* The ONE modal dialog of the product — confirm, alert and prompt.
|
|
11278
|
+
*
|
|
11279
|
+
* ## Why all three live here
|
|
11280
|
+
*
|
|
11281
|
+
* The admin UI used to reach for `window.confirm` / `window.alert` /
|
|
11282
|
+
* `window.prompt` wherever a `useConfirm()` call was inconvenient. A native
|
|
11283
|
+
* dialog is wrong on three counts, and the operator hit the worst one on
|
|
11284
|
+
* Identity → Users: resetting a password opened `window.prompt`, which
|
|
11285
|
+
* **cannot mask its input**. A new password was typed in clear text, into a
|
|
11286
|
+
* box the browser may offer to remember. On top of that a native dialog
|
|
11287
|
+
* matches none of the product's visual language and the host can neither style
|
|
11288
|
+
* nor test it.
|
|
11289
|
+
*
|
|
11290
|
+
* So the fix is not "a password modal" — a second dialog component is the
|
|
11291
|
+
* defect, not the cure. The provider that already served every confirm in the
|
|
11292
|
+
* admin UI (and in the viewer, which documents its own copy as "deliberately
|
|
11293
|
+
* the same one `@camstack/ui-library` exposes to the admin UI") grew two more
|
|
11294
|
+
* intents. One provider, one backdrop, one visual language, one set of
|
|
11295
|
+
* keyboard rules.
|
|
11296
|
+
*
|
|
11297
|
+
* ## The three intents are NOT one control
|
|
11298
|
+
*
|
|
11299
|
+
* - `confirm` — a destructive yes/no. It names what is destroyed, and for the
|
|
11300
|
+
* `danger` variant the destructive button is the NON-default: opening focus
|
|
11301
|
+
* lands on Cancel, so a reflexive Enter cancels.
|
|
11302
|
+
* - `alert` — an error/notice with a single acknowledge.
|
|
11303
|
+
* - `prompt` — one text input with OK/Cancel. `inputType: 'password'` masks it
|
|
11304
|
+
* (and opts out of autofill/remember); `readOnly` turns it into a readable,
|
|
11305
|
+
* select-all-on-open field, which is the shape the copy-to-clipboard
|
|
11306
|
+
* fallback needs — a password box would be actively wrong there.
|
|
11307
|
+
*
|
|
11308
|
+
* ## Why the surface is a native `<dialog>`
|
|
11309
|
+
*
|
|
11310
|
+
* These dialogs open OVER surfaces that are themselves native `<dialog>`s
|
|
11311
|
+
* opened with `showModal()` — the event detail panel, the similar-groups
|
|
11312
|
+
* modal. A `showModal()` dialog is promoted to the TOP LAYER and everything
|
|
11313
|
+
* outside it is inert, so a plain `fixed inset-0` overlay rendered at the app
|
|
11314
|
+
* root would be drawn behind that backdrop and could not be clicked at all.
|
|
11315
|
+
* Confirming a track delete from the detail panel would have been impossible.
|
|
11316
|
+
* So this surface is a `<dialog>` of its own: the top layer stacks, the newest
|
|
11317
|
+
* `showModal()` wins, and the confirm sits above the panel that asked for it.
|
|
11318
|
+
*
|
|
11319
|
+
* jsdom implements `<dialog>` but not `showModal()`, so the open falls back to
|
|
11320
|
+
* the `open` attribute there. Everything this component does — focus, keys,
|
|
11321
|
+
* resolution — is identical on both paths; only the top-layer promotion, which
|
|
11322
|
+
* jsdom cannot model at all, is missing. The fallback is asserted below.
|
|
11323
|
+
*
|
|
11324
|
+
* ## Focus, and why there is NO focus trap
|
|
11325
|
+
*
|
|
11326
|
+
* A `showModal()` dialog already scopes the tab ring to itself, and the
|
|
11327
|
+
* surfaces underneath (`SlideOverPanel`) implement no trap of their own. A
|
|
11328
|
+
* second, hand-rolled focus trap on top of that is how a page becomes
|
|
11329
|
+
* unescapable, so this component deliberately does not trap. What it does do:
|
|
11330
|
+
*
|
|
11331
|
+
* - focuses the input (prompt) or the DEFAULT button on open,
|
|
11332
|
+
* - restores focus to the previously focused element on close,
|
|
11333
|
+
* - handles Escape/Enter from a `keydown` on the dialog itself and calls
|
|
11334
|
+
* `stopPropagation()`. React attaches its listeners at the root container, so
|
|
11335
|
+
* stopping there keeps the event from reaching the `window` Escape listener
|
|
11336
|
+
* of whatever modal is underneath: one Escape closes ONE dialog.
|
|
11337
|
+
*/
|
|
11274
11338
|
var ConfirmContext = createSharedContext("camstack:confirm-dialog", null);
|
|
11275
|
-
function
|
|
11339
|
+
function useDialogContext$1() {
|
|
11276
11340
|
const ctx = (0, react$1.useContext)(ConfirmContext);
|
|
11277
11341
|
if (!ctx) throw new Error("useConfirm must be used within ConfirmDialogProvider");
|
|
11278
|
-
return ctx
|
|
11342
|
+
return ctx;
|
|
11343
|
+
}
|
|
11344
|
+
function useConfirm() {
|
|
11345
|
+
return useDialogContext$1().confirm;
|
|
11346
|
+
}
|
|
11347
|
+
/** An error/notice with a single acknowledge. Replaces `window.alert`. */
|
|
11348
|
+
function useAlert() {
|
|
11349
|
+
return useDialogContext$1().alert;
|
|
11350
|
+
}
|
|
11351
|
+
/** One text input with OK/Cancel. Replaces `window.prompt`. */
|
|
11352
|
+
function usePrompt() {
|
|
11353
|
+
return useDialogContext$1().prompt;
|
|
11354
|
+
}
|
|
11355
|
+
var VARIANT_STYLES$2 = {
|
|
11356
|
+
danger: { button: "bg-red-500 hover:bg-red-600 text-white" },
|
|
11357
|
+
warning: { button: "bg-orange-500 hover:bg-orange-600 text-white" },
|
|
11358
|
+
default: { button: "bg-primary hover:bg-primary/90 text-white" }
|
|
11359
|
+
};
|
|
11360
|
+
var CANCEL_CLASS = "px-3 py-1.5 text-xs font-medium rounded-md border border-border text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors";
|
|
11361
|
+
function variantOf(state) {
|
|
11362
|
+
if (state.kind === "prompt") return "default";
|
|
11363
|
+
return state.options.variant ?? "default";
|
|
11364
|
+
}
|
|
11365
|
+
/**
|
|
11366
|
+
* Whether the affirmative button is the DEFAULT (initially focused) control.
|
|
11367
|
+
* A `danger` confirm says no: the destructive action must be deliberate.
|
|
11368
|
+
*/
|
|
11369
|
+
function affirmativeIsDefault(state) {
|
|
11370
|
+
return variantOf(state) !== "danger";
|
|
11279
11371
|
}
|
|
11280
11372
|
function ConfirmDialogProvider({ children }) {
|
|
11281
11373
|
const [dialog, setDialog] = (0, react$1.useState)(null);
|
|
11282
|
-
const confirm = (0, react$1.useCallback)((options) => {
|
|
11283
|
-
|
|
11284
|
-
|
|
11285
|
-
|
|
11286
|
-
|
|
11287
|
-
|
|
11374
|
+
const confirm = (0, react$1.useCallback)((options) => new Promise((resolve) => {
|
|
11375
|
+
setDialog({
|
|
11376
|
+
kind: "confirm",
|
|
11377
|
+
options,
|
|
11378
|
+
resolve
|
|
11379
|
+
});
|
|
11380
|
+
}), []);
|
|
11381
|
+
const alert = (0, react$1.useCallback)((options) => new Promise((resolve) => {
|
|
11382
|
+
setDialog({
|
|
11383
|
+
kind: "alert",
|
|
11384
|
+
options,
|
|
11385
|
+
resolve: () => resolve()
|
|
11288
11386
|
});
|
|
11387
|
+
}), []);
|
|
11388
|
+
const prompt = (0, react$1.useCallback)((options) => new Promise((resolve) => {
|
|
11389
|
+
setDialog({
|
|
11390
|
+
kind: "prompt",
|
|
11391
|
+
options,
|
|
11392
|
+
resolve
|
|
11393
|
+
});
|
|
11394
|
+
}), []);
|
|
11395
|
+
const close = (0, react$1.useCallback)(() => setDialog(null), []);
|
|
11396
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(ConfirmContext.Provider, {
|
|
11397
|
+
value: {
|
|
11398
|
+
confirm,
|
|
11399
|
+
alert,
|
|
11400
|
+
prompt
|
|
11401
|
+
},
|
|
11402
|
+
children: [children, dialog && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DialogSurface, {
|
|
11403
|
+
state: dialog,
|
|
11404
|
+
onClose: close
|
|
11405
|
+
}, dialogKey(dialog))]
|
|
11406
|
+
});
|
|
11407
|
+
}
|
|
11408
|
+
/**
|
|
11409
|
+
* A key that changes per OPENED dialog, so a second dialog opened while one is
|
|
11410
|
+
* showing remounts the surface (fresh input value, fresh focus) instead of
|
|
11411
|
+
* inheriting the previous one's state.
|
|
11412
|
+
*/
|
|
11413
|
+
function dialogKey(state) {
|
|
11414
|
+
return `${state.kind}:${state.options.title}`;
|
|
11415
|
+
}
|
|
11416
|
+
/**
|
|
11417
|
+
* Promotes `el` to the top layer. jsdom has `<dialog>` but no `showModal`, so
|
|
11418
|
+
* the attribute is the fallback — see the file docblock.
|
|
11419
|
+
*/
|
|
11420
|
+
function openTopLayer(el) {
|
|
11421
|
+
if (typeof el.showModal === "function") el.showModal();
|
|
11422
|
+
else el.setAttribute("open", "");
|
|
11423
|
+
}
|
|
11424
|
+
function closeTopLayer(el) {
|
|
11425
|
+
if (!el.open) return;
|
|
11426
|
+
if (typeof el.close === "function") el.close();
|
|
11427
|
+
else el.removeAttribute("open");
|
|
11428
|
+
}
|
|
11429
|
+
function DialogSurface({ state, onClose }) {
|
|
11430
|
+
const dialogRef = (0, react$1.useRef)(null);
|
|
11431
|
+
const inputRef = (0, react$1.useRef)(null);
|
|
11432
|
+
const defaultButtonRef = (0, react$1.useRef)(null);
|
|
11433
|
+
const settled = (0, react$1.useRef)(false);
|
|
11434
|
+
const [value, setValue] = (0, react$1.useState)(state.kind === "prompt" ? state.options.defaultValue ?? "" : "");
|
|
11435
|
+
const [error, setError] = (0, react$1.useState)(null);
|
|
11436
|
+
(0, react$1.useEffect)(() => {
|
|
11437
|
+
const previous = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
11438
|
+
const el = dialogRef.current;
|
|
11439
|
+
if (el) openTopLayer(el);
|
|
11440
|
+
const input = inputRef.current;
|
|
11441
|
+
if (input) {
|
|
11442
|
+
input.focus();
|
|
11443
|
+
if (state.kind === "prompt" && state.options.readOnly === true) input.select();
|
|
11444
|
+
} else defaultButtonRef.current?.focus();
|
|
11445
|
+
return () => {
|
|
11446
|
+
if (el) closeTopLayer(el);
|
|
11447
|
+
previous?.focus();
|
|
11448
|
+
};
|
|
11289
11449
|
}, []);
|
|
11290
|
-
const
|
|
11291
|
-
|
|
11292
|
-
|
|
11293
|
-
|
|
11294
|
-
|
|
11295
|
-
|
|
11296
|
-
|
|
11297
|
-
};
|
|
11298
|
-
const
|
|
11299
|
-
|
|
11300
|
-
|
|
11301
|
-
|
|
11450
|
+
const cancel = (0, react$1.useCallback)(() => {
|
|
11451
|
+
if (settled.current) return;
|
|
11452
|
+
settled.current = true;
|
|
11453
|
+
if (state.kind === "confirm") state.resolve(false);
|
|
11454
|
+
else if (state.kind === "prompt") state.resolve(null);
|
|
11455
|
+
else state.resolve();
|
|
11456
|
+
onClose();
|
|
11457
|
+
}, [state, onClose]);
|
|
11458
|
+
const accept = (0, react$1.useCallback)(() => {
|
|
11459
|
+
if (settled.current) return;
|
|
11460
|
+
if (state.kind === "confirm") {
|
|
11461
|
+
settled.current = true;
|
|
11462
|
+
state.resolve(true);
|
|
11463
|
+
onClose();
|
|
11464
|
+
return;
|
|
11465
|
+
}
|
|
11466
|
+
if (state.kind === "alert") {
|
|
11467
|
+
settled.current = true;
|
|
11468
|
+
state.resolve();
|
|
11469
|
+
onClose();
|
|
11470
|
+
return;
|
|
11471
|
+
}
|
|
11472
|
+
if (state.options.readOnly !== true) {
|
|
11473
|
+
const problem = state.options.validate?.(value) ?? null;
|
|
11474
|
+
if (problem !== null) {
|
|
11475
|
+
setError(problem);
|
|
11476
|
+
inputRef.current?.focus();
|
|
11477
|
+
return;
|
|
11478
|
+
}
|
|
11479
|
+
}
|
|
11480
|
+
settled.current = true;
|
|
11481
|
+
state.resolve(state.options.readOnly === true ? null : value);
|
|
11482
|
+
onClose();
|
|
11483
|
+
}, [
|
|
11484
|
+
state,
|
|
11485
|
+
onClose,
|
|
11486
|
+
value
|
|
11487
|
+
]);
|
|
11488
|
+
const onKeyDown = (0, react$1.useCallback)((e) => {
|
|
11489
|
+
if (e.key === "Escape") {
|
|
11490
|
+
e.stopPropagation();
|
|
11491
|
+
e.preventDefault();
|
|
11492
|
+
cancel();
|
|
11493
|
+
return;
|
|
11494
|
+
}
|
|
11495
|
+
if (e.key !== "Enter") return;
|
|
11496
|
+
if (e.target === inputRef.current) return;
|
|
11497
|
+
if (!affirmativeIsDefault(state)) return;
|
|
11498
|
+
e.stopPropagation();
|
|
11499
|
+
e.preventDefault();
|
|
11500
|
+
accept();
|
|
11501
|
+
}, [
|
|
11502
|
+
state,
|
|
11503
|
+
cancel,
|
|
11504
|
+
accept
|
|
11505
|
+
]);
|
|
11506
|
+
const onSubmit = (0, react$1.useCallback)((e) => {
|
|
11507
|
+
e.preventDefault();
|
|
11508
|
+
e.stopPropagation();
|
|
11509
|
+
accept();
|
|
11510
|
+
}, [accept]);
|
|
11511
|
+
const style = VARIANT_STYLES$2[variantOf(state)];
|
|
11512
|
+
const titleId = "camstack-dialog-title";
|
|
11513
|
+
const body = state.kind === "prompt" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PromptBody, {
|
|
11514
|
+
options: state.options,
|
|
11515
|
+
value,
|
|
11516
|
+
error,
|
|
11517
|
+
inputRef,
|
|
11518
|
+
onChange: (next) => {
|
|
11519
|
+
setValue(next);
|
|
11520
|
+
setError(null);
|
|
11521
|
+
}
|
|
11522
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
11523
|
+
className: "mt-2 text-xs text-foreground-subtle leading-relaxed",
|
|
11524
|
+
children: state.options.message
|
|
11525
|
+
});
|
|
11526
|
+
const footer = state.kind === "alert" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
11527
|
+
type: "button",
|
|
11528
|
+
ref: defaultButtonRef,
|
|
11529
|
+
onClick: accept,
|
|
11530
|
+
className: `px-3 py-1.5 text-xs font-medium rounded-md transition-colors ${style.button}`,
|
|
11531
|
+
children: state.options.acknowledgeLabel ?? "OK"
|
|
11532
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
11533
|
+
type: "button",
|
|
11534
|
+
ref: affirmativeIsDefault(state) ? null : defaultButtonRef,
|
|
11535
|
+
onClick: cancel,
|
|
11536
|
+
className: CANCEL_CLASS,
|
|
11537
|
+
children: state.options.cancelLabel ?? "Cancel"
|
|
11538
|
+
}), !(state.kind === "prompt" && state.options.readOnly === true) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
11539
|
+
type: state.kind === "prompt" ? "submit" : "button",
|
|
11540
|
+
ref: affirmativeIsDefault(state) ? defaultButtonRef : null,
|
|
11541
|
+
onClick: state.kind === "prompt" ? void 0 : accept,
|
|
11542
|
+
className: `px-3 py-1.5 text-xs font-medium rounded-md transition-colors ${style.button}`,
|
|
11543
|
+
children: state.options.confirmLabel ?? (state.kind === "prompt" ? "OK" : "Confirm")
|
|
11544
|
+
})] });
|
|
11545
|
+
const inner = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
11546
|
+
className: "px-5 pt-5 pb-4",
|
|
11547
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
|
|
11548
|
+
id: titleId,
|
|
11549
|
+
className: "text-sm font-semibold text-foreground",
|
|
11550
|
+
children: state.options.title
|
|
11551
|
+
}), body]
|
|
11552
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
11553
|
+
className: "flex justify-end gap-2 px-5 py-3 border-t border-border bg-surface-hover/30",
|
|
11554
|
+
children: footer
|
|
11555
|
+
})] });
|
|
11556
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("dialog", {
|
|
11557
|
+
ref: dialogRef,
|
|
11558
|
+
"aria-modal": "true",
|
|
11559
|
+
"aria-labelledby": titleId,
|
|
11560
|
+
onKeyDown,
|
|
11561
|
+
onCancel: (e) => {
|
|
11562
|
+
e.preventDefault();
|
|
11563
|
+
cancel();
|
|
11302
11564
|
},
|
|
11303
|
-
|
|
11304
|
-
|
|
11305
|
-
button: "bg-orange-500 hover:bg-orange-600 text-white"
|
|
11565
|
+
onClick: (e) => {
|
|
11566
|
+
if (e.target === e.currentTarget) cancel();
|
|
11306
11567
|
},
|
|
11307
|
-
|
|
11308
|
-
|
|
11309
|
-
|
|
11310
|
-
|
|
11311
|
-
|
|
11312
|
-
const style = dialog ? variantStyles[dialog.variant ?? "default"] : variantStyles.default;
|
|
11313
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(ConfirmContext.Provider, {
|
|
11314
|
-
value: { confirm },
|
|
11315
|
-
children: [children, dialog && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
11316
|
-
className: "fixed inset-0 z-50 flex items-center justify-center",
|
|
11317
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
11318
|
-
className: "absolute inset-0 bg-black/50 backdrop-blur-sm",
|
|
11319
|
-
onClick: handleCancel
|
|
11320
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
11321
|
-
className: "relative z-10 w-full max-w-sm mx-4 rounded-xl border border-border bg-surface shadow-2xl overflow-hidden animate-in fade-in zoom-in-95 duration-150",
|
|
11322
|
-
onClick: (e) => e.stopPropagation(),
|
|
11323
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
11324
|
-
className: "px-5 pt-5 pb-4",
|
|
11325
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
|
|
11326
|
-
className: "text-sm font-semibold text-foreground",
|
|
11327
|
-
children: dialog.title
|
|
11328
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
11329
|
-
className: "mt-2 text-xs text-foreground-subtle leading-relaxed",
|
|
11330
|
-
children: dialog.message
|
|
11331
|
-
})]
|
|
11332
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
11333
|
-
className: "flex justify-end gap-2 px-5 py-3 border-t border-border bg-surface-hover/30",
|
|
11334
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
11335
|
-
type: "button",
|
|
11336
|
-
onClick: handleCancel,
|
|
11337
|
-
className: "px-3 py-1.5 text-xs font-medium rounded-md border border-border text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors",
|
|
11338
|
-
children: dialog.cancelLabel ?? "Cancel"
|
|
11339
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
11340
|
-
type: "button",
|
|
11341
|
-
onClick: handleConfirm,
|
|
11342
|
-
className: `px-3 py-1.5 text-xs font-medium rounded-md transition-colors ${style.button}`,
|
|
11343
|
-
children: dialog.confirmLabel ?? "Confirm"
|
|
11344
|
-
})]
|
|
11345
|
-
})]
|
|
11346
|
-
})]
|
|
11347
|
-
})]
|
|
11568
|
+
className: "fixed left-1/2 top-1/2 z-50 m-0 w-[calc(100vw-2rem)] max-w-sm -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-xl border border-border bg-surface p-0 text-foreground shadow-2xl backdrop:bg-black/50 backdrop:backdrop-blur-sm [&:not([open])]:hidden",
|
|
11569
|
+
children: state.kind === "prompt" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("form", {
|
|
11570
|
+
onSubmit,
|
|
11571
|
+
children: inner
|
|
11572
|
+
}) : inner
|
|
11348
11573
|
});
|
|
11349
11574
|
}
|
|
11575
|
+
function PromptBody({ options, value, error, inputRef, onChange }) {
|
|
11576
|
+
const readOnly = options.readOnly === true;
|
|
11577
|
+
const isPassword = !readOnly && options.inputType === "password";
|
|
11578
|
+
const inputId = "camstack-dialog-input";
|
|
11579
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
11580
|
+
options.message !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
11581
|
+
className: "mt-2 text-xs text-foreground-subtle leading-relaxed",
|
|
11582
|
+
children: options.message
|
|
11583
|
+
}),
|
|
11584
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
11585
|
+
htmlFor: inputId,
|
|
11586
|
+
className: "mt-3 block text-[11px] font-medium text-foreground-subtle",
|
|
11587
|
+
children: options.label ?? options.title
|
|
11588
|
+
}),
|
|
11589
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
11590
|
+
id: inputId,
|
|
11591
|
+
ref: inputRef,
|
|
11592
|
+
type: isPassword ? "password" : "text",
|
|
11593
|
+
value,
|
|
11594
|
+
readOnly,
|
|
11595
|
+
placeholder: options.placeholder,
|
|
11596
|
+
onChange: (e) => onChange(e.target.value),
|
|
11597
|
+
onFocus: readOnly ? (e) => e.currentTarget.select() : void 0,
|
|
11598
|
+
autoComplete: isPassword ? "new-password" : "off",
|
|
11599
|
+
autoCorrect: "off",
|
|
11600
|
+
autoCapitalize: "off",
|
|
11601
|
+
spellCheck: false,
|
|
11602
|
+
className: "mt-1 w-full rounded-md border border-border bg-surface px-2 py-1.5 text-xs text-foreground outline-none focus:border-primary"
|
|
11603
|
+
}),
|
|
11604
|
+
error !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
11605
|
+
className: "mt-1.5 text-[11px] text-red-400",
|
|
11606
|
+
children: error
|
|
11607
|
+
})
|
|
11608
|
+
] });
|
|
11609
|
+
}
|
|
11350
11610
|
//#endregion
|
|
11351
11611
|
//#region src/contexts/device-context.tsx
|
|
11352
11612
|
/**
|
|
@@ -50798,6 +51058,7 @@ exports.nextSort = nextSort;
|
|
|
50798
51058
|
exports.nextSortDirection = nextSortDirection;
|
|
50799
51059
|
exports.nextTableSort = nextTableSort;
|
|
50800
51060
|
exports.normalizeForSearch = normalizeForSearch;
|
|
51061
|
+
exports.openTopLayer = openTopLayer;
|
|
50801
51062
|
exports.overrideEntityIdFromLink = overrideEntityIdFromLink;
|
|
50802
51063
|
exports.parseRecordedServerMessage = parseRecordedServerMessage;
|
|
50803
51064
|
exports.providerIcons = providerIcons;
|
|
@@ -50882,6 +51143,7 @@ exports.useAlarmPanelArm = useAlarmPanelArm;
|
|
|
50882
51143
|
exports.useAlarmPanelDisarm = useAlarmPanelDisarm;
|
|
50883
51144
|
exports.useAlarmPanelGetStatus = useAlarmPanelGetStatus;
|
|
50884
51145
|
exports.useAlarmPanelTrigger = useAlarmPanelTrigger;
|
|
51146
|
+
exports.useAlert = useAlert;
|
|
50885
51147
|
exports.useAlertsDismiss = useAlertsDismiss;
|
|
50886
51148
|
exports.useAlertsEmit = useAlertsEmit;
|
|
50887
51149
|
exports.useAlertsGetUnreadCount = useAlertsGetUnreadCount;
|
|
@@ -51390,6 +51652,7 @@ exports.useNotificationRulesCreateRule = useNotificationRulesCreateRule;
|
|
|
51390
51652
|
exports.useNotificationRulesCreateSnooze = useNotificationRulesCreateSnooze;
|
|
51391
51653
|
exports.useNotificationRulesDeleteRule = useNotificationRulesDeleteRule;
|
|
51392
51654
|
exports.useNotificationRulesGetAlarmConfig = useNotificationRulesGetAlarmConfig;
|
|
51655
|
+
exports.useNotificationRulesGetClipRetentionAsks = useNotificationRulesGetClipRetentionAsks;
|
|
51393
51656
|
exports.useNotificationRulesGetConditionCatalog = useNotificationRulesGetConditionCatalog;
|
|
51394
51657
|
exports.useNotificationRulesGetHistory = useNotificationRulesGetHistory;
|
|
51395
51658
|
exports.useNotificationRulesGetRule = useNotificationRulesGetRule;
|
|
@@ -51632,6 +51895,7 @@ exports.usePrivacyMaskGetOptions = usePrivacyMaskGetOptions;
|
|
|
51632
51895
|
exports.usePrivacyMaskGetStatus = usePrivacyMaskGetStatus;
|
|
51633
51896
|
exports.usePrivacyMaskSetAudioEnabled = usePrivacyMaskSetAudioEnabled;
|
|
51634
51897
|
exports.usePrivacyMaskSetMask = usePrivacyMaskSetMask;
|
|
51898
|
+
exports.usePrompt = usePrompt;
|
|
51635
51899
|
exports.usePtzAutotrackGetSettings = usePtzAutotrackGetSettings;
|
|
51636
51900
|
exports.usePtzAutotrackGetStatus = usePtzAutotrackGetStatus;
|
|
51637
51901
|
exports.usePtzAutotrackSetEnabled = usePtzAutotrackSetEnabled;
|
package/dist/index.js
CHANGED
|
@@ -6067,6 +6067,8 @@ var useNotificationRulesUpdateRule = trpc.notificationRules.updateRule.useMutati
|
|
|
6067
6067
|
var useNotificationRulesDeleteRule = trpc.notificationRules.deleteRule.useMutation;
|
|
6068
6068
|
/** Generated alias around `trpc.notificationRules.setRuleEnabled.useMutation`. */
|
|
6069
6069
|
var useNotificationRulesSetRuleEnabled = trpc.notificationRules.setRuleEnabled.useMutation;
|
|
6070
|
+
/** Generated alias around `trpc.notificationRules.getClipRetentionAsks.useQuery`. */
|
|
6071
|
+
var useNotificationRulesGetClipRetentionAsks = trpc.notificationRules.getClipRetentionAsks.useQuery;
|
|
6070
6072
|
/** Generated alias around `trpc.notificationRules.listDeviceMutes.useQuery`. */
|
|
6071
6073
|
var useNotificationRulesListDeviceMutes = trpc.notificationRules.listDeviceMutes.useQuery;
|
|
6072
6074
|
/** Generated alias around `trpc.notificationRules.setDeviceMuted.useMutation`. */
|
|
@@ -11247,82 +11249,340 @@ function EventKindGlyph({ iconId, size = 16, color, className }) {
|
|
|
11247
11249
|
}
|
|
11248
11250
|
//#endregion
|
|
11249
11251
|
//#region src/composites/confirm-dialog.tsx
|
|
11252
|
+
/**
|
|
11253
|
+
* The ONE modal dialog of the product — confirm, alert and prompt.
|
|
11254
|
+
*
|
|
11255
|
+
* ## Why all three live here
|
|
11256
|
+
*
|
|
11257
|
+
* The admin UI used to reach for `window.confirm` / `window.alert` /
|
|
11258
|
+
* `window.prompt` wherever a `useConfirm()` call was inconvenient. A native
|
|
11259
|
+
* dialog is wrong on three counts, and the operator hit the worst one on
|
|
11260
|
+
* Identity → Users: resetting a password opened `window.prompt`, which
|
|
11261
|
+
* **cannot mask its input**. A new password was typed in clear text, into a
|
|
11262
|
+
* box the browser may offer to remember. On top of that a native dialog
|
|
11263
|
+
* matches none of the product's visual language and the host can neither style
|
|
11264
|
+
* nor test it.
|
|
11265
|
+
*
|
|
11266
|
+
* So the fix is not "a password modal" — a second dialog component is the
|
|
11267
|
+
* defect, not the cure. The provider that already served every confirm in the
|
|
11268
|
+
* admin UI (and in the viewer, which documents its own copy as "deliberately
|
|
11269
|
+
* the same one `@camstack/ui-library` exposes to the admin UI") grew two more
|
|
11270
|
+
* intents. One provider, one backdrop, one visual language, one set of
|
|
11271
|
+
* keyboard rules.
|
|
11272
|
+
*
|
|
11273
|
+
* ## The three intents are NOT one control
|
|
11274
|
+
*
|
|
11275
|
+
* - `confirm` — a destructive yes/no. It names what is destroyed, and for the
|
|
11276
|
+
* `danger` variant the destructive button is the NON-default: opening focus
|
|
11277
|
+
* lands on Cancel, so a reflexive Enter cancels.
|
|
11278
|
+
* - `alert` — an error/notice with a single acknowledge.
|
|
11279
|
+
* - `prompt` — one text input with OK/Cancel. `inputType: 'password'` masks it
|
|
11280
|
+
* (and opts out of autofill/remember); `readOnly` turns it into a readable,
|
|
11281
|
+
* select-all-on-open field, which is the shape the copy-to-clipboard
|
|
11282
|
+
* fallback needs — a password box would be actively wrong there.
|
|
11283
|
+
*
|
|
11284
|
+
* ## Why the surface is a native `<dialog>`
|
|
11285
|
+
*
|
|
11286
|
+
* These dialogs open OVER surfaces that are themselves native `<dialog>`s
|
|
11287
|
+
* opened with `showModal()` — the event detail panel, the similar-groups
|
|
11288
|
+
* modal. A `showModal()` dialog is promoted to the TOP LAYER and everything
|
|
11289
|
+
* outside it is inert, so a plain `fixed inset-0` overlay rendered at the app
|
|
11290
|
+
* root would be drawn behind that backdrop and could not be clicked at all.
|
|
11291
|
+
* Confirming a track delete from the detail panel would have been impossible.
|
|
11292
|
+
* So this surface is a `<dialog>` of its own: the top layer stacks, the newest
|
|
11293
|
+
* `showModal()` wins, and the confirm sits above the panel that asked for it.
|
|
11294
|
+
*
|
|
11295
|
+
* jsdom implements `<dialog>` but not `showModal()`, so the open falls back to
|
|
11296
|
+
* the `open` attribute there. Everything this component does — focus, keys,
|
|
11297
|
+
* resolution — is identical on both paths; only the top-layer promotion, which
|
|
11298
|
+
* jsdom cannot model at all, is missing. The fallback is asserted below.
|
|
11299
|
+
*
|
|
11300
|
+
* ## Focus, and why there is NO focus trap
|
|
11301
|
+
*
|
|
11302
|
+
* A `showModal()` dialog already scopes the tab ring to itself, and the
|
|
11303
|
+
* surfaces underneath (`SlideOverPanel`) implement no trap of their own. A
|
|
11304
|
+
* second, hand-rolled focus trap on top of that is how a page becomes
|
|
11305
|
+
* unescapable, so this component deliberately does not trap. What it does do:
|
|
11306
|
+
*
|
|
11307
|
+
* - focuses the input (prompt) or the DEFAULT button on open,
|
|
11308
|
+
* - restores focus to the previously focused element on close,
|
|
11309
|
+
* - handles Escape/Enter from a `keydown` on the dialog itself and calls
|
|
11310
|
+
* `stopPropagation()`. React attaches its listeners at the root container, so
|
|
11311
|
+
* stopping there keeps the event from reaching the `window` Escape listener
|
|
11312
|
+
* of whatever modal is underneath: one Escape closes ONE dialog.
|
|
11313
|
+
*/
|
|
11250
11314
|
var ConfirmContext = createSharedContext("camstack:confirm-dialog", null);
|
|
11251
|
-
function
|
|
11315
|
+
function useDialogContext$1() {
|
|
11252
11316
|
const ctx = useContext(ConfirmContext);
|
|
11253
11317
|
if (!ctx) throw new Error("useConfirm must be used within ConfirmDialogProvider");
|
|
11254
|
-
return ctx
|
|
11318
|
+
return ctx;
|
|
11319
|
+
}
|
|
11320
|
+
function useConfirm() {
|
|
11321
|
+
return useDialogContext$1().confirm;
|
|
11322
|
+
}
|
|
11323
|
+
/** An error/notice with a single acknowledge. Replaces `window.alert`. */
|
|
11324
|
+
function useAlert() {
|
|
11325
|
+
return useDialogContext$1().alert;
|
|
11326
|
+
}
|
|
11327
|
+
/** One text input with OK/Cancel. Replaces `window.prompt`. */
|
|
11328
|
+
function usePrompt() {
|
|
11329
|
+
return useDialogContext$1().prompt;
|
|
11330
|
+
}
|
|
11331
|
+
var VARIANT_STYLES$2 = {
|
|
11332
|
+
danger: { button: "bg-red-500 hover:bg-red-600 text-white" },
|
|
11333
|
+
warning: { button: "bg-orange-500 hover:bg-orange-600 text-white" },
|
|
11334
|
+
default: { button: "bg-primary hover:bg-primary/90 text-white" }
|
|
11335
|
+
};
|
|
11336
|
+
var CANCEL_CLASS = "px-3 py-1.5 text-xs font-medium rounded-md border border-border text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors";
|
|
11337
|
+
function variantOf(state) {
|
|
11338
|
+
if (state.kind === "prompt") return "default";
|
|
11339
|
+
return state.options.variant ?? "default";
|
|
11340
|
+
}
|
|
11341
|
+
/**
|
|
11342
|
+
* Whether the affirmative button is the DEFAULT (initially focused) control.
|
|
11343
|
+
* A `danger` confirm says no: the destructive action must be deliberate.
|
|
11344
|
+
*/
|
|
11345
|
+
function affirmativeIsDefault(state) {
|
|
11346
|
+
return variantOf(state) !== "danger";
|
|
11255
11347
|
}
|
|
11256
11348
|
function ConfirmDialogProvider({ children }) {
|
|
11257
11349
|
const [dialog, setDialog] = useState(null);
|
|
11258
|
-
const confirm = useCallback((options) => {
|
|
11259
|
-
|
|
11260
|
-
|
|
11261
|
-
|
|
11262
|
-
|
|
11263
|
-
|
|
11350
|
+
const confirm = useCallback((options) => new Promise((resolve) => {
|
|
11351
|
+
setDialog({
|
|
11352
|
+
kind: "confirm",
|
|
11353
|
+
options,
|
|
11354
|
+
resolve
|
|
11355
|
+
});
|
|
11356
|
+
}), []);
|
|
11357
|
+
const alert = useCallback((options) => new Promise((resolve) => {
|
|
11358
|
+
setDialog({
|
|
11359
|
+
kind: "alert",
|
|
11360
|
+
options,
|
|
11361
|
+
resolve: () => resolve()
|
|
11264
11362
|
});
|
|
11363
|
+
}), []);
|
|
11364
|
+
const prompt = useCallback((options) => new Promise((resolve) => {
|
|
11365
|
+
setDialog({
|
|
11366
|
+
kind: "prompt",
|
|
11367
|
+
options,
|
|
11368
|
+
resolve
|
|
11369
|
+
});
|
|
11370
|
+
}), []);
|
|
11371
|
+
const close = useCallback(() => setDialog(null), []);
|
|
11372
|
+
return /* @__PURE__ */ jsxs(ConfirmContext.Provider, {
|
|
11373
|
+
value: {
|
|
11374
|
+
confirm,
|
|
11375
|
+
alert,
|
|
11376
|
+
prompt
|
|
11377
|
+
},
|
|
11378
|
+
children: [children, dialog && /* @__PURE__ */ jsx(DialogSurface, {
|
|
11379
|
+
state: dialog,
|
|
11380
|
+
onClose: close
|
|
11381
|
+
}, dialogKey(dialog))]
|
|
11382
|
+
});
|
|
11383
|
+
}
|
|
11384
|
+
/**
|
|
11385
|
+
* A key that changes per OPENED dialog, so a second dialog opened while one is
|
|
11386
|
+
* showing remounts the surface (fresh input value, fresh focus) instead of
|
|
11387
|
+
* inheriting the previous one's state.
|
|
11388
|
+
*/
|
|
11389
|
+
function dialogKey(state) {
|
|
11390
|
+
return `${state.kind}:${state.options.title}`;
|
|
11391
|
+
}
|
|
11392
|
+
/**
|
|
11393
|
+
* Promotes `el` to the top layer. jsdom has `<dialog>` but no `showModal`, so
|
|
11394
|
+
* the attribute is the fallback — see the file docblock.
|
|
11395
|
+
*/
|
|
11396
|
+
function openTopLayer(el) {
|
|
11397
|
+
if (typeof el.showModal === "function") el.showModal();
|
|
11398
|
+
else el.setAttribute("open", "");
|
|
11399
|
+
}
|
|
11400
|
+
function closeTopLayer(el) {
|
|
11401
|
+
if (!el.open) return;
|
|
11402
|
+
if (typeof el.close === "function") el.close();
|
|
11403
|
+
else el.removeAttribute("open");
|
|
11404
|
+
}
|
|
11405
|
+
function DialogSurface({ state, onClose }) {
|
|
11406
|
+
const dialogRef = useRef(null);
|
|
11407
|
+
const inputRef = useRef(null);
|
|
11408
|
+
const defaultButtonRef = useRef(null);
|
|
11409
|
+
const settled = useRef(false);
|
|
11410
|
+
const [value, setValue] = useState(state.kind === "prompt" ? state.options.defaultValue ?? "" : "");
|
|
11411
|
+
const [error, setError] = useState(null);
|
|
11412
|
+
useEffect(() => {
|
|
11413
|
+
const previous = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
11414
|
+
const el = dialogRef.current;
|
|
11415
|
+
if (el) openTopLayer(el);
|
|
11416
|
+
const input = inputRef.current;
|
|
11417
|
+
if (input) {
|
|
11418
|
+
input.focus();
|
|
11419
|
+
if (state.kind === "prompt" && state.options.readOnly === true) input.select();
|
|
11420
|
+
} else defaultButtonRef.current?.focus();
|
|
11421
|
+
return () => {
|
|
11422
|
+
if (el) closeTopLayer(el);
|
|
11423
|
+
previous?.focus();
|
|
11424
|
+
};
|
|
11265
11425
|
}, []);
|
|
11266
|
-
const
|
|
11267
|
-
|
|
11268
|
-
|
|
11269
|
-
|
|
11270
|
-
|
|
11271
|
-
|
|
11272
|
-
|
|
11273
|
-
};
|
|
11274
|
-
const
|
|
11275
|
-
|
|
11276
|
-
|
|
11277
|
-
|
|
11426
|
+
const cancel = useCallback(() => {
|
|
11427
|
+
if (settled.current) return;
|
|
11428
|
+
settled.current = true;
|
|
11429
|
+
if (state.kind === "confirm") state.resolve(false);
|
|
11430
|
+
else if (state.kind === "prompt") state.resolve(null);
|
|
11431
|
+
else state.resolve();
|
|
11432
|
+
onClose();
|
|
11433
|
+
}, [state, onClose]);
|
|
11434
|
+
const accept = useCallback(() => {
|
|
11435
|
+
if (settled.current) return;
|
|
11436
|
+
if (state.kind === "confirm") {
|
|
11437
|
+
settled.current = true;
|
|
11438
|
+
state.resolve(true);
|
|
11439
|
+
onClose();
|
|
11440
|
+
return;
|
|
11441
|
+
}
|
|
11442
|
+
if (state.kind === "alert") {
|
|
11443
|
+
settled.current = true;
|
|
11444
|
+
state.resolve();
|
|
11445
|
+
onClose();
|
|
11446
|
+
return;
|
|
11447
|
+
}
|
|
11448
|
+
if (state.options.readOnly !== true) {
|
|
11449
|
+
const problem = state.options.validate?.(value) ?? null;
|
|
11450
|
+
if (problem !== null) {
|
|
11451
|
+
setError(problem);
|
|
11452
|
+
inputRef.current?.focus();
|
|
11453
|
+
return;
|
|
11454
|
+
}
|
|
11455
|
+
}
|
|
11456
|
+
settled.current = true;
|
|
11457
|
+
state.resolve(state.options.readOnly === true ? null : value);
|
|
11458
|
+
onClose();
|
|
11459
|
+
}, [
|
|
11460
|
+
state,
|
|
11461
|
+
onClose,
|
|
11462
|
+
value
|
|
11463
|
+
]);
|
|
11464
|
+
const onKeyDown = useCallback((e) => {
|
|
11465
|
+
if (e.key === "Escape") {
|
|
11466
|
+
e.stopPropagation();
|
|
11467
|
+
e.preventDefault();
|
|
11468
|
+
cancel();
|
|
11469
|
+
return;
|
|
11470
|
+
}
|
|
11471
|
+
if (e.key !== "Enter") return;
|
|
11472
|
+
if (e.target === inputRef.current) return;
|
|
11473
|
+
if (!affirmativeIsDefault(state)) return;
|
|
11474
|
+
e.stopPropagation();
|
|
11475
|
+
e.preventDefault();
|
|
11476
|
+
accept();
|
|
11477
|
+
}, [
|
|
11478
|
+
state,
|
|
11479
|
+
cancel,
|
|
11480
|
+
accept
|
|
11481
|
+
]);
|
|
11482
|
+
const onSubmit = useCallback((e) => {
|
|
11483
|
+
e.preventDefault();
|
|
11484
|
+
e.stopPropagation();
|
|
11485
|
+
accept();
|
|
11486
|
+
}, [accept]);
|
|
11487
|
+
const style = VARIANT_STYLES$2[variantOf(state)];
|
|
11488
|
+
const titleId = "camstack-dialog-title";
|
|
11489
|
+
const body = state.kind === "prompt" ? /* @__PURE__ */ jsx(PromptBody, {
|
|
11490
|
+
options: state.options,
|
|
11491
|
+
value,
|
|
11492
|
+
error,
|
|
11493
|
+
inputRef,
|
|
11494
|
+
onChange: (next) => {
|
|
11495
|
+
setValue(next);
|
|
11496
|
+
setError(null);
|
|
11497
|
+
}
|
|
11498
|
+
}) : /* @__PURE__ */ jsx("p", {
|
|
11499
|
+
className: "mt-2 text-xs text-foreground-subtle leading-relaxed",
|
|
11500
|
+
children: state.options.message
|
|
11501
|
+
});
|
|
11502
|
+
const footer = state.kind === "alert" ? /* @__PURE__ */ jsx("button", {
|
|
11503
|
+
type: "button",
|
|
11504
|
+
ref: defaultButtonRef,
|
|
11505
|
+
onClick: accept,
|
|
11506
|
+
className: `px-3 py-1.5 text-xs font-medium rounded-md transition-colors ${style.button}`,
|
|
11507
|
+
children: state.options.acknowledgeLabel ?? "OK"
|
|
11508
|
+
}) : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("button", {
|
|
11509
|
+
type: "button",
|
|
11510
|
+
ref: affirmativeIsDefault(state) ? null : defaultButtonRef,
|
|
11511
|
+
onClick: cancel,
|
|
11512
|
+
className: CANCEL_CLASS,
|
|
11513
|
+
children: state.options.cancelLabel ?? "Cancel"
|
|
11514
|
+
}), !(state.kind === "prompt" && state.options.readOnly === true) && /* @__PURE__ */ jsx("button", {
|
|
11515
|
+
type: state.kind === "prompt" ? "submit" : "button",
|
|
11516
|
+
ref: affirmativeIsDefault(state) ? defaultButtonRef : null,
|
|
11517
|
+
onClick: state.kind === "prompt" ? void 0 : accept,
|
|
11518
|
+
className: `px-3 py-1.5 text-xs font-medium rounded-md transition-colors ${style.button}`,
|
|
11519
|
+
children: state.options.confirmLabel ?? (state.kind === "prompt" ? "OK" : "Confirm")
|
|
11520
|
+
})] });
|
|
11521
|
+
const inner = /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs("div", {
|
|
11522
|
+
className: "px-5 pt-5 pb-4",
|
|
11523
|
+
children: [/* @__PURE__ */ jsx("h3", {
|
|
11524
|
+
id: titleId,
|
|
11525
|
+
className: "text-sm font-semibold text-foreground",
|
|
11526
|
+
children: state.options.title
|
|
11527
|
+
}), body]
|
|
11528
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
11529
|
+
className: "flex justify-end gap-2 px-5 py-3 border-t border-border bg-surface-hover/30",
|
|
11530
|
+
children: footer
|
|
11531
|
+
})] });
|
|
11532
|
+
return /* @__PURE__ */ jsx("dialog", {
|
|
11533
|
+
ref: dialogRef,
|
|
11534
|
+
"aria-modal": "true",
|
|
11535
|
+
"aria-labelledby": titleId,
|
|
11536
|
+
onKeyDown,
|
|
11537
|
+
onCancel: (e) => {
|
|
11538
|
+
e.preventDefault();
|
|
11539
|
+
cancel();
|
|
11278
11540
|
},
|
|
11279
|
-
|
|
11280
|
-
|
|
11281
|
-
button: "bg-orange-500 hover:bg-orange-600 text-white"
|
|
11541
|
+
onClick: (e) => {
|
|
11542
|
+
if (e.target === e.currentTarget) cancel();
|
|
11282
11543
|
},
|
|
11283
|
-
|
|
11284
|
-
|
|
11285
|
-
|
|
11286
|
-
|
|
11287
|
-
|
|
11288
|
-
const style = dialog ? variantStyles[dialog.variant ?? "default"] : variantStyles.default;
|
|
11289
|
-
return /* @__PURE__ */ jsxs(ConfirmContext.Provider, {
|
|
11290
|
-
value: { confirm },
|
|
11291
|
-
children: [children, dialog && /* @__PURE__ */ jsxs("div", {
|
|
11292
|
-
className: "fixed inset-0 z-50 flex items-center justify-center",
|
|
11293
|
-
children: [/* @__PURE__ */ jsx("div", {
|
|
11294
|
-
className: "absolute inset-0 bg-black/50 backdrop-blur-sm",
|
|
11295
|
-
onClick: handleCancel
|
|
11296
|
-
}), /* @__PURE__ */ jsxs("div", {
|
|
11297
|
-
className: "relative z-10 w-full max-w-sm mx-4 rounded-xl border border-border bg-surface shadow-2xl overflow-hidden animate-in fade-in zoom-in-95 duration-150",
|
|
11298
|
-
onClick: (e) => e.stopPropagation(),
|
|
11299
|
-
children: [/* @__PURE__ */ jsxs("div", {
|
|
11300
|
-
className: "px-5 pt-5 pb-4",
|
|
11301
|
-
children: [/* @__PURE__ */ jsx("h3", {
|
|
11302
|
-
className: "text-sm font-semibold text-foreground",
|
|
11303
|
-
children: dialog.title
|
|
11304
|
-
}), /* @__PURE__ */ jsx("p", {
|
|
11305
|
-
className: "mt-2 text-xs text-foreground-subtle leading-relaxed",
|
|
11306
|
-
children: dialog.message
|
|
11307
|
-
})]
|
|
11308
|
-
}), /* @__PURE__ */ jsxs("div", {
|
|
11309
|
-
className: "flex justify-end gap-2 px-5 py-3 border-t border-border bg-surface-hover/30",
|
|
11310
|
-
children: [/* @__PURE__ */ jsx("button", {
|
|
11311
|
-
type: "button",
|
|
11312
|
-
onClick: handleCancel,
|
|
11313
|
-
className: "px-3 py-1.5 text-xs font-medium rounded-md border border-border text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors",
|
|
11314
|
-
children: dialog.cancelLabel ?? "Cancel"
|
|
11315
|
-
}), /* @__PURE__ */ jsx("button", {
|
|
11316
|
-
type: "button",
|
|
11317
|
-
onClick: handleConfirm,
|
|
11318
|
-
className: `px-3 py-1.5 text-xs font-medium rounded-md transition-colors ${style.button}`,
|
|
11319
|
-
children: dialog.confirmLabel ?? "Confirm"
|
|
11320
|
-
})]
|
|
11321
|
-
})]
|
|
11322
|
-
})]
|
|
11323
|
-
})]
|
|
11544
|
+
className: "fixed left-1/2 top-1/2 z-50 m-0 w-[calc(100vw-2rem)] max-w-sm -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-xl border border-border bg-surface p-0 text-foreground shadow-2xl backdrop:bg-black/50 backdrop:backdrop-blur-sm [&:not([open])]:hidden",
|
|
11545
|
+
children: state.kind === "prompt" ? /* @__PURE__ */ jsx("form", {
|
|
11546
|
+
onSubmit,
|
|
11547
|
+
children: inner
|
|
11548
|
+
}) : inner
|
|
11324
11549
|
});
|
|
11325
11550
|
}
|
|
11551
|
+
function PromptBody({ options, value, error, inputRef, onChange }) {
|
|
11552
|
+
const readOnly = options.readOnly === true;
|
|
11553
|
+
const isPassword = !readOnly && options.inputType === "password";
|
|
11554
|
+
const inputId = "camstack-dialog-input";
|
|
11555
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
11556
|
+
options.message !== void 0 && /* @__PURE__ */ jsx("p", {
|
|
11557
|
+
className: "mt-2 text-xs text-foreground-subtle leading-relaxed",
|
|
11558
|
+
children: options.message
|
|
11559
|
+
}),
|
|
11560
|
+
/* @__PURE__ */ jsx("label", {
|
|
11561
|
+
htmlFor: inputId,
|
|
11562
|
+
className: "mt-3 block text-[11px] font-medium text-foreground-subtle",
|
|
11563
|
+
children: options.label ?? options.title
|
|
11564
|
+
}),
|
|
11565
|
+
/* @__PURE__ */ jsx("input", {
|
|
11566
|
+
id: inputId,
|
|
11567
|
+
ref: inputRef,
|
|
11568
|
+
type: isPassword ? "password" : "text",
|
|
11569
|
+
value,
|
|
11570
|
+
readOnly,
|
|
11571
|
+
placeholder: options.placeholder,
|
|
11572
|
+
onChange: (e) => onChange(e.target.value),
|
|
11573
|
+
onFocus: readOnly ? (e) => e.currentTarget.select() : void 0,
|
|
11574
|
+
autoComplete: isPassword ? "new-password" : "off",
|
|
11575
|
+
autoCorrect: "off",
|
|
11576
|
+
autoCapitalize: "off",
|
|
11577
|
+
spellCheck: false,
|
|
11578
|
+
className: "mt-1 w-full rounded-md border border-border bg-surface px-2 py-1.5 text-xs text-foreground outline-none focus:border-primary"
|
|
11579
|
+
}),
|
|
11580
|
+
error !== null && /* @__PURE__ */ jsx("p", {
|
|
11581
|
+
className: "mt-1.5 text-[11px] text-red-400",
|
|
11582
|
+
children: error
|
|
11583
|
+
})
|
|
11584
|
+
] });
|
|
11585
|
+
}
|
|
11326
11586
|
//#endregion
|
|
11327
11587
|
//#region src/contexts/device-context.tsx
|
|
11328
11588
|
/**
|
|
@@ -50423,4 +50683,4 @@ var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-Bfo4BNqA.js").t
|
|
|
50423
50683
|
/** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
|
|
50424
50684
|
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-CooCVUmA.js").then((m) => ({ default: m.PrivacyMaskSettings })));
|
|
50425
50685
|
//#endregion
|
|
50426
|
-
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, NAVIGATION_DRIVE_INTERVAL_MS, NavigationPanel, NetworkLinkBadge, NodeMultiSelectField, NodePicker, NodeSelectField, OfflineBadge, PHASE_CONFIG, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, 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, hubOrigin, hubPath, hubUrl, hubWsUrl, humanDuration, humidifierTint, Mic as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, mountPath, Square as n, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, normalizeForSearch, EyeOff as o, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, RotateCcw as r, resetHubMountForTests, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, roiTooLarge, routerBasename, Camera as s, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, shouldUseSingleNode, sortRows, sortRowsByColumn, statusIcons, statusLine, stepHasModelForFormat, stepModelOptions, stripParentNamePrefix, Trash2 as t, tabForSelector, tankAlert, themeToCss, toStationaryOverlayBox, 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, useAudioAnalyzerAttachDevice, useAudioAnalyzerClassify, useAudioAnalyzerDetachDevice, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupCancel, useBackupDelete, useBackupDeleteSchedule, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupListRuns, useBackupListSchedules, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBackupUpsertSchedule, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, 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, useDeviceNetworkLink, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderReloadDevice, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellApplyDeviceSettingsPatch, useDoorbellEvents, useDoorbellGetDeviceLiveContribution, useDoorbellGetDeviceSettingsContribution, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryAuditIdentitySamples, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, useLlmCancel, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmResolveModelRef, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkDownloadCa, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkGetTlsStatus, useLocalNetworkGetViewerEndpoints, useLocalNetworkList, useLocalNetworkRegenerateCertificate, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkRevertToGeneratedCertificate, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLocalNetworkSetViewerEndpoints, useLocalNetworkUploadCertificate, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetLoadSeries, useMetricsProviderGetProcessStats, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetOptions, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNativeObjectDetectionSetSettings, useNavigation, useNavigationGetFeatures, useNavigationGetStatus, useNavigationGoToPoint, useNavigationListActions, useNavigationMove, useNavigationPlaySound, useNavigationRunAction, useNavigationSetLightLevel, useNavigationSetLightMode, useNavigationSetLightOn, useNavigationStop, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkLinkGetStatus, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, 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, usePipelineAnalyticsGetSummary, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListArchivedDebugNotes, usePipelineAnalyticsListBirthDecisions, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentSummaries, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListSummaries, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsReadLongTermSeries, 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, usePipelineOrchestratorSetAgentDecodeLimits, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerGetParkedTrackFrame, usePipelineRunnerParkTrackFrame, usePipelineRunnerReleaseParkedTrackFrames, usePipelineRunnerReportMotion, usePipelineRunnerRequestOccupancyBurst, usePipelineRunnerRunDetailSubtree, usePipelineRunnerRunStatelessStep, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetAudioEnabled, usePrivacyMaskSetMask, 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, useRecordingSignalGetStatus, 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, useSettingsStoreUpsert, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStationaryOverlay, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageList, useStorageListDrainProgress, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageMigrationCancel, useStorageMigrationCleanupCancel, useStorageMigrationCleanupStart, useStorageMigrationCleanupStatus, useStorageMigrationDrain, useStorageMigrationHistory, useStorageMigrationMovers, useStorageMigrationPlan, useStorageMigrationResidue, useStorageMigrationStart, useStorageMigrationStatus, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStreamBrokerAcquireEgressTranscode, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerFetchEventMedia, useStreamBrokerForgetDeviceHardware, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerReportStreamSignal, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useStreamSignalsListSignals, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemDetectSiteLocation, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetFailureContributions, useSystemGetLoadContributions, useSystemGetLoggingSettings, useSystemGetRequestCensus, useSystemGetRetentionConfig, useSystemGetSiteLocation, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetLoggingSettings, useSystemSetRetentionConfig, useSystemSetSiteLocation, useTamperGetStatus, useTemperatureSensorGetStatus, useTerminalSessionAdoptLegacyMonitor, useTerminalSessionClose, useTerminalSessionCreateInstance, useTerminalSessionDeleteInstance, useTerminalSessionListInstances, useTerminalSessionListLegacyCameras, useTerminalSessionListProfiles, useTerminalSessionListSessions, useTerminalSessionOpenSession, useTerminalSessionPullOutput, useTerminalSessionResize, useTerminalSessionSetInstanceEnabled, useTerminalSessionUpdateInstance, useTerminalSessionWriteInput, useThemeMode, useToastOnToast, useTurnProviderGetTurnServers, useUpdateGetStatus, useUpdateInstallUpdate, useUserManagementConfirmTotp, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementGetTotpStatus, useUserManagementListApiKeys, useUserManagementListOauthSessions, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeOauthSession, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, 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 };
|
|
50686
|
+
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, NAVIGATION_DRIVE_INTERVAL_MS, NavigationPanel, NetworkLinkBadge, NodeMultiSelectField, NodePicker, NodeSelectField, OfflineBadge, PHASE_CONFIG, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, 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, hubOrigin, hubPath, hubUrl, hubWsUrl, humanDuration, humidifierTint, Mic as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, mountPath, Square as n, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, normalizeForSearch, EyeOff as o, openTopLayer, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, RotateCcw as r, resetHubMountForTests, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolvePrimaryChild, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, roiTooLarge, routerBasename, Camera as s, scrubReducer, selectedDeviceOptions, serializeRecordedCommand, shouldCommit, shouldEmit, shouldUseSingleNode, sortRows, sortRowsByColumn, statusIcons, statusLine, stepHasModelForFormat, stepModelOptions, stripParentNamePrefix, Trash2 as t, tabForSelector, tankAlert, themeToCss, toStationaryOverlayBox, 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, useAlert, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerAttachDevice, useAudioAnalyzerClassify, useAudioAnalyzerDetachDevice, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupCancel, useBackupDelete, useBackupDeleteSchedule, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupListRuns, useBackupListSchedules, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBackupUpsertSchedule, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, 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, useDeviceNetworkLink, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderReloadDevice, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellApplyDeviceSettingsPatch, useDoorbellEvents, useDoorbellGetDeviceLiveContribution, useDoorbellGetDeviceSettingsContribution, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryAuditIdentitySamples, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, useLlmCancel, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmResolveModelRef, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkDownloadCa, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkGetTlsStatus, useLocalNetworkGetViewerEndpoints, useLocalNetworkList, useLocalNetworkRegenerateCertificate, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkRevertToGeneratedCertificate, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLocalNetworkSetViewerEndpoints, useLocalNetworkUploadCertificate, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetLoadSeries, useMetricsProviderGetProcessStats, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetOptions, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNativeObjectDetectionSetSettings, useNavigation, useNavigationGetFeatures, useNavigationGetStatus, useNavigationGoToPoint, useNavigationListActions, useNavigationMove, useNavigationPlaySound, useNavigationRunAction, useNavigationSetLightLevel, useNavigationSetLightMode, useNavigationSetLightOn, useNavigationStop, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkLinkGetStatus, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesCancelSnooze, useNotificationRulesCreateRule, useNotificationRulesCreateSnooze, useNotificationRulesDeleteRule, useNotificationRulesGetAlarmConfig, useNotificationRulesGetClipRetentionAsks, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, 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, usePipelineAnalyticsGetSummary, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListArchivedDebugNotes, usePipelineAnalyticsListBirthDecisions, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentSummaries, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListSummaries, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsReadLongTermSeries, 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, usePipelineOrchestratorSetAgentDecodeLimits, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerGetParkedTrackFrame, usePipelineRunnerParkTrackFrame, usePipelineRunnerReleaseParkedTrackFrames, usePipelineRunnerReportMotion, usePipelineRunnerRequestOccupancyBurst, usePipelineRunnerRunDetailSubtree, usePipelineRunnerRunStatelessStep, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetAudioEnabled, usePrivacyMaskSetMask, usePrompt, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, 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, useRecordingSignalGetStatus, 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, useSettingsStoreUpsert, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStationaryOverlay, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageList, useStorageListDrainProgress, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageMigrationCancel, useStorageMigrationCleanupCancel, useStorageMigrationCleanupStart, useStorageMigrationCleanupStatus, useStorageMigrationDrain, useStorageMigrationHistory, useStorageMigrationMovers, useStorageMigrationPlan, useStorageMigrationResidue, useStorageMigrationStart, useStorageMigrationStatus, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStreamBrokerAcquireEgressTranscode, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerFetchEventMedia, useStreamBrokerForgetDeviceHardware, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerReportStreamSignal, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useStreamSignalsListSignals, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemDetectSiteLocation, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetFailureContributions, useSystemGetLoadContributions, useSystemGetLoggingSettings, useSystemGetRequestCensus, useSystemGetRetentionConfig, useSystemGetSiteLocation, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetLoggingSettings, useSystemSetRetentionConfig, useSystemSetSiteLocation, useTamperGetStatus, useTemperatureSensorGetStatus, useTerminalSessionAdoptLegacyMonitor, useTerminalSessionClose, useTerminalSessionCreateInstance, useTerminalSessionDeleteInstance, useTerminalSessionListInstances, useTerminalSessionListLegacyCameras, useTerminalSessionListProfiles, useTerminalSessionListSessions, useTerminalSessionOpenSession, useTerminalSessionPullOutput, useTerminalSessionResize, useTerminalSessionSetInstanceEnabled, useTerminalSessionUpdateInstance, useTerminalSessionWriteInput, useThemeMode, useToastOnToast, useTurnProviderGetTurnServers, useUpdateGetStatus, useUpdateInstallUpdate, useUserManagementConfirmTotp, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementGetTotpStatus, useUserManagementListApiKeys, useUserManagementListOauthSessions, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeOauthSession, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, 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.
|
|
3
|
+
"version": "1.2.166",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"build": "vite build",
|
|
33
33
|
"typecheck": "tsc --noEmit",
|
|
34
34
|
"test": "vitest run",
|
|
35
|
-
"publish": "npm publish --access public"
|
|
35
|
+
"publish:npm": "npm publish --access public"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"@camstack/sdk": "*",
|