@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,116 +1,116 @@
|
|
|
1
|
-
import { ConfigOption, DeviceSelectFilter } from
|
|
1
|
+
import { type ConfigOption, type DeviceSelectFilter } from "@camstack/types";
|
|
2
2
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
* Pure, render-free helpers backing the `device-select` / `device-multiselect`
|
|
4
|
+
* form fields. The field declares only a {@link DeviceSelectFilter}; the
|
|
5
|
+
* renderer fetches EVERY system device via `deviceManager.listAll` and narrows
|
|
6
|
+
* the list CLIENT-SIDE with these functions — there is no server-computed
|
|
7
|
+
* option list.
|
|
8
|
+
*
|
|
9
|
+
* Kept separate from the React component so the match/label/search logic is
|
|
10
|
+
* unit-testable without mounting a tree or mocking tRPC.
|
|
11
|
+
*/
|
|
12
12
|
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
* The minimal projection of a `deviceManager.listAll` row these helpers read.
|
|
14
|
+
* A structural subset of `DeviceInfo` so a stubbed device (in a test) or the
|
|
15
|
+
* full wire shape both satisfy it.
|
|
16
|
+
*/
|
|
17
17
|
export interface DeviceSelectCandidate {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
readonly id: number;
|
|
19
|
+
readonly type: string;
|
|
20
|
+
readonly name: string;
|
|
21
|
+
readonly location?: string | null;
|
|
22
|
+
readonly features?: readonly string[];
|
|
23
|
+
/** Name of the container this device lives in, when it has one. */
|
|
24
|
+
readonly parentName?: string | null;
|
|
25
25
|
}
|
|
26
26
|
/** A picker option that still knows where its device is. */
|
|
27
27
|
export interface DeviceOption extends ConfigOption {
|
|
28
|
-
|
|
28
|
+
readonly location: string | null;
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
* Does a device satisfy the filter?
|
|
32
|
+
*
|
|
33
|
+
* Union match: with an empty/absent filter every device passes; otherwise the
|
|
34
|
+
* device passes when ANY provided clause matches — its `features` intersect
|
|
35
|
+
* `caps`, OR its `type` is in `types`. `excludeDeviceId` is subtracted last
|
|
36
|
+
* (it always drops the device regardless of the other clauses).
|
|
37
|
+
*/
|
|
38
38
|
export declare function deviceMatchesFilter(device: DeviceSelectCandidate, filter?: DeviceSelectFilter): boolean;
|
|
39
39
|
/** Human label for a device option: `Name (Location)` when a location is set. */
|
|
40
40
|
export declare function deviceOptionLabel(device: DeviceSelectCandidate): string;
|
|
41
41
|
/**
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
* Filter a device list and project it into sorted `{ value, label }` options
|
|
43
|
+
* (value = the device id as a string). Sorted case-insensitively by label so
|
|
44
|
+
* the picker order is stable.
|
|
45
|
+
*/
|
|
46
46
|
/** `Location · type · in Container` — the parts a name alone does not say. */
|
|
47
47
|
export declare function deviceOptionDescription(device: DeviceSelectCandidate): string;
|
|
48
48
|
export declare function devicesToOptions(devices: readonly DeviceSelectCandidate[], filter?: DeviceSelectFilter): DeviceOption[];
|
|
49
49
|
export interface DeviceFacets {
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
readonly locations: readonly string[];
|
|
51
|
+
readonly types: readonly string[];
|
|
52
52
|
}
|
|
53
53
|
/** The distinct locations and types on offer — the chips above the search. */
|
|
54
54
|
export declare function deviceFacets(devices: readonly DeviceSelectCandidate[]): DeviceFacets;
|
|
55
55
|
/** Each facet is a SET of chosen values: any of them matches, none = all. */
|
|
56
56
|
export interface FacetSelection {
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
readonly locations: readonly string[];
|
|
58
|
+
readonly types: readonly string[];
|
|
59
59
|
}
|
|
60
60
|
export declare const NO_FACETS: FacetSelection;
|
|
61
61
|
/** Every facet with a choice must match one of its values. */
|
|
62
62
|
export declare function matchesFacets(device: DeviceSelectCandidate, facets: FacetSelection): boolean;
|
|
63
63
|
export interface SuggestedPartition<T> {
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
readonly suggested: readonly T[];
|
|
65
|
+
readonly others: readonly T[];
|
|
66
66
|
}
|
|
67
67
|
/**
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
* Split `items` into the suggested ones (first, in their order) and the rest.
|
|
69
|
+
* Suggested is a presentation, never a pick: nothing here selects anything
|
|
70
|
+
* (D356).
|
|
71
|
+
*/
|
|
72
72
|
export declare function partitionSuggested<T>(items: readonly T[], suggested: ReadonlySet<number>, idOf: (item: T) => number): SuggestedPartition<T>;
|
|
73
73
|
/**
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
* The fleet row {@link sameLocationSuggestions} reads. Every field is a column
|
|
75
|
+
* of the `slim` `listAll` projection, so no caller needs a wider read.
|
|
76
|
+
*/
|
|
77
77
|
export interface SuggestionFleetDevice {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
78
|
+
readonly id: number;
|
|
79
|
+
readonly type: string;
|
|
80
|
+
readonly name: string;
|
|
81
|
+
readonly stableId: string;
|
|
82
|
+
readonly location?: string | null;
|
|
83
|
+
readonly parentDeviceId?: number | null;
|
|
84
|
+
/** A container's stored primary-child pick (the child's `stableId`). */
|
|
85
|
+
readonly primaryChildEntityId?: string | null;
|
|
86
|
+
readonly role?: string | null;
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
89
|
+
* Which devices are SUGGESTED to a device in `location` — the one rule every
|
|
90
|
+
* picker that suggests by room applies (D356, D749):
|
|
91
|
+
*
|
|
92
|
+
* - a device sharing the location is suggested;
|
|
93
|
+
* - a CONTAINER is never suggested itself. A container family that is in the
|
|
94
|
+
* location (the container or any of its children) contributes ONE device:
|
|
95
|
+
* the child the container stands for — the operator's stored pick, else
|
|
96
|
+
* the automatic one (`resolveContainerPrimaryChild`, role → namesake →
|
|
97
|
+
* type). Its other children are not suggested; they stay pickable.
|
|
98
|
+
* - a container with no child (nothing to stand for) contributes nothing.
|
|
99
|
+
*
|
|
100
|
+
* Validity for the card (kind, capability, already assigned, the host itself)
|
|
101
|
+
* is the CALLER's filter: intersect, never widen.
|
|
102
|
+
*/
|
|
103
103
|
export declare function sameLocationSuggestions(fleet: readonly SuggestionFleetDevice[], location: string | null | undefined): ReadonlySet<number>;
|
|
104
104
|
/**
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
105
|
+
* Free-text option filter — case-insensitive AND over whitespace tokens, each
|
|
106
|
+
* matched against the option's `value` + `label` (so a device is found by name,
|
|
107
|
+
* id, or location). An empty query returns every option in order.
|
|
108
|
+
*/
|
|
109
109
|
export declare function filterDeviceOptions<T extends ConfigOption>(options: readonly T[], query: string): T[];
|
|
110
110
|
/**
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
111
|
+
* Resolve the currently-selected values into options IN SELECTION ORDER (so
|
|
112
|
+
* chips stay stable while searching). A selected value with no matching option
|
|
113
|
+
* becomes a synthetic `{ value, label: value }` — a stale id still shows as a
|
|
114
|
+
* removable chip rather than silently vanishing.
|
|
115
|
+
*/
|
|
116
116
|
export declare function selectedDeviceOptions(options: readonly ConfigOption[], selected: readonly string[]): ConfigOption[];
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
import { DeviceType, DeviceSelector } from
|
|
1
|
+
import { DeviceType, type DeviceSelector } from "@camstack/types";
|
|
2
2
|
/** The device fields this picker reads. */
|
|
3
3
|
export interface SelectorDevice {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
readonly id: number;
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly type: DeviceType;
|
|
7
|
+
readonly location: string | null;
|
|
8
|
+
readonly parentDeviceId: number | null;
|
|
9
9
|
}
|
|
10
|
-
export type DeviceSelectorTab =
|
|
10
|
+
export type DeviceSelectorTab = "all" | "types" | "locations" | "ids";
|
|
11
11
|
interface DeviceSelectorPickerProps {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
12
|
+
readonly value: DeviceSelector;
|
|
13
|
+
readonly onChange: (next: DeviceSelector) => void;
|
|
14
|
+
/**
|
|
15
|
+
* `includeLinked` lives next to the selector because it changes what the
|
|
16
|
+
* selector REACHES, not what it selects. Omit both to hide the toggle
|
|
17
|
+
* (the raw picker renders it per row instead).
|
|
18
|
+
*/
|
|
19
|
+
readonly includeLinked?: boolean;
|
|
20
|
+
readonly onIncludeLinkedChange?: (next: boolean) => void;
|
|
21
|
+
/**
|
|
22
|
+
* Ids the CALLER may delegate. `null` = unclamped (admin). A clamped
|
|
23
|
+
* picker hides devices outside the set from the Chosen tab and reports the
|
|
24
|
+
* counts it can actually see.
|
|
25
|
+
*/
|
|
26
|
+
readonly clampToDeviceIds?: readonly number[] | null;
|
|
27
|
+
/** Compact spacing for the raw picker's inline row. */
|
|
28
|
+
readonly dense?: boolean;
|
|
29
29
|
}
|
|
30
30
|
/** Human label for a `DeviceType` — 'lawn-mower' → 'Lawn mower'. */
|
|
31
31
|
export declare function deviceTypeLabel(type: string): string;
|
|
32
32
|
/** Which tab a selector belongs to. */
|
|
33
33
|
export declare function tabForSelector(selector: DeviceSelector): DeviceSelectorTab;
|
|
34
|
-
export declare function DeviceSelectorPicker({ value, onChange, includeLinked, onIncludeLinkedChange, clampToDeviceIds, dense
|
|
34
|
+
export declare function DeviceSelectorPicker({ value, onChange, includeLinked, onIncludeLinkedChange, clampToDeviceIds, dense }: DeviceSelectorPickerProps): React.ReactElement;
|
|
35
35
|
/** Summary line for a selector — used by the raw picker's collapsed row. */
|
|
36
36
|
export declare function describeDeviceSelector(selector: DeviceSelector): string;
|
|
37
37
|
export {};
|
|
@@ -1,37 +1,63 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
/**
|
|
2
|
+
* DeviceStepMatrix — the step × accelerator TABLE of a detection pipeline
|
|
3
|
+
* (D757): the node's Pipeline tab and the camera's Detection pipeline → Steps
|
|
4
|
+
* are this matrix, and a click on a cell (or a step's header) opens that step's
|
|
5
|
+
* settings in a docked panel (`StepDetailDock`) that overlays the page instead
|
|
6
|
+
* of reflowing the matrix.
|
|
7
|
+
*
|
|
8
|
+
* Column 1 (STICKY): the indented step tree — slot, name, class-flow chips,
|
|
9
|
+
* and an optional badge (the camera's gate). The header is a button: it
|
|
10
|
+
* opens the step on the selected accelerator.
|
|
11
|
+
* Columns 2..N: one per accelerator, grouped under their node; the header
|
|
12
|
+
* names the accelerator, its format, the model it elects, and "off" for a
|
|
13
|
+
* switched-off one. A cell shows the model that runs there, or "⚠ skip",
|
|
14
|
+
* "→ iGPU", "root", "cluster", "ovr", "—".
|
|
15
|
+
*
|
|
16
|
+
* Keyboard: ONE Tab stop (a roving tabindex over the step headers and cells);
|
|
17
|
+
* arrows move, Home / End go to the row's ends, Enter or Space opens.
|
|
18
|
+
*
|
|
19
|
+
* `reserveRightPx`: the width a docked panel covers at the right of the
|
|
20
|
+
* viewport. The matrix adds a trailing spacer that wide (so any column can
|
|
21
|
+
* scroll clear of it) and scrolls the selected cell into the uncovered part —
|
|
22
|
+
* it never shrinks, so nothing reflows when the panel opens.
|
|
23
|
+
*
|
|
24
|
+
* Responsive, container-measured: narrower than the step column plus two
|
|
25
|
+
* columns, the matrix shows ONE node at a time with a node selector.
|
|
26
|
+
*/
|
|
27
|
+
import { type ReactNode, type ForwardRefExoticComponent, type RefAttributes } from "react";
|
|
28
|
+
import type { StepTreeNode } from "./step-tree";
|
|
29
|
+
import { type AgentColumn, type CellState, type MatrixSelectedCell } from "./pipeline-matrix-shared";
|
|
30
|
+
export type { AgentColumn, CellState, MatrixSelectedCell } from "./pipeline-matrix-shared";
|
|
5
31
|
export interface DeviceStepMatrixProps {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
32
|
+
readonly tree: readonly StepTreeNode[];
|
|
33
|
+
readonly agents: readonly AgentColumn[];
|
|
34
|
+
readonly getCellState: (addonId: string, agent: AgentColumn) => CellState;
|
|
35
|
+
/** `viaKeyboard`: opened with Enter / Space (a host moves focus into its panel). */
|
|
36
|
+
readonly onCellClick: (addonId: string, agent: AgentColumn, viaKeyboard?: boolean) => void;
|
|
37
|
+
readonly selectedCell: MatrixSelectedCell | null;
|
|
38
|
+
/** Single-node fallback (B): which node the one column shows. */
|
|
39
|
+
readonly fallbackNodeId: string | null;
|
|
40
|
+
readonly onFallbackNodeChange: (nodeId: string) => void;
|
|
41
|
+
/** A step's header was activated — open the step on the selected accelerator. */
|
|
42
|
+
readonly onStepClick?: (addonId: string, viaKeyboard?: boolean) => void;
|
|
43
|
+
/** A badge beside a step's name (the camera's gate). */
|
|
44
|
+
readonly stepBadge?: (addonId: string) => ReactNode;
|
|
45
|
+
/** Width a docked panel covers at the viewport's right edge; 0 = none. */
|
|
46
|
+
readonly reserveRightPx?: number;
|
|
47
|
+
/** Accessible name of the grid. */
|
|
48
|
+
readonly label?: string;
|
|
23
49
|
}
|
|
24
50
|
/** Imperative focus, so a closing panel can hand focus back to its cell. */
|
|
25
51
|
export interface DeviceStepMatrixHandle {
|
|
26
|
-
|
|
27
|
-
|
|
52
|
+
/** `columnKey` = `agentColumnKey(column)`; `null` = the step's header. */
|
|
53
|
+
readonly focusCell: (addonId: string, columnKey: string | null) => void;
|
|
28
54
|
}
|
|
29
55
|
/** Where a key press moves the roving focus in a `rows × cols` grid. */
|
|
30
56
|
export declare function nextGridPosition(key: string, pos: {
|
|
31
|
-
|
|
32
|
-
|
|
57
|
+
readonly r: number;
|
|
58
|
+
readonly c: number;
|
|
33
59
|
}, rows: number, cols: number): {
|
|
34
|
-
|
|
35
|
-
|
|
60
|
+
readonly r: number;
|
|
61
|
+
readonly c: number;
|
|
36
62
|
} | null;
|
|
37
|
-
export declare const DeviceStepMatrix:
|
|
63
|
+
export declare const DeviceStepMatrix: ForwardRefExoticComponent<DeviceStepMatrixProps & RefAttributes<DeviceStepMatrixHandle>>;
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
* Shared discovery panel — renders the `device-discovery` cap surface
|
|
3
|
+
* for any parent device that registers it (Reolink Hub, future ONVIF
|
|
4
|
+
* gateway, NVR-style integrations). Keeps the integration's UI
|
|
5
|
+
* surface zero-effort: as long as the cap is mounted, the panel
|
|
6
|
+
* renders the channel list with status badges, refresh, adopt, and
|
|
7
|
+
* release controls.
|
|
8
|
+
*
|
|
9
|
+
* A single generic UI used by every provider that exposes children
|
|
10
|
+
* behind a gateway. Keeps the operator UX consistent across
|
|
11
|
+
* integrations.
|
|
12
|
+
*/
|
|
13
13
|
interface DiscoveryPanelProps {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
14
|
+
readonly deviceId: number;
|
|
15
|
+
readonly className?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Optional navigation callback fired when the operator clicks the
|
|
18
|
+
* "Open" link on an adopted child row. ui-library deliberately
|
|
19
|
+
* stays free of `react-router-dom` so it works in agent UIs +
|
|
20
|
+
* embedded admin shells alike — host wires the actual navigation.
|
|
21
|
+
* When omitted, the link is hidden.
|
|
22
|
+
*/
|
|
23
|
+
readonly onOpenChild?: (childDeviceId: number) => void;
|
|
24
24
|
}
|
|
25
|
-
export declare function DiscoveryPanel({ deviceId, className, onOpenChild
|
|
25
|
+
export declare function DiscoveryPanel({ deviceId, className, onOpenChild }: DiscoveryPanelProps): React.ReactElement;
|
|
26
26
|
export {};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { DoorbellPressEvent } from
|
|
1
|
+
import type { DoorbellPressEvent } from "../hooks/use-doorbell-events";
|
|
2
|
+
import { type JSX } from "react";
|
|
2
3
|
export interface DoorbellRecentPanelProps {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
readonly history: readonly DoorbellPressEvent[];
|
|
5
|
+
/** Max rows to show (defaults to 5). */
|
|
6
|
+
readonly limit?: number;
|
|
7
|
+
/** Visual hint that the latest press is fresh (< 30s) — pulses the icon. */
|
|
8
|
+
readonly latestIsFresh?: boolean;
|
|
9
|
+
readonly className?: string;
|
|
9
10
|
}
|
|
10
|
-
export declare function DoorbellRecentPanel({ history, limit, latestIsFresh, className
|
|
11
|
+
export declare function DoorbellRecentPanel({ history, limit, latestIsFresh, className }: DoorbellRecentPanelProps): JSX.Element | null;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ReactNode } from
|
|
2
|
-
import { LucideIcon } from
|
|
1
|
+
import { type ReactNode, type JSX } from "react";
|
|
2
|
+
import { type LucideIcon } from "lucide-react";
|
|
3
3
|
export interface EmptyStateProps {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
icon?: LucideIcon;
|
|
5
|
+
title: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
action?: ReactNode;
|
|
8
|
+
className?: string;
|
|
9
9
|
}
|
|
10
|
-
export declare function EmptyState({ icon: Icon, title, description, action, className }: EmptyStateProps):
|
|
10
|
+
export declare function EmptyState({ icon: Icon, title, description, action, className }: EmptyStateProps): JSX.Element;
|
|
@@ -1,19 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* `<ErrorBox>` — the shared, presentational error/alert box for the
|
|
3
|
+
* admin UI.
|
|
4
|
+
*
|
|
5
|
+
* One consistent way to surface connection / status / operation
|
|
6
|
+
* failures across every addon surface (Remote Access, Mesh Networks,
|
|
7
|
+
* TURN Servers, Authentication, device-export, …). It always renders
|
|
8
|
+
* as a bordered box INSIDE a form/body — never as a tiny inline header
|
|
9
|
+
* span. Light-theme readable by design.
|
|
10
|
+
*
|
|
11
|
+
* Purely presentational: no data fetching, no business logic. Pass a
|
|
12
|
+
* message string (or richer `ReactNode`), an optional `title`, an
|
|
13
|
+
* optional retry handler / action slot, and an optional `warning`
|
|
14
|
+
* variant for non-fatal advisories.
|
|
15
|
+
*/
|
|
16
|
+
import { type ReactNode, type JSX } from "react";
|
|
17
|
+
export type ErrorBoxVariant = "danger" | "warning";
|
|
3
18
|
export interface ErrorBoxProps {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
/** The error message. Accepts a string or richer content. */
|
|
20
|
+
message: ReactNode;
|
|
21
|
+
/** Optional bold headline shown above the message. */
|
|
22
|
+
title?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Optional retry handler. When supplied (and no custom `action` is
|
|
25
|
+
* given) a compact "Retry" button is rendered.
|
|
26
|
+
*/
|
|
27
|
+
onRetry?: () => void;
|
|
28
|
+
/** Custom action slot — overrides the default retry button. */
|
|
29
|
+
action?: ReactNode;
|
|
30
|
+
/** Visual flavor. Defaults to `danger`. */
|
|
31
|
+
variant?: ErrorBoxVariant;
|
|
32
|
+
className?: string;
|
|
18
33
|
}
|
|
19
|
-
export declare function ErrorBox({ message, title, onRetry, action, variant, className
|
|
34
|
+
export declare function ErrorBox({ message, title, onRetry, action, variant, className }: ErrorBoxProps): JSX.Element;
|
|
@@ -1,26 +1,37 @@
|
|
|
1
|
-
import { LucideIcon } from 'lucide-react';
|
|
2
|
-
import { EventKindDescriptor } from '@camstack/types';
|
|
3
|
-
import { TranslationFn } from './config-form-builder';
|
|
4
1
|
/**
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
* Event-kind VISUALS — the UI-side half of the unified taxonomy dictionary
|
|
3
|
+
* (`@camstack/types` `EVENT_TAXONOMY` owns the serializable data:
|
|
4
|
+
* color / iconId / labelKey; this owns `iconId → lucide component` and
|
|
5
|
+
* `labelKey → t()`).
|
|
6
|
+
*
|
|
7
|
+
* Every UI that renders an event kind (timeline, events tree, chips,
|
|
8
|
+
* detection canvas/tree) resolves its glyph + translated label here — no
|
|
9
|
+
* per-component hardcoded icon or label.
|
|
10
|
+
*/
|
|
11
|
+
import { type JSX } from "react";
|
|
12
|
+
import { type LucideIcon } from "lucide-react";
|
|
13
|
+
import type { EventKindDescriptor } from "@camstack/types";
|
|
14
|
+
import type { TranslationFn } from "./config-form-builder";
|
|
15
|
+
/**
|
|
16
|
+
* `iconId` → lucide component. Built ONLY from statically-imported icons
|
|
17
|
+
* (bundle-safe). Unknown ids resolve to the neutral `Tag` fallback.
|
|
18
|
+
*/
|
|
8
19
|
export declare const EVENT_KIND_ICONS: Readonly<Record<string, LucideIcon>>;
|
|
9
20
|
/** Resolve an `iconId` to a lucide component (falls back to `Tag`). */
|
|
10
21
|
export declare function resolveEventKindIcon(iconId: string): LucideIcon;
|
|
11
22
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
export declare function eventKindLabel(descriptor: Pick<EventKindDescriptor,
|
|
23
|
+
* Translated label for an event kind — `t(labelKey)` when a translation
|
|
24
|
+
* exists, else the English `label` fallback. Robust to a missing key: an
|
|
25
|
+
* i18n backend that echoes the key unchanged (react-i18next default) is
|
|
26
|
+
* treated as "no translation" and the fallback label is returned, so the UI
|
|
27
|
+
* never renders a raw `eventKind.*` key.
|
|
28
|
+
*/
|
|
29
|
+
export declare function eventKindLabel(descriptor: Pick<EventKindDescriptor, "labelKey" | "label">, t?: TranslationFn): string;
|
|
19
30
|
export interface EventKindGlyphProps {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
31
|
+
readonly iconId: string;
|
|
32
|
+
readonly size?: number;
|
|
33
|
+
readonly color?: string;
|
|
34
|
+
readonly className?: string;
|
|
24
35
|
}
|
|
25
36
|
/** Small convenience component: renders the lucide glyph for an `iconId`. */
|
|
26
|
-
export declare function EventKindGlyph({ iconId, size, color, className }: EventKindGlyphProps):
|
|
37
|
+
export declare function EventKindGlyph({ iconId, size, color, className }: EventKindGlyphProps): JSX.Element;
|