@camstack/ui-library 1.2.257 → 1.2.259
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 +124 -69
- package/dist/index.d.ts +31 -27
- package/dist/index.js +124 -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,115 +1,112 @@
|
|
|
1
|
-
export type ScrubSource =
|
|
1
|
+
export type ScrubSource = "timeline" | "heatmap";
|
|
2
2
|
export interface ScrubState {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
readonly scrubbing: boolean;
|
|
4
|
+
readonly scrubEpoch: number | null;
|
|
5
|
+
readonly playheadEpoch: number | null;
|
|
6
|
+
readonly lastSource: ScrubSource | null;
|
|
7
7
|
}
|
|
8
8
|
export declare const initialScrubState: ScrubState;
|
|
9
9
|
export type ScrubAction = {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
readonly type: "begin";
|
|
11
|
+
readonly source: ScrubSource;
|
|
12
12
|
} | {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
readonly type: "update";
|
|
14
|
+
readonly epoch: number;
|
|
15
|
+
readonly source: ScrubSource;
|
|
16
16
|
} | {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
readonly type: "end";
|
|
18
|
+
readonly epoch: number;
|
|
19
|
+
readonly source: ScrubSource;
|
|
20
20
|
} | {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
readonly type: "seek";
|
|
22
|
+
readonly epoch: number;
|
|
23
|
+
readonly source: ScrubSource;
|
|
24
24
|
} | {
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
readonly type: "playhead";
|
|
26
|
+
readonly epoch: number;
|
|
27
27
|
} | {
|
|
28
|
-
|
|
28
|
+
readonly type: "reset";
|
|
29
29
|
};
|
|
30
30
|
export declare function scrubReducer(state: ScrubState, action: ScrubAction): ScrubState;
|
|
31
31
|
/**
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
* Throttle decision for continuous `update` emits (default ~70 ms).
|
|
33
|
+
* Returns true when enough time has elapsed since the last emit.
|
|
34
|
+
*/
|
|
35
35
|
export declare function shouldEmit(lastEmitMs: number, now: number, throttleMs?: number): boolean;
|
|
36
36
|
/** The last committed target (epoch + wall-clock of the commit). */
|
|
37
37
|
export interface LastCommit {
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
readonly epoch: number;
|
|
39
|
+
readonly at: number;
|
|
40
40
|
}
|
|
41
41
|
/** Epochs within this many ms of the last commit count as the SAME target. */
|
|
42
42
|
export declare const COMMIT_DEDUPE_TOLERANCE_MS = 750;
|
|
43
43
|
/** Only dedupe against a commit made within this recent window. */
|
|
44
|
-
export declare const COMMIT_DEDUPE_WINDOW_MS =
|
|
44
|
+
export declare const COMMIT_DEDUPE_WINDOW_MS = 2e3;
|
|
45
45
|
/**
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
* Decide whether a `seek`/`scrubCommit` should actually hit the playback sink.
|
|
47
|
+
* Each commit reloads the server feeder (loading→playing) and visibly stutters
|
|
48
|
+
* playback; firing the same (or a near-identical) target twice in quick
|
|
49
|
+
* succession produces a redundant reload. Drop a commit only when it targets
|
|
50
|
+
* essentially the SAME epoch as the last commit AND that commit was recent — a
|
|
51
|
+
* genuinely different target, or a re-seek to the same spot after the window,
|
|
52
|
+
* always commits.
|
|
53
|
+
*/
|
|
54
54
|
export declare function shouldCommit(last: LastCommit | null, epoch: number, now: number, toleranceMs?: number, windowMs?: number): boolean;
|
|
55
55
|
/**
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
* The active cursor position (scrub target while scrubbing, else playhead)
|
|
57
|
+
* expressed as a 0..1 fraction across the day window.
|
|
58
|
+
* Returns null when no position is known or the day window is degenerate.
|
|
59
|
+
*/
|
|
60
60
|
export declare function cursorFractionFor(state: ScrubState, day: {
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
readonly from: number;
|
|
62
|
+
readonly to: number;
|
|
63
63
|
}): number | null;
|
|
64
64
|
/**
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
* Generic, always-active playback control surface the scrub controller
|
|
66
|
+
* drives. `scrubStart`/`scrubTo` are CLIENT-SIDE hooks (the wire protocol has
|
|
67
|
+
* no per-move scrub message — a future WebCodecs preview consumes them);
|
|
68
|
+
* `scrubCommit`/`seek` reach the server feeder.
|
|
69
|
+
*/
|
|
70
70
|
export interface PlaybackControlSink {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
scrubStart(): void;
|
|
72
|
+
scrubTo(epochMs: number): void;
|
|
73
|
+
scrubCommit(epochMs: number): void;
|
|
74
|
+
seek(epochMs: number): void;
|
|
75
75
|
}
|
|
76
76
|
/** A mutable holder, structurally compatible with React's `MutableRefObject`. */
|
|
77
77
|
export interface MutableRef<T> {
|
|
78
|
-
|
|
78
|
+
current: T;
|
|
79
79
|
}
|
|
80
80
|
/** The gesture callbacks the hook exposes (everything except `state`). */
|
|
81
|
-
type ScrubBridge = Omit<ScrubController,
|
|
81
|
+
type ScrubBridge = Omit<ScrubController, "state">;
|
|
82
82
|
/**
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
export declare function makeScrubBridge(sink: PlaybackControlSink, dispatch: (action: ScrubAction) => void, lastEmitRef: MutableRef<number>, lastCommitRef?: MutableRef<LastCommit | null>,
|
|
90
|
-
/** Reports whether the PLAYER is currently on the live edge (not in recorded
|
|
91
|
-
* mode). Used to bypass commit-dedupe on the live→recorded transition. */
|
|
92
|
-
isPlayerLive?: () => boolean): ScrubBridge;
|
|
83
|
+
* Builds the always-active bridge callbacks from a sink, a dispatch, and the
|
|
84
|
+
* throttle ref. Pure (no React) so it can be unit-tested directly: the hook
|
|
85
|
+
* just wraps the result in `useMemo`.
|
|
86
|
+
*
|
|
87
|
+
* Every gesture drives the sink immediately — there is no VOD-active gate.
|
|
88
|
+
*/
|
|
89
|
+
export declare function makeScrubBridge(sink: PlaybackControlSink, dispatch: (action: ScrubAction) => void, lastEmitRef: MutableRef<number>, lastCommitRef?: MutableRef<LastCommit | null>, isPlayerLive?: () => boolean): ScrubBridge;
|
|
93
90
|
export interface ScrubController {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
91
|
+
readonly state: ScrubState;
|
|
92
|
+
readonly beginScrub: (source: ScrubSource) => void;
|
|
93
|
+
readonly updateScrub: (epoch: number, source: ScrubSource) => void;
|
|
94
|
+
readonly endScrub: (epoch: number, source: ScrubSource) => void;
|
|
95
|
+
readonly seek: (epoch: number, source: ScrubSource) => void;
|
|
96
|
+
readonly setPlayhead: (epoch: number) => void;
|
|
97
|
+
readonly reset: () => void;
|
|
101
98
|
}
|
|
102
99
|
/**
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
100
|
+
* Owns the shared scrub position and bridges it to a playback control sink.
|
|
101
|
+
*
|
|
102
|
+
* The bridge is always active: any gesture (drag or tap) drives the sink
|
|
103
|
+
* immediately. There is no VOD-active gate — the timeline always drives
|
|
104
|
+
* playback while frame-push mode is on.
|
|
105
|
+
*
|
|
106
|
+
* @param sink Always-active playback control surface (e.g. the datachannel)
|
|
107
|
+
* @param isPlayerLive Synchronous getter for "is the player on the live
|
|
108
|
+
* edge?" — lets a live→recorded commit bypass dedupe so the seek always
|
|
109
|
+
* reaches the server.
|
|
110
|
+
*/
|
|
114
111
|
export declare function useScrubController(sink: PlaybackControlSink, isPlayerLive?: () => boolean): ScrubController;
|
|
115
112
|
export {};
|
|
@@ -1,5 +1,30 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Cross-bundle React Context sharing.
|
|
3
|
+
*
|
|
4
|
+
* Addon page bundles (benchmark, etc.) ship their own bundled copy of
|
|
5
|
+
* `@camstack/ui-library`. Without sharing, each bundle calls
|
|
6
|
+
* `createContext()` and gets a fresh Context instance — so when the
|
|
7
|
+
* bundle's hook reads from this Context, it doesn't match the host
|
|
8
|
+
* admin-ui's <Provider> tree, and `useContext()` returns the default
|
|
9
|
+
* value (typically `null`) which often causes a `must be used within
|
|
10
|
+
* Provider` throw.
|
|
11
|
+
*
|
|
12
|
+
* This helper stashes Context instances on `globalThis` keyed by a
|
|
13
|
+
* unique name, so the SECOND-evaluated copy reuses the host's
|
|
14
|
+
* instance instead of creating a duplicate.
|
|
15
|
+
*
|
|
16
|
+
* Boot order:
|
|
17
|
+
* 1. admin-ui's main.tsx evaluates first → globalThis Map is empty
|
|
18
|
+
* → creates Context, stores it under `name`.
|
|
19
|
+
* 2. Addon bundle evaluates later → globalThis Map has the entry
|
|
20
|
+
* → returns the host's Context.
|
|
21
|
+
*
|
|
22
|
+
* Critical: pick UNIQUE `name`s. Two distinct contexts with the same
|
|
23
|
+
* name will silently collide (and TypeScript can't catch it because
|
|
24
|
+
* the Map is typed as `Context<unknown>`).
|
|
25
|
+
*/
|
|
26
|
+
import { type Context } from "react";
|
|
2
27
|
declare global {
|
|
3
|
-
|
|
28
|
+
var __camstackSharedContexts: Map<string, Context<unknown>> | undefined;
|
|
4
29
|
}
|
|
5
30
|
export declare function createSharedContext<T>(name: string, defaultValue: T): Context<T>;
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
2
|
+
* Predicates over a Tailwind class string, used by layout tests to assert a
|
|
3
|
+
* responsive DECISION rather than a class literal.
|
|
4
|
+
*
|
|
5
|
+
* Why this exists: the two mobile defects fixed in 2026-08 were both "a
|
|
6
|
+
* utility that should have been behind a breakpoint was applied at every
|
|
7
|
+
* width" — a pinned first table column, a truncated settings value. The
|
|
8
|
+
* invariant worth guarding is exactly that: `sticky` must not appear
|
|
9
|
+
* unconditionally on the name column, `truncate` must not appear
|
|
10
|
+
* unconditionally on a settings value. Asserting the whole `className`
|
|
11
|
+
* byte-for-byte would guard something else (churn) and would go stale the
|
|
12
|
+
* first time a padding token moves — see `docs/ui/conventions.md`,
|
|
13
|
+
* "Frozen-string tests have an expiry date".
|
|
14
|
+
*
|
|
15
|
+
* A Tailwind class is `variant:variant:utility`. Everything before the last
|
|
16
|
+
* `:` is a condition (breakpoint, state, container query); a class with no
|
|
17
|
+
* `:` applies at every width and in every state.
|
|
18
|
+
*/
|
|
19
19
|
/** Split a class string into non-empty tokens. `undefined` ⇒ no tokens. */
|
|
20
20
|
export declare function classTokens(className: string | undefined): readonly string[];
|
|
21
21
|
/**
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
* True when `utility` is applied with NO condition — i.e. at every width.
|
|
23
|
+
* `hasUnconditionalClass('md:sticky', 'sticky')` is false: that is the point.
|
|
24
|
+
*/
|
|
25
25
|
export declare function hasUnconditionalClass(className: string | undefined, utility: string): boolean;
|
|
26
26
|
/** True when `utility` is applied behind the given `variant` (e.g. `md`). */
|
|
27
27
|
export declare function hasVariantClass(className: string | undefined, variant: string, utility: string): boolean;
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
import { HTMLAttributes } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
styleVariant?: "outline" | "solid" | null | undefined;
|
|
6
|
-
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
7
|
-
export interface BadgeProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'style'>, VariantProps<typeof badgeVariants> {
|
|
8
|
-
style?: 'solid' | 'outline';
|
|
1
|
+
import { type HTMLAttributes, type ForwardRefExoticComponent, type RefAttributes } from "react";
|
|
2
|
+
export interface BadgeProps extends Omit<HTMLAttributes<HTMLSpanElement>, "style"> {
|
|
3
|
+
variant?: "default" | "success" | "warning" | "danger" | "info";
|
|
4
|
+
style?: "solid" | "outline";
|
|
9
5
|
}
|
|
10
|
-
export declare const Badge:
|
|
11
|
-
export {};
|
|
6
|
+
export declare const Badge: ForwardRefExoticComponent<BadgeProps & RefAttributes<HTMLSpanElement>>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ReactNode } from
|
|
1
|
+
import { type ReactNode, type JSX } from "react";
|
|
2
2
|
export interface BottomSheetProps {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
open: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
title?: string;
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
className?: string;
|
|
8
8
|
}
|
|
9
|
-
export declare function BottomSheet({ open, onClose, title, children, className }: BottomSheetProps):
|
|
9
|
+
export declare function BottomSheet({ open, onClose, title, children, className }: BottomSheetProps): JSX.Element;
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import { ButtonHTMLAttributes } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
size?: "sm" | "md" | "lg" | null | undefined;
|
|
6
|
-
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
7
|
-
export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
1
|
+
import { type ButtonHTMLAttributes, type ForwardRefExoticComponent, type RefAttributes } from "react";
|
|
2
|
+
export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
variant?: "primary" | "secondary" | "ghost" | "danger" | "outline";
|
|
4
|
+
size?: "sm" | "md" | "lg";
|
|
8
5
|
}
|
|
9
|
-
export declare const Button:
|
|
10
|
-
export {};
|
|
6
|
+
export declare const Button: ForwardRefExoticComponent<ButtonProps & RefAttributes<HTMLButtonElement>>;
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import { HTMLAttributes } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
variant?: "flat" | "bordered" | null | undefined;
|
|
5
|
-
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
6
|
-
export interface CardProps extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
|
|
1
|
+
import { type HTMLAttributes, type ForwardRefExoticComponent, type RefAttributes } from "react";
|
|
2
|
+
export interface CardProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
variant?: "flat" | "bordered";
|
|
7
4
|
}
|
|
8
|
-
export declare const Card:
|
|
9
|
-
export {};
|
|
5
|
+
export declare const Card: ForwardRefExoticComponent<CardProps & RefAttributes<HTMLDivElement>>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { InputHTMLAttributes } from
|
|
2
|
-
export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
|
|
3
|
-
|
|
4
|
-
export declare const Checkbox: import('react').ForwardRefExoticComponent<CheckboxProps & import('react').RefAttributes<HTMLInputElement>>;
|
|
1
|
+
import { type InputHTMLAttributes, type ForwardRefExoticComponent, type RefAttributes } from "react";
|
|
2
|
+
export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "type"> {}
|
|
3
|
+
export declare const Checkbox: ForwardRefExoticComponent<CheckboxProps & RefAttributes<HTMLInputElement>>;
|
|
@@ -1,15 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* CollapsibleCard — neutral card with a clickable header + optional
|
|
3
|
+
* expanded body. Same visual language as `FormBuilder` sections so
|
|
4
|
+
* every settings-style container in the app shares one style
|
|
5
|
+
* (`rounded-lg border border-border bg-surface`, no shadow, no
|
|
6
|
+
* coloured left accent).
|
|
7
|
+
*
|
|
8
|
+
* Used by `PipelineStep`; reusable for any "click to expand" settings
|
|
9
|
+
* row where we want FormBuilder-matching chrome.
|
|
10
|
+
*/
|
|
11
|
+
import { type ReactNode, type JSX } from "react";
|
|
2
12
|
export interface CollapsibleCardProps {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
readonly expanded: boolean;
|
|
14
|
+
readonly onExpandedChange: (next: boolean) => void;
|
|
15
|
+
/** Rendered inside the clickable header row, to the right of the chevron. */
|
|
16
|
+
readonly header: ReactNode;
|
|
17
|
+
/** Expanded body — rendered below a subtle divider when `expanded === true`. */
|
|
18
|
+
readonly children?: ReactNode;
|
|
19
|
+
/** Dims the entire card — for steps flagged as disabled/inactive. */
|
|
20
|
+
readonly dimmed?: boolean;
|
|
21
|
+
/** Hide the chevron (header still click-toggles). Useful for always-expanded views. */
|
|
22
|
+
readonly hideChevron?: boolean;
|
|
23
|
+
readonly className?: string;
|
|
14
24
|
}
|
|
15
|
-
export declare function CollapsibleCard({ expanded, onExpandedChange, header, children, dimmed, hideChevron, className
|
|
25
|
+
export declare function CollapsibleCard({ expanded, onExpandedChange, header, children, dimmed, hideChevron, className }: CollapsibleCardProps): JSX.Element;
|
|
@@ -1,65 +1,39 @@
|
|
|
1
|
-
import { HTMLAttributes, ReactNode } from
|
|
2
|
-
import { VariantProps } from 'class-variance-authority';
|
|
1
|
+
import { type JSX, type HTMLAttributes, type ReactNode, type ForwardRefExoticComponent, type RefAttributes } from "react";
|
|
3
2
|
interface DialogProps {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
open?: boolean;
|
|
5
|
+
onOpenChange?: (open: boolean) => void;
|
|
7
6
|
}
|
|
8
|
-
export declare function Dialog({ children, open: controlledOpen, onOpenChange }: DialogProps):
|
|
9
|
-
export declare function DialogTrigger({ children, ...props }: HTMLAttributes<HTMLButtonElement>):
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
* preflight resets `margin: 0` on every element, which defeats that centering
|
|
15
|
-
* and pins the modal to the top-left. We therefore center deterministically:
|
|
16
|
-
* a top-layer dialog with `position: fixed` is viewport-relative, and a
|
|
17
|
-
* self-transform is fine, so `fixed left-1/2 top-1/2 -translate-x-1/2
|
|
18
|
-
* -translate-y-1/2 m-0` always centers regardless of any margin reset. Width
|
|
19
|
-
* is capped to the viewport (`w-[calc(100vw-2rem)]`) rather than a bare
|
|
20
|
-
* `w-full` (which would overflow/clip a centered dialog); the per-variant
|
|
21
|
-
* `max-w-*` keeps small dialogs small while the cap prevents overflow.
|
|
22
|
-
*
|
|
23
|
-
* Height is capped against the SAFE viewport, not the raw one. A top-layer
|
|
24
|
-
* `fixed` dialog is viewport-relative, and under `viewport-fit=cover` the
|
|
25
|
-
* viewport extends behind the iOS notch/Dynamic Island and home indicator —
|
|
26
|
-
* so a dialog tall enough to hit its `max-h` put its header under the clock.
|
|
27
|
-
* Because the box is centred on the viewport (not on the safe area), the cap
|
|
28
|
-
* has to subtract TWICE the LARGER of the two insets for the box to clear
|
|
29
|
-
* both edges; using each inset once would still overflow the taller side
|
|
30
|
-
* whenever they are asymmetric (they are: ~59px top vs ~34px bottom). Every
|
|
31
|
-
* term collapses to the previous `100dvh - 2rem` where the insets are 0.
|
|
32
|
-
*/
|
|
33
|
-
declare const contentVariants: (props?: ({
|
|
34
|
-
width?: "sm" | "md" | "lg" | null | undefined;
|
|
35
|
-
scroll?: "content" | "body" | null | undefined;
|
|
36
|
-
placement?: "center" | "sheet-on-mobile" | null | undefined;
|
|
37
|
-
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
38
|
-
export type DialogPlacement = NonNullable<VariantProps<typeof contentVariants>['placement']>;
|
|
39
|
-
export interface DialogContentProps extends HTMLAttributes<HTMLDialogElement>, VariantProps<typeof contentVariants> {
|
|
7
|
+
export declare function Dialog({ children, open: controlledOpen, onOpenChange }: DialogProps): JSX.Element;
|
|
8
|
+
export declare function DialogTrigger({ children, ...props }: HTMLAttributes<HTMLButtonElement>): JSX.Element;
|
|
9
|
+
export interface DialogContentProps extends HTMLAttributes<HTMLDialogElement> {
|
|
10
|
+
width?: "sm" | "md" | "lg";
|
|
11
|
+
scroll?: "content" | "body";
|
|
12
|
+
placement?: "center" | "sheet-on-mobile";
|
|
40
13
|
}
|
|
41
|
-
export
|
|
14
|
+
export type DialogPlacement = NonNullable<DialogContentProps["placement"]>;
|
|
15
|
+
export declare const DialogContent: ForwardRefExoticComponent<DialogContentProps & RefAttributes<HTMLDialogElement>>;
|
|
42
16
|
/** `shrink-0` is inert outside a flex column and load-bearing inside one:
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
export declare function DialogHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>):
|
|
17
|
+
* under `scroll="body"` the header must keep its height while the body gives
|
|
18
|
+
* ground, or a long form squeezes its own title to nothing. */
|
|
19
|
+
export declare function DialogHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>): JSX.Element;
|
|
46
20
|
/**
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
export declare function DialogBody({ className, ...props }: HTMLAttributes<HTMLDivElement>):
|
|
62
|
-
export declare function DialogFooter({ className, ...props }: HTMLAttributes<HTMLDivElement>):
|
|
63
|
-
export declare function DialogTitle({ className, ...props }: HTMLAttributes<HTMLHeadingElement>):
|
|
64
|
-
export declare function DialogDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>):
|
|
21
|
+
* The scrolling middle of a `scroll="body"` dialog.
|
|
22
|
+
*
|
|
23
|
+
* `min-h-0` is what makes it work: a flex item's default `min-height: auto`
|
|
24
|
+
* refuses to shrink below its content, so without it the body pushes the
|
|
25
|
+
* footer out of the dialog instead of scrolling — the exact failure this
|
|
26
|
+
* variant exists to remove. Anything sticky INSIDE a dialog body pins against
|
|
27
|
+
* this element, since it is the scroll container.
|
|
28
|
+
*
|
|
29
|
+
* It only bounds a scroll area if every ancestor up to the dialog has a
|
|
30
|
+
* resolved height. `DialogContent` supplies the top of that chain (see the
|
|
31
|
+
* `scroll: 'body'` compound variants); an intermediate wrapper between them —
|
|
32
|
+
* a `<Tabs>` that owns the tab strip, say — must carry `flex-1 min-h-0` too,
|
|
33
|
+
* or it collapses and takes the body with it.
|
|
34
|
+
*/
|
|
35
|
+
export declare function DialogBody({ className, ...props }: HTMLAttributes<HTMLDivElement>): JSX.Element;
|
|
36
|
+
export declare function DialogFooter({ className, ...props }: HTMLAttributes<HTMLDivElement>): JSX.Element;
|
|
37
|
+
export declare function DialogTitle({ className, ...props }: HTMLAttributes<HTMLHeadingElement>): JSX.Element;
|
|
38
|
+
export declare function DialogDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>): JSX.Element;
|
|
65
39
|
export {};
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { ButtonHTMLAttributes, HTMLAttributes, ReactNode } from
|
|
2
|
-
import { LucideIcon } from
|
|
1
|
+
import { type JSX, type ButtonHTMLAttributes, type HTMLAttributes, type ReactNode } from "react";
|
|
2
|
+
import { type LucideIcon } from "lucide-react";
|
|
3
3
|
export declare function Dropdown({ children }: {
|
|
4
|
-
|
|
5
|
-
}):
|
|
6
|
-
export declare function DropdownTrigger({ children, ...props }: ButtonHTMLAttributes<HTMLButtonElement>):
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
}): JSX.Element | null;
|
|
6
|
+
export declare function DropdownTrigger({ children, ...props }: ButtonHTMLAttributes<HTMLButtonElement>): JSX.Element | null;
|
|
7
7
|
interface DropdownContentProps extends HTMLAttributes<HTMLDivElement> {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
/** Horizontal alignment relative to the trigger. Default: 'start' (left-aligned). */
|
|
9
|
+
align?: "start" | "end";
|
|
10
|
+
/** Pixel offset between trigger and content. Default: 4. */
|
|
11
|
+
offset?: number;
|
|
12
12
|
}
|
|
13
|
-
export declare function DropdownContent({ className, children, align, offset, ...props }: DropdownContentProps):
|
|
13
|
+
export declare function DropdownContent({ className, children, align, offset, ...props }: DropdownContentProps): JSX.Element | null;
|
|
14
14
|
interface DropdownItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
icon?: LucideIcon;
|
|
16
|
+
variant?: "default" | "danger";
|
|
17
17
|
}
|
|
18
|
-
export declare function DropdownItem({ className, icon: Icon, variant, children, onClick, ...props }: DropdownItemProps):
|
|
18
|
+
export declare function DropdownItem({ className, icon: Icon, variant, children, onClick, ...props }: DropdownItemProps): JSX.Element | null;
|
|
19
19
|
export {};
|
|
@@ -1,22 +1,43 @@
|
|
|
1
|
-
import { ReactNode } from
|
|
1
|
+
import { type ReactNode, type JSX } from "react";
|
|
2
|
+
import { type LucideIcon } from "lucide-react";
|
|
3
|
+
export interface FloatingPanelPosition {
|
|
4
|
+
readonly x: number;
|
|
5
|
+
readonly y: number;
|
|
6
|
+
}
|
|
7
|
+
export interface FloatingPanelSize {
|
|
8
|
+
readonly w: number;
|
|
9
|
+
readonly h: number;
|
|
10
|
+
}
|
|
2
11
|
export interface FloatingPanelProps {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
/** Panel title displayed in the title bar */
|
|
13
|
+
title: string;
|
|
14
|
+
/** Optional icon shown before the title */
|
|
15
|
+
icon?: LucideIcon;
|
|
16
|
+
/**
|
|
17
|
+
* Controlled position. When set, the owner holds the position (so it can
|
|
18
|
+
* survive the panel being unmounted on close) and receives every drag step
|
|
19
|
+
* through `onPositionChange`. Leave unset for an uncontrolled panel.
|
|
20
|
+
*/
|
|
21
|
+
position?: FloatingPanelPosition;
|
|
22
|
+
onPositionChange?: (position: FloatingPanelPosition) => void;
|
|
23
|
+
/** Controlled size, same contract as `position` (resize via the corner handle). */
|
|
24
|
+
size?: FloatingPanelSize;
|
|
25
|
+
onSizeChange?: (size: FloatingPanelSize) => void;
|
|
26
|
+
/** Called when the close button is clicked */
|
|
27
|
+
onClose: () => void;
|
|
28
|
+
/** Panel content */
|
|
29
|
+
children: ReactNode;
|
|
30
|
+
/** Default width in pixels */
|
|
31
|
+
defaultWidth?: number;
|
|
32
|
+
/** Default height in pixels */
|
|
33
|
+
defaultHeight?: number;
|
|
34
|
+
/** Minimum width in pixels */
|
|
35
|
+
minWidth?: number;
|
|
36
|
+
/** Minimum height in pixels */
|
|
37
|
+
minHeight?: number;
|
|
38
|
+
/** Offset index to stagger multiple panels (adds 30px offset per index) */
|
|
39
|
+
offsetIndex?: number;
|
|
40
|
+
/** Additional CSS classes for the panel container */
|
|
41
|
+
className?: string;
|
|
21
42
|
}
|
|
22
|
-
export declare function FloatingPanel({ title, onClose, children, defaultWidth, defaultHeight, minWidth, minHeight, offsetIndex, className
|
|
43
|
+
export declare function FloatingPanel({ title, icon: Icon, position, onPositionChange, size: controlledSize, onSizeChange, onClose, children, defaultWidth, defaultHeight, minWidth, minHeight, offsetIndex, className }: FloatingPanelProps): JSX.Element;
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import { ButtonHTMLAttributes } from
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'>, VariantProps<typeof iconButtonVariants> {
|
|
9
|
-
icon: LucideIcon;
|
|
10
|
-
'aria-label': string;
|
|
1
|
+
import { type ButtonHTMLAttributes, type ForwardRefExoticComponent, type RefAttributes } from "react";
|
|
2
|
+
import { type LucideIcon } from "lucide-react";
|
|
3
|
+
export interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> {
|
|
4
|
+
variant?: "primary" | "secondary" | "ghost" | "danger" | "outline";
|
|
5
|
+
size?: "sm" | "md" | "lg";
|
|
6
|
+
icon: LucideIcon;
|
|
7
|
+
"aria-label": string;
|
|
11
8
|
}
|
|
12
|
-
export declare const IconButton:
|
|
13
|
-
export {};
|
|
9
|
+
export declare const IconButton: ForwardRefExoticComponent<IconButtonProps & RefAttributes<HTMLButtonElement>>;
|