@camstack/ui-library 0.1.57 → 0.2.0
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 +4 -1
- package/dist/composites/breadcrumb.d.ts +2 -1
- package/dist/composites/camera-stream-player.d.ts +94 -2
- package/dist/composites/cap-settings/AutotrackSection.d.ts +1 -1
- package/dist/composites/cap-settings/ConsumablesPanel.d.ts +2 -0
- package/dist/composites/cap-settings/CoverageTrack.d.ts +12 -0
- package/dist/composites/cap-settings/EventBucketStrip.d.ts +25 -0
- package/dist/composites/cap-settings/EventHeatmap.d.ts +10 -0
- 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 +2 -0
- package/dist/composites/cap-settings/RecordingRulesEditor.d.ts +7 -0
- package/dist/composites/cap-settings/RecordingSettings.d.ts +8 -0
- package/dist/composites/cap-settings/RecordingTimeline.d.ts +5 -0
- package/dist/composites/cap-settings/ScheduleBandsEditor.d.ts +7 -0
- package/dist/composites/cap-settings/TimelineControls.d.ts +21 -0
- package/dist/composites/cap-settings/event-thumb.d.ts +11 -0
- package/dist/composites/cap-settings/index.d.ts +4 -0
- package/dist/composites/cap-settings/recording-config-form.d.ts +34 -0
- package/dist/composites/cap-settings/recording-spans.d.ts +22 -0
- package/dist/composites/cap-settings/recording-timeline-model.d.ts +84 -0
- 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 +5 -1
- package/dist/composites/device-card.d.ts +1 -1
- package/dist/composites/device-controls/alarm-hero-card.d.ts +24 -0
- package/dist/composites/device-controls/atoms.d.ts +81 -0
- package/dist/composites/device-controls/brightness-panel.d.ts +3 -0
- package/dist/composites/device-controls/button-control.d.ts +18 -0
- package/dist/composites/device-controls/climate-panel.d.ts +16 -0
- package/dist/composites/device-controls/container-primary-hero.d.ts +24 -0
- package/dist/composites/device-controls/container-primary.d.ts +46 -0
- package/dist/composites/device-controls/control-panel.d.ts +10 -0
- package/dist/composites/device-controls/control-registry.d.ts +74 -0
- package/dist/composites/device-controls/cover-hero-card.d.ts +27 -0
- package/dist/composites/device-controls/cover-inline.d.ts +27 -0
- package/dist/composites/device-controls/cover-panel.d.ts +3 -0
- package/dist/composites/device-controls/dummy-hero-card.d.ts +6 -0
- package/dist/composites/device-controls/fan-hero-card.d.ts +21 -0
- package/dist/composites/device-controls/fan-panel.d.ts +3 -0
- package/dist/composites/device-controls/humidifier-control.d.ts +37 -0
- package/dist/composites/device-controls/image-control.d.ts +24 -0
- package/dist/composites/device-controls/index.d.ts +33 -0
- package/dist/composites/device-controls/lawn-mower-control.d.ts +24 -0
- package/dist/composites/device-controls/light-hero-card.d.ts +16 -0
- package/dist/composites/device-controls/lock-hero-card.d.ts +15 -0
- package/dist/composites/device-controls/lock-panel.d.ts +3 -0
- package/dist/composites/device-controls/media-player-hero-card.d.ts +17 -0
- package/dist/composites/device-controls/media-player-panel.d.ts +9 -0
- package/dist/composites/device-controls/offline-badge.d.ts +11 -0
- package/dist/composites/device-controls/panel-controls.d.ts +17 -0
- package/dist/composites/device-controls/popover-row-action.d.ts +9 -0
- package/dist/composites/device-controls/primary-child.d.ts +18 -0
- package/dist/composites/device-controls/radial-gauge.d.ts +20 -0
- package/dist/composites/device-controls/sensor-hero-card.d.ts +10 -0
- package/dist/composites/device-controls/sensor-inline-control.d.ts +11 -0
- package/dist/composites/device-controls/sensor-value-atom.d.ts +106 -0
- package/dist/composites/device-controls/switch-hero-card.d.ts +13 -0
- package/dist/composites/device-controls/switch-panel.d.ts +3 -0
- package/dist/composites/device-controls/tap-toggle.d.ts +17 -0
- package/dist/composites/device-controls/thermostat-hero-card.d.ts +17 -0
- package/dist/composites/device-controls/types.d.ts +17 -0
- package/dist/composites/device-controls/update-control.d.ts +11 -0
- package/dist/composites/device-controls/vacuum-control.d.ts +36 -0
- package/dist/composites/device-controls/valve-control.d.ts +46 -0
- package/dist/composites/device-controls/water-heater-control.d.ts +41 -0
- package/dist/composites/device-controls/weather-control.d.ts +41 -0
- 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 +12 -1
- package/dist/composites/device-item/child-layout.d.ts +32 -0
- package/dist/composites/device-item/child-section-accordion.d.ts +9 -0
- package/dist/composites/device-item/children-accordion.d.ts +1 -1
- package/dist/composites/device-item/container-children-context.d.ts +15 -0
- package/dist/composites/device-item/device-delete-action.d.ts +8 -0
- package/dist/composites/device-item/header.d.ts +8 -1
- package/dist/composites/device-item/helpers.d.ts +108 -2
- package/dist/composites/device-item/index.d.ts +4 -0
- package/dist/composites/device-item/preview.d.ts +3 -3
- package/dist/composites/device-item/reboot-quick-action.d.ts +9 -0
- package/dist/composites/device-item/status-dot.d.ts +4 -1
- package/dist/composites/device-list/batch-actions-bar.d.ts +15 -0
- package/dist/composites/device-list/batch-toolbar.d.ts +15 -0
- package/dist/composites/device-list/cards-layout.d.ts +18 -0
- package/dist/composites/device-list/columns.d.ts +68 -0
- package/dist/composites/device-list/device-mode.d.ts +115 -0
- package/dist/composites/device-list/filter-chips.d.ts +15 -6
- package/dist/composites/device-list/fuzzy-match.d.ts +27 -0
- package/dist/composites/device-list/generic-mode.d.ts +81 -0
- package/dist/composites/device-list/group.d.ts +19 -0
- package/dist/composites/device-list/hardware-cell.d.ts +7 -0
- package/dist/composites/device-list/hardware.d.ts +26 -0
- package/dist/composites/device-list/icon-action.d.ts +17 -0
- package/dist/composites/device-list/index.d.ts +23 -39
- package/dist/composites/device-list/multi-select.d.ts +22 -0
- package/dist/composites/device-list/sort.d.ts +18 -0
- package/dist/composites/device-list/sortable-header.d.ts +10 -0
- package/dist/composites/device-list/table-layout.d.ts +25 -0
- package/dist/composites/device-list/type-filter.d.ts +19 -0
- package/dist/composites/device-list/url-state.d.ts +7 -2
- package/dist/composites/device-meta.d.ts +38 -0
- package/dist/composites/discovery-panel.d.ts +4 -4
- 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-quality.d.ts +35 -0
- package/dist/composites/hls-video.d.ts +26 -0
- package/dist/composites/hover-zoom-image.d.ts +18 -0
- package/dist/composites/image-selector.d.ts +1 -1
- package/dist/composites/index.d.ts +15 -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-scroll.d.ts +32 -0
- package/dist/composites/log-stream.d.ts +9 -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 +45 -10
- package/dist/composites/timezone-selector.d.ts +18 -0
- package/dist/composites/version-badge.d.ts +2 -2
- package/dist/composites/widget-panel.d.ts +28 -0
- 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 +17 -0
- 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 +386 -56
- package/dist/hooks/index.d.ts +8 -2
- package/dist/hooks/use-device-cap-slice.d.ts +19 -0
- package/dist/hooks/use-device-capability.d.ts +12 -0
- package/dist/hooks/use-device-list-page-size.d.ts +14 -0
- package/dist/hooks/use-device-webrtc.d.ts +36 -4
- package/dist/hooks/use-optimistic-slice.d.ts +11 -0
- package/dist/index.cjs +54834 -11195
- package/dist/index.d.ts +1 -0
- package/dist/index.js +54483 -11136
- package/dist/lib/format-control-datetime.d.ts +18 -0
- package/dist/lib/format-last-seen.d.ts +12 -0
- package/dist/lib/format-numeric.d.ts +9 -0
- package/dist/lib/index.d.ts +3 -0
- package/dist/primitives/bottom-sheet.d.ts +1 -1
- package/dist/primitives/collapsible-card.d.ts +1 -1
- package/dist/primitives/dialog.d.ts +19 -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 +11 -5
- 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 +13 -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
|
@@ -4,4 +4,4 @@ export interface ProviderBadgeProps {
|
|
|
4
4
|
showLabel?: boolean;
|
|
5
5
|
className?: string;
|
|
6
6
|
}
|
|
7
|
-
export declare function ProviderBadge({ provider, showLabel, className
|
|
7
|
+
export declare function ProviderBadge({ provider, showLabel, className }: ProviderBadgeProps): import("react").JSX.Element;
|
|
@@ -17,4 +17,4 @@ export interface PTZOverlayProps {
|
|
|
17
17
|
readonly showHome?: boolean;
|
|
18
18
|
readonly className?: string;
|
|
19
19
|
}
|
|
20
|
-
export declare function PTZOverlay({ controls, mode, showPresets, showZoom, showHome, className, }: PTZOverlayProps): import("react
|
|
20
|
+
export declare function PTZOverlay({ controls, mode, showPresets, showZoom, showHome, className, }: PTZOverlayProps): import("react").JSX.Element;
|
|
@@ -9,4 +9,4 @@ export interface QrCodeProps {
|
|
|
9
9
|
/** Accessible label for the generated QR. */
|
|
10
10
|
readonly alt?: string;
|
|
11
11
|
}
|
|
12
|
-
export declare function QrCode({ value, size, className, alt }: QrCodeProps): ReactElement | null;
|
|
12
|
+
export declare function QrCode({ value, size, className, alt, }: QrCodeProps): ReactElement | null;
|
|
@@ -6,4 +6,4 @@ export interface ResponseLogProps {
|
|
|
6
6
|
/**
|
|
7
7
|
* Expandable log box showing the raw JSON response from a pipeline run.
|
|
8
8
|
*/
|
|
9
|
-
export declare function ResponseLog({ data, label, className }: ResponseLogProps): import("react
|
|
9
|
+
export declare function ResponseLog({ data, label, className }: ResponseLogProps): import("react").JSX.Element | null;
|
|
@@ -14,7 +14,7 @@ interface ScopePickerProps {
|
|
|
14
14
|
/** Optional empty-state CTA when `value.length === 0`. */
|
|
15
15
|
readonly emptyHint?: ReactNode;
|
|
16
16
|
}
|
|
17
|
-
export declare function ScopePicker({ value, onChange, clampToParent, emptyHint }: ScopePickerProps): React.ReactElement;
|
|
17
|
+
export declare function ScopePicker({ value, onChange, clampToParent, emptyHint, }: ScopePickerProps): React.ReactElement;
|
|
18
18
|
/**
|
|
19
19
|
* Validation helper. The wire schema (`TokenScopeSchema`) requires every
|
|
20
20
|
* scope to carry a non-empty target/targets and `access.length >= 1`.
|
|
@@ -8,4 +8,4 @@ export interface SlideOverPanelProps {
|
|
|
8
8
|
readonly children: ReactNode;
|
|
9
9
|
readonly widthClass?: string;
|
|
10
10
|
}
|
|
11
|
-
export declare function SlideOverPanel({ open, onClose, title, subtitle, footer, children, widthClass, }: SlideOverPanelProps): import("react
|
|
11
|
+
export declare function SlideOverPanel({ open, onClose, title, subtitle, footer, children, widthClass, }: SlideOverPanelProps): import("react").JSX.Element | null;
|
|
@@ -21,5 +21,5 @@ export interface SnapshotButtonProps {
|
|
|
21
21
|
readonly size?: 'sm' | 'md';
|
|
22
22
|
readonly className?: string;
|
|
23
23
|
}
|
|
24
|
-
export declare function SnapshotButton({ trpc, deviceId, deviceName, size, className, }: SnapshotButtonProps): import("react
|
|
24
|
+
export declare function SnapshotButton({ trpc, deviceId, deviceName, size, className, }: SnapshotButtonProps): import("react").JSX.Element;
|
|
25
25
|
export {};
|
|
@@ -7,4 +7,4 @@ export interface StatCardProps {
|
|
|
7
7
|
};
|
|
8
8
|
className?: string;
|
|
9
9
|
}
|
|
10
|
-
export declare function StatCard({ value, label, trend, className }: StatCardProps): import("react
|
|
10
|
+
export declare function StatCard({ value, label, trend, className }: StatCardProps): import("react").JSX.Element;
|
|
@@ -23,4 +23,4 @@ export interface StateValuesStreamProps {
|
|
|
23
23
|
readonly onClose?: () => void;
|
|
24
24
|
readonly className?: string;
|
|
25
25
|
}
|
|
26
|
-
export declare function StateValuesStream({ deviceId, defaultCaps, maxHeight, onClose, className, }: StateValuesStreamProps): import("react
|
|
26
|
+
export declare function StateValuesStream({ deviceId, defaultCaps, maxHeight, onClose, className, }: StateValuesStreamProps): import("react").JSX.Element;
|
|
@@ -6,5 +6,5 @@ export interface StatusBadgeProps {
|
|
|
6
6
|
size?: 'sm' | 'md';
|
|
7
7
|
className?: string;
|
|
8
8
|
}
|
|
9
|
-
export declare function StatusBadge({ status, showDot, showLabel, size, className, }: StatusBadgeProps): import("react
|
|
9
|
+
export declare function StatusBadge({ status, showDot, showLabel, size, className, }: StatusBadgeProps): import("react").JSX.Element;
|
|
10
10
|
export {};
|
|
@@ -6,4 +6,4 @@ export interface StepTimingsProps {
|
|
|
6
6
|
readonly totalMs?: number;
|
|
7
7
|
readonly className?: string;
|
|
8
8
|
}
|
|
9
|
-
export declare function StepTimings({ timings, totalMs, className }: StepTimingsProps): import("react
|
|
9
|
+
export declare function StepTimings({ timings, totalMs, className }: StepTimingsProps): import("react").JSX.Element | null;
|
|
@@ -18,7 +18,7 @@ export interface StepTreeMasterProps {
|
|
|
18
18
|
}[]>>;
|
|
19
19
|
readonly className?: string;
|
|
20
20
|
}
|
|
21
|
-
export declare function StepTreeMaster({ tree, selectedAddonId, onSelect, agentDots, className, }: StepTreeMasterProps): import("react
|
|
21
|
+
export declare function StepTreeMaster({ tree, selectedAddonId, onSelect, agentDots, className, }: StepTreeMasterProps): import("react").JSX.Element;
|
|
22
22
|
/**
|
|
23
23
|
* Helper: build a StepTreeNode[] from a `PipelineSchema` by chaining on
|
|
24
24
|
* `inputClasses` ⇔ `outputClasses` compatibility. Mirrors the orchestrator
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { CamProfile } from '@camstack/types';
|
|
3
|
+
import { SignalingResult, ClientOfferResult, ClientStreamHints, SessionSignalingState } from './camera-stream-player';
|
|
3
4
|
import { DeviceDetections } from '../hooks/use-device-detections';
|
|
4
5
|
/**
|
|
5
|
-
* Discriminated WebRTC target — same shape as the backend cap.
|
|
6
|
-
*
|
|
7
|
-
* `@camstack/types` to render a panel.
|
|
6
|
+
* Discriminated WebRTC target — same shape as the backend cap. The
|
|
7
|
+
* `profile` tier uses the canonical `CamProfile` enum.
|
|
8
8
|
*/
|
|
9
9
|
export type StreamChoiceTarget = {
|
|
10
10
|
readonly kind: 'adaptive';
|
|
11
11
|
} | {
|
|
12
12
|
readonly kind: 'profile';
|
|
13
|
-
readonly profile:
|
|
13
|
+
readonly profile: CamProfile;
|
|
14
14
|
} | {
|
|
15
15
|
readonly kind: 'cam-stream';
|
|
16
16
|
readonly camStreamId: string;
|
|
@@ -42,16 +42,16 @@ export interface StreamStats {
|
|
|
42
42
|
readonly uptimeMs: number;
|
|
43
43
|
}
|
|
44
44
|
export interface StreamPanelProps {
|
|
45
|
-
readonly serverUrl
|
|
46
|
-
readonly createSession
|
|
47
|
-
readonly sendAnswer
|
|
45
|
+
readonly serverUrl?: string;
|
|
46
|
+
readonly createSession?: (target: StreamChoiceTarget, hints?: ClientStreamHints) => Promise<SignalingResult>;
|
|
47
|
+
readonly sendAnswer?: (sessionId: string, sdpAnswer: string) => Promise<void>;
|
|
48
48
|
/**
|
|
49
49
|
* Client-offer signaling — PREFERRED over `createSession` for browsers.
|
|
50
50
|
* Closes over the selected target; the player builds the offer and this
|
|
51
51
|
* posts it. Lets iOS pass H.264 High/Main (incl. 4K) through untouched.
|
|
52
52
|
* Optional so non-browser callers (benchmark) can stay on server-offer.
|
|
53
53
|
*/
|
|
54
|
-
readonly handleOffer?: (target: StreamChoiceTarget, sdpOffer: string) => Promise<ClientOfferResult>;
|
|
54
|
+
readonly handleOffer?: (target: StreamChoiceTarget, sdpOffer: string, sessionId?: string) => Promise<ClientOfferResult>;
|
|
55
55
|
/** Browser-side ICE servers (STUN + TURN) for client-offer mode. */
|
|
56
56
|
readonly getIceServers?: () => Promise<readonly RTCIceServer[] | undefined>;
|
|
57
57
|
/** Trickle ICE — push a client candidate to the server (sessionId-scoped). */
|
|
@@ -62,6 +62,34 @@ export interface StreamPanelProps {
|
|
|
62
62
|
done: boolean;
|
|
63
63
|
}>;
|
|
64
64
|
readonly closeSession?: (sessionId: string) => Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Poll a session's live signaling state (client-offer mode). A non-null
|
|
67
|
+
* `pendingRenegotiation` after an adaptive tier switch makes the player
|
|
68
|
+
* transparently re-offer on the same session. Optional — omit to disable
|
|
69
|
+
* adaptive re-offer (steady-state behaviour is unchanged).
|
|
70
|
+
*/
|
|
71
|
+
readonly getSessionState?: (sessionId: string) => Promise<SessionSignalingState>;
|
|
72
|
+
/**
|
|
73
|
+
* When set, the panel switches to VOD mode: it renders an `HlsVideo`
|
|
74
|
+
* over this master `.m3u8` URL INSTEAD of the live WebRTC player, and
|
|
75
|
+
* the live signaling props are ignored. Lets the same hero player show
|
|
76
|
+
* recordings/clips (driven by the Recording tab) without a second
|
|
77
|
+
* player. Clearing it returns the panel to live mode.
|
|
78
|
+
*/
|
|
79
|
+
readonly playbackUrl?: string;
|
|
80
|
+
/** Bearer token for the admin-gated data-plane playback route (optional). */
|
|
81
|
+
readonly playbackAuthToken?: string | null;
|
|
82
|
+
/**
|
|
83
|
+
* Short label for the clip/window being played — shown in the header in
|
|
84
|
+
* place of the stream selector while in VOD mode.
|
|
85
|
+
*/
|
|
86
|
+
readonly playbackLabel?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Invoked when the operator clicks the (re-purposed) play/stop button
|
|
89
|
+
* while in VOD mode. The caller clears its playback request to return
|
|
90
|
+
* the panel to the live stream.
|
|
91
|
+
*/
|
|
92
|
+
readonly onExitPlayback?: () => void;
|
|
65
93
|
/** Available streams. If omitted or single entry, no dropdown shown. */
|
|
66
94
|
readonly streams?: readonly StreamChoice[];
|
|
67
95
|
/** Currently active StreamChoice id. Defaults to first stream. */
|
|
@@ -90,6 +118,13 @@ export interface StreamPanelProps {
|
|
|
90
118
|
readonly showPlayStop?: boolean;
|
|
91
119
|
/** Snapshot source URL (data: URI). Only used when showPlayStop=true. */
|
|
92
120
|
readonly snapshotSrc?: string | null;
|
|
121
|
+
/**
|
|
122
|
+
* Optional poster (snapshot data-URL) painted by the live `<video>` until
|
|
123
|
+
* its FIRST frame decodes — a cold-start fallback only. Independent of
|
|
124
|
+
* `snapshotSrc` (which is the play/stop preview). Caller-supplied; when
|
|
125
|
+
* omitted the video simply starts black until the first frame.
|
|
126
|
+
*/
|
|
127
|
+
readonly posterUrl?: string;
|
|
93
128
|
/** Whether snapshot is currently loading */
|
|
94
129
|
readonly snapshotLoading?: boolean;
|
|
95
130
|
/** Callback to refresh snapshot */
|
|
@@ -156,4 +191,4 @@ export interface StreamPanelProps {
|
|
|
156
191
|
readonly chromeless?: boolean;
|
|
157
192
|
readonly className?: string;
|
|
158
193
|
}
|
|
159
|
-
export declare function StreamPanel({ serverUrl, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, streams, activeStreamId: controlledStreamId, onStreamChange, deviceName, phase, pipelineMetrics, detections, defaultShowDetections, defaultShowMotion, streamStats, autoPlay, showPlayStop, snapshotSrc, snapshotLoading, onRefreshSnapshot, showStreamStats, children, extraOverlay, ptzAvailable, ptzShown, ptzOverlay, onPtzToggle, intercomAvailable, intercomShown, onIntercomToggle, chromeless, className, }: StreamPanelProps): import("react
|
|
194
|
+
export declare function StreamPanel({ serverUrl, createSession, sendAnswer, handleOffer, getIceServers, addIceCandidate, getIceCandidates, closeSession, getSessionState, playbackUrl, playbackAuthToken, onExitPlayback, posterUrl, streams, activeStreamId: controlledStreamId, onStreamChange, deviceName, phase, pipelineMetrics, detections, defaultShowDetections, defaultShowMotion, streamStats, autoPlay, showPlayStop, snapshotSrc, snapshotLoading, onRefreshSnapshot, showStreamStats, children, extraOverlay, ptzAvailable, ptzShown, ptzOverlay, onPtzToggle, intercomAvailable, intercomShown, onIntercomToggle, chromeless, className, }: StreamPanelProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { TIMEZONES, findTimezone, Timezone, TimezoneDstRule, Weekday } from '@camstack/types';
|
|
2
|
+
export { TIMEZONES, findTimezone };
|
|
3
|
+
export type { Timezone, TimezoneDstRule, Weekday };
|
|
4
|
+
export interface TimezoneSelectorProps {
|
|
5
|
+
/** Currently selected IANA id (e.g. 'Europe/Rome'). */
|
|
6
|
+
readonly value: string;
|
|
7
|
+
/** Fired with the newly chosen IANA id. */
|
|
8
|
+
readonly onChange: (id: string) => void;
|
|
9
|
+
readonly disabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Friendly timezone picker. Renders a native `<select>` grouped by
|
|
13
|
+
* region via `<optgroup>`, sourced from the curated `TIMEZONES`
|
|
14
|
+
* catalogue. The selected value is the IANA id; DST is implied by the
|
|
15
|
+
* chosen zone (each option carries its standard offset + DST rule),
|
|
16
|
+
* so there is no separate DST control.
|
|
17
|
+
*/
|
|
18
|
+
export declare function TimezoneSelector({ value, onChange, disabled }: TimezoneSelectorProps): import("react").JSX.Element;
|
|
@@ -11,7 +11,7 @@ export interface SemanticBadgeProps {
|
|
|
11
11
|
* General-purpose badge with semantic color variants.
|
|
12
12
|
* Solid background with dark text for maximum contrast.
|
|
13
13
|
*/
|
|
14
|
-
export declare function SemanticBadge({ children, variant, mono, className }: SemanticBadgeProps):
|
|
14
|
+
export declare function SemanticBadge({ children, variant, mono, className, }: SemanticBadgeProps): React.JSX.Element;
|
|
15
15
|
export interface VersionBadgeProps {
|
|
16
16
|
version: string;
|
|
17
17
|
preRelease?: boolean;
|
|
@@ -21,4 +21,4 @@ export interface VersionBadgeProps {
|
|
|
21
21
|
* Version badge — auto-detects pre-release versions.
|
|
22
22
|
* Stable = success (green), Pre-release = warning (amber).
|
|
23
23
|
*/
|
|
24
|
-
export declare function VersionBadge({ version, preRelease, className }: VersionBadgeProps):
|
|
24
|
+
export declare function VersionBadge({ version, preRelease, className }: VersionBadgeProps): React.JSX.Element;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
interface WidgetPanelProps {
|
|
3
|
+
/** Header title — rendered uppercase, letter-spaced, foreground. */
|
|
4
|
+
readonly title: string;
|
|
5
|
+
/** Optional leading icon node (size it `h-3.5 w-3.5` for alignment). */
|
|
6
|
+
readonly icon?: ReactNode;
|
|
7
|
+
/** Optional right-aligned header slot (timestamp, live badge, …). Ignored
|
|
8
|
+
* when `collapsible` is set — the chevron takes that slot. */
|
|
9
|
+
readonly headerRight?: ReactNode;
|
|
10
|
+
/** Render the header as a toggle that shows/hides the body. */
|
|
11
|
+
readonly collapsible?: boolean;
|
|
12
|
+
/** Initial open state for a collapsible panel (default open). */
|
|
13
|
+
readonly defaultOpen?: boolean;
|
|
14
|
+
/** Body padding/utility override (default `p-3`). */
|
|
15
|
+
readonly bodyClassName?: string;
|
|
16
|
+
readonly children: ReactNode;
|
|
17
|
+
}
|
|
18
|
+
export declare function WidgetPanel({ title, icon, headerRight, collapsible, defaultOpen, bodyClassName, children, }: WidgetPanelProps): import("react").JSX.Element;
|
|
19
|
+
interface WidgetMetricCardProps {
|
|
20
|
+
readonly label: string;
|
|
21
|
+
readonly icon?: ReactNode;
|
|
22
|
+
/** The metric value (text or node). */
|
|
23
|
+
readonly children: ReactNode;
|
|
24
|
+
/** Optional sub-line under the value (e.g. "3 segment ranges"). */
|
|
25
|
+
readonly footer?: ReactNode;
|
|
26
|
+
}
|
|
27
|
+
export declare function WidgetMetricCard({ label, icon, children, footer }: WidgetMetricCardProps): import("react").JSX.Element;
|
|
28
|
+
export {};
|
|
@@ -17,7 +17,7 @@ export interface CustomFieldRenderersProviderProps {
|
|
|
17
17
|
readonly renderers: CustomFieldRendererMap;
|
|
18
18
|
readonly children: ReactNode;
|
|
19
19
|
}
|
|
20
|
-
export declare function CustomFieldRenderersProvider({ renderers, children, }: CustomFieldRenderersProviderProps): import("react
|
|
20
|
+
export declare function CustomFieldRenderersProvider({ renderers, children, }: CustomFieldRenderersProviderProps): import("react").JSX.Element;
|
|
21
21
|
/**
|
|
22
22
|
* Look up a registered renderer by `field.type`. Returns null when no
|
|
23
23
|
* renderer is registered — caller falls back to its built-in handling
|
|
@@ -13,7 +13,7 @@ export interface DeviceContextProviderProps {
|
|
|
13
13
|
readonly device?: DeviceSnapshot;
|
|
14
14
|
readonly children: ReactNode;
|
|
15
15
|
}
|
|
16
|
-
export declare function DeviceContextProvider({ deviceId, device, children }: DeviceContextProviderProps): import("react
|
|
16
|
+
export declare function DeviceContextProvider({ deviceId, device, children }: DeviceContextProviderProps): import("react").JSX.Element;
|
|
17
17
|
/** @returns the device id of the current page subtree, or null if outside any provider. */
|
|
18
18
|
export declare function useDeviceId(): number | null;
|
|
19
19
|
/** @returns the cached device snapshot, or null when no snapshot is provided. */
|
|
@@ -33,7 +33,7 @@ export interface PlayerToolbarButton {
|
|
|
33
33
|
export interface PlayerOverlaysProviderProps {
|
|
34
34
|
readonly children: ReactNode;
|
|
35
35
|
}
|
|
36
|
-
export declare function PlayerOverlaysProvider({ children }: PlayerOverlaysProviderProps): import("react
|
|
36
|
+
export declare function PlayerOverlaysProvider({ children }: PlayerOverlaysProviderProps): import("react").JSX.Element;
|
|
37
37
|
/** Snapshot of registered layers ordered by `order` (asc, ties resolved
|
|
38
38
|
* by insertion order of the underlying Map). Returns `[]` outside a
|
|
39
39
|
* provider. */
|
|
@@ -4,7 +4,7 @@ export interface SystemProviderProps {
|
|
|
4
4
|
readonly system: System;
|
|
5
5
|
readonly children: ReactNode;
|
|
6
6
|
}
|
|
7
|
-
export declare function SystemProvider({ system, children }: SystemProviderProps): import("react
|
|
7
|
+
export declare function SystemProvider({ system, children }: SystemProviderProps): import("react").JSX.Element;
|
|
8
8
|
/**
|
|
9
9
|
* Read the active `System` instance from the surrounding `<SystemProvider>`.
|
|
10
10
|
* Throws when no provider is mounted — every hook in this directory
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface VodPlaybackRequest {
|
|
3
|
+
/** Master `.m3u8` URL through the hub data-plane (relative). */
|
|
4
|
+
readonly url: string;
|
|
5
|
+
/** Short human label shown in the hero while playing (e.g. a timestamp). */
|
|
6
|
+
readonly label?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface VodPlaybackContextValue {
|
|
9
|
+
readonly request: VodPlaybackRequest | null;
|
|
10
|
+
readonly play: (request: VodPlaybackRequest) => void;
|
|
11
|
+
readonly clear: () => void;
|
|
12
|
+
}
|
|
13
|
+
export declare function VodPlaybackProvider({ children }: {
|
|
14
|
+
readonly children: ReactNode;
|
|
15
|
+
}): import("react").JSX.Element;
|
|
16
|
+
/** @returns the VOD playback controller (inert no-op outside a provider). */
|
|
17
|
+
export declare function useVodPlayback(): VodPlaybackContextValue;
|
|
@@ -91,7 +91,7 @@ export declare function loadRemoteBundle(remoteName: string, exposedModule: stri
|
|
|
91
91
|
export interface WidgetRegistryProviderProps {
|
|
92
92
|
readonly children: ReactNode;
|
|
93
93
|
}
|
|
94
|
-
export declare function WidgetRegistryProvider({ children }: WidgetRegistryProviderProps): import("react
|
|
94
|
+
export declare function WidgetRegistryProvider({ children }: WidgetRegistryProviderProps): import("react").JSX.Element;
|
|
95
95
|
/**
|
|
96
96
|
* Returns the registered widget component, `null` while loading, or
|
|
97
97
|
* `undefined` if unknown.
|
|
@@ -51,7 +51,7 @@ interface ZoneEditingContextValue extends ZoneEditingState, ZoneEditingActions {
|
|
|
51
51
|
export interface ZoneEditingProviderProps {
|
|
52
52
|
readonly children: ReactNode;
|
|
53
53
|
}
|
|
54
|
-
export declare function ZoneEditingProvider({ children }: ZoneEditingProviderProps): import("react
|
|
54
|
+
export declare function ZoneEditingProvider({ children }: ZoneEditingProviderProps): import("react").JSX.Element;
|
|
55
55
|
/** Read + drive the zone-editing state. Returns `null` outside a
|
|
56
56
|
* provider so callers that mount in pages without zones (e.g. a
|
|
57
57
|
* shared hero on a non-camera device) can no-op gracefully. */
|