@camstack/ui-library 1.1.23 → 1.1.25
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/cap-settings/TimelineControls.d.ts +7 -5
- package/dist/generated/system-hooks.d.ts +12 -0
- package/dist/index.cjs +228 -58
- package/dist/index.js +223 -59
- package/package.json +1 -1
|
@@ -12,11 +12,13 @@ interface TimelineControlsProps {
|
|
|
12
12
|
readonly onViewChange: (w: DayWindow) => void;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
|
-
* Date selector + zoom-in / zoom-out buttons for the recording
|
|
16
|
-
* Zoom cycles through ZOOM_LEVELS (widest → narrowest), anchored on
|
|
17
|
-
* RIGHT edge — so on today's timeline "now" stays pinned to the right
|
|
18
|
-
* of drifting to a midday range.
|
|
19
|
-
*
|
|
15
|
+
* Date selector + prev/next pan + zoom-in / zoom-out buttons for the recording
|
|
16
|
+
* timeline. Zoom cycles through ZOOM_LEVELS (widest → narrowest), anchored on
|
|
17
|
+
* the view's RIGHT edge — so on today's timeline "now" stays pinned to the right
|
|
18
|
+
* instead of drifting to a midday range. The ◀ / ▶ buttons step the visible
|
|
19
|
+
* window earlier/later within the day (the discoverable equivalent of the
|
|
20
|
+
* horizontal wheel-pan wired in RecordingTimeline), so a zoomed-in day can be
|
|
21
|
+
* navigated back and forth without a mouse wheel.
|
|
20
22
|
*/
|
|
21
23
|
export declare function TimelineControls({ day, onDayChange, view, dayBounds, onViewChange, }: TimelineControlsProps): import("react").JSX.Element;
|
|
22
24
|
export {};
|
|
@@ -293,6 +293,12 @@ export declare const useCoverSetPosition: typeof trpc.cover.setPosition.useMutat
|
|
|
293
293
|
export declare const useCoverSetTiltPosition: typeof trpc.cover.setTiltPosition.useMutation;
|
|
294
294
|
/** Generated alias around `trpc.cover.getStatus.useQuery`. */
|
|
295
295
|
export declare const useCoverGetStatus: typeof trpc.cover.getStatus.useQuery;
|
|
296
|
+
/** Generated alias around `trpc.dayNight.getOptions.useQuery`. */
|
|
297
|
+
export declare const useDayNightGetOptions: typeof trpc.dayNight.getOptions.useQuery;
|
|
298
|
+
/** Generated alias around `trpc.dayNight.setSettings.useMutation`. */
|
|
299
|
+
export declare const useDayNightSetSettings: typeof trpc.dayNight.setSettings.useMutation;
|
|
300
|
+
/** Generated alias around `trpc.dayNight.getStatus.useQuery`. */
|
|
301
|
+
export declare const useDayNightGetStatus: typeof trpc.dayNight.getStatus.useQuery;
|
|
296
302
|
/** Generated alias around `trpc.decoder.supportsCodec.useQuery`. */
|
|
297
303
|
export declare const useDecoderSupportsCodec: typeof trpc.decoder.supportsCodec.useQuery;
|
|
298
304
|
/** Generated alias around `trpc.decoder.getInfo.useQuery`. */
|
|
@@ -629,6 +635,12 @@ export declare const useHumidifierGetStatus: typeof trpc.humidifier.getStatus.us
|
|
|
629
635
|
export declare const useHumiditySensorGetStatus: typeof trpc.humiditySensor.getStatus.useQuery;
|
|
630
636
|
/** Generated alias around `trpc.image.getStatus.useQuery`. */
|
|
631
637
|
export declare const useImageGetStatus: typeof trpc.image.getStatus.useQuery;
|
|
638
|
+
/** Generated alias around `trpc.imageSettings.getOptions.useQuery`. */
|
|
639
|
+
export declare const useImageSettingsGetOptions: typeof trpc.imageSettings.getOptions.useQuery;
|
|
640
|
+
/** Generated alias around `trpc.imageSettings.setSettings.useMutation`. */
|
|
641
|
+
export declare const useImageSettingsSetSettings: typeof trpc.imageSettings.setSettings.useMutation;
|
|
642
|
+
/** Generated alias around `trpc.imageSettings.getStatus.useQuery`. */
|
|
643
|
+
export declare const useImageSettingsGetStatus: typeof trpc.imageSettings.getStatus.useQuery;
|
|
632
644
|
/** Generated alias around `trpc.integrations.list.useQuery`. */
|
|
633
645
|
export declare const useIntegrationsList: typeof trpc.integrations.list.useQuery;
|
|
634
646
|
/** Generated alias around `trpc.integrations.get.useQuery`. */
|
package/dist/index.cjs
CHANGED
|
@@ -13842,6 +13842,17 @@ function AgentStepEditor(props) {
|
|
|
13842
13842
|
}
|
|
13843
13843
|
//#endregion
|
|
13844
13844
|
//#region src/composites/pipeline-tree-matrix.tsx
|
|
13845
|
+
/**
|
|
13846
|
+
* Fixed column geometry (rem). The matrix uses a CSS grid with STATIC track
|
|
13847
|
+
* widths so a cell's content (a status chip, a long model id) can never resize
|
|
13848
|
+
* a column or shift its neighbours — cell content is truncated WITHIN the fixed
|
|
13849
|
+
* track instead. This kills the "table dances when the last column's status
|
|
13850
|
+
* changes" jitter. See `min-w-0` on every grid child, which lets the child
|
|
13851
|
+
* shrink to the track (a grid item's automatic minimum is its content size, so
|
|
13852
|
+
* without this a non-wrapping model id would blow the track wider than its max).
|
|
13853
|
+
*/
|
|
13854
|
+
var STEP_COL_REM = 18;
|
|
13855
|
+
var AGENT_COL_REM = 13;
|
|
13845
13856
|
function flattenTree(nodes) {
|
|
13846
13857
|
const out = [];
|
|
13847
13858
|
const walk = (list, depth) => {
|
|
@@ -13921,40 +13932,58 @@ function QuickToggle({ enabled, onChange, disabled }) {
|
|
|
13921
13932
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: cn("inline-block h-3 w-3 rounded-full bg-white shadow transition-transform", enabled ? "translate-x-3.5" : "translate-x-0.5") })
|
|
13922
13933
|
});
|
|
13923
13934
|
}
|
|
13935
|
+
/**
|
|
13936
|
+
* Cell content. Kept width-stable: the status dot is `shrink-0` (reserved
|
|
13937
|
+
* space) and the model id truncates inside a `min-w-0` flex row, so a longer
|
|
13938
|
+
* model id never widens the cell — it ellipsises instead.
|
|
13939
|
+
*/
|
|
13924
13940
|
function renderCellContent(state) {
|
|
13925
13941
|
if (state.kind === "enabled") return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
13926
|
-
className: "
|
|
13942
|
+
className: "flex min-w-0 items-center gap-1",
|
|
13927
13943
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "h-1.5 w-1.5 rounded-full bg-emerald-500 shrink-0" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
13928
|
-
className: "font-mono text-foreground",
|
|
13944
|
+
className: "font-mono text-foreground truncate",
|
|
13929
13945
|
children: state.modelId
|
|
13930
13946
|
})]
|
|
13931
13947
|
});
|
|
13932
13948
|
if (state.kind === "disabled") return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
13933
|
-
className: "
|
|
13934
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "h-1.5 w-1.5 rounded-full border border-foreground-subtle/60 shrink-0" }), "
|
|
13949
|
+
className: "flex min-w-0 items-center gap-1 text-foreground-subtle",
|
|
13950
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "h-1.5 w-1.5 rounded-full border border-foreground-subtle/60 shrink-0" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
13951
|
+
className: "truncate",
|
|
13952
|
+
children: "off"
|
|
13953
|
+
})]
|
|
13935
13954
|
});
|
|
13936
13955
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
13937
|
-
className: "
|
|
13938
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "h-1.5 w-1.5 rounded-full bg-muted shrink-0" }), "
|
|
13956
|
+
className: "flex min-w-0 items-center gap-1 text-foreground-subtle/70",
|
|
13957
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "h-1.5 w-1.5 rounded-full bg-muted shrink-0" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
13958
|
+
className: "truncate",
|
|
13959
|
+
children: "n/a"
|
|
13960
|
+
})]
|
|
13939
13961
|
});
|
|
13940
13962
|
}
|
|
13941
|
-
function
|
|
13963
|
+
function cellButtonClass(state, isSelected, extra) {
|
|
13964
|
+
return cn("text-left text-xs hover:bg-muted/40", state.kind === "enabled" && "bg-emerald-500/5", state.kind === "na" && "bg-muted/30", isSelected && "ring-2 ring-primary ring-inset", extra);
|
|
13965
|
+
}
|
|
13966
|
+
/** Step label (slot heading + addon name + class chips), shared by both views. */
|
|
13967
|
+
function StepLabel({ node }) {
|
|
13968
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
13969
|
+
className: "flex flex-col gap-1 min-w-0 flex-1",
|
|
13970
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SlotHeading, { slot: node.slot }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
13971
|
+
className: "flex items-center gap-2 flex-wrap",
|
|
13972
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
13973
|
+
className: "font-semibold truncate",
|
|
13974
|
+
children: node.addonName
|
|
13975
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ClassChips, {
|
|
13976
|
+
inputs: node.inputClasses,
|
|
13977
|
+
outputs: node.outputClasses
|
|
13978
|
+
})]
|
|
13979
|
+
})]
|
|
13980
|
+
});
|
|
13981
|
+
}
|
|
13982
|
+
function GridRow({ node, depth, agents, getCellState, onCellClick, selectedCell, toggleProps }) {
|
|
13942
13983
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
13943
|
-
className: "sticky left-0 z-10 bg-surface px-3 py-2 border-b border-border text-xs flex items-start gap-2",
|
|
13984
|
+
className: "sticky left-0 z-10 bg-surface px-3 py-2 border-b border-border text-xs flex items-start gap-2 min-w-0",
|
|
13944
13985
|
style: { paddingLeft: `${12 + depth * 14}px` },
|
|
13945
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.
|
|
13946
|
-
className: "flex flex-col gap-1 min-w-0 flex-1",
|
|
13947
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SlotHeading, { slot: node.slot }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
13948
|
-
className: "flex items-center gap-2 flex-wrap",
|
|
13949
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
13950
|
-
className: "font-semibold truncate",
|
|
13951
|
-
children: node.addonName
|
|
13952
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ClassChips, {
|
|
13953
|
-
inputs: node.inputClasses,
|
|
13954
|
-
outputs: node.outputClasses
|
|
13955
|
-
})]
|
|
13956
|
-
})]
|
|
13957
|
-
}), toggleProps && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
13986
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(StepLabel, { node }), toggleProps && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
13958
13987
|
className: "pl-2 pt-0.5 shrink-0",
|
|
13959
13988
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(QuickToggle, {
|
|
13960
13989
|
enabled: toggleProps.enabled,
|
|
@@ -13964,24 +13993,28 @@ function Row({ node, depth, agents, getCellState, onCellClick, selectedCell, tog
|
|
|
13964
13993
|
})]
|
|
13965
13994
|
}), agents.map((a) => {
|
|
13966
13995
|
const state = getCellState(node.addonId, a.agentNodeId);
|
|
13967
|
-
const isSelected = selectedCell?.addonId === node.addonId && selectedCell.agentNodeId === a.agentNodeId;
|
|
13968
13996
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
13969
13997
|
type: "button",
|
|
13970
13998
|
onClick: () => onCellClick(node.addonId, a.agentNodeId),
|
|
13971
|
-
className:
|
|
13999
|
+
className: cellButtonClass(state, selectedCell?.addonId === node.addonId && selectedCell.agentNodeId === a.agentNodeId, "min-w-0 overflow-hidden px-3 py-1.5 border-b border-l border-border"),
|
|
13972
14000
|
children: renderCellContent(state)
|
|
13973
14001
|
}, a.agentNodeId);
|
|
13974
14002
|
})] });
|
|
13975
14003
|
}
|
|
13976
|
-
|
|
13977
|
-
|
|
13978
|
-
|
|
14004
|
+
/**
|
|
14005
|
+
* Wide layout: horizontally self-scrolling matrix. The scroll lives INSIDE
|
|
14006
|
+
* this `overflow-auto` box (sticky first column + sticky header row) so the
|
|
14007
|
+
* page body never scrolls sideways. Column tracks are fixed px widths — see
|
|
14008
|
+
* STEP_COL_REM / AGENT_COL_REM — so the grid is static regardless of content.
|
|
14009
|
+
*/
|
|
14010
|
+
function MatrixGrid({ rows, agents, getCellState, onCellClick, selectedCell, onToggleEnabled }) {
|
|
14011
|
+
const gridTemplate = `${STEP_COL_REM}rem repeat(${agents.length}, ${AGENT_COL_REM}rem)`;
|
|
13979
14012
|
const showToggle = onToggleEnabled !== void 0 && agents.length === 1;
|
|
13980
14013
|
const onlyAgent = agents[0]?.agentNodeId;
|
|
13981
14014
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
13982
14015
|
className: "overflow-auto border border-border rounded",
|
|
13983
14016
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
13984
|
-
className: "grid",
|
|
14017
|
+
className: "grid w-max",
|
|
13985
14018
|
style: { gridTemplateColumns: gridTemplate },
|
|
13986
14019
|
children: [
|
|
13987
14020
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -13989,9 +14022,9 @@ function PipelineTreeMatrix({ tree, agents, getCellState, onCellClick, selectedC
|
|
|
13989
14022
|
children: "Step"
|
|
13990
14023
|
}),
|
|
13991
14024
|
agents.map((a) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
13992
|
-
className: "sticky top-0 z-10 bg-muted/60 px-3 py-2 border-b border-l border-border",
|
|
14025
|
+
className: "sticky top-0 z-10 min-w-0 bg-muted/60 px-3 py-2 border-b border-l border-border",
|
|
13993
14026
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
13994
|
-
className: "text-xs font-semibold text-foreground",
|
|
14027
|
+
className: "text-xs font-semibold text-foreground truncate",
|
|
13995
14028
|
children: a.agentNodeId
|
|
13996
14029
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
13997
14030
|
className: "text-[10px] text-foreground-subtle truncate",
|
|
@@ -14000,7 +14033,7 @@ function PipelineTreeMatrix({ tree, agents, getCellState, onCellClick, selectedC
|
|
|
14000
14033
|
}, a.agentNodeId)),
|
|
14001
14034
|
rows.map(({ node, depth }) => {
|
|
14002
14035
|
const cellState = showToggle && onlyAgent !== void 0 ? getCellState(node.addonId, onlyAgent) : null;
|
|
14003
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
14036
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(GridRow, {
|
|
14004
14037
|
node,
|
|
14005
14038
|
depth,
|
|
14006
14039
|
agents,
|
|
@@ -14018,6 +14051,90 @@ function PipelineTreeMatrix({ tree, agents, getCellState, onCellClick, selectedC
|
|
|
14018
14051
|
})
|
|
14019
14052
|
});
|
|
14020
14053
|
}
|
|
14054
|
+
/**
|
|
14055
|
+
* Narrow layout: one card per agent column, each listing every step stacked
|
|
14056
|
+
* vertically. A wide fixed matrix is unusable on a phone; here the same cells
|
|
14057
|
+
* (click-to-edit, status, toggle) reflow into full-width rows so nothing scrolls
|
|
14058
|
+
* horizontally. Feature-parity with the matrix — same `onCellClick`, same
|
|
14059
|
+
* `renderCellContent`, same single-agent `onToggleEnabled`.
|
|
14060
|
+
*/
|
|
14061
|
+
function StackedCards({ rows, agents, getCellState, onCellClick, selectedCell, onToggleEnabled }) {
|
|
14062
|
+
const showToggle = onToggleEnabled !== void 0 && agents.length === 1;
|
|
14063
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
14064
|
+
className: "space-y-3",
|
|
14065
|
+
children: agents.map((a) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
14066
|
+
className: "border border-border rounded overflow-hidden",
|
|
14067
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
14068
|
+
className: "bg-muted/60 px-3 py-2 border-b border-border",
|
|
14069
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
14070
|
+
className: "text-xs font-semibold text-foreground truncate",
|
|
14071
|
+
children: a.agentNodeId
|
|
14072
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
14073
|
+
className: "text-[10px] text-foreground-subtle truncate",
|
|
14074
|
+
children: a.engineLabel
|
|
14075
|
+
})]
|
|
14076
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", { children: rows.map(({ node, depth }) => {
|
|
14077
|
+
const state = getCellState(node.addonId, a.agentNodeId);
|
|
14078
|
+
const isSelected = selectedCell?.addonId === node.addonId && selectedCell.agentNodeId === a.agentNodeId;
|
|
14079
|
+
const toggleProps = showToggle && state !== null ? {
|
|
14080
|
+
enabled: state.kind === "enabled",
|
|
14081
|
+
onChange: (next) => onToggleEnabled?.(node.addonId, next),
|
|
14082
|
+
disabled: state.kind === "na"
|
|
14083
|
+
} : void 0;
|
|
14084
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", {
|
|
14085
|
+
className: "border-b border-border last:border-b-0",
|
|
14086
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
14087
|
+
className: "flex items-center gap-2",
|
|
14088
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
14089
|
+
type: "button",
|
|
14090
|
+
onClick: () => onCellClick(node.addonId, a.agentNodeId),
|
|
14091
|
+
className: cellButtonClass(state, isSelected, "flex flex-1 min-w-0 items-start justify-between gap-3 px-3 py-2"),
|
|
14092
|
+
style: { paddingLeft: `${12 + depth * 14}px` },
|
|
14093
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(StepLabel, { node }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
14094
|
+
className: "shrink-0 max-w-[45%] pt-0.5",
|
|
14095
|
+
children: renderCellContent(state)
|
|
14096
|
+
})]
|
|
14097
|
+
}), toggleProps && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
14098
|
+
className: "pr-3 shrink-0",
|
|
14099
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(QuickToggle, {
|
|
14100
|
+
enabled: toggleProps.enabled,
|
|
14101
|
+
onChange: toggleProps.onChange,
|
|
14102
|
+
disabled: toggleProps.disabled
|
|
14103
|
+
})
|
|
14104
|
+
})]
|
|
14105
|
+
})
|
|
14106
|
+
}, node.addonId);
|
|
14107
|
+
}) })]
|
|
14108
|
+
}, a.agentNodeId))
|
|
14109
|
+
});
|
|
14110
|
+
}
|
|
14111
|
+
function PipelineTreeMatrix({ tree, agents, getCellState, onCellClick, selectedCell, onToggleEnabled }) {
|
|
14112
|
+
const rows = (0, react$1.useMemo)(() => flattenTree(tree), [tree]);
|
|
14113
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
14114
|
+
className: "@container/matrix w-full",
|
|
14115
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
14116
|
+
className: "@2xl/matrix:hidden",
|
|
14117
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StackedCards, {
|
|
14118
|
+
rows,
|
|
14119
|
+
agents,
|
|
14120
|
+
getCellState,
|
|
14121
|
+
onCellClick,
|
|
14122
|
+
selectedCell,
|
|
14123
|
+
onToggleEnabled
|
|
14124
|
+
})
|
|
14125
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
14126
|
+
className: "hidden @2xl/matrix:block",
|
|
14127
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MatrixGrid, {
|
|
14128
|
+
rows,
|
|
14129
|
+
agents,
|
|
14130
|
+
getCellState,
|
|
14131
|
+
onCellClick,
|
|
14132
|
+
selectedCell,
|
|
14133
|
+
onToggleEnabled
|
|
14134
|
+
})
|
|
14135
|
+
})]
|
|
14136
|
+
});
|
|
14137
|
+
}
|
|
14021
14138
|
//#endregion
|
|
14022
14139
|
//#region src/trpc-react.ts
|
|
14023
14140
|
/**
|
|
@@ -16925,6 +17042,12 @@ var useCoverSetPosition = trpc.cover.setPosition.useMutation;
|
|
|
16925
17042
|
var useCoverSetTiltPosition = trpc.cover.setTiltPosition.useMutation;
|
|
16926
17043
|
/** Generated alias around `trpc.cover.getStatus.useQuery`. */
|
|
16927
17044
|
var useCoverGetStatus = trpc.cover.getStatus.useQuery;
|
|
17045
|
+
/** Generated alias around `trpc.dayNight.getOptions.useQuery`. */
|
|
17046
|
+
var useDayNightGetOptions = trpc.dayNight.getOptions.useQuery;
|
|
17047
|
+
/** Generated alias around `trpc.dayNight.setSettings.useMutation`. */
|
|
17048
|
+
var useDayNightSetSettings = trpc.dayNight.setSettings.useMutation;
|
|
17049
|
+
/** Generated alias around `trpc.dayNight.getStatus.useQuery`. */
|
|
17050
|
+
var useDayNightGetStatus = trpc.dayNight.getStatus.useQuery;
|
|
16928
17051
|
/** Generated alias around `trpc.decoder.supportsCodec.useQuery`. */
|
|
16929
17052
|
var useDecoderSupportsCodec = trpc.decoder.supportsCodec.useQuery;
|
|
16930
17053
|
/** Generated alias around `trpc.decoder.getInfo.useQuery`. */
|
|
@@ -17261,6 +17384,12 @@ var useHumidifierGetStatus = trpc.humidifier.getStatus.useQuery;
|
|
|
17261
17384
|
var useHumiditySensorGetStatus = trpc.humiditySensor.getStatus.useQuery;
|
|
17262
17385
|
/** Generated alias around `trpc.image.getStatus.useQuery`. */
|
|
17263
17386
|
var useImageGetStatus = trpc.image.getStatus.useQuery;
|
|
17387
|
+
/** Generated alias around `trpc.imageSettings.getOptions.useQuery`. */
|
|
17388
|
+
var useImageSettingsGetOptions = trpc.imageSettings.getOptions.useQuery;
|
|
17389
|
+
/** Generated alias around `trpc.imageSettings.setSettings.useMutation`. */
|
|
17390
|
+
var useImageSettingsSetSettings = trpc.imageSettings.setSettings.useMutation;
|
|
17391
|
+
/** Generated alias around `trpc.imageSettings.getStatus.useQuery`. */
|
|
17392
|
+
var useImageSettingsGetStatus = trpc.imageSettings.getStatus.useQuery;
|
|
17264
17393
|
/** Generated alias around `trpc.integrations.list.useQuery`. */
|
|
17265
17394
|
var useIntegrationsList = trpc.integrations.list.useQuery;
|
|
17266
17395
|
/** Generated alias around `trpc.integrations.get.useQuery`. */
|
|
@@ -34197,11 +34326,13 @@ function parseDateInput(value) {
|
|
|
34197
34326
|
return new Date(y, m - 1, d);
|
|
34198
34327
|
}
|
|
34199
34328
|
/**
|
|
34200
|
-
* Date selector + zoom-in / zoom-out buttons for the recording
|
|
34201
|
-
* Zoom cycles through ZOOM_LEVELS (widest → narrowest), anchored on
|
|
34202
|
-
* RIGHT edge — so on today's timeline "now" stays pinned to the right
|
|
34203
|
-
* of drifting to a midday range.
|
|
34204
|
-
*
|
|
34329
|
+
* Date selector + prev/next pan + zoom-in / zoom-out buttons for the recording
|
|
34330
|
+
* timeline. Zoom cycles through ZOOM_LEVELS (widest → narrowest), anchored on
|
|
34331
|
+
* the view's RIGHT edge — so on today's timeline "now" stays pinned to the right
|
|
34332
|
+
* instead of drifting to a midday range. The ◀ / ▶ buttons step the visible
|
|
34333
|
+
* window earlier/later within the day (the discoverable equivalent of the
|
|
34334
|
+
* horizontal wheel-pan wired in RecordingTimeline), so a zoomed-in day can be
|
|
34335
|
+
* navigated back and forth without a mouse wheel.
|
|
34205
34336
|
*/
|
|
34206
34337
|
function TimelineControls({ day, onDayChange, view, dayBounds, onViewChange }) {
|
|
34207
34338
|
const handleDateChange = (e) => {
|
|
@@ -34236,6 +34367,15 @@ function TimelineControls({ day, onDayChange, view, dayBounds, onViewChange }) {
|
|
|
34236
34367
|
};
|
|
34237
34368
|
const canZoomIn = currentLevelIdx < ZOOM_LEVELS.length - 1;
|
|
34238
34369
|
const canZoomOut = currentLevelIdx > 0;
|
|
34370
|
+
const panStepMs = Math.max(1, Math.round(viewSpan * .9));
|
|
34371
|
+
const canPanPrev = view.fromMs > dayBounds.fromMs;
|
|
34372
|
+
const canPanNext = view.toMs < dayBounds.toMs;
|
|
34373
|
+
const handlePanPrev = () => {
|
|
34374
|
+
onViewChange(panWindow(view, dayBounds, -panStepMs));
|
|
34375
|
+
};
|
|
34376
|
+
const handlePanNext = () => {
|
|
34377
|
+
onViewChange(panWindow(view, dayBounds, panStepMs));
|
|
34378
|
+
};
|
|
34239
34379
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
34240
34380
|
className: "flex items-center gap-2",
|
|
34241
34381
|
children: [
|
|
@@ -34249,23 +34389,48 @@ function TimelineControls({ day, onDayChange, view, dayBounds, onViewChange }) {
|
|
|
34249
34389
|
}),
|
|
34250
34390
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
34251
34391
|
className: "ml-auto flex items-center gap-1",
|
|
34252
|
-
children: [
|
|
34253
|
-
|
|
34254
|
-
|
|
34255
|
-
|
|
34256
|
-
|
|
34257
|
-
|
|
34258
|
-
|
|
34259
|
-
|
|
34260
|
-
|
|
34261
|
-
|
|
34262
|
-
|
|
34263
|
-
|
|
34264
|
-
|
|
34265
|
-
|
|
34266
|
-
|
|
34267
|
-
|
|
34268
|
-
|
|
34392
|
+
children: [
|
|
34393
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
34394
|
+
type: "button",
|
|
34395
|
+
onClick: handlePanPrev,
|
|
34396
|
+
disabled: !canPanPrev,
|
|
34397
|
+
title: "Earlier (pan back)",
|
|
34398
|
+
"aria-label": "Pan earlier",
|
|
34399
|
+
className: "rounded p-1 text-foreground-subtle transition-colors hover:bg-background/60 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40",
|
|
34400
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChevronLeft, { size: 14 })
|
|
34401
|
+
}),
|
|
34402
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
34403
|
+
type: "button",
|
|
34404
|
+
onClick: handlePanNext,
|
|
34405
|
+
disabled: !canPanNext,
|
|
34406
|
+
title: "Later (pan forward)",
|
|
34407
|
+
"aria-label": "Pan later",
|
|
34408
|
+
className: "rounded p-1 text-foreground-subtle transition-colors hover:bg-background/60 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40",
|
|
34409
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChevronRight, { size: 14 })
|
|
34410
|
+
}),
|
|
34411
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
34412
|
+
className: "mx-0.5 h-3 w-px bg-border",
|
|
34413
|
+
"aria-hidden": "true"
|
|
34414
|
+
}),
|
|
34415
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
34416
|
+
type: "button",
|
|
34417
|
+
onClick: handleZoomOut,
|
|
34418
|
+
disabled: !canZoomOut,
|
|
34419
|
+
title: "Zoom out",
|
|
34420
|
+
"aria-label": "Zoom out",
|
|
34421
|
+
className: "rounded p-1 text-foreground-subtle transition-colors hover:bg-background/60 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40",
|
|
34422
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ZoomOut, { size: 13 })
|
|
34423
|
+
}),
|
|
34424
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
34425
|
+
type: "button",
|
|
34426
|
+
onClick: handleZoomIn,
|
|
34427
|
+
disabled: !canZoomIn,
|
|
34428
|
+
title: "Zoom in",
|
|
34429
|
+
"aria-label": "Zoom in",
|
|
34430
|
+
className: "rounded p-1 text-foreground-subtle transition-colors hover:bg-background/60 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40",
|
|
34431
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ZoomIn, { size: 13 })
|
|
34432
|
+
})
|
|
34433
|
+
]
|
|
34269
34434
|
}),
|
|
34270
34435
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
34271
34436
|
className: "text-[9px] text-foreground-subtle",
|
|
@@ -41192,7 +41357,6 @@ var LEVEL_SEVERITY = {
|
|
|
41192
41357
|
error: 3
|
|
41193
41358
|
};
|
|
41194
41359
|
var LEVEL_OPTIONS = [
|
|
41195
|
-
"all",
|
|
41196
41360
|
"debug",
|
|
41197
41361
|
"info",
|
|
41198
41362
|
"warn",
|
|
@@ -41207,7 +41371,7 @@ function passesLevel(logLevel, filterLevel) {
|
|
|
41207
41371
|
function LogStream({ agentId: propsAgentId, addonId: propsAddonId, deviceId: propsDeviceId, containerDeviceId: propsContainerDeviceId, integrationId: propsIntegrationId, requestId: propsRequestId, level: initialLevel, maxHeight = "max-h-96", showScope = false, showFilters = true, limit = 100, liveBuffer: externalBuffer, onClose, className }) {
|
|
41208
41372
|
const [localAddonId, setLocalAddonId] = (0, react$1.useState)("");
|
|
41209
41373
|
const [localDeviceId, setLocalDeviceId] = (0, react$1.useState)("");
|
|
41210
|
-
const [levelFilter, setLevelFilter] = (0, react$1.useState)(initialLevel);
|
|
41374
|
+
const [levelFilter, setLevelFilter] = (0, react$1.useState)(initialLevel ?? "info");
|
|
41211
41375
|
const agentId = propsAgentId;
|
|
41212
41376
|
const addonId = propsAddonId ?? (localAddonId || void 0);
|
|
41213
41377
|
const deviceId = propsDeviceId ?? (localDeviceId ? Number(localDeviceId) : void 0);
|
|
@@ -41408,11 +41572,11 @@ function LogStream({ agentId: propsAgentId, addonId: propsAddonId, deviceId: pro
|
|
|
41408
41572
|
}),
|
|
41409
41573
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
41410
41574
|
className: "flex rounded border border-border overflow-hidden text-[9px]",
|
|
41411
|
-
children: LEVEL_OPTIONS.map((l) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
41575
|
+
children: LEVEL_OPTIONS.map((l, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
41412
41576
|
type: "button",
|
|
41413
|
-
onClick: () => setLevelFilter(l
|
|
41414
|
-
className: cn("px-1.5 py-0.5 capitalize transition-colors",
|
|
41415
|
-
children: [l,
|
|
41577
|
+
onClick: () => setLevelFilter(l),
|
|
41578
|
+
className: cn("px-1.5 py-0.5 capitalize transition-colors", levelFilter === l ? "bg-primary/10 text-primary" : "text-foreground-subtle hover:bg-surface-hover", i > 0 && "border-l border-border"),
|
|
41579
|
+
children: [l, "+"]
|
|
41416
41580
|
}, l))
|
|
41417
41581
|
}),
|
|
41418
41582
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ToolbarButton, {
|
|
@@ -45337,6 +45501,9 @@ exports.useCoverSetPosition = useCoverSetPosition;
|
|
|
45337
45501
|
exports.useCoverSetTiltPosition = useCoverSetTiltPosition;
|
|
45338
45502
|
exports.useCoverStop = useCoverStop;
|
|
45339
45503
|
exports.useCustomFieldRenderer = useCustomFieldRenderer;
|
|
45504
|
+
exports.useDayNightGetOptions = useDayNightGetOptions;
|
|
45505
|
+
exports.useDayNightGetStatus = useDayNightGetStatus;
|
|
45506
|
+
exports.useDayNightSetSettings = useDayNightSetSettings;
|
|
45340
45507
|
exports.useDebouncedString = useDebouncedString;
|
|
45341
45508
|
exports.useDecoderCreateSession = useDecoderCreateSession;
|
|
45342
45509
|
exports.useDecoderDestroySession = useDecoderDestroySession;
|
|
@@ -45527,6 +45694,9 @@ exports.useHumidifierSetOn = useHumidifierSetOn;
|
|
|
45527
45694
|
exports.useHumidifierSetTargetHumidity = useHumidifierSetTargetHumidity;
|
|
45528
45695
|
exports.useHumiditySensorGetStatus = useHumiditySensorGetStatus;
|
|
45529
45696
|
exports.useImageGetStatus = useImageGetStatus;
|
|
45697
|
+
exports.useImageSettingsGetOptions = useImageSettingsGetOptions;
|
|
45698
|
+
exports.useImageSettingsGetStatus = useImageSettingsGetStatus;
|
|
45699
|
+
exports.useImageSettingsSetSettings = useImageSettingsSetSettings;
|
|
45530
45700
|
exports.useIntegrationsCreate = useIntegrationsCreate;
|
|
45531
45701
|
exports.useIntegrationsDelete = useIntegrationsDelete;
|
|
45532
45702
|
exports.useIntegrationsGet = useIntegrationsGet;
|
package/dist/index.js
CHANGED
|
@@ -13818,6 +13818,17 @@ function AgentStepEditor(props) {
|
|
|
13818
13818
|
}
|
|
13819
13819
|
//#endregion
|
|
13820
13820
|
//#region src/composites/pipeline-tree-matrix.tsx
|
|
13821
|
+
/**
|
|
13822
|
+
* Fixed column geometry (rem). The matrix uses a CSS grid with STATIC track
|
|
13823
|
+
* widths so a cell's content (a status chip, a long model id) can never resize
|
|
13824
|
+
* a column or shift its neighbours — cell content is truncated WITHIN the fixed
|
|
13825
|
+
* track instead. This kills the "table dances when the last column's status
|
|
13826
|
+
* changes" jitter. See `min-w-0` on every grid child, which lets the child
|
|
13827
|
+
* shrink to the track (a grid item's automatic minimum is its content size, so
|
|
13828
|
+
* without this a non-wrapping model id would blow the track wider than its max).
|
|
13829
|
+
*/
|
|
13830
|
+
var STEP_COL_REM = 18;
|
|
13831
|
+
var AGENT_COL_REM = 13;
|
|
13821
13832
|
function flattenTree(nodes) {
|
|
13822
13833
|
const out = [];
|
|
13823
13834
|
const walk = (list, depth) => {
|
|
@@ -13897,40 +13908,58 @@ function QuickToggle({ enabled, onChange, disabled }) {
|
|
|
13897
13908
|
children: /* @__PURE__ */ jsx("span", { className: cn("inline-block h-3 w-3 rounded-full bg-white shadow transition-transform", enabled ? "translate-x-3.5" : "translate-x-0.5") })
|
|
13898
13909
|
});
|
|
13899
13910
|
}
|
|
13911
|
+
/**
|
|
13912
|
+
* Cell content. Kept width-stable: the status dot is `shrink-0` (reserved
|
|
13913
|
+
* space) and the model id truncates inside a `min-w-0` flex row, so a longer
|
|
13914
|
+
* model id never widens the cell — it ellipsises instead.
|
|
13915
|
+
*/
|
|
13900
13916
|
function renderCellContent(state) {
|
|
13901
13917
|
if (state.kind === "enabled") return /* @__PURE__ */ jsxs("span", {
|
|
13902
|
-
className: "
|
|
13918
|
+
className: "flex min-w-0 items-center gap-1",
|
|
13903
13919
|
children: [/* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-emerald-500 shrink-0" }), /* @__PURE__ */ jsx("span", {
|
|
13904
|
-
className: "font-mono text-foreground",
|
|
13920
|
+
className: "font-mono text-foreground truncate",
|
|
13905
13921
|
children: state.modelId
|
|
13906
13922
|
})]
|
|
13907
13923
|
});
|
|
13908
13924
|
if (state.kind === "disabled") return /* @__PURE__ */ jsxs("span", {
|
|
13909
|
-
className: "
|
|
13910
|
-
children: [/* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 rounded-full border border-foreground-subtle/60 shrink-0" }), "
|
|
13925
|
+
className: "flex min-w-0 items-center gap-1 text-foreground-subtle",
|
|
13926
|
+
children: [/* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 rounded-full border border-foreground-subtle/60 shrink-0" }), /* @__PURE__ */ jsx("span", {
|
|
13927
|
+
className: "truncate",
|
|
13928
|
+
children: "off"
|
|
13929
|
+
})]
|
|
13911
13930
|
});
|
|
13912
13931
|
return /* @__PURE__ */ jsxs("span", {
|
|
13913
|
-
className: "
|
|
13914
|
-
children: [/* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-muted shrink-0" }), "
|
|
13932
|
+
className: "flex min-w-0 items-center gap-1 text-foreground-subtle/70",
|
|
13933
|
+
children: [/* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-muted shrink-0" }), /* @__PURE__ */ jsx("span", {
|
|
13934
|
+
className: "truncate",
|
|
13935
|
+
children: "n/a"
|
|
13936
|
+
})]
|
|
13915
13937
|
});
|
|
13916
13938
|
}
|
|
13917
|
-
function
|
|
13939
|
+
function cellButtonClass(state, isSelected, extra) {
|
|
13940
|
+
return cn("text-left text-xs hover:bg-muted/40", state.kind === "enabled" && "bg-emerald-500/5", state.kind === "na" && "bg-muted/30", isSelected && "ring-2 ring-primary ring-inset", extra);
|
|
13941
|
+
}
|
|
13942
|
+
/** Step label (slot heading + addon name + class chips), shared by both views. */
|
|
13943
|
+
function StepLabel({ node }) {
|
|
13944
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
13945
|
+
className: "flex flex-col gap-1 min-w-0 flex-1",
|
|
13946
|
+
children: [/* @__PURE__ */ jsx(SlotHeading, { slot: node.slot }), /* @__PURE__ */ jsxs("div", {
|
|
13947
|
+
className: "flex items-center gap-2 flex-wrap",
|
|
13948
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
13949
|
+
className: "font-semibold truncate",
|
|
13950
|
+
children: node.addonName
|
|
13951
|
+
}), /* @__PURE__ */ jsx(ClassChips, {
|
|
13952
|
+
inputs: node.inputClasses,
|
|
13953
|
+
outputs: node.outputClasses
|
|
13954
|
+
})]
|
|
13955
|
+
})]
|
|
13956
|
+
});
|
|
13957
|
+
}
|
|
13958
|
+
function GridRow({ node, depth, agents, getCellState, onCellClick, selectedCell, toggleProps }) {
|
|
13918
13959
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs("div", {
|
|
13919
|
-
className: "sticky left-0 z-10 bg-surface px-3 py-2 border-b border-border text-xs flex items-start gap-2",
|
|
13960
|
+
className: "sticky left-0 z-10 bg-surface px-3 py-2 border-b border-border text-xs flex items-start gap-2 min-w-0",
|
|
13920
13961
|
style: { paddingLeft: `${12 + depth * 14}px` },
|
|
13921
|
-
children: [/* @__PURE__ */
|
|
13922
|
-
className: "flex flex-col gap-1 min-w-0 flex-1",
|
|
13923
|
-
children: [/* @__PURE__ */ jsx(SlotHeading, { slot: node.slot }), /* @__PURE__ */ jsxs("div", {
|
|
13924
|
-
className: "flex items-center gap-2 flex-wrap",
|
|
13925
|
-
children: [/* @__PURE__ */ jsx("span", {
|
|
13926
|
-
className: "font-semibold truncate",
|
|
13927
|
-
children: node.addonName
|
|
13928
|
-
}), /* @__PURE__ */ jsx(ClassChips, {
|
|
13929
|
-
inputs: node.inputClasses,
|
|
13930
|
-
outputs: node.outputClasses
|
|
13931
|
-
})]
|
|
13932
|
-
})]
|
|
13933
|
-
}), toggleProps && /* @__PURE__ */ jsx("span", {
|
|
13962
|
+
children: [/* @__PURE__ */ jsx(StepLabel, { node }), toggleProps && /* @__PURE__ */ jsx("span", {
|
|
13934
13963
|
className: "pl-2 pt-0.5 shrink-0",
|
|
13935
13964
|
children: /* @__PURE__ */ jsx(QuickToggle, {
|
|
13936
13965
|
enabled: toggleProps.enabled,
|
|
@@ -13940,24 +13969,28 @@ function Row({ node, depth, agents, getCellState, onCellClick, selectedCell, tog
|
|
|
13940
13969
|
})]
|
|
13941
13970
|
}), agents.map((a) => {
|
|
13942
13971
|
const state = getCellState(node.addonId, a.agentNodeId);
|
|
13943
|
-
const isSelected = selectedCell?.addonId === node.addonId && selectedCell.agentNodeId === a.agentNodeId;
|
|
13944
13972
|
return /* @__PURE__ */ jsx("button", {
|
|
13945
13973
|
type: "button",
|
|
13946
13974
|
onClick: () => onCellClick(node.addonId, a.agentNodeId),
|
|
13947
|
-
className:
|
|
13975
|
+
className: cellButtonClass(state, selectedCell?.addonId === node.addonId && selectedCell.agentNodeId === a.agentNodeId, "min-w-0 overflow-hidden px-3 py-1.5 border-b border-l border-border"),
|
|
13948
13976
|
children: renderCellContent(state)
|
|
13949
13977
|
}, a.agentNodeId);
|
|
13950
13978
|
})] });
|
|
13951
13979
|
}
|
|
13952
|
-
|
|
13953
|
-
|
|
13954
|
-
|
|
13980
|
+
/**
|
|
13981
|
+
* Wide layout: horizontally self-scrolling matrix. The scroll lives INSIDE
|
|
13982
|
+
* this `overflow-auto` box (sticky first column + sticky header row) so the
|
|
13983
|
+
* page body never scrolls sideways. Column tracks are fixed px widths — see
|
|
13984
|
+
* STEP_COL_REM / AGENT_COL_REM — so the grid is static regardless of content.
|
|
13985
|
+
*/
|
|
13986
|
+
function MatrixGrid({ rows, agents, getCellState, onCellClick, selectedCell, onToggleEnabled }) {
|
|
13987
|
+
const gridTemplate = `${STEP_COL_REM}rem repeat(${agents.length}, ${AGENT_COL_REM}rem)`;
|
|
13955
13988
|
const showToggle = onToggleEnabled !== void 0 && agents.length === 1;
|
|
13956
13989
|
const onlyAgent = agents[0]?.agentNodeId;
|
|
13957
13990
|
return /* @__PURE__ */ jsx("div", {
|
|
13958
13991
|
className: "overflow-auto border border-border rounded",
|
|
13959
13992
|
children: /* @__PURE__ */ jsxs("div", {
|
|
13960
|
-
className: "grid",
|
|
13993
|
+
className: "grid w-max",
|
|
13961
13994
|
style: { gridTemplateColumns: gridTemplate },
|
|
13962
13995
|
children: [
|
|
13963
13996
|
/* @__PURE__ */ jsx("div", {
|
|
@@ -13965,9 +13998,9 @@ function PipelineTreeMatrix({ tree, agents, getCellState, onCellClick, selectedC
|
|
|
13965
13998
|
children: "Step"
|
|
13966
13999
|
}),
|
|
13967
14000
|
agents.map((a) => /* @__PURE__ */ jsxs("div", {
|
|
13968
|
-
className: "sticky top-0 z-10 bg-muted/60 px-3 py-2 border-b border-l border-border",
|
|
14001
|
+
className: "sticky top-0 z-10 min-w-0 bg-muted/60 px-3 py-2 border-b border-l border-border",
|
|
13969
14002
|
children: [/* @__PURE__ */ jsx("div", {
|
|
13970
|
-
className: "text-xs font-semibold text-foreground",
|
|
14003
|
+
className: "text-xs font-semibold text-foreground truncate",
|
|
13971
14004
|
children: a.agentNodeId
|
|
13972
14005
|
}), /* @__PURE__ */ jsx("div", {
|
|
13973
14006
|
className: "text-[10px] text-foreground-subtle truncate",
|
|
@@ -13976,7 +14009,7 @@ function PipelineTreeMatrix({ tree, agents, getCellState, onCellClick, selectedC
|
|
|
13976
14009
|
}, a.agentNodeId)),
|
|
13977
14010
|
rows.map(({ node, depth }) => {
|
|
13978
14011
|
const cellState = showToggle && onlyAgent !== void 0 ? getCellState(node.addonId, onlyAgent) : null;
|
|
13979
|
-
return /* @__PURE__ */ jsx(
|
|
14012
|
+
return /* @__PURE__ */ jsx(GridRow, {
|
|
13980
14013
|
node,
|
|
13981
14014
|
depth,
|
|
13982
14015
|
agents,
|
|
@@ -13994,6 +14027,90 @@ function PipelineTreeMatrix({ tree, agents, getCellState, onCellClick, selectedC
|
|
|
13994
14027
|
})
|
|
13995
14028
|
});
|
|
13996
14029
|
}
|
|
14030
|
+
/**
|
|
14031
|
+
* Narrow layout: one card per agent column, each listing every step stacked
|
|
14032
|
+
* vertically. A wide fixed matrix is unusable on a phone; here the same cells
|
|
14033
|
+
* (click-to-edit, status, toggle) reflow into full-width rows so nothing scrolls
|
|
14034
|
+
* horizontally. Feature-parity with the matrix — same `onCellClick`, same
|
|
14035
|
+
* `renderCellContent`, same single-agent `onToggleEnabled`.
|
|
14036
|
+
*/
|
|
14037
|
+
function StackedCards({ rows, agents, getCellState, onCellClick, selectedCell, onToggleEnabled }) {
|
|
14038
|
+
const showToggle = onToggleEnabled !== void 0 && agents.length === 1;
|
|
14039
|
+
return /* @__PURE__ */ jsx("div", {
|
|
14040
|
+
className: "space-y-3",
|
|
14041
|
+
children: agents.map((a) => /* @__PURE__ */ jsxs("div", {
|
|
14042
|
+
className: "border border-border rounded overflow-hidden",
|
|
14043
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
14044
|
+
className: "bg-muted/60 px-3 py-2 border-b border-border",
|
|
14045
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
14046
|
+
className: "text-xs font-semibold text-foreground truncate",
|
|
14047
|
+
children: a.agentNodeId
|
|
14048
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
14049
|
+
className: "text-[10px] text-foreground-subtle truncate",
|
|
14050
|
+
children: a.engineLabel
|
|
14051
|
+
})]
|
|
14052
|
+
}), /* @__PURE__ */ jsx("ul", { children: rows.map(({ node, depth }) => {
|
|
14053
|
+
const state = getCellState(node.addonId, a.agentNodeId);
|
|
14054
|
+
const isSelected = selectedCell?.addonId === node.addonId && selectedCell.agentNodeId === a.agentNodeId;
|
|
14055
|
+
const toggleProps = showToggle && state !== null ? {
|
|
14056
|
+
enabled: state.kind === "enabled",
|
|
14057
|
+
onChange: (next) => onToggleEnabled?.(node.addonId, next),
|
|
14058
|
+
disabled: state.kind === "na"
|
|
14059
|
+
} : void 0;
|
|
14060
|
+
return /* @__PURE__ */ jsx("li", {
|
|
14061
|
+
className: "border-b border-border last:border-b-0",
|
|
14062
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
14063
|
+
className: "flex items-center gap-2",
|
|
14064
|
+
children: [/* @__PURE__ */ jsxs("button", {
|
|
14065
|
+
type: "button",
|
|
14066
|
+
onClick: () => onCellClick(node.addonId, a.agentNodeId),
|
|
14067
|
+
className: cellButtonClass(state, isSelected, "flex flex-1 min-w-0 items-start justify-between gap-3 px-3 py-2"),
|
|
14068
|
+
style: { paddingLeft: `${12 + depth * 14}px` },
|
|
14069
|
+
children: [/* @__PURE__ */ jsx(StepLabel, { node }), /* @__PURE__ */ jsx("span", {
|
|
14070
|
+
className: "shrink-0 max-w-[45%] pt-0.5",
|
|
14071
|
+
children: renderCellContent(state)
|
|
14072
|
+
})]
|
|
14073
|
+
}), toggleProps && /* @__PURE__ */ jsx("span", {
|
|
14074
|
+
className: "pr-3 shrink-0",
|
|
14075
|
+
children: /* @__PURE__ */ jsx(QuickToggle, {
|
|
14076
|
+
enabled: toggleProps.enabled,
|
|
14077
|
+
onChange: toggleProps.onChange,
|
|
14078
|
+
disabled: toggleProps.disabled
|
|
14079
|
+
})
|
|
14080
|
+
})]
|
|
14081
|
+
})
|
|
14082
|
+
}, node.addonId);
|
|
14083
|
+
}) })]
|
|
14084
|
+
}, a.agentNodeId))
|
|
14085
|
+
});
|
|
14086
|
+
}
|
|
14087
|
+
function PipelineTreeMatrix({ tree, agents, getCellState, onCellClick, selectedCell, onToggleEnabled }) {
|
|
14088
|
+
const rows = useMemo(() => flattenTree(tree), [tree]);
|
|
14089
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
14090
|
+
className: "@container/matrix w-full",
|
|
14091
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
14092
|
+
className: "@2xl/matrix:hidden",
|
|
14093
|
+
children: /* @__PURE__ */ jsx(StackedCards, {
|
|
14094
|
+
rows,
|
|
14095
|
+
agents,
|
|
14096
|
+
getCellState,
|
|
14097
|
+
onCellClick,
|
|
14098
|
+
selectedCell,
|
|
14099
|
+
onToggleEnabled
|
|
14100
|
+
})
|
|
14101
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
14102
|
+
className: "hidden @2xl/matrix:block",
|
|
14103
|
+
children: /* @__PURE__ */ jsx(MatrixGrid, {
|
|
14104
|
+
rows,
|
|
14105
|
+
agents,
|
|
14106
|
+
getCellState,
|
|
14107
|
+
onCellClick,
|
|
14108
|
+
selectedCell,
|
|
14109
|
+
onToggleEnabled
|
|
14110
|
+
})
|
|
14111
|
+
})]
|
|
14112
|
+
});
|
|
14113
|
+
}
|
|
13997
14114
|
//#endregion
|
|
13998
14115
|
//#region src/trpc-react.ts
|
|
13999
14116
|
/**
|
|
@@ -16901,6 +17018,12 @@ var useCoverSetPosition = trpc.cover.setPosition.useMutation;
|
|
|
16901
17018
|
var useCoverSetTiltPosition = trpc.cover.setTiltPosition.useMutation;
|
|
16902
17019
|
/** Generated alias around `trpc.cover.getStatus.useQuery`. */
|
|
16903
17020
|
var useCoverGetStatus = trpc.cover.getStatus.useQuery;
|
|
17021
|
+
/** Generated alias around `trpc.dayNight.getOptions.useQuery`. */
|
|
17022
|
+
var useDayNightGetOptions = trpc.dayNight.getOptions.useQuery;
|
|
17023
|
+
/** Generated alias around `trpc.dayNight.setSettings.useMutation`. */
|
|
17024
|
+
var useDayNightSetSettings = trpc.dayNight.setSettings.useMutation;
|
|
17025
|
+
/** Generated alias around `trpc.dayNight.getStatus.useQuery`. */
|
|
17026
|
+
var useDayNightGetStatus = trpc.dayNight.getStatus.useQuery;
|
|
16904
17027
|
/** Generated alias around `trpc.decoder.supportsCodec.useQuery`. */
|
|
16905
17028
|
var useDecoderSupportsCodec = trpc.decoder.supportsCodec.useQuery;
|
|
16906
17029
|
/** Generated alias around `trpc.decoder.getInfo.useQuery`. */
|
|
@@ -17237,6 +17360,12 @@ var useHumidifierGetStatus = trpc.humidifier.getStatus.useQuery;
|
|
|
17237
17360
|
var useHumiditySensorGetStatus = trpc.humiditySensor.getStatus.useQuery;
|
|
17238
17361
|
/** Generated alias around `trpc.image.getStatus.useQuery`. */
|
|
17239
17362
|
var useImageGetStatus = trpc.image.getStatus.useQuery;
|
|
17363
|
+
/** Generated alias around `trpc.imageSettings.getOptions.useQuery`. */
|
|
17364
|
+
var useImageSettingsGetOptions = trpc.imageSettings.getOptions.useQuery;
|
|
17365
|
+
/** Generated alias around `trpc.imageSettings.setSettings.useMutation`. */
|
|
17366
|
+
var useImageSettingsSetSettings = trpc.imageSettings.setSettings.useMutation;
|
|
17367
|
+
/** Generated alias around `trpc.imageSettings.getStatus.useQuery`. */
|
|
17368
|
+
var useImageSettingsGetStatus = trpc.imageSettings.getStatus.useQuery;
|
|
17240
17369
|
/** Generated alias around `trpc.integrations.list.useQuery`. */
|
|
17241
17370
|
var useIntegrationsList = trpc.integrations.list.useQuery;
|
|
17242
17371
|
/** Generated alias around `trpc.integrations.get.useQuery`. */
|
|
@@ -34173,11 +34302,13 @@ function parseDateInput(value) {
|
|
|
34173
34302
|
return new Date(y, m - 1, d);
|
|
34174
34303
|
}
|
|
34175
34304
|
/**
|
|
34176
|
-
* Date selector + zoom-in / zoom-out buttons for the recording
|
|
34177
|
-
* Zoom cycles through ZOOM_LEVELS (widest → narrowest), anchored on
|
|
34178
|
-
* RIGHT edge — so on today's timeline "now" stays pinned to the right
|
|
34179
|
-
* of drifting to a midday range.
|
|
34180
|
-
*
|
|
34305
|
+
* Date selector + prev/next pan + zoom-in / zoom-out buttons for the recording
|
|
34306
|
+
* timeline. Zoom cycles through ZOOM_LEVELS (widest → narrowest), anchored on
|
|
34307
|
+
* the view's RIGHT edge — so on today's timeline "now" stays pinned to the right
|
|
34308
|
+
* instead of drifting to a midday range. The ◀ / ▶ buttons step the visible
|
|
34309
|
+
* window earlier/later within the day (the discoverable equivalent of the
|
|
34310
|
+
* horizontal wheel-pan wired in RecordingTimeline), so a zoomed-in day can be
|
|
34311
|
+
* navigated back and forth without a mouse wheel.
|
|
34181
34312
|
*/
|
|
34182
34313
|
function TimelineControls({ day, onDayChange, view, dayBounds, onViewChange }) {
|
|
34183
34314
|
const handleDateChange = (e) => {
|
|
@@ -34212,6 +34343,15 @@ function TimelineControls({ day, onDayChange, view, dayBounds, onViewChange }) {
|
|
|
34212
34343
|
};
|
|
34213
34344
|
const canZoomIn = currentLevelIdx < ZOOM_LEVELS.length - 1;
|
|
34214
34345
|
const canZoomOut = currentLevelIdx > 0;
|
|
34346
|
+
const panStepMs = Math.max(1, Math.round(viewSpan * .9));
|
|
34347
|
+
const canPanPrev = view.fromMs > dayBounds.fromMs;
|
|
34348
|
+
const canPanNext = view.toMs < dayBounds.toMs;
|
|
34349
|
+
const handlePanPrev = () => {
|
|
34350
|
+
onViewChange(panWindow(view, dayBounds, -panStepMs));
|
|
34351
|
+
};
|
|
34352
|
+
const handlePanNext = () => {
|
|
34353
|
+
onViewChange(panWindow(view, dayBounds, panStepMs));
|
|
34354
|
+
};
|
|
34215
34355
|
return /* @__PURE__ */ jsxs("div", {
|
|
34216
34356
|
className: "flex items-center gap-2",
|
|
34217
34357
|
children: [
|
|
@@ -34225,23 +34365,48 @@ function TimelineControls({ day, onDayChange, view, dayBounds, onViewChange }) {
|
|
|
34225
34365
|
}),
|
|
34226
34366
|
/* @__PURE__ */ jsxs("div", {
|
|
34227
34367
|
className: "ml-auto flex items-center gap-1",
|
|
34228
|
-
children: [
|
|
34229
|
-
|
|
34230
|
-
|
|
34231
|
-
|
|
34232
|
-
|
|
34233
|
-
|
|
34234
|
-
|
|
34235
|
-
|
|
34236
|
-
|
|
34237
|
-
|
|
34238
|
-
|
|
34239
|
-
|
|
34240
|
-
|
|
34241
|
-
|
|
34242
|
-
|
|
34243
|
-
|
|
34244
|
-
|
|
34368
|
+
children: [
|
|
34369
|
+
/* @__PURE__ */ jsx("button", {
|
|
34370
|
+
type: "button",
|
|
34371
|
+
onClick: handlePanPrev,
|
|
34372
|
+
disabled: !canPanPrev,
|
|
34373
|
+
title: "Earlier (pan back)",
|
|
34374
|
+
"aria-label": "Pan earlier",
|
|
34375
|
+
className: "rounded p-1 text-foreground-subtle transition-colors hover:bg-background/60 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40",
|
|
34376
|
+
children: /* @__PURE__ */ jsx(ChevronLeft, { size: 14 })
|
|
34377
|
+
}),
|
|
34378
|
+
/* @__PURE__ */ jsx("button", {
|
|
34379
|
+
type: "button",
|
|
34380
|
+
onClick: handlePanNext,
|
|
34381
|
+
disabled: !canPanNext,
|
|
34382
|
+
title: "Later (pan forward)",
|
|
34383
|
+
"aria-label": "Pan later",
|
|
34384
|
+
className: "rounded p-1 text-foreground-subtle transition-colors hover:bg-background/60 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40",
|
|
34385
|
+
children: /* @__PURE__ */ jsx(ChevronRight, { size: 14 })
|
|
34386
|
+
}),
|
|
34387
|
+
/* @__PURE__ */ jsx("span", {
|
|
34388
|
+
className: "mx-0.5 h-3 w-px bg-border",
|
|
34389
|
+
"aria-hidden": "true"
|
|
34390
|
+
}),
|
|
34391
|
+
/* @__PURE__ */ jsx("button", {
|
|
34392
|
+
type: "button",
|
|
34393
|
+
onClick: handleZoomOut,
|
|
34394
|
+
disabled: !canZoomOut,
|
|
34395
|
+
title: "Zoom out",
|
|
34396
|
+
"aria-label": "Zoom out",
|
|
34397
|
+
className: "rounded p-1 text-foreground-subtle transition-colors hover:bg-background/60 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40",
|
|
34398
|
+
children: /* @__PURE__ */ jsx(ZoomOut, { size: 13 })
|
|
34399
|
+
}),
|
|
34400
|
+
/* @__PURE__ */ jsx("button", {
|
|
34401
|
+
type: "button",
|
|
34402
|
+
onClick: handleZoomIn,
|
|
34403
|
+
disabled: !canZoomIn,
|
|
34404
|
+
title: "Zoom in",
|
|
34405
|
+
"aria-label": "Zoom in",
|
|
34406
|
+
className: "rounded p-1 text-foreground-subtle transition-colors hover:bg-background/60 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40",
|
|
34407
|
+
children: /* @__PURE__ */ jsx(ZoomIn, { size: 13 })
|
|
34408
|
+
})
|
|
34409
|
+
]
|
|
34245
34410
|
}),
|
|
34246
34411
|
/* @__PURE__ */ jsx("span", {
|
|
34247
34412
|
className: "text-[9px] text-foreground-subtle",
|
|
@@ -41168,7 +41333,6 @@ var LEVEL_SEVERITY = {
|
|
|
41168
41333
|
error: 3
|
|
41169
41334
|
};
|
|
41170
41335
|
var LEVEL_OPTIONS = [
|
|
41171
|
-
"all",
|
|
41172
41336
|
"debug",
|
|
41173
41337
|
"info",
|
|
41174
41338
|
"warn",
|
|
@@ -41183,7 +41347,7 @@ function passesLevel(logLevel, filterLevel) {
|
|
|
41183
41347
|
function LogStream({ agentId: propsAgentId, addonId: propsAddonId, deviceId: propsDeviceId, containerDeviceId: propsContainerDeviceId, integrationId: propsIntegrationId, requestId: propsRequestId, level: initialLevel, maxHeight = "max-h-96", showScope = false, showFilters = true, limit = 100, liveBuffer: externalBuffer, onClose, className }) {
|
|
41184
41348
|
const [localAddonId, setLocalAddonId] = useState("");
|
|
41185
41349
|
const [localDeviceId, setLocalDeviceId] = useState("");
|
|
41186
|
-
const [levelFilter, setLevelFilter] = useState(initialLevel);
|
|
41350
|
+
const [levelFilter, setLevelFilter] = useState(initialLevel ?? "info");
|
|
41187
41351
|
const agentId = propsAgentId;
|
|
41188
41352
|
const addonId = propsAddonId ?? (localAddonId || void 0);
|
|
41189
41353
|
const deviceId = propsDeviceId ?? (localDeviceId ? Number(localDeviceId) : void 0);
|
|
@@ -41384,11 +41548,11 @@ function LogStream({ agentId: propsAgentId, addonId: propsAddonId, deviceId: pro
|
|
|
41384
41548
|
}),
|
|
41385
41549
|
/* @__PURE__ */ jsx("div", {
|
|
41386
41550
|
className: "flex rounded border border-border overflow-hidden text-[9px]",
|
|
41387
|
-
children: LEVEL_OPTIONS.map((l) => /* @__PURE__ */ jsxs("button", {
|
|
41551
|
+
children: LEVEL_OPTIONS.map((l, i) => /* @__PURE__ */ jsxs("button", {
|
|
41388
41552
|
type: "button",
|
|
41389
|
-
onClick: () => setLevelFilter(l
|
|
41390
|
-
className: cn("px-1.5 py-0.5 capitalize transition-colors",
|
|
41391
|
-
children: [l,
|
|
41553
|
+
onClick: () => setLevelFilter(l),
|
|
41554
|
+
className: cn("px-1.5 py-0.5 capitalize transition-colors", levelFilter === l ? "bg-primary/10 text-primary" : "text-foreground-subtle hover:bg-surface-hover", i > 0 && "border-l border-border"),
|
|
41555
|
+
children: [l, "+"]
|
|
41392
41556
|
}, l))
|
|
41393
41557
|
}),
|
|
41394
41558
|
/* @__PURE__ */ jsx(ToolbarButton, {
|
|
@@ -44854,4 +45018,4 @@ var MotionZonesSettings = lazy(() => import("./MotionZonesSettings-NcxxQN8r.js")
|
|
|
44854
45018
|
/** Lazy-wrapped `PrivacyMaskSettings` — code-split off the main bundle. */
|
|
44855
45019
|
var PrivacyMaskSettings = lazy(() => import("./PrivacyMaskSettings-APgPLF7p.js").then((m) => ({ default: m.PrivacyMaskSettings })));
|
|
44856
45020
|
//#endregion
|
|
44857
|
-
export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, CENTER, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, Checkbox, ChildSectionAccordion, ClimatePanel, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, CustomFieldRenderersProvider, DEFAULT_COLOR, DEVICE_COLUMNS, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceGrid, DeviceItem, DeviceList, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EmptyState, ErrorBox, EventStream, FILL, FanHeroCard, FanInlineControl, FanPanel, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, FormField$1 as FormField, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GripTrack, HOST_WIDGETS, HlsVideo, HoverZoomImage, HumidifierHeroCard, HumidifierInlineControl, INPUT_COMPACT, IconAction, IconButton, ImageHeroCard, ImageInlineControl, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LightHeroCard, LightInlineControl, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, MODE_COLOR, MaskShapeCanvas, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, MobileDrawer, MotionZonesSettings, NodeMultiSelectField, NodePicker, NodeSelectField, OfflineBadge, PHASE_CONFIG, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECORDED_PLAYBACK_MODES, RIGHT, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, ScopePicker, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SlideToggle, SnapshotButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, Stepper, StreamBrokerSelector, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimezoneSelector, Tooltip, TooltipContent, TooltipTrigger, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, VodPlaybackProvider, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, allDeviceTypeFilterOptions, buildStepTreeFromSchema, childEntityId, childListName, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, deviceRoleMeta, deviceRoleMetaOf, deviceTypeMeta, deviceTypeMetaOf, ensureMfHostInit, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, fuzzyMatch, getClassColor, getPhaseVisual, groupChildrenByLayout, hardwareLabel, humidifierTint, createLucideIcon as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextSort, normalizeForSearch, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, EyeOff as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolvePrimaryChild, resolveSensorDisplay, scrubReducer, serializeRecordedCommand, shouldCommit, shouldEmit, sortRows, statusIcons, stripParentNamePrefix, Trash2 as t, tankAlert, themeToCss, trpc, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCancelJob, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetJob, useAddonsGetLastRestart, useAddonsGetLogs, useAddonsGetVersions, useAddonsInstallFromWorkspace, useAddonsInstallPackage, useAddonsIsWorkspaceAvailable, useAddonsList, useAddonsListCapabilityProviders, useAddonsListFrameworkPackages, useAddonsListJobs, useAddonsListPackages, useAddonsListUpdates, useAddonsListWorkspacePackages, useAddonsOnAddonLogs, useAddonsReloadPackages, useAddonsRestartAddon, useAddonsRestartServer, useAddonsRetryLoad, useAddonsRollbackPackage, useAddonsSearchAvailable, useAddonsSetAddonAutoUpdate, useAddonsSetAutoUpdateSettings, useAddonsSetCapabilityProviderEnabled, useAddonsStartJob, useAddonsUninstallPackage, useAddonsUpdateFrameworkPackage, useAddonsUpdatePackage, useAirQualitySensorGetStatus, useAlarmPanelArm, useAlarmPanelDisarm, useAlarmPanelGetStatus, useAlarmPanelTrigger, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerClassify, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupDelete, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useColorGetStatus, useColorSetColor, useConfirm, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetChildren, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDeviceLinks, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellEvents, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, 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, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetPreferred, useLocalNetworkList, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkSetAllowedAddresses, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderDumpHeapSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetProcessStats, useMetricsProviderKillProcess, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsClearTracks, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsSearchObjectEvents, usePipelineExecutorCacheFrameInPool, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDetect, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorReprobeEngine, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignDecoder, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDecoderAssignment, usePipelineOrchestratorGetDecoderAssignments, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentAddonDefaults, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignDecoder, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerReportMotion, usePlateGalleryCorrectPlateText, usePlateGalleryDeletePlate, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetMask, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlaybackManifest, useRecordingGetStatus, useRecordingGetStorageUsage, useRecordingLocateSegment, useRecordingPruneFootage, useRecordingReadSegmentBytes, useRecordingRescanStorage, useRecordingSetDeviceConfig, useRemoteComponent, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetStatus, useSnapshotInvalidateCache, useSnapshotProviderGetSnapshot, useSnapshotProviderSupportsDevice, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageGetDefaultLocation, useStorageList, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetRetentionConfig, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetRetentionConfig, useTamperGetStatus, useTemperatureSensorGetStatus, useThemeMode, useToastOnToast, useTurnProviderGetTurnServers, useUpdateGetStatus, useUpdateInstallUpdate, useUserManagementConfirmTotp, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementGetTotpStatus, useUserManagementListApiKeys, useUserManagementListOauthSessions, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeOauthSession, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, useVideoclipsGetClipPlayback, useVideoclipsListClips, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, vacuumStateMeta, validateScopes, valveStateMeta, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint };
|
|
45021
|
+
export { AddonGlobalSettingsForm, AgentStepEditor, AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl, AppShell, ArcKnob, AudioClassificationList, AudioLevelWaveform, AudioWaveform, AutotrackSection, BTN_COMPACT, BTN_COMPACT_DANGER, BTN_COMPACT_PRIMARY, BTN_COMPACT_WARNING, Badge, BatteryBadge, BottomSheet, Breadcrumb, BrightnessPanel, Button, ButtonControl, ButtonHeroCard, CENTER, CHIP_ACTIVE, CHIP_BASE, CHIP_INACTIVE, CLASS_COLORS, COLUMN_BREAKPOINT_CLASS, COLUMN_PRIORITY, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, CONTROL_CAP_NAMES, CONTROL_FILLS, CameraStreamPlayer, Card, Checkbox, ChildSectionAccordion, ClimatePanel, CodeBlock, CollapsibleCard, ConfigFormBuilder, FormField as ConfigFormField, ConfigSchemaField, ConfirmActionButton, ConfirmDialogProvider, ConsumablesPanel, ContainerChildrenProvider, ContainerPrimaryHero, ControlColumn, ControlHeroCard, ControlInlineControl, ControlPanel, CopyButton, CoverHeroCard, CoverInlineControl, CoverPanel, CustomFieldRenderersProvider, DEFAULT_COLOR, DEVICE_COLUMNS, DEVICE_LIST_PAGE_SIZE_KEY, DEVICE_LIST_PAGE_SIZE_OPTIONS, DEVICE_ROLE_META, DEVICE_TYPE_CONTROL, DEVICE_TYPE_META, DISPLAY_ICON_REGISTRY, DataTable, DetectionCanvas, DetectionOverlay, DetectionResultTree, DevShell, DeviceActivityPanel, DeviceBatchToolbar, DeviceCard, DeviceContextProvider, DeviceExportPanel, DeviceGrid, DeviceItem, DeviceList, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiscoveryPanel, DoorbellRecentPanel, Dropdown, DropdownContent, DropdownItem, DropdownTrigger, DummyHeroCard, DummyInline, EmptyState, ErrorBox, EventStream, FILL, FanHeroCard, FanInlineControl, FanPanel, FilterBar, FloatingEventStream, FloatingLogStream, FloatingPanel, FormField$1 as FormField, GRID_GAP, GRID_PAIRED, GRID_QUICK_STATS, GripTrack, HOST_WIDGETS, HlsVideo, HoverZoomImage, HumidifierHeroCard, HumidifierInlineControl, INPUT_COMPACT, IconAction, IconButton, ImageHeroCard, ImageInlineControl, ImageSelector, InferenceConfigSelector, Input, KebabMenu, KeyValueList, LIST_ROW, Label, LawnMowerHeroCard, LawnMowerInlineControl, LightHeroCard, LightInlineControl, LockHeroCard, LockInlineControl, LockPanel, LogStream, LoginForm, MODE_COLOR, MaskShapeCanvas, MediaPlayerHeroCard, MediaPlayerInlineControl, MediaPlayerPanel, MobileDrawer, MotionZonesSettings, NodeMultiSelectField, NodePicker, NodeSelectField, OfflineBadge, PHASE_CONFIG, PRIORITY, PTZOverlay, PageHeader, PhaseIcon, PipelineBuilder, PipelineRuntimeSelector, PipelineStep, PipelineTreeMatrix, PlayerOverlaysProvider, Popover, PopoverContent, PopoverRowAction, PopoverTrigger, PrimaryChildPicker, PrivacyMaskSettings, ProviderBadge, PtzPanel, QrCode, RECORDED_PLAYBACK_MODES, RIGHT, ROLE_DESCRIPTOR, RadialGauge, RecordedPlaybackProvider, RecordingPanel, ResponseLog, SECTION_BODY, SECTION_CARD, SECTION_HEADER, SPLIT_PANEL_OUTER, SPLIT_PANEL_SIDE, STACK_GAP, STATE_COLOR, ScopePicker, ScrollArea, Select, SemanticBadge, SensorHeroCard, SensorInlineControl, SensorValueAtom, Separator, Sidebar, SidebarItem, Skeleton, SlideOverPanel, SlideToggle, SnapshotButton, StatCard, StateValuesStream, StatusBadge, StepTimings, StepTreeMaster, Stepper, StreamBrokerSelector, StreamPanel, Switch, SwitchHeroCard, SwitchInlineControl, SwitchPanel, SystemProvider, TEXT_FIELD_LABEL, TEXT_HINT, TEXT_METRIC, TEXT_SECTION_LABEL, TEXT_VALUE, TIMEZONES, Tabs, TabsContent, TabsList, TabsTrigger, TapToggle, ThemeProvider, ThermostatHeroCard, ThermostatInlineControl, TimezoneSelector, Tooltip, TooltipContent, TooltipTrigger, VacuumHeroCard, VacuumInlineControl, ValueReadout, ValveHeroCard, ValveInlineControl, VersionBadge, VodPlaybackProvider, WaterHeaterHeroCard, WaterHeaterInlineControl, WeatherHeroCard, WeatherInlineControl, WidgetMetricCard, WidgetPanel, WidgetRegistryProvider, WidgetSlot, ZoneEditingProvider, allDeviceTypeFilterOptions, buildStepTreeFromSchema, childEntityId, childListName, cn, columnsForContext, containerChildToRef, countableDevices, coverHighlight, createSharedContext, createTheme, cursorFractionFor, darkColors, defaultTheme, deriveDeviceKind, deviceRoleMeta, deviceRoleMetaOf, deviceTypeMeta, deviceTypeMetaOf, ensureMfHostInit, findTimezone, formatControlDateTime, formatLastSeen, formatNumeric, fuzzyMatch, getClassColor, getPhaseVisual, groupChildrenByLayout, hardwareLabel, humidifierTint, createLucideIcon as i, initialScrubState, isAbsentProvider, isFieldVisible, lawnMowerActivityMeta, lightColors, loadRemoteBundle, makeScrubBridge, metadataEntries, metadataString, mirror, mountAddonPage, Square as n, nextSort, normalizeForSearch, overrideEntityIdFromLink, parseRecordedServerMessage, providerIcons, EyeOff as r, resolveContainerPrimary, resolveControlAlign, resolveDeviceControl, resolveDisplayIcon, resolvePrimaryChild, resolveSensorDisplay, scrubReducer, serializeRecordedCommand, shouldCommit, shouldEmit, sortRows, statusIcons, stripParentNamePrefix, Trash2 as t, tankAlert, themeToCss, trpc, useAccessoriesGetStatus, useAccessoriesSetChildHidden, useAddonPagesListPages, useAddonSettingsGetDeviceSettings, useAddonSettingsGetGlobalSettings, useAddonSettingsUpdateDeviceSettings, useAddonSettingsUpdateGlobalSettings, useAddonWidgetsListWidgets, useAddonsApplyAutoUpdateToAll, useAddonsCancelJob, useAddonsCustom, useAddonsForceRefresh, useAddonsGetAddonAutoUpdate, useAddonsGetAutoUpdateSettings, useAddonsGetJob, useAddonsGetLastRestart, useAddonsGetLogs, useAddonsGetVersions, useAddonsInstallFromWorkspace, useAddonsInstallPackage, useAddonsIsWorkspaceAvailable, useAddonsList, useAddonsListCapabilityProviders, useAddonsListFrameworkPackages, useAddonsListJobs, useAddonsListPackages, useAddonsListUpdates, useAddonsListWorkspacePackages, useAddonsOnAddonLogs, useAddonsReloadPackages, useAddonsRestartAddon, useAddonsRestartServer, useAddonsRetryLoad, useAddonsRollbackPackage, useAddonsSearchAvailable, useAddonsSetAddonAutoUpdate, useAddonsSetAutoUpdateSettings, useAddonsSetCapabilityProviderEnabled, useAddonsStartJob, useAddonsUninstallPackage, useAddonsUpdateFrameworkPackage, useAddonsUpdatePackage, useAirQualitySensorGetStatus, useAlarmPanelArm, useAlarmPanelDisarm, useAlarmPanelGetStatus, useAlarmPanelTrigger, useAlertsDismiss, useAlertsEmit, useAlertsGetUnreadCount, useAlertsList, useAlertsMarkAllRead, useAlertsMarkRead, useAlertsUpdate, useAllWidgets, useAmbientLightSensorGetStatus, useAudioAnalysisApplyDeviceSettingsPatch, useAudioAnalysisGetDeviceLiveContribution, useAudioAnalysisGetDeviceSettingsContribution, useAudioAnalysisResolveDeviceSettings, useAudioAnalyzerAnalyseChunk, useAudioAnalyzerClassify, useAudioAnalyzerDispose, useAudioAnalyzerIsReady, useAudioAnalyzerReprobeAudioEngine, useAudioCodecCanHandle, useAudioCodecCloseSession, useAudioCodecCreateDecodeSession, useAudioCodecCreateEncodeSession, useAudioCodecFlushEncode, useAudioCodecListActiveSessions, useAudioCodecListSupportedCodecs, useAudioCodecPullEncoded, useAudioCodecPullPcm, useAudioCodecPushEncodedFrame, useAudioCodecPushPcm, useAudioMetricsGetCurrentSnapshot, useAudioMetricsGetHistory, useAutomationControlDisable, useAutomationControlEnable, useAutomationControlGetStatus, useAutomationControlTrigger, useBackupDelete, useBackupGetEntries, useBackupList, useBackupListArchives, useBackupListDestinations, useBackupListLocations, useBackupPreviewSchedule, useBackupRestore, useBackupTrigger, useBackupUpsertDestinationPolicy, useBatteryGetStatus, useBatteryWakeForStream, useBinaryGetStatus, useBrightnessGetStatus, useBrightnessSetBrightness, useBrokerAdd, useBrokerGet, useBrokerGetBrokerConfig, useBrokerGetSettings, useBrokerGetSettingsSchema, useBrokerGetState, useBrokerGetStatus, useBrokerList, useBrokerListProviders, useBrokerPublish, useBrokerRemove, useBrokerSetSettings, useBrokerSubscribe, useBrokerTestConnection, useBrokerTestSettings, useBrokerUnsubscribe, useButtonPress, useCameraCredentialsGetCredentials, useCameraCredentialsGetStatus, useCameraPipelineConfigApplyDeviceSettingsPatch, useCameraPipelineConfigGetDeviceLiveContribution, useCameraPipelineConfigGetDeviceSettingsContribution, useCameraStreamsGetBrokerStreams, useCameraStreamsGetCameraStreams, useCameraStreamsGetProfileRtspEntries, useCameraStreamsGetRtspEntries, useCameraStreamsPickStream, useCarbonMonoxideGetStatus, useClimateControlGetStatus, useClimateControlSetFanMode, useClimateControlSetMode, useClimateControlSetPreset, useClimateControlSetSwingHorizontal, useClimateControlSetSwingVertical, useClimateControlSetTarget, useClimateControlSetTargetHumidity, useClimateControlSetTargetRange, useClusterNodes, useColorGetStatus, useColorSetColor, useConfirm, useConnectivityGetStatus, useConsumablesGetStatus, useConsumablesReset, useContactGetStatus, useContainerChildren, useControlGetStatus, useControlSetValue, useCoverClose, useCoverGetStatus, useCoverOpen, useCoverSetPosition, useCoverSetTiltPosition, useCoverStop, useCustomFieldRenderer, useDayNightGetOptions, useDayNightGetStatus, useDayNightSetSettings, useDebouncedString, useDecoderCreateSession, useDecoderDestroySession, useDecoderGetFrame, useDecoderGetInfo, useDecoderGetShmStats, useDecoderGetStats, useDecoderListActiveSessions, useDecoderOpenStream, useDecoderPullFrames, useDecoderPullHandles, useDecoderPushPacket, useDecoderReprobeHwaccel, useDecoderSupportsCodec, useDecoderUpdateConfig, useDetectionPipelineApplyDeviceSettingsPatch, useDetectionPipelineGetDeviceLiveContribution, useDetectionPipelineGetDeviceSettingsContribution, useDevShell, useDevice, useDeviceAdoptionAdopt, useDeviceAdoptionGetCandidate, useDeviceAdoptionGetStatus, useDeviceAdoptionListCandidateFilters, useDeviceAdoptionListCandidates, useDeviceAdoptionRefresh, useDeviceAdoptionRelease, useDeviceAdoptionResync, useDeviceAutotrack, useDeviceBattery, useDeviceCapSlice, useDeviceCapability, useDeviceDetections, useDeviceDiscoveryAdoptDevice, useDeviceDiscoveryGetStatus, useDeviceDiscoveryListDiscovered, useDeviceDiscoveryRefreshDiscovery, useDeviceDiscoveryReleaseDevice, useDeviceExportApplyDeviceSettingsPatch, useDeviceExportExposeDevice, useDeviceExportGetDeviceLiveContribution, useDeviceExportGetDeviceSettingsContribution, useDeviceExportGetStatus, useDeviceExportListExposedDevices, useDeviceExportListSupportedDeviceKinds, useDeviceExportUnexposeDevice, useDeviceId, useDeviceListPageSize, useDeviceManagerAddLocation, useDeviceManagerAdoptDevice, useDeviceManagerAdoptionAdopt, useDeviceManagerAdoptionListCandidateFilters, useDeviceManagerAdoptionListCandidates, useDeviceManagerAdoptionRefresh, useDeviceManagerAdoptionRelease, useDeviceManagerAdoptionResync, useDeviceManagerAllocateDeviceId, useDeviceManagerApplyInitialMeta, useDeviceManagerCreateDevice, useDeviceManagerDisable, useDeviceManagerDiscoverAllProviders, useDeviceManagerDiscoverDevices, useDeviceManagerDiscoverProvider, useDeviceManagerDiscoveryProviders, useDeviceManagerEnable, useDeviceManagerGetAllBindings, useDeviceManagerGetBindings, useDeviceManagerGetChildren, useDeviceManagerGetConfigSchema, useDeviceManagerGetCreationSchema, useDeviceManagerGetDevice, useDeviceManagerGetDeviceAggregate, useDeviceManagerGetDeviceLiveInfoAggregate, useDeviceManagerGetDeviceSettingsAggregate, useDeviceManagerGetDeviceStatusAggregate, useDeviceManagerGetRoleDisplayDefaults, useDeviceManagerGetSettingsSchema, useDeviceManagerGetStreamProfileMap, useDeviceManagerGetStreamSources, useDeviceManagerGetWireableFields, useDeviceManagerListAll, useDeviceManagerListBindableCapsForDeviceType, useDeviceManagerListLocations, useDeviceManagerListPersistedByAddon, useDeviceManagerListWrappersForCap, useDeviceManagerLoadConfig, useDeviceManagerLoadMeta, useDeviceManagerLoadRuntimeState, useDeviceManagerPersistConfig, useDeviceManagerProbeStreams, useDeviceManagerProviderCreationType, useDeviceManagerProviderDiscoveryParamsSchema, useDeviceManagerRegisterDevice, useDeviceManagerRemove, useDeviceManagerRemoveByIntegration, useDeviceManagerRemoveDevice, useDeviceManagerRemoveLocation, useDeviceManagerRunDeviceAction, useDeviceManagerSetChildLayout, useDeviceManagerSetDeviceLinks, useDeviceManagerSetDisabled, useDeviceManagerSetDisplay, useDeviceManagerSetIntegrationId, useDeviceManagerSetLinkDeviceId, useDeviceManagerSetLocation, useDeviceManagerSetMetadata, useDeviceManagerSetName, useDeviceManagerSetPrimaryChildEntityId, useDeviceManagerSetRole, useDeviceManagerSetRoleDisplayDefaults, useDeviceManagerSetStreamProfileMap, useDeviceManagerSetType, useDeviceManagerSetWrapperActive, useDeviceManagerTestCreationField, useDeviceManagerTestField, useDeviceManagerUpdateConfig, useDeviceManagerUpdateDeviceField, useDeviceManagerUpdateDeviceFieldsBatch, useDeviceOpsGetConfigEntries, useDeviceOpsGetRawState, useDeviceOpsGetSettingsSchema, useDeviceOpsGetStreamSources, useDeviceOpsRemoveDevice, useDeviceOpsRunAction, useDeviceOpsSetConfig, useDeviceProviderAdoptDiscoveredDevice, useDeviceProviderCreateDevice, useDeviceProviderDiscoverDevices, useDeviceProviderGetChildCreationSchema, useDeviceProviderGetDevices, useDeviceProviderGetDiscoveryParamsSchema, useDeviceProviderGetManualCreationType, useDeviceProviderGetStatus, useDeviceProviderStart, useDeviceProviderStop, useDeviceProviderSupportsDiscovery, useDeviceProviderSupportsManualCreation, useDeviceProviderTestCreationField, useDeviceProxy, useDeviceSnapshot, useDeviceSnapshotImage, useDeviceState, useDeviceStateGetAllSnapshots, useDeviceStateGetCapSlice, useDeviceStateGetSnapshot, useDeviceStateSetCapSlice, useDeviceStateSlice, useDeviceStatusGetStatus, useDeviceWebrtc, useDevices, useDoorbellEvents, useDoorbellGetStatus, useEnumSensorGetStatus, useEventEmitterGetStatus, useEventInvalidation, useEventStreamLatest, useEventStreamMap, useEventsGetEventClipUrl, useEventsGetEventThumbnail, useEventsGetEvents, useFaceGalleryAssignFace, useFaceGalleryAssignFaces, useFaceGalleryCreateIdentity, useFaceGalleryDeleteFace, useFaceGalleryDeleteIdentity, useFaceGalleryGetFaceByTrack, useFaceGalleryGetFaceMedia, useFaceGalleryListIdentities, useFaceGalleryListIdentitySamples, useFaceGalleryListRecentFaces, useFaceGalleryRemoveSample, useFaceGalleryRenameIdentity, useFaceGallerySuggestFaceClusters, useFaceGalleryUnassignFace, useFaceGalleryUnassignFaces, useFanControlGetStatus, useFanControlSetDirection, useFanControlSetOscillating, useFanControlSetPercentage, useFanControlSetPreset, useFeatureProbeGetStatus, useFloodGetStatus, useGasGetStatus, useHumidifierGetStatus, useHumidifierSetMode, useHumidifierSetOn, useHumidifierSetTargetHumidity, useHumiditySensorGetStatus, useImageGetStatus, useImageSettingsGetOptions, useImageSettingsGetStatus, useImageSettingsSetSettings, useIntegrationsCreate, useIntegrationsDelete, useIntegrationsGet, useIntegrationsGetAvailableTypes, useIntegrationsGetByAddonId, useIntegrationsGetSettings, useIntegrationsList, useIntegrationsSetSettings, useIntegrationsTestConnection, useIntegrationsUpdate, useIntercomEndTalkSession, useIntercomGetStatus, useIntercomHandleAnswer, useIntercomPushTalkAudio, useIntercomStartSession, useIntercomStartTalkSession, useIntercomStopSession, useIsMidWidth, useIsMobile, useLawnMowerControlDock, useLawnMowerControlGetStatus, useLawnMowerControlPause, useLawnMowerControlStartMowing, useLiveBuffer, useLiveEvent, useLocalNetworkGetAllowedAddresses, useLocalNetworkGetConnectionEndpoints, useLocalNetworkGetPreferred, useLocalNetworkList, useLocalNetworkResetAllowlistToBestMatch, useLocalNetworkSetAllowedAddresses, useLockControlGetStatus, useLockControlLock, useLockControlOpen, useLockControlUnlock, useMediaPlayerGetStatus, useMediaPlayerNext, useMediaPlayerPause, useMediaPlayerPlay, useMediaPlayerPlayMedia, useMediaPlayerPrevious, useMediaPlayerSeek, useMediaPlayerSelectSource, useMediaPlayerSetMute, useMediaPlayerSetRepeat, useMediaPlayerSetShuffle, useMediaPlayerSetVolume, useMediaPlayerStop, useMeshNetworkGetStatus, useMeshNetworkJoin, useMeshNetworkLeave, useMeshNetworkListPeers, useMeshNetworkLogout, useMeshNetworkStartLogin, useMeshNetworkTestConnection, useMetricsProviderCollectSnapshot, useMetricsProviderDumpHeapSnapshot, useMetricsProviderGetAddonStats, useMetricsProviderGetCached, useMetricsProviderGetCpuTemperature, useMetricsProviderGetCurrent, useMetricsProviderGetDiskSpace, useMetricsProviderGetGpuInfo, useMetricsProviderGetProcessStats, useMetricsProviderKillProcess, useMetricsProviderListAddonInstances, useMetricsProviderListNodeProcesses, useMotionDetectionAnalyze, useMotionDetectionApplyDeviceSettingsPatch, useMotionDetectionGetDeviceLiveContribution, useMotionDetectionGetDeviceSettingsContribution, useMotionDetectionRemoveCamera, useMotionDetectionReset, useMotionGetStatus, useMotionIsDetected, useMotionTriggerGetStatus, useMotionTriggerSetMotionTrigger, useMotionZonesGetOptions, useMotionZonesGetStatus, useMotionZonesSetZone, useMqttBrokerAddBroker, useMqttBrokerGetBrokerConfig, useMqttBrokerGetStatus, useMqttBrokerListBrokers, useMqttBrokerRemoveBroker, useMqttBrokerStartEmbeddedBroker, useMqttBrokerStopEmbeddedBroker, useMqttBrokerTestConnection, useNativeObjectDetectionGetStatus, useNativeObjectDetectionSetEnabled, useNetworkAccessGetEndpoint, useNetworkAccessGetStatus, useNetworkAccessListEndpoints, useNetworkAccessStart, useNetworkAccessStop, useNetworkQualityGetAllStats, useNetworkQualityGetDeviceStats, useNetworkQualityReportClientStats, useNodesClusterAddonStatus, useNodesDeployAddon, useNodesExecuteQuery, useNodesGetCapUsageGraph, useNodesGetNodeAddons, useNodesRenameNode, useNodesRestartAddon, useNodesRestartNode, useNodesRestartProcess, useNodesSetProcessLogLevel, useNodesShutdownNode, useNodesTopology, useNodesUndeployAddon, useNotificationOutputDeleteTarget, useNotificationOutputDiscoverTargets, useNotificationOutputListTargetKinds, useNotificationOutputListTargets, useNotificationOutputSend, useNotificationOutputSetTargetEnabled, useNotificationOutputTestTarget, useNotificationOutputUpsertTarget, useNotifierCancel, useNotifierGetStatus, useNotifierSend, useNumericSensorGetStatus, useOptimisticSlice, useOptionalSystem, useOptionalWidgetRegistry, useOsdGetStatus, useOsdSetOverlay, usePTZ, usePetFeederCallPet, usePetFeederCancelFeed, usePetFeederFeed, usePetFeederGetStatus, usePetFeederMarkFoodReplenished, usePetFeederPlaySound, usePetFeederResetDesiccant, usePetFeederSetChildLock, usePetFeederSetFeedSound, usePetFeederSetIndicatorLight, usePetFeederSetVolume, usePipelineAnalyticsApplyDeviceSettingsPatch, usePipelineAnalyticsClearTracks, usePipelineAnalyticsGetActiveTracks, usePipelineAnalyticsGetAudioEvents, usePipelineAnalyticsGetDeviceLiveContribution, usePipelineAnalyticsGetDeviceSettingsContribution, usePipelineAnalyticsGetEventDensity, usePipelineAnalyticsGetEventMedia, usePipelineAnalyticsGetMotionEvents, usePipelineAnalyticsGetObjectEvents, usePipelineAnalyticsGetTrack, usePipelineAnalyticsGetTrackMedia, usePipelineAnalyticsListTracks, usePipelineAnalyticsPruneEventsBefore, usePipelineAnalyticsSearchObjectEvents, usePipelineExecutorCacheFrameInPool, usePipelineExecutorDeleteModel, usePipelineExecutorDeleteTemplate, usePipelineExecutorDetect, usePipelineExecutorDownloadModel, usePipelineExecutorGetAddonModels, usePipelineExecutorGetAudioCapabilities, usePipelineExecutorGetAvailableEngines, usePipelineExecutorGetCapabilities, usePipelineExecutorGetDefaultSteps, usePipelineExecutorGetDetectionConfigSchema, usePipelineExecutorGetEffectiveTuning, usePipelineExecutorGetEngineProvisioning, usePipelineExecutorGetGlobalPipelineConfig, usePipelineExecutorGetGlobalSteps, usePipelineExecutorGetOrchestratorConfigSchema, usePipelineExecutorGetReferenceAudio, usePipelineExecutorGetReferenceAudioFiles, usePipelineExecutorGetReferenceImage, usePipelineExecutorGetSchema, usePipelineExecutorGetSelectedEngine, usePipelineExecutorGetVideoPipelineSteps, usePipelineExecutorInferCached, usePipelineExecutorKillEngine, usePipelineExecutorListLoadedEngines, usePipelineExecutorListReferenceImages, usePipelineExecutorListTemplates, usePipelineExecutorReprobeEngine, usePipelineExecutorRunAudioTest, usePipelineExecutorRunPipeline, usePipelineExecutorRunPipelineBatch, usePipelineExecutorSaveTemplate, usePipelineExecutorSetVideoPipelineSteps, usePipelineExecutorSpinEngine, usePipelineExecutorUncacheFrame, usePipelineExecutorUpdateTemplate, usePipelineOrchestratorApplyDeviceSettingsPatch, usePipelineOrchestratorAssignAudio, usePipelineOrchestratorAssignDecoder, usePipelineOrchestratorAssignPipeline, usePipelineOrchestratorDeleteTemplate, usePipelineOrchestratorGetAgentLoad, usePipelineOrchestratorGetAgentSettings, usePipelineOrchestratorGetAudioAssignment, usePipelineOrchestratorGetAudioAssignments, usePipelineOrchestratorGetAudioNodeLoad, usePipelineOrchestratorGetCameraMetrics, usePipelineOrchestratorGetCameraSettings, usePipelineOrchestratorGetCameraStatus, usePipelineOrchestratorGetCameraStatuses, usePipelineOrchestratorGetCameraStepOverrides, usePipelineOrchestratorGetCapabilityBindings, usePipelineOrchestratorGetDecoderAssignment, usePipelineOrchestratorGetDecoderAssignments, usePipelineOrchestratorGetDeviceLiveContribution, usePipelineOrchestratorGetDeviceSettingsContribution, usePipelineOrchestratorGetGlobalMetrics, usePipelineOrchestratorGetPipelineAssignment, usePipelineOrchestratorGetPipelineAssignments, usePipelineOrchestratorListAgentSettings, usePipelineOrchestratorListTemplates, usePipelineOrchestratorRebalance, usePipelineOrchestratorRemoveAgentSettings, usePipelineOrchestratorResolvePipeline, usePipelineOrchestratorSaveTemplate, usePipelineOrchestratorSetAgentAddonDefaults, usePipelineOrchestratorSetAgentCapabilities, usePipelineOrchestratorSetAgentDetectWeight, usePipelineOrchestratorSetAgentMaxCameras, usePipelineOrchestratorSetCameraPipelineForAgent, usePipelineOrchestratorSetCameraStepOverride, usePipelineOrchestratorSetCameraStepToggle, usePipelineOrchestratorSetCapabilityBinding, usePipelineOrchestratorUnassignAudio, usePipelineOrchestratorUnassignDecoder, usePipelineOrchestratorUnassignPipeline, usePipelineOrchestratorUpdateTemplate, usePipelineRunnerAttachCamera, usePipelineRunnerDetachCamera, usePipelineRunnerGetAllCameraMetrics, usePipelineRunnerGetCameraMetrics, usePipelineRunnerGetLocalCameras, usePipelineRunnerGetLocalLoad, usePipelineRunnerGetLocalMetrics, usePipelineRunnerReportMotion, usePlateGalleryCorrectPlateText, usePlateGalleryDeletePlate, usePlateGalleryGetPlateByTrack, usePlateGalleryGetPlateMedia, usePlateGalleryListPlates, usePlateGallerySearchPlates, usePlateGallerySuggestPlateClusters, usePlayerOverlayLayer, usePlayerOverlayLayers, usePlayerToolbarButton, usePlayerToolbarButtons, usePowerMeterGetStatus, usePresenceGetStatus, usePressureSensorGetStatus, usePrivacyMaskGetOptions, usePrivacyMaskGetStatus, usePrivacyMaskSetMask, usePtzAutotrackGetSettings, usePtzAutotrackGetStatus, usePtzAutotrackSetEnabled, usePtzAutotrackSetSettings, usePtzContinuousMove, usePtzDeletePreset, usePtzGetOptions, usePtzGetPosition, usePtzGetPresets, usePtzGetStatus, usePtzGoHome, usePtzGoToPreset, usePtzMove, usePtzSavePreset, usePtzSetAutofocus, usePtzStop, useRebootReboot, useRecordedPlayback, useRecordingApplyDeviceSettingsPatch, useRecordingGetAvailability, useRecordingGetDaysWithRecordings, useRecordingGetDeviceConfig, useRecordingGetDeviceLiveContribution, useRecordingGetDeviceSettingsContribution, useRecordingGetPlaybackManifest, useRecordingGetStatus, useRecordingGetStorageUsage, useRecordingLocateSegment, useRecordingPruneFootage, useRecordingReadSegmentBytes, useRecordingRescanStorage, useRecordingSetDeviceConfig, useRemoteComponent, useScriptRunnerGetStatus, useScriptRunnerRun, useScriptRunnerStop, useScrubController, useSettingsStoreCount, useSettingsStoreDeclareCollection, useSettingsStoreDelete, useSettingsStoreGet, useSettingsStoreHistogram, useSettingsStoreInsert, useSettingsStoreIsEmpty, useSettingsStoreQuery, useSettingsStoreSet, useSettingsStoreUpdate, useSmokeGetStatus, useSnapshotApplyDeviceSettingsPatch, useSnapshotGetDeviceLiveContribution, useSnapshotGetDeviceSettingsContribution, useSnapshotGetSnapshot, useSnapshotGetStatus, useSnapshotInvalidateCache, useSnapshotProviderGetSnapshot, useSnapshotProviderSupportsDevice, useStorageAbortUpload, useStorageBeginDownload, useStorageBeginUpload, useStorageDelete, useStorageDeleteLocation, useStorageEndDownload, useStorageExists, useStorageFinalizeUpload, useStorageGetAvailableSpace, useStorageGetDefaultLocation, useStorageList, useStorageListLocationDeclarations, useStorageListLocations, useStorageListProviders, useStorageRead, useStorageReadChunk, useStorageResolve, useStorageTestConfig, useStorageTestLocation, useStorageUpsertLocation, useStorageWrite, useStorageWriteChunk, useStreamBrokerApplyDeviceSettingsPatch, useStreamBrokerAssignProfile, useStreamBrokerGetAllRtspEntries, useStreamBrokerGetBrokerStats, useStreamBrokerGetDeviceLiveContribution, useStreamBrokerGetDeviceSettingsContribution, useStreamBrokerGetPreBufferInfo, useStreamBrokerGetRtspEntry, useStreamBrokerGetRtspPort, useStreamBrokerGetStreamUrl, useStreamBrokerGetStreamWithCodec, useStreamBrokerIsRtspEnabled, useStreamBrokerKillClient, useStreamBrokerListAllCameraStreams, useStreamBrokerListAllProfileSlots, useStreamBrokerListClients, useStreamBrokerProbeStream, useStreamBrokerPublishCameraStream, useStreamBrokerPullAudioChunks, useStreamBrokerPullFrameHandles, useStreamBrokerRegenerateRtspToken, useStreamBrokerReleaseStreamWithCodec, useStreamBrokerRestartProfile, useStreamBrokerRetractCameraStream, useStreamBrokerSetPreBufferDuration, useStreamBrokerSetRtspEnabled, useStreamBrokerSubscribeAudioChunks, useStreamBrokerSubscribeFrames, useStreamBrokerUnassignProfile, useStreamBrokerUnsubscribeAudioChunks, useStreamBrokerUnsubscribeFrames, useStreamCatalogGetCatalog, useStreamParamsGetConfigSchema, useStreamParamsGetOptions, useStreamParamsGetStatus, useStreamParamsSetProfile, useSwitchGetStatus, useSwitchSetState, useSystem, useSystemFeatureFlags, useSystemForceRetentionCleanup, useSystemGetRetentionConfig, useSystemHealth, useSystemInfo, useSystemMutation, useSystemNetworkAddresses, useSystemQuery, useSystemSetRetentionConfig, useTamperGetStatus, useTemperatureSensorGetStatus, useThemeMode, useToastOnToast, useTurnProviderGetTurnServers, useUpdateGetStatus, useUpdateInstallUpdate, useUserManagementConfirmTotp, useUserManagementCreateApiKey, useUserManagementCreateScopedToken, useUserManagementCreateUser, useUserManagementDeleteUser, useUserManagementDisableTotp, useUserManagementGetTotpStatus, useUserManagementListApiKeys, useUserManagementListOauthSessions, useUserManagementListScopedTokens, useUserManagementListUsers, useUserManagementOauthExchangeCode, useUserManagementOauthIssueCode, useUserManagementOauthRefresh, useUserManagementOauthVerifyAccessToken, useUserManagementResetPassword, useUserManagementRevokeApiKey, useUserManagementRevokeOauthSession, useUserManagementRevokeScopedToken, useUserManagementSetUserScopes, useUserManagementSetupTotp, useUserManagementUpdateUser, useUserManagementValidateApiKey, useUserManagementValidateCredentials, useUserManagementValidateScopedToken, useUserManagementVerifyTotp, useVacuumControlGetStatus, useVacuumControlLocate, useVacuumControlPause, useVacuumControlReturnToBase, useVacuumControlSetFanSpeed, useVacuumControlStart, useVacuumControlStop, useValveClose, useValveGetStatus, useValveOpen, useValveSetPosition, useValveStop, useVibrationGetStatus, useVideoclipsGetClipPlayback, useVideoclipsListClips, useVodPlayback, useWaterHeaterGetStatus, useWaterHeaterSetAway, useWaterHeaterSetOperationMode, useWaterHeaterSetTargetTemp, useWeatherGetStatus, useWebrtcSessionAddIceCandidate, useWebrtcSessionCloseSession, useWebrtcSessionCreateSession, useWebrtcSessionGetIceCandidates, useWebrtcSessionGetSessionState, useWebrtcSessionHandleAnswer, useWebrtcSessionHandleOffer, useWebrtcSessionHasAdaptiveBitrate, useWebrtcSessionListStreams, useWidget, useWidgetMetadata, useWidgetRegistry, useZoneAnalyticsGetCameraHistory, useZoneAnalyticsGetCurrentSnapshot, useZoneAnalyticsGetUnzonedHistory, useZoneAnalyticsGetZoneHistory, useZoneEditing, useZoneRulesListRules, useZoneRulesSetRules, useZonesAddZone, useZonesListZones, useZonesRemoveZone, useZonesUpdateZone, vacuumStateMeta, validateScopes, valveStateMeta, waterHeaterPhase, waterHeaterTint, weatherConditionMeta, weatherTint };
|