@camstack/ui-library 0.1.58 → 0.2.1
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/addon-global-settings-form.d.ts +1 -1
- package/dist/composites/agent-step-editor.d.ts +1 -1
- package/dist/composites/app-shell/app-shell.d.ts +1 -1
- package/dist/composites/app-shell/sidebar-item.d.ts +1 -1
- package/dist/composites/app-shell/sidebar.d.ts +1 -1
- package/dist/composites/audio-classification-list.d.ts +1 -1
- package/dist/composites/audio-level-waveform.d.ts +1 -1
- package/dist/composites/audio-waveform.d.ts +1 -1
- package/dist/composites/battery-badge.d.ts +1 -1
- package/dist/composites/breadcrumb.d.ts +2 -1
- package/dist/composites/camera-stream-player.d.ts +33 -1
- package/dist/composites/cap-settings/AutotrackSection.d.ts +1 -1
- package/dist/composites/cap-settings/ConsumablesPanel.d.ts +1 -1
- package/dist/composites/cap-settings/CoverageTrack.d.ts +1 -1
- package/dist/composites/cap-settings/EventBucketStrip.d.ts +1 -1
- package/dist/composites/cap-settings/EventHeatmap.d.ts +1 -1
- package/dist/composites/cap-settings/MaskShapeCanvas.d.ts +1 -1
- package/dist/composites/cap-settings/MotionZonesSettings.d.ts +1 -1
- package/dist/composites/cap-settings/PrivacyMaskSettings.d.ts +1 -1
- package/dist/composites/cap-settings/PtzPanel.d.ts +1 -1
- package/dist/composites/cap-settings/RecordingPanel.d.ts +1 -1
- package/dist/composites/cap-settings/RecordingRulesEditor.d.ts +1 -1
- package/dist/composites/cap-settings/RecordingSettings.d.ts +1 -1
- package/dist/composites/cap-settings/RecordingTimeline.d.ts +1 -1
- package/dist/composites/cap-settings/ScheduleBandsEditor.d.ts +7 -0
- package/dist/composites/cap-settings/TimelineControls.d.ts +1 -1
- package/dist/composites/cap-settings/event-thumb.d.ts +3 -3
- package/dist/composites/cap-settings/recording-config-form.d.ts +30 -1
- package/dist/composites/code-block.d.ts +1 -1
- package/dist/composites/config-form-builder.d.ts +1 -1
- package/dist/composites/config-form-field.d.ts +3 -3
- package/dist/composites/confirm-action-button.d.ts +1 -1
- package/dist/composites/confirm-dialog.d.ts +1 -1
- package/dist/composites/data-table/data-table-header.d.ts +1 -1
- package/dist/composites/data-table/data-table-pagination.d.ts +1 -1
- package/dist/composites/data-table/data-table-row.d.ts +1 -1
- package/dist/composites/data-table/data-table.d.ts +1 -1
- package/dist/composites/data-table.d.ts +1 -1
- package/dist/composites/detection-canvas.d.ts +1 -1
- package/dist/composites/detection-overlay.d.ts +1 -1
- package/dist/composites/detection-result-tree.d.ts +1 -1
- package/dist/composites/dev-shell.d.ts +1 -1
- package/dist/composites/device-activity-panel.d.ts +1 -1
- package/dist/composites/device-card.d.ts +1 -1
- package/dist/composites/device-controls/brightness-panel.d.ts +1 -1
- package/dist/composites/device-controls/climate-panel.d.ts +1 -1
- package/dist/composites/device-controls/control-panel.d.ts +1 -1
- package/dist/composites/device-controls/cover-hero-card.d.ts +1 -1
- package/dist/composites/device-controls/fan-hero-card.d.ts +1 -1
- package/dist/composites/device-controls/fan-panel.d.ts +1 -1
- package/dist/composites/device-controls/humidifier-control.d.ts +1 -1
- package/dist/composites/device-controls/index.d.ts +5 -5
- package/dist/composites/device-controls/light-hero-card.d.ts +1 -1
- package/dist/composites/device-controls/lock-hero-card.d.ts +1 -1
- package/dist/composites/device-controls/lock-panel.d.ts +1 -1
- package/dist/composites/device-controls/media-player-hero-card.d.ts +1 -1
- package/dist/composites/device-controls/media-player-panel.d.ts +1 -1
- package/dist/composites/device-controls/panel-controls.d.ts +8 -8
- package/dist/composites/device-controls/popover-row-action.d.ts +1 -1
- package/dist/composites/device-controls/radial-gauge.d.ts +1 -1
- package/dist/composites/device-controls/thermostat-hero-card.d.ts +1 -1
- package/dist/composites/device-controls/valve-control.d.ts +1 -1
- package/dist/composites/device-controls/water-heater-control.d.ts +1 -1
- package/dist/composites/device-export-panel.d.ts +1 -1
- package/dist/composites/device-grid.d.ts +1 -1
- package/dist/composites/device-item/actions.d.ts +1 -1
- package/dist/composites/device-item/children-accordion.d.ts +1 -1
- package/dist/composites/device-item/reboot-quick-action.d.ts +1 -1
- package/dist/composites/device-list/icon-action.d.ts +1 -1
- package/dist/composites/device-list/index.d.ts +2 -2
- package/dist/composites/device-list/multi-select.d.ts +1 -1
- package/dist/composites/device-list/type-filter.d.ts +1 -1
- package/dist/composites/discovery-panel.d.ts +1 -1
- package/dist/composites/doorbell-recent-panel.d.ts +1 -1
- package/dist/composites/empty-state.d.ts +1 -1
- package/dist/composites/error-box.d.ts +1 -1
- package/dist/composites/event-stream.d.ts +2 -2
- package/dist/composites/filter-bar.d.ts +1 -1
- package/dist/composites/form-field.d.ts +1 -1
- package/dist/composites/hls-video.d.ts +1 -1
- package/dist/composites/image-selector.d.ts +1 -1
- package/dist/composites/index.d.ts +4 -4
- package/dist/composites/inference-config-selector.d.ts +1 -1
- package/dist/composites/kebab-menu.d.ts +1 -1
- package/dist/composites/key-value-list.d.ts +1 -1
- package/dist/composites/log-stream.d.ts +2 -2
- package/dist/composites/login-form.d.ts +1 -1
- package/dist/composites/node-picker.d.ts +1 -1
- package/dist/composites/page-header.d.ts +1 -1
- package/dist/composites/phase-icon.d.ts +1 -1
- package/dist/composites/pipeline-builder.d.ts +1 -1
- package/dist/composites/pipeline-runtime-selector.d.ts +1 -1
- package/dist/composites/pipeline-step.d.ts +3 -3
- package/dist/composites/pipeline-tree-matrix.d.ts +1 -1
- package/dist/composites/provider-badge.d.ts +1 -1
- package/dist/composites/ptz-overlay.d.ts +1 -1
- package/dist/composites/qr-code.d.ts +1 -1
- package/dist/composites/response-log.d.ts +1 -1
- package/dist/composites/scope-picker.d.ts +1 -1
- package/dist/composites/slide-over-panel.d.ts +1 -1
- package/dist/composites/snapshot-button.d.ts +1 -1
- package/dist/composites/stat-card.d.ts +1 -1
- package/dist/composites/state-values-stream.d.ts +1 -1
- package/dist/composites/status-badge.d.ts +1 -1
- package/dist/composites/step-timings.d.ts +1 -1
- package/dist/composites/step-tree-master.d.ts +1 -1
- package/dist/composites/stream-panel.d.ts +1 -1
- package/dist/composites/timezone-selector.d.ts +1 -1
- package/dist/composites/version-badge.d.ts +2 -2
- package/dist/composites/widget-panel.d.ts +2 -2
- package/dist/contexts/custom-field-renderers.d.ts +1 -1
- package/dist/contexts/device-context.d.ts +1 -1
- package/dist/contexts/player-overlays.d.ts +1 -1
- package/dist/contexts/system-context.d.ts +1 -1
- package/dist/contexts/vod-playback.d.ts +1 -1
- package/dist/contexts/widget-registry.d.ts +1 -1
- package/dist/contexts/zone-editing.d.ts +1 -1
- package/dist/generated/system-hooks.d.ts +56 -0
- package/dist/hooks/index.d.ts +2 -2
- package/dist/index.cjs +2757 -366
- package/dist/index.js +2730 -366
- package/dist/primitives/bottom-sheet.d.ts +1 -1
- package/dist/primitives/collapsible-card.d.ts +1 -1
- package/dist/primitives/dialog.d.ts +6 -6
- package/dist/primitives/dropdown.d.ts +3 -3
- package/dist/primitives/floating-panel.d.ts +1 -1
- package/dist/primitives/mobile-drawer.d.ts +1 -1
- package/dist/primitives/popover.d.ts +3 -3
- package/dist/primitives/tabs.d.ts +4 -4
- package/dist/primitives/tooltip.d.ts +3 -3
- package/dist/theme/index.cjs +0 -3
- package/dist/theme/index.js +0 -2
- package/dist/theme/theme-provider.d.ts +1 -1
- package/package.json +11 -5
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/theme/index.cjs.map +0 -1
- package/dist/theme/index.js.map +0 -1
|
@@ -56,5 +56,5 @@ interface AddonGlobalSettingsFormProps {
|
|
|
56
56
|
*/
|
|
57
57
|
readonly onOverrideChange?: (patch: Record<string, unknown>, effective: Record<string, unknown>) => void;
|
|
58
58
|
}
|
|
59
|
-
export declare function AddonGlobalSettingsForm({ trpc, addonId, nodeId, title, disabled, onAfterChange, refreshToken, collapsible, defaultOpen, mode, onOverrideChange, }: AddonGlobalSettingsFormProps): import("react
|
|
59
|
+
export declare function AddonGlobalSettingsForm({ trpc, addonId, nodeId, title, disabled, onAfterChange, refreshToken, collapsible, defaultOpen, mode, onOverrideChange, }: AddonGlobalSettingsFormProps): import("react").JSX.Element;
|
|
60
60
|
export {};
|
|
@@ -12,4 +12,4 @@ export interface AgentStepEditorProps {
|
|
|
12
12
|
readonly onChangePatch?: (next: CameraStepOverridePatch | null) => void;
|
|
13
13
|
readonly engineFormat: string;
|
|
14
14
|
}
|
|
15
|
-
export declare function AgentStepEditor(props: AgentStepEditorProps): import("react
|
|
15
|
+
export declare function AgentStepEditor(props: AgentStepEditorProps): import("react").JSX.Element;
|
|
@@ -16,4 +16,4 @@ export interface AppShellProps {
|
|
|
16
16
|
children: ReactNode;
|
|
17
17
|
className?: string;
|
|
18
18
|
}
|
|
19
|
-
export declare function AppShell({ sidebar, header, mobileLogo, mobileActions, children, className }: AppShellProps): import("react
|
|
19
|
+
export declare function AppShell({ sidebar, header, mobileLogo, mobileActions, children, className, }: AppShellProps): import("react").JSX.Element;
|
|
@@ -7,4 +7,4 @@ export interface SidebarItemProps {
|
|
|
7
7
|
active?: boolean;
|
|
8
8
|
className?: string;
|
|
9
9
|
}
|
|
10
|
-
export declare function SidebarItem({ label, icon: Icon, href, badge, active, className, }: SidebarItemProps): import("react
|
|
10
|
+
export declare function SidebarItem({ label, icon: Icon, href, badge, active, className, }: SidebarItemProps): import("react").JSX.Element;
|
|
@@ -11,4 +11,4 @@ export interface SidebarProps {
|
|
|
11
11
|
onNavigate?: () => void;
|
|
12
12
|
className?: string;
|
|
13
13
|
}
|
|
14
|
-
export declare function Sidebar({ logo, sections, footer, onNavigate, className }: SidebarProps): import("react
|
|
14
|
+
export declare function Sidebar({ logo, sections, footer, onNavigate, className }: SidebarProps): import("react").JSX.Element;
|
|
@@ -17,4 +17,4 @@ export interface AudioClassificationListProps {
|
|
|
17
17
|
/**
|
|
18
18
|
* Displays audio classification results as a ranked list with score bars.
|
|
19
19
|
*/
|
|
20
|
-
export declare function AudioClassificationList({ classifications, processing, inferenceMs, maxItems, className, }: AudioClassificationListProps): import("react
|
|
20
|
+
export declare function AudioClassificationList({ classifications, processing, inferenceMs, maxItems, className, }: AudioClassificationListProps): import("react").JSX.Element;
|
|
@@ -32,4 +32,4 @@ export interface AudioLevelWaveformProps {
|
|
|
32
32
|
* Designed to be fed from the `pipeline.audio-inference-result` event
|
|
33
33
|
* (each chunk, ~0.5s, produces one sample via `frame.level.dbfs`).
|
|
34
34
|
*/
|
|
35
|
-
export declare function AudioLevelWaveform({ currentDbfs, durationSec, maxSamples, height, className, color, clipColor, clipThreshold, minDbfs, }: AudioLevelWaveformProps): import("react
|
|
35
|
+
export declare function AudioLevelWaveform({ currentDbfs, durationSec, maxSamples, height, className, color, clipColor, clipThreshold, minDbfs, }: AudioLevelWaveformProps): import("react").JSX.Element;
|
|
@@ -17,4 +17,4 @@ export interface AudioWaveformProps {
|
|
|
17
17
|
* Renders a waveform from Float32Array audio samples.
|
|
18
18
|
* Downsamples to pixel resolution for performance.
|
|
19
19
|
*/
|
|
20
|
-
export declare function AudioWaveform({ samples, sampleRate, height, className, color, bgColor, }: AudioWaveformProps): import("react
|
|
20
|
+
export declare function AudioWaveform({ samples, sampleRate, height, className, color, bgColor, }: AudioWaveformProps): import("react").JSX.Element;
|
|
@@ -12,4 +12,4 @@ export interface BatteryBadgeProps {
|
|
|
12
12
|
readonly variant?: 'compact' | 'full';
|
|
13
13
|
readonly className?: string;
|
|
14
14
|
}
|
|
15
|
-
export declare function BatteryBadge({ status, variant, className }: BatteryBadgeProps): import("react
|
|
15
|
+
export declare function BatteryBadge({ status, variant, className }: BatteryBadgeProps): import("react").JSX.Element | null;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
1
2
|
export interface BreadcrumbItem {
|
|
2
3
|
/** Display label */
|
|
3
4
|
label: string;
|
|
@@ -22,4 +23,4 @@ export interface BreadcrumbProps {
|
|
|
22
23
|
* ]} />
|
|
23
24
|
* ```
|
|
24
25
|
*/
|
|
25
|
-
export declare function Breadcrumb({ items, className }: BreadcrumbProps):
|
|
26
|
+
export declare function Breadcrumb({ items, className }: BreadcrumbProps): React.JSX.Element;
|
|
@@ -102,6 +102,15 @@ export interface CameraStreamPlayerProps {
|
|
|
102
102
|
muted?: boolean;
|
|
103
103
|
/** Show toolbar controls (default: true) */
|
|
104
104
|
showControls?: boolean;
|
|
105
|
+
/** Show a live client-side WebRTC stats overlay (bitrate/fps/res/RTT),
|
|
106
|
+
* computed from the PeerConnection's getStats(). Default: false. */
|
|
107
|
+
showStats?: boolean;
|
|
108
|
+
/** DEBUG: when provided, polls inbound-video getStats() ~1 Hz during playback
|
|
109
|
+
* and reports per-window health metrics (frames received/decoded/dropped,
|
|
110
|
+
* freezes, jitter, playback-clock advance). The embed forwards these over the
|
|
111
|
+
* existing host log bridge (`{type:'log'}`), so they respect the app's
|
|
112
|
+
* debug-mode flag. Used to diagnose recorded VOD-over-WebRTC stutter. */
|
|
113
|
+
onPlaybackStats?: (data: Record<string, unknown>) => void;
|
|
105
114
|
/** Additional CSS classes for the root container */
|
|
106
115
|
className?: string;
|
|
107
116
|
/** Called on connection state change */
|
|
@@ -182,6 +191,29 @@ export interface CameraStreamPlayerProps {
|
|
|
182
191
|
* Use for network simulation (benchmark) or manual tier forcing.
|
|
183
192
|
*/
|
|
184
193
|
hintsOverride?: Partial<ClientStreamHints>;
|
|
194
|
+
/**
|
|
195
|
+
* Host-driven fast reconnect. Bump this number (monotonic) to force a
|
|
196
|
+
* full reconnect WITHOUT remounting the player — used by the embed when
|
|
197
|
+
* the native shell detects a network change (Wi-Fi↔cellular) or returns
|
|
198
|
+
* from background. Because `cleanup()` no longer clears `srcObject`, the
|
|
199
|
+
* LAST DECODED FRAME stays on screen across the reconnect (no black
|
|
200
|
+
* flash, no covering loader). The initial value is ignored — only
|
|
201
|
+
* changes trigger a reconnect. Distinct from remounting via `streamKey`,
|
|
202
|
+
* which blanks the element.
|
|
203
|
+
*/
|
|
204
|
+
reconnectSignal?: number;
|
|
205
|
+
/**
|
|
206
|
+
* Optional control data-channel hook (client-offer mode only). When
|
|
207
|
+
* provided, the player opens a `camstack-control` `RTCDataChannel` on the
|
|
208
|
+
* PeerConnection BEFORE building the offer (so it is negotiated into the
|
|
209
|
+
* m=application section) and hands the channel to this callback for each new
|
|
210
|
+
* connection. Used by the recorded-playback timeline embed to drive the
|
|
211
|
+
* broker's `TimelineSession` (seek / scrub-commit / play-rate / go-live) and
|
|
212
|
+
* receive server state/position over the SAME WebRTC session that carries the
|
|
213
|
+
* unified live-or-recorded `<video>` track. Omit it (the default) for a plain
|
|
214
|
+
* live player — no data channel is created and behaviour is unchanged.
|
|
215
|
+
*/
|
|
216
|
+
onControlChannel?: (channel: RTCDataChannel) => void;
|
|
185
217
|
}
|
|
186
|
-
export declare function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay, muted: initialMuted, showControls, className, onStateChange, onError, overlay, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, getSessionState, reoffer, posterUrl, hintsOverride, }: CameraStreamPlayerProps): import("react
|
|
218
|
+
export declare function CameraStreamPlayer({ serverUrl, streamKey, label, autoPlay, muted: initialMuted, showControls, showStats, onPlaybackStats, className, onStateChange, onError, overlay, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, getSessionState, reoffer, posterUrl, hintsOverride, reconnectSignal, onControlChannel, }: CameraStreamPlayerProps): import("react").JSX.Element;
|
|
187
219
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
interface AutotrackSectionProps {
|
|
2
2
|
readonly deviceId: number;
|
|
3
3
|
}
|
|
4
|
-
export declare function AutotrackSection({ deviceId }: AutotrackSectionProps): import("react
|
|
4
|
+
export declare function AutotrackSection({ deviceId }: AutotrackSectionProps): import("react").JSX.Element;
|
|
5
5
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { CapSettingsComponentProps } from './index';
|
|
2
|
-
export declare function ConsumablesPanel({ deviceId }: CapSettingsComponentProps): import("react
|
|
2
|
+
export declare function ConsumablesPanel({ deviceId }: CapSettingsComponentProps): import("react").JSX.Element;
|
|
@@ -8,5 +8,5 @@ interface CoverageTrackProps {
|
|
|
8
8
|
/** Called with the absolute ms a click maps to within the window. */
|
|
9
9
|
readonly onSeek: (clickMs: number) => void;
|
|
10
10
|
}
|
|
11
|
-
export declare function CoverageTrack({ windowFrom, windowTo, spans, playheadMs, onSeek, }: CoverageTrackProps): import("react
|
|
11
|
+
export declare function CoverageTrack({ windowFrom, windowTo, spans, playheadMs, onSeek, }: CoverageTrackProps): import("react").JSX.Element;
|
|
12
12
|
export {};
|
|
@@ -21,5 +21,5 @@ interface EventBucketStripProps {
|
|
|
21
21
|
/** Called when the user clicks "Load more". */
|
|
22
22
|
readonly onLoadMore: () => void;
|
|
23
23
|
}
|
|
24
|
-
export declare function EventBucketStrip({ clips, loading, busyKey, onPlay, enabledKinds, onToggleKind, hasMore, onLoadMore }: EventBucketStripProps): import("react
|
|
24
|
+
export declare function EventBucketStrip({ clips, loading, busyKey, onPlay, enabledKinds, onToggleKind, hasMore, onLoadMore, }: EventBucketStripProps): import("react").JSX.Element;
|
|
25
25
|
export {};
|
|
@@ -6,5 +6,5 @@ interface EventHeatmapProps {
|
|
|
6
6
|
readonly selectedIndex: number | null;
|
|
7
7
|
readonly onSelectBucket: (index: number) => void;
|
|
8
8
|
}
|
|
9
|
-
export declare function EventHeatmap({ windowFrom, windowTo, buckets, selectedIndex, onSelectBucket }: EventHeatmapProps): import("react
|
|
9
|
+
export declare function EventHeatmap({ windowFrom, windowTo, buckets, selectedIndex, onSelectBucket, }: EventHeatmapProps): import("react").JSX.Element;
|
|
10
10
|
export {};
|
|
@@ -38,7 +38,7 @@ export interface MaskShapeCanvasProps {
|
|
|
38
38
|
readonly height: number;
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
|
-
declare function MaskShapeCanvasImpl({ items, selectedId, onSelect, onShapeChange, onDrawComplete, drawingKind, supportedShapes, transparent, backdrop, polygonVertices, grid, }: MaskShapeCanvasProps): import("react
|
|
41
|
+
declare function MaskShapeCanvasImpl({ items, selectedId, onSelect, onShapeChange, onDrawComplete, drawingKind, supportedShapes, transparent, backdrop, polygonVertices, grid, }: MaskShapeCanvasProps): import("react").JSX.Element;
|
|
42
42
|
/**
|
|
43
43
|
* Memoised export. The Konva scene is expensive to re-evaluate (many nodes per
|
|
44
44
|
* item + per-item drag-bound closures) and overlay parents re-render on every
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { CapSettingsComponentProps } from './index';
|
|
2
|
-
export declare function MotionZonesSettings({ deviceId }: CapSettingsComponentProps): import("react
|
|
2
|
+
export declare function MotionZonesSettings({ deviceId }: CapSettingsComponentProps): import("react").JSX.Element | null;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { CapSettingsComponentProps } from './index';
|
|
2
|
-
export declare function PrivacyMaskSettings({ deviceId }: CapSettingsComponentProps): import("react
|
|
2
|
+
export declare function PrivacyMaskSettings({ deviceId }: CapSettingsComponentProps): import("react").JSX.Element | null;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { CapSettingsComponentProps } from './index';
|
|
2
|
-
export declare function PtzPanel({ deviceId }: CapSettingsComponentProps): import("react
|
|
2
|
+
export declare function PtzPanel({ deviceId }: CapSettingsComponentProps): import("react").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { HostWidgetProps } from '../../widgets/host-widgets';
|
|
2
|
-
export declare function RecordingPanel({ deviceId }: HostWidgetProps): import("react
|
|
2
|
+
export declare function RecordingPanel({ deviceId }: HostWidgetProps): import("react").JSX.Element;
|
|
@@ -3,5 +3,5 @@ interface RecordingRulesEditorProps {
|
|
|
3
3
|
readonly rules: readonly RecordingRule[];
|
|
4
4
|
readonly onChange: (rules: RecordingRule[]) => void;
|
|
5
5
|
}
|
|
6
|
-
export declare function RecordingRulesEditor({ rules, onChange }: RecordingRulesEditorProps): import("react
|
|
6
|
+
export declare function RecordingRulesEditor({ rules, onChange }: RecordingRulesEditorProps): import("react").JSX.Element;
|
|
7
7
|
export {};
|
|
@@ -4,5 +4,5 @@ interface RecordingSettingsProps {
|
|
|
4
4
|
readonly saving: boolean;
|
|
5
5
|
readonly onSave: (config: RecordingConfig) => void;
|
|
6
6
|
}
|
|
7
|
-
export declare function RecordingSettings({ initial, saving, onSave }: RecordingSettingsProps): import("react
|
|
7
|
+
export declare function RecordingSettings({ initial, saving, onSave }: RecordingSettingsProps): import("react").JSX.Element;
|
|
8
8
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
interface RecordingTimelineProps {
|
|
2
2
|
readonly deviceId: number;
|
|
3
3
|
}
|
|
4
|
-
export declare function RecordingTimeline({ deviceId }: RecordingTimelineProps): import("react
|
|
4
|
+
export declare function RecordingTimeline({ deviceId }: RecordingTimelineProps): import("react").JSX.Element;
|
|
5
5
|
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { RecordingSchedule } from '@camstack/types';
|
|
2
|
+
interface ScheduleBandsEditorProps {
|
|
3
|
+
readonly schedules: readonly RecordingSchedule[];
|
|
4
|
+
readonly onChange: (schedules: RecordingSchedule[]) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function ScheduleBandsEditor({ schedules, onChange }: ScheduleBandsEditorProps): import("react").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -17,5 +17,5 @@ interface TimelineControlsProps {
|
|
|
17
17
|
* current view midpoint. Horizontal pan is wired via wheel events in
|
|
18
18
|
* RecordingTimeline directly.
|
|
19
19
|
*/
|
|
20
|
-
export declare function TimelineControls({ day, onDayChange, view, dayBounds, onViewChange, }: TimelineControlsProps): import("react
|
|
20
|
+
export declare function TimelineControls({ day, onDayChange, view, dayBounds, onViewChange, }: TimelineControlsProps): import("react").JSX.Element;
|
|
21
21
|
export {};
|
|
@@ -3,9 +3,9 @@ interface EventThumbProps {
|
|
|
3
3
|
readonly mediaUrl?: string;
|
|
4
4
|
readonly kind: ClipKind;
|
|
5
5
|
}
|
|
6
|
-
export declare function EventThumb({ mediaUrl, kind }: EventThumbProps): import("react
|
|
7
|
-
export declare function EventKindIcon({ kind, large }: {
|
|
6
|
+
export declare function EventThumb({ mediaUrl, kind }: EventThumbProps): import("react").JSX.Element;
|
|
7
|
+
export declare function EventKindIcon({ kind, large, }: {
|
|
8
8
|
readonly kind: ClipKind;
|
|
9
9
|
readonly large?: boolean;
|
|
10
|
-
}): import("react
|
|
10
|
+
}): import("react").JSX.Element;
|
|
11
11
|
export {};
|
|
@@ -1,5 +1,34 @@
|
|
|
1
|
-
import { RecordingRule, RecordingMode } from '@camstack/types';
|
|
1
|
+
import { RecordingRule, RecordingMode, RecordingConfig, RecordingStorageMode, RecordingSchedule, RecordingTriggers, RecordingRetention, CamProfile } from '@camstack/types';
|
|
2
2
|
export declare function emptyRule(): RecordingRule;
|
|
3
3
|
export declare function isTriggerMode(mode: RecordingMode): boolean;
|
|
4
4
|
export declare function withRuleAt(rules: readonly RecordingRule[], index: number, patch: Partial<RecordingRule>): RecordingRule[];
|
|
5
5
|
export declare function removeRuleAt(rules: readonly RecordingRule[], index: number): RecordingRule[];
|
|
6
|
+
/**
|
|
7
|
+
* The editable shape of the Basic recording form: the authoritative `mode` plus
|
|
8
|
+
* its mode-specific parameters. `schedules` are the recording time-bands (empty
|
|
9
|
+
* = always); `triggers`/buffers apply to `events`. Never carries `rules` — Base
|
|
10
|
+
* is mode-authoritative and the backend compiles `rules` from `mode`.
|
|
11
|
+
*/
|
|
12
|
+
export interface RecordingFormState {
|
|
13
|
+
readonly mode: RecordingStorageMode;
|
|
14
|
+
readonly profiles?: readonly CamProfile[];
|
|
15
|
+
readonly segmentSeconds?: number;
|
|
16
|
+
readonly schedules: readonly RecordingSchedule[];
|
|
17
|
+
readonly triggers: RecordingTriggers;
|
|
18
|
+
readonly preBufferSec?: number;
|
|
19
|
+
readonly postBufferSec?: number;
|
|
20
|
+
readonly retention?: RecordingRetention;
|
|
21
|
+
}
|
|
22
|
+
/** Read a persisted/migrated config into the Basic form state. `mode` is read
|
|
23
|
+
* directly; a legacy mode-less config falls back to continuous/off by `enabled`. */
|
|
24
|
+
export declare function formStateFromConfig(cfg: RecordingConfig): RecordingFormState;
|
|
25
|
+
/** Serialize the Basic form state back to the wire config. `enabled` is derived
|
|
26
|
+
* from `mode`; `rules`/singular `schedule` are never emitted. Schedules,
|
|
27
|
+
* triggers and buffers are preserved even when off so they survive a re-enable. */
|
|
28
|
+
export declare function configFromFormState(state: RecordingFormState): RecordingConfig;
|
|
29
|
+
/**
|
|
30
|
+
* A config is "advanced" when it carries `rules[]` that the backend could NOT
|
|
31
|
+
* cleanly collapse to a `mode` (the non-destructive `migrateRulesToMode` leaves
|
|
32
|
+
* `mode` absent). The settings UI opens such a config in the Advanced rules tab.
|
|
33
|
+
*/
|
|
34
|
+
export declare function isAdvancedConfig(cfg: RecordingConfig): boolean;
|
|
@@ -3,4 +3,4 @@ export interface CodeBlockProps {
|
|
|
3
3
|
maxHeight?: number;
|
|
4
4
|
className?: string;
|
|
5
5
|
}
|
|
6
|
-
export declare function CodeBlock({ children, maxHeight, className }: CodeBlockProps): import("react
|
|
6
|
+
export declare function CodeBlock({ children, maxHeight, className }: CodeBlockProps): import("react").JSX.Element;
|
|
@@ -14,5 +14,5 @@ interface FormBuilderProps {
|
|
|
14
14
|
/** Callback to clear a probe result when a field value changes */
|
|
15
15
|
onClearProbe?: (key: string) => void;
|
|
16
16
|
}
|
|
17
|
-
export declare function ConfigFormBuilder({ schema, values, onChange, disabled, translationFn, onTestField, probeResults, onClearProbe }: FormBuilderProps): import("react
|
|
17
|
+
export declare function ConfigFormBuilder({ schema, values, onChange, disabled, translationFn, onTestField, probeResults, onClearProbe, }: FormBuilderProps): import("react").JSX.Element;
|
|
18
18
|
export {};
|
|
@@ -44,14 +44,14 @@ export declare function NodeSelectField({ field, value, onChange, disabled, tran
|
|
|
44
44
|
onChange: (v: unknown) => void;
|
|
45
45
|
disabled?: boolean;
|
|
46
46
|
translationFn?: TranslationFn;
|
|
47
|
-
}): import("react
|
|
47
|
+
}): import("react").JSX.Element;
|
|
48
48
|
export declare function NodeMultiSelectField({ field, value, onChange, disabled, translationFn, }: {
|
|
49
49
|
field: ConfigNodeMultiSelectField;
|
|
50
50
|
value: unknown;
|
|
51
51
|
onChange: (v: unknown) => void;
|
|
52
52
|
disabled?: boolean;
|
|
53
53
|
translationFn?: TranslationFn;
|
|
54
|
-
}): import("react
|
|
54
|
+
}): import("react").JSX.Element;
|
|
55
55
|
/**
|
|
56
56
|
* Resolve a `ConfigCondition` against the form's flat values bag and the
|
|
57
57
|
* sibling-field list (used to recover schema defaults when the
|
|
@@ -66,5 +66,5 @@ export declare function NodeMultiSelectField({ field, value, onChange, disabled,
|
|
|
66
66
|
* rendered without instantiating a React subtree.
|
|
67
67
|
*/
|
|
68
68
|
export declare function isFieldVisible(field: ConfigField, values: Record<string, unknown>, allFields?: readonly ConfigField[]): boolean;
|
|
69
|
-
export declare function FormField({ field, values, onChange, disabled, translationFn, onTestField, externalProbe, allFields, onAction }: FormFieldProps): import("react
|
|
69
|
+
export declare function FormField({ field, values, onChange, disabled, translationFn, onTestField, externalProbe, allFields, onAction, }: FormFieldProps): import("react").JSX.Element | null;
|
|
70
70
|
export { FormField as ConfigFormField };
|
|
@@ -38,4 +38,4 @@ export interface ConfirmActionButtonProps<TResult> {
|
|
|
38
38
|
/** Called after `action` resolves, with the result. */
|
|
39
39
|
readonly onSuccess?: (result: TResult) => void;
|
|
40
40
|
}
|
|
41
|
-
export declare function ConfirmActionButton<TResult>({ label, icon: Icon, title, description, confirmLabel, triggerVariant, confirmVariant, size, disabled, className, action, onSuccess, }: ConfirmActionButtonProps<TResult>): import("react
|
|
41
|
+
export declare function ConfirmActionButton<TResult>({ label, icon: Icon, title, description, confirmLabel, triggerVariant, confirmVariant, size, disabled, className, action, onSuccess, }: ConfirmActionButtonProps<TResult>): import("react").JSX.Element;
|
|
@@ -9,5 +9,5 @@ interface ConfirmOptions {
|
|
|
9
9
|
export declare function useConfirm(): (options: ConfirmOptions) => Promise<boolean>;
|
|
10
10
|
export declare function ConfirmDialogProvider({ children }: {
|
|
11
11
|
children: ReactNode;
|
|
12
|
-
}): import("react
|
|
12
|
+
}): import("react").JSX.Element;
|
|
13
13
|
export {};
|
|
@@ -6,5 +6,5 @@ interface DataTableHeaderProps<T> {
|
|
|
6
6
|
stickyHeader?: boolean;
|
|
7
7
|
flexRender: typeof flexRender;
|
|
8
8
|
}
|
|
9
|
-
export declare function DataTableHeader<T>({ headerGroups, onSortingChange, stickyHeader, flexRender: render, }: DataTableHeaderProps<T>): import("react
|
|
9
|
+
export declare function DataTableHeader<T>({ headerGroups, onSortingChange, stickyHeader, flexRender: render, }: DataTableHeaderProps<T>): import("react").JSX.Element;
|
|
10
10
|
export {};
|
|
@@ -5,5 +5,5 @@ interface DataTablePaginationProps {
|
|
|
5
5
|
total: number;
|
|
6
6
|
onPaginationChange?: (pagination: PaginationState) => void;
|
|
7
7
|
}
|
|
8
|
-
export declare function DataTablePagination({ page, pageSize, total, onPaginationChange, }: DataTablePaginationProps): import("react
|
|
8
|
+
export declare function DataTablePagination({ page, pageSize, total, onPaginationChange, }: DataTablePaginationProps): import("react").JSX.Element;
|
|
9
9
|
export {};
|
|
@@ -6,5 +6,5 @@ interface DataTableRowProps<T> {
|
|
|
6
6
|
rowActions?: (row: T) => DataTableAction[];
|
|
7
7
|
flexRender: typeof flexRender;
|
|
8
8
|
}
|
|
9
|
-
export declare function DataTableRow<T>({ row, onRowClick, rowActions, flexRender: render, }: DataTableRowProps<T>): import("react
|
|
9
|
+
export declare function DataTableRow<T>({ row, onRowClick, rowActions, flexRender: render, }: DataTableRowProps<T>): import("react").JSX.Element;
|
|
10
10
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { DataTableProps } from './types';
|
|
2
|
-
export declare function DataTable<T>({ data, columns: userColumns, sorting, onSortingChange, filtering, onFilteringChange, pagination, onPaginationChange, loading, emptyState, rowActions, onRowClick, selectable, compact, stickyHeader, className, mobileMode, }: DataTableProps<T>): import("react
|
|
2
|
+
export declare function DataTable<T>({ data, columns: userColumns, sorting, onSortingChange, filtering, onFilteringChange, pagination, onPaginationChange, loading, emptyState, rowActions, onRowClick, selectable, compact, stickyHeader, className, mobileMode, }: DataTableProps<T>): import("react").JSX.Element;
|
|
@@ -34,4 +34,4 @@ export interface DataTableProps<T> {
|
|
|
34
34
|
/** Per-row className resolver (e.g. status-coloured backgrounds). */
|
|
35
35
|
readonly rowClassName?: (row: T, rowIndex: number) => string | undefined;
|
|
36
36
|
}
|
|
37
|
-
export declare function DataTable<T>({ columns, rows, rowKey, onRowClick, minWidthPx, emptyMessage, className, bordered, rowClassName, }: DataTableProps<T>): import("react
|
|
37
|
+
export declare function DataTable<T>({ columns, rows, rowKey, onRowClick, minWidthPx, emptyMessage, className, bordered, rowClassName, }: DataTableProps<T>): import("react").JSX.Element | null;
|
|
@@ -26,4 +26,4 @@ export interface DetectionCanvasProps {
|
|
|
26
26
|
/** Border width for bboxes in px (default: 2) */
|
|
27
27
|
readonly borderWidth?: number;
|
|
28
28
|
}
|
|
29
|
-
export declare function DetectionCanvas({ src, imageWidth, imageHeight, detections, classColors, aspectRatio, className, placeholder, showConfidence, minConfidence, borderWidth, }: DetectionCanvasProps): import("react
|
|
29
|
+
export declare function DetectionCanvas({ src, imageWidth, imageHeight, detections, classColors, aspectRatio, className, placeholder, showConfidence, minConfidence, borderWidth, }: DetectionCanvasProps): import("react").JSX.Element;
|
|
@@ -6,4 +6,4 @@ export interface DetectionOverlayProps {
|
|
|
6
6
|
readonly showDetections?: boolean;
|
|
7
7
|
readonly showPhaseIndicator?: boolean;
|
|
8
8
|
}
|
|
9
|
-
export declare function DetectionOverlay({ detections: { motion, motionRaw, detection, phase }, showMotionZones, showMotionRaw, showDetections, showPhaseIndicator, }: DetectionOverlayProps): import("react
|
|
9
|
+
export declare function DetectionOverlay({ detections: { motion, motionRaw, detection, phase }, showMotionZones, showMotionRaw, showDetections, showPhaseIndicator, }: DetectionOverlayProps): import("react").JSX.Element | null;
|
|
@@ -8,4 +8,4 @@ export interface DetectionResultTreeProps {
|
|
|
8
8
|
/** Callback when a detection's visibility is toggled */
|
|
9
9
|
readonly onToggleVisibility?: (key: string, visible: boolean) => void;
|
|
10
10
|
}
|
|
11
|
-
export declare function DetectionResultTree({ detections, classColors, className, hiddenKeys, onToggleVisibility, }: DetectionResultTreeProps): import("react
|
|
11
|
+
export declare function DetectionResultTree({ detections, classColors, className, hiddenKeys, onToggleVisibility, }: DetectionResultTreeProps): import("react").JSX.Element;
|
|
@@ -16,5 +16,5 @@ interface DevShellContextValue {
|
|
|
16
16
|
logout: () => void;
|
|
17
17
|
}
|
|
18
18
|
export declare function useDevShell(): DevShellContextValue;
|
|
19
|
-
export declare function DevShell({ children, serverUrl, title
|
|
19
|
+
export declare function DevShell({ children, serverUrl, title }: DevShellProps): import("react").JSX.Element;
|
|
20
20
|
export {};
|
|
@@ -29,5 +29,5 @@ declare const TABS: readonly [{
|
|
|
29
29
|
readonly icon: import('react').ForwardRefExoticComponent<Omit<import('lucide-react').LucideProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
|
|
30
30
|
}];
|
|
31
31
|
export type ActivityTabId = (typeof TABS)[number]['id'];
|
|
32
|
-
export declare function DeviceActivityPanel({ deviceId, containerDeviceId, defaultEventCategories, defaultStateCaps, initialTab, className, maxHeight, }: DeviceActivityPanelProps): import("react
|
|
32
|
+
export declare function DeviceActivityPanel({ deviceId, containerDeviceId, defaultEventCategories, defaultStateCaps, initialTab, className, maxHeight, }: DeviceActivityPanelProps): import("react").JSX.Element;
|
|
33
33
|
export {};
|
|
@@ -35,4 +35,4 @@ export interface DeviceCardProps {
|
|
|
35
35
|
/** Additional CSS classes */
|
|
36
36
|
className?: string;
|
|
37
37
|
}
|
|
38
|
-
export declare function DeviceCard({ title, subtitle, status, selected, onClick, badges, actions, offlineAction, className, }: DeviceCardProps): import("react
|
|
38
|
+
export declare function DeviceCard({ title, subtitle, status, selected, onClick, badges, actions, offlineAction, className, }: DeviceCardProps): import("react").JSX.Element;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { ControlPanelProps } from './types';
|
|
3
|
-
export declare function BrightnessPanel({ trpc, deviceId, layout, optimistic }: ControlPanelProps): ReactNode;
|
|
3
|
+
export declare function BrightnessPanel({ trpc, deviceId, layout, optimistic, }: ControlPanelProps): ReactNode;
|
|
@@ -13,4 +13,4 @@ export declare const MODE_COLOR: Record<HvacMode, string>;
|
|
|
13
13
|
* matches the borderless cover/lock inline visual language.
|
|
14
14
|
*/
|
|
15
15
|
export declare const MODE_TEXT_COLOR: Record<HvacMode, string>;
|
|
16
|
-
export declare function ClimatePanel({ trpc, deviceId, features: _features, layout, optimistic }: ControlPanelProps): ReactNode;
|
|
16
|
+
export declare function ClimatePanel({ trpc, deviceId, features: _features, layout, optimistic, }: ControlPanelProps): ReactNode;
|
|
@@ -7,4 +7,4 @@ export declare function toTimeInput(value: string): string;
|
|
|
7
7
|
/** Trim an HA datetime value to the `<input type=datetime-local>` shape
|
|
8
8
|
* ('YYYY-MM-DDTHH:MM'). Accepts both 'T'- and space-separated forms. */
|
|
9
9
|
export declare function toDateTimeInput(value: string): string;
|
|
10
|
-
export declare function ControlPanel({ trpc, deviceId, features: _features, layout, optimistic }: ControlPanelProps): ReactNode;
|
|
10
|
+
export declare function ControlPanel({ trpc, deviceId, features: _features, layout, optimistic, }: ControlPanelProps): ReactNode;
|
|
@@ -24,4 +24,4 @@ import { DeviceControlProps } from './control-registry';
|
|
|
24
24
|
* Only hides when the device truly has no cover cap — a transient undefined slice
|
|
25
25
|
* renders a neutral "unknown" state with all buttons still mounted.
|
|
26
26
|
*/
|
|
27
|
-
export declare function CoverHeroCard({ trpc, deviceId, features, optimistic }: DeviceControlProps): ReactNode;
|
|
27
|
+
export declare function CoverHeroCard({ trpc, deviceId, features, optimistic, }: DeviceControlProps): ReactNode;
|
|
@@ -18,4 +18,4 @@ import { DeviceControlProps } from './control-registry';
|
|
|
18
18
|
* Composes two caps: `switch` (on/off) + `fan-control` (speed / oscillate).
|
|
19
19
|
* Cap-gated on `switch` (always present on a Fan) — returns null without it.
|
|
20
20
|
*/
|
|
21
|
-
export declare function FanHeroCard({ trpc, deviceId, features, optimistic }: DeviceControlProps): ReactNode;
|
|
21
|
+
export declare function FanHeroCard({ trpc, deviceId, features, optimistic, }: DeviceControlProps): ReactNode;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { ControlPanelProps } from './types';
|
|
3
|
-
export declare function FanPanel({ trpc, deviceId, features, layout, optimistic }: ControlPanelProps): ReactNode;
|
|
3
|
+
export declare function FanPanel({ trpc, deviceId, features, layout, optimistic, }: ControlPanelProps): ReactNode;
|
|
@@ -24,7 +24,7 @@ export declare function humidifierTint(on: boolean, action: string | null): Humi
|
|
|
24
24
|
* HumidifierInlineControl — compact on/off toggle + current→target readout
|
|
25
25
|
* for a device-list row. Must NOT blow out the row width.
|
|
26
26
|
*/
|
|
27
|
-
export declare function HumidifierInlineControl({ trpc, deviceId, optimistic }: DeviceControlProps): ReactNode;
|
|
27
|
+
export declare function HumidifierInlineControl({ trpc, deviceId, optimistic, }: DeviceControlProps): ReactNode;
|
|
28
28
|
/**
|
|
29
29
|
* HumidifierHeroCard — full control surface for the device-detail hero.
|
|
30
30
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ControlColumn, ValueReadout, FILL, RIGHT, CENTER, type ControlAlign, Stepper, SlideToggle, ArcKnob, GripTrack } from './atoms';
|
|
1
|
+
export { ControlColumn, ValueReadout, FILL, RIGHT, CENTER, type ControlAlign, Stepper, SlideToggle, ArcKnob, GripTrack, } from './atoms';
|
|
2
2
|
export { RadialGauge, type RadialGaugeProps } from './radial-gauge';
|
|
3
3
|
export { TapToggle, type TapToggleProps } from './tap-toggle';
|
|
4
4
|
export { ButtonControl, ButtonHeroCard } from './button-control';
|
|
@@ -12,14 +12,14 @@ export { MediaPlayerPanel, STATE_COLOR } from './media-player-panel';
|
|
|
12
12
|
export { ControlPanel } from './control-panel';
|
|
13
13
|
export { CONTROL_CAP_NAMES, type ControlCapName, type ControlPanelProps } from './types';
|
|
14
14
|
export { PopoverRowAction } from './popover-row-action';
|
|
15
|
-
export { SensorValueAtom, ROLE_DESCRIPTOR, type SensorDescriptor, type SensorValueAtomProps } from './sensor-value-atom';
|
|
15
|
+
export { SensorValueAtom, ROLE_DESCRIPTOR, type SensorDescriptor, type SensorValueAtomProps, } from './sensor-value-atom';
|
|
16
16
|
export { DEVICE_TYPE_CONTROL, CONTROL_FILLS, resolveDeviceControl, resolveControlAlign, coverHighlight, type DeviceTypeControl, type DeviceControlProps, type ControlPlacement, } from './control-registry';
|
|
17
17
|
export { OfflineBadge, type OfflineBadgeProps } from './offline-badge';
|
|
18
|
-
export { CoverInlineControl, type CoverHighlightVariant, type CoverButtonHighlight } from './cover-inline';
|
|
18
|
+
export { CoverInlineControl, type CoverHighlightVariant, type CoverButtonHighlight, } from './cover-inline';
|
|
19
19
|
export { CoverHeroCard } from './cover-hero-card';
|
|
20
20
|
export { VacuumInlineControl, VacuumHeroCard, vacuumStateMeta, tankAlert, type VacuumStateMeta, type TankKind, type TankAlert, } from './vacuum-control';
|
|
21
|
-
export { LawnMowerInlineControl, LawnMowerHeroCard, lawnMowerActivityMeta, type LawnMowerActivityMeta } from './lawn-mower-control';
|
|
22
|
-
export { ValveInlineControl, ValveHeroCard, valveStateMeta, type ValveStateMeta } from './valve-control';
|
|
21
|
+
export { LawnMowerInlineControl, LawnMowerHeroCard, lawnMowerActivityMeta, type LawnMowerActivityMeta, } from './lawn-mower-control';
|
|
22
|
+
export { ValveInlineControl, ValveHeroCard, valveStateMeta, type ValveStateMeta, } from './valve-control';
|
|
23
23
|
export { HumidifierInlineControl, HumidifierHeroCard, humidifierTint, type HumidifierTint, type HumidifierAction, } from './humidifier-control';
|
|
24
24
|
export { WaterHeaterInlineControl, WaterHeaterHeroCard, waterHeaterTint, waterHeaterPhase, type WaterHeaterTint, type WaterHeaterPhase, } from './water-heater-control';
|
|
25
25
|
export { WeatherInlineControl, WeatherHeroCard, weatherTint, weatherConditionMeta, type WeatherTint, type WeatherConditionMeta, type WeatherGlyph, } from './weather-control';
|
|
@@ -13,4 +13,4 @@ import { DeviceControlProps } from './control-registry';
|
|
|
13
13
|
* Composes three caps: `switch` (on/off), `brightness` (level), `color` (CT).
|
|
14
14
|
* Cap-gated on `switch` (always present on a Light) — returns null without it.
|
|
15
15
|
*/
|
|
16
|
-
export declare function LightHeroCard({ trpc, deviceId, features, optimistic }: DeviceControlProps): ReactNode;
|
|
16
|
+
export declare function LightHeroCard({ trpc, deviceId, features, optimistic, }: DeviceControlProps): ReactNode;
|
|
@@ -12,4 +12,4 @@ import { DeviceControlProps } from './control-registry';
|
|
|
12
12
|
*
|
|
13
13
|
* Cap-gated: returns null when the device has no lockControl cap.
|
|
14
14
|
*/
|
|
15
|
-
export declare function LockHeroCard({ trpc, deviceId, features, optimistic }: DeviceControlProps): ReactNode;
|
|
15
|
+
export declare function LockHeroCard({ trpc, deviceId, features, optimistic, }: DeviceControlProps): ReactNode;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { ControlPanelProps } from './types';
|
|
3
|
-
export declare function LockPanel({ trpc, deviceId, layout, optimistic, features }: ControlPanelProps): ReactNode;
|
|
3
|
+
export declare function LockPanel({ trpc, deviceId, layout, optimistic, features, }: ControlPanelProps): ReactNode;
|
|
@@ -14,4 +14,4 @@ import { DeviceControlProps } from './control-registry';
|
|
|
14
14
|
*
|
|
15
15
|
* Cap-gated on `media-player` — returns null when the device lacks the cap.
|
|
16
16
|
*/
|
|
17
|
-
export declare function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic }: DeviceControlProps): ReactNode;
|
|
17
|
+
export declare function MediaPlayerHeroCard({ trpc, deviceId, features, optimistic, }: DeviceControlProps): ReactNode;
|
|
@@ -6,4 +6,4 @@ import { MediaPlayerState } from '@camstack/types';
|
|
|
6
6
|
* Build fails if a state is added and not reflected here.
|
|
7
7
|
*/
|
|
8
8
|
export declare const STATE_COLOR: Record<MediaPlayerState, string>;
|
|
9
|
-
export declare function MediaPlayerPanel({ trpc, deviceId, features: _features, layout, optimistic }: ControlPanelProps): ReactNode;
|
|
9
|
+
export declare function MediaPlayerPanel({ trpc, deviceId, features: _features, layout, optimistic, }: ControlPanelProps): ReactNode;
|
|
@@ -7,11 +7,11 @@ export { FanHeroCard } from './fan-hero-card';
|
|
|
7
7
|
export { SwitchHeroCard } from './switch-hero-card';
|
|
8
8
|
export { MediaPlayerHeroCard } from './media-player-hero-card';
|
|
9
9
|
export { AlarmHeroCard, AlarmInlineControl as AlarmPanelInlineControl } from './alarm-hero-card';
|
|
10
|
-
export declare function SwitchInlineControl({ trpc, deviceId, features, optimistic }: DeviceControlProps): ReactNode;
|
|
11
|
-
export declare function LockInlineControl({ trpc, deviceId, features, optimistic }: DeviceControlProps): ReactNode;
|
|
12
|
-
export declare function LightInlineControl({ trpc, deviceId, features, optimistic }: DeviceControlProps): ReactNode;
|
|
13
|
-
export declare function FanInlineControl({ trpc, deviceId, features, optimistic }: DeviceControlProps): ReactNode;
|
|
14
|
-
export declare function ThermostatInlineControl({ trpc, deviceId, features, optimistic }: DeviceControlProps): ReactNode;
|
|
15
|
-
export declare function MediaPlayerInlineControl({ trpc, deviceId, features, optimistic }: DeviceControlProps): ReactNode;
|
|
16
|
-
export declare function ControlInlineControl({ trpc, deviceId, features, optimistic }: DeviceControlProps): ReactNode;
|
|
17
|
-
export declare function ControlHeroCard({ trpc, deviceId, features, optimistic }: DeviceControlProps): ReactNode;
|
|
10
|
+
export declare function SwitchInlineControl({ trpc, deviceId, features, optimistic, }: DeviceControlProps): ReactNode;
|
|
11
|
+
export declare function LockInlineControl({ trpc, deviceId, features, optimistic, }: DeviceControlProps): ReactNode;
|
|
12
|
+
export declare function LightInlineControl({ trpc, deviceId, features, optimistic, }: DeviceControlProps): ReactNode;
|
|
13
|
+
export declare function FanInlineControl({ trpc, deviceId, features, optimistic, }: DeviceControlProps): ReactNode;
|
|
14
|
+
export declare function ThermostatInlineControl({ trpc, deviceId, features, optimistic, }: DeviceControlProps): ReactNode;
|
|
15
|
+
export declare function MediaPlayerInlineControl({ trpc, deviceId, features, optimistic, }: DeviceControlProps): ReactNode;
|
|
16
|
+
export declare function ControlInlineControl({ trpc, deviceId, features, optimistic, }: DeviceControlProps): ReactNode;
|
|
17
|
+
export declare function ControlHeroCard({ trpc, deviceId, features, optimistic, }: DeviceControlProps): ReactNode;
|
|
@@ -5,5 +5,5 @@ interface PopoverRowActionProps {
|
|
|
5
5
|
readonly title: string;
|
|
6
6
|
readonly children: ReactNode;
|
|
7
7
|
}
|
|
8
|
-
export declare function PopoverRowAction({ icon: Icon, title, children }: PopoverRowActionProps): ReactNode;
|
|
8
|
+
export declare function PopoverRowAction({ icon: Icon, title, children, }: PopoverRowActionProps): ReactNode;
|
|
9
9
|
export {};
|
|
@@ -17,4 +17,4 @@ export interface RadialGaugeProps {
|
|
|
17
17
|
* Circular gauge with an ArcKnob at `fraction` and centered children.
|
|
18
18
|
* The knob wrapper carries `data-testid="arc-knob"` for test assertions.
|
|
19
19
|
*/
|
|
20
|
-
export declare function RadialGauge({ fraction, color, children, onDragFraction }: RadialGaugeProps): ReactNode;
|
|
20
|
+
export declare function RadialGauge({ fraction, color, children, onDragFraction, }: RadialGaugeProps): ReactNode;
|