@desbug/ultra-ui 0.1.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 +203 -0
- package/dist/components/blocks/activity-feed-card.d.ts +25 -0
- package/dist/components/blocks/activity-feed-card.d.ts.map +1 -0
- package/dist/components/blocks/activity-feed-card.js +13 -0
- package/dist/components/blocks/activity-feed-card.js.map +1 -0
- package/dist/components/blocks/bar-breakdown-card.d.ts +34 -0
- package/dist/components/blocks/bar-breakdown-card.d.ts.map +1 -0
- package/dist/components/blocks/bar-breakdown-card.js +24 -0
- package/dist/components/blocks/bar-breakdown-card.js.map +1 -0
- package/dist/components/blocks/block-card.d.ts +39 -0
- package/dist/components/blocks/block-card.d.ts.map +1 -0
- package/dist/components/blocks/block-card.js +14 -0
- package/dist/components/blocks/block-card.js.map +1 -0
- package/dist/components/blocks/callout-card.d.ts +20 -0
- package/dist/components/blocks/callout-card.d.ts.map +1 -0
- package/dist/components/blocks/callout-card.js +12 -0
- package/dist/components/blocks/callout-card.js.map +1 -0
- package/dist/components/blocks/donut-card.d.ts +28 -0
- package/dist/components/blocks/donut-card.d.ts.map +1 -0
- package/dist/components/blocks/donut-card.js +24 -0
- package/dist/components/blocks/donut-card.js.map +1 -0
- package/dist/components/blocks/file-list-card.d.ts +21 -0
- package/dist/components/blocks/file-list-card.d.ts.map +1 -0
- package/dist/components/blocks/file-list-card.js +12 -0
- package/dist/components/blocks/file-list-card.js.map +1 -0
- package/dist/components/blocks/funnel-card.d.ts +19 -0
- package/dist/components/blocks/funnel-card.d.ts.map +1 -0
- package/dist/components/blocks/funnel-card.js +18 -0
- package/dist/components/blocks/funnel-card.js.map +1 -0
- package/dist/components/blocks/gauge-card.d.ts +20 -0
- package/dist/components/blocks/gauge-card.d.ts.map +1 -0
- package/dist/components/blocks/gauge-card.js +12 -0
- package/dist/components/blocks/gauge-card.js.map +1 -0
- package/dist/components/blocks/index.d.ts +21 -0
- package/dist/components/blocks/index.d.ts.map +1 -0
- package/dist/components/blocks/index.js +24 -0
- package/dist/components/blocks/index.js.map +1 -0
- package/dist/components/blocks/kpi-card.d.ts +18 -0
- package/dist/components/blocks/kpi-card.d.ts.map +1 -0
- package/dist/components/blocks/kpi-card.js +11 -0
- package/dist/components/blocks/kpi-card.js.map +1 -0
- package/dist/components/blocks/palette.d.ts +9 -0
- package/dist/components/blocks/palette.d.ts.map +1 -0
- package/dist/components/blocks/palette.js +20 -0
- package/dist/components/blocks/palette.js.map +1 -0
- package/dist/components/blocks/progress-list-card.d.ts +29 -0
- package/dist/components/blocks/progress-list-card.d.ts.map +1 -0
- package/dist/components/blocks/progress-list-card.js +19 -0
- package/dist/components/blocks/progress-list-card.js.map +1 -0
- package/dist/components/blocks/radar-stats-card.d.ts +18 -0
- package/dist/components/blocks/radar-stats-card.d.ts.map +1 -0
- package/dist/components/blocks/radar-stats-card.js +10 -0
- package/dist/components/blocks/radar-stats-card.js.map +1 -0
- package/dist/components/blocks/ranking-list-card.d.ts +25 -0
- package/dist/components/blocks/ranking-list-card.d.ts.map +1 -0
- package/dist/components/blocks/ranking-list-card.js +10 -0
- package/dist/components/blocks/ranking-list-card.js.map +1 -0
- package/dist/components/blocks/spark-stat-card.d.ts +22 -0
- package/dist/components/blocks/spark-stat-card.d.ts.map +1 -0
- package/dist/components/blocks/spark-stat-card.js +10 -0
- package/dist/components/blocks/spark-stat-card.js.map +1 -0
- package/dist/components/blocks/steps-card.d.ts +17 -0
- package/dist/components/blocks/steps-card.d.ts.map +1 -0
- package/dist/components/blocks/steps-card.js +16 -0
- package/dist/components/blocks/steps-card.js.map +1 -0
- package/dist/components/blocks/team-list-card.d.ts +21 -0
- package/dist/components/blocks/team-list-card.d.ts.map +1 -0
- package/dist/components/blocks/team-list-card.js +9 -0
- package/dist/components/blocks/team-list-card.js.map +1 -0
- package/dist/components/blocks/timeline-card.d.ts +19 -0
- package/dist/components/blocks/timeline-card.d.ts.map +1 -0
- package/dist/components/blocks/timeline-card.js +13 -0
- package/dist/components/blocks/timeline-card.js.map +1 -0
- package/dist/components/blocks/todo-list-card.d.ts +21 -0
- package/dist/components/blocks/todo-list-card.d.ts.map +1 -0
- package/dist/components/blocks/todo-list-card.js +11 -0
- package/dist/components/blocks/todo-list-card.js.map +1 -0
- package/dist/components/blocks/trend-chart-card.d.ts +33 -0
- package/dist/components/blocks/trend-chart-card.d.ts.map +1 -0
- package/dist/components/blocks/trend-chart-card.js +13 -0
- package/dist/components/blocks/trend-chart-card.js.map +1 -0
- package/dist/components/shared/avatar-stack.d.ts +17 -0
- package/dist/components/shared/avatar-stack.d.ts.map +1 -0
- package/dist/components/shared/avatar-stack.js +10 -0
- package/dist/components/shared/avatar-stack.js.map +1 -0
- package/dist/components/shared/avatar-with-name.d.ts +15 -0
- package/dist/components/shared/avatar-with-name.d.ts.map +1 -0
- package/dist/components/shared/avatar-with-name.js +8 -0
- package/dist/components/shared/avatar-with-name.js.map +1 -0
- package/dist/components/shared/chart-card.d.ts +20 -0
- package/dist/components/shared/chart-card.d.ts.map +1 -0
- package/dist/components/shared/chart-card.js +8 -0
- package/dist/components/shared/chart-card.js.map +1 -0
- package/dist/components/shared/data-table-cells.d.ts +35 -0
- package/dist/components/shared/data-table-cells.d.ts.map +1 -0
- package/dist/components/shared/data-table-cells.js +37 -0
- package/dist/components/shared/data-table-cells.js.map +1 -0
- package/dist/components/shared/data-table-column-manager.d.ts +25 -0
- package/dist/components/shared/data-table-column-manager.d.ts.map +1 -0
- package/dist/components/shared/data-table-column-manager.js +88 -0
- package/dist/components/shared/data-table-column-manager.js.map +1 -0
- package/dist/components/shared/data-table-pagination.d.ts +11 -0
- package/dist/components/shared/data-table-pagination.d.ts.map +1 -0
- package/dist/components/shared/data-table-pagination.js +24 -0
- package/dist/components/shared/data-table-pagination.js.map +1 -0
- package/dist/components/shared/data-table-toolbar.d.ts +15 -0
- package/dist/components/shared/data-table-toolbar.d.ts.map +1 -0
- package/dist/components/shared/data-table-toolbar.js +14 -0
- package/dist/components/shared/data-table-toolbar.js.map +1 -0
- package/dist/components/shared/data-table.d.ts +49 -0
- package/dist/components/shared/data-table.d.ts.map +1 -0
- package/dist/components/shared/data-table.js +56 -0
- package/dist/components/shared/data-table.js.map +1 -0
- package/dist/components/shared/empty-state.d.ts +14 -0
- package/dist/components/shared/empty-state.d.ts.map +1 -0
- package/dist/components/shared/empty-state.js +7 -0
- package/dist/components/shared/empty-state.js.map +1 -0
- package/dist/components/shared/github-link.d.ts +16 -0
- package/dist/components/shared/github-link.d.ts.map +1 -0
- package/dist/components/shared/github-link.js +15 -0
- package/dist/components/shared/github-link.js.map +1 -0
- package/dist/components/shared/gradient-def.d.ts +23 -0
- package/dist/components/shared/gradient-def.d.ts.map +1 -0
- package/dist/components/shared/gradient-def.js +13 -0
- package/dist/components/shared/gradient-def.js.map +1 -0
- package/dist/components/shared/header-actions-menu.d.ts +12 -0
- package/dist/components/shared/header-actions-menu.d.ts.map +1 -0
- package/dist/components/shared/header-actions-menu.js +11 -0
- package/dist/components/shared/header-actions-menu.js.map +1 -0
- package/dist/components/shared/header-search.d.ts +12 -0
- package/dist/components/shared/header-search.d.ts.map +1 -0
- package/dist/components/shared/header-search.js +10 -0
- package/dist/components/shared/header-search.js.map +1 -0
- package/dist/components/shared/index.d.ts +23 -0
- package/dist/components/shared/index.d.ts.map +1 -0
- package/dist/components/shared/index.js +27 -0
- package/dist/components/shared/index.js.map +1 -0
- package/dist/components/shared/messages-menu.d.ts +16 -0
- package/dist/components/shared/messages-menu.d.ts.map +1 -0
- package/dist/components/shared/messages-menu.js +12 -0
- package/dist/components/shared/messages-menu.js.map +1 -0
- package/dist/components/shared/notifications-menu.d.ts +18 -0
- package/dist/components/shared/notifications-menu.d.ts.map +1 -0
- package/dist/components/shared/notifications-menu.js +12 -0
- package/dist/components/shared/notifications-menu.js.map +1 -0
- package/dist/components/shared/page-header.d.ts +25 -0
- package/dist/components/shared/page-header.d.ts.map +1 -0
- package/dist/components/shared/page-header.js +13 -0
- package/dist/components/shared/page-header.js.map +1 -0
- package/dist/components/shared/progress-bar.d.ts +16 -0
- package/dist/components/shared/progress-bar.d.ts.map +1 -0
- package/dist/components/shared/progress-bar.js +8 -0
- package/dist/components/shared/progress-bar.js.map +1 -0
- package/dist/components/shared/section-card.d.ts +18 -0
- package/dist/components/shared/section-card.d.ts.map +1 -0
- package/dist/components/shared/section-card.js +8 -0
- package/dist/components/shared/section-card.js.map +1 -0
- package/dist/components/shared/series-chart.d.ts +49 -0
- package/dist/components/shared/series-chart.d.ts.map +1 -0
- package/dist/components/shared/series-chart.js +29 -0
- package/dist/components/shared/series-chart.js.map +1 -0
- package/dist/components/shared/stat-card.d.ts +32 -0
- package/dist/components/shared/stat-card.d.ts.map +1 -0
- package/dist/components/shared/stat-card.js +18 -0
- package/dist/components/shared/stat-card.js.map +1 -0
- package/dist/components/shared/stats-grid.d.ts +21 -0
- package/dist/components/shared/stats-grid.d.ts.map +1 -0
- package/dist/components/shared/stats-grid.js +19 -0
- package/dist/components/shared/stats-grid.js.map +1 -0
- package/dist/components/shared/status-badge.d.ts +26 -0
- package/dist/components/shared/status-badge.d.ts.map +1 -0
- package/dist/components/shared/status-badge.js +95 -0
- package/dist/components/shared/status-badge.js.map +1 -0
- package/dist/components/ui/accordion.d.ts +8 -0
- package/dist/components/ui/accordion.d.ts.map +1 -0
- package/dist/components/ui/accordion.js +19 -0
- package/dist/components/ui/accordion.js.map +1 -0
- package/dist/components/ui/alert-dialog.d.ts +19 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog.js +43 -0
- package/dist/components/ui/alert-dialog.js.map +1 -0
- package/dist/components/ui/alert.d.ts +11 -0
- package/dist/components/ui/alert.d.ts.map +1 -0
- package/dist/components/ui/alert.js +28 -0
- package/dist/components/ui/alert.js.map +1 -0
- package/dist/components/ui/aspect-ratio.d.ts +4 -0
- package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
- package/dist/components/ui/aspect-ratio.js +8 -0
- package/dist/components/ui/aspect-ratio.js.map +1 -0
- package/dist/components/ui/avatar.d.ts +12 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/avatar.js +24 -0
- package/dist/components/ui/avatar.js.map +1 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/badge.js +25 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/breadcrumb.d.ts +12 -0
- package/dist/components/ui/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb.js +28 -0
- package/dist/components/ui/breadcrumb.js.map +1 -0
- package/dist/components/ui/button.d.ts +11 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +36 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/calendar.d.ts +11 -0
- package/dist/components/ui/calendar.d.ts.map +1 -0
- package/dist/components/ui/calendar.js +77 -0
- package/dist/components/ui/calendar.js.map +1 -0
- package/dist/components/ui/card.d.ts +12 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +25 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/carousel.d.ts +29 -0
- package/dist/components/ui/carousel.d.ts.map +1 -0
- package/dist/components/ui/carousel.js +92 -0
- package/dist/components/ui/carousel.js.map +1 -0
- package/dist/components/ui/chart.d.ts +45 -0
- package/dist/components/ui/chart.d.ts.map +1 -0
- package/dist/components/ui/chart.js +133 -0
- package/dist/components/ui/chart.js.map +1 -0
- package/dist/components/ui/checkbox.d.ts +5 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/checkbox.js +10 -0
- package/dist/components/ui/checkbox.js.map +1 -0
- package/dist/components/ui/collapsible.d.ts +6 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/collapsible.js +14 -0
- package/dist/components/ui/collapsible.js.map +1 -0
- package/dist/components/ui/command.d.ts +19 -0
- package/dist/components/ui/command.d.ts.map +1 -0
- package/dist/components/ui/command.js +36 -0
- package/dist/components/ui/command.js.map +1 -0
- package/dist/components/ui/context-menu.d.ts +32 -0
- package/dist/components/ui/context-menu.d.ts.map +1 -0
- package/dist/components/ui/context-menu.js +52 -0
- package/dist/components/ui/context-menu.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +18 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog.js +38 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/drawer.d.ts +14 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/drawer.js +36 -0
- package/dist/components/ui/drawer.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +30 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +52 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/form.d.ts +25 -0
- package/dist/components/ui/form.d.ts.map +1 -0
- package/dist/components/ui/form.js +60 -0
- package/dist/components/ui/form.js.map +1 -0
- package/dist/components/ui/hover-card.d.ts +7 -0
- package/dist/components/ui/hover-card.d.ts.map +1 -0
- package/dist/components/ui/hover-card.js +15 -0
- package/dist/components/ui/hover-card.js.map +1 -0
- package/dist/components/ui/input-group.d.ts +17 -0
- package/dist/components/ui/input-group.d.ts.map +1 -0
- package/dist/components/ui/input-group.js +58 -0
- package/dist/components/ui/input-group.js.map +1 -0
- package/dist/components/ui/input-otp.d.ts +12 -0
- package/dist/components/ui/input-otp.d.ts.map +1 -0
- package/dist/components/ui/input-otp.js +22 -0
- package/dist/components/ui/input-otp.js.map +1 -0
- package/dist/components/ui/input.d.ts +4 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +7 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/kbd.d.ts +4 -0
- package/dist/components/ui/kbd.d.ts.map +1 -0
- package/dist/components/ui/kbd.js +10 -0
- package/dist/components/ui/kbd.js.map +1 -0
- package/dist/components/ui/label.d.ts +5 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.js +9 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/menubar.d.ts +31 -0
- package/dist/components/ui/menubar.d.ts.map +1 -0
- package/dist/components/ui/menubar.js +55 -0
- package/dist/components/ui/menubar.js.map +1 -0
- package/dist/components/ui/navigation-menu.d.ts +15 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -0
- package/dist/components/ui/navigation-menu.js +32 -0
- package/dist/components/ui/navigation-menu.js.map +1 -0
- package/dist/components/ui/pagination.d.ts +18 -0
- package/dist/components/ui/pagination.d.ts.map +1 -0
- package/dist/components/ui/pagination.js +27 -0
- package/dist/components/ui/pagination.js.map +1 -0
- package/dist/components/ui/popover.d.ts +11 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/popover.js +27 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/progress.d.ts +5 -0
- package/dist/components/ui/progress.d.ts.map +1 -0
- package/dist/components/ui/progress.js +9 -0
- package/dist/components/ui/progress.js.map +1 -0
- package/dist/components/ui/radio-group.d.ts +6 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -0
- package/dist/components/ui/radio-group.js +12 -0
- package/dist/components/ui/radio-group.js.map +1 -0
- package/dist/components/ui/resizable.d.ts +8 -0
- package/dist/components/ui/resizable.d.ts.map +1 -0
- package/dist/components/ui/resizable.js +15 -0
- package/dist/components/ui/resizable.js.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +6 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.js +12 -0
- package/dist/components/ui/scroll-area.js.map +1 -0
- package/dist/components/ui/select.d.ts +16 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/select.js +37 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/separator.d.ts +5 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/separator.js +9 -0
- package/dist/components/ui/separator.js.map +1 -0
- package/dist/components/ui/sheet.d.ts +15 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sheet.js +38 -0
- package/dist/components/ui/sheet.js.map +1 -0
- package/dist/components/ui/sidebar.d.ts +70 -0
- package/dist/components/ui/sidebar.d.ts.map +1 -0
- package/dist/components/ui/sidebar.js +207 -0
- package/dist/components/ui/sidebar.js.map +1 -0
- package/dist/components/ui/skeleton.d.ts +3 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeleton.js +7 -0
- package/dist/components/ui/skeleton.js.map +1 -0
- package/dist/components/ui/slider.d.ts +5 -0
- package/dist/components/ui/slider.d.ts.map +1 -0
- package/dist/components/ui/slider.js +15 -0
- package/dist/components/ui/slider.js.map +1 -0
- package/dist/components/ui/sonner.d.ts +4 -0
- package/dist/components/ui/sonner.d.ts.map +1 -0
- package/dist/components/ui/sonner.js +26 -0
- package/dist/components/ui/sonner.js.map +1 -0
- package/dist/components/ui/switch.d.ts +7 -0
- package/dist/components/ui/switch.d.ts.map +1 -0
- package/dist/components/ui/switch.js +9 -0
- package/dist/components/ui/switch.js.map +1 -0
- package/dist/components/ui/table.d.ts +11 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/table.js +29 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +12 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +30 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.d.ts +4 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/textarea.js +7 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/toggle-group.d.ts +11 -0
- package/dist/components/ui/toggle-group.d.ts.map +1 -0
- package/dist/components/ui/toggle-group.js +24 -0
- package/dist/components/ui/toggle-group.js.map +1 -0
- package/dist/components/ui/toggle.d.ts +10 -0
- package/dist/components/ui/toggle.d.ts.map +1 -0
- package/dist/components/ui/toggle.js +27 -0
- package/dist/components/ui/toggle.js.map +1 -0
- package/dist/components/ui/tooltip.d.ts +8 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components/ui/tooltip.js +18 -0
- package/dist/components/ui/tooltip.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +16 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +57 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/styles.css +240 -0
- package/package.json +67 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { flexRender, getCoreRowModel, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, useReactTable, } from "@tanstack/react-table";
|
|
5
|
+
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "../../components/ui/table.js";
|
|
6
|
+
import { DataTablePagination } from "./data-table-pagination.js";
|
|
7
|
+
import { cn } from "../../lib/utils.js";
|
|
8
|
+
/**
|
|
9
|
+
* Generic TanStack-powered table: owns sorting / filtering / visibility /
|
|
10
|
+
* selection / pagination internally and renders the shadcn table shell +
|
|
11
|
+
* pagination. Pass pre-filtered `data` (e.g. from a store) and `columns`
|
|
12
|
+
* built with the shared cell helpers. Per-column `meta.headerClassName` /
|
|
13
|
+
* `meta.cellClassName` preserve widths and responsive hiding. Provide
|
|
14
|
+
* `footer` to swap the built-in pagination for a bespoke one.
|
|
15
|
+
*/
|
|
16
|
+
export function DataTable({ columns, data, toolbar, footer, enablePagination = true, paginationVariant = "full", pageSize = 8, pageSizeOptions, initialColumnVisibility, emptyMessage = "No results.", getRowId, className, tableClassName, headerRowClassName = "bg-muted/50", headerCellClassName = "font-medium text-muted-foreground", onRowSelectionChange, onRowClick, }) {
|
|
17
|
+
const [sorting, setSorting] = React.useState([]);
|
|
18
|
+
const [columnFilters, setColumnFilters] = React.useState([]);
|
|
19
|
+
const [columnVisibility, setColumnVisibility] = React.useState(initialColumnVisibility ?? {});
|
|
20
|
+
const [rowSelection, setRowSelection] = React.useState({});
|
|
21
|
+
React.useEffect(() => {
|
|
22
|
+
onRowSelectionChange?.(rowSelection);
|
|
23
|
+
}, [rowSelection, onRowSelectionChange]);
|
|
24
|
+
const table = useReactTable({
|
|
25
|
+
data,
|
|
26
|
+
columns,
|
|
27
|
+
getRowId,
|
|
28
|
+
onSortingChange: setSorting,
|
|
29
|
+
onColumnFiltersChange: setColumnFilters,
|
|
30
|
+
onColumnVisibilityChange: setColumnVisibility,
|
|
31
|
+
onRowSelectionChange: setRowSelection,
|
|
32
|
+
getCoreRowModel: getCoreRowModel(),
|
|
33
|
+
getSortedRowModel: getSortedRowModel(),
|
|
34
|
+
getFilteredRowModel: getFilteredRowModel(),
|
|
35
|
+
getPaginationRowModel: enablePagination
|
|
36
|
+
? getPaginationRowModel()
|
|
37
|
+
: undefined,
|
|
38
|
+
initialState: { pagination: { pageSize } },
|
|
39
|
+
state: { sorting, columnFilters, columnVisibility, rowSelection },
|
|
40
|
+
});
|
|
41
|
+
return (_jsxs("div", { className: cn("rounded-xl border border-border bg-card", className), children: [toolbar?.(table), _jsx("div", { className: "overflow-x-auto", children: _jsxs(Table, { className: tableClassName, children: [_jsx(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => (_jsx(TableRow, { className: headerRowClassName, children: headerGroup.headers.map((header) => (_jsx(TableHead, { className: cn(headerCellClassName, header.column.columnDef.meta?.headerClassName), children: header.isPlaceholder
|
|
42
|
+
? null
|
|
43
|
+
: flexRender(header.column.columnDef.header, header.getContext()) }, header.id))) }, headerGroup.id))) }), _jsx(TableBody, { children: table.getRowModel().rows?.length ? (table.getRowModel().rows.map((row) => (_jsx(TableRow, { "data-state": row.getIsSelected() && "selected", className: cn(onRowClick && "cursor-pointer hover:bg-muted/50"), onClick: onRowClick
|
|
44
|
+
? (e) => {
|
|
45
|
+
// Não abre quando o clique foi num elemento interativo
|
|
46
|
+
// (botão de ação, link, checkbox de seleção, menu…).
|
|
47
|
+
if (e.target.closest('button, a, input, label, [role="checkbox"], [role="menuitem"], [data-no-row-click]')) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
onRowClick(row.original);
|
|
51
|
+
}
|
|
52
|
+
: undefined, children: row.getVisibleCells().map((cell) => (_jsx(TableCell, { className: cell.column.columnDef.meta?.cellClassName, children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id))) }, row.id)))) : (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: columns.length, className: "h-24 text-center", children: emptyMessage }) })) })] }) }), footer
|
|
53
|
+
? footer(table)
|
|
54
|
+
: enablePagination && (_jsx(DataTablePagination, { table: table, variant: paginationVariant, pageSizeOptions: pageSizeOptions }))] }));
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=data-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table.js","sourceRoot":"","sources":["../../../src/components/shared/data-table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
interface EmptyStateProps {
|
|
3
|
+
/** Lucide icon, or any element (e.g. an emoji span). */
|
|
4
|
+
icon?: React.ElementType;
|
|
5
|
+
emoji?: React.ReactNode;
|
|
6
|
+
title: React.ReactNode;
|
|
7
|
+
description?: React.ReactNode;
|
|
8
|
+
action?: React.ReactNode;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
/** Centered "no data" block: icon/emoji + title + optional description + action. */
|
|
12
|
+
export declare function EmptyState({ icon: Icon, emoji, title, description, action, className, }: EmptyStateProps): React.JSX.Element;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=empty-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-state.d.ts","sourceRoot":"","sources":["../../../src/components/shared/empty-state.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,UAAU,eAAe;IACvB,wDAAwD;IACxD,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,EACzB,IAAI,EAAE,IAAI,EACV,KAAK,EACL,KAAK,EACL,WAAW,EACX,MAAM,EACN,SAAS,GACV,EAAE,eAAe,qBAwBjB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../../lib/utils.js";
|
|
3
|
+
/** Centered "no data" block: icon/emoji + title + optional description + action. */
|
|
4
|
+
export function EmptyState({ icon: Icon, emoji, title, description, action, className, }) {
|
|
5
|
+
return (_jsxs("div", { className: cn("flex flex-col items-center justify-center gap-3 px-6 py-16 text-center", className), children: [emoji ? (_jsx("span", { className: "text-4xl", children: emoji })) : (Icon && (_jsx("div", { className: "flex size-12 items-center justify-center rounded-full bg-muted text-muted-foreground", children: _jsx(Icon, { className: "size-6" }) }))), _jsx("p", { className: "font-medium text-foreground", children: title }), description && (_jsx("p", { className: "max-w-sm text-sm text-muted-foreground", children: description })), action] }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=empty-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-state.js","sourceRoot":"","sources":["../../../src/components/shared/empty-state.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAYjC,oFAAoF;AACpF,MAAM,UAAU,UAAU,CAAC,EACzB,IAAI,EAAE,IAAI,EACV,KAAK,EACL,KAAK,EACL,WAAW,EACX,MAAM,EACN,SAAS,GACO;IAChB,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,wEAAwE,EACxE,SAAS,CACV,aAEA,KAAK,CAAC,CAAC,CAAC,CACP,eAAM,SAAS,EAAC,UAAU,YAAE,KAAK,GAAQ,CAC1C,CAAC,CAAC,CAAC,CACF,IAAI,IAAI,CACN,cAAK,SAAS,EAAC,sFAAsF,YACnG,KAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,GAAG,GACvB,CACP,CACF,EACD,YAAG,SAAS,EAAC,6BAA6B,YAAE,KAAK,GAAK,EACrD,WAAW,IAAI,CACd,YAAG,SAAS,EAAC,wCAAwC,YAAE,WAAW,GAAK,CACxE,EACA,MAAM,IACH,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** The Square UI GitHub mark, used across every template header. */
|
|
2
|
+
export declare function GithubIcon({ className }: {
|
|
3
|
+
className?: string;
|
|
4
|
+
}): import("react").JSX.Element;
|
|
5
|
+
interface GithubLinkProps {
|
|
6
|
+
/** Square UI template slug (appended to the templates URL). */
|
|
7
|
+
template?: string;
|
|
8
|
+
/** Full href override (takes precedence over `template`). */
|
|
9
|
+
href?: string;
|
|
10
|
+
className?: string;
|
|
11
|
+
iconClassName?: string;
|
|
12
|
+
}
|
|
13
|
+
/** Ghost icon button linking to the template's source on Square UI's GitHub. */
|
|
14
|
+
export declare function GithubLink({ template, href, className, iconClassName, }: GithubLinkProps): import("react").JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=github-link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-link.d.ts","sourceRoot":"","sources":["../../../src/components/shared/github-link.tsx"],"names":[],"mappings":"AAMA,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAY/D;AAED,UAAU,eAAe;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,aAAa,GACd,EAAE,eAAe,+BAiBjB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Button } from "../../components/ui/button.js";
|
|
3
|
+
import { cn } from "../../lib/utils.js";
|
|
4
|
+
const SQUARE_UI_BASE = "https://github.com/ln-dev7/square-ui/tree/master/templates";
|
|
5
|
+
/** The Square UI GitHub mark, used across every template header. */
|
|
6
|
+
export function GithubIcon({ className }) {
|
|
7
|
+
return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", className: className, "aria-hidden": "true", children: _jsx("path", { d: "M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" }) }));
|
|
8
|
+
}
|
|
9
|
+
/** Ghost icon button linking to the template's source on Square UI's GitHub. */
|
|
10
|
+
export function GithubLink({ template, href, className, iconClassName, }) {
|
|
11
|
+
const url = href ??
|
|
12
|
+
(template ? `${SQUARE_UI_BASE}/${template}` : "https://github.com/ln-dev7/square-ui");
|
|
13
|
+
return (_jsx(Button, { variant: "ghost", size: "icon", className: cn("hidden sm:flex", className), asChild: true, children: _jsx("a", { href: url, target: "_blank", rel: "noopener noreferrer", children: _jsx(GithubIcon, { className: cn("size-5", iconClassName) }) }) }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=github-link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-link.js","sourceRoot":"","sources":["../../../src/components/shared/github-link.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,MAAM,cAAc,GAClB,4DAA4D,CAAC;AAE/D,oEAAoE;AACpE,MAAM,UAAU,UAAU,CAAC,EAAE,SAAS,EAA0B;IAC9D,OAAO,CACL,cACE,KAAK,EAAC,4BAA4B,EAClC,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,cAAc,EACnB,SAAS,EAAE,SAAS,iBACR,MAAM,YAElB,eAAM,CAAC,EAAC,2sBAA2sB,GAAG,GACltB,CACP,CAAC;AACJ,CAAC;AAWD,gFAAgF;AAChF,MAAM,UAAU,UAAU,CAAC,EACzB,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,aAAa,GACG;IAChB,MAAM,GAAG,GACP,IAAI;QACJ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,cAAc,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC;IAExF,OAAO,CACL,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAC1C,OAAO,kBAEP,YAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,YACrD,KAAC,UAAU,IAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAI,GACpD,GACG,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
interface GradientDefProps {
|
|
3
|
+
id: string;
|
|
4
|
+
color: string;
|
|
5
|
+
/** Top stop opacity (default 1). */
|
|
6
|
+
from?: number;
|
|
7
|
+
/** Bottom stop opacity (default 0.6). */
|
|
8
|
+
to?: number;
|
|
9
|
+
/** Override stop offsets if needed. */
|
|
10
|
+
fromOffset?: string;
|
|
11
|
+
toOffset?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A vertical `<linearGradient>` for Recharts area/bar fills.
|
|
15
|
+
* Render inside a `<defs>` element and reference via `url(#id)`.
|
|
16
|
+
*/
|
|
17
|
+
export declare function GradientDef({ id, color, from, to, fromOffset, toOffset, }: GradientDefProps): React.JSX.Element;
|
|
18
|
+
/** Convenience: a `<defs>` containing one {@link GradientDef} per entry. */
|
|
19
|
+
export declare function GradientDefs({ gradients, }: {
|
|
20
|
+
gradients: Array<GradientDefProps>;
|
|
21
|
+
}): React.JSX.Element;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=gradient-def.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradient-def.d.ts","sourceRoot":"","sources":["../../../src/components/shared/gradient-def.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAC1B,EAAE,EACF,KAAK,EACL,IAAQ,EACR,EAAQ,EACR,UAAiB,EACjB,QAAiB,GAClB,EAAE,gBAAgB,qBAOlB;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,EAC3B,SAAS,GACV,EAAE;IACD,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;CACpC,qBAQA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* A vertical `<linearGradient>` for Recharts area/bar fills.
|
|
4
|
+
* Render inside a `<defs>` element and reference via `url(#id)`.
|
|
5
|
+
*/
|
|
6
|
+
export function GradientDef({ id, color, from = 1, to = 0.6, fromOffset = "0%", toOffset = "100%", }) {
|
|
7
|
+
return (_jsxs("linearGradient", { id: id, x1: "0", y1: "0", x2: "0", y2: "1", children: [_jsx("stop", { offset: fromOffset, stopColor: color, stopOpacity: from }), _jsx("stop", { offset: toOffset, stopColor: color, stopOpacity: to })] }));
|
|
8
|
+
}
|
|
9
|
+
/** Convenience: a `<defs>` containing one {@link GradientDef} per entry. */
|
|
10
|
+
export function GradientDefs({ gradients, }) {
|
|
11
|
+
return (_jsx("defs", { children: gradients.map((g) => (_jsx(GradientDef, { ...g }, g.id))) }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=gradient-def.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradient-def.js","sourceRoot":"","sources":["../../../src/components/shared/gradient-def.tsx"],"names":[],"mappings":";AAcA;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,EAAE,EACF,KAAK,EACL,IAAI,GAAG,CAAC,EACR,EAAE,GAAG,GAAG,EACR,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,MAAM,GACA;IACjB,OAAO,CACL,0BAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,aACjD,eAAM,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,GAAI,EACjE,eAAM,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAI,IAC9C,CAClB,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,YAAY,CAAC,EAC3B,SAAS,GAGV;IACC,OAAO,CACL,yBACG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,KAAC,WAAW,OAAgB,CAAC,IAAX,CAAC,CAAC,EAAE,CAAW,CAClC,CAAC,GACG,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
interface HeaderActionsMenuProps {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
/** Trigger visibility (defaults to mobile-only, matching the templates). */
|
|
5
|
+
className?: string;
|
|
6
|
+
contentClassName?: string;
|
|
7
|
+
align?: "start" | "center" | "end";
|
|
8
|
+
}
|
|
9
|
+
/** Mobile "⋯" overflow menu trigger used in template headers. */
|
|
10
|
+
export declare function HeaderActionsMenu({ children, className, contentClassName, align, }: HeaderActionsMenuProps): React.JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=header-actions-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-actions-menu.d.ts","sourceRoot":"","sources":["../../../src/components/shared/header-actions-menu.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;CACpC;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,KAAa,GACd,EAAE,sBAAsB,qBAiBxB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { MoreVertical } from "lucide-react";
|
|
4
|
+
import { Button } from "../../components/ui/button.js";
|
|
5
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger, } from "../../components/ui/dropdown-menu.js";
|
|
6
|
+
import { cn } from "../../lib/utils.js";
|
|
7
|
+
/** Mobile "⋯" overflow menu trigger used in template headers. */
|
|
8
|
+
export function HeaderActionsMenu({ children, className, contentClassName, align = "end", }) {
|
|
9
|
+
return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon", className: cn("h-8 w-8 sm:hidden", className), children: _jsx(MoreVertical, { className: "size-4" }) }) }), _jsx(DropdownMenuContent, { align: align, className: cn("w-40", contentClassName), children: children })] }));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=header-actions-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-actions-menu.js","sourceRoot":"","sources":["../../../src/components/shared/header-actions-menu.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAUjC,iEAAiE;AACjE,MAAM,UAAU,iBAAiB,CAAC,EAChC,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,KAAK,GAAG,KAAK,GACU;IACvB,OAAO,CACL,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC,YAE7C,KAAC,YAAY,IAAC,SAAS,EAAC,QAAQ,GAAG,GAC5B,GACW,EACtB,KAAC,mBAAmB,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,YACvE,QAAQ,GACW,IACT,CAChB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface HeaderSearchProps {
|
|
2
|
+
placeholder?: string;
|
|
3
|
+
value?: string;
|
|
4
|
+
onChange?: (value: string) => void;
|
|
5
|
+
/** Override the outer wrapper (visibility / width). */
|
|
6
|
+
className?: string;
|
|
7
|
+
inputClassName?: string;
|
|
8
|
+
}
|
|
9
|
+
/** The ⌘K search box used in template headers (search icon + input + kbd badge). */
|
|
10
|
+
export declare function HeaderSearch({ placeholder, value, onChange, className, inputClassName, }: HeaderSearchProps): import("react").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=header-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-search.d.ts","sourceRoot":"","sources":["../../../src/components/shared/header-search.tsx"],"names":[],"mappings":"AAMA,UAAU,iBAAiB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,EAC3B,WAAkC,EAClC,KAAK,EACL,QAAQ,EACR,SAAS,EACT,cAAc,GACf,EAAE,iBAAiB,+BAmBnB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Search, Command } from "lucide-react";
|
|
4
|
+
import { Input } from "../../components/ui/input.js";
|
|
5
|
+
import { cn } from "../../lib/utils.js";
|
|
6
|
+
/** The ⌘K search box used in template headers (search icon + input + kbd badge). */
|
|
7
|
+
export function HeaderSearch({ placeholder = "Search Anything...", value, onChange, className, inputClassName, }) {
|
|
8
|
+
return (_jsxs("div", { className: cn("relative hidden md:block", className), children: [_jsx(Search, { className: "absolute left-3 top-1/2 size-5 -translate-y-1/2 text-muted-foreground" }), _jsx(Input, { placeholder: placeholder, value: value, onChange: onChange ? (e) => onChange(e.target.value) : undefined, className: cn("h-9 w-[180px] border bg-card pl-10 pr-14 lg:w-[220px]", inputClassName) }), _jsxs("div", { className: "absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-0.5 rounded bg-muted px-1 py-0.5 text-xs text-muted-foreground", children: [_jsx(Command, { className: "size-3" }), _jsx("span", { children: "K" })] })] }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=header-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-search.js","sourceRoot":"","sources":["../../../src/components/shared/header-search.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAWjC,oFAAoF;AACpF,MAAM,UAAU,YAAY,CAAC,EAC3B,WAAW,GAAG,oBAAoB,EAClC,KAAK,EACL,QAAQ,EACR,SAAS,EACT,cAAc,GACI;IAClB,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,SAAS,CAAC,aACvD,KAAC,MAAM,IAAC,SAAS,EAAC,uEAAuE,GAAG,EAC5F,KAAC,KAAK,IACJ,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAChE,SAAS,EAAE,EAAE,CACX,uDAAuD,EACvD,cAAc,CACf,GACD,EACF,eAAK,SAAS,EAAC,gIAAgI,aAC7I,KAAC,OAAO,IAAC,SAAS,EAAC,QAAQ,GAAG,EAC9B,+BAAc,IACV,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export { PageHeader } from "./page-header.js";
|
|
2
|
+
export { GithubLink, GithubIcon } from "./github-link.js";
|
|
3
|
+
export { HeaderSearch } from "./header-search.js";
|
|
4
|
+
export { HeaderActionsMenu } from "./header-actions-menu.js";
|
|
5
|
+
export { AvatarStack, type AvatarStackItem } from "./avatar-stack.js";
|
|
6
|
+
export { NotificationsMenu, type NotificationItem } from "./notifications-menu.js";
|
|
7
|
+
export { MessagesMenu, type MessageItem } from "./messages-menu.js";
|
|
8
|
+
export { StatCard, type StatData, type StatTrend } from "./stat-card.js";
|
|
9
|
+
export { StatsGrid } from "./stats-grid.js";
|
|
10
|
+
export { StatusBadge, toneSoft, toneBordered, type StatusTone, } from "./status-badge.js";
|
|
11
|
+
export { AvatarWithName } from "./avatar-with-name.js";
|
|
12
|
+
export { EmptyState } from "./empty-state.js";
|
|
13
|
+
export { ProgressBar } from "./progress-bar.js";
|
|
14
|
+
export { SectionCard } from "./section-card.js";
|
|
15
|
+
export { ChartCard } from "./chart-card.js";
|
|
16
|
+
export { GradientDef, GradientDefs } from "./gradient-def.js";
|
|
17
|
+
export { SeriesChart, type ChartSeries, type SeriesChartType, } from "./series-chart.js";
|
|
18
|
+
export { DataTable } from "./data-table.js";
|
|
19
|
+
export { DataTableColumnManager } from "./data-table-column-manager.js";
|
|
20
|
+
export { DataTablePagination } from "./data-table-pagination.js";
|
|
21
|
+
export { TableToolbar, TableSearch } from "./data-table-toolbar.js";
|
|
22
|
+
export { selectColumn, RowActions, CurrencyCell, MutedCell, ProgressCell, type RowAction, } from "./data-table-cells.js";
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/shared/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGjE,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACL,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,KAAK,UAAU,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACL,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,KAAK,SAAS,GACf,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Header / chrome
|
|
2
|
+
export { PageHeader } from "./page-header.js";
|
|
3
|
+
export { GithubLink, GithubIcon } from "./github-link.js";
|
|
4
|
+
export { HeaderSearch } from "./header-search.js";
|
|
5
|
+
export { HeaderActionsMenu } from "./header-actions-menu.js";
|
|
6
|
+
export { AvatarStack } from "./avatar-stack.js";
|
|
7
|
+
export { NotificationsMenu } from "./notifications-menu.js";
|
|
8
|
+
export { MessagesMenu } from "./messages-menu.js";
|
|
9
|
+
// Data display
|
|
10
|
+
export { StatCard } from "./stat-card.js";
|
|
11
|
+
export { StatsGrid } from "./stats-grid.js";
|
|
12
|
+
export { StatusBadge, toneSoft, toneBordered, } from "./status-badge.js";
|
|
13
|
+
export { AvatarWithName } from "./avatar-with-name.js";
|
|
14
|
+
export { EmptyState } from "./empty-state.js";
|
|
15
|
+
export { ProgressBar } from "./progress-bar.js";
|
|
16
|
+
export { SectionCard } from "./section-card.js";
|
|
17
|
+
// Charts
|
|
18
|
+
export { ChartCard } from "./chart-card.js";
|
|
19
|
+
export { GradientDef, GradientDefs } from "./gradient-def.js";
|
|
20
|
+
export { SeriesChart, } from "./series-chart.js";
|
|
21
|
+
// Tables
|
|
22
|
+
export { DataTable } from "./data-table.js";
|
|
23
|
+
export { DataTableColumnManager } from "./data-table-column-manager.js";
|
|
24
|
+
export { DataTablePagination } from "./data-table-pagination.js";
|
|
25
|
+
export { TableToolbar, TableSearch } from "./data-table-toolbar.js";
|
|
26
|
+
export { selectColumn, RowActions, CurrencyCell, MutedCell, ProgressCell, } from "./data-table-cells.js";
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/shared/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAwB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAyB,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAoB,MAAM,iBAAiB,CAAC;AAEjE,eAAe;AACf,OAAO,EAAE,QAAQ,EAAiC,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACL,WAAW,EACX,QAAQ,EACR,YAAY,GAEb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACL,WAAW,GAGZ,MAAM,gBAAgB,CAAC;AAExB,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,SAAS,EACT,YAAY,GAEb,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface MessageItem {
|
|
2
|
+
name: string;
|
|
3
|
+
preview: string;
|
|
4
|
+
time: string;
|
|
5
|
+
avatar?: string;
|
|
6
|
+
fallback?: string;
|
|
7
|
+
unread?: boolean;
|
|
8
|
+
}
|
|
9
|
+
interface MessagesMenuProps {
|
|
10
|
+
items: MessageItem[];
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
/** Message trigger + messages dropdown (avatar + name + time + preview). */
|
|
14
|
+
export declare function MessagesMenu({ items, className }: MessagesMenuProps): import("react").JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=messages-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages-menu.d.ts","sourceRoot":"","sources":["../../../src/components/shared/messages-menu.tsx"],"names":[],"mappings":"AAeA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,iBAAiB,+BA0DnE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { MessageSquare, Settings } from "lucide-react";
|
|
4
|
+
import { Button } from "../../components/ui/button.js";
|
|
5
|
+
import { Avatar, AvatarFallback, AvatarImage } from "../../components/ui/avatar.js";
|
|
6
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "../../components/ui/dropdown-menu.js";
|
|
7
|
+
import { cn } from "../../lib/utils.js";
|
|
8
|
+
/** Message trigger + messages dropdown (avatar + name + time + preview). */
|
|
9
|
+
export function MessagesMenu({ items, className }) {
|
|
10
|
+
return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "outline", size: "icon", className: cn("size-9", className), children: _jsx(MessageSquare, {}) }) }), _jsxs(DropdownMenuContent, { align: "end", className: "w-80", children: [_jsxs(DropdownMenuLabel, { className: "flex items-center justify-between", children: [_jsx("span", { children: "Messages" }), _jsxs(Button, { variant: "ghost", size: "sm", className: "h-auto p-0 text-xs text-muted-foreground hover:text-foreground", children: [_jsx(Settings, { className: "mr-1 size-3.5" }), "Settings"] })] }), _jsx(DropdownMenuSeparator, {}), items.map((m, i) => (_jsxs(DropdownMenuItem, { className: cn("flex cursor-pointer items-start gap-3 p-3", !m.unread && "opacity-60"), children: [_jsxs(Avatar, { className: "mt-0.5 size-8", children: [m.avatar && _jsx(AvatarImage, { src: m.avatar }), _jsx(AvatarFallback, { children: m.fallback ?? m.name.charAt(0) })] }), _jsxs("div", { className: "flex-1 space-y-1", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("p", { className: "text-sm font-medium", children: m.name }), _jsx("span", { className: "text-xs text-muted-foreground", children: m.time })] }), _jsx("p", { className: "line-clamp-2 text-xs text-muted-foreground", children: m.preview })] }), m.unread && (_jsx("span", { className: "mt-2 size-2 rounded-full bg-blue-500" }))] }, i))), _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuItem, { className: "justify-center text-sm text-muted-foreground", children: "View all messages" })] })] }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=messages-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages-menu.js","sourceRoot":"","sources":["../../../src/components/shared/messages-menu.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAgBjC,4EAA4E;AAC5E,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAqB;IAClE,OAAO,CACL,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,YAElC,KAAC,aAAa,KAAG,GACV,GACW,EACtB,MAAC,mBAAmB,IAAC,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,MAAM,aAC/C,MAAC,iBAAiB,IAAC,SAAS,EAAC,mCAAmC,aAC9D,sCAAqB,EACrB,MAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,gEAAgE,aAE1E,KAAC,QAAQ,IAAC,SAAS,EAAC,eAAe,GAAG,gBAE/B,IACS,EACpB,KAAC,qBAAqB,KAAG,EACxB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACnB,MAAC,gBAAgB,IAEf,SAAS,EAAE,EAAE,CACX,2CAA2C,EAC3C,CAAC,CAAC,CAAC,MAAM,IAAI,YAAY,CAC1B,aAED,MAAC,MAAM,IAAC,SAAS,EAAC,eAAe,aAC9B,CAAC,CAAC,MAAM,IAAI,KAAC,WAAW,IAAC,GAAG,EAAE,CAAC,CAAC,MAAM,GAAI,EAC3C,KAAC,cAAc,cAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAkB,IAC1D,EACT,eAAK,SAAS,EAAC,kBAAkB,aAC/B,eAAK,SAAS,EAAC,mCAAmC,aAChD,YAAG,SAAS,EAAC,qBAAqB,YAAE,CAAC,CAAC,IAAI,GAAK,EAC/C,eAAM,SAAS,EAAC,+BAA+B,YAAE,CAAC,CAAC,IAAI,GAAQ,IAC3D,EACN,YAAG,SAAS,EAAC,4CAA4C,YACtD,CAAC,CAAC,OAAO,GACR,IACA,EACL,CAAC,CAAC,MAAM,IAAI,CACX,eAAM,SAAS,EAAC,sCAAsC,GAAG,CAC1D,KArBI,CAAC,CAsBW,CACpB,CAAC,EACF,KAAC,qBAAqB,KAAG,EACzB,KAAC,gBAAgB,IAAC,SAAS,EAAC,8CAA8C,kCAEvD,IACC,IACT,CAChB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface NotificationItem {
|
|
2
|
+
title: string;
|
|
3
|
+
description: string;
|
|
4
|
+
time: string;
|
|
5
|
+
avatar?: string;
|
|
6
|
+
fallback?: string;
|
|
7
|
+
unread?: boolean;
|
|
8
|
+
}
|
|
9
|
+
interface NotificationsMenuProps {
|
|
10
|
+
items: NotificationItem[];
|
|
11
|
+
className?: string;
|
|
12
|
+
/** Show the red unread dot on the trigger. */
|
|
13
|
+
hasUnread?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/** Bell trigger + notifications dropdown (avatar + title + description + time). */
|
|
16
|
+
export declare function NotificationsMenu({ items, className, hasUnread, }: NotificationsMenuProps): import("react").JSX.Element;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=notifications-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications-menu.d.ts","sourceRoot":"","sources":["../../../src/components/shared/notifications-menu.tsx"],"names":[],"mappings":"AAeA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,sBAAsB;IAC9B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,SAAS,EACT,SAAgB,GACjB,EAAE,sBAAsB,+BAwDxB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Bell } from "lucide-react";
|
|
4
|
+
import { Button } from "../../components/ui/button.js";
|
|
5
|
+
import { Avatar, AvatarFallback, AvatarImage } from "../../components/ui/avatar.js";
|
|
6
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "../../components/ui/dropdown-menu.js";
|
|
7
|
+
import { cn } from "../../lib/utils.js";
|
|
8
|
+
/** Bell trigger + notifications dropdown (avatar + title + description + time). */
|
|
9
|
+
export function NotificationsMenu({ items, className, hasUnread = true, }) {
|
|
10
|
+
return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { variant: "outline", size: "icon", className: cn("relative size-9", className), children: [_jsx(Bell, {}), hasUnread && (_jsx("span", { className: "absolute -right-0.5 -top-0.5 size-2.5 rounded-full border-2 border-card bg-rose-500" }))] }) }), _jsxs(DropdownMenuContent, { align: "end", className: "w-80", children: [_jsxs(DropdownMenuLabel, { className: "flex items-center justify-between", children: [_jsx("span", { children: "Notifications" }), _jsx(Button, { variant: "ghost", size: "sm", className: "h-auto p-0 text-xs text-muted-foreground hover:text-foreground", children: "Mark all as read" })] }), _jsx(DropdownMenuSeparator, {}), items.map((n, i) => (_jsxs(DropdownMenuItem, { className: cn("flex cursor-pointer items-start gap-3 p-3", !n.unread && "opacity-60"), children: [_jsxs(Avatar, { className: "mt-0.5 size-8", children: [n.avatar && _jsx(AvatarImage, { src: n.avatar }), _jsx(AvatarFallback, { children: n.fallback ?? n.title.charAt(0) })] }), _jsxs("div", { className: "flex-1 space-y-1", children: [_jsx("p", { className: "text-sm font-medium", children: n.title }), _jsx("p", { className: "text-xs text-muted-foreground", children: n.description }), _jsx("p", { className: "text-xs text-muted-foreground", children: n.time })] }), n.unread && (_jsx("span", { className: "mt-2 size-2 rounded-full bg-blue-500" }))] }, i))), _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuItem, { className: "justify-center text-sm text-muted-foreground", children: "View all notifications" })] })] }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=notifications-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications-menu.js","sourceRoot":"","sources":["../../../src/components/shared/notifications-menu.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAkBjC,mFAAmF;AACnF,MAAM,UAAU,iBAAiB,CAAC,EAChC,KAAK,EACL,SAAS,EACT,SAAS,GAAG,IAAI,GACO;IACvB,OAAO,CACL,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,MAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,aAE3C,KAAC,IAAI,KAAG,EACP,SAAS,IAAI,CACZ,eAAM,SAAS,EAAC,qFAAqF,GAAG,CACzG,IACM,GACW,EACtB,MAAC,mBAAmB,IAAC,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,MAAM,aAC/C,MAAC,iBAAiB,IAAC,SAAS,EAAC,mCAAmC,aAC9D,2CAA0B,EAC1B,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,gEAAgE,iCAGnE,IACS,EACpB,KAAC,qBAAqB,KAAG,EACxB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACnB,MAAC,gBAAgB,IAEf,SAAS,EAAE,EAAE,CACX,2CAA2C,EAC3C,CAAC,CAAC,CAAC,MAAM,IAAI,YAAY,CAC1B,aAED,MAAC,MAAM,IAAC,SAAS,EAAC,eAAe,aAC9B,CAAC,CAAC,MAAM,IAAI,KAAC,WAAW,IAAC,GAAG,EAAE,CAAC,CAAC,MAAM,GAAI,EAC3C,KAAC,cAAc,cAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAkB,IAC3D,EACT,eAAK,SAAS,EAAC,kBAAkB,aAC/B,YAAG,SAAS,EAAC,qBAAqB,YAAE,CAAC,CAAC,KAAK,GAAK,EAChD,YAAG,SAAS,EAAC,+BAA+B,YAAE,CAAC,CAAC,WAAW,GAAK,EAChE,YAAG,SAAS,EAAC,+BAA+B,YAAE,CAAC,CAAC,IAAI,GAAK,IACrD,EACL,CAAC,CAAC,MAAM,IAAI,CACX,eAAM,SAAS,EAAC,sCAAsC,GAAG,CAC1D,KAjBI,CAAC,CAkBW,CACpB,CAAC,EACF,KAAC,qBAAqB,KAAG,EACzB,KAAC,gBAAgB,IAAC,SAAS,EAAC,8CAA8C,uCAEvD,IACC,IACT,CAChB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
interface PageHeaderProps {
|
|
3
|
+
title?: React.ReactNode;
|
|
4
|
+
/** Leading icon (lucide or any component accepting className). */
|
|
5
|
+
icon?: React.ElementType;
|
|
6
|
+
/** Right-side actions (theme toggle, github link, dropdowns, …). */
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
/** Override the whole <header> class (padding / sticky / bg variations). */
|
|
9
|
+
className?: string;
|
|
10
|
+
iconClassName?: string;
|
|
11
|
+
titleClassName?: string;
|
|
12
|
+
triggerClassName?: string;
|
|
13
|
+
leftClassName?: string;
|
|
14
|
+
actionsClassName?: string;
|
|
15
|
+
/** Replace the default left block (icon + title) entirely. */
|
|
16
|
+
left?: React.ReactNode;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The shared page-header shell used by every template:
|
|
20
|
+
* SidebarTrigger + leading icon + title on the left, actions on the right.
|
|
21
|
+
* Defaults reproduce the most common Square UI header; override via class props.
|
|
22
|
+
*/
|
|
23
|
+
export declare function PageHeader({ title, icon: Icon, children, className, iconClassName, titleClassName, triggerClassName, leftClassName, actionsClassName, left, }: PageHeaderProps): React.JSX.Element;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=page-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-header.d.ts","sourceRoot":"","sources":["../../../src/components/shared/page-header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,kEAAkE;IAClE,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACzB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAKD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,IAAI,EAAE,IAAI,EACV,QAAQ,EACR,SAAS,EACT,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,IAAI,GACL,EAAE,eAAe,qBAwCjB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { SidebarTrigger } from "../../components/ui/sidebar.js";
|
|
3
|
+
import { cn } from "../../lib/utils.js";
|
|
4
|
+
const DEFAULT_HEADER = "flex items-center gap-2 sm:gap-3 px-3 sm:px-6 py-3 sm:py-4 border-b bg-card sticky top-0 z-10 w-full shrink-0";
|
|
5
|
+
/**
|
|
6
|
+
* The shared page-header shell used by every template:
|
|
7
|
+
* SidebarTrigger + leading icon + title on the left, actions on the right.
|
|
8
|
+
* Defaults reproduce the most common Square UI header; override via class props.
|
|
9
|
+
*/
|
|
10
|
+
export function PageHeader({ title, icon: Icon, children, className, iconClassName, titleClassName, triggerClassName, leftClassName, actionsClassName, left, }) {
|
|
11
|
+
return (_jsxs("header", { className: cn(DEFAULT_HEADER, className), children: [_jsxs("div", { className: cn("flex min-w-0 flex-1 items-center gap-2 sm:gap-3", leftClassName), children: [_jsx(SidebarTrigger, { className: cn("-ml-1 sm:-ml-2", triggerClassName) }), left ?? (_jsxs(_Fragment, { children: [Icon && (_jsx(Icon, { className: cn("size-5 shrink-0 text-muted-foreground", iconClassName) })), title && (_jsx("h1", { className: cn("truncate text-base font-medium sm:text-lg", titleClassName), children: title }))] }))] }), children && (_jsx("div", { className: cn("flex items-center gap-2", actionsClassName), children: children }))] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=page-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-header.js","sourceRoot":"","sources":["../../../src/components/shared/page-header.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAmBjC,MAAM,cAAc,GAClB,+GAA+G,CAAC;AAElH;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,IAAI,EAAE,IAAI,EACV,QAAQ,EACR,SAAS,EACT,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,IAAI,GACY;IAChB,OAAO,CACL,kBAAQ,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC,aAC9C,eACE,SAAS,EAAE,EAAE,CACX,iDAAiD,EACjD,aAAa,CACd,aAED,KAAC,cAAc,IAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,GAAI,EACpE,IAAI,IAAI,CACP,8BACG,IAAI,IAAI,CACP,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,uCAAuC,EACvC,aAAa,CACd,GACD,CACH,EACA,KAAK,IAAI,CACR,aACE,SAAS,EAAE,EAAE,CACX,2CAA2C,EAC3C,cAAc,CACf,YAEA,KAAK,GACH,CACN,IACA,CACJ,IACG,EACL,QAAQ,IAAI,CACX,cAAK,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,YAC5D,QAAQ,GACL,CACP,IACM,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
interface ProgressBarProps {
|
|
3
|
+
/** 0–100 */
|
|
4
|
+
value: number;
|
|
5
|
+
/** Inline fill color (CSS color). Falls back to the primary token. */
|
|
6
|
+
color?: string;
|
|
7
|
+
/** Extra fill classes (e.g. a gradient) when not using `color`. */
|
|
8
|
+
fillClassName?: string;
|
|
9
|
+
className?: string;
|
|
10
|
+
/** Track height; defaults to a thin 1.5 bar. */
|
|
11
|
+
height?: string;
|
|
12
|
+
}
|
|
13
|
+
/** Lightweight track + fill progress bar (the inline bars used in tables/panels). */
|
|
14
|
+
export declare function ProgressBar({ value, color, fillClassName, className, height, }: ProgressBarProps): React.JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=progress-bar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-bar.d.ts","sourceRoot":"","sources":["../../../src/components/shared/progress-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,UAAU,gBAAgB;IACxB,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,aAAa,EACb,SAAS,EACT,MAAgB,GACjB,EAAE,gBAAgB,qBAoBlB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../../lib/utils.js";
|
|
3
|
+
/** Lightweight track + fill progress bar (the inline bars used in tables/panels). */
|
|
4
|
+
export function ProgressBar({ value, color, fillClassName, className, height = "h-1.5", }) {
|
|
5
|
+
const pct = Math.max(0, Math.min(100, value));
|
|
6
|
+
return (_jsx("div", { className: cn("w-full overflow-hidden rounded-full bg-muted", height, className), children: _jsx("div", { className: cn("h-full rounded-full transition-all", !color && !fillClassName && "bg-primary", fillClassName), style: { width: `${pct}%`, backgroundColor: color } }) }));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=progress-bar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-bar.js","sourceRoot":"","sources":["../../../src/components/shared/progress-bar.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAcjC,qFAAqF;AACrF,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,aAAa,EACb,SAAS,EACT,MAAM,GAAG,OAAO,GACC;IACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9C,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CACX,8CAA8C,EAC9C,MAAM,EACN,SAAS,CACV,YAED,cACE,SAAS,EAAE,EAAE,CACX,oCAAoC,EACpC,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,YAAY,EACxC,aAAa,CACd,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,GACnD,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
interface SectionCardProps {
|
|
3
|
+
title?: React.ReactNode;
|
|
4
|
+
description?: React.ReactNode;
|
|
5
|
+
icon?: React.ElementType;
|
|
6
|
+
/** Right-side header actions (menu, button, badge…). */
|
|
7
|
+
actions?: React.ReactNode;
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
className?: string;
|
|
10
|
+
headerClassName?: string;
|
|
11
|
+
bodyClassName?: string;
|
|
12
|
+
/** Render the header divider. */
|
|
13
|
+
divided?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/** A bordered card with an optional header row (icon + title + actions) and body. */
|
|
16
|
+
export declare function SectionCard({ title, description, icon: Icon, actions, children, className, headerClassName, bodyClassName, divided, }: SectionCardProps): React.JSX.Element;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=section-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-card.d.ts","sourceRoot":"","sources":["../../../src/components/shared/section-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACzB,wDAAwD;IACxD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,IAAI,EAAE,IAAI,EACV,OAAO,EACP,QAAQ,EACR,SAAS,EACT,eAAe,EACf,aAAa,EACb,OAAc,GACf,EAAE,gBAAgB,qBAsClB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../../lib/utils.js";
|
|
3
|
+
/** A bordered card with an optional header row (icon + title + actions) and body. */
|
|
4
|
+
export function SectionCard({ title, description, icon: Icon, actions, children, className, headerClassName, bodyClassName, divided = true, }) {
|
|
5
|
+
const hasHeader = title || actions || description;
|
|
6
|
+
return (_jsxs("div", { className: cn("rounded-xl border bg-card text-card-foreground", className), children: [hasHeader && (_jsxs("div", { className: cn("flex items-center justify-between gap-3 p-4", divided && "border-b border-border/50", headerClassName), children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [Icon && _jsx(Icon, { className: "size-4 shrink-0 text-muted-foreground" }), _jsxs("div", { className: "min-w-0", children: [title && (_jsx("h3", { className: "truncate text-sm font-medium sm:text-base", children: title })), description && (_jsx("p", { className: "truncate text-xs text-muted-foreground", children: description }))] })] }), actions] })), _jsx("div", { className: cn("p-4", bodyClassName), children: children })] }));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=section-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-card.js","sourceRoot":"","sources":["../../../src/components/shared/section-card.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAgBjC,qFAAqF;AACrF,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,IAAI,EAAE,IAAI,EACV,OAAO,EACP,QAAQ,EACR,SAAS,EACT,eAAe,EACf,aAAa,EACb,OAAO,GAAG,IAAI,GACG;IACjB,MAAM,SAAS,GAAG,KAAK,IAAI,OAAO,IAAI,WAAW,CAAC;IAClD,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,gDAAgD,EAChD,SAAS,CACV,aAEA,SAAS,IAAI,CACZ,eACE,SAAS,EAAE,EAAE,CACX,6CAA6C,EAC7C,OAAO,IAAI,2BAA2B,EACtC,eAAe,CAChB,aAED,eAAK,SAAS,EAAC,iCAAiC,aAC7C,IAAI,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,uCAAuC,GAAG,EACnE,eAAK,SAAS,EAAC,SAAS,aACrB,KAAK,IAAI,CACR,aAAI,SAAS,EAAC,2CAA2C,YACtD,KAAK,GACH,CACN,EACA,WAAW,IAAI,CACd,YAAG,SAAS,EAAC,wCAAwC,YAClD,WAAW,GACV,CACL,IACG,IACF,EACL,OAAO,IACJ,CACP,EACD,cAAK,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,YAAG,QAAQ,GAAO,IACtD,CACP,CAAC;AACJ,CAAC"}
|