@camstack/ui-library 1.2.249 → 1.2.250
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/config-secret-field.d.ts +22 -0
- package/dist/composites/index.d.ts +4 -0
- package/dist/composites/training/send-frame-to-training.d.ts +6 -0
- package/dist/composites/training/training-collection-picker.d.ts +5 -0
- package/dist/composites/training/training-refusal-text.d.ts +10 -0
- package/dist/generated/system-hooks.d.ts +58 -0
- package/dist/index.cjs +772 -249
- package/dist/index.js +737 -250
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ThemeProvider, createTheme, darkColors, defaultTheme, lightColors, themeToCss, useThemeMode } from "./theme/index.js";
|
|
2
2
|
import * as __mfHostReact from "react";
|
|
3
3
|
import React, { Fragment, Suspense, createContext, createElement, forwardRef, lazy, useCallback, useContext, useEffect, useId, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore } from "react";
|
|
4
|
+
import { ALL_CAPABILITY_DEFINITIONS, CAM_PROFILE_ORDER, CLIP_STILL_DISPOSITION_HEADER, CLIP_STILL_REASON_CODE_HEADER, CLIP_STILL_REASON_HEADER, CONTAINER_CHILD_PRIORITY, DEFAULT_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEVICE_TYPE_CONTROL_KIND, DISPLAY_ICON_GROUPS, DeviceExportStatusSchema, DeviceFeature, DeviceRole, DeviceType, EVENT_TAXONOMY, EXTENSION_SLOTS, EXTENSION_SLOT_IDS, EventCategory, ExposedDeviceSchema, FIRST_LEVEL_MACRO_CLASSES, KNOWN_CAP_NAMES, MAX_SENSOR_TRIGGER_DEVICES, MODEL_PROVIDER_IDS, NAVIGATION_LIGHT_LEVEL_MAX, NAVIGATION_LIGHT_LEVEL_MIN, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, RECORDING_AUDIO_TRIGGER_OFFERED_DBFS, RECORDING_SOURCE_CAMSTACK_ADDON, RecordingConfigSchema, RecordingStatusSchema, SECRET_CLEAR, SOURCE_CAP_ACTIVE_FIELD, STATIONARY_OVERLAY_STYLE, TIMEZONES, USE_ROOT_MODEL_SETTING_KEY, buildModelVariantGroups, canConvertUnit, clearModelBoundOverrides, clearModelBoundSetting, clusterStepSettingFieldsFor, collectModelBoundKeys, createDeviceProxy, createLazyTrpcSource, createSliceHandle, deriveRecordingMode, describeModelVariant, effectiveStepSettings, findTimezone, formatParkedFor, hasModelBoundOverrides, isKeychainStoredField, isRootSuppliableStepId, isSecretClear, isSecretFieldView, modelBindingKey, normalizeUnit, publicEventCategories, resolveContainerPrimaryChild, resolveDeviceControlKind, resolveDisplayIconKey, resolveModelBoundSetting, resolveRecordingProfiles, resolveRootSupply, resolveVariantModelId, resolveViewableDeviceIds, searchDisplayIcons, selectAssignedProfileSlots, stepSettingSource, tryConvertUnit, unitsForDimension, withFieldFrom, withoutField, writeModelBoundSetting } from "@camstack/types";
|
|
4
5
|
import * as __mfHostTrpcReactQuery from "@trpc/react-query";
|
|
5
6
|
import { createTRPCReact } from "@trpc/react-query";
|
|
6
7
|
import * as __mfHostReactJsxRuntime from "react/jsx-runtime";
|
|
7
8
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
-
import { ALL_CAPABILITY_DEFINITIONS, CAM_PROFILE_ORDER, CLIP_STILL_DISPOSITION_HEADER, CLIP_STILL_REASON_CODE_HEADER, CLIP_STILL_REASON_HEADER, CONTAINER_CHILD_PRIORITY, DEFAULT_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEVICE_TYPE_CONTROL_KIND, DISPLAY_ICON_GROUPS, DeviceExportStatusSchema, DeviceFeature, DeviceRole, DeviceType, EVENT_TAXONOMY, EXTENSION_SLOTS, EXTENSION_SLOT_IDS, EventCategory, ExposedDeviceSchema, FIRST_LEVEL_MACRO_CLASSES, KNOWN_CAP_NAMES, MAX_SENSOR_TRIGGER_DEVICES, MODEL_PROVIDER_IDS, NAVIGATION_LIGHT_LEVEL_MAX, NAVIGATION_LIGHT_LEVEL_MIN, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, RECORDING_AUDIO_TRIGGER_OFFERED_DBFS, RECORDING_SOURCE_CAMSTACK_ADDON, RecordingConfigSchema, RecordingStatusSchema, SOURCE_CAP_ACTIVE_FIELD, STATIONARY_OVERLAY_STYLE, TIMEZONES, USE_ROOT_MODEL_SETTING_KEY, buildModelVariantGroups, canConvertUnit, clearModelBoundOverrides, clearModelBoundSetting, clusterStepSettingFieldsFor, collectModelBoundKeys, createDeviceProxy, createLazyTrpcSource, createSliceHandle, deriveRecordingMode, describeModelVariant, effectiveStepSettings, findTimezone, formatParkedFor, hasModelBoundOverrides, isRootSuppliableStepId, modelBindingKey, normalizeUnit, publicEventCategories, resolveContainerPrimaryChild, resolveDeviceControlKind, resolveDisplayIconKey, resolveModelBoundSetting, resolveRecordingProfiles, resolveRootSupply, resolveVariantModelId, resolveViewableDeviceIds, searchDisplayIcons, selectAssignedProfileSlots, stepSettingSource, tryConvertUnit, unitsForDimension, withFieldFrom, withoutField, writeModelBoundSetting } from "@camstack/types";
|
|
9
9
|
import * as __mfHostReactDOM from "react-dom";
|
|
10
10
|
import { createPortal } from "react-dom";
|
|
11
11
|
import * as __mfHostTanstackQuery from "@tanstack/react-query";
|
|
@@ -2430,6 +2430,26 @@ var Gauge = createLucideIcon("gauge", [["path", {
|
|
|
2430
2430
|
* This source code is licensed under the ISC license.
|
|
2431
2431
|
* See the LICENSE file in the root directory of this source tree.
|
|
2432
2432
|
*/
|
|
2433
|
+
var GraduationCap = createLucideIcon("graduation-cap", [
|
|
2434
|
+
["path", {
|
|
2435
|
+
d: "M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",
|
|
2436
|
+
key: "j76jl0"
|
|
2437
|
+
}],
|
|
2438
|
+
["path", {
|
|
2439
|
+
d: "M22 10v6",
|
|
2440
|
+
key: "1lu8f3"
|
|
2441
|
+
}],
|
|
2442
|
+
["path", {
|
|
2443
|
+
d: "M6 12.5V16a6 3 0 0 0 12 0v-3.5",
|
|
2444
|
+
key: "1r8lef"
|
|
2445
|
+
}]
|
|
2446
|
+
]);
|
|
2447
|
+
/**
|
|
2448
|
+
* @license lucide-react v0.576.0 - ISC
|
|
2449
|
+
*
|
|
2450
|
+
* This source code is licensed under the ISC license.
|
|
2451
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
2452
|
+
*/
|
|
2433
2453
|
var Grid2x2 = createLucideIcon("grid-2x2", [
|
|
2434
2454
|
["path", {
|
|
2435
2455
|
d: "M12 3v18",
|
|
@@ -7192,6 +7212,179 @@ function ConfigIconFieldControl({ label, value, defaultKey, disabled, onChange }
|
|
|
7192
7212
|
});
|
|
7193
7213
|
}
|
|
7194
7214
|
//#endregion
|
|
7215
|
+
//#region src/composites/config-secret-field.tsx
|
|
7216
|
+
/**
|
|
7217
|
+
* A keychain-stored secret in a settings form (D787, D789).
|
|
7218
|
+
*
|
|
7219
|
+
* The form never holds the value. It receives the field's VIEW —
|
|
7220
|
+
* `{ $secret, v, set: true }` when something is stored, `null` when nothing
|
|
7221
|
+
* is — and sends back exactly one of three things:
|
|
7222
|
+
*
|
|
7223
|
+
* - the view, unchanged ........ KEEP (also what an untouched form saves);
|
|
7224
|
+
* - a non-empty typed string ... CHANGE (the owner stores it in the keychain);
|
|
7225
|
+
* - `{ $secretClear: true }` ... CLEAR (the only thing that removes it).
|
|
7226
|
+
*
|
|
7227
|
+
* `''` is never sent for "remove": the save path reads it as KEEP, because an
|
|
7228
|
+
* empty string is what a defaults fallback writes back.
|
|
7229
|
+
*
|
|
7230
|
+
* Reveal shows the stored value for a few seconds, through the host's audited
|
|
7231
|
+
* `keychain-admin.reveal` (provided with {@link SecretRevealProvider}); a host
|
|
7232
|
+
* that provides none has no Reveal button.
|
|
7233
|
+
*/
|
|
7234
|
+
/** How long a revealed value stays on screen. */
|
|
7235
|
+
var SECRET_REVEAL_MS = 1e4;
|
|
7236
|
+
var SecretRevealContext = createSharedContext("camstack:secret-reveal", null);
|
|
7237
|
+
function SecretRevealProvider({ reveal, children }) {
|
|
7238
|
+
return /* @__PURE__ */ jsx(SecretRevealContext.Provider, {
|
|
7239
|
+
value: reveal,
|
|
7240
|
+
children
|
|
7241
|
+
});
|
|
7242
|
+
}
|
|
7243
|
+
/** Does this value belong to the keychain rendering (a view, or "not set")? */
|
|
7244
|
+
function isKeychainFieldValue(value) {
|
|
7245
|
+
return value === null || isSecretFieldView(value) || isSecretClear(value);
|
|
7246
|
+
}
|
|
7247
|
+
var BUTTON$1 = "inline-flex items-center gap-1 rounded border border-border bg-surface px-2 py-0.5 text-[11px] font-medium text-foreground hover:border-primary/40 hover:bg-primary/5 disabled:opacity-40 disabled:cursor-not-allowed";
|
|
7248
|
+
var INPUT = "w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none disabled:opacity-50";
|
|
7249
|
+
function SecretFieldControl({ field, value, onChange, disabled, multiline }) {
|
|
7250
|
+
const reveal = useContext(SecretRevealContext);
|
|
7251
|
+
const [original] = useState(() => isSecretFieldView(value) ? value : null);
|
|
7252
|
+
const [mode, setMode] = useState(() => typeof value === "string" && value.length > 0 ? {
|
|
7253
|
+
kind: "editing",
|
|
7254
|
+
text: value
|
|
7255
|
+
} : isSecretClear(value) ? { kind: "clearing" } : { kind: "idle" });
|
|
7256
|
+
const [shown, setShown] = useState(null);
|
|
7257
|
+
const [revealError, setRevealError] = useState(null);
|
|
7258
|
+
const [showTyped, setShowTyped] = useState(false);
|
|
7259
|
+
useEffect(() => {
|
|
7260
|
+
if (shown === null) return;
|
|
7261
|
+
const timer = setTimeout(() => setShown(null), SECRET_REVEAL_MS);
|
|
7262
|
+
return () => clearTimeout(timer);
|
|
7263
|
+
}, [shown]);
|
|
7264
|
+
const isSet = original !== null;
|
|
7265
|
+
const ref = original?.$secret ?? null;
|
|
7266
|
+
const keep = () => {
|
|
7267
|
+
setMode({ kind: "idle" });
|
|
7268
|
+
onChange(original);
|
|
7269
|
+
};
|
|
7270
|
+
const label = "label" in field ? field.label : "";
|
|
7271
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
7272
|
+
className: "space-y-1",
|
|
7273
|
+
"data-secret-field": "key" in field ? field.key : void 0,
|
|
7274
|
+
children: [
|
|
7275
|
+
mode.kind === "editing" ? /* @__PURE__ */ jsxs("div", {
|
|
7276
|
+
className: "flex items-start gap-1.5",
|
|
7277
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
7278
|
+
className: "relative flex-1",
|
|
7279
|
+
children: [multiline ? /* @__PURE__ */ jsx("textarea", {
|
|
7280
|
+
className: `${INPUT} min-h-[60px] font-mono`,
|
|
7281
|
+
"aria-label": label,
|
|
7282
|
+
value: mode.text,
|
|
7283
|
+
autoComplete: "off",
|
|
7284
|
+
spellCheck: false,
|
|
7285
|
+
disabled,
|
|
7286
|
+
onChange: (e) => {
|
|
7287
|
+
setMode({
|
|
7288
|
+
kind: "editing",
|
|
7289
|
+
text: e.target.value
|
|
7290
|
+
});
|
|
7291
|
+
onChange(e.target.value.length > 0 ? e.target.value : original);
|
|
7292
|
+
}
|
|
7293
|
+
}) : /* @__PURE__ */ jsx("input", {
|
|
7294
|
+
type: showTyped ? "text" : "password",
|
|
7295
|
+
className: `${INPUT} pr-8`,
|
|
7296
|
+
"aria-label": label,
|
|
7297
|
+
value: mode.text,
|
|
7298
|
+
autoComplete: "new-password",
|
|
7299
|
+
spellCheck: false,
|
|
7300
|
+
disabled,
|
|
7301
|
+
autoFocus: true,
|
|
7302
|
+
onChange: (e) => {
|
|
7303
|
+
setMode({
|
|
7304
|
+
kind: "editing",
|
|
7305
|
+
text: e.target.value
|
|
7306
|
+
});
|
|
7307
|
+
onChange(e.target.value.length > 0 ? e.target.value : original);
|
|
7308
|
+
}
|
|
7309
|
+
}), !multiline && /* @__PURE__ */ jsx("button", {
|
|
7310
|
+
type: "button",
|
|
7311
|
+
className: "absolute right-2 top-1/2 -translate-y-1/2 text-foreground-subtle hover:text-foreground",
|
|
7312
|
+
tabIndex: -1,
|
|
7313
|
+
"aria-label": showTyped ? "Hide" : "Show",
|
|
7314
|
+
onClick: () => setShowTyped((s) => !s),
|
|
7315
|
+
children: showTyped ? /* @__PURE__ */ jsx(EyeOff, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx(Eye, { className: "h-3.5 w-3.5" })
|
|
7316
|
+
})]
|
|
7317
|
+
}), /* @__PURE__ */ jsx("button", {
|
|
7318
|
+
type: "button",
|
|
7319
|
+
className: BUTTON$1,
|
|
7320
|
+
onClick: keep,
|
|
7321
|
+
disabled,
|
|
7322
|
+
children: "Cancel"
|
|
7323
|
+
})]
|
|
7324
|
+
}) : /* @__PURE__ */ jsxs("div", {
|
|
7325
|
+
className: "flex flex-wrap items-center gap-1.5",
|
|
7326
|
+
children: [/* @__PURE__ */ jsxs("span", {
|
|
7327
|
+
className: `inline-flex items-center gap-1 rounded-md border px-2 py-1 text-xs ${mode.kind === "clearing" ? "border-danger/40 text-danger" : isSet ? "border-border text-foreground" : "border-dashed border-border text-foreground-subtle"}`,
|
|
7328
|
+
children: [/* @__PURE__ */ jsx(KeyRound, { className: "h-3 w-3" }), mode.kind === "clearing" ? "will be removed on save" : shown !== null ? /* @__PURE__ */ jsx("code", {
|
|
7329
|
+
className: "font-mono break-all",
|
|
7330
|
+
children: shown
|
|
7331
|
+
}) : isSet ? "●●●●●● set" : "not set"]
|
|
7332
|
+
}), mode.kind === "clearing" ? /* @__PURE__ */ jsx("button", {
|
|
7333
|
+
type: "button",
|
|
7334
|
+
className: BUTTON$1,
|
|
7335
|
+
onClick: keep,
|
|
7336
|
+
disabled,
|
|
7337
|
+
children: "Undo"
|
|
7338
|
+
}) : /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
7339
|
+
/* @__PURE__ */ jsx("button", {
|
|
7340
|
+
type: "button",
|
|
7341
|
+
className: BUTTON$1,
|
|
7342
|
+
disabled,
|
|
7343
|
+
onClick: () => setMode({
|
|
7344
|
+
kind: "editing",
|
|
7345
|
+
text: ""
|
|
7346
|
+
}),
|
|
7347
|
+
children: isSet ? "Change" : "Set"
|
|
7348
|
+
}),
|
|
7349
|
+
isSet && /* @__PURE__ */ jsx("button", {
|
|
7350
|
+
type: "button",
|
|
7351
|
+
className: BUTTON$1,
|
|
7352
|
+
disabled,
|
|
7353
|
+
onClick: () => {
|
|
7354
|
+
setShown(null);
|
|
7355
|
+
setMode({ kind: "clearing" });
|
|
7356
|
+
onChange(SECRET_CLEAR);
|
|
7357
|
+
},
|
|
7358
|
+
children: "Clear"
|
|
7359
|
+
}),
|
|
7360
|
+
isSet && ref !== null && reveal !== null && /* @__PURE__ */ jsx("button", {
|
|
7361
|
+
type: "button",
|
|
7362
|
+
className: BUTTON$1,
|
|
7363
|
+
disabled,
|
|
7364
|
+
onClick: () => {
|
|
7365
|
+
if (shown !== null) {
|
|
7366
|
+
setShown(null);
|
|
7367
|
+
return;
|
|
7368
|
+
}
|
|
7369
|
+
setRevealError(null);
|
|
7370
|
+
reveal(ref).then(setShown, (err) => setRevealError(err instanceof Error ? err.message : String(err)));
|
|
7371
|
+
},
|
|
7372
|
+
children: shown !== null ? "Hide" : "Reveal"
|
|
7373
|
+
})
|
|
7374
|
+
] })]
|
|
7375
|
+
}),
|
|
7376
|
+
original?.inline === true && mode.kind === "idle" && /* @__PURE__ */ jsx("p", {
|
|
7377
|
+
className: "text-[10px] text-foreground-subtle",
|
|
7378
|
+
children: "Stored before the keychain; it moves there the next time it is changed."
|
|
7379
|
+
}),
|
|
7380
|
+
revealError !== null && /* @__PURE__ */ jsx("p", {
|
|
7381
|
+
className: "text-[10px] text-danger",
|
|
7382
|
+
children: revealError
|
|
7383
|
+
})
|
|
7384
|
+
]
|
|
7385
|
+
});
|
|
7386
|
+
}
|
|
7387
|
+
//#endregion
|
|
7195
7388
|
//#region src/generated/system-hooks.ts
|
|
7196
7389
|
/**
|
|
7197
7390
|
* Per-method React-Query hooks for every `scope: 'system'` capability.
|
|
@@ -7993,6 +8186,24 @@ var useIntercomPushTalkAudio = trpc.intercom.pushTalkAudio.useMutation;
|
|
|
7993
8186
|
var useIntercomEndTalkSession = trpc.intercom.endTalkSession.useMutation;
|
|
7994
8187
|
/** Generated alias around `trpc.intercom.getStatus.useQuery`. */
|
|
7995
8188
|
var useIntercomGetStatus = trpc.intercom.getStatus.useQuery;
|
|
8189
|
+
/** Generated alias around `trpc.keychainAdmin.status.useQuery`. */
|
|
8190
|
+
var useKeychainAdminStatus = trpc.keychainAdmin.status.useQuery;
|
|
8191
|
+
/** Generated alias around `trpc.keychainAdmin.listSecrets.useQuery`. */
|
|
8192
|
+
var useKeychainAdminListSecrets = trpc.keychainAdmin.listSecrets.useQuery;
|
|
8193
|
+
/** Generated alias around `trpc.keychainAdmin.listAudit.useQuery`. */
|
|
8194
|
+
var useKeychainAdminListAudit = trpc.keychainAdmin.listAudit.useQuery;
|
|
8195
|
+
/** Generated alias around `trpc.keychainAdmin.reveal.useMutation`. */
|
|
8196
|
+
var useKeychainAdminReveal = trpc.keychainAdmin.reveal.useMutation;
|
|
8197
|
+
/** Generated alias around `trpc.keychainAdmin.deleteOrphans.useMutation`. */
|
|
8198
|
+
var useKeychainAdminDeleteOrphans = trpc.keychainAdmin.deleteOrphans.useMutation;
|
|
8199
|
+
/** Generated alias around `trpc.keychainAdmin.rotateMasterKey.useMutation`. */
|
|
8200
|
+
var useKeychainAdminRotateMasterKey = trpc.keychainAdmin.rotateMasterKey.useMutation;
|
|
8201
|
+
/** Generated alias around `trpc.keychainAdmin.purgeRetiredKeys.useMutation`. */
|
|
8202
|
+
var useKeychainAdminPurgeRetiredKeys = trpc.keychainAdmin.purgeRetiredKeys.useMutation;
|
|
8203
|
+
/** Generated alias around `trpc.keychainAdmin.downloadRecoveryKey.useMutation`. */
|
|
8204
|
+
var useKeychainAdminDownloadRecoveryKey = trpc.keychainAdmin.downloadRecoveryKey.useMutation;
|
|
8205
|
+
/** Generated alias around `trpc.keychainAdmin.resetKeychain.useMutation`. */
|
|
8206
|
+
var useKeychainAdminResetKeychain = trpc.keychainAdmin.resetKeychain.useMutation;
|
|
7996
8207
|
/** Generated alias around `trpc.lawnMowerControl.startMowing.useMutation`. */
|
|
7997
8208
|
var useLawnMowerControlStartMowing = trpc.lawnMowerControl.startMowing.useMutation;
|
|
7998
8209
|
/** Generated alias around `trpc.lawnMowerControl.pause.useMutation`. */
|
|
@@ -8533,6 +8744,26 @@ var usePipelineAnalyticsGetRetrainExportUrl = trpc.pipelineAnalytics.getRetrainE
|
|
|
8533
8744
|
var usePipelineAnalyticsSetRetrainFrameComplete = trpc.pipelineAnalytics.setRetrainFrameComplete.useMutation;
|
|
8534
8745
|
/** Generated alias around `trpc.pipelineAnalytics.writeRetrainArchive.useMutation`. */
|
|
8535
8746
|
var usePipelineAnalyticsWriteRetrainArchive = trpc.pipelineAnalytics.writeRetrainArchive.useMutation;
|
|
8747
|
+
/** Generated alias around `trpc.pipelineAnalytics.listRetrainAssistProfiles.useQuery`. */
|
|
8748
|
+
var usePipelineAnalyticsListRetrainAssistProfiles = trpc.pipelineAnalytics.listRetrainAssistProfiles.useQuery;
|
|
8749
|
+
/** Generated alias around `trpc.pipelineAnalytics.proposeRetrainAnnotationsWithLlm.useMutation`. */
|
|
8750
|
+
var usePipelineAnalyticsProposeRetrainAnnotationsWithLlm = trpc.pipelineAnalytics.proposeRetrainAnnotationsWithLlm.useMutation;
|
|
8751
|
+
/** Generated alias around `trpc.pipelineAnalytics.createRetrainCollection.useMutation`. */
|
|
8752
|
+
var usePipelineAnalyticsCreateRetrainCollection = trpc.pipelineAnalytics.createRetrainCollection.useMutation;
|
|
8753
|
+
/** Generated alias around `trpc.pipelineAnalytics.listRetrainCollections.useQuery`. */
|
|
8754
|
+
var usePipelineAnalyticsListRetrainCollections = trpc.pipelineAnalytics.listRetrainCollections.useQuery;
|
|
8755
|
+
/** Generated alias around `trpc.pipelineAnalytics.renameRetrainCollection.useMutation`. */
|
|
8756
|
+
var usePipelineAnalyticsRenameRetrainCollection = trpc.pipelineAnalytics.renameRetrainCollection.useMutation;
|
|
8757
|
+
/** Generated alias around `trpc.pipelineAnalytics.deleteRetrainCollection.useMutation`. */
|
|
8758
|
+
var usePipelineAnalyticsDeleteRetrainCollection = trpc.pipelineAnalytics.deleteRetrainCollection.useMutation;
|
|
8759
|
+
/** Generated alias around `trpc.pipelineAnalytics.addRetrainFrameFromRecording.useMutation`. */
|
|
8760
|
+
var usePipelineAnalyticsAddRetrainFrameFromRecording = trpc.pipelineAnalytics.addRetrainFrameFromRecording.useMutation;
|
|
8761
|
+
/** Generated alias around `trpc.pipelineAnalytics.addRetrainFramesToCollection.useMutation`. */
|
|
8762
|
+
var usePipelineAnalyticsAddRetrainFramesToCollection = trpc.pipelineAnalytics.addRetrainFramesToCollection.useMutation;
|
|
8763
|
+
/** Generated alias around `trpc.pipelineAnalytics.removeRetrainFrameFromCollection.useMutation`. */
|
|
8764
|
+
var usePipelineAnalyticsRemoveRetrainFrameFromCollection = trpc.pipelineAnalytics.removeRetrainFrameFromCollection.useMutation;
|
|
8765
|
+
/** Generated alias around `trpc.pipelineAnalytics.listRetrainCollectionFrames.useQuery`. */
|
|
8766
|
+
var usePipelineAnalyticsListRetrainCollectionFrames = trpc.pipelineAnalytics.listRetrainCollectionFrames.useQuery;
|
|
8536
8767
|
/** Generated alias around `trpc.pipelineAnalytics.getEventMedia.useQuery`. */
|
|
8537
8768
|
var usePipelineAnalyticsGetEventMedia = trpc.pipelineAnalytics.getEventMedia.useQuery;
|
|
8538
8769
|
/** Generated alias around `trpc.pipelineAnalytics.getTrackMedia.useQuery`. */
|
|
@@ -8705,6 +8936,20 @@ var usePipelineOrchestratorSuggestShares = trpc.pipelineOrchestrator.suggestShar
|
|
|
8705
8936
|
var usePipelineOrchestratorGetEffectiveShares = trpc.pipelineOrchestrator.getEffectiveShares.useQuery;
|
|
8706
8937
|
/** Generated alias around `trpc.pipelineOrchestrator.setShareSource.useMutation`. */
|
|
8707
8938
|
var usePipelineOrchestratorSetShareSource = trpc.pipelineOrchestrator.setShareSource.useMutation;
|
|
8939
|
+
/** Generated alias around `trpc.pipelineOrchestrator.getNodeBenchmarkPreflight.useQuery`. */
|
|
8940
|
+
var usePipelineOrchestratorGetNodeBenchmarkPreflight = trpc.pipelineOrchestrator.getNodeBenchmarkPreflight.useQuery;
|
|
8941
|
+
/** Generated alias around `trpc.pipelineOrchestrator.startNodeBenchmark.useMutation`. */
|
|
8942
|
+
var usePipelineOrchestratorStartNodeBenchmark = trpc.pipelineOrchestrator.startNodeBenchmark.useMutation;
|
|
8943
|
+
/** Generated alias around `trpc.pipelineOrchestrator.getNodeBenchmarkStatus.useQuery`. */
|
|
8944
|
+
var usePipelineOrchestratorGetNodeBenchmarkStatus = trpc.pipelineOrchestrator.getNodeBenchmarkStatus.useQuery;
|
|
8945
|
+
/** Generated alias around `trpc.pipelineOrchestrator.abortNodeBenchmark.useMutation`. */
|
|
8946
|
+
var usePipelineOrchestratorAbortNodeBenchmark = trpc.pipelineOrchestrator.abortNodeBenchmark.useMutation;
|
|
8947
|
+
/** Generated alias around `trpc.pipelineOrchestrator.getNodeBenchmarkCandidates.useQuery`. */
|
|
8948
|
+
var usePipelineOrchestratorGetNodeBenchmarkCandidates = trpc.pipelineOrchestrator.getNodeBenchmarkCandidates.useQuery;
|
|
8949
|
+
/** Generated alias around `trpc.pipelineOrchestrator.listNodeBenchmarkResults.useQuery`. */
|
|
8950
|
+
var usePipelineOrchestratorListNodeBenchmarkResults = trpc.pipelineOrchestrator.listNodeBenchmarkResults.useQuery;
|
|
8951
|
+
/** Generated alias around `trpc.pipelineOrchestrator.deleteNodeBenchmarkResult.useMutation`. */
|
|
8952
|
+
var usePipelineOrchestratorDeleteNodeBenchmarkResult = trpc.pipelineOrchestrator.deleteNodeBenchmarkResult.useMutation;
|
|
8708
8953
|
/** Generated alias around `trpc.pipelineOrchestrator.getCameraSettings.useQuery`. */
|
|
8709
8954
|
var usePipelineOrchestratorGetCameraSettings = trpc.pipelineOrchestrator.getCameraSettings.useQuery;
|
|
8710
8955
|
/** Generated alias around `trpc.pipelineOrchestrator.setCameraStepToggle.useMutation`. */
|
|
@@ -8769,6 +9014,12 @@ var usePipelineRunnerParkTrackFrame = trpc.pipelineRunner.parkTrackFrame.useMuta
|
|
|
8769
9014
|
var usePipelineRunnerGetParkedTrackFrame = trpc.pipelineRunner.getParkedTrackFrame.useQuery;
|
|
8770
9015
|
/** Generated alias around `trpc.pipelineRunner.releaseParkedTrackFrames.useMutation`. */
|
|
8771
9016
|
var usePipelineRunnerReleaseParkedTrackFrames = trpc.pipelineRunner.releaseParkedTrackFrames.useMutation;
|
|
9017
|
+
/** Generated alias around `trpc.pipelineRunner.startNodeBench.useMutation`. */
|
|
9018
|
+
var usePipelineRunnerStartNodeBench = trpc.pipelineRunner.startNodeBench.useMutation;
|
|
9019
|
+
/** Generated alias around `trpc.pipelineRunner.getNodeBenchStatus.useQuery`. */
|
|
9020
|
+
var usePipelineRunnerGetNodeBenchStatus = trpc.pipelineRunner.getNodeBenchStatus.useQuery;
|
|
9021
|
+
/** Generated alias around `trpc.pipelineRunner.abortNodeBench.useMutation`. */
|
|
9022
|
+
var usePipelineRunnerAbortNodeBench = trpc.pipelineRunner.abortNodeBench.useMutation;
|
|
8772
9023
|
/** Generated alias around `trpc.plateGallery.listPlates.useQuery`. */
|
|
8773
9024
|
var usePlateGalleryListPlates = trpc.plateGallery.listPlates.useQuery;
|
|
8774
9025
|
/** Generated alias around `trpc.plateGallery.getPlateByTrack.useQuery`. */
|
|
@@ -21614,7 +21865,7 @@ function formatDurationMs(ms) {
|
|
|
21614
21865
|
* firmware inventing a refusal reaches the operator rather than becoming a
|
|
21615
21866
|
* blank tile.
|
|
21616
21867
|
*/
|
|
21617
|
-
var REFUSAL_TEXT = {
|
|
21868
|
+
var REFUSAL_TEXT$1 = {
|
|
21618
21869
|
sleeping: () => "The camera is asleep — a still would cost a wake",
|
|
21619
21870
|
"camera-refused": (reason) => `The camera refused — ${reason}`,
|
|
21620
21871
|
"no-keyframe": () => "No decodable frame inside this window",
|
|
@@ -21626,7 +21877,7 @@ var REFUSAL_TEXT = {
|
|
|
21626
21877
|
"uid-missing": () => "The camera’s id is not known yet"
|
|
21627
21878
|
};
|
|
21628
21879
|
function wordsFor(code, reason) {
|
|
21629
|
-
const known = code === void 0 ? void 0 : REFUSAL_TEXT[code];
|
|
21880
|
+
const known = code === void 0 ? void 0 : REFUSAL_TEXT$1[code];
|
|
21630
21881
|
return known === void 0 ? reason : known(reason);
|
|
21631
21882
|
}
|
|
21632
21883
|
function refusal(reason, code) {
|
|
@@ -25209,6 +25460,426 @@ function useScrubController(sink, isPlayerLive = () => false) {
|
|
|
25209
25460
|
};
|
|
25210
25461
|
}
|
|
25211
25462
|
//#endregion
|
|
25463
|
+
//#region src/primitives/dialog.tsx
|
|
25464
|
+
var DialogContext = createContext(null);
|
|
25465
|
+
function useDialogContext() {
|
|
25466
|
+
const ctx = useContext(DialogContext);
|
|
25467
|
+
if (!ctx) throw new Error("Dialog compound components must be used within <Dialog>");
|
|
25468
|
+
return ctx;
|
|
25469
|
+
}
|
|
25470
|
+
function Dialog({ children, open: controlledOpen, onOpenChange }) {
|
|
25471
|
+
const [uncontrolledOpen, setUncontrolledOpen] = useState(false);
|
|
25472
|
+
const open = controlledOpen ?? uncontrolledOpen;
|
|
25473
|
+
const contentId = useId();
|
|
25474
|
+
const setOpen = useCallback((next) => {
|
|
25475
|
+
onOpenChange?.(next);
|
|
25476
|
+
if (controlledOpen === void 0) setUncontrolledOpen(next);
|
|
25477
|
+
}, [controlledOpen, onOpenChange]);
|
|
25478
|
+
return /* @__PURE__ */ jsx(DialogContext.Provider, {
|
|
25479
|
+
value: {
|
|
25480
|
+
open,
|
|
25481
|
+
setOpen,
|
|
25482
|
+
contentId
|
|
25483
|
+
},
|
|
25484
|
+
children
|
|
25485
|
+
});
|
|
25486
|
+
}
|
|
25487
|
+
function DialogTrigger({ children, ...props }) {
|
|
25488
|
+
const { setOpen } = useDialogContext();
|
|
25489
|
+
return /* @__PURE__ */ jsx("button", {
|
|
25490
|
+
type: "button",
|
|
25491
|
+
onClick: () => setOpen(true),
|
|
25492
|
+
...props,
|
|
25493
|
+
children
|
|
25494
|
+
});
|
|
25495
|
+
}
|
|
25496
|
+
/**
|
|
25497
|
+
* A native <dialog> opened with showModal() is promoted to the top layer, so
|
|
25498
|
+
* ancestor transform/overflow can't clip it — but it relies on the UA
|
|
25499
|
+
* stylesheet's `dialog { margin: auto }` for modal centering. Tailwind's
|
|
25500
|
+
* preflight resets `margin: 0` on every element, which defeats that centering
|
|
25501
|
+
* and pins the modal to the top-left. We therefore center deterministically:
|
|
25502
|
+
* a top-layer dialog with `position: fixed` is viewport-relative, and a
|
|
25503
|
+
* self-transform is fine, so `fixed left-1/2 top-1/2 -translate-x-1/2
|
|
25504
|
+
* -translate-y-1/2 m-0` always centers regardless of any margin reset. Width
|
|
25505
|
+
* is capped to the viewport (`w-[calc(100vw-2rem)]`) rather than a bare
|
|
25506
|
+
* `w-full` (which would overflow/clip a centered dialog); the per-variant
|
|
25507
|
+
* `max-w-*` keeps small dialogs small while the cap prevents overflow.
|
|
25508
|
+
*
|
|
25509
|
+
* Height is capped against the SAFE viewport, not the raw one. A top-layer
|
|
25510
|
+
* `fixed` dialog is viewport-relative, and under `viewport-fit=cover` the
|
|
25511
|
+
* viewport extends behind the iOS notch/Dynamic Island and home indicator —
|
|
25512
|
+
* so a dialog tall enough to hit its `max-h` put its header under the clock.
|
|
25513
|
+
* Because the box is centred on the viewport (not on the safe area), the cap
|
|
25514
|
+
* has to subtract TWICE the LARGER of the two insets for the box to clear
|
|
25515
|
+
* both edges; using each inset once would still overflow the taller side
|
|
25516
|
+
* whenever they are asymmetric (they are: ~59px top vs ~34px bottom). Every
|
|
25517
|
+
* term collapses to the previous `100dvh - 2rem` where the insets are 0.
|
|
25518
|
+
*/
|
|
25519
|
+
var contentVariants = cva("fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 m-0 w-[calc(100vw-2rem)] bg-background-elevated text-foreground border border-border rounded-lg p-4 backdrop:bg-black/50 backdrop:backdrop-blur-sm max-h-[calc(100dvh-2rem-2*max(env(safe-area-inset-top),env(safe-area-inset-bottom)))] [&:not([open])]:hidden", {
|
|
25520
|
+
variants: {
|
|
25521
|
+
width: {
|
|
25522
|
+
sm: "max-w-sm",
|
|
25523
|
+
md: "max-w-md",
|
|
25524
|
+
lg: "max-w-lg"
|
|
25525
|
+
},
|
|
25526
|
+
/**
|
|
25527
|
+
* WHICH box scrolls when the content is taller than the height cap.
|
|
25528
|
+
*
|
|
25529
|
+
* `content` (default) scrolls the whole dialog: the title, any tab strip
|
|
25530
|
+
* and the Save/Cancel row travel with the fields. That is fine for a
|
|
25531
|
+
* short form and wrong for a long one — the operator scrolls to the
|
|
25532
|
+
* bottom of a rule editor and the buttons are somewhere above him, the
|
|
25533
|
+
* tab strip is gone, and the only way back to either is to scroll the
|
|
25534
|
+
* form he was reading.
|
|
25535
|
+
*
|
|
25536
|
+
* `body` makes the dialog a flex column that does not scroll at all and
|
|
25537
|
+
* hands the scrolling to `<DialogBody>`. The chrome around the body —
|
|
25538
|
+
* header, tab strip, footer — stays put at every height. The dialog
|
|
25539
|
+
* keeps its own padding either way, so `sheet-on-mobile`'s
|
|
25540
|
+
* safe-area bottom padding still applies to the footer.
|
|
25541
|
+
*
|
|
25542
|
+
* `body` also takes a DEFINITE height below `md` — see the
|
|
25543
|
+
* `scroll: 'body'` compound variants. That is not a style choice; the
|
|
25544
|
+
* flex chain does not resolve without it on iOS Safari.
|
|
25545
|
+
*/
|
|
25546
|
+
scroll: {
|
|
25547
|
+
content: "overflow-y-auto",
|
|
25548
|
+
body: "flex flex-col overflow-hidden"
|
|
25549
|
+
},
|
|
25550
|
+
placement: {
|
|
25551
|
+
center: "",
|
|
25552
|
+
"sheet-on-mobile": "bottom-0 left-0 right-0 top-auto w-full max-w-full translate-x-0 translate-y-0 rounded-b-none max-h-[92dvh] pb-[calc(1rem+env(safe-area-inset-bottom))] md:left-1/2 md:top-1/2 md:-translate-x-1/2 md:-translate-y-1/2 md:rounded-lg md:bottom-auto md:pb-4 md:max-h-[calc(100dvh-2rem-2*max(env(safe-area-inset-top),env(safe-area-inset-bottom)))]"
|
|
25553
|
+
}
|
|
25554
|
+
},
|
|
25555
|
+
compoundVariants: [
|
|
25556
|
+
{
|
|
25557
|
+
placement: "sheet-on-mobile",
|
|
25558
|
+
width: "sm",
|
|
25559
|
+
class: "md:w-[calc(100vw-2rem)] md:max-w-sm"
|
|
25560
|
+
},
|
|
25561
|
+
{
|
|
25562
|
+
placement: "sheet-on-mobile",
|
|
25563
|
+
width: "md",
|
|
25564
|
+
class: "md:w-[calc(100vw-2rem)] md:max-w-md"
|
|
25565
|
+
},
|
|
25566
|
+
{
|
|
25567
|
+
placement: "sheet-on-mobile",
|
|
25568
|
+
width: "lg",
|
|
25569
|
+
class: "md:w-[calc(100vw-2rem)] md:max-w-lg"
|
|
25570
|
+
},
|
|
25571
|
+
{
|
|
25572
|
+
scroll: "body",
|
|
25573
|
+
placement: "sheet-on-mobile",
|
|
25574
|
+
class: "h-[92dvh] md:h-auto"
|
|
25575
|
+
},
|
|
25576
|
+
{
|
|
25577
|
+
scroll: "body",
|
|
25578
|
+
placement: "center",
|
|
25579
|
+
class: "h-[calc(100dvh-2rem-2*max(env(safe-area-inset-top),env(safe-area-inset-bottom)))] md:h-auto"
|
|
25580
|
+
}
|
|
25581
|
+
],
|
|
25582
|
+
defaultVariants: {
|
|
25583
|
+
width: "md",
|
|
25584
|
+
placement: "center",
|
|
25585
|
+
scroll: "content"
|
|
25586
|
+
}
|
|
25587
|
+
});
|
|
25588
|
+
var DialogContent = forwardRef(({ className, width, placement, scroll, children, ...props }, ref) => {
|
|
25589
|
+
const { open, setOpen, contentId } = useDialogContext();
|
|
25590
|
+
const innerRef = useRef(null);
|
|
25591
|
+
const dialogRef = ref ?? innerRef;
|
|
25592
|
+
useEffect(() => {
|
|
25593
|
+
const el = dialogRef.current;
|
|
25594
|
+
if (!el) return;
|
|
25595
|
+
if (open && !el.open) el.showModal();
|
|
25596
|
+
if (!open && el.open) el.close();
|
|
25597
|
+
}, [open, dialogRef]);
|
|
25598
|
+
return /* @__PURE__ */ jsx("dialog", {
|
|
25599
|
+
ref: dialogRef,
|
|
25600
|
+
id: contentId,
|
|
25601
|
+
className: cn(contentVariants({
|
|
25602
|
+
width,
|
|
25603
|
+
placement,
|
|
25604
|
+
scroll
|
|
25605
|
+
}), className),
|
|
25606
|
+
onClose: () => setOpen(false),
|
|
25607
|
+
...props,
|
|
25608
|
+
children
|
|
25609
|
+
});
|
|
25610
|
+
});
|
|
25611
|
+
DialogContent.displayName = "DialogContent";
|
|
25612
|
+
/** `shrink-0` is inert outside a flex column and load-bearing inside one:
|
|
25613
|
+
* under `scroll="body"` the header must keep its height while the body gives
|
|
25614
|
+
* ground, or a long form squeezes its own title to nothing. */
|
|
25615
|
+
function DialogHeader({ className, ...props }) {
|
|
25616
|
+
return /* @__PURE__ */ jsx("div", {
|
|
25617
|
+
className: cn("flex flex-col gap-1 mb-3 shrink-0", className),
|
|
25618
|
+
...props
|
|
25619
|
+
});
|
|
25620
|
+
}
|
|
25621
|
+
/**
|
|
25622
|
+
* The scrolling middle of a `scroll="body"` dialog.
|
|
25623
|
+
*
|
|
25624
|
+
* `min-h-0` is what makes it work: a flex item's default `min-height: auto`
|
|
25625
|
+
* refuses to shrink below its content, so without it the body pushes the
|
|
25626
|
+
* footer out of the dialog instead of scrolling — the exact failure this
|
|
25627
|
+
* variant exists to remove. Anything sticky INSIDE a dialog body pins against
|
|
25628
|
+
* this element, since it is the scroll container.
|
|
25629
|
+
*
|
|
25630
|
+
* It only bounds a scroll area if every ancestor up to the dialog has a
|
|
25631
|
+
* resolved height. `DialogContent` supplies the top of that chain (see the
|
|
25632
|
+
* `scroll: 'body'` compound variants); an intermediate wrapper between them —
|
|
25633
|
+
* a `<Tabs>` that owns the tab strip, say — must carry `flex-1 min-h-0` too,
|
|
25634
|
+
* or it collapses and takes the body with it.
|
|
25635
|
+
*/
|
|
25636
|
+
function DialogBody({ className, ...props }) {
|
|
25637
|
+
return /* @__PURE__ */ jsx("div", {
|
|
25638
|
+
className: cn("flex-1 min-h-0 overflow-y-auto", className),
|
|
25639
|
+
...props
|
|
25640
|
+
});
|
|
25641
|
+
}
|
|
25642
|
+
function DialogFooter({ className, ...props }) {
|
|
25643
|
+
return /* @__PURE__ */ jsx("div", {
|
|
25644
|
+
className: cn("flex justify-end gap-2 mt-4 shrink-0", className),
|
|
25645
|
+
...props
|
|
25646
|
+
});
|
|
25647
|
+
}
|
|
25648
|
+
function DialogTitle({ className, ...props }) {
|
|
25649
|
+
return /* @__PURE__ */ jsx("h2", {
|
|
25650
|
+
className: cn("text-sm font-semibold text-foreground", className),
|
|
25651
|
+
...props
|
|
25652
|
+
});
|
|
25653
|
+
}
|
|
25654
|
+
function DialogDescription({ className, ...props }) {
|
|
25655
|
+
return /* @__PURE__ */ jsx("p", {
|
|
25656
|
+
className: cn("text-xs text-foreground-muted", className),
|
|
25657
|
+
...props
|
|
25658
|
+
});
|
|
25659
|
+
}
|
|
25660
|
+
//#endregion
|
|
25661
|
+
//#region src/primitives/input.tsx
|
|
25662
|
+
/**
|
|
25663
|
+
* `disabled:opacity-50 disabled:cursor-not-allowed` for the same reason as
|
|
25664
|
+
* `Select` — an explicit `bg-surface` / `text-foreground` overrides the greying
|
|
25665
|
+
* a browser would otherwise apply, leaving an inert field indistinguishable
|
|
25666
|
+
* from a live one. See `disabled-affordance.test.tsx`.
|
|
25667
|
+
*/
|
|
25668
|
+
var inputVariants = cva("h-7 w-full px-2.5 text-xs bg-surface border rounded-md text-foreground placeholder:text-foreground-subtle focus:outline-none focus:ring-1 focus:ring-primary transition-colors disabled:opacity-50 disabled:cursor-not-allowed", {
|
|
25669
|
+
variants: { state: {
|
|
25670
|
+
default: "border-border",
|
|
25671
|
+
error: "border-danger"
|
|
25672
|
+
} },
|
|
25673
|
+
defaultVariants: { state: "default" }
|
|
25674
|
+
});
|
|
25675
|
+
var Input = forwardRef(({ className, state, leftSlot, rightSlot, ...props }, ref) => {
|
|
25676
|
+
if (leftSlot || rightSlot) return /* @__PURE__ */ jsxs("div", {
|
|
25677
|
+
className: "relative flex items-center w-full",
|
|
25678
|
+
children: [
|
|
25679
|
+
leftSlot && /* @__PURE__ */ jsx("div", {
|
|
25680
|
+
className: "absolute left-2.5 flex items-center pointer-events-none",
|
|
25681
|
+
children: leftSlot
|
|
25682
|
+
}),
|
|
25683
|
+
/* @__PURE__ */ jsx("input", {
|
|
25684
|
+
ref,
|
|
25685
|
+
className: cn(inputVariants({ state }), leftSlot ? "pl-7" : "", rightSlot ? "pr-7" : "", className),
|
|
25686
|
+
...props
|
|
25687
|
+
}),
|
|
25688
|
+
rightSlot && /* @__PURE__ */ jsx("div", {
|
|
25689
|
+
className: "absolute right-2.5 flex items-center pointer-events-none",
|
|
25690
|
+
children: rightSlot
|
|
25691
|
+
})
|
|
25692
|
+
]
|
|
25693
|
+
});
|
|
25694
|
+
return /* @__PURE__ */ jsx("input", {
|
|
25695
|
+
ref,
|
|
25696
|
+
className: cn(inputVariants({ state }), className),
|
|
25697
|
+
...props
|
|
25698
|
+
});
|
|
25699
|
+
});
|
|
25700
|
+
Input.displayName = "Input";
|
|
25701
|
+
//#endregion
|
|
25702
|
+
//#region src/composites/training/training-collection-picker.tsx
|
|
25703
|
+
/**
|
|
25704
|
+
* <TrainingCollectionPicker> — choose a named training collection, or create
|
|
25705
|
+
* one in place.
|
|
25706
|
+
*
|
|
25707
|
+
* A collection is a named set over the retrain corpus ("packages porch
|
|
25708
|
+
* night"). The picker lists them (newest first, with their frame counts) and
|
|
25709
|
+
* offers a name field for a new one; the hub refuses an empty or duplicate
|
|
25710
|
+
* name, and the refusal is shown here rather than swallowed.
|
|
25711
|
+
*/
|
|
25712
|
+
var CREATE_REFUSAL = {
|
|
25713
|
+
"empty-name": "Give the collection a name.",
|
|
25714
|
+
"duplicate-name": "A collection with that name already exists."
|
|
25715
|
+
};
|
|
25716
|
+
function TrainingCollectionPicker({ value, onChange }) {
|
|
25717
|
+
const collections = usePipelineAnalyticsListRetrainCollections({});
|
|
25718
|
+
const create = usePipelineAnalyticsCreateRetrainCollection();
|
|
25719
|
+
const [name, setName] = useState("");
|
|
25720
|
+
const [error, setError] = useState(null);
|
|
25721
|
+
const list = collections.data ?? [];
|
|
25722
|
+
const onCreate = async () => {
|
|
25723
|
+
setError(null);
|
|
25724
|
+
const result = await create.mutateAsync({ name });
|
|
25725
|
+
if (result.kind === "refused") {
|
|
25726
|
+
setError(CREATE_REFUSAL[result.reason]);
|
|
25727
|
+
return;
|
|
25728
|
+
}
|
|
25729
|
+
setName("");
|
|
25730
|
+
await collections.refetch();
|
|
25731
|
+
onChange(result.collection.id);
|
|
25732
|
+
};
|
|
25733
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
25734
|
+
className: "space-y-2",
|
|
25735
|
+
"data-testid": "training-collection-picker",
|
|
25736
|
+
children: [
|
|
25737
|
+
list.length > 0 ? /* @__PURE__ */ jsx(Select, {
|
|
25738
|
+
"aria-label": "Collection",
|
|
25739
|
+
value: value ?? "",
|
|
25740
|
+
options: [{
|
|
25741
|
+
value: "",
|
|
25742
|
+
label: "Choose a collection…"
|
|
25743
|
+
}, ...list.map((c) => ({
|
|
25744
|
+
value: c.id,
|
|
25745
|
+
label: `${c.name} (${String(c.frameCount)})`
|
|
25746
|
+
}))],
|
|
25747
|
+
onChange: (event) => {
|
|
25748
|
+
if (event.target.value !== "") onChange(event.target.value);
|
|
25749
|
+
}
|
|
25750
|
+
}) : /* @__PURE__ */ jsx("p", {
|
|
25751
|
+
className: "text-xs text-foreground-subtle",
|
|
25752
|
+
children: collections.isLoading ? "Reading the collections…" : "No collection yet — create one."
|
|
25753
|
+
}),
|
|
25754
|
+
/* @__PURE__ */ jsxs("div", {
|
|
25755
|
+
className: "flex items-center gap-2",
|
|
25756
|
+
children: [/* @__PURE__ */ jsx(Input, {
|
|
25757
|
+
className: "flex-1",
|
|
25758
|
+
"aria-label": "New collection name",
|
|
25759
|
+
placeholder: "New collection (e.g. missed at night)",
|
|
25760
|
+
value: name,
|
|
25761
|
+
onChange: (event) => {
|
|
25762
|
+
setName(event.target.value);
|
|
25763
|
+
}
|
|
25764
|
+
}), /* @__PURE__ */ jsxs(Button, {
|
|
25765
|
+
type: "button",
|
|
25766
|
+
variant: "secondary",
|
|
25767
|
+
size: "sm",
|
|
25768
|
+
disabled: create.isPending || name.trim() === "",
|
|
25769
|
+
onClick: () => void onCreate(),
|
|
25770
|
+
children: [/* @__PURE__ */ jsx(Plus, { className: "h-3 w-3" }), "Create"]
|
|
25771
|
+
})]
|
|
25772
|
+
}),
|
|
25773
|
+
error !== null && /* @__PURE__ */ jsx("p", {
|
|
25774
|
+
className: "text-xs text-danger",
|
|
25775
|
+
children: error
|
|
25776
|
+
})
|
|
25777
|
+
]
|
|
25778
|
+
});
|
|
25779
|
+
}
|
|
25780
|
+
//#endregion
|
|
25781
|
+
//#region src/composites/training/training-refusal-text.ts
|
|
25782
|
+
var REFUSAL_TEXT = {
|
|
25783
|
+
"unknown-collection": "That collection no longer exists — pick another one.",
|
|
25784
|
+
"still-unavailable": "No frame could be taken from the recording at that moment.",
|
|
25785
|
+
"still-busy": "The recorder is busy decoding other frames. Try again in a moment.",
|
|
25786
|
+
"unreadable-image": "The recorder returned something that is not a picture.",
|
|
25787
|
+
"write-failed": "The frame could not be stored. Check the artifacts storage."
|
|
25788
|
+
};
|
|
25789
|
+
/** One sentence for a refusal, with the hub's own detail appended. */
|
|
25790
|
+
function trainingRefusalText(reason, detail) {
|
|
25791
|
+
const base = REFUSAL_TEXT[reason];
|
|
25792
|
+
return detail !== void 0 && detail !== "" ? `${base} (${detail})` : base;
|
|
25793
|
+
}
|
|
25794
|
+
//#endregion
|
|
25795
|
+
//#region src/composites/training/send-frame-to-training.tsx
|
|
25796
|
+
/**
|
|
25797
|
+
* <SendFrameToTrainingButton> — "Send frame to training" from a recording
|
|
25798
|
+
* playhead.
|
|
25799
|
+
*
|
|
25800
|
+
* The frame a detector most needs to learn from is often one where it saw
|
|
25801
|
+
* NOTHING — no event, no track, nothing to mark. From the recording, the
|
|
25802
|
+
* operator stops on that moment and sends it: the hub re-decodes the native
|
|
25803
|
+
* frame at the playhead instant and adds it to a named training collection,
|
|
25804
|
+
* where the Retrain page annotates it like any other frame.
|
|
25805
|
+
*
|
|
25806
|
+
* Draws NOTHING for a session that cannot curate training data: the
|
|
25807
|
+
* collection list is admin-only, and a button that 403s is worse than no
|
|
25808
|
+
* button. It is disabled, with the reason, while there is no playhead.
|
|
25809
|
+
*/
|
|
25810
|
+
function SendFrameToTrainingButton({ deviceId, epochMs }) {
|
|
25811
|
+
const collections = usePipelineAnalyticsListRetrainCollections({}, { retry: false });
|
|
25812
|
+
const send = usePipelineAnalyticsAddRetrainFrameFromRecording();
|
|
25813
|
+
const [open, setOpen] = useState(false);
|
|
25814
|
+
const [collectionId, setCollectionId] = useState(null);
|
|
25815
|
+
const [instant, setInstant] = useState(null);
|
|
25816
|
+
const [outcome, setOutcome] = useState(null);
|
|
25817
|
+
if (collections.isError) return null;
|
|
25818
|
+
const onSend = async () => {
|
|
25819
|
+
if (collectionId === null || instant === null) return;
|
|
25820
|
+
const result = await send.mutateAsync({
|
|
25821
|
+
collectionId,
|
|
25822
|
+
deviceId,
|
|
25823
|
+
epochMs: instant
|
|
25824
|
+
});
|
|
25825
|
+
const name = collections.data?.find((c) => c.id === collectionId)?.name ?? "the collection";
|
|
25826
|
+
setOutcome(result.kind === "added" ? {
|
|
25827
|
+
kind: "added",
|
|
25828
|
+
reused: result.reused,
|
|
25829
|
+
collection: name
|
|
25830
|
+
} : {
|
|
25831
|
+
kind: "refused",
|
|
25832
|
+
text: trainingRefusalText(result.reason, result.detail)
|
|
25833
|
+
});
|
|
25834
|
+
if (result.kind === "added") await collections.refetch();
|
|
25835
|
+
};
|
|
25836
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs(Button, {
|
|
25837
|
+
type: "button",
|
|
25838
|
+
variant: "secondary",
|
|
25839
|
+
size: "sm",
|
|
25840
|
+
"data-testid": "send-frame-to-training",
|
|
25841
|
+
disabled: epochMs === null,
|
|
25842
|
+
title: epochMs === null ? "Play back a recording first — the frame at the playhead is the one sent" : "Add the frame at the playhead to a training collection",
|
|
25843
|
+
onClick: () => {
|
|
25844
|
+
setInstant(epochMs);
|
|
25845
|
+
setOutcome(null);
|
|
25846
|
+
setOpen(true);
|
|
25847
|
+
},
|
|
25848
|
+
children: [/* @__PURE__ */ jsx(GraduationCap, { className: "h-3.5 w-3.5" }), "Send frame to training"]
|
|
25849
|
+
}), /* @__PURE__ */ jsx(Dialog, {
|
|
25850
|
+
open,
|
|
25851
|
+
onOpenChange: (next) => !send.isPending && setOpen(next),
|
|
25852
|
+
children: /* @__PURE__ */ jsxs(DialogContent, { children: [
|
|
25853
|
+
/* @__PURE__ */ jsxs(DialogHeader, { children: [/* @__PURE__ */ jsx(DialogTitle, { children: "Send this frame to training" }), /* @__PURE__ */ jsx(DialogDescription, { children: instant !== null ? `The camera's frame at ${new Date(instant).toLocaleString()} is taken from the recording at full resolution and added to the collection. Annotate it on the Retrain page — including what the model missed.` : "" })] }),
|
|
25854
|
+
/* @__PURE__ */ jsx(TrainingCollectionPicker, {
|
|
25855
|
+
value: collectionId,
|
|
25856
|
+
onChange: setCollectionId
|
|
25857
|
+
}),
|
|
25858
|
+
outcome !== null && /* @__PURE__ */ jsx("p", {
|
|
25859
|
+
className: `mt-2 text-xs ${outcome.kind === "added" ? "text-success" : "text-danger"}`,
|
|
25860
|
+
role: "status",
|
|
25861
|
+
children: outcome.kind === "added" ? outcome.reused ? `That moment was already in the dataset; it is now in ${outcome.collection}.` : `Added to ${outcome.collection}.` : outcome.text
|
|
25862
|
+
}),
|
|
25863
|
+
/* @__PURE__ */ jsxs(DialogFooter, { children: [/* @__PURE__ */ jsx(Button, {
|
|
25864
|
+
type: "button",
|
|
25865
|
+
variant: "ghost",
|
|
25866
|
+
size: "sm",
|
|
25867
|
+
disabled: send.isPending,
|
|
25868
|
+
onClick: () => {
|
|
25869
|
+
setOpen(false);
|
|
25870
|
+
},
|
|
25871
|
+
children: outcome?.kind === "added" ? "Done" : "Cancel"
|
|
25872
|
+
}), /* @__PURE__ */ jsxs(Button, {
|
|
25873
|
+
type: "button",
|
|
25874
|
+
size: "sm",
|
|
25875
|
+
disabled: collectionId === null || send.isPending || outcome?.kind === "added",
|
|
25876
|
+
onClick: () => void onSend(),
|
|
25877
|
+
children: [send.isPending && /* @__PURE__ */ jsx(LoaderCircle, { className: "h-3.5 w-3.5 animate-spin" }), "Send"]
|
|
25878
|
+
})] })
|
|
25879
|
+
] })
|
|
25880
|
+
})] });
|
|
25881
|
+
}
|
|
25882
|
+
//#endregion
|
|
25212
25883
|
//#region src/composites/cap-settings/CoverageTrack.tsx
|
|
25213
25884
|
function CoverageTrack({ windowFrom, windowTo, spans, playheadMs, onSeek, onScrubStart, onScrubMove, onScrubEnd }) {
|
|
25214
25885
|
const [hoverInfo, setHoverInfo] = useState(null);
|
|
@@ -25787,6 +26458,13 @@ function RecordingTimeline({ deviceId }) {
|
|
|
25787
26458
|
dayBounds: computedDayBounds,
|
|
25788
26459
|
onViewChange: handleViewChange
|
|
25789
26460
|
}),
|
|
26461
|
+
/* @__PURE__ */ jsx("div", {
|
|
26462
|
+
className: "flex justify-end",
|
|
26463
|
+
children: /* @__PURE__ */ jsx(SendFrameToTrainingButton, {
|
|
26464
|
+
deviceId,
|
|
26465
|
+
epochMs: displayPlayheadMs
|
|
26466
|
+
})
|
|
26467
|
+
}),
|
|
25790
26468
|
recorded.channelOpen ? /* @__PURE__ */ jsxs("div", {
|
|
25791
26469
|
"data-testid": "frame-push-status-row",
|
|
25792
26470
|
className: "flex flex-wrap items-center gap-2 text-[10px]",
|
|
@@ -27384,6 +28062,32 @@ function FieldWrapper({ label, description, required, span, children, translatio
|
|
|
27384
28062
|
]
|
|
27385
28063
|
});
|
|
27386
28064
|
}
|
|
28065
|
+
/**
|
|
28066
|
+
* A keychain-stored secret (D787) arrives as its VIEW — `{ $secret, set }` —
|
|
28067
|
+
* or `null`, never as a value; it renders as "set · Change · Clear · Reveal".
|
|
28068
|
+
* Decided ONCE, at mount, from what the form was hydrated with: once the
|
|
28069
|
+
* operator types, the value is a plain string and the field must stay the
|
|
28070
|
+
* same control. A form that was not hydrated from a keychain-aware store (a
|
|
28071
|
+
* create dialog seeding `''`) keeps the plain input.
|
|
28072
|
+
*/
|
|
28073
|
+
function KeychainOr({ field, value, onChange, disabled, translationFn, multiline, children }) {
|
|
28074
|
+
const [keychain] = useState(() => isKeychainStoredField(field) && isKeychainFieldValue(value));
|
|
28075
|
+
if (!keychain) return /* @__PURE__ */ jsx(Fragment$1, { children });
|
|
28076
|
+
return /* @__PURE__ */ jsx(FieldWrapper, {
|
|
28077
|
+
label: "label" in field ? field.label : void 0,
|
|
28078
|
+
description: "description" in field ? field.description : void 0,
|
|
28079
|
+
required: "required" in field ? field.required : void 0,
|
|
28080
|
+
span: "span" in field ? field.span : void 0,
|
|
28081
|
+
translationFn,
|
|
28082
|
+
children: /* @__PURE__ */ jsx(SecretFieldControl, {
|
|
28083
|
+
field,
|
|
28084
|
+
value,
|
|
28085
|
+
onChange,
|
|
28086
|
+
disabled,
|
|
28087
|
+
multiline
|
|
28088
|
+
})
|
|
28089
|
+
});
|
|
28090
|
+
}
|
|
27387
28091
|
function TextField({ field, value, onChange, disabled, translationFn }) {
|
|
27388
28092
|
return /* @__PURE__ */ jsx(FieldWrapper, {
|
|
27389
28093
|
label: field.label,
|
|
@@ -28456,7 +29160,7 @@ function resolveActionParams(field, values) {
|
|
|
28456
29160
|
const params = { ...field.paramsStatic };
|
|
28457
29161
|
if (field.paramsFromForm) for (const [paramKey, formKey] of Object.entries(field.paramsFromForm)) {
|
|
28458
29162
|
const v = values[formKey];
|
|
28459
|
-
if (v !== void 0 && v !== null && v !== "") params[paramKey] = v;
|
|
29163
|
+
if (v !== void 0 && v !== null && v !== "" && !isSecretClear(v)) params[paramKey] = v;
|
|
28460
29164
|
}
|
|
28461
29165
|
return params;
|
|
28462
29166
|
}
|
|
@@ -28952,12 +29656,19 @@ function FormField({ field, values, onChange, disabled, translationFn, onTestFie
|
|
|
28952
29656
|
const handleChange = (v) => onChange(field.key, v);
|
|
28953
29657
|
const customRenderer = useCustomFieldRenderer(field.type);
|
|
28954
29658
|
switch (field.type) {
|
|
28955
|
-
case "text": return /* @__PURE__ */ jsx(
|
|
29659
|
+
case "text": return /* @__PURE__ */ jsx(KeychainOr, {
|
|
28956
29660
|
field,
|
|
28957
29661
|
value,
|
|
28958
29662
|
onChange: handleChange,
|
|
28959
29663
|
disabled,
|
|
28960
|
-
translationFn
|
|
29664
|
+
translationFn,
|
|
29665
|
+
children: /* @__PURE__ */ jsx(TextField, {
|
|
29666
|
+
field,
|
|
29667
|
+
value,
|
|
29668
|
+
onChange: handleChange,
|
|
29669
|
+
disabled,
|
|
29670
|
+
translationFn
|
|
29671
|
+
})
|
|
28961
29672
|
});
|
|
28962
29673
|
case "number": return /* @__PURE__ */ jsx(NumberField, {
|
|
28963
29674
|
field,
|
|
@@ -29001,19 +29712,34 @@ function FormField({ field, values, onChange, disabled, translationFn, onTestFie
|
|
|
29001
29712
|
disabled,
|
|
29002
29713
|
translationFn
|
|
29003
29714
|
});
|
|
29004
|
-
case "password": return /* @__PURE__ */ jsx(
|
|
29715
|
+
case "password": return /* @__PURE__ */ jsx(KeychainOr, {
|
|
29005
29716
|
field,
|
|
29006
29717
|
value,
|
|
29007
29718
|
onChange: handleChange,
|
|
29008
29719
|
disabled,
|
|
29009
|
-
translationFn
|
|
29720
|
+
translationFn,
|
|
29721
|
+
children: /* @__PURE__ */ jsx(PasswordField, {
|
|
29722
|
+
field,
|
|
29723
|
+
value,
|
|
29724
|
+
onChange: handleChange,
|
|
29725
|
+
disabled,
|
|
29726
|
+
translationFn
|
|
29727
|
+
})
|
|
29010
29728
|
});
|
|
29011
|
-
case "textarea": return /* @__PURE__ */ jsx(
|
|
29729
|
+
case "textarea": return /* @__PURE__ */ jsx(KeychainOr, {
|
|
29012
29730
|
field,
|
|
29013
29731
|
value,
|
|
29014
29732
|
onChange: handleChange,
|
|
29015
29733
|
disabled,
|
|
29016
|
-
translationFn
|
|
29734
|
+
translationFn,
|
|
29735
|
+
multiline: true,
|
|
29736
|
+
children: /* @__PURE__ */ jsx(TextAreaField, {
|
|
29737
|
+
field,
|
|
29738
|
+
value,
|
|
29739
|
+
onChange: handleChange,
|
|
29740
|
+
disabled,
|
|
29741
|
+
translationFn
|
|
29742
|
+
})
|
|
29017
29743
|
});
|
|
29018
29744
|
case "slider": return /* @__PURE__ */ jsx(SliderField, {
|
|
29019
29745
|
field,
|
|
@@ -30815,47 +31541,6 @@ var Separator = forwardRef(({ className, orientation, ...props }, ref) => {
|
|
|
30815
31541
|
});
|
|
30816
31542
|
Separator.displayName = "Separator";
|
|
30817
31543
|
//#endregion
|
|
30818
|
-
//#region src/primitives/input.tsx
|
|
30819
|
-
/**
|
|
30820
|
-
* `disabled:opacity-50 disabled:cursor-not-allowed` for the same reason as
|
|
30821
|
-
* `Select` — an explicit `bg-surface` / `text-foreground` overrides the greying
|
|
30822
|
-
* a browser would otherwise apply, leaving an inert field indistinguishable
|
|
30823
|
-
* from a live one. See `disabled-affordance.test.tsx`.
|
|
30824
|
-
*/
|
|
30825
|
-
var inputVariants = cva("h-7 w-full px-2.5 text-xs bg-surface border rounded-md text-foreground placeholder:text-foreground-subtle focus:outline-none focus:ring-1 focus:ring-primary transition-colors disabled:opacity-50 disabled:cursor-not-allowed", {
|
|
30826
|
-
variants: { state: {
|
|
30827
|
-
default: "border-border",
|
|
30828
|
-
error: "border-danger"
|
|
30829
|
-
} },
|
|
30830
|
-
defaultVariants: { state: "default" }
|
|
30831
|
-
});
|
|
30832
|
-
var Input = forwardRef(({ className, state, leftSlot, rightSlot, ...props }, ref) => {
|
|
30833
|
-
if (leftSlot || rightSlot) return /* @__PURE__ */ jsxs("div", {
|
|
30834
|
-
className: "relative flex items-center w-full",
|
|
30835
|
-
children: [
|
|
30836
|
-
leftSlot && /* @__PURE__ */ jsx("div", {
|
|
30837
|
-
className: "absolute left-2.5 flex items-center pointer-events-none",
|
|
30838
|
-
children: leftSlot
|
|
30839
|
-
}),
|
|
30840
|
-
/* @__PURE__ */ jsx("input", {
|
|
30841
|
-
ref,
|
|
30842
|
-
className: cn(inputVariants({ state }), leftSlot ? "pl-7" : "", rightSlot ? "pr-7" : "", className),
|
|
30843
|
-
...props
|
|
30844
|
-
}),
|
|
30845
|
-
rightSlot && /* @__PURE__ */ jsx("div", {
|
|
30846
|
-
className: "absolute right-2.5 flex items-center pointer-events-none",
|
|
30847
|
-
children: rightSlot
|
|
30848
|
-
})
|
|
30849
|
-
]
|
|
30850
|
-
});
|
|
30851
|
-
return /* @__PURE__ */ jsx("input", {
|
|
30852
|
-
ref,
|
|
30853
|
-
className: cn(inputVariants({ state }), className),
|
|
30854
|
-
...props
|
|
30855
|
-
});
|
|
30856
|
-
});
|
|
30857
|
-
Input.displayName = "Input";
|
|
30858
|
-
//#endregion
|
|
30859
31544
|
//#region src/primitives/checkbox.tsx
|
|
30860
31545
|
var Checkbox = forwardRef(({ className, ...props }, ref) => {
|
|
30861
31546
|
return /* @__PURE__ */ jsx("input", {
|
|
@@ -30888,204 +31573,6 @@ var Switch = forwardRef(({ className, checked, onCheckedChange, label, ...props
|
|
|
30888
31573
|
});
|
|
30889
31574
|
Switch.displayName = "Switch";
|
|
30890
31575
|
//#endregion
|
|
30891
|
-
//#region src/primitives/dialog.tsx
|
|
30892
|
-
var DialogContext = createContext(null);
|
|
30893
|
-
function useDialogContext() {
|
|
30894
|
-
const ctx = useContext(DialogContext);
|
|
30895
|
-
if (!ctx) throw new Error("Dialog compound components must be used within <Dialog>");
|
|
30896
|
-
return ctx;
|
|
30897
|
-
}
|
|
30898
|
-
function Dialog({ children, open: controlledOpen, onOpenChange }) {
|
|
30899
|
-
const [uncontrolledOpen, setUncontrolledOpen] = useState(false);
|
|
30900
|
-
const open = controlledOpen ?? uncontrolledOpen;
|
|
30901
|
-
const contentId = useId();
|
|
30902
|
-
const setOpen = useCallback((next) => {
|
|
30903
|
-
onOpenChange?.(next);
|
|
30904
|
-
if (controlledOpen === void 0) setUncontrolledOpen(next);
|
|
30905
|
-
}, [controlledOpen, onOpenChange]);
|
|
30906
|
-
return /* @__PURE__ */ jsx(DialogContext.Provider, {
|
|
30907
|
-
value: {
|
|
30908
|
-
open,
|
|
30909
|
-
setOpen,
|
|
30910
|
-
contentId
|
|
30911
|
-
},
|
|
30912
|
-
children
|
|
30913
|
-
});
|
|
30914
|
-
}
|
|
30915
|
-
function DialogTrigger({ children, ...props }) {
|
|
30916
|
-
const { setOpen } = useDialogContext();
|
|
30917
|
-
return /* @__PURE__ */ jsx("button", {
|
|
30918
|
-
type: "button",
|
|
30919
|
-
onClick: () => setOpen(true),
|
|
30920
|
-
...props,
|
|
30921
|
-
children
|
|
30922
|
-
});
|
|
30923
|
-
}
|
|
30924
|
-
/**
|
|
30925
|
-
* A native <dialog> opened with showModal() is promoted to the top layer, so
|
|
30926
|
-
* ancestor transform/overflow can't clip it — but it relies on the UA
|
|
30927
|
-
* stylesheet's `dialog { margin: auto }` for modal centering. Tailwind's
|
|
30928
|
-
* preflight resets `margin: 0` on every element, which defeats that centering
|
|
30929
|
-
* and pins the modal to the top-left. We therefore center deterministically:
|
|
30930
|
-
* a top-layer dialog with `position: fixed` is viewport-relative, and a
|
|
30931
|
-
* self-transform is fine, so `fixed left-1/2 top-1/2 -translate-x-1/2
|
|
30932
|
-
* -translate-y-1/2 m-0` always centers regardless of any margin reset. Width
|
|
30933
|
-
* is capped to the viewport (`w-[calc(100vw-2rem)]`) rather than a bare
|
|
30934
|
-
* `w-full` (which would overflow/clip a centered dialog); the per-variant
|
|
30935
|
-
* `max-w-*` keeps small dialogs small while the cap prevents overflow.
|
|
30936
|
-
*
|
|
30937
|
-
* Height is capped against the SAFE viewport, not the raw one. A top-layer
|
|
30938
|
-
* `fixed` dialog is viewport-relative, and under `viewport-fit=cover` the
|
|
30939
|
-
* viewport extends behind the iOS notch/Dynamic Island and home indicator —
|
|
30940
|
-
* so a dialog tall enough to hit its `max-h` put its header under the clock.
|
|
30941
|
-
* Because the box is centred on the viewport (not on the safe area), the cap
|
|
30942
|
-
* has to subtract TWICE the LARGER of the two insets for the box to clear
|
|
30943
|
-
* both edges; using each inset once would still overflow the taller side
|
|
30944
|
-
* whenever they are asymmetric (they are: ~59px top vs ~34px bottom). Every
|
|
30945
|
-
* term collapses to the previous `100dvh - 2rem` where the insets are 0.
|
|
30946
|
-
*/
|
|
30947
|
-
var contentVariants = cva("fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 m-0 w-[calc(100vw-2rem)] bg-background-elevated text-foreground border border-border rounded-lg p-4 backdrop:bg-black/50 backdrop:backdrop-blur-sm max-h-[calc(100dvh-2rem-2*max(env(safe-area-inset-top),env(safe-area-inset-bottom)))] [&:not([open])]:hidden", {
|
|
30948
|
-
variants: {
|
|
30949
|
-
width: {
|
|
30950
|
-
sm: "max-w-sm",
|
|
30951
|
-
md: "max-w-md",
|
|
30952
|
-
lg: "max-w-lg"
|
|
30953
|
-
},
|
|
30954
|
-
/**
|
|
30955
|
-
* WHICH box scrolls when the content is taller than the height cap.
|
|
30956
|
-
*
|
|
30957
|
-
* `content` (default) scrolls the whole dialog: the title, any tab strip
|
|
30958
|
-
* and the Save/Cancel row travel with the fields. That is fine for a
|
|
30959
|
-
* short form and wrong for a long one — the operator scrolls to the
|
|
30960
|
-
* bottom of a rule editor and the buttons are somewhere above him, the
|
|
30961
|
-
* tab strip is gone, and the only way back to either is to scroll the
|
|
30962
|
-
* form he was reading.
|
|
30963
|
-
*
|
|
30964
|
-
* `body` makes the dialog a flex column that does not scroll at all and
|
|
30965
|
-
* hands the scrolling to `<DialogBody>`. The chrome around the body —
|
|
30966
|
-
* header, tab strip, footer — stays put at every height. The dialog
|
|
30967
|
-
* keeps its own padding either way, so `sheet-on-mobile`'s
|
|
30968
|
-
* safe-area bottom padding still applies to the footer.
|
|
30969
|
-
*
|
|
30970
|
-
* `body` also takes a DEFINITE height below `md` — see the
|
|
30971
|
-
* `scroll: 'body'` compound variants. That is not a style choice; the
|
|
30972
|
-
* flex chain does not resolve without it on iOS Safari.
|
|
30973
|
-
*/
|
|
30974
|
-
scroll: {
|
|
30975
|
-
content: "overflow-y-auto",
|
|
30976
|
-
body: "flex flex-col overflow-hidden"
|
|
30977
|
-
},
|
|
30978
|
-
placement: {
|
|
30979
|
-
center: "",
|
|
30980
|
-
"sheet-on-mobile": "bottom-0 left-0 right-0 top-auto w-full max-w-full translate-x-0 translate-y-0 rounded-b-none max-h-[92dvh] pb-[calc(1rem+env(safe-area-inset-bottom))] md:left-1/2 md:top-1/2 md:-translate-x-1/2 md:-translate-y-1/2 md:rounded-lg md:bottom-auto md:pb-4 md:max-h-[calc(100dvh-2rem-2*max(env(safe-area-inset-top),env(safe-area-inset-bottom)))]"
|
|
30981
|
-
}
|
|
30982
|
-
},
|
|
30983
|
-
compoundVariants: [
|
|
30984
|
-
{
|
|
30985
|
-
placement: "sheet-on-mobile",
|
|
30986
|
-
width: "sm",
|
|
30987
|
-
class: "md:w-[calc(100vw-2rem)] md:max-w-sm"
|
|
30988
|
-
},
|
|
30989
|
-
{
|
|
30990
|
-
placement: "sheet-on-mobile",
|
|
30991
|
-
width: "md",
|
|
30992
|
-
class: "md:w-[calc(100vw-2rem)] md:max-w-md"
|
|
30993
|
-
},
|
|
30994
|
-
{
|
|
30995
|
-
placement: "sheet-on-mobile",
|
|
30996
|
-
width: "lg",
|
|
30997
|
-
class: "md:w-[calc(100vw-2rem)] md:max-w-lg"
|
|
30998
|
-
},
|
|
30999
|
-
{
|
|
31000
|
-
scroll: "body",
|
|
31001
|
-
placement: "sheet-on-mobile",
|
|
31002
|
-
class: "h-[92dvh] md:h-auto"
|
|
31003
|
-
},
|
|
31004
|
-
{
|
|
31005
|
-
scroll: "body",
|
|
31006
|
-
placement: "center",
|
|
31007
|
-
class: "h-[calc(100dvh-2rem-2*max(env(safe-area-inset-top),env(safe-area-inset-bottom)))] md:h-auto"
|
|
31008
|
-
}
|
|
31009
|
-
],
|
|
31010
|
-
defaultVariants: {
|
|
31011
|
-
width: "md",
|
|
31012
|
-
placement: "center",
|
|
31013
|
-
scroll: "content"
|
|
31014
|
-
}
|
|
31015
|
-
});
|
|
31016
|
-
var DialogContent = forwardRef(({ className, width, placement, scroll, children, ...props }, ref) => {
|
|
31017
|
-
const { open, setOpen, contentId } = useDialogContext();
|
|
31018
|
-
const innerRef = useRef(null);
|
|
31019
|
-
const dialogRef = ref ?? innerRef;
|
|
31020
|
-
useEffect(() => {
|
|
31021
|
-
const el = dialogRef.current;
|
|
31022
|
-
if (!el) return;
|
|
31023
|
-
if (open && !el.open) el.showModal();
|
|
31024
|
-
if (!open && el.open) el.close();
|
|
31025
|
-
}, [open, dialogRef]);
|
|
31026
|
-
return /* @__PURE__ */ jsx("dialog", {
|
|
31027
|
-
ref: dialogRef,
|
|
31028
|
-
id: contentId,
|
|
31029
|
-
className: cn(contentVariants({
|
|
31030
|
-
width,
|
|
31031
|
-
placement,
|
|
31032
|
-
scroll
|
|
31033
|
-
}), className),
|
|
31034
|
-
onClose: () => setOpen(false),
|
|
31035
|
-
...props,
|
|
31036
|
-
children
|
|
31037
|
-
});
|
|
31038
|
-
});
|
|
31039
|
-
DialogContent.displayName = "DialogContent";
|
|
31040
|
-
/** `shrink-0` is inert outside a flex column and load-bearing inside one:
|
|
31041
|
-
* under `scroll="body"` the header must keep its height while the body gives
|
|
31042
|
-
* ground, or a long form squeezes its own title to nothing. */
|
|
31043
|
-
function DialogHeader({ className, ...props }) {
|
|
31044
|
-
return /* @__PURE__ */ jsx("div", {
|
|
31045
|
-
className: cn("flex flex-col gap-1 mb-3 shrink-0", className),
|
|
31046
|
-
...props
|
|
31047
|
-
});
|
|
31048
|
-
}
|
|
31049
|
-
/**
|
|
31050
|
-
* The scrolling middle of a `scroll="body"` dialog.
|
|
31051
|
-
*
|
|
31052
|
-
* `min-h-0` is what makes it work: a flex item's default `min-height: auto`
|
|
31053
|
-
* refuses to shrink below its content, so without it the body pushes the
|
|
31054
|
-
* footer out of the dialog instead of scrolling — the exact failure this
|
|
31055
|
-
* variant exists to remove. Anything sticky INSIDE a dialog body pins against
|
|
31056
|
-
* this element, since it is the scroll container.
|
|
31057
|
-
*
|
|
31058
|
-
* It only bounds a scroll area if every ancestor up to the dialog has a
|
|
31059
|
-
* resolved height. `DialogContent` supplies the top of that chain (see the
|
|
31060
|
-
* `scroll: 'body'` compound variants); an intermediate wrapper between them —
|
|
31061
|
-
* a `<Tabs>` that owns the tab strip, say — must carry `flex-1 min-h-0` too,
|
|
31062
|
-
* or it collapses and takes the body with it.
|
|
31063
|
-
*/
|
|
31064
|
-
function DialogBody({ className, ...props }) {
|
|
31065
|
-
return /* @__PURE__ */ jsx("div", {
|
|
31066
|
-
className: cn("flex-1 min-h-0 overflow-y-auto", className),
|
|
31067
|
-
...props
|
|
31068
|
-
});
|
|
31069
|
-
}
|
|
31070
|
-
function DialogFooter({ className, ...props }) {
|
|
31071
|
-
return /* @__PURE__ */ jsx("div", {
|
|
31072
|
-
className: cn("flex justify-end gap-2 mt-4 shrink-0", className),
|
|
31073
|
-
...props
|
|
31074
|
-
});
|
|
31075
|
-
}
|
|
31076
|
-
function DialogTitle({ className, ...props }) {
|
|
31077
|
-
return /* @__PURE__ */ jsx("h2", {
|
|
31078
|
-
className: cn("text-sm font-semibold text-foreground", className),
|
|
31079
|
-
...props
|
|
31080
|
-
});
|
|
31081
|
-
}
|
|
31082
|
-
function DialogDescription({ className, ...props }) {
|
|
31083
|
-
return /* @__PURE__ */ jsx("p", {
|
|
31084
|
-
className: cn("text-xs text-foreground-muted", className),
|
|
31085
|
-
...props
|
|
31086
|
-
});
|
|
31087
|
-
}
|
|
31088
|
-
//#endregion
|
|
31089
31576
|
//#region src/primitives/tooltip.tsx
|
|
31090
31577
|
var TooltipContext = createContext(null);
|
|
31091
31578
|
function useTooltipContext() {
|
|
@@ -61191,4 +61678,4 @@ var SceneMonitorEditor = lazy(() => import("./SceneMonitorEditor-vfWTm6qv.js").t
|
|
|
61191
61678
|
/** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
|
|
61192
61679
|
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-DMkchqO1.js").then((m) => ({ default: m.PrivacyMaskSettings })));
|
|
61193
61680
|
//#endregion
|
|
61194
|
-
export { AddonGlobalSettingsForm, AdminLinkQuickAction, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, BackToStepsButton, 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, ConfigNotificationTargetMultiSelectFieldView, ConfigNotificationTargetSelectFieldView, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, CustomFieldRenderersProvider, DEFAULT_COLOR, DEVICE_COLUMNS, DEVICE_EXPORT_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_PICKER_GROUP_STORAGE_KEY, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DataTableFilterBar, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceExportSetup, DeviceFilterBar, DeviceGrid, DeviceItem, DeviceList, DeviceMultiSelectField, DevicePicker, DeviceQuickDetailProvider, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, DevicesFailedLine, DevicesLoadingLine, DevicesWidenWarning, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EMPTY_DATA_TABLE_FILTER, EVENT_KIND_ICONS, EmptyState, EndpointResultsCard, EndpointTestCard, ErrorBox, EventKindGlyph, EventStream, ExtensionsPanel, 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, GateBadge, GateControl, GripTrack, GroupedModelSelector, HOST_WIDGETS, HUB_SESSION_RUN_MS, HlsVideo, HoverZoomImage, HubSessionTestCard, HumidifierHeroCard, HumidifierInlineControl, INPUT_COMPACT, INPUT_SHELL, IconAction, IconButton, IconPicker, ImageHeroCard, ImageInlineControl, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LayeredSettingsForm, LightHeroCard, LightInlineControl, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, MODE_COLOR, MaskShapeCanvas, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, MobileDrawer, ModelPicker, MotionZonesSettings, NAVIGATION_DRIVE_INTERVAL_MS, NatResultCard, NavigationPanel, NetworkLinkBadge, NodeMultiSelectField, NodePicker, NodeSelectField, NotificationTargetSelectField, NotificationTargetsField, OPTION_SELECT_SEARCH_MIN_OPTIONS, OfflineBadge, OptionSelect, PAGE_SIZE_ALL, PHASE_CONFIG, PICKER_CHIP_LIMIT, PICKER_DEFAULT_GROUP_BY, PICKER_GROUP_BY_MODES, PICKER_GROUP_COLLAPSE_AT, PICKER_NONE_KEY, PICKER_NOUN_PLURAL, PICKER_NO_FILTERS, PICKER_PAGE_SIZE, PICKER_SEARCH_DEBOUNCE_MS, PICKER_WINDOW, PRIORITY, PTZOverlay, PageHeader, PageSizeSelect, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PlaceholderChipField, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, RoleDisplayDefaultsFromServer, RoleDisplayDefaultsProvider, RootModelSourceControl, RootSuppliedModelNote, RunReport, 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, STEP_DOCK_WIDTH_PX, SceneMonitorEditor, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, SectionCard, SegmentedChoice, Select, SelectedChip, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideToggle, SnapshotButton, SortHeaderButton, StatCard, StateValuesStream, StatusBadge, StepDetailDock, StepInspectorPanel, StepModelRow, StepTimings, Stepper, StreamBrokerSelector, StreamDebugOverlay, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, TABLE_SCROLL_MAX_H, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimezoneSelector, Tooltip, TooltipContent, TooltipTrigger, UnitPicker, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, VodPlaybackProvider, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, MicOff as a, acceleratorLabel, acceleratorShortLabel, agentColumnKey, allDeviceTypeFilterOptions, applyFleetQueryDefaults, applyPickerFilters, ariaSortForColumn, badgeFor, bindsToModel, buildPeerConnectionConfig, buildStepTreeFromSchema, EyeOff as c, catalogHasDraft, childEntityId, childListName, chipOverflow, classifyAddressScope, classifyCapability, classifySessionVerdict, clearPickerGroup, cn, columnsForContext, compareSrflxMappings, containerChildToRef, countableDevices, coverHighlight, coverageLine, createSharedContext, createTheme, cursorFractionFor, darkColors, dataTableFacets, defaultOfField, defaultTheme, deriveDeviceKind, deriveWebrtcDebugStats, describeDeviceSelector, deviceIntegrationResolver, deviceListStateOf, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, dockBox, draftFromQuery, effectivePageSize, emptyDevicesWidens, emptySessionRun, ensureMfHostInit, eventKindLabel, filterDataTableRows, filterDeviceOptions, filterOptions as filterOptionSelectOptions, filterPickerDevices, finalizeSessionRun, findTimezone, flattenPickerGrouping, flattenPickerRows, fleetViewOf, formatControlDateTime, formatLastSeen, formatNumeric, formatSettingValue, freezeVerdict, fuzzyMatch, getClassColor, getPhaseVisual, groupAgentColumns, groupChildrenByLayout, groupPickerDevices, groupPickerDevicesBy, hardwareLabel, hubOrigin, hubPath, hubUrl, hubWsUrl, humanDuration, humidifierTint, Mic as i, initialScrubState, insertAtSelection, isAbsentProvider, isDataTableFilterActive, isFieldVisible, isGroupExpanded, isValueField, Camera as l, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, mountPath, Square as n, nextGridPosition, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, normalizeForSearch, ImageOff as o, offListSelections, openTopLayer, optionSearchText as optionSelectSearchText, orphanDeviceLabel, overrideEntityIdFromLink, pageRows, pageSizeLabel, parentDetailOf, parseIceCandidate, parsePickerGroupBy, parseRecordedServerMessage, partitionSelected as partitionOptionSelectSelected, partitionSuggested, pickerFacetFilterShown, pickerFacetKey, pickerFacetOptions, pickerFiltersActive, pickerGroupKey, pickerHiddenSelectedCount, pickerLocationKey, pickerQueryTokens, pickerRowFacts, pickerSearchText, pickerZoneFilterSuspended, pinnedStreamChoices, providerIcons, RotateCcw as r, readStoredGroupBy, reduceSessionRun, resetHubMountForTests, resetPickerFilters, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDeviceIntegration, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolveSearchable as resolveOptionSelectSearchable, resolveParentNames, resolvePrimaryChild, resolveSelectedDevices, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, roiTooLarge, rootSourceState, routerBasename, Grid2x2 as s, sameLocationSuggestions, scrubReducer, searchSteps, selectPickerGroup, selectedDeviceOptions, serializeRecordedCommand, settingsModelIdFor, shouldCommit, shouldEmit, shouldShowAddNewFooter, shouldShowUseQueryRow, shouldUseSingleNode, showsNoCamerasHint, sortRows, sortRowsByColumn, statusIcons, statusLine, stepFieldDomId, stepHasModelForFormat, stepLocalFields, stepModelOptions, stripParentNamePrefix, summarizeHubCandidates, Trash2 as t, tabForSelector, tankAlert, themeToCss, toStationaryOverlayBox, toggleDataTableFacet, togglePickerDevice, togglePickerKey, trpc, typeLabel, createLucideIcon as u, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsGetIntegrationSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCancelJob, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetJob, useAddonsGetLastRestart, useAddonsGetLogs, useAddonsGetVersions, useAddonsInstallFromWorkspace, useAddonsInstallPackage, useAddonsIsWorkspaceAvailable, useAddonsList, useAddonsListCapabilityProviders, useAddonsListFrameworkPackages, useAddonsListInstallations, 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, useCalendarsGetPreferences, useCalendarsListCalendars, useCalendarsListEvents, useCalendarsSetCalendarPreference, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraGridLayoutApplyDeviceSettingsPatch, useCameraGridLayoutGetDeviceLiveContribution, useCameraGridLayoutGetDeviceSettingsContribution, useCameraGridLayoutGetLayout, useCameraGridLayoutSaveLayout, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCapabilityPresence, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useClusterTopology, useColorGetStatus, useColorSetColor, useConfirm, useConnectionTestDescribeTest, useConnectionTestTestSettings, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoreBlocksCompile, useCoreBlocksCreate, useCoreBlocksCreateComposition, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetBlockSettings, useCoreBlocksGetComposition, useCoreBlocksGetCustomization, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksListComposableCaps, useCoreBlocksListCompositions, useCoreBlocksRestart, useCoreBlocksSetEnabled, useCoreBlocksUpdate, useCoreBlocksUpdateBlockSettings, useCoreBlocksUpdateComposition, useCoreBlocksValidateComposition, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDataTableFilter, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderGetInfo, useDecoderReprobeHwaccel, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdminLink, useDeviceAdminLinkGetAdminLink, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceExtensionListCandidates, useDeviceExtensionListSlots, useDeviceExtensionListSources, useDeviceExtensionSetSlot, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionCancelJob, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionListJobs, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAdoptionStartJob, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetBindingsBatch, useDeviceManagerGetChildren, useDeviceManagerGetChildrenBatch, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetDeviceStatusAggregateBatch, useDeviceManagerGetLinkedDevices, useDeviceManagerGetLinkedDevicesBatch, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerGetWrapperActivation, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListDeviceIdsByCaps, useDeviceManagerListLocationDescriptions, useDeviceManagerListLocationIcons, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListSiteZones, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerMigrateDevice, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRemoveSiteZone, useDeviceManagerRenameLocation, useDeviceManagerRenameSiteZone, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetLocationDescription, useDeviceManagerSetLocationIcon, useDeviceManagerSetLocationZone, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetSiteZone, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceNetworkLink, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderReloadDevice, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceQuickDetailOpen, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateClaimFields, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetNativeCapSlice, useDeviceStateGetSnapshot, useDeviceStateListClaims, useDeviceStatePatchOwnedFields, useDeviceStateReleaseClaim, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellEvents, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryAuditIdentitySamples, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, useLlmCancel, useLlmDeleteModel, useLlmDeleteProfile, useLlmGenerate, useLlmGenerateVision, useLlmGetDefaults, useLlmGetRuntimeStatus, useLlmGetUsage, useLlmInstallModel, useLlmListModelCatalog, useLlmListModels, useLlmListNodeModels, useLlmListProfileKinds, useLlmListProfiles, useLlmListRuntimeNodes, useLlmResolveModelRef, useLlmSetDefault, useLlmStartRuntime, useLlmStopRuntime, useLlmTestProfile, useLlmUpsertProfile, useLocalNetworkAddCustomAddress, useLocalNetworkDownloadCa, useLocalNetworkGetAddresses, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetHubAddresses, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkGetTlsStatus, useLocalNetworkGetViewerEndpoints, useLocalNetworkList, useLocalNetworkRegenerateCertificate, useLocalNetworkRemoveCustomAddress, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkRevertToGeneratedCertificate, useLocalNetworkSetAddressRole, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLocalNetworkSetViewerEndpoints, useLocalNetworkUploadCertificate, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetLoadSeries, useMetricsProviderGetProcessStats, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetOptions, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNativeObjectDetectionSetSettings, useNavigation, useNavigationGetFeatures, useNavigationGetStatus, useNavigationGoToPoint, useNavigationListActions, useNavigationMove, useNavigationPlaySound, useNavigationRunAction, useNavigationSetLightLevel, useNavigationSetLightMode, useNavigationSetLightOn, useNavigationStop, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkLinkGetStatus, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesDirectory, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputGetTarget, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputProbeTargetConfig, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesActivateAlarmProfile, useNotificationRulesCancelSnooze, useNotificationRulesCreateAlarmProfile, useNotificationRulesCreateRule, useNotificationRulesCreateSequence, useNotificationRulesCreateSnooze, useNotificationRulesDeleteAlarmProfile, useNotificationRulesDeleteRule, useNotificationRulesDeleteSequence, useNotificationRulesGetAlarmConfig, useNotificationRulesGetAlarmSensors, useNotificationRulesGetClipRetentionAsks, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesGetRuleLastRuns, useNotificationRulesGetSequence, useNotificationRulesGetTemplateCatalog, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSequences, useNotificationRulesListSnoozes, useNotificationRulesPreviewStateSummary, useNotificationRulesPreviewTemplate, useNotificationRulesRenameAlarmProfile, useNotificationRulesResolveArtifactUrl, useNotificationRulesSetAlarmConfig, useNotificationRulesSetDeviceMuted, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotificationRulesUpdateSequence, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdManagerClearSlotBinding, useOsdManagerCopyDeviceConfiguration, useOsdManagerDeleteTemplate, useOsdManagerGetConditionSupport, useOsdManagerGetDeviceOsd, useOsdManagerGetSourceCatalog, useOsdManagerListTemplates, useOsdManagerPreviewSlot, useOsdManagerRenderDevice, useOsdManagerSetSlotBinding, useOsdManagerUpsertTemplate, useOsdSetOverlay, usePTZ, usePersistedPageSize, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePickerSiteZones, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsCancelRelocateMedia, usePipelineAnalyticsCancelStorageMigrationMove, usePipelineAnalyticsClearTrackRelation, usePipelineAnalyticsClearTracks, usePipelineAnalyticsCompleteRetrainTrack, usePipelineAnalyticsCountRelocatableMedia, usePipelineAnalyticsCountUnstampedEventMedia, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsDeselectRetrainFrame, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventDensityBatch, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventMediaFootprintByKind, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetKeyEventsBatch, usePipelineAnalyticsGetMediaReclaimStatus, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetRetrainExportUrl, usePipelineAnalyticsGetRetrainFrameImage, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetStorageMigrationMoveStatus, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListArchivedDebugNotes, usePipelineAnalyticsListBirthDecisions, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTrackRelations, usePipelineAnalyticsListTracks, usePipelineAnalyticsOwnersWithMedia, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsReadLongTermSeries, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsReclaimDebugMedia, usePipelineAnalyticsReconcileFromDisk, usePipelineAnalyticsRefreshStorageLocationsForMigration, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsResumeForStorageMigration, usePipelineAnalyticsSaveRetrainAnnotations, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsSelectRetrainFrames, usePipelineAnalyticsSetRetrainFrameComplete, usePipelineAnalyticsSetTrackFlags, usePipelineAnalyticsSetTrackPurity, usePipelineAnalyticsSetTrackRelation, usePipelineAnalyticsStartStorageMigrationMove, usePipelineAnalyticsWipeAllAnalytics, usePipelineAnalyticsWipeObjectEmbeddings, usePipelineAnalyticsWriteRetrainArchive, usePipelineExecutorCacheFrameInPool, usePipelineExecutorClearDeviceOverrides, usePipelineExecutorClearModelBoundDeviceOverrides, usePipelineExecutorDeleteModel, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetInferenceDeviceHealth, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorRearmInferenceDevice, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorValidatePipeline, usePipelineOrchestratorApplyAutoTune, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCameraSwitches, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetClusterModelChoice, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetEffectiveShares, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorGetPlacementStats, usePipelineOrchestratorGetReconcileFromDiskStatus, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorPauseForStorageMigration, usePipelineOrchestratorPlanAutoTune, usePipelineOrchestratorRebalance, usePipelineOrchestratorReconcileFromDisk, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorRequestOccupancyLook, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorResumeForStorageMigration, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDecodeLimits, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraSensors, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepSettings, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetLoadBalancingShares, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorSetShareSource, usePipelineOrchestratorSuggestShares, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerGetParkedTrackFrame, usePipelineRunnerParkTrackFrame, usePipelineRunnerReleaseParkedTrackFrames, usePipelineRunnerReportMotion, usePipelineRunnerRequestOccupancyBurst, usePipelineRunnerRunDetailSubtree, usePipelineRunnerRunStatelessStep, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetAudioEnabled, usePrivacyMaskSetMask, usePrompt, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzCaptureHomeHere, usePtzContinuousMove, usePtzDeletePreset, usePtzGetHomePreset, usePtzGetHomeReturn, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzSetHomePreset, usePtzSetHomeReturn, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingArchiveApplyDeviceSettingsPatch, useRecordingArchiveCancelRelocateJob, useRecordingArchiveCancelStorageMigrationMove, useRecordingArchiveDeleteFootprint, useRecordingArchiveGetAvailabilityBatch, useRecordingArchiveGetDaysWithRecordingsBatch, useRecordingArchiveGetDeviceConfig, useRecordingArchiveGetDeviceLiveContribution, useRecordingArchiveGetDeviceSettingsContribution, useRecordingArchiveGetPlacement, useRecordingArchiveGetRelocateResidue, useRecordingArchiveGetStatus, useRecordingArchiveGetStorageMigrationMoveStatus, useRecordingArchiveGetStorageUsage, useRecordingArchiveListOpsLog, useRecordingArchiveListRelocateJobs, useRecordingArchiveLocateSegment, useRecordingArchivePauseForStorageMigration, useRecordingArchivePlanStorageRebalance, useRecordingArchivePruneFootage, useRecordingArchiveReadGopBytes, useRecordingArchiveReadSegmentBytes, useRecordingArchiveReadWindowBytes, useRecordingArchiveReconcileLedgerAgainstDisk, useRecordingArchiveRefreshStorageLocationsForMigration, useRecordingArchiveRelocateFootage, useRecordingArchiveRenderClip, useRecordingArchiveRenderGif, useRecordingArchiveRescanStorage, useRecordingArchiveResumeForStorageMigration, useRecordingArchiveSetDeviceConfig, useRecordingArchiveSetDevicePlacement, useRecordingArchiveStartStorageMigrationMove, useRecordingArchiveStartStorageRebalance, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingExportReadExportBytes, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetPlayback, useRecordingGetPlaybackOptions, useRecordingListSources, useRecordingOnboardGetOptions, useRecordingOnboardGetStatus, useRecordingOnboardSetSettings, useRecordingSignalGetStatus, useRemoteComponent, useRoleDisplayDefaults, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorListScenesBatch, useSceneMonitorRecheckNow, useSceneMonitorResetScene, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreAggregate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreDeleteWhere, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreInsertMany, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSettingsStoreUpdateWhere, useSettingsStoreUpsert, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStationaryOverlay, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageList, useStorageListDrainProgress, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageMigrationCancel, useStorageMigrationCleanupCancel, useStorageMigrationCleanupStart, useStorageMigrationCleanupStatus, useStorageMigrationDrain, useStorageMigrationHistory, useStorageMigrationMovers, useStorageMigrationPlan, useStorageMigrationResidue, useStorageMigrationStart, useStorageMigrationStatus, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStoredGroupBy, useStreamBrokerAcquireEgressTranscode, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerFetchEventMedia, useStreamBrokerForgetDeviceHardware, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerReportStreamSignal, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, 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, useUrlQueryParam, useUserManagementConfirmTotp, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementFindUserByExternalIdentity, useUserManagementGetTotpStatus, useUserManagementLinkExternalIdentity, useUserManagementListApiKeys, useUserManagementListExternalIdentities, useUserManagementListOauthSessions, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeOauthSession, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUnlinkExternalIdentity, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, useVideoclipsDialClipStream, useVideoclipsGetClipPlayback, useVideoclipsGetPlaybackOptions, useVideoclipsListClips, useVideoclipsListSources, useVideoclipsOfferClipBytes, useVideoclipsReadClipBytes, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionApplyDownlinkProbe, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionDebug, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetCurrentSnapshotBatch, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, vacuumStateMeta, validateScopes, valveStateMeta, variantLabel, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint, withResolvedParentDetail, withUseRootModel, writeStoredGroupBy };
|
|
61681
|
+
export { AddonGlobalSettingsForm, AdminLinkQuickAction, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutomationHeroCard, AutomationInlineControl, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, BackToStepsButton, 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, ConfigNotificationTargetMultiSelectFieldView, ConfigNotificationTargetSelectFieldView, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, CustomFieldRenderersProvider, DEFAULT_COLOR, DEVICE_COLUMNS, DEVICE_EXPORT_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_PICKER_GROUP_STORAGE_KEY, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DataTableFilterBar, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceExportSetup, DeviceFilterBar, DeviceGrid, DeviceItem, DeviceList, DeviceMultiSelectField, DevicePicker, DeviceQuickDetailProvider, DeviceSelectField, DeviceSelectorPicker, DeviceStepMatrix, DevicesFailedLine, DevicesLoadingLine, DevicesWidenWarning, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EMPTY_DATA_TABLE_FILTER, EVENT_KIND_ICONS, EmptyState, EndpointResultsCard, EndpointTestCard, ErrorBox, EventKindGlyph, EventStream, ExtensionsPanel, 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, GateBadge, GateControl, GripTrack, GroupedModelSelector, HOST_WIDGETS, HUB_SESSION_RUN_MS, HlsVideo, HoverZoomImage, HubSessionTestCard, HumidifierHeroCard, HumidifierInlineControl, INPUT_COMPACT, INPUT_SHELL, IconAction, IconButton, IconPicker, ImageHeroCard, ImageInlineControl, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LayeredSettingsForm, LightHeroCard, LightInlineControl, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, MODE_COLOR, MaskShapeCanvas, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, MobileDrawer, ModelPicker, MotionZonesSettings, NAVIGATION_DRIVE_INTERVAL_MS, NatResultCard, NavigationPanel, NetworkLinkBadge, NodeMultiSelectField, NodePicker, NodeSelectField, NotificationTargetSelectField, NotificationTargetsField, OPTION_SELECT_SEARCH_MIN_OPTIONS, OfflineBadge, OptionSelect, PAGE_SIZE_ALL, PHASE_CONFIG, PICKER_CHIP_LIMIT, PICKER_DEFAULT_GROUP_BY, PICKER_GROUP_BY_MODES, PICKER_GROUP_COLLAPSE_AT, PICKER_NONE_KEY, PICKER_NOUN_PLURAL, PICKER_NO_FILTERS, PICKER_PAGE_SIZE, PICKER_SEARCH_DEBOUNCE_MS, PICKER_WINDOW, PRIORITY, PTZOverlay, PageHeader, PageSizeSelect, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PlaceholderChipField, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECONNECT_POLICY, RECORDED_PLAYBACK_MODES, RIGHT, ROI_AREA_WARN_FRACTION, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, RoleDisplayDefaultsFromServer, RoleDisplayDefaultsProvider, RootModelSourceControl, RootSuppliedModelNote, RunReport, SCENE_CAPTURE_VARIANTS, SECRET_REVEAL_MS, 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, STEP_DOCK_WIDTH_PX, SceneMonitorEditor, ScopePicker, ScriptHeroCard, ScriptInlineControl, ScrollArea, SecretFieldControl, SecretRevealProvider, SectionCard, SegmentedChoice, Select, SelectedChip, SemanticBadge, SendFrameToTrainingButton, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, SettingRow, Sidebar, SidebarItem, Skeleton, SlideToggle, SnapshotButton, SortHeaderButton, StatCard, StateValuesStream, StatusBadge, StepDetailDock, StepInspectorPanel, StepModelRow, StepTimings, Stepper, StreamBrokerSelector, StreamDebugOverlay, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, TABLE_SCROLL_MAX_H, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimezoneSelector, Tooltip, TooltipContent, TooltipTrigger, TrainingCollectionPicker, UnitPicker, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, VodPlaybackProvider, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, MicOff as a, acceleratorLabel, acceleratorShortLabel, agentColumnKey, allDeviceTypeFilterOptions, applyFleetQueryDefaults, applyPickerFilters, ariaSortForColumn, badgeFor, bindsToModel, buildPeerConnectionConfig, buildStepTreeFromSchema, EyeOff as c, catalogHasDraft, childEntityId, childListName, chipOverflow, classifyAddressScope, classifyCapability, classifySessionVerdict, clearPickerGroup, cn, columnsForContext, compareSrflxMappings, containerChildToRef, countableDevices, coverHighlight, coverageLine, createSharedContext, createTheme, cursorFractionFor, darkColors, dataTableFacets, defaultOfField, defaultTheme, deriveDeviceKind, deriveWebrtcDebugStats, describeDeviceSelector, deviceIntegrationResolver, deviceListStateOf, deviceMatchesFilter, deviceOptionLabel, deviceRoleMeta, deviceRoleMetaOf, deviceTypeLabel, deviceTypeMeta, deviceTypeMetaOf, devicesToOptions, dockBox, draftFromQuery, effectivePageSize, emptyDevicesWidens, emptySessionRun, ensureMfHostInit, eventKindLabel, filterDataTableRows, filterDeviceOptions, filterOptions as filterOptionSelectOptions, filterPickerDevices, finalizeSessionRun, findTimezone, flattenPickerGrouping, flattenPickerRows, fleetViewOf, formatControlDateTime, formatLastSeen, formatNumeric, formatSettingValue, freezeVerdict, fuzzyMatch, getClassColor, getPhaseVisual, groupAgentColumns, groupChildrenByLayout, groupPickerDevices, groupPickerDevicesBy, hardwareLabel, hubOrigin, hubPath, hubUrl, hubWsUrl, humanDuration, humidifierTint, Mic as i, initialScrubState, insertAtSelection, isAbsentProvider, isDataTableFilterActive, isFieldVisible, isGroupExpanded, isKeychainFieldValue, isValueField, Camera as l, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, mountPath, Square as n, nextGridPosition, nextReconnectAction, nextSort, nextSortDirection, nextTableSort, normalizeForSearch, ImageOff as o, offListSelections, openTopLayer, optionSearchText as optionSelectSearchText, orphanDeviceLabel, overrideEntityIdFromLink, pageRows, pageSizeLabel, parentDetailOf, parseIceCandidate, parsePickerGroupBy, parseRecordedServerMessage, partitionSelected as partitionOptionSelectSelected, partitionSuggested, pickerFacetFilterShown, pickerFacetKey, pickerFacetOptions, pickerFiltersActive, pickerGroupKey, pickerHiddenSelectedCount, pickerLocationKey, pickerQueryTokens, pickerRowFacts, pickerSearchText, pickerZoneFilterSuspended, pinnedStreamChoices, providerIcons, RotateCcw as r, readStoredGroupBy, reduceSessionRun, resetHubMountForTests, resetPickerFilters, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDeviceIntegration, resolveDisplayIcon, resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveEventKindIcon, resolveSearchable as resolveOptionSelectSearchable, resolveParentNames, resolvePrimaryChild, resolveSelectedDevices, resolveSensorDisplay, resolveStepDefaultModel, resolveTableLayout, roiTooLarge, rootSourceState, routerBasename, Grid2x2 as s, sameLocationSuggestions, scrubReducer, searchSteps, selectPickerGroup, selectedDeviceOptions, serializeRecordedCommand, settingsModelIdFor, shouldCommit, shouldEmit, shouldShowAddNewFooter, shouldShowUseQueryRow, shouldUseSingleNode, showsNoCamerasHint, sortRows, sortRowsByColumn, statusIcons, statusLine, stepFieldDomId, stepHasModelForFormat, stepLocalFields, stepModelOptions, stripParentNamePrefix, summarizeHubCandidates, Trash2 as t, tabForSelector, tankAlert, themeToCss, toStationaryOverlayBox, toggleDataTableFacet, togglePickerDevice, togglePickerKey, trainingRefusalText, trpc, typeLabel, createLucideIcon as u, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsGetIntegrationSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCancelJob, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetJob, useAddonsGetLastRestart, useAddonsGetLogs, useAddonsGetVersions, useAddonsInstallFromWorkspace, useAddonsInstallPackage, useAddonsIsWorkspaceAvailable, useAddonsList, useAddonsListCapabilityProviders, useAddonsListFrameworkPackages, useAddonsListInstallations, 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, useCalendarsGetPreferences, useCalendarsListCalendars, useCalendarsListEvents, useCalendarsSetCalendarPreference, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraGridLayoutApplyDeviceSettingsPatch, useCameraGridLayoutGetDeviceLiveContribution, useCameraGridLayoutGetDeviceSettingsContribution, useCameraGridLayoutGetLayout, useCameraGridLayoutSaveLayout, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCapabilityPresence, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useClusterTopology, useColorGetStatus, useColorSetColor, useConfirm, useConnectionTestDescribeTest, useConnectionTestTestSettings, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoreBlocksCompile, useCoreBlocksCreate, useCoreBlocksCreateComposition, useCoreBlocksDelete, useCoreBlocksGet, useCoreBlocksGetBlockSettings, useCoreBlocksGetComposition, useCoreBlocksGetCustomization, useCoreBlocksGetTypeDefs, useCoreBlocksList, useCoreBlocksListComposableCaps, useCoreBlocksListCompositions, useCoreBlocksRestart, useCoreBlocksSetEnabled, useCoreBlocksUpdate, useCoreBlocksUpdateBlockSettings, useCoreBlocksUpdateComposition, useCoreBlocksValidateComposition, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDataTableFilter, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderGetInfo, useDecoderReprobeHwaccel, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdminLink, useDeviceAdminLinkGetAdminLink, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceExtensionListCandidates, useDeviceExtensionListSlots, useDeviceExtensionListSources, useDeviceExtensionSetSlot, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionCancelJob, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionListJobs, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAdoptionStartJob, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetBindingsBatch, useDeviceManagerGetChildren, useDeviceManagerGetChildrenBatch, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetDeviceStatusAggregateBatch, useDeviceManagerGetLinkedDevices, useDeviceManagerGetLinkedDevicesBatch, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerGetWrapperActivation, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListDeviceIdsByCaps, useDeviceManagerListLocationDescriptions, useDeviceManagerListLocationIcons, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListSiteZones, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerMigrateDevice, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRemoveSiteZone, useDeviceManagerRenameLocation, useDeviceManagerRenameSiteZone, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetLocationDescription, useDeviceManagerSetLocationIcon, useDeviceManagerSetLocationZone, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetSiteZone, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceNetworkLink, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderReloadDevice, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceQuickDetailOpen, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateClaimFields, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetNativeCapSlice, useDeviceStateGetSnapshot, useDeviceStateListClaims, useDeviceStatePatchOwnedFields, useDeviceStateReleaseClaim, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellEvents, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryAuditIdentitySamples, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useKeychainAdminDeleteOrphans, useKeychainAdminDownloadRecoveryKey, useKeychainAdminListAudit, useKeychainAdminListSecrets, useKeychainAdminPurgeRetiredKeys, useKeychainAdminResetKeychain, useKeychainAdminReveal, useKeychainAdminRotateMasterKey, useKeychainAdminStatus, 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, useLocalNetworkAddCustomAddress, useLocalNetworkDownloadCa, useLocalNetworkGetAddresses, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetHubAddresses, useLocalNetworkGetNotificationEndpoint, useLocalNetworkGetPreferred, useLocalNetworkGetTlsStatus, useLocalNetworkGetViewerEndpoints, useLocalNetworkList, useLocalNetworkRegenerateCertificate, useLocalNetworkRemoveCustomAddress, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkRevertToGeneratedCertificate, useLocalNetworkSetAddressRole, useLocalNetworkSetAllowedAddresses, useLocalNetworkSetNotificationEndpoint, useLocalNetworkSetViewerEndpoints, useLocalNetworkUploadCertificate, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetLoadSeries, useMetricsProviderGetProcessStats, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetOptions, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNativeObjectDetectionSetSettings, useNavigation, useNavigationGetFeatures, useNavigationGetStatus, useNavigationGoToPoint, useNavigationListActions, useNavigationMove, useNavigationPlaySound, useNavigationRunAction, useNavigationSetLightLevel, useNavigationSetLightMode, useNavigationSetLightOn, useNavigationStop, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkLinkGetStatus, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesDirectory, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputGetTarget, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputProbeTargetConfig, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotificationRulesActivateAlarmProfile, useNotificationRulesCancelSnooze, useNotificationRulesCreateAlarmProfile, useNotificationRulesCreateRule, useNotificationRulesCreateSequence, useNotificationRulesCreateSnooze, useNotificationRulesDeleteAlarmProfile, useNotificationRulesDeleteRule, useNotificationRulesDeleteSequence, useNotificationRulesGetAlarmConfig, useNotificationRulesGetAlarmSensors, useNotificationRulesGetClipRetentionAsks, useNotificationRulesGetConditionCatalog, useNotificationRulesGetHistory, useNotificationRulesGetRule, useNotificationRulesGetRuleLastRuns, useNotificationRulesGetSequence, useNotificationRulesGetTemplateCatalog, useNotificationRulesListDeviceMutes, useNotificationRulesListRules, useNotificationRulesListSequences, useNotificationRulesListSnoozes, useNotificationRulesPreviewStateSummary, useNotificationRulesPreviewTemplate, useNotificationRulesRenameAlarmProfile, useNotificationRulesResolveArtifactUrl, useNotificationRulesSetAlarmConfig, useNotificationRulesSetDeviceMuted, useNotificationRulesSetRuleEnabled, useNotificationRulesTestRule, useNotificationRulesUpdateRule, useNotificationRulesUpdateSequence, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdManagerClearSlotBinding, useOsdManagerCopyDeviceConfiguration, useOsdManagerDeleteTemplate, useOsdManagerGetConditionSupport, useOsdManagerGetDeviceOsd, useOsdManagerGetSourceCatalog, useOsdManagerListTemplates, useOsdManagerPreviewSlot, useOsdManagerRenderDevice, useOsdManagerSetSlotBinding, useOsdManagerUpsertTemplate, useOsdSetOverlay, usePTZ, usePersistedPageSize, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePickerSiteZones, usePipelineAnalyticsAddRetrainFrameFromRecording, usePipelineAnalyticsAddRetrainFramesToCollection, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsCancelRelocateMedia, usePipelineAnalyticsCancelStorageMigrationMove, usePipelineAnalyticsClearTrackRelation, usePipelineAnalyticsClearTracks, usePipelineAnalyticsCompleteRetrainTrack, usePipelineAnalyticsCountRelocatableMedia, usePipelineAnalyticsCountUnstampedEventMedia, usePipelineAnalyticsCreateRetrainCollection, usePipelineAnalyticsDeleteDeviceEvents, usePipelineAnalyticsDeleteRetrainCollection, usePipelineAnalyticsDeleteTracks, usePipelineAnalyticsDeselectRetrainFrame, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventDensityBatch, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetEventMediaFootprintByKind, usePipelineAnalyticsGetEventStoreFootprint, usePipelineAnalyticsGetKeyEvents, usePipelineAnalyticsGetKeyEventsBatch, usePipelineAnalyticsGetMediaReclaimStatus, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEmbeddingRebuildStatus, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetRetrainExportUrl, usePipelineAnalyticsGetRetrainFrameImage, usePipelineAnalyticsGetSensorEvents, usePipelineAnalyticsGetStorageMigrationMoveStatus, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsGetTrainingExportSummary, usePipelineAnalyticsGetTrainingExportUrl, usePipelineAnalyticsListArchivedDebugNotes, usePipelineAnalyticsListBirthDecisions, usePipelineAnalyticsListEventKinds, usePipelineAnalyticsListEventKindsBatch, usePipelineAnalyticsListEventMedia, usePipelineAnalyticsListOpsLog, usePipelineAnalyticsListRecentTracks, usePipelineAnalyticsListRelocateMediaJobs, usePipelineAnalyticsListRetrainAnnotations, usePipelineAnalyticsListRetrainAssistProfiles, usePipelineAnalyticsListRetrainCollectionFrames, usePipelineAnalyticsListRetrainCollections, usePipelineAnalyticsListRetrainFrames, usePipelineAnalyticsListRetrainStaging, usePipelineAnalyticsListTrackMedia, usePipelineAnalyticsListTrackRelations, usePipelineAnalyticsListTracks, usePipelineAnalyticsOwnersWithMedia, usePipelineAnalyticsPauseForStorageMigration, usePipelineAnalyticsProposeRetrainAnnotations, usePipelineAnalyticsProposeRetrainAnnotationsWithLlm, usePipelineAnalyticsPruneEvents, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsPruneTracksBefore, usePipelineAnalyticsReadLongTermSeries, usePipelineAnalyticsRebuildObjectEmbeddings, usePipelineAnalyticsReclaimDebugMedia, usePipelineAnalyticsReconcileFromDisk, usePipelineAnalyticsRefreshStorageLocationsForMigration, usePipelineAnalyticsRelocateMedia, usePipelineAnalyticsRemoveRetrainFrameFromCollection, usePipelineAnalyticsRenameRetrainCollection, usePipelineAnalyticsRestageRetrainTrack, usePipelineAnalyticsResumeForStorageMigration, usePipelineAnalyticsSaveRetrainAnnotations, usePipelineAnalyticsSearchObjectEvents, usePipelineAnalyticsSelectRetrainFrames, usePipelineAnalyticsSetRetrainFrameComplete, usePipelineAnalyticsSetTrackFlags, usePipelineAnalyticsSetTrackPurity, usePipelineAnalyticsSetTrackRelation, usePipelineAnalyticsStartStorageMigrationMove, usePipelineAnalyticsWipeAllAnalytics, usePipelineAnalyticsWipeObjectEmbeddings, usePipelineAnalyticsWriteRetrainArchive, usePipelineExecutorCacheFrameInPool, usePipelineExecutorClearDeviceOverrides, usePipelineExecutorClearModelBoundDeviceOverrides, usePipelineExecutorDeleteModel, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetInferenceDeviceHealth, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorRearmInferenceDevice, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorValidatePipeline, usePipelineOrchestratorAbortNodeBenchmark, usePipelineOrchestratorApplyAutoTune, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteNodeBenchmarkResult, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCameraSwitches, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetClusterModelChoice, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetEffectiveShares, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetIngestOwner, usePipelineOrchestratorGetNodeBenchmarkCandidates, usePipelineOrchestratorGetNodeBenchmarkPreflight, usePipelineOrchestratorGetNodeBenchmarkStatus, usePipelineOrchestratorGetNodeInferenceDevices, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorGetPipelineDevicePin, usePipelineOrchestratorGetPlacementStats, usePipelineOrchestratorGetReconcileFromDiskStatus, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListNodeBenchmarkResults, usePipelineOrchestratorPauseForStorageMigration, usePipelineOrchestratorPlanAutoTune, usePipelineOrchestratorRebalance, usePipelineOrchestratorReconcileFromDisk, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorRequestOccupancyLook, usePipelineOrchestratorResetNodePipelineDefaults, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorResumeForStorageMigration, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDecodeLimits, usePipelineOrchestratorSetAgentInferenceDevices, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetAgentReachableHost, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraSensors, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepSettings, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCameraSwitch, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorSetLoadBalancingShares, usePipelineOrchestratorSetPipelineDevicePin, usePipelineOrchestratorSetShareSource, usePipelineOrchestratorStartNodeBenchmark, usePipelineOrchestratorSuggestShares, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignPipeline, usePipelineRunnerAbortNodeBench, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerGetNativeCrop, usePipelineRunnerGetNodeBenchStatus, usePipelineRunnerGetParkedTrackFrame, usePipelineRunnerParkTrackFrame, usePipelineRunnerReleaseParkedTrackFrames, usePipelineRunnerReportMotion, usePipelineRunnerRequestOccupancyBurst, usePipelineRunnerRunDetailSubtree, usePipelineRunnerRunStatelessStep, usePipelineRunnerStartNodeBench, usePlateGalleryAssignPlate, usePlateGalleryAssignPlates, usePlateGalleryCorrectPlateText, usePlateGalleryCreateVehicle, usePlateGalleryDeletePlate, usePlateGalleryDeleteVehicle, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGalleryListVehicleSamples, usePlateGalleryListVehicles, usePlateGalleryRemoveVehicleSample, usePlateGalleryRenameVehicle, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlateGalleryUnassignPlate, usePlateGalleryUnassignPlates, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetAudioEnabled, usePrivacyMaskSetMask, usePrompt, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzCaptureHomeHere, usePtzContinuousMove, usePtzDeletePreset, usePtzGetHomePreset, usePtzGetHomeReturn, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzSetHomePreset, usePtzSetHomeReturn, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingArchiveApplyDeviceSettingsPatch, useRecordingArchiveCancelRelocateJob, useRecordingArchiveCancelStorageMigrationMove, useRecordingArchiveDeleteFootprint, useRecordingArchiveGetAvailabilityBatch, useRecordingArchiveGetDaysWithRecordingsBatch, useRecordingArchiveGetDeviceConfig, useRecordingArchiveGetDeviceLiveContribution, useRecordingArchiveGetDeviceSettingsContribution, useRecordingArchiveGetPlacement, useRecordingArchiveGetRelocateResidue, useRecordingArchiveGetStatus, useRecordingArchiveGetStorageMigrationMoveStatus, useRecordingArchiveGetStorageUsage, useRecordingArchiveListOpsLog, useRecordingArchiveListRelocateJobs, useRecordingArchiveLocateSegment, useRecordingArchivePauseForStorageMigration, useRecordingArchivePlanStorageRebalance, useRecordingArchivePruneFootage, useRecordingArchiveReadGopBytes, useRecordingArchiveReadSegmentBytes, useRecordingArchiveReadWindowBytes, useRecordingArchiveReconcileLedgerAgainstDisk, useRecordingArchiveRefreshStorageLocationsForMigration, useRecordingArchiveRelocateFootage, useRecordingArchiveRenderClip, useRecordingArchiveRenderGif, useRecordingArchiveRescanStorage, useRecordingArchiveResumeForStorageMigration, useRecordingArchiveSetDeviceConfig, useRecordingArchiveSetDevicePlacement, useRecordingArchiveStartStorageMigrationMove, useRecordingArchiveStartStorageRebalance, useRecordingExportCancelExport, useRecordingExportCreateExport, useRecordingExportDeleteExport, useRecordingExportGetDownloadUrl, useRecordingExportGetExport, useRecordingExportListExports, useRecordingExportReadExportBytes, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetPlayback, useRecordingGetPlaybackOptions, useRecordingListSources, useRecordingOnboardGetOptions, useRecordingOnboardGetStatus, useRecordingOnboardSetSettings, useRecordingSignalGetStatus, useRemoteComponent, useRoleDisplayDefaults, useSceneMonitorCaptureReference, useSceneMonitorCreateScene, useSceneMonitorDeleteReference, useSceneMonitorDeleteScene, useSceneMonitorGetStatus, useSceneMonitorListScenes, useSceneMonitorListScenesBatch, useSceneMonitorRecheckNow, useSceneMonitorResetScene, useSceneMonitorUpdateScene, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useServerManagementApplyServerUpdate, useServerManagementCheckServerUpdate, useServerManagementGetServerPackageStatus, useServerManagementRestartServer, useServerManagementRollbackServerUpdate, useSettingsStoreAggregate, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreDeleteWhere, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreInsertMany, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSettingsStoreUpdateWhere, useSettingsStoreUpsert, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDebugState, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetSnapshotLinks, useSnapshotGetSnapshotOverview, useSnapshotGetStatus, useSnapshotInvalidateCache, useStationaryOverlay, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageList, useStorageListDrainProgress, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageMigrationCancel, useStorageMigrationCleanupCancel, useStorageMigrationCleanupStart, useStorageMigrationCleanupStatus, useStorageMigrationDrain, useStorageMigrationHistory, useStorageMigrationMovers, useStorageMigrationPlan, useStorageMigrationResidue, useStorageMigrationStart, useStorageMigrationStatus, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStoredGroupBy, useStreamBrokerAcquireEgressTranscode, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerFetchEventMedia, useStreamBrokerForgetDeviceHardware, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceAudioMute, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerProduceEventMedia, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseEgressTranscode, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRenderPreBufferClip, useStreamBrokerReportStreamSignal, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetDeviceAudioMute, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, 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, useUrlQueryParam, useUserManagementConfirmTotp, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementFindUserByExternalIdentity, useUserManagementGetTotpStatus, useUserManagementLinkExternalIdentity, useUserManagementListApiKeys, useUserManagementListExternalIdentities, useUserManagementListOauthSessions, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeOauthSession, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUnlinkExternalIdentity, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, useVideoclipsDialClipStream, useVideoclipsGetClipPlayback, useVideoclipsGetPlaybackOptions, useVideoclipsListClips, useVideoclipsListSources, useVideoclipsOfferClipBytes, useVideoclipsReadClipBytes, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionApplyDownlinkProbe, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionDebug, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetCurrentSnapshotBatch, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, vacuumStateMeta, validateScopes, valveStateMeta, variantLabel, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint, withResolvedParentDetail, withUseRootModel, writeStoredGroupBy };
|