@camstack/ui-library 1.2.256 → 1.2.258
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/accelerator-label.d.ts +9 -9
- package/dist/composites/adaptive-downlink.d.ts +141 -143
- package/dist/composites/addon-global-settings-form.d.ts +73 -60
- package/dist/composites/addon-page-props.d.ts +34 -10
- package/dist/composites/agent-step-editor.d.ts +48 -47
- package/dist/composites/app-shell/app-shell.d.ts +17 -17
- package/dist/composites/app-shell/index.d.ts +3 -3
- package/dist/composites/app-shell/sidebar-item.d.ts +9 -8
- package/dist/composites/app-shell/sidebar.d.ts +10 -10
- package/dist/composites/audio-classification-list.d.ts +16 -15
- package/dist/composites/audio-level-waveform.d.ts +31 -30
- package/dist/composites/audio-waveform.d.ts +18 -17
- package/dist/composites/battery-badge.d.ts +27 -13
- package/dist/composites/breadcrumb.d.ts +21 -21
- package/dist/composites/camera-stream-player.d.ts +309 -309
- package/dist/composites/cap-settings/AutotrackSection.d.ts +19 -2
- package/dist/composites/cap-settings/CameraGridLayoutEditor.d.ts +24 -2
- package/dist/composites/cap-settings/ConsumablesPanel.d.ts +21 -2
- package/dist/composites/cap-settings/CoverageTrack.d.ts +21 -20
- package/dist/composites/cap-settings/EventBucketStrip.d.ts +21 -20
- package/dist/composites/cap-settings/EventHeatmap.d.ts +8 -7
- package/dist/composites/cap-settings/HomePresetPicker.d.ts +2 -2
- package/dist/composites/cap-settings/MaskShapeCanvas.d.ts +143 -41
- package/dist/composites/cap-settings/MotionZonesSettings.d.ts +41 -2
- package/dist/composites/cap-settings/NavigationPanel.d.ts +14 -2
- package/dist/composites/cap-settings/PrivacyMaskSettings.d.ts +3 -2
- package/dist/composites/cap-settings/PtzPanel.d.ts +15 -2
- package/dist/composites/cap-settings/RecordingBandsEditor.d.ts +33 -32
- package/dist/composites/cap-settings/RecordingPanel.d.ts +3 -2
- package/dist/composites/cap-settings/RecordingSettings.d.ts +11 -10
- package/dist/composites/cap-settings/RecordingTimeline.d.ts +3 -2
- package/dist/composites/cap-settings/SceneMonitorEditor.d.ts +3 -51
- package/dist/composites/cap-settings/SceneReferenceGallery.d.ts +62 -23
- package/dist/composites/cap-settings/SceneSettingsForm.d.ts +52 -16
- package/dist/composites/cap-settings/TimelineControls.d.ts +21 -20
- package/dist/composites/cap-settings/camera-grid-layout.d.ts +95 -95
- package/dist/composites/cap-settings/event-thumb.d.ts +9 -8
- package/dist/composites/cap-settings/index.d.ts +20 -20
- package/dist/composites/cap-settings/privacy-mask-audio.d.ts +47 -47
- package/dist/composites/cap-settings/recording-config-form.d.ts +25 -25
- package/dist/composites/cap-settings/recording-spans.d.ts +14 -14
- package/dist/composites/cap-settings/recording-timeline-model.d.ts +57 -57
- package/dist/composites/cap-settings/scene-monitor-copy.d.ts +58 -49
- package/dist/composites/client-network-sample.d.ts +41 -41
- package/dist/composites/clips/ClipBandBar.d.ts +44 -14
- package/dist/composites/clips/ClipPanel.d.ts +30 -6
- package/dist/composites/clips/ClipTile.d.ts +26 -5
- package/dist/composites/clips/ClipsSection.d.ts +107 -2
- package/dist/composites/clips/clip-band.d.ts +72 -38
- package/dist/composites/clips/clip-day-window.d.ts +7 -30
- package/dist/composites/clips/clip-source-state.d.ts +55 -26
- package/dist/composites/clips/clip-still-retry.d.ts +39 -39
- package/dist/composites/clips/clip-thumbnail-fetch.d.ts +9 -9
- package/dist/composites/clips/clip-tile-media.d.ts +64 -32
- package/dist/composites/clips/clip-view-state.d.ts +76 -46
- package/dist/composites/code-block.d.ts +5 -4
- package/dist/composites/config-form-builder.d.ts +14 -13
- package/dist/composites/config-form-field.d.ts +63 -62
- package/dist/composites/config-icon-field.d.ts +10 -9
- package/dist/composites/config-secret-field.d.ts +51 -27
- package/dist/composites/confirm-action-button.d.ts +52 -39
- package/dist/composites/confirm-dialog.d.ts +110 -48
- package/dist/composites/copy-button.d.ts +25 -19
- package/dist/composites/data-table/data-table-header.d.ts +8 -7
- package/dist/composites/data-table/data-table-pagination.d.ts +7 -6
- package/dist/composites/data-table/data-table-row.d.ts +8 -7
- package/dist/composites/data-table/data-table.d.ts +3 -2
- package/dist/composites/data-table/index.d.ts +2 -2
- package/dist/composites/data-table/types.d.ts +29 -29
- package/dist/composites/data-table-filter-bar.d.ts +30 -29
- package/dist/composites/data-table-filter.d.ts +34 -34
- package/dist/composites/data-table-layout.d.ts +24 -24
- package/dist/composites/data-table-pager.d.ts +5 -5
- package/dist/composites/data-table-pagination.d.ts +23 -23
- package/dist/composites/data-table-selection.d.ts +10 -10
- package/dist/composites/data-table.d.ts +167 -118
- package/dist/composites/detection-canvas.d.ts +34 -25
- package/dist/composites/detection-colors.d.ts +9 -9
- package/dist/composites/detection-overlay.d.ts +33 -32
- package/dist/composites/detection-result-tree.d.ts +22 -9
- package/dist/composites/dev-shell.d.ts +15 -14
- package/dist/composites/device-activity-panel.d.ts +37 -31
- package/dist/composites/device-card.d.ts +32 -32
- package/dist/composites/device-controls/ac-panel.d.ts +2 -2
- package/dist/composites/device-controls/alarm-hero-card.d.ts +42 -42
- package/dist/composites/device-controls/atoms.d.ts +50 -50
- package/dist/composites/device-controls/brightness-panel.d.ts +3 -3
- package/dist/composites/device-controls/button-control.d.ts +14 -14
- package/dist/composites/device-controls/climate-panel.d.ts +12 -12
- package/dist/composites/device-controls/container-primary-hero.d.ts +33 -16
- package/dist/composites/device-controls/container-primary.d.ts +68 -39
- package/dist/composites/device-controls/control-panel.d.ts +4 -4
- package/dist/composites/device-controls/control-registry.d.ts +81 -70
- package/dist/composites/device-controls/cover-hero-card.d.ts +26 -26
- package/dist/composites/device-controls/cover-inline.d.ts +20 -20
- package/dist/composites/device-controls/cover-panel.d.ts +2 -2
- package/dist/composites/device-controls/dummy-hero-card.d.ts +2 -2
- package/dist/composites/device-controls/fan-hero-card.d.ts +20 -20
- package/dist/composites/device-controls/fan-panel.d.ts +3 -3
- package/dist/composites/device-controls/humidifier-control.d.ts +46 -29
- package/dist/composites/device-controls/image-control.d.ts +41 -27
- package/dist/composites/device-controls/index.d.ts +34 -34
- package/dist/composites/device-controls/lawn-mower-control.d.ts +30 -16
- package/dist/composites/device-controls/light-hero-card.d.ts +15 -15
- package/dist/composites/device-controls/lock-hero-card.d.ts +14 -14
- package/dist/composites/device-controls/lock-panel.d.ts +3 -3
- package/dist/composites/device-controls/media-player-hero-card.d.ts +16 -16
- package/dist/composites/device-controls/media-player-panel.d.ts +7 -7
- package/dist/composites/device-controls/offline-badge.d.ts +23 -8
- package/dist/composites/device-controls/panel-controls.d.ts +39 -20
- package/dist/composites/device-controls/pet-feeder-panel.d.ts +27 -9
- package/dist/composites/device-controls/popover-row-action.d.ts +18 -6
- package/dist/composites/device-controls/primary-child-picker.d.ts +31 -15
- package/dist/composites/device-controls/primary-child.d.ts +14 -25
- package/dist/composites/device-controls/radial-gauge.d.ts +17 -17
- package/dist/composites/device-controls/script-automation-controls.d.ts +9 -9
- package/dist/composites/device-controls/sensor-hero-card.d.ts +26 -8
- package/dist/composites/device-controls/sensor-inline-control.d.ts +21 -9
- package/dist/composites/device-controls/sensor-value-atom.d.ts +97 -76
- package/dist/composites/device-controls/switch-hero-card.d.ts +11 -11
- package/dist/composites/device-controls/switch-panel.d.ts +2 -2
- package/dist/composites/device-controls/tap-toggle.d.ts +13 -13
- package/dist/composites/device-controls/thermostat-hero-card.d.ts +16 -16
- package/dist/composites/device-controls/types.d.ts +11 -11
- package/dist/composites/device-controls/update-control.d.ts +20 -7
- package/dist/composites/device-controls/vacuum-control.d.ts +41 -25
- package/dist/composites/device-controls/valve-control.d.ts +51 -35
- package/dist/composites/device-controls/water-heater-control.d.ts +48 -31
- package/dist/composites/device-controls/weather-control.d.ts +46 -28
- package/dist/composites/device-export-panel.d.ts +34 -34
- package/dist/composites/device-grid.d.ts +10 -10
- package/dist/composites/device-item/actions.d.ts +40 -18
- package/dist/composites/device-item/admin-link-quick-action.d.ts +66 -26
- package/dist/composites/device-item/child-layout.d.ts +43 -26
- package/dist/composites/device-item/child-section-accordion.d.ts +20 -6
- package/dist/composites/device-item/children-accordion.d.ts +11 -11
- package/dist/composites/device-item/container-children-context.d.ts +28 -11
- package/dist/composites/device-item/device-delete-action.d.ts +23 -5
- package/dist/composites/device-item/features.d.ts +33 -15
- package/dist/composites/device-item/header.d.ts +53 -31
- package/dist/composites/device-item/helpers.d.ts +291 -274
- package/dist/composites/device-item/index.d.ts +18 -9
- package/dist/composites/device-item/preview.d.ts +41 -21
- package/dist/composites/device-item/quick-detail-action.d.ts +4 -4
- package/dist/composites/device-item/reboot-quick-action.d.ts +28 -7
- package/dist/composites/device-item/role-display-defaults-context.d.ts +28 -12
- package/dist/composites/device-item/status-dot.d.ts +24 -6
- package/dist/composites/device-list/batch-actions-bar.d.ts +23 -12
- package/dist/composites/device-list/batch-toolbar.d.ts +13 -13
- package/dist/composites/device-list/columns.d.ts +108 -108
- package/dist/composites/device-list/device-integration.d.ts +48 -58
- package/dist/composites/device-list/device-mode.d.ts +121 -121
- package/dist/composites/device-list/empty-state.d.ts +14 -3
- package/dist/composites/device-list/filter-chips.d.ts +42 -29
- package/dist/composites/device-list/fuzzy-match.d.ts +22 -22
- package/dist/composites/device-list/generic-mode.d.ts +88 -88
- package/dist/composites/device-list/group.d.ts +62 -35
- package/dist/composites/device-list/hardware-cell.d.ts +14 -3
- package/dist/composites/device-list/hardware.d.ts +29 -11
- package/dist/composites/device-list/icon-action.d.ts +27 -15
- package/dist/composites/device-list/index.d.ts +46 -23
- package/dist/composites/device-list/multi-select.d.ts +17 -17
- package/dist/composites/device-list/page-size-select.d.ts +13 -7
- package/dist/composites/device-list/pagination.d.ts +19 -12
- package/dist/composites/device-list/sort.d.ts +28 -15
- package/dist/composites/device-list/sortable-header.d.ts +20 -7
- package/dist/composites/device-list/table-layout.d.ts +44 -44
- package/dist/composites/device-list/type-filter.d.ts +16 -16
- package/dist/composites/device-list/url-state.d.ts +35 -35
- package/dist/composites/device-meta.d.ts +43 -43
- package/dist/composites/device-picker/DevicePicker.d.ts +72 -33
- package/dist/composites/device-picker/SelectedChip.d.ts +10 -9
- package/dist/composites/device-picker/device-filter-bar.d.ts +19 -18
- package/dist/composites/device-picker/device-fleet-view.d.ts +11 -3
- package/dist/composites/device-picker/device-parent.d.ts +27 -27
- package/dist/composites/device-picker/device-picker-grouping.d.ts +3 -3
- package/dist/composites/device-picker/device-picker-model.d.ts +140 -140
- package/dist/composites/device-picker/device-selection-rows.d.ts +31 -24
- package/dist/composites/device-picker/device-selection.d.ts +43 -43
- package/dist/composites/device-picker/index.d.ts +9 -9
- package/dist/composites/device-select-field.d.ts +17 -16
- package/dist/composites/device-select-filter.d.ts +78 -78
- package/dist/composites/device-selector-picker.d.ts +25 -25
- package/dist/composites/device-step-matrix.d.ts +54 -28
- package/dist/composites/discovery-panel.d.ts +22 -22
- package/dist/composites/doorbell-recent-panel.d.ts +9 -8
- package/dist/composites/empty-state.d.ts +8 -8
- package/dist/composites/error-box.d.ts +32 -17
- package/dist/composites/event-kind-visuals.d.ts +29 -18
- package/dist/composites/event-stream.d.ts +59 -42
- package/dist/composites/extensions/AssociationSlotCard.d.ts +45 -24
- package/dist/composites/extensions/ExtensionsPanel.d.ts +41 -18
- package/dist/composites/extensions/extensions-view-state.d.ts +71 -53
- package/dist/composites/filter-bar.d.ts +22 -21
- package/dist/composites/form-field.d.ts +9 -9
- package/dist/composites/format-state-value.d.ts +23 -51
- package/dist/composites/grouped-model-selector.d.ts +7 -6
- package/dist/composites/hls-quality.d.ts +26 -26
- package/dist/composites/hls-video.d.ts +62 -39
- package/dist/composites/hover-zoom-image.d.ts +35 -16
- package/dist/composites/icon-picker.d.ts +86 -50
- package/dist/composites/image-selector.d.ts +21 -20
- package/dist/composites/index.d.ts +204 -204
- package/dist/composites/inference-config-selector.d.ts +36 -35
- package/dist/composites/kebab-menu.d.ts +53 -35
- package/dist/composites/key-value-list.d.ts +14 -14
- package/dist/composites/log-stream-scroll.d.ts +24 -24
- package/dist/composites/log-stream.d.ts +81 -70
- package/dist/composites/login-form.d.ts +7 -6
- package/dist/composites/model-bound-slider.d.ts +46 -26
- package/dist/composites/model-picker.d.ts +20 -19
- package/dist/composites/mount-addon-page.d.ts +12 -12
- package/dist/composites/network-link-badge.d.ts +7 -6
- package/dist/composites/node-picker.d.ts +14 -13
- package/dist/composites/notification-targets-field.d.ts +76 -58
- package/dist/composites/notification-targets-options.d.ts +9 -6
- package/dist/composites/option-select/OptionSelect.d.ts +23 -22
- package/dist/composites/option-select/index.d.ts +4 -4
- package/dist/composites/option-select/option-select-model.d.ts +35 -35
- package/dist/composites/page-header.d.ts +6 -6
- package/dist/composites/peer-connection-config.d.ts +9 -9
- package/dist/composites/phase-icon.d.ts +10 -3
- package/dist/composites/pipeline-builder.d.ts +21 -13
- package/dist/composites/pipeline-matrix-shared.d.ts +159 -150
- package/dist/composites/pipeline-runtime-selector.d.ts +12 -11
- package/dist/composites/pipeline-step.d.ts +39 -31
- package/dist/composites/placeholder-field/PlaceholderChipField.d.ts +23 -22
- package/dist/composites/placeholder-field/index.d.ts +1 -1
- package/dist/composites/provider-badge.d.ts +6 -5
- package/dist/composites/ptz-overlay.d.ts +38 -18
- package/dist/composites/qr-code.d.ts +24 -10
- package/dist/composites/reconnect-schedule.d.ts +22 -22
- package/dist/composites/resolve-step-default-model.d.ts +94 -94
- package/dist/composites/response-log.d.ts +7 -6
- package/dist/composites/root-model-source.d.ts +21 -10
- package/dist/composites/scope-picker.d.ts +49 -25
- package/dist/composites/section-card.d.ts +19 -11
- package/dist/composites/setting-row.d.ts +39 -21
- package/dist/composites/snapshot-button.d.ts +23 -19
- package/dist/composites/sort-header-button.d.ts +25 -8
- package/dist/composites/stat-card.d.ts +20 -8
- package/dist/composites/state-values-stream.d.ts +49 -24
- package/dist/composites/status-badge.d.ts +10 -8
- package/dist/composites/step-inspector/gate-control.d.ts +13 -12
- package/dist/composites/step-inspector/index.d.ts +8 -8
- package/dist/composites/step-inspector/layered-settings-form.d.ts +41 -30
- package/dist/composites/step-inspector/segmented-choice.d.ts +8 -7
- package/dist/composites/step-inspector/setting-values.d.ts +13 -8
- package/dist/composites/step-inspector/step-detail-dock.d.ts +39 -23
- package/dist/composites/step-inspector/step-inspector-panel.d.ts +34 -28
- package/dist/composites/step-inspector/step-model-row.d.ts +29 -24
- package/dist/composites/step-inspector/step-search.d.ts +11 -11
- package/dist/composites/step-timings.d.ts +7 -6
- package/dist/composites/step-tree.d.ts +17 -12
- package/dist/composites/stream-broker-selector.d.ts +29 -8
- package/dist/composites/stream-debug/stream-debug-overlay.d.ts +40 -40
- package/dist/composites/stream-debug/webrtc-debug-stats.d.ts +144 -129
- package/dist/composites/stream-panel.d.ts +212 -201
- package/dist/composites/table-sort.d.ts +61 -61
- package/dist/composites/timezone-selector.d.ts +15 -13
- package/dist/composites/training/send-frame-to-training.d.ts +5 -4
- package/dist/composites/training/training-collection-picker.d.ts +4 -3
- package/dist/composites/training/training-refusal-text.d.ts +6 -6
- package/dist/composites/unit-picker/UnitPicker.d.ts +19 -14
- package/dist/composites/unit-picker/index.d.ts +1 -1
- package/dist/composites/use-data-table-filter.d.ts +19 -19
- package/dist/composites/version-badge.d.ts +19 -18
- package/dist/composites/webrtc-diagnostics/EndpointTestCard.d.ts +7 -7
- package/dist/composites/webrtc-diagnostics/HubSessionTestCard.d.ts +14 -14
- package/dist/composites/webrtc-diagnostics/RunReport.d.ts +10 -5
- package/dist/composites/webrtc-diagnostics/endpoint-probe.d.ts +41 -21
- package/dist/composites/webrtc-diagnostics/endpoint-test.d.ts +37 -32
- package/dist/composites/webrtc-diagnostics/format.d.ts +3 -3
- package/dist/composites/webrtc-diagnostics/ice-candidates.d.ts +49 -49
- package/dist/composites/webrtc-diagnostics/nat-mapping.d.ts +36 -36
- package/dist/composites/webrtc-diagnostics/session-run.d.ts +108 -95
- package/dist/composites/webrtc-diagnostics/session-verdict.d.ts +29 -20
- package/dist/composites/widget-panel.d.ts +23 -23
- package/dist/composites/widget-slot.d.ts +35 -17
- package/dist/contexts/custom-field-renderers.d.ts +53 -17
- package/dist/contexts/device-context.d.ts +32 -12
- package/dist/contexts/device-quick-detail.d.ts +13 -4
- package/dist/contexts/player-overlays.d.ts +82 -42
- package/dist/contexts/recorded-playback.d.ts +40 -18
- package/dist/contexts/system-context.d.ts +28 -13
- package/dist/contexts/vod-playback.d.ts +39 -22
- package/dist/contexts/widget-registry.d.ts +139 -102
- package/dist/contexts/zone-editing.d.ts +69 -46
- package/dist/generated/system-hooks.d.ts +17 -1
- package/dist/hooks/index.d.ts +43 -43
- package/dist/hooks/turn-server-cache.d.ts +69 -69
- package/dist/hooks/use-capability-presence.d.ts +65 -28
- package/dist/hooks/use-cluster-nodes.d.ts +54 -27
- package/dist/hooks/use-device-autotrack.d.ts +7 -7
- package/dist/hooks/use-device-battery.d.ts +24 -11
- package/dist/hooks/use-device-cap-slice.d.ts +15 -15
- package/dist/hooks/use-device-capability.d.ts +61 -27
- package/dist/hooks/use-device-detections.d.ts +32 -32
- package/dist/hooks/use-device-features.d.ts +18 -18
- package/dist/hooks/use-device-list-page-size.d.ts +19 -6
- package/dist/hooks/use-device-network-link.d.ts +15 -7
- package/dist/hooks/use-device-proxy.d.ts +98 -92
- package/dist/hooks/use-device-snapshot.d.ts +23 -23
- package/dist/hooks/use-device-webrtc.d.ts +211 -205
- package/dist/hooks/use-devices.d.ts +9 -9
- package/dist/hooks/use-doorbell-events.d.ts +13 -13
- package/dist/hooks/use-event-stream.d.ts +6 -3
- package/dist/hooks/use-is-mobile.d.ts +5 -5
- package/dist/hooks/use-live-buffer.d.ts +5 -5
- package/dist/hooks/use-live-event.d.ts +1 -1
- package/dist/hooks/use-navigation.d.ts +20 -20
- package/dist/hooks/use-optimistic-slice.d.ts +13 -13
- package/dist/hooks/use-persisted-page-size.d.ts +10 -10
- package/dist/hooks/use-ptz.d.ts +108 -108
- package/dist/hooks/use-stationary-overlay.d.ts +37 -37
- package/dist/hooks/use-system-query.d.ts +33 -10
- package/dist/hooks/use-url-query.d.ts +3 -3
- package/dist/icons/index.d.ts +2 -2
- package/dist/icons/provider-icons.d.ts +2 -2
- package/dist/icons/status-icons.d.ts +2 -2
- package/dist/index.cjs +123 -69
- package/dist/index.d.ts +31 -27
- package/dist/index.js +123 -69
- package/dist/lib/cap-error.d.ts +18 -39
- package/dist/lib/cn.d.ts +1 -1
- package/dist/lib/fleet-query-defaults.d.ts +68 -34
- package/dist/lib/format-control-datetime.d.ts +16 -16
- package/dist/lib/format-duration.d.ts +12 -12
- package/dist/lib/format-last-seen.d.ts +5 -18
- package/dist/lib/format-numeric.d.ts +7 -7
- package/dist/lib/hub-mount.d.ts +8 -42
- package/dist/lib/index.d.ts +21 -21
- package/dist/lib/phase-config.d.ts +24 -11
- package/dist/lib/pipeline-mirror.d.ts +16 -16
- package/dist/lib/recorded-control-protocol.d.ts +41 -43
- package/dist/lib/resolve-sensor-display.d.ts +36 -20
- package/dist/lib/responsive.d.ts +54 -54
- package/dist/lib/scrub-controller.d.ts +75 -78
- package/dist/lib/shared-context.d.ts +27 -2
- package/dist/lib/tailwind-variants.d.ts +20 -20
- package/dist/primitives/badge.d.ts +5 -10
- package/dist/primitives/bottom-sheet.d.ts +7 -7
- package/dist/primitives/button.d.ts +5 -9
- package/dist/primitives/card.d.ts +4 -8
- package/dist/primitives/checkbox.d.ts +3 -4
- package/dist/primitives/collapsible-card.d.ts +23 -13
- package/dist/primitives/dialog.d.ts +33 -59
- package/dist/primitives/dropdown.d.ts +13 -13
- package/dist/primitives/floating-panel.d.ts +41 -20
- package/dist/primitives/icon-button.d.ts +8 -12
- package/dist/primitives/index.d.ts +22 -22
- package/dist/primitives/input.d.ts +6 -16
- package/dist/primitives/label.d.ts +3 -4
- package/dist/primitives/mobile-drawer.d.ts +8 -8
- package/dist/primitives/password-input.d.ts +18 -18
- package/dist/primitives/popover.d.ts +7 -7
- package/dist/primitives/scroll-area.d.ts +3 -4
- package/dist/primitives/select.d.ts +20 -20
- package/dist/primitives/separator.d.ts +4 -8
- package/dist/primitives/skeleton.d.ts +3 -4
- package/dist/primitives/switch.d.ts +6 -6
- package/dist/primitives/tabs.d.ts +26 -26
- package/dist/primitives/tooltip.d.ts +12 -12
- package/dist/theme/create-theme.d.ts +1 -1
- package/dist/theme/defaults.d.ts +1 -1
- package/dist/theme/index.d.ts +6 -6
- package/dist/theme/theme-provider.d.ts +8 -7
- package/dist/theme/theme-to-css.d.ts +1 -1
- package/dist/theme/types.d.ts +98 -100
- package/dist/theme/use-theme-mode.d.ts +1 -1
- package/dist/trpc-react.d.ts +23 -3
- package/dist/widgets/host-widgets.d.ts +4 -4
- package/package.json +8 -4
- package/src/tailwind/camstack-theme.css +11 -0
- package/dist/composites/unit-picker/UnitPicker.spec.d.ts +0 -1
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
* Client-side pagination for {@link DataTable} — pure, no React.
|
|
3
|
+
*
|
|
4
|
+
* The table sorts first and pages second, so page 1 always holds the first
|
|
5
|
+
* rows of the CURRENT order. A page past the end (the rows shrank under it:
|
|
6
|
+
* a filter narrowed, a revoke removed rows) clamps to the last page instead
|
|
7
|
+
* of rendering an empty table with a pager that says "page 4 of 2".
|
|
8
|
+
*/
|
|
9
9
|
export interface DataTablePage<T> {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
10
|
+
readonly pageRows: readonly T[];
|
|
11
|
+
/** 0-based page actually shown (after clamping). */
|
|
12
|
+
readonly page: number;
|
|
13
|
+
/** At least 1 — an empty table is one empty page. */
|
|
14
|
+
readonly pageCount: number;
|
|
15
|
+
/** 1-based index of the first row shown; 0 when there are none. */
|
|
16
|
+
readonly from: number;
|
|
17
|
+
/** 1-based index of the last row shown; 0 when there are none. */
|
|
18
|
+
readonly to: number;
|
|
19
|
+
readonly total: number;
|
|
20
20
|
}
|
|
21
21
|
export declare function paginateRows<T>(rows: readonly T[], page: number, pageSize: number): DataTablePage<T>;
|
|
22
22
|
/** Every visible string of the pager — this library carries no translations. */
|
|
23
23
|
export interface DataTablePaginationLabels {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
/** Accessible name of the pager's `<nav>` — say WHICH table. */
|
|
25
|
+
readonly navLabel: string;
|
|
26
|
+
readonly previous: string;
|
|
27
|
+
readonly next: string;
|
|
28
|
+
/** "1–25 of 167". Arguments are 1-based; `from`/`to` are 0 for no rows. */
|
|
29
|
+
readonly range: (from: number, to: number, total: number) => string;
|
|
30
30
|
}
|
|
31
31
|
export declare const DEFAULT_PAGINATION_LABELS: DataTablePaginationLabels;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { DataColumn } from
|
|
1
|
+
import type { DataColumn } from "./data-table";
|
|
2
2
|
export interface DataTableSelection<T> {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
/** Selected row keys (`rowKey(row)`, stringified). Owned by the caller. */
|
|
4
|
+
readonly selected: ReadonlySet<string>;
|
|
5
|
+
readonly onChange: (next: ReadonlySet<string>) => void;
|
|
6
|
+
/** False = no checkbox for this row (e.g. the caller's own session). */
|
|
7
|
+
readonly isSelectable?: (row: T) => boolean;
|
|
8
|
+
/** Accessible name of a row's checkbox — name the row, not "select". */
|
|
9
|
+
readonly rowLabel: (row: T) => string;
|
|
10
|
+
/** Accessible name of the header checkbox. */
|
|
11
|
+
readonly pageLabel: string;
|
|
12
12
|
}
|
|
13
13
|
export declare const SELECTION_COLUMN_KEY = "__select";
|
|
14
14
|
/** The selection column for the rows currently on screen. */
|
|
@@ -1,124 +1,173 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/**
|
|
2
|
+
* DataTable — shared responsive table for admin pages.
|
|
3
|
+
*
|
|
4
|
+
* Recipes baked in:
|
|
5
|
+
* - `overflow-x-auto` wrapper so narrow viewports don't clip the
|
|
6
|
+
* right edge (the rounded border survives the scroll).
|
|
7
|
+
* - `min-w-[Npx]` on the inner table so columns don't squash below
|
|
8
|
+
* readable width before the scroll kicks in.
|
|
9
|
+
* - `whitespace-nowrap` on headers — column titles never wrap to
|
|
10
|
+
* two lines (`AUTO-KILL` was the regression that triggered this).
|
|
11
|
+
* - Themed `bg-surface` + `border-border` so contrast works in both
|
|
12
|
+
* light and dark themes.
|
|
13
|
+
*
|
|
14
|
+
* Column model: caller supplies `columns: DataColumn<T>[]` and
|
|
15
|
+
* `rows: T[]`. Each column declares `header`, optional `align`,
|
|
16
|
+
* optional `nowrap`, and a `render(row) => ReactNode` that produces
|
|
17
|
+
* the cell content.
|
|
18
|
+
*
|
|
19
|
+
* <DataTable
|
|
20
|
+
* columns={[
|
|
21
|
+
* { key: 'username', header: 'Username', render: (u) => u.username },
|
|
22
|
+
* { key: 'role', header: 'Role', render: (u) => <RoleBadge .../> },
|
|
23
|
+
* { key: 'actions', header: '', align: 'right', render: (u) => <Actions .../> },
|
|
24
|
+
* ]}
|
|
25
|
+
* rows={users}
|
|
26
|
+
* minWidthPx={560}
|
|
27
|
+
* />
|
|
28
|
+
*
|
|
29
|
+
* If finer header markup is needed, pass `headerRender` instead of
|
|
30
|
+
* `header` (e.g. for a sortable click affordance).
|
|
31
|
+
*
|
|
32
|
+
* ── Narrow viewports ──────────────────────────────────────────────────────
|
|
33
|
+
* The table stays a table. The wrapper is `overflow-x-auto`, so a phone
|
|
34
|
+
* scrolls the columns sideways INSIDE the table — the page body never moves
|
|
35
|
+
* sideways, and the cells stay one line (`whitespace-nowrap`). That is the
|
|
36
|
+
* default (`mobileMode="scroll"`). Cards are opt-in via `mobileMode="cards"`;
|
|
37
|
+
* `auto` still applies the old column-count rule for a surface that wants it.
|
|
38
|
+
* See `resolveTableLayout`.
|
|
39
|
+
*
|
|
40
|
+
* ── Scrolling the BODY, not the page ──────────────────────────────────────
|
|
41
|
+
* `maxBodyHeight` caps the table and scrolls its rows INSIDE the container
|
|
42
|
+
* with the column header pinned. It is ONE prop, not two, because "this list
|
|
43
|
+
* scrolls internally" and "its header stays visible" are the same decision: a
|
|
44
|
+
* capped table whose header scrolls away is a list of unlabelled cells.
|
|
45
|
+
*
|
|
46
|
+
* Use it wherever the row count is open-ended (rules, targets, delivery
|
|
47
|
+
* history) so the page keeps its own header, filters and actions in view while
|
|
48
|
+
* the operator moves through the rows.
|
|
49
|
+
*/
|
|
50
|
+
import { type ReactNode, type JSX } from "react";
|
|
51
|
+
import { type TableMobileMode } from "./data-table-layout";
|
|
52
|
+
import { type DataTablePaginationLabels } from "./data-table-pagination";
|
|
53
|
+
import { type DataTableSelection } from "./data-table-selection";
|
|
54
|
+
import { type TableSortState, type TableSortValue } from "./table-sort";
|
|
6
55
|
export interface DataColumn<T> {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
56
|
+
/** Stable key for React reconciliation + tests. */
|
|
57
|
+
readonly key: string;
|
|
58
|
+
/** Plain text header. Mutually exclusive with `headerRender`. */
|
|
59
|
+
readonly header?: string;
|
|
60
|
+
/** Custom header markup — overrides `header`. */
|
|
61
|
+
readonly headerRender?: () => ReactNode;
|
|
62
|
+
/** Cell horizontal alignment. Default: `left`. */
|
|
63
|
+
readonly align?: "left" | "right" | "center";
|
|
64
|
+
/** Suppress text wrapping on header + cell. Default: `true` — a cell that
|
|
65
|
+
* wraps is a row that has already lost its table. Pass `false` only for a
|
|
66
|
+
* column whose value is meant to wrap (a description, a blob). */
|
|
67
|
+
readonly nowrap?: boolean;
|
|
68
|
+
/** Cell renderer. Receives the row value. */
|
|
69
|
+
readonly render: (row: T, rowIndex: number) => ReactNode;
|
|
70
|
+
/** Optional explicit Tailwind width class (e.g. `'w-24'`). */
|
|
71
|
+
readonly width?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Opt this column into column sorting. Return the row's value for THIS
|
|
74
|
+
* column: a number for numeric columns (never a formatted string — "100"
|
|
75
|
+
* sorts before "9"), a string for text, and `null` when the row has no
|
|
76
|
+
* value, which always sorts last in both directions.
|
|
77
|
+
*
|
|
78
|
+
* Called once per row per comparison, so read a field; do not format.
|
|
79
|
+
*
|
|
80
|
+
* Omitting it is the correct answer for a composite cell (a list, an argv
|
|
81
|
+
* blob, an interactive control): see {@link DataColumn.notSortableReason}.
|
|
82
|
+
*/
|
|
83
|
+
readonly sortValue?: (row: T) => TableSortValue;
|
|
84
|
+
/**
|
|
85
|
+
* Why this column has NO sort. Rendered as the header's `title` so the
|
|
86
|
+
* reason reaches the operator who wonders why one header clicks and the
|
|
87
|
+
* next does not.
|
|
88
|
+
*
|
|
89
|
+
* Only meaningful together with an absent `sortValue`. A column that cannot
|
|
90
|
+
* be ordered in a way that MEANS something must say so rather than offer an
|
|
91
|
+
* ordering that looks authoritative and is not.
|
|
92
|
+
*/
|
|
93
|
+
readonly notSortableReason?: string;
|
|
45
94
|
}
|
|
46
95
|
export interface DataTableProps<T> {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
96
|
+
readonly columns: readonly DataColumn<T>[];
|
|
97
|
+
readonly rows: readonly T[];
|
|
98
|
+
/** Stable key per row. Default: rowIndex (works for stable lists). */
|
|
99
|
+
readonly rowKey?: (row: T, rowIndex: number) => string | number;
|
|
100
|
+
/** Click handler attached to each row. Adds hover + cursor-pointer. */
|
|
101
|
+
readonly onRowClick?: (row: T, rowIndex: number) => void;
|
|
102
|
+
/** Min width in px for the inner table. Default: 480. */
|
|
103
|
+
readonly minWidthPx?: number;
|
|
104
|
+
/** Empty-state message. Default: hides the table when rows=[]. */
|
|
105
|
+
readonly emptyMessage?: string;
|
|
106
|
+
/** Additional className for the outer container. */
|
|
107
|
+
readonly className?: string;
|
|
108
|
+
/** Wrapper border style — set false to drop the rounded border (e.g. when the
|
|
109
|
+
* table sits inside another bordered card). Default: `true`. */
|
|
110
|
+
readonly bordered?: boolean;
|
|
111
|
+
/** Per-row className resolver (e.g. status-coloured backgrounds). */
|
|
112
|
+
readonly rowClassName?: (row: T, rowIndex: number) => string | undefined;
|
|
113
|
+
/**
|
|
114
|
+
* Narrow-viewport rendering. Default `scroll` — the table stays a table and
|
|
115
|
+
* the wrapper scrolls sideways. Pass `cards` to force the card list,
|
|
116
|
+
* `auto` for the old column-count rule (`CARD_MODE_MIN_COLUMNS`).
|
|
117
|
+
*/
|
|
118
|
+
readonly mobileMode?: TableMobileMode;
|
|
119
|
+
/**
|
|
120
|
+
* Tailwind `max-h-*` class capping the table. The rows then scroll INSIDE
|
|
121
|
+
* this container and the column header is pinned to its top; the page around
|
|
122
|
+
* it does not move. Absent (default) = the table is as tall as its rows and
|
|
123
|
+
* the page scrolls. Use {@link TABLE_SCROLL_MAX_H} unless a surface has a
|
|
124
|
+
* reason of its own.
|
|
125
|
+
*/
|
|
126
|
+
readonly maxBodyHeight?: string;
|
|
127
|
+
/**
|
|
128
|
+
* Column sort the table opens with, e.g. `{ columnKey: 'cpu', dir: 'desc' }`.
|
|
129
|
+
* Must name a column that declares `sortValue`; a key that names no sortable
|
|
130
|
+
* column simply leaves the table in its incoming order.
|
|
131
|
+
*
|
|
132
|
+
* The state is owned INSIDE the table from here on — a header click moves it
|
|
133
|
+
* none → asc → desc → none. Pass this only to choose the opening order, not
|
|
134
|
+
* to drive the table from outside — that is {@link DataTableProps.sort}.
|
|
135
|
+
*/
|
|
136
|
+
readonly defaultSort?: TableSortState;
|
|
137
|
+
/**
|
|
138
|
+
* CONTROLLED sort. Present (even `null`) = the owner holds the state: the
|
|
139
|
+
* table renders exactly this order and reports header clicks through
|
|
140
|
+
* `onSortChange` without moving on its own. Use it when the order must
|
|
141
|
+
* survive a remount or live in the URL. Absent = uncontrolled
|
|
142
|
+
* (`defaultSort`).
|
|
143
|
+
*/
|
|
144
|
+
readonly sort?: TableSortState | null;
|
|
145
|
+
/** Every header click, with the next state (none → asc → desc → none). */
|
|
146
|
+
readonly onSortChange?: (next: TableSortState | null) => void;
|
|
147
|
+
/**
|
|
148
|
+
* Client-side pagination: show this many rows per page with a pager under
|
|
149
|
+
* the table. Sorting happens first, so page 1 holds the first rows of the
|
|
150
|
+
* current order. Absent = every row, no pager. The pager is drawn only when
|
|
151
|
+
* the rows do not fit on one page.
|
|
152
|
+
*/
|
|
153
|
+
readonly pageSize?: number;
|
|
154
|
+
/** CONTROLLED 0-based page (with `onPageChange`). Absent = the table owns it. */
|
|
155
|
+
readonly page?: number;
|
|
156
|
+
readonly onPageChange?: (page: number) => void;
|
|
157
|
+
/** The pager's strings. Default: English. */
|
|
158
|
+
readonly paginationLabels?: DataTablePaginationLabels;
|
|
159
|
+
/**
|
|
160
|
+
* Row selection — a leading checkbox column (see `data-table-selection`).
|
|
161
|
+
* Needs `rowKey`: keys are what the caller's bulk action acts on.
|
|
162
|
+
*/
|
|
163
|
+
readonly selection?: DataTableSelection<T>;
|
|
115
164
|
}
|
|
116
165
|
/**
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
166
|
+
* The default cap for an internally-scrolling table.
|
|
167
|
+
*
|
|
168
|
+
* `60vh` leaves the page header, its filters and its actions on screen at
|
|
169
|
+
* every viewport while still showing ~10 rows — and it is a fraction, so it
|
|
170
|
+
* does not need a breakpoint of its own.
|
|
171
|
+
*/
|
|
123
172
|
export declare const TABLE_SCROLL_MAX_H: "max-h-[60vh]";
|
|
124
|
-
export declare function DataTable<T>({ columns, rows, rowKey, onRowClick, minWidthPx, emptyMessage, className, bordered, rowClassName, mobileMode, maxBodyHeight, defaultSort, sort: sortProp, onSortChange, pageSize, page: pageProp, onPageChange, paginationLabels, selection
|
|
173
|
+
export declare function DataTable<T>({ columns, rows, rowKey, onRowClick, minWidthPx, emptyMessage, className, bordered, rowClassName, mobileMode, maxBodyHeight, defaultSort, sort: sortProp, onSortChange, pageSize, page: pageProp, onPageChange, paginationLabels, selection }: DataTableProps<T>): JSX.Element | null;
|
|
@@ -1,29 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* DetectionCanvas — renders an image with overlaid bounding boxes.
|
|
3
|
+
*
|
|
4
|
+
* Adapted to the Phase 6 detection output rework: consumes the new
|
|
5
|
+
* `ObjectDetection` shape (flat at root, `bbox: {x,y,width,height}`,
|
|
6
|
+
* `labels: ScoredLabel[]`, `parentId` for details). Details (face,
|
|
7
|
+
* plate) are drawn as inner boxes correlated with their parent via
|
|
8
|
+
* `parentId`.
|
|
9
|
+
*/
|
|
10
|
+
import { type JSX, type ReactNode } from "react";
|
|
11
|
+
export type { ObjectDetection, ScoredLabel, DetectionBoundingBox } from "@camstack/types";
|
|
12
|
+
import type { ObjectDetection } from "@camstack/types";
|
|
4
13
|
/** Legacy alias kept so pre-rework consumers don't need a coordinated rename. */
|
|
5
14
|
export type Detection = ObjectDetection;
|
|
6
15
|
export interface DetectionCanvasProps {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
16
|
+
/** Image source (data URL or regular URL) */
|
|
17
|
+
readonly src: string | null;
|
|
18
|
+
/** Image dimensions (used for bbox coordinate mapping) */
|
|
19
|
+
readonly imageWidth: number;
|
|
20
|
+
readonly imageHeight: number;
|
|
21
|
+
/** Detections to overlay — flat list (first-level + details). */
|
|
22
|
+
readonly detections?: readonly ObjectDetection[];
|
|
23
|
+
/** Custom class → hex color mapping (merged with defaults) */
|
|
24
|
+
readonly classColors?: Readonly<Record<string, string>>;
|
|
25
|
+
/** Aspect ratio CSS value (default: auto based on image dimensions) */
|
|
26
|
+
readonly aspectRatio?: string;
|
|
27
|
+
/** Additional CSS classes on the container */
|
|
28
|
+
readonly className?: string;
|
|
29
|
+
/** Placeholder content when no image is loaded */
|
|
30
|
+
readonly placeholder?: ReactNode;
|
|
31
|
+
/** Show confidence percentage in bbox labels */
|
|
32
|
+
readonly showConfidence?: boolean;
|
|
33
|
+
/** Minimum confidence to display (0-1, default: 0) */
|
|
34
|
+
readonly minConfidence?: number;
|
|
35
|
+
/** Border width for bboxes in px (default: 2) */
|
|
36
|
+
readonly borderWidth?: number;
|
|
28
37
|
}
|
|
29
|
-
export declare function DetectionCanvas({ src, imageWidth, imageHeight, detections, classColors, aspectRatio, className, placeholder, showConfidence, minConfidence, borderWidth
|
|
38
|
+
export declare function DetectionCanvas({ src, imageWidth, imageHeight, detections, classColors, aspectRatio, className, placeholder, showConfidence, minConfidence, borderWidth }: DetectionCanvasProps): JSX.Element;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
* Fixed colors for known detection classes — derived from the taxonomy
|
|
3
|
+
* (every detection/motion kind) plus the UI-only face/plate classes. Kept as
|
|
4
|
+
* a named export for back-compat with existing consumers.
|
|
5
|
+
*/
|
|
6
6
|
export declare const CLASS_COLORS: Readonly<Record<string, string>>;
|
|
7
7
|
/** Primary/default color when nothing else matches */
|
|
8
|
-
export declare const DEFAULT_COLOR
|
|
8
|
+
export declare const DEFAULT_COLOR: string;
|
|
9
9
|
/**
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
* Get the color for a detection class name.
|
|
11
|
+
* Resolves: custom override → taxonomy/UI-only fixed color → deterministic
|
|
12
|
+
* hash-based color for unknown classes.
|
|
13
|
+
*/
|
|
14
14
|
export declare function getClassColor(className: string, customColors?: Readonly<Record<string, string>>): string;
|
|
@@ -1,34 +1,35 @@
|
|
|
1
|
-
import { DeviceDetections } from
|
|
2
|
-
import { StationaryOverlayBox } from
|
|
1
|
+
import type { DeviceDetections } from "../hooks/use-device-detections";
|
|
2
|
+
import type { StationaryOverlayBox } from "@camstack/types";
|
|
3
|
+
import { type JSX } from "react";
|
|
3
4
|
export interface DetectionOverlayProps {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
5
|
+
readonly detections: DeviceDetections;
|
|
6
|
+
readonly showMotionZones?: boolean;
|
|
7
|
+
readonly showMotionRaw?: boolean;
|
|
8
|
+
readonly showDetections?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Draw subjects the tracker calls MOVING (and the ones it has not judged
|
|
11
|
+
* yet — an unclassified track is not a still one, and hiding it would make a
|
|
12
|
+
* new subject invisible for its first frames).
|
|
13
|
+
*/
|
|
14
|
+
readonly showMoving?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Draw the CENSUS — the parked objects the registry holds.
|
|
17
|
+
*
|
|
18
|
+
* This layer does not come from the detection stream, and cannot. When the
|
|
19
|
+
* evidence ledger promotes a parked object the tracker is told to forget it,
|
|
20
|
+
* so it stops being a detection at all; it lives on the occupancy snapshot.
|
|
21
|
+
* The switch therefore governs {@link stationaryObjects}, not a filter over
|
|
22
|
+
* `detections` — which is what it used to be, and why it appeared to do
|
|
23
|
+
* nothing.
|
|
24
|
+
*/
|
|
25
|
+
readonly showStationary?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* The census, normalised, from the occupancy snapshot
|
|
28
|
+
* (`zoneAnalytics.getCurrentSnapshot().stationaryObjects`). Absent means the
|
|
29
|
+
* caller has not fetched it — which is NOT the same as "nothing is parked",
|
|
30
|
+
* so the layer simply draws nothing rather than claiming an empty lot.
|
|
31
|
+
*/
|
|
32
|
+
readonly stationaryObjects?: readonly StationaryOverlayBox[];
|
|
33
|
+
readonly showPhaseIndicator?: boolean;
|
|
33
34
|
}
|
|
34
|
-
export declare function DetectionOverlay({ detections: { motion, motionRaw, detection, phase }, showMotionZones, showMotionRaw, showDetections, showMoving, showStationary, stationaryObjects, showPhaseIndicator
|
|
35
|
+
export declare function DetectionOverlay({ detections: { motion, motionRaw, detection, phase }, showMotionZones, showMotionRaw, showDetections, showMoving, showStationary, stationaryObjects, showPhaseIndicator }: DetectionOverlayProps): JSX.Element | null;
|
|
@@ -1,11 +1,24 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* DetectionResultTree — displays detection results as a hierarchical tree.
|
|
3
|
+
*
|
|
4
|
+
* Adapted to the Phase 6 output rework: the tree consumes flat
|
|
5
|
+
* `ObjectDetection[]` and correlates details (face / plate) with
|
|
6
|
+
* their parents via `parentId`. First-level entries are top-level
|
|
7
|
+
* nodes; their details render as indented children. Each node shows:
|
|
8
|
+
* - bbox (rectangle)
|
|
9
|
+
* - macroClass + score badge
|
|
10
|
+
* - `labels[]` (ScoredLabel — own + inherited)
|
|
11
|
+
* - `debug.alternateLabels` (top-N per source) when present
|
|
12
|
+
*/
|
|
13
|
+
import { type JSX } from "react";
|
|
14
|
+
import type { ObjectDetection } from "@camstack/types";
|
|
2
15
|
export interface DetectionResultTreeProps {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
16
|
+
readonly detections: readonly ObjectDetection[];
|
|
17
|
+
readonly classColors?: Readonly<Record<string, string>>;
|
|
18
|
+
readonly className?: string;
|
|
19
|
+
/** Set of detection ids that are hidden */
|
|
20
|
+
readonly hiddenKeys?: ReadonlySet<string>;
|
|
21
|
+
/** Callback when a detection's visibility is toggled */
|
|
22
|
+
readonly onToggleVisibility?: (key: string, visible: boolean) => void;
|
|
10
23
|
}
|
|
11
|
-
export declare function DetectionResultTree({ detections, classColors, className, hiddenKeys, onToggleVisibility
|
|
24
|
+
export declare function DetectionResultTree({ detections, classColors, className, hiddenKeys, onToggleVisibility }: DetectionResultTreeProps): JSX.Element | null;
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { type JSX } from "react";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
import { type TRPCClient } from "@trpc/client";
|
|
4
|
+
import type { AppRouter } from "@camstack/types";
|
|
5
|
+
import type { UseThemeModeReturn } from "../theme/types";
|
|
5
6
|
export interface DevShellProps {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
children: (props: {
|
|
8
|
+
trpc: TRPCClient<AppRouter>;
|
|
9
|
+
theme: UseThemeModeReturn;
|
|
10
|
+
}) => ReactNode;
|
|
11
|
+
serverUrl?: string;
|
|
12
|
+
title?: string;
|
|
12
13
|
}
|
|
13
14
|
interface DevShellContextValue {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
trpc: TRPCClient<AppRouter>;
|
|
16
|
+
token: string;
|
|
17
|
+
logout: () => void;
|
|
17
18
|
}
|
|
18
19
|
export declare function useDevShell(): DevShellContextValue;
|
|
19
|
-
export declare function DevShell({ children, serverUrl, title }: DevShellProps):
|
|
20
|
+
export declare function DevShell({ children, serverUrl, title }: DevShellProps): JSX.Element | null;
|
|
20
21
|
export {};
|