@syncular/ui 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/dist/charts/activity-chart.d.ts +11 -0
- package/dist/charts/activity-chart.d.ts.map +1 -0
- package/dist/charts/activity-chart.js +28 -0
- package/dist/charts/activity-chart.js.map +1 -0
- package/dist/charts/chart.d.ts +50 -0
- package/dist/charts/chart.d.ts.map +1 -0
- package/dist/charts/chart.js +108 -0
- package/dist/charts/chart.js.map +1 -0
- package/dist/charts/index.d.ts +5 -0
- package/dist/charts/index.d.ts.map +1 -0
- package/dist/charts/index.js +5 -0
- package/dist/charts/index.js.map +1 -0
- package/dist/charts/latency-chart.d.ts +15 -0
- package/dist/charts/latency-chart.d.ts.map +1 -0
- package/dist/charts/latency-chart.js +25 -0
- package/dist/charts/latency-chart.js.map +1 -0
- package/dist/charts/outcomes-chart.d.ts +11 -0
- package/dist/charts/outcomes-chart.d.ts.map +1 -0
- package/dist/charts/outcomes-chart.js +37 -0
- package/dist/charts/outcomes-chart.js.map +1 -0
- package/dist/console/activity-bars.d.ts +24 -0
- package/dist/console/activity-bars.d.ts.map +1 -0
- package/dist/console/activity-bars.js +25 -0
- package/dist/console/activity-bars.js.map +1 -0
- package/dist/console/alerts-config.d.ts +20 -0
- package/dist/console/alerts-config.d.ts.map +1 -0
- package/dist/console/alerts-config.js +31 -0
- package/dist/console/alerts-config.js.map +1 -0
- package/dist/console/api-keys-table.d.ts +16 -0
- package/dist/console/api-keys-table.d.ts.map +1 -0
- package/dist/console/api-keys-table.js +21 -0
- package/dist/console/api-keys-table.js.map +1 -0
- package/dist/console/bottom-bar.d.ts +17 -0
- package/dist/console/bottom-bar.d.ts.map +1 -0
- package/dist/console/bottom-bar.js +14 -0
- package/dist/console/bottom-bar.js.map +1 -0
- package/dist/console/commit-table.d.ts +12 -0
- package/dist/console/commit-table.d.ts.map +1 -0
- package/dist/console/commit-table.js +14 -0
- package/dist/console/commit-table.js.map +1 -0
- package/dist/console/connection-form.d.ts +29 -0
- package/dist/console/connection-form.d.ts.map +1 -0
- package/dist/console/connection-form.js +24 -0
- package/dist/console/connection-form.js.map +1 -0
- package/dist/console/connection-status-badge.d.ts +7 -0
- package/dist/console/connection-status-badge.d.ts.map +1 -0
- package/dist/console/connection-status-badge.js +19 -0
- package/dist/console/connection-status-badge.js.map +1 -0
- package/dist/console/danger-action-card.d.ts +10 -0
- package/dist/console/danger-action-card.d.ts.map +1 -0
- package/dist/console/danger-action-card.js +10 -0
- package/dist/console/danger-action-card.js.map +1 -0
- package/dist/console/empty-state.d.ts +9 -0
- package/dist/console/empty-state.d.ts.map +1 -0
- package/dist/console/empty-state.js +7 -0
- package/dist/console/empty-state.js.map +1 -0
- package/dist/console/filter-bar.d.ts +18 -0
- package/dist/console/filter-bar.d.ts.map +1 -0
- package/dist/console/filter-bar.js +14 -0
- package/dist/console/filter-bar.js.map +1 -0
- package/dist/console/fleet-card.d.ts +14 -0
- package/dist/console/fleet-card.d.ts.map +1 -0
- package/dist/console/fleet-card.js +58 -0
- package/dist/console/fleet-card.js.map +1 -0
- package/dist/console/handlers-table.d.ts +12 -0
- package/dist/console/handlers-table.d.ts.map +1 -0
- package/dist/console/handlers-table.js +21 -0
- package/dist/console/handlers-table.js.map +1 -0
- package/dist/console/index.d.ts +28 -0
- package/dist/console/index.d.ts.map +1 -0
- package/dist/console/index.js +28 -0
- package/dist/console/index.js.map +1 -0
- package/dist/console/kpi-card.d.ts +10 -0
- package/dist/console/kpi-card.d.ts.map +1 -0
- package/dist/console/kpi-card.js +17 -0
- package/dist/console/kpi-card.js.map +1 -0
- package/dist/console/kpi-strip.d.ts +10 -0
- package/dist/console/kpi-strip.d.ts.map +1 -0
- package/dist/console/kpi-strip.js +22 -0
- package/dist/console/kpi-strip.js.map +1 -0
- package/dist/console/latency-percentiles.d.ts +24 -0
- package/dist/console/latency-percentiles.d.ts.map +1 -0
- package/dist/console/latency-percentiles.js +23 -0
- package/dist/console/latency-percentiles.js.map +1 -0
- package/dist/console/live-activity-feed.d.ts +24 -0
- package/dist/console/live-activity-feed.d.ts.map +1 -0
- package/dist/console/live-activity-feed.js +29 -0
- package/dist/console/live-activity-feed.js.map +1 -0
- package/dist/console/maintenance-card.d.ts +28 -0
- package/dist/console/maintenance-card.d.ts.map +1 -0
- package/dist/console/maintenance-card.js +25 -0
- package/dist/console/maintenance-card.js.map +1 -0
- package/dist/console/page-header.d.ts +9 -0
- package/dist/console/page-header.d.ts.map +1 -0
- package/dist/console/page-header.js +9 -0
- package/dist/console/page-header.js.map +1 -0
- package/dist/console/panel-shell.d.ts +11 -0
- package/dist/console/panel-shell.d.ts.map +1 -0
- package/dist/console/panel-shell.js +10 -0
- package/dist/console/panel-shell.js.map +1 -0
- package/dist/console/preferences-panel.d.ts +30 -0
- package/dist/console/preferences-panel.d.ts.map +1 -0
- package/dist/console/preferences-panel.js +24 -0
- package/dist/console/preferences-panel.js.map +1 -0
- package/dist/console/section-card.d.ts +11 -0
- package/dist/console/section-card.d.ts.map +1 -0
- package/dist/console/section-card.js +9 -0
- package/dist/console/section-card.js.map +1 -0
- package/dist/console/stream-log.d.ts +26 -0
- package/dist/console/stream-log.d.ts.map +1 -0
- package/dist/console/stream-log.js +34 -0
- package/dist/console/stream-log.js.map +1 -0
- package/dist/console/sync-horizon.d.ts +18 -0
- package/dist/console/sync-horizon.d.ts.map +1 -0
- package/dist/console/sync-horizon.js +61 -0
- package/dist/console/sync-horizon.js.map +1 -0
- package/dist/console/sync-lag-bar.d.ts +23 -0
- package/dist/console/sync-lag-bar.d.ts.map +1 -0
- package/dist/console/sync-lag-bar.js +111 -0
- package/dist/console/sync-lag-bar.js.map +1 -0
- package/dist/console/sync-state-badge.d.ts +6 -0
- package/dist/console/sync-state-badge.d.ts.map +1 -0
- package/dist/console/sync-state-badge.js +21 -0
- package/dist/console/sync-state-badge.js.map +1 -0
- package/dist/console/topology-card.d.ts +9 -0
- package/dist/console/topology-card.d.ts.map +1 -0
- package/dist/console/topology-card.js +9 -0
- package/dist/console/topology-card.js.map +1 -0
- package/dist/console/topology-hero.d.ts +65 -0
- package/dist/console/topology-hero.d.ts.map +1 -0
- package/dist/console/topology-hero.js +90 -0
- package/dist/console/topology-hero.js.map +1 -0
- package/dist/demo/actor-panel.d.ts +11 -0
- package/dist/demo/actor-panel.d.ts.map +1 -0
- package/dist/demo/actor-panel.js +19 -0
- package/dist/demo/actor-panel.js.map +1 -0
- package/dist/demo/catalog-table.d.ts +17 -0
- package/dist/demo/catalog-table.d.ts.map +1 -0
- package/dist/demo/catalog-table.js +13 -0
- package/dist/demo/catalog-table.js.map +1 -0
- package/dist/demo/channel-selector.d.ts +12 -0
- package/dist/demo/channel-selector.d.ts.map +1 -0
- package/dist/demo/channel-selector.js +13 -0
- package/dist/demo/channel-selector.js.map +1 -0
- package/dist/demo/client-panel.d.ts +12 -0
- package/dist/demo/client-panel.d.ts.map +1 -0
- package/dist/demo/client-panel.js +18 -0
- package/dist/demo/client-panel.js.map +1 -0
- package/dist/demo/conflict-panel.d.ts +8 -0
- package/dist/demo/conflict-panel.d.ts.map +1 -0
- package/dist/demo/conflict-panel.js +9 -0
- package/dist/demo/conflict-panel.js.map +1 -0
- package/dist/demo/demo-header.d.ts +9 -0
- package/dist/demo/demo-header.d.ts.map +1 -0
- package/dist/demo/demo-header.js +12 -0
- package/dist/demo/demo-header.js.map +1 -0
- package/dist/demo/demo-section.d.ts +8 -0
- package/dist/demo/demo-section.d.ts.map +1 -0
- package/dist/demo/demo-section.js +10 -0
- package/dist/demo/demo-section.js.map +1 -0
- package/dist/demo/encrypted-badge.d.ts +7 -0
- package/dist/demo/encrypted-badge.d.ts.map +1 -0
- package/dist/demo/encrypted-badge.js +12 -0
- package/dist/demo/encrypted-badge.js.map +1 -0
- package/dist/demo/encryption-flow-diagram.d.ts +5 -0
- package/dist/demo/encryption-flow-diagram.d.ts.map +1 -0
- package/dist/demo/encryption-flow-diagram.js +24 -0
- package/dist/demo/encryption-flow-diagram.js.map +1 -0
- package/dist/demo/index.d.ts +27 -0
- package/dist/demo/index.d.ts.map +1 -0
- package/dist/demo/index.js +27 -0
- package/dist/demo/index.js.map +1 -0
- package/dist/demo/info-panel.d.ts +9 -0
- package/dist/demo/info-panel.d.ts.map +1 -0
- package/dist/demo/info-panel.js +11 -0
- package/dist/demo/info-panel.js.map +1 -0
- package/dist/demo/media-gallery.d.ts +7 -0
- package/dist/demo/media-gallery.d.ts.map +1 -0
- package/dist/demo/media-gallery.js +7 -0
- package/dist/demo/media-gallery.js.map +1 -0
- package/dist/demo/media-thumbnail.d.ts +11 -0
- package/dist/demo/media-thumbnail.d.ts.map +1 -0
- package/dist/demo/media-thumbnail.js +10 -0
- package/dist/demo/media-thumbnail.js.map +1 -0
- package/dist/demo/metric-card.d.ts +14 -0
- package/dist/demo/metric-card.d.ts.map +1 -0
- package/dist/demo/metric-card.js +20 -0
- package/dist/demo/metric-card.js.map +1 -0
- package/dist/demo/mnemonic-display.d.ts +8 -0
- package/dist/demo/mnemonic-display.d.ts.map +1 -0
- package/dist/demo/mnemonic-display.js +70 -0
- package/dist/demo/mnemonic-display.js.map +1 -0
- package/dist/demo/note-card.d.ts +10 -0
- package/dist/demo/note-card.d.ts.map +1 -0
- package/dist/demo/note-card.js +9 -0
- package/dist/demo/note-card.js.map +1 -0
- package/dist/demo/sync-controls.d.ts +8 -0
- package/dist/demo/sync-controls.d.ts.map +1 -0
- package/dist/demo/sync-controls.js +17 -0
- package/dist/demo/sync-controls.js.map +1 -0
- package/dist/demo/sync-status-badge.d.ts +7 -0
- package/dist/demo/sync-status-badge.d.ts.map +1 -0
- package/dist/demo/sync-status-badge.js +22 -0
- package/dist/demo/sync-status-badge.js.map +1 -0
- package/dist/demo/task-item.d.ts +12 -0
- package/dist/demo/task-item.d.ts.map +1 -0
- package/dist/demo/task-item.js +12 -0
- package/dist/demo/task-item.js.map +1 -0
- package/dist/demo/task-list.d.ts +8 -0
- package/dist/demo/task-list.d.ts.map +1 -0
- package/dist/demo/task-list.js +11 -0
- package/dist/demo/task-list.js.map +1 -0
- package/dist/demo/topology-panel.d.ts +10 -0
- package/dist/demo/topology-panel.d.ts.map +1 -0
- package/dist/demo/topology-panel.js +10 -0
- package/dist/demo/topology-panel.js.map +1 -0
- package/dist/demo/topology-svg-keyshare.d.ts +5 -0
- package/dist/demo/topology-svg-keyshare.d.ts.map +1 -0
- package/dist/demo/topology-svg-keyshare.js +31 -0
- package/dist/demo/topology-svg-keyshare.js.map +1 -0
- package/dist/demo/topology-svg-media.d.ts +5 -0
- package/dist/demo/topology-svg-media.d.ts.map +1 -0
- package/dist/demo/topology-svg-media.js +27 -0
- package/dist/demo/topology-svg-media.js.map +1 -0
- package/dist/demo/topology-svg-split.d.ts +5 -0
- package/dist/demo/topology-svg-split.d.ts.map +1 -0
- package/dist/demo/topology-svg-split.js +29 -0
- package/dist/demo/topology-svg-split.js.map +1 -0
- package/dist/demo/topology-svg-symmetric.d.ts +5 -0
- package/dist/demo/topology-svg-symmetric.d.ts.map +1 -0
- package/dist/demo/topology-svg-symmetric.js +35 -0
- package/dist/demo/topology-svg-symmetric.js.map +1 -0
- package/dist/demo/transfer-log.d.ts +14 -0
- package/dist/demo/transfer-log.d.ts.map +1 -0
- package/dist/demo/transfer-log.js +18 -0
- package/dist/demo/transfer-log.js.map +1 -0
- package/dist/demo/upload-area.d.ts +9 -0
- package/dist/demo/upload-area.d.ts.map +1 -0
- package/dist/demo/upload-area.js +58 -0
- package/dist/demo/upload-area.js.map +1 -0
- package/dist/forms/checkbox.d.ts +11 -0
- package/dist/forms/checkbox.d.ts.map +1 -0
- package/dist/forms/checkbox.js +16 -0
- package/dist/forms/checkbox.js.map +1 -0
- package/dist/forms/field.d.ts +7 -0
- package/dist/forms/field.d.ts.map +1 -0
- package/dist/forms/field.js +16 -0
- package/dist/forms/field.js.map +1 -0
- package/dist/forms/index.d.ts +7 -0
- package/dist/forms/index.d.ts.map +1 -0
- package/dist/forms/index.js +7 -0
- package/dist/forms/index.js.map +1 -0
- package/dist/forms/select.d.ts +11 -0
- package/dist/forms/select.d.ts.map +1 -0
- package/dist/forms/select.js +15 -0
- package/dist/forms/select.js.map +1 -0
- package/dist/forms/textarea.d.ts +6 -0
- package/dist/forms/textarea.d.ts.map +1 -0
- package/dist/forms/textarea.js +8 -0
- package/dist/forms/textarea.js.map +1 -0
- package/dist/forms/toggle-group.d.ts +8 -0
- package/dist/forms/toggle-group.d.ts.map +1 -0
- package/dist/forms/toggle-group.js +11 -0
- package/dist/forms/toggle-group.js.map +1 -0
- package/dist/forms/toggle.d.ts +7 -0
- package/dist/forms/toggle.d.ts.map +1 -0
- package/dist/forms/toggle.js +9 -0
- package/dist/forms/toggle.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/cn.d.ts +3 -0
- package/dist/lib/cn.d.ts.map +1 -0
- package/dist/lib/cn.js +6 -0
- package/dist/lib/cn.js.map +1 -0
- package/dist/lib/types.d.ts +64 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/navigation/index.d.ts +6 -0
- package/dist/navigation/index.d.ts.map +1 -0
- package/dist/navigation/index.js +6 -0
- package/dist/navigation/index.js.map +1 -0
- package/dist/navigation/nav-pill-group.d.ts +14 -0
- package/dist/navigation/nav-pill-group.d.ts.map +1 -0
- package/dist/navigation/nav-pill-group.js +15 -0
- package/dist/navigation/nav-pill-group.js.map +1 -0
- package/dist/navigation/nav-pill.d.ts +9 -0
- package/dist/navigation/nav-pill.d.ts.map +1 -0
- package/dist/navigation/nav-pill.js +7 -0
- package/dist/navigation/nav-pill.js.map +1 -0
- package/dist/navigation/status-dot.d.ts +13 -0
- package/dist/navigation/status-dot.d.ts.map +1 -0
- package/dist/navigation/status-dot.js +44 -0
- package/dist/navigation/status-dot.js.map +1 -0
- package/dist/navigation/syncular-brand.d.ts +6 -0
- package/dist/navigation/syncular-brand.d.ts.map +1 -0
- package/dist/navigation/syncular-brand.js +11 -0
- package/dist/navigation/syncular-brand.js.map +1 -0
- package/dist/navigation/top-navigation.d.ts +9 -0
- package/dist/navigation/top-navigation.d.ts.map +1 -0
- package/dist/navigation/top-navigation.js +9 -0
- package/dist/navigation/top-navigation.js.map +1 -0
- package/dist/observable-universe/architecture-section.d.ts +5 -0
- package/dist/observable-universe/architecture-section.d.ts.map +1 -0
- package/dist/observable-universe/architecture-section.js +44 -0
- package/dist/observable-universe/architecture-section.js.map +1 -0
- package/dist/observable-universe/code-section.d.ts +5 -0
- package/dist/observable-universe/code-section.d.ts.map +1 -0
- package/dist/observable-universe/code-section.js +86 -0
- package/dist/observable-universe/code-section.js.map +1 -0
- package/dist/observable-universe/commit-stream-panel.d.ts +8 -0
- package/dist/observable-universe/commit-stream-panel.d.ts.map +1 -0
- package/dist/observable-universe/commit-stream-panel.js +45 -0
- package/dist/observable-universe/commit-stream-panel.js.map +1 -0
- package/dist/observable-universe/connected-clients-panel.d.ts +7 -0
- package/dist/observable-universe/connected-clients-panel.d.ts.map +1 -0
- package/dist/observable-universe/connected-clients-panel.js +47 -0
- package/dist/observable-universe/connected-clients-panel.js.map +1 -0
- package/dist/observable-universe/constants.d.ts +10 -0
- package/dist/observable-universe/constants.d.ts.map +1 -0
- package/dist/observable-universe/constants.js +81 -0
- package/dist/observable-universe/constants.js.map +1 -0
- package/dist/observable-universe/explanation-section.d.ts +5 -0
- package/dist/observable-universe/explanation-section.d.ts.map +1 -0
- package/dist/observable-universe/explanation-section.js +76 -0
- package/dist/observable-universe/explanation-section.js.map +1 -0
- package/dist/observable-universe/footer-bar.d.ts +5 -0
- package/dist/observable-universe/footer-bar.d.ts.map +1 -0
- package/dist/observable-universe/footer-bar.js +12 -0
- package/dist/observable-universe/footer-bar.js.map +1 -0
- package/dist/observable-universe/hero-dashboard-section.d.ts +10 -0
- package/dist/observable-universe/hero-dashboard-section.d.ts.map +1 -0
- package/dist/observable-universe/hero-dashboard-section.js +20 -0
- package/dist/observable-universe/hero-dashboard-section.js.map +1 -0
- package/dist/observable-universe/index.d.ts +17 -0
- package/dist/observable-universe/index.d.ts.map +1 -0
- package/dist/observable-universe/index.js +17 -0
- package/dist/observable-universe/index.js.map +1 -0
- package/dist/observable-universe/install-section.d.ts +8 -0
- package/dist/observable-universe/install-section.d.ts.map +1 -0
- package/dist/observable-universe/install-section.js +24 -0
- package/dist/observable-universe/install-section.js.map +1 -0
- package/dist/observable-universe/live-metrics-bar.d.ts +7 -0
- package/dist/observable-universe/live-metrics-bar.d.ts.map +1 -0
- package/dist/observable-universe/live-metrics-bar.js +18 -0
- package/dist/observable-universe/live-metrics-bar.js.map +1 -0
- package/dist/observable-universe/observable-universe-header.d.ts +14 -0
- package/dist/observable-universe/observable-universe-header.d.ts.map +1 -0
- package/dist/observable-universe/observable-universe-header.js +45 -0
- package/dist/observable-universe/observable-universe-header.js.map +1 -0
- package/dist/observable-universe/observable-universe-landing.d.ts +12 -0
- package/dist/observable-universe/observable-universe-landing.d.ts.map +1 -0
- package/dist/observable-universe/observable-universe-landing.js +19 -0
- package/dist/observable-universe/observable-universe-landing.js.map +1 -0
- package/dist/observable-universe/section-heading.d.ts +8 -0
- package/dist/observable-universe/section-heading.d.ts.map +1 -0
- package/dist/observable-universe/section-heading.js +8 -0
- package/dist/observable-universe/section-heading.js.map +1 -0
- package/dist/observable-universe/sync-topology-panel.d.ts +7 -0
- package/dist/observable-universe/sync-topology-panel.d.ts.map +1 -0
- package/dist/observable-universe/sync-topology-panel.js +81 -0
- package/dist/observable-universe/sync-topology-panel.js.map +1 -0
- package/dist/observable-universe/types.d.ts +25 -0
- package/dist/observable-universe/types.d.ts.map +1 -0
- package/dist/observable-universe/types.js +2 -0
- package/dist/observable-universe/types.js.map +1 -0
- package/dist/observable-universe/use-observable-universe-simulation.d.ts +8 -0
- package/dist/observable-universe/use-observable-universe-simulation.d.ts.map +1 -0
- package/dist/observable-universe/use-observable-universe-simulation.js +92 -0
- package/dist/observable-universe/use-observable-universe-simulation.js.map +1 -0
- package/dist/primitives/alert.d.ts +14 -0
- package/dist/primitives/alert.d.ts.map +1 -0
- package/dist/primitives/alert.js +24 -0
- package/dist/primitives/alert.js.map +1 -0
- package/dist/primitives/badge.d.ts +12 -0
- package/dist/primitives/badge.d.ts.map +1 -0
- package/dist/primitives/badge.js +28 -0
- package/dist/primitives/badge.js.map +1 -0
- package/dist/primitives/button.d.ts +14 -0
- package/dist/primitives/button.d.ts.map +1 -0
- package/dist/primitives/button.js +30 -0
- package/dist/primitives/button.js.map +1 -0
- package/dist/primitives/card.d.ts +7 -0
- package/dist/primitives/card.d.ts.map +1 -0
- package/dist/primitives/card.js +16 -0
- package/dist/primitives/card.js.map +1 -0
- package/dist/primitives/dialog.d.ts +14 -0
- package/dist/primitives/dialog.d.ts.map +1 -0
- package/dist/primitives/dialog.js +25 -0
- package/dist/primitives/dialog.js.map +1 -0
- package/dist/primitives/index.d.ts +16 -0
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/index.js +16 -0
- package/dist/primitives/index.js.map +1 -0
- package/dist/primitives/input.d.ts +12 -0
- package/dist/primitives/input.d.ts.map +1 -0
- package/dist/primitives/input.js +20 -0
- package/dist/primitives/input.js.map +1 -0
- package/dist/primitives/pagination.d.ts +16 -0
- package/dist/primitives/pagination.d.ts.map +1 -0
- package/dist/primitives/pagination.js +13 -0
- package/dist/primitives/pagination.js.map +1 -0
- package/dist/primitives/separator.d.ts +10 -0
- package/dist/primitives/separator.d.ts.map +1 -0
- package/dist/primitives/separator.js +10 -0
- package/dist/primitives/separator.js.map +1 -0
- package/dist/primitives/sheet.d.ts +19 -0
- package/dist/primitives/sheet.d.ts.map +1 -0
- package/dist/primitives/sheet.js +35 -0
- package/dist/primitives/sheet.js.map +1 -0
- package/dist/primitives/skeleton.d.ts +3 -0
- package/dist/primitives/skeleton.d.ts.map +1 -0
- package/dist/primitives/skeleton.js +8 -0
- package/dist/primitives/skeleton.js.map +1 -0
- package/dist/primitives/spinner.d.ts +12 -0
- package/dist/primitives/spinner.d.ts.map +1 -0
- package/dist/primitives/spinner.js +23 -0
- package/dist/primitives/spinner.js.map +1 -0
- package/dist/primitives/switch.d.ts +7 -0
- package/dist/primitives/switch.d.ts.map +1 -0
- package/dist/primitives/switch.js +9 -0
- package/dist/primitives/switch.js.map +1 -0
- package/dist/primitives/table.d.ts +8 -0
- package/dist/primitives/table.d.ts.map +1 -0
- package/dist/primitives/table.js +18 -0
- package/dist/primitives/table.js.map +1 -0
- package/dist/primitives/tabs.d.ts +16 -0
- package/dist/primitives/tabs.d.ts.map +1 -0
- package/dist/primitives/tabs.js +26 -0
- package/dist/primitives/tabs.js.map +1 -0
- package/dist/primitives/tooltip.d.ts +13 -0
- package/dist/primitives/tooltip.d.ts.map +1 -0
- package/dist/primitives/tooltip.js +15 -0
- package/dist/primitives/tooltip.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/package.json +114 -0
- package/src/charts/activity-chart.tsx +85 -0
- package/src/charts/chart.tsx +302 -0
- package/src/charts/index.ts +4 -0
- package/src/charts/latency-chart.tsx +77 -0
- package/src/charts/outcomes-chart.tsx +101 -0
- package/src/console/activity-bars.tsx +113 -0
- package/src/console/alerts-config.tsx +110 -0
- package/src/console/api-keys-table.tsx +102 -0
- package/src/console/bottom-bar.tsx +73 -0
- package/src/console/commit-table.tsx +66 -0
- package/src/console/connection-form.tsx +153 -0
- package/src/console/connection-status-badge.tsx +48 -0
- package/src/console/danger-action-card.tsx +40 -0
- package/src/console/empty-state.tsx +31 -0
- package/src/console/filter-bar.tsx +97 -0
- package/src/console/fleet-card.tsx +154 -0
- package/src/console/handlers-table.tsx +74 -0
- package/src/console/index.ts +27 -0
- package/src/console/kpi-card.tsx +46 -0
- package/src/console/kpi-strip.tsx +77 -0
- package/src/console/latency-percentiles.tsx +109 -0
- package/src/console/live-activity-feed.tsx +112 -0
- package/src/console/maintenance-card.tsx +112 -0
- package/src/console/page-header.tsx +32 -0
- package/src/console/panel-shell.tsx +42 -0
- package/src/console/preferences-panel.tsx +126 -0
- package/src/console/section-card.tsx +41 -0
- package/src/console/stream-log.tsx +138 -0
- package/src/console/sync-horizon.tsx +149 -0
- package/src/console/sync-lag-bar.tsx +226 -0
- package/src/console/sync-state-badge.tsx +32 -0
- package/src/console/topology-card.tsx +47 -0
- package/src/console/topology-hero.tsx +499 -0
- package/src/demo/actor-panel.tsx +50 -0
- package/src/demo/catalog-table.tsx +83 -0
- package/src/demo/channel-selector.tsx +51 -0
- package/src/demo/client-panel.tsx +61 -0
- package/src/demo/conflict-panel.tsx +25 -0
- package/src/demo/demo-header.tsx +44 -0
- package/src/demo/demo-section.tsx +24 -0
- package/src/demo/encrypted-badge.tsx +59 -0
- package/src/demo/encryption-flow-diagram.tsx +93 -0
- package/src/demo/index.ts +26 -0
- package/src/demo/info-panel.tsx +41 -0
- package/src/demo/media-gallery.tsx +15 -0
- package/src/demo/media-thumbnail.tsx +55 -0
- package/src/demo/metric-card.tsx +85 -0
- package/src/demo/mnemonic-display.tsx +114 -0
- package/src/demo/note-card.tsx +52 -0
- package/src/demo/sync-controls.tsx +75 -0
- package/src/demo/sync-status-badge.tsx +36 -0
- package/src/demo/task-item.tsx +83 -0
- package/src/demo/task-list.tsx +33 -0
- package/src/demo/topology-panel.tsx +44 -0
- package/src/demo/topology-svg-keyshare.tsx +474 -0
- package/src/demo/topology-svg-media.tsx +423 -0
- package/src/demo/topology-svg-split.tsx +402 -0
- package/src/demo/topology-svg-symmetric.tsx +527 -0
- package/src/demo/transfer-log.tsx +68 -0
- package/src/demo/upload-area.tsx +136 -0
- package/src/forms/checkbox.tsx +58 -0
- package/src/forms/field.tsx +60 -0
- package/src/forms/index.ts +6 -0
- package/src/forms/select.tsx +65 -0
- package/src/forms/textarea.tsx +23 -0
- package/src/forms/toggle-group.tsx +24 -0
- package/src/forms/toggle.tsx +24 -0
- package/src/index.ts +7 -0
- package/src/lib/cn.ts +6 -0
- package/src/lib/types.ts +69 -0
- package/src/navigation/index.ts +5 -0
- package/src/navigation/nav-pill-group.tsx +46 -0
- package/src/navigation/nav-pill.tsx +35 -0
- package/src/navigation/status-dot.tsx +66 -0
- package/src/navigation/syncular-brand.tsx +29 -0
- package/src/navigation/top-navigation.tsx +31 -0
- package/src/observable-universe/architecture-section.tsx +209 -0
- package/src/observable-universe/code-section.tsx +136 -0
- package/src/observable-universe/commit-stream-panel.tsx +115 -0
- package/src/observable-universe/connected-clients-panel.tsx +109 -0
- package/src/observable-universe/constants.ts +84 -0
- package/src/observable-universe/explanation-section.tsx +129 -0
- package/src/observable-universe/footer-bar.tsx +34 -0
- package/src/observable-universe/hero-dashboard-section.tsx +71 -0
- package/src/observable-universe/index.ts +16 -0
- package/src/observable-universe/install-section.tsx +119 -0
- package/src/observable-universe/live-metrics-bar.tsx +64 -0
- package/src/observable-universe/observable-universe-header.tsx +155 -0
- package/src/observable-universe/observable-universe-landing.tsx +74 -0
- package/src/observable-universe/section-heading.tsx +31 -0
- package/src/observable-universe/sync-topology-panel.tsx +409 -0
- package/src/observable-universe/types.ts +26 -0
- package/src/observable-universe/use-observable-universe-simulation.ts +111 -0
- package/src/primitives/alert.tsx +55 -0
- package/src/primitives/badge.tsx +45 -0
- package/src/primitives/button.tsx +51 -0
- package/src/primitives/card.tsx +67 -0
- package/src/primitives/dialog.tsx +114 -0
- package/src/primitives/index.ts +15 -0
- package/src/primitives/input.tsx +37 -0
- package/src/primitives/pagination.tsx +54 -0
- package/src/primitives/separator.tsx +29 -0
- package/src/primitives/sheet.tsx +114 -0
- package/src/primitives/skeleton.tsx +17 -0
- package/src/primitives/spinner.tsx +52 -0
- package/src/primitives/switch.tsx +26 -0
- package/src/primitives/table.tsx +71 -0
- package/src/primitives/tabs.tsx +66 -0
- package/src/primitives/tooltip.tsx +43 -0
- package/src/styles/styles.css +177 -0
- package/src/styles/tokens.css +47 -0
- package/src/version.ts +3 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cva, type VariantProps } from 'class-variance-authority';
|
|
4
|
+
import { type ComponentPropsWithoutRef, forwardRef } from 'react';
|
|
5
|
+
import { cn } from '../lib/cn';
|
|
6
|
+
|
|
7
|
+
const buttonVariants = cva(
|
|
8
|
+
'inline-flex items-center justify-center gap-1.5 rounded-md font-mono transition-all cursor-pointer disabled:pointer-events-none disabled:opacity-50',
|
|
9
|
+
{
|
|
10
|
+
variants: {
|
|
11
|
+
variant: {
|
|
12
|
+
default:
|
|
13
|
+
'border border-border-bright bg-transparent text-neutral-400 hover:text-white hover:bg-white/[0.03]',
|
|
14
|
+
primary: 'border border-flow bg-flow/10 text-flow hover:bg-flow/20',
|
|
15
|
+
destructive:
|
|
16
|
+
'border border-offline bg-offline/10 text-offline hover:bg-offline/20',
|
|
17
|
+
ghost:
|
|
18
|
+
'border border-transparent bg-transparent text-neutral-400 hover:text-white hover:bg-white/[0.03]',
|
|
19
|
+
link: 'border border-transparent bg-transparent text-neutral-400 underline underline-offset-4 hover:text-white',
|
|
20
|
+
secondary:
|
|
21
|
+
'border border-border bg-panel text-neutral-400 hover:text-white hover:bg-white/[0.03]',
|
|
22
|
+
},
|
|
23
|
+
size: {
|
|
24
|
+
sm: 'text-[10px] px-2.5 py-1',
|
|
25
|
+
md: 'text-[11px] px-3.5 py-1.5',
|
|
26
|
+
icon: 'h-8 w-8',
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
defaultVariants: {
|
|
30
|
+
variant: 'default',
|
|
31
|
+
size: 'md',
|
|
32
|
+
},
|
|
33
|
+
}
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
type ButtonProps = ComponentPropsWithoutRef<'button'> &
|
|
37
|
+
VariantProps<typeof buttonVariants>;
|
|
38
|
+
|
|
39
|
+
const Button = forwardRef<HTMLButtonElement, ButtonProps>(
|
|
40
|
+
({ className, variant, size, ...props }, ref) => (
|
|
41
|
+
<button
|
|
42
|
+
ref={ref}
|
|
43
|
+
className={cn(buttonVariants({ variant, size, className }))}
|
|
44
|
+
{...props}
|
|
45
|
+
/>
|
|
46
|
+
)
|
|
47
|
+
);
|
|
48
|
+
Button.displayName = 'Button';
|
|
49
|
+
|
|
50
|
+
export { Button, buttonVariants };
|
|
51
|
+
export type { ButtonProps };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { type ComponentPropsWithoutRef, forwardRef } from 'react';
|
|
4
|
+
import { cn } from '../lib/cn';
|
|
5
|
+
|
|
6
|
+
const Card = forwardRef<HTMLDivElement, ComponentPropsWithoutRef<'div'>>(
|
|
7
|
+
({ className, ...props }, ref) => (
|
|
8
|
+
<div
|
|
9
|
+
ref={ref}
|
|
10
|
+
className={cn(
|
|
11
|
+
'bg-panel border border-border rounded-lg hover:border-border-bright transition',
|
|
12
|
+
className
|
|
13
|
+
)}
|
|
14
|
+
{...props}
|
|
15
|
+
/>
|
|
16
|
+
)
|
|
17
|
+
);
|
|
18
|
+
Card.displayName = 'Card';
|
|
19
|
+
|
|
20
|
+
const CardHeader = forwardRef<HTMLDivElement, ComponentPropsWithoutRef<'div'>>(
|
|
21
|
+
({ className, ...props }, ref) => (
|
|
22
|
+
<div
|
|
23
|
+
ref={ref}
|
|
24
|
+
className={cn(
|
|
25
|
+
'px-4 py-2.5 border-b border-border flex items-center justify-between',
|
|
26
|
+
className
|
|
27
|
+
)}
|
|
28
|
+
{...props}
|
|
29
|
+
/>
|
|
30
|
+
)
|
|
31
|
+
);
|
|
32
|
+
CardHeader.displayName = 'CardHeader';
|
|
33
|
+
|
|
34
|
+
const CardTitle = forwardRef<
|
|
35
|
+
HTMLHeadingElement,
|
|
36
|
+
ComponentPropsWithoutRef<'h3'>
|
|
37
|
+
>(({ className, ...props }, ref) => (
|
|
38
|
+
<h3
|
|
39
|
+
ref={ref}
|
|
40
|
+
className={cn(
|
|
41
|
+
'font-mono text-[10px] text-neutral-500 uppercase tracking-widest',
|
|
42
|
+
className
|
|
43
|
+
)}
|
|
44
|
+
{...props}
|
|
45
|
+
/>
|
|
46
|
+
));
|
|
47
|
+
CardTitle.displayName = 'CardTitle';
|
|
48
|
+
|
|
49
|
+
const CardContent = forwardRef<HTMLDivElement, ComponentPropsWithoutRef<'div'>>(
|
|
50
|
+
({ className, ...props }, ref) => (
|
|
51
|
+
<div ref={ref} className={cn('p-4', className)} {...props} />
|
|
52
|
+
)
|
|
53
|
+
);
|
|
54
|
+
CardContent.displayName = 'CardContent';
|
|
55
|
+
|
|
56
|
+
const CardFooter = forwardRef<HTMLDivElement, ComponentPropsWithoutRef<'div'>>(
|
|
57
|
+
({ className, ...props }, ref) => (
|
|
58
|
+
<div
|
|
59
|
+
ref={ref}
|
|
60
|
+
className={cn('px-4 py-2.5 border-t border-border', className)}
|
|
61
|
+
{...props}
|
|
62
|
+
/>
|
|
63
|
+
)
|
|
64
|
+
);
|
|
65
|
+
CardFooter.displayName = 'CardFooter';
|
|
66
|
+
|
|
67
|
+
export { Card, CardHeader, CardTitle, CardContent, CardFooter };
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { Dialog as BaseDialog } from '@base-ui/react/dialog';
|
|
4
|
+
import {
|
|
5
|
+
type ComponentPropsWithoutRef,
|
|
6
|
+
forwardRef,
|
|
7
|
+
type HTMLAttributes,
|
|
8
|
+
} from 'react';
|
|
9
|
+
import { cn } from '../lib/cn';
|
|
10
|
+
|
|
11
|
+
const Dialog = BaseDialog.Root;
|
|
12
|
+
|
|
13
|
+
const DialogTrigger = BaseDialog.Trigger;
|
|
14
|
+
|
|
15
|
+
const DialogPortal = BaseDialog.Portal;
|
|
16
|
+
|
|
17
|
+
const DialogClose = BaseDialog.Close;
|
|
18
|
+
|
|
19
|
+
const DialogOverlay = forwardRef<
|
|
20
|
+
HTMLDivElement,
|
|
21
|
+
ComponentPropsWithoutRef<typeof BaseDialog.Backdrop>
|
|
22
|
+
>(({ className, ...props }, ref) => (
|
|
23
|
+
<BaseDialog.Backdrop
|
|
24
|
+
ref={ref}
|
|
25
|
+
className={cn('fixed inset-0 z-50 bg-black/60 backdrop-blur-sm', className)}
|
|
26
|
+
{...props}
|
|
27
|
+
/>
|
|
28
|
+
));
|
|
29
|
+
DialogOverlay.displayName = 'DialogOverlay';
|
|
30
|
+
|
|
31
|
+
const DialogContent = forwardRef<
|
|
32
|
+
HTMLDivElement,
|
|
33
|
+
ComponentPropsWithoutRef<typeof BaseDialog.Popup>
|
|
34
|
+
>(({ className, children, ...props }, ref) => (
|
|
35
|
+
<BaseDialog.Portal>
|
|
36
|
+
<BaseDialog.Backdrop className="fixed inset-0 z-50 bg-black/60 backdrop-blur-sm" />
|
|
37
|
+
<BaseDialog.Popup
|
|
38
|
+
ref={ref}
|
|
39
|
+
className={cn(
|
|
40
|
+
'fixed z-50 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-panel border border-border rounded-lg shadow-lg max-w-lg w-full p-0',
|
|
41
|
+
className
|
|
42
|
+
)}
|
|
43
|
+
{...props}
|
|
44
|
+
>
|
|
45
|
+
{children}
|
|
46
|
+
</BaseDialog.Popup>
|
|
47
|
+
</BaseDialog.Portal>
|
|
48
|
+
));
|
|
49
|
+
DialogContent.displayName = 'DialogContent';
|
|
50
|
+
|
|
51
|
+
const DialogHeader = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(
|
|
52
|
+
({ className, ...props }, ref) => (
|
|
53
|
+
<div
|
|
54
|
+
ref={ref}
|
|
55
|
+
className={cn('px-5 py-3 border-b border-border', className)}
|
|
56
|
+
{...props}
|
|
57
|
+
/>
|
|
58
|
+
)
|
|
59
|
+
);
|
|
60
|
+
DialogHeader.displayName = 'DialogHeader';
|
|
61
|
+
|
|
62
|
+
const DialogFooter = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(
|
|
63
|
+
({ className, ...props }, ref) => (
|
|
64
|
+
<div
|
|
65
|
+
ref={ref}
|
|
66
|
+
className={cn(
|
|
67
|
+
'px-5 py-3 border-t border-border flex justify-end gap-2',
|
|
68
|
+
className
|
|
69
|
+
)}
|
|
70
|
+
{...props}
|
|
71
|
+
/>
|
|
72
|
+
)
|
|
73
|
+
);
|
|
74
|
+
DialogFooter.displayName = 'DialogFooter';
|
|
75
|
+
|
|
76
|
+
const DialogTitle = forwardRef<
|
|
77
|
+
HTMLHeadingElement,
|
|
78
|
+
ComponentPropsWithoutRef<typeof BaseDialog.Title>
|
|
79
|
+
>(({ className, ...props }, ref) => (
|
|
80
|
+
<BaseDialog.Title
|
|
81
|
+
ref={ref}
|
|
82
|
+
className={cn(
|
|
83
|
+
'font-mono text-[10px] text-neutral-500 uppercase tracking-widest',
|
|
84
|
+
className
|
|
85
|
+
)}
|
|
86
|
+
{...props}
|
|
87
|
+
/>
|
|
88
|
+
));
|
|
89
|
+
DialogTitle.displayName = 'DialogTitle';
|
|
90
|
+
|
|
91
|
+
const DialogDescription = forwardRef<
|
|
92
|
+
HTMLParagraphElement,
|
|
93
|
+
ComponentPropsWithoutRef<typeof BaseDialog.Description>
|
|
94
|
+
>(({ className, ...props }, ref) => (
|
|
95
|
+
<BaseDialog.Description
|
|
96
|
+
ref={ref}
|
|
97
|
+
className={cn('text-sm text-neutral-400', className)}
|
|
98
|
+
{...props}
|
|
99
|
+
/>
|
|
100
|
+
));
|
|
101
|
+
DialogDescription.displayName = 'DialogDescription';
|
|
102
|
+
|
|
103
|
+
export {
|
|
104
|
+
Dialog,
|
|
105
|
+
DialogTrigger,
|
|
106
|
+
DialogPortal,
|
|
107
|
+
DialogClose,
|
|
108
|
+
DialogOverlay,
|
|
109
|
+
DialogContent,
|
|
110
|
+
DialogHeader,
|
|
111
|
+
DialogFooter,
|
|
112
|
+
DialogTitle,
|
|
113
|
+
DialogDescription,
|
|
114
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from './alert';
|
|
2
|
+
export * from './badge';
|
|
3
|
+
export * from './button';
|
|
4
|
+
export * from './card';
|
|
5
|
+
export * from './dialog';
|
|
6
|
+
export * from './input';
|
|
7
|
+
export * from './pagination';
|
|
8
|
+
export * from './separator';
|
|
9
|
+
export * from './sheet';
|
|
10
|
+
export * from './skeleton';
|
|
11
|
+
export * from './spinner';
|
|
12
|
+
export * from './switch';
|
|
13
|
+
export * from './table';
|
|
14
|
+
export * from './tabs';
|
|
15
|
+
export * from './tooltip';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cva, type VariantProps } from 'class-variance-authority';
|
|
4
|
+
import { type ComponentPropsWithoutRef, forwardRef } from 'react';
|
|
5
|
+
import { cn } from '../lib/cn';
|
|
6
|
+
|
|
7
|
+
const inputVariants = cva(
|
|
8
|
+
'bg-surface border border-border rounded-md px-3 py-1.5 text-foreground outline-none w-full transition focus:border-flow placeholder:text-neutral-600',
|
|
9
|
+
{
|
|
10
|
+
variants: {
|
|
11
|
+
variant: {
|
|
12
|
+
default: 'font-sans text-[13px]',
|
|
13
|
+
mono: 'font-mono text-[12px]',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
defaultVariants: {
|
|
17
|
+
variant: 'default',
|
|
18
|
+
},
|
|
19
|
+
}
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
type InputProps = ComponentPropsWithoutRef<'input'> &
|
|
23
|
+
VariantProps<typeof inputVariants>;
|
|
24
|
+
|
|
25
|
+
const Input = forwardRef<HTMLInputElement, InputProps>(
|
|
26
|
+
({ className, variant, ...props }, ref) => (
|
|
27
|
+
<input
|
|
28
|
+
ref={ref}
|
|
29
|
+
className={cn(inputVariants({ variant, className }))}
|
|
30
|
+
{...props}
|
|
31
|
+
/>
|
|
32
|
+
)
|
|
33
|
+
);
|
|
34
|
+
Input.displayName = 'Input';
|
|
35
|
+
|
|
36
|
+
export { Input, inputVariants };
|
|
37
|
+
export type { InputProps };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { forwardRef, type HTMLAttributes } from 'react';
|
|
4
|
+
import { cn } from '../lib/cn';
|
|
5
|
+
import { Button } from './button';
|
|
6
|
+
|
|
7
|
+
type PaginationProps = HTMLAttributes<HTMLDivElement> & {
|
|
8
|
+
page: number;
|
|
9
|
+
totalPages: number;
|
|
10
|
+
totalItems: number;
|
|
11
|
+
onPageChange: (page: number) => void;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const Pagination = forwardRef<HTMLDivElement, PaginationProps>(
|
|
15
|
+
(
|
|
16
|
+
{ className, page, totalPages, totalItems, onPageChange, ...props },
|
|
17
|
+
ref
|
|
18
|
+
) => (
|
|
19
|
+
<div
|
|
20
|
+
ref={ref}
|
|
21
|
+
className={cn(
|
|
22
|
+
'px-5 py-2.5 border-t border-border flex items-center justify-between',
|
|
23
|
+
className
|
|
24
|
+
)}
|
|
25
|
+
{...props}
|
|
26
|
+
>
|
|
27
|
+
<span className="font-mono text-[10px] text-neutral-600">
|
|
28
|
+
{totalItems} items · Page {page} of {totalPages}
|
|
29
|
+
</span>
|
|
30
|
+
<div className="flex gap-2">
|
|
31
|
+
<Button
|
|
32
|
+
size="sm"
|
|
33
|
+
variant="default"
|
|
34
|
+
disabled={page <= 1}
|
|
35
|
+
onClick={() => onPageChange(page - 1)}
|
|
36
|
+
>
|
|
37
|
+
Prev
|
|
38
|
+
</Button>
|
|
39
|
+
<Button
|
|
40
|
+
size="sm"
|
|
41
|
+
variant="default"
|
|
42
|
+
disabled={page >= totalPages}
|
|
43
|
+
onClick={() => onPageChange(page + 1)}
|
|
44
|
+
>
|
|
45
|
+
Next
|
|
46
|
+
</Button>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
)
|
|
50
|
+
);
|
|
51
|
+
Pagination.displayName = 'Pagination';
|
|
52
|
+
|
|
53
|
+
export { Pagination };
|
|
54
|
+
export type { PaginationProps };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { type ComponentPropsWithoutRef, forwardRef } from 'react';
|
|
4
|
+
import { cn } from '../lib/cn';
|
|
5
|
+
|
|
6
|
+
type SeparatorProps = Omit<ComponentPropsWithoutRef<'hr'>, 'children'> & {
|
|
7
|
+
orientation?: 'horizontal' | 'vertical';
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const Separator = forwardRef<HTMLHRElement, SeparatorProps>(
|
|
11
|
+
({ className, orientation = 'horizontal', ...props }, ref) => (
|
|
12
|
+
<hr
|
|
13
|
+
ref={ref}
|
|
14
|
+
aria-orientation={orientation === 'vertical' ? 'vertical' : undefined}
|
|
15
|
+
className={cn(
|
|
16
|
+
'border-none m-0',
|
|
17
|
+
orientation === 'horizontal'
|
|
18
|
+
? 'h-px w-full bg-border'
|
|
19
|
+
: 'w-px h-4 bg-border',
|
|
20
|
+
className
|
|
21
|
+
)}
|
|
22
|
+
{...props}
|
|
23
|
+
/>
|
|
24
|
+
)
|
|
25
|
+
);
|
|
26
|
+
Separator.displayName = 'Separator';
|
|
27
|
+
|
|
28
|
+
export { Separator };
|
|
29
|
+
export type { SeparatorProps };
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { Dialog as BaseDialog } from '@base-ui/react/dialog';
|
|
4
|
+
import { cva, type VariantProps } from 'class-variance-authority';
|
|
5
|
+
import {
|
|
6
|
+
type ComponentPropsWithoutRef,
|
|
7
|
+
forwardRef,
|
|
8
|
+
type HTMLAttributes,
|
|
9
|
+
} from 'react';
|
|
10
|
+
import { cn } from '../lib/cn';
|
|
11
|
+
|
|
12
|
+
const Sheet = BaseDialog.Root;
|
|
13
|
+
|
|
14
|
+
const SheetTrigger = BaseDialog.Trigger;
|
|
15
|
+
|
|
16
|
+
const sheetContentVariants = cva(
|
|
17
|
+
'fixed z-50 bg-panel shadow-lg overflow-auto',
|
|
18
|
+
{
|
|
19
|
+
variants: {
|
|
20
|
+
side: {
|
|
21
|
+
top: 'top-0 left-0 w-full h-[400px] border-b border-border',
|
|
22
|
+
right: 'right-0 top-0 h-full w-[400px] border-l border-border',
|
|
23
|
+
bottom: 'bottom-0 left-0 w-full h-[400px] border-t border-border',
|
|
24
|
+
left: 'left-0 top-0 h-full w-[400px] border-r border-border',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
defaultVariants: {
|
|
28
|
+
side: 'right',
|
|
29
|
+
},
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
type SheetContentProps = ComponentPropsWithoutRef<typeof BaseDialog.Popup> &
|
|
34
|
+
VariantProps<typeof sheetContentVariants>;
|
|
35
|
+
|
|
36
|
+
const SheetContent = forwardRef<HTMLDivElement, SheetContentProps>(
|
|
37
|
+
({ className, side, children, ...props }, ref) => (
|
|
38
|
+
<BaseDialog.Portal>
|
|
39
|
+
<BaseDialog.Backdrop className="fixed inset-0 z-50 bg-black/60 backdrop-blur-sm" />
|
|
40
|
+
<BaseDialog.Popup
|
|
41
|
+
ref={ref}
|
|
42
|
+
className={cn(sheetContentVariants({ side, className }))}
|
|
43
|
+
{...props}
|
|
44
|
+
>
|
|
45
|
+
{children}
|
|
46
|
+
</BaseDialog.Popup>
|
|
47
|
+
</BaseDialog.Portal>
|
|
48
|
+
)
|
|
49
|
+
);
|
|
50
|
+
SheetContent.displayName = 'SheetContent';
|
|
51
|
+
|
|
52
|
+
const SheetHeader = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(
|
|
53
|
+
({ className, ...props }, ref) => (
|
|
54
|
+
<div
|
|
55
|
+
ref={ref}
|
|
56
|
+
className={cn('px-5 py-3 border-b border-border', className)}
|
|
57
|
+
{...props}
|
|
58
|
+
/>
|
|
59
|
+
)
|
|
60
|
+
);
|
|
61
|
+
SheetHeader.displayName = 'SheetHeader';
|
|
62
|
+
|
|
63
|
+
const SheetFooter = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(
|
|
64
|
+
({ className, ...props }, ref) => (
|
|
65
|
+
<div
|
|
66
|
+
ref={ref}
|
|
67
|
+
className={cn(
|
|
68
|
+
'px-5 py-3 border-t border-border flex justify-end gap-2',
|
|
69
|
+
className
|
|
70
|
+
)}
|
|
71
|
+
{...props}
|
|
72
|
+
/>
|
|
73
|
+
)
|
|
74
|
+
);
|
|
75
|
+
SheetFooter.displayName = 'SheetFooter';
|
|
76
|
+
|
|
77
|
+
const SheetTitle = forwardRef<
|
|
78
|
+
HTMLHeadingElement,
|
|
79
|
+
ComponentPropsWithoutRef<typeof BaseDialog.Title>
|
|
80
|
+
>(({ className, ...props }, ref) => (
|
|
81
|
+
<BaseDialog.Title
|
|
82
|
+
ref={ref}
|
|
83
|
+
className={cn(
|
|
84
|
+
'font-mono text-[10px] text-neutral-500 uppercase tracking-widest',
|
|
85
|
+
className
|
|
86
|
+
)}
|
|
87
|
+
{...props}
|
|
88
|
+
/>
|
|
89
|
+
));
|
|
90
|
+
SheetTitle.displayName = 'SheetTitle';
|
|
91
|
+
|
|
92
|
+
const SheetDescription = forwardRef<
|
|
93
|
+
HTMLParagraphElement,
|
|
94
|
+
ComponentPropsWithoutRef<typeof BaseDialog.Description>
|
|
95
|
+
>(({ className, ...props }, ref) => (
|
|
96
|
+
<BaseDialog.Description
|
|
97
|
+
ref={ref}
|
|
98
|
+
className={cn('text-sm text-neutral-400', className)}
|
|
99
|
+
{...props}
|
|
100
|
+
/>
|
|
101
|
+
));
|
|
102
|
+
SheetDescription.displayName = 'SheetDescription';
|
|
103
|
+
|
|
104
|
+
export {
|
|
105
|
+
Sheet,
|
|
106
|
+
SheetTrigger,
|
|
107
|
+
SheetContent,
|
|
108
|
+
sheetContentVariants,
|
|
109
|
+
SheetHeader,
|
|
110
|
+
SheetFooter,
|
|
111
|
+
SheetTitle,
|
|
112
|
+
SheetDescription,
|
|
113
|
+
};
|
|
114
|
+
export type { SheetContentProps };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { type ComponentPropsWithoutRef, forwardRef } from 'react';
|
|
4
|
+
import { cn } from '../lib/cn';
|
|
5
|
+
|
|
6
|
+
const Skeleton = forwardRef<HTMLDivElement, ComponentPropsWithoutRef<'div'>>(
|
|
7
|
+
({ className, ...props }, ref) => (
|
|
8
|
+
<div
|
|
9
|
+
ref={ref}
|
|
10
|
+
className={cn('rounded-md bg-neutral-800 animate-pulse', className)}
|
|
11
|
+
{...props}
|
|
12
|
+
/>
|
|
13
|
+
)
|
|
14
|
+
);
|
|
15
|
+
Skeleton.displayName = 'Skeleton';
|
|
16
|
+
|
|
17
|
+
export { Skeleton };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cva, type VariantProps } from 'class-variance-authority';
|
|
4
|
+
import { type ComponentPropsWithoutRef, forwardRef } from 'react';
|
|
5
|
+
import { cn } from '../lib/cn';
|
|
6
|
+
|
|
7
|
+
const spinnerVariants = cva('animate-spin text-neutral-500', {
|
|
8
|
+
variants: {
|
|
9
|
+
size: {
|
|
10
|
+
sm: 'h-3 w-3',
|
|
11
|
+
md: 'h-5 w-5',
|
|
12
|
+
lg: 'h-8 w-8',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
defaultVariants: {
|
|
16
|
+
size: 'md',
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
type SpinnerProps = Omit<ComponentPropsWithoutRef<'svg'>, 'children'> &
|
|
21
|
+
VariantProps<typeof spinnerVariants>;
|
|
22
|
+
|
|
23
|
+
const Spinner = forwardRef<SVGSVGElement, SpinnerProps>(
|
|
24
|
+
({ className, size, ...props }, ref) => (
|
|
25
|
+
<svg
|
|
26
|
+
ref={ref}
|
|
27
|
+
className={cn(spinnerVariants({ size, className }))}
|
|
28
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
29
|
+
fill="none"
|
|
30
|
+
viewBox="0 0 24 24"
|
|
31
|
+
{...props}
|
|
32
|
+
>
|
|
33
|
+
<circle
|
|
34
|
+
className="opacity-25"
|
|
35
|
+
cx="12"
|
|
36
|
+
cy="12"
|
|
37
|
+
r="10"
|
|
38
|
+
stroke="currentColor"
|
|
39
|
+
strokeWidth="4"
|
|
40
|
+
/>
|
|
41
|
+
<path
|
|
42
|
+
className="opacity-75"
|
|
43
|
+
fill="currentColor"
|
|
44
|
+
d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
|
|
45
|
+
/>
|
|
46
|
+
</svg>
|
|
47
|
+
)
|
|
48
|
+
);
|
|
49
|
+
Spinner.displayName = 'Spinner';
|
|
50
|
+
|
|
51
|
+
export { Spinner, spinnerVariants };
|
|
52
|
+
export type { SpinnerProps };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { Switch as BaseSwitch } from '@base-ui/react/switch';
|
|
4
|
+
import { type ComponentPropsWithoutRef, forwardRef } from 'react';
|
|
5
|
+
import { cn } from '../lib/cn';
|
|
6
|
+
|
|
7
|
+
type SwitchProps = ComponentPropsWithoutRef<typeof BaseSwitch.Root>;
|
|
8
|
+
|
|
9
|
+
const Switch = forwardRef<HTMLButtonElement, SwitchProps>(
|
|
10
|
+
({ className, ...props }, ref) => (
|
|
11
|
+
<BaseSwitch.Root
|
|
12
|
+
ref={ref}
|
|
13
|
+
className={cn(
|
|
14
|
+
'relative w-[34px] h-[18px] bg-border-bright rounded-full cursor-pointer transition data-[checked]:bg-healthy',
|
|
15
|
+
className
|
|
16
|
+
)}
|
|
17
|
+
{...props}
|
|
18
|
+
>
|
|
19
|
+
<BaseSwitch.Thumb className="block w-[14px] h-[14px] bg-white rounded-full transition-transform data-[checked]:translate-x-4 absolute top-0.5 left-0.5" />
|
|
20
|
+
</BaseSwitch.Root>
|
|
21
|
+
)
|
|
22
|
+
);
|
|
23
|
+
Switch.displayName = 'Switch';
|
|
24
|
+
|
|
25
|
+
export { Switch };
|
|
26
|
+
export type { SwitchProps };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { type ComponentPropsWithoutRef, forwardRef } from 'react';
|
|
4
|
+
import { cn } from '../lib/cn';
|
|
5
|
+
|
|
6
|
+
const Table = forwardRef<HTMLTableElement, ComponentPropsWithoutRef<'table'>>(
|
|
7
|
+
({ className, ...props }, ref) => (
|
|
8
|
+
<table ref={ref} className={cn('w-full', className)} {...props} />
|
|
9
|
+
)
|
|
10
|
+
);
|
|
11
|
+
Table.displayName = 'Table';
|
|
12
|
+
|
|
13
|
+
const TableHeader = forwardRef<
|
|
14
|
+
HTMLTableSectionElement,
|
|
15
|
+
ComponentPropsWithoutRef<'thead'>
|
|
16
|
+
>(({ className, ...props }, ref) => (
|
|
17
|
+
<thead ref={ref} className={cn(className)} {...props} />
|
|
18
|
+
));
|
|
19
|
+
TableHeader.displayName = 'TableHeader';
|
|
20
|
+
|
|
21
|
+
const TableBody = forwardRef<
|
|
22
|
+
HTMLTableSectionElement,
|
|
23
|
+
ComponentPropsWithoutRef<'tbody'>
|
|
24
|
+
>(({ className, ...props }, ref) => (
|
|
25
|
+
<tbody ref={ref} className={cn(className)} {...props} />
|
|
26
|
+
));
|
|
27
|
+
TableBody.displayName = 'TableBody';
|
|
28
|
+
|
|
29
|
+
const TableRow = forwardRef<
|
|
30
|
+
HTMLTableRowElement,
|
|
31
|
+
ComponentPropsWithoutRef<'tr'>
|
|
32
|
+
>(({ className, ...props }, ref) => (
|
|
33
|
+
<tr
|
|
34
|
+
ref={ref}
|
|
35
|
+
className={cn(
|
|
36
|
+
'font-mono text-[11px] leading-7 px-4 flex items-center gap-4 border-b border-[#141414] hover:bg-white/[0.015] transition-colors cursor-default',
|
|
37
|
+
className
|
|
38
|
+
)}
|
|
39
|
+
{...props}
|
|
40
|
+
/>
|
|
41
|
+
));
|
|
42
|
+
TableRow.displayName = 'TableRow';
|
|
43
|
+
|
|
44
|
+
const TableHead = forwardRef<
|
|
45
|
+
HTMLTableCellElement,
|
|
46
|
+
ComponentPropsWithoutRef<'th'>
|
|
47
|
+
>(({ className, ...props }, ref) => (
|
|
48
|
+
<th
|
|
49
|
+
ref={ref}
|
|
50
|
+
className={cn(
|
|
51
|
+
'font-mono text-[9px] text-neutral-600 uppercase tracking-wider leading-6 bg-white/[0.01] text-left',
|
|
52
|
+
className
|
|
53
|
+
)}
|
|
54
|
+
{...props}
|
|
55
|
+
/>
|
|
56
|
+
));
|
|
57
|
+
TableHead.displayName = 'TableHead';
|
|
58
|
+
|
|
59
|
+
const TableCell = forwardRef<
|
|
60
|
+
HTMLTableCellElement,
|
|
61
|
+
ComponentPropsWithoutRef<'td'>
|
|
62
|
+
>(({ className, ...props }, ref) => (
|
|
63
|
+
<td
|
|
64
|
+
ref={ref}
|
|
65
|
+
className={cn('whitespace-nowrap overflow-hidden text-ellipsis', className)}
|
|
66
|
+
{...props}
|
|
67
|
+
/>
|
|
68
|
+
));
|
|
69
|
+
TableCell.displayName = 'TableCell';
|
|
70
|
+
|
|
71
|
+
export { Table, TableHeader, TableBody, TableRow, TableHead, TableCell };
|