@airdraft/react-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/CHANGELOG.md +5 -0
- package/dist/AcceptInviteForm.d.ts +22 -0
- package/dist/AcceptInviteForm.d.ts.map +1 -0
- package/dist/AcceptInviteForm.js +52 -0
- package/dist/AcceptInviteForm.js.map +1 -0
- package/dist/AuditLogViewer.d.ts +42 -0
- package/dist/AuditLogViewer.d.ts.map +1 -0
- package/dist/AuditLogViewer.js +95 -0
- package/dist/AuditLogViewer.js.map +1 -0
- package/dist/CollectionManager.d.ts +26 -0
- package/dist/CollectionManager.d.ts.map +1 -0
- package/dist/CollectionManager.js +100 -0
- package/dist/CollectionManager.js.map +1 -0
- package/dist/CollectionsIndex.d.ts +25 -0
- package/dist/CollectionsIndex.d.ts.map +1 -0
- package/dist/CollectionsIndex.js +42 -0
- package/dist/CollectionsIndex.js.map +1 -0
- package/dist/ContentManager.d.ts +26 -0
- package/dist/ContentManager.d.ts.map +1 -0
- package/dist/ContentManager.js +110 -0
- package/dist/ContentManager.js.map +1 -0
- package/dist/EntryEditor.d.ts +25 -0
- package/dist/EntryEditor.d.ts.map +1 -0
- package/dist/EntryEditor.js +190 -0
- package/dist/EntryEditor.js.map +1 -0
- package/dist/LoginForm.d.ts +18 -0
- package/dist/LoginForm.d.ts.map +1 -0
- package/dist/LoginForm.js +41 -0
- package/dist/LoginForm.js.map +1 -0
- package/dist/MediaManager.d.ts +21 -0
- package/dist/MediaManager.d.ts.map +1 -0
- package/dist/MediaManager.js +59 -0
- package/dist/MediaManager.js.map +1 -0
- package/dist/SchemaEditor.d.ts +22 -0
- package/dist/SchemaEditor.d.ts.map +1 -0
- package/dist/SchemaEditor.js +35 -0
- package/dist/SchemaEditor.js.map +1 -0
- package/dist/SchemaEditorContent.d.ts +4 -0
- package/dist/SchemaEditorContent.d.ts.map +1 -0
- package/dist/SchemaEditorContent.js +82 -0
- package/dist/SchemaEditorContent.js.map +1 -0
- package/dist/SchemaEditorFieldDrawer.d.ts +2 -0
- package/dist/SchemaEditorFieldDrawer.d.ts.map +1 -0
- package/dist/SchemaEditorFieldDrawer.js +126 -0
- package/dist/SchemaEditorFieldDrawer.js.map +1 -0
- package/dist/SchemaEditorRoot.d.ts +59 -0
- package/dist/SchemaEditorRoot.d.ts.map +1 -0
- package/dist/SchemaEditorRoot.js +71 -0
- package/dist/SchemaEditorRoot.js.map +1 -0
- package/dist/SchemaEditorSidebar.d.ts +4 -0
- package/dist/SchemaEditorSidebar.d.ts.map +1 -0
- package/dist/SchemaEditorSidebar.js +67 -0
- package/dist/SchemaEditorSidebar.js.map +1 -0
- package/dist/TeamManager.d.ts +18 -0
- package/dist/TeamManager.d.ts.map +1 -0
- package/dist/TeamManager.js +90 -0
- package/dist/TeamManager.js.map +1 -0
- package/dist/components/CmsAdminHeader.d.ts +11 -0
- package/dist/components/CmsAdminHeader.d.ts.map +1 -0
- package/dist/components/CmsAdminHeader.js +119 -0
- package/dist/components/CmsAdminHeader.js.map +1 -0
- package/dist/components/ConfirmDialog.d.ts +19 -0
- package/dist/components/ConfirmDialog.d.ts.map +1 -0
- package/dist/components/ConfirmDialog.js +12 -0
- package/dist/components/ConfirmDialog.js.map +1 -0
- package/dist/components/EmptyState.d.ts +9 -0
- package/dist/components/EmptyState.d.ts.map +1 -0
- package/dist/components/EmptyState.js +7 -0
- package/dist/components/EmptyState.js.map +1 -0
- package/dist/components/EntryRow.d.ts +12 -0
- package/dist/components/EntryRow.d.ts.map +1 -0
- package/dist/components/EntryRow.js +20 -0
- package/dist/components/EntryRow.js.map +1 -0
- package/dist/components/ErrorAlert.d.ts +32 -0
- package/dist/components/ErrorAlert.d.ts.map +1 -0
- package/dist/components/ErrorAlert.js +40 -0
- package/dist/components/ErrorAlert.js.map +1 -0
- package/dist/components/InviteRow.d.ts +18 -0
- package/dist/components/InviteRow.d.ts.map +1 -0
- package/dist/components/InviteRow.js +28 -0
- package/dist/components/InviteRow.js.map +1 -0
- package/dist/components/MediaCard.d.ts +10 -0
- package/dist/components/MediaCard.d.ts.map +1 -0
- package/dist/components/MediaCard.js +29 -0
- package/dist/components/MediaCard.js.map +1 -0
- package/dist/components/MemberRow.d.ts +19 -0
- package/dist/components/MemberRow.d.ts.map +1 -0
- package/dist/components/MemberRow.js +19 -0
- package/dist/components/MemberRow.js.map +1 -0
- package/dist/components/PageHeader.d.ts +8 -0
- package/dist/components/PageHeader.d.ts.map +1 -0
- package/dist/components/PageHeader.js +7 -0
- package/dist/components/PageHeader.js.map +1 -0
- package/dist/components/RoleBadge.d.ts +7 -0
- package/dist/components/RoleBadge.d.ts.map +1 -0
- package/dist/components/RoleBadge.js +12 -0
- package/dist/components/RoleBadge.js.map +1 -0
- package/dist/components/StatusBadge.d.ts +8 -0
- package/dist/components/StatusBadge.d.ts.map +1 -0
- package/dist/components/StatusBadge.js +16 -0
- package/dist/components/StatusBadge.js.map +1 -0
- package/dist/components/TagInput.d.ts +12 -0
- package/dist/components/TagInput.d.ts.map +1 -0
- package/dist/components/TagInput.js +76 -0
- package/dist/components/TagInput.js.map +1 -0
- package/dist/components/UploadZone.d.ts +9 -0
- package/dist/components/UploadZone.d.ts.map +1 -0
- package/dist/components/UploadZone.js +21 -0
- package/dist/components/UploadZone.js.map +1 -0
- package/dist/components/index.d.ts +27 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +15 -0
- package/dist/components/index.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/hooks/useMediaQuery.d.ts +2 -0
- package/dist/hooks/useMediaQuery.d.ts.map +1 -0
- package/dist/hooks/useMediaQuery.js +16 -0
- package/dist/hooks/useMediaQuery.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -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/ui/accordion.d.ts +8 -0
- package/dist/ui/accordion.d.ts.map +1 -0
- package/dist/ui/accordion.js +19 -0
- package/dist/ui/accordion.js.map +1 -0
- package/dist/ui/aevr/aevr/activity-item.d.ts +107 -0
- package/dist/ui/aevr/aevr/activity-item.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/activity-item.js +154 -0
- package/dist/ui/aevr/aevr/activity-item.js.map +1 -0
- package/dist/ui/aevr/aevr/blurred-background.d.ts +10 -0
- package/dist/ui/aevr/aevr/blurred-background.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/blurred-background.js +31 -0
- package/dist/ui/aevr/aevr/blurred-background.js.map +1 -0
- package/dist/ui/aevr/aevr/button.d.ts +11 -0
- package/dist/ui/aevr/aevr/button.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/button.js +37 -0
- package/dist/ui/aevr/aevr/button.js.map +1 -0
- package/dist/ui/aevr/aevr/country-dropdown.d.ts +25 -0
- package/dist/ui/aevr/aevr/country-dropdown.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/country-dropdown.js +38 -0
- package/dist/ui/aevr/aevr/country-dropdown.js.map +1 -0
- package/dist/ui/aevr/aevr/currency-amount-input.d.ts +19 -0
- package/dist/ui/aevr/aevr/currency-amount-input.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/currency-amount-input.js +89 -0
- package/dist/ui/aevr/aevr/currency-amount-input.js.map +1 -0
- package/dist/ui/aevr/aevr/currency-select.d.ts +16 -0
- package/dist/ui/aevr/aevr/currency-select.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/currency-select.js +38 -0
- package/dist/ui/aevr/aevr/currency-select.js.map +1 -0
- package/dist/ui/aevr/aevr/file-upload.d.ts +70 -0
- package/dist/ui/aevr/aevr/file-upload.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/file-upload.js +388 -0
- package/dist/ui/aevr/aevr/file-upload.js.map +1 -0
- package/dist/ui/aevr/aevr/info-box.d.ts +32 -0
- package/dist/ui/aevr/aevr/info-box.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/info-box.js +248 -0
- package/dist/ui/aevr/aevr/info-box.js.map +1 -0
- package/dist/ui/aevr/aevr/loader.d.ts +6 -0
- package/dist/ui/aevr/aevr/loader.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/loader.js +14 -0
- package/dist/ui/aevr/aevr/loader.js.map +1 -0
- package/dist/ui/aevr/aevr/mini-wallet-card.d.ts +29 -0
- package/dist/ui/aevr/aevr/mini-wallet-card.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/mini-wallet-card.js +31 -0
- package/dist/ui/aevr/aevr/mini-wallet-card.js.map +1 -0
- package/dist/ui/aevr/aevr/multistep.d.ts +40 -0
- package/dist/ui/aevr/aevr/multistep.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/multistep.js +95 -0
- package/dist/ui/aevr/aevr/multistep.js.map +1 -0
- package/dist/ui/aevr/aevr/nav-user.d.ts +35 -0
- package/dist/ui/aevr/aevr/nav-user.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/nav-user.js +47 -0
- package/dist/ui/aevr/aevr/nav-user.js.map +1 -0
- package/dist/ui/aevr/aevr/page-header.d.ts +46 -0
- package/dist/ui/aevr/aevr/page-header.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/page-header.js +68 -0
- package/dist/ui/aevr/aevr/page-header.js.map +1 -0
- package/dist/ui/aevr/aevr/phone-input.d.ts +8 -0
- package/dist/ui/aevr/aevr/phone-input.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/phone-input.js +60 -0
- package/dist/ui/aevr/aevr/phone-input.js.map +1 -0
- package/dist/ui/aevr/aevr/progress.d.ts +38 -0
- package/dist/ui/aevr/aevr/progress.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/progress.js +65 -0
- package/dist/ui/aevr/aevr/progress.js.map +1 -0
- package/dist/ui/aevr/aevr/responsive-breadcrumb.d.ts +14 -0
- package/dist/ui/aevr/aevr/responsive-breadcrumb.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/responsive-breadcrumb.js +17 -0
- package/dist/ui/aevr/aevr/responsive-breadcrumb.js.map +1 -0
- package/dist/ui/aevr/aevr/responsive-dialog.d.ts +16 -0
- package/dist/ui/aevr/aevr/responsive-dialog.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/responsive-dialog.js +29 -0
- package/dist/ui/aevr/aevr/responsive-dialog.js.map +1 -0
- package/dist/ui/aevr/aevr/search-command.d.ts +31 -0
- package/dist/ui/aevr/aevr/search-command.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/search-command.js +129 -0
- package/dist/ui/aevr/aevr/search-command.js.map +1 -0
- package/dist/ui/aevr/aevr/settings-card.d.ts +15 -0
- package/dist/ui/aevr/aevr/settings-card.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/settings-card.js +29 -0
- package/dist/ui/aevr/aevr/settings-card.js.map +1 -0
- package/dist/ui/aevr/aevr/settings-header.d.ts +8 -0
- package/dist/ui/aevr/aevr/settings-header.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/settings-header.js +9 -0
- package/dist/ui/aevr/aevr/settings-header.js.map +1 -0
- package/dist/ui/aevr/aevr/stat-card.d.ts +55 -0
- package/dist/ui/aevr/aevr/stat-card.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/stat-card.js +86 -0
- package/dist/ui/aevr/aevr/stat-card.js.map +1 -0
- package/dist/ui/aevr/aevr/summary-card.d.ts +20 -0
- package/dist/ui/aevr/aevr/summary-card.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/summary-card.js +29 -0
- package/dist/ui/aevr/aevr/summary-card.js.map +1 -0
- package/dist/ui/aevr/aevr/tag.d.ts +15 -0
- package/dist/ui/aevr/aevr/tag.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/tag.js +42 -0
- package/dist/ui/aevr/aevr/tag.js.map +1 -0
- package/dist/ui/aevr/aevr/theme-toggle.d.ts +2 -0
- package/dist/ui/aevr/aevr/theme-toggle.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/theme-toggle.js +20 -0
- package/dist/ui/aevr/aevr/theme-toggle.js.map +1 -0
- package/dist/ui/aevr/aevr/transaction-pin-confirm.d.ts +21 -0
- package/dist/ui/aevr/aevr/transaction-pin-confirm.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/transaction-pin-confirm.js +65 -0
- package/dist/ui/aevr/aevr/transaction-pin-confirm.js.map +1 -0
- package/dist/ui/aevr/aevr/wallet-activity-item.d.ts +36 -0
- package/dist/ui/aevr/aevr/wallet-activity-item.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/wallet-activity-item.js +288 -0
- package/dist/ui/aevr/aevr/wallet-activity-item.js.map +1 -0
- package/dist/ui/aevr/aevr/wallet-topup-form.d.ts +26 -0
- package/dist/ui/aevr/aevr/wallet-topup-form.d.ts.map +1 -0
- package/dist/ui/aevr/aevr/wallet-topup-form.js +13 -0
- package/dist/ui/aevr/aevr/wallet-topup-form.js.map +1 -0
- package/dist/ui/aevr/blurred-background.d.ts +10 -0
- package/dist/ui/aevr/blurred-background.d.ts.map +1 -0
- package/dist/ui/aevr/blurred-background.js +31 -0
- package/dist/ui/aevr/blurred-background.js.map +1 -0
- package/dist/ui/aevr/loader.d.ts +7 -0
- package/dist/ui/aevr/loader.d.ts.map +1 -0
- package/dist/ui/aevr/loader.js +15 -0
- package/dist/ui/aevr/loader.js.map +1 -0
- package/dist/ui/aevr/nav-user.d.ts +35 -0
- package/dist/ui/aevr/nav-user.d.ts.map +1 -0
- package/dist/ui/aevr/nav-user.js +38 -0
- package/dist/ui/aevr/nav-user.js.map +1 -0
- package/dist/ui/aevr/page-header.d.ts +46 -0
- package/dist/ui/aevr/page-header.d.ts.map +1 -0
- package/dist/ui/aevr/page-header.js +72 -0
- package/dist/ui/aevr/page-header.js.map +1 -0
- package/dist/ui/aevr/progress.d.ts +38 -0
- package/dist/ui/aevr/progress.d.ts.map +1 -0
- package/dist/ui/aevr/progress.js +65 -0
- package/dist/ui/aevr/progress.js.map +1 -0
- package/dist/ui/aevr/responsive-breadcrumb.d.ts +14 -0
- package/dist/ui/aevr/responsive-breadcrumb.d.ts.map +1 -0
- package/dist/ui/aevr/responsive-breadcrumb.js +17 -0
- package/dist/ui/aevr/responsive-breadcrumb.js.map +1 -0
- package/dist/ui/aevr/search-command.d.ts +31 -0
- package/dist/ui/aevr/search-command.d.ts.map +1 -0
- package/dist/ui/aevr/search-command.js +129 -0
- package/dist/ui/aevr/search-command.js.map +1 -0
- package/dist/ui/aevr/theme-toggle.d.ts +2 -0
- package/dist/ui/aevr/theme-toggle.d.ts.map +1 -0
- package/dist/ui/aevr/theme-toggle.js +20 -0
- package/dist/ui/aevr/theme-toggle.js.map +1 -0
- package/dist/ui/alert-dialog.d.ts +19 -0
- package/dist/ui/alert-dialog.d.ts.map +1 -0
- package/dist/ui/alert-dialog.js +42 -0
- package/dist/ui/alert-dialog.js.map +1 -0
- package/dist/ui/alert.d.ts +11 -0
- package/dist/ui/alert.d.ts.map +1 -0
- package/dist/ui/alert.js +28 -0
- package/dist/ui/alert.js.map +1 -0
- package/dist/ui/avatar.d.ts +12 -0
- package/dist/ui/avatar.d.ts.map +1 -0
- package/dist/ui/avatar.js +24 -0
- package/dist/ui/avatar.js.map +1 -0
- package/dist/ui/badge.d.ts +10 -0
- package/dist/ui/badge.d.ts.map +1 -0
- package/dist/ui/badge.js +25 -0
- package/dist/ui/badge.js.map +1 -0
- package/dist/ui/breadcrumb.d.ts +12 -0
- package/dist/ui/breadcrumb.d.ts.map +1 -0
- package/dist/ui/breadcrumb.js +28 -0
- package/dist/ui/breadcrumb.js.map +1 -0
- package/dist/ui/button.d.ts +11 -0
- package/dist/ui/button.d.ts.map +1 -0
- package/dist/ui/button.js +36 -0
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/checkbox.d.ts +5 -0
- package/dist/ui/checkbox.d.ts.map +1 -0
- package/dist/ui/checkbox.js +9 -0
- package/dist/ui/checkbox.js.map +1 -0
- package/dist/ui/command.d.ts +19 -0
- package/dist/ui/command.d.ts.map +1 -0
- package/dist/ui/command.js +35 -0
- package/dist/ui/command.js.map +1 -0
- package/dist/ui/dialog.d.ts +18 -0
- package/dist/ui/dialog.d.ts.map +1 -0
- package/dist/ui/dialog.js +37 -0
- package/dist/ui/dialog.js.map +1 -0
- package/dist/ui/drawer.d.ts +14 -0
- package/dist/ui/drawer.d.ts.map +1 -0
- package/dist/ui/drawer.js +35 -0
- package/dist/ui/drawer.js.map +1 -0
- package/dist/ui/dropdown-menu.d.ts +30 -0
- package/dist/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/ui/dropdown-menu.js +52 -0
- package/dist/ui/dropdown-menu.js.map +1 -0
- package/dist/ui/field.d.ts +25 -0
- package/dist/ui/field.d.ts.map +1 -0
- package/dist/ui/field.js +68 -0
- package/dist/ui/field.js.map +1 -0
- package/dist/ui/hover-card.d.ts +7 -0
- package/dist/ui/hover-card.d.ts.map +1 -0
- package/dist/ui/hover-card.js +14 -0
- package/dist/ui/hover-card.js.map +1 -0
- package/dist/ui/input-group.d.ts +17 -0
- package/dist/ui/input-group.d.ts.map +1 -0
- package/dist/ui/input-group.js +57 -0
- package/dist/ui/input-group.js.map +1 -0
- package/dist/ui/input.d.ts +4 -0
- package/dist/ui/input.d.ts.map +1 -0
- package/dist/ui/input.js +7 -0
- package/dist/ui/input.js.map +1 -0
- package/dist/ui/item.d.ts +24 -0
- package/dist/ui/item.d.ts.map +1 -0
- package/dist/ui/item.js +68 -0
- package/dist/ui/item.js.map +1 -0
- package/dist/ui/label.d.ts +5 -0
- package/dist/ui/label.d.ts.map +1 -0
- package/dist/ui/label.js +8 -0
- package/dist/ui/label.js.map +1 -0
- package/dist/ui/radio-group.d.ts +6 -0
- package/dist/ui/radio-group.d.ts.map +1 -0
- package/dist/ui/radio-group.js +11 -0
- package/dist/ui/radio-group.js.map +1 -0
- package/dist/ui/select.d.ts +16 -0
- package/dist/ui/select.d.ts.map +1 -0
- package/dist/ui/select.js +36 -0
- package/dist/ui/select.js.map +1 -0
- package/dist/ui/separator.d.ts +5 -0
- package/dist/ui/separator.d.ts.map +1 -0
- package/dist/ui/separator.js +9 -0
- package/dist/ui/separator.js.map +1 -0
- package/dist/ui/sheet.d.ts +15 -0
- package/dist/ui/sheet.d.ts.map +1 -0
- package/dist/ui/sheet.js +37 -0
- package/dist/ui/sheet.js.map +1 -0
- package/dist/ui/sidebar.d.ts +70 -0
- package/dist/ui/sidebar.d.ts.map +1 -0
- package/dist/ui/sidebar.js +207 -0
- package/dist/ui/sidebar.js.map +1 -0
- package/dist/ui/skeleton.d.ts +3 -0
- package/dist/ui/skeleton.d.ts.map +1 -0
- package/dist/ui/skeleton.js +7 -0
- package/dist/ui/skeleton.js.map +1 -0
- package/dist/ui/switch.d.ts +7 -0
- package/dist/ui/switch.d.ts.map +1 -0
- package/dist/ui/switch.js +8 -0
- package/dist/ui/switch.js.map +1 -0
- package/dist/ui/table.d.ts +11 -0
- package/dist/ui/table.d.ts.map +1 -0
- package/dist/ui/table.js +28 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/ui/textarea.d.ts +4 -0
- package/dist/ui/textarea.d.ts.map +1 -0
- package/dist/ui/textarea.js +7 -0
- package/dist/ui/textarea.js.map +1 -0
- package/dist/ui/toggle-group.d.ts +11 -0
- package/dist/ui/toggle-group.d.ts.map +1 -0
- package/dist/ui/toggle-group.js +24 -0
- package/dist/ui/toggle-group.js.map +1 -0
- package/dist/ui/toggle.d.ts +10 -0
- package/dist/ui/toggle.d.ts.map +1 -0
- package/dist/ui/toggle.js +26 -0
- package/dist/ui/toggle.js.map +1 -0
- package/dist/ui/tooltip.d.ts +8 -0
- package/dist/ui/tooltip.d.ts.map +1 -0
- package/dist/ui/tooltip.js +17 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/ui/aevr/loader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,UAAU,GAA4C,CAAC,KAAK,EAAE,EAAE;IACpE,OAAO,CACL,eACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAC,KAAK,EACX,MAAM,EAAC,KAAK,EACZ,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,aAAa,KACjB,KAAK,aAET,eACE,IAAI,EAAC,cAAc,EACnB,WAAW,EAAC,KAAK,EACjB,CAAC,EAAC,6QAA6Q,GACzQ,EACR,eACE,IAAI,EAAC,cAAc,EACnB,CAAC,EAAC,qGAAqG,GACjG,IACJ,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAwD,CAAC,EACnE,OAAO,GAAG,IAAI,EACd,SAAS,GACV,EAAE,EAAE;IACH,OAAO,CACL,KAAC,eAAe,cACb,OAAO,IAAI,CACV,KAAC,MAAM,CAAC,GAAG,IACT,SAAS,EAAC,eAAe,EACzB,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAC/B,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAChE,IAAI,EAAE;gBACJ,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;aACT,YAED,KAAC,UAAU,IAAC,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,SAAS,CAAC,GAAI,GACzD,CACd,GACe,CACnB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type LucideIcon } from "lucide-react";
|
|
3
|
+
export interface NavUserData {
|
|
4
|
+
displayName: string;
|
|
5
|
+
email: string;
|
|
6
|
+
avatarSrc?: string;
|
|
7
|
+
/** Pre-computed initials; derived from displayName if omitted */
|
|
8
|
+
initials?: string;
|
|
9
|
+
payTag?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface NavUserMenuItem {
|
|
12
|
+
label: React.ReactNode;
|
|
13
|
+
href?: string;
|
|
14
|
+
icon: LucideIcon;
|
|
15
|
+
onClick?: () => void;
|
|
16
|
+
}
|
|
17
|
+
export interface NavUserMenuGroup {
|
|
18
|
+
items: NavUserMenuItem[];
|
|
19
|
+
}
|
|
20
|
+
interface NavUserProps {
|
|
21
|
+
variant?: "sidebar" | "header";
|
|
22
|
+
className?: string;
|
|
23
|
+
user?: NavUserData | null;
|
|
24
|
+
isLoading?: boolean;
|
|
25
|
+
/** href to wrap the profile header row in; e.g. "/settings/account" */
|
|
26
|
+
profileHref?: string;
|
|
27
|
+
onLogout?: () => void;
|
|
28
|
+
onCopyPayTag?: (tag: string) => void;
|
|
29
|
+
menuGroups?: NavUserMenuGroup[];
|
|
30
|
+
/** Extra ReactNode rendered right after the profile row (before menuGroups) */
|
|
31
|
+
extraContent?: React.ReactNode;
|
|
32
|
+
}
|
|
33
|
+
export declare function NavUser({ variant, className, user, isLoading, profileHref, onLogout, onCopyPayTag, menuGroups, extraContent, }: NavUserProps): import("react/jsx-runtime").JSX.Element | null;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=nav-user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-user.d.ts","sourceRoot":"","sources":["../../../src/ui/aevr/nav-user.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAKtB,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC;AAID,wBAAgB,OAAO,CAAC,EACtB,OAAmB,EACnB,SAAS,EACT,IAAI,EACJ,SAAiB,EACjB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,UAAe,EACf,YAAY,GACb,EAAE,YAAY,kDA2Id"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { Avatar, AvatarFallback, AvatarImage } from "../avatar";
|
|
5
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "../dropdown-menu";
|
|
6
|
+
import { Skeleton } from "../skeleton";
|
|
7
|
+
import { Button } from "../button";
|
|
8
|
+
import { ChevronsUpDownIcon, CopyIcon, LogOutIcon, } from "lucide-react";
|
|
9
|
+
import Link from "next/link";
|
|
10
|
+
// ── Component ─────────────────────────────────────────────────────────────────
|
|
11
|
+
export function NavUser({ variant = "sidebar", className, user, isLoading = false, profileHref, onLogout, onCopyPayTag, menuGroups = [], extraContent, }) {
|
|
12
|
+
if (isLoading) {
|
|
13
|
+
return _jsx(Skeleton, { className: "h-8 w-8 rounded-full" });
|
|
14
|
+
}
|
|
15
|
+
if (!user)
|
|
16
|
+
return null;
|
|
17
|
+
const { displayName, email, avatarSrc = "", payTag } = user;
|
|
18
|
+
const initials = user.initials ||
|
|
19
|
+
displayName
|
|
20
|
+
.split(" ")
|
|
21
|
+
.map((n) => n[0])
|
|
22
|
+
.join("")
|
|
23
|
+
.toUpperCase()
|
|
24
|
+
.slice(0, 2);
|
|
25
|
+
const profileRow = (_jsxs(DropdownMenuItem, { className: "flex cursor-pointer items-center gap-2 px-1 py-1.5 text-left text-sm", onSelect: (e) => profileHref && e.preventDefault(), children: [_jsxs(Avatar, { className: "h-8 w-8 rounded-lg", children: [_jsx(AvatarImage, { src: avatarSrc, alt: displayName }), _jsx(AvatarFallback, { className: "rounded-lg", children: initials })] }), _jsxs("div", { className: "grid flex-1 text-left text-sm leading-tight", children: [_jsx("span", { className: "truncate font-medium", children: displayName }), _jsx("span", { className: "truncate text-xs", children: email }), payTag && (_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx("span", { className: "truncate text-xs", children: payTag }), onCopyPayTag && (_jsx(Button, { variant: "ghost", size: "icon", className: "h-6 w-6", onClick: (e) => {
|
|
26
|
+
e.preventDefault();
|
|
27
|
+
onCopyPayTag(payTag);
|
|
28
|
+
}, children: _jsx(CopyIcon, { className: "h-3! w-3!" }) }))] }))] })] }));
|
|
29
|
+
const dropdownContent = (_jsxs(DropdownMenuContent, { className: "w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg", align: "end", sideOffset: 4, children: [_jsx(DropdownMenuLabel, { className: "p-0 font-normal", children: profileHref ? (_jsx(Link, { href: profileHref, children: profileRow })) : (profileRow) }), extraContent, menuGroups.map((group, gi) => (_jsxs(React.Fragment, { children: [_jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuGroup, { children: group.items.map((item, ii) => {
|
|
30
|
+
const itemEl = (_jsxs(DropdownMenuItem, { className: "cursor-pointer", onClick: item.onClick, children: [_jsx(item.icon, {}), item.label] }, ii));
|
|
31
|
+
return item.href ? (_jsx(Link, { href: item.href, children: itemEl }, ii)) : (_jsx(React.Fragment, { children: itemEl }, ii));
|
|
32
|
+
}) })] }, gi))), _jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { onClick: onLogout, className: "cursor-pointer", children: [_jsx(LogOutIcon, {}), "Log out"] })] }));
|
|
33
|
+
if (variant === "header") {
|
|
34
|
+
return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { className: className, asChild: true, children: _jsx(Button, { className: "ring-ring flex h-8 w-8 items-center justify-center rounded-full outline-hidden hover:opacity-80 focus-visible:ring-2", children: _jsxs(Avatar, { className: "h-8 w-8", children: [_jsx(AvatarImage, { src: avatarSrc, alt: displayName }), _jsx(AvatarFallback, { className: "rounded-lg", children: initials })] }) }) }), dropdownContent] }));
|
|
35
|
+
}
|
|
36
|
+
return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { size: "lg", className: `data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground rounded-full group-data-[collapsible=icon]:h-12! group-data-[collapsible=icon]:w-12! ${className ?? ""}`, children: [_jsxs(Avatar, { className: "h-8 w-8 rounded-full group-data-[collapsible=icon]:h-11 group-data-[collapsible=icon]:w-11", children: [_jsx(AvatarImage, { src: avatarSrc, alt: displayName }), _jsx(AvatarFallback, { className: "rounded-lg", children: initials })] }), _jsxs("div", { className: "grid flex-1 text-left text-sm leading-tight", children: [_jsx("span", { className: "truncate font-medium", children: displayName }), _jsx("span", { className: "truncate text-xs", children: email })] }), _jsx(ChevronsUpDownIcon, { className: "ml-auto size-4" })] }) }), dropdownContent] }));
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=nav-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-user.js","sourceRoot":"","sources":["../../../src/ui/aevr/nav-user.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type LucideIcon } from "lucide-react";
|
|
3
|
+
export type SegmentConfig = {
|
|
4
|
+
label: string;
|
|
5
|
+
shortLabel: string;
|
|
6
|
+
icon: LucideIcon;
|
|
7
|
+
};
|
|
8
|
+
type HideOptions = {
|
|
9
|
+
showPaths?: string[];
|
|
10
|
+
hidePaths?: string[];
|
|
11
|
+
};
|
|
12
|
+
interface PageHeaderProps {
|
|
13
|
+
title?: string;
|
|
14
|
+
/** Rendered in the right-side actions area alongside built-in slots */
|
|
15
|
+
children?: React.ReactNode;
|
|
16
|
+
className?: string;
|
|
17
|
+
/** Map of URL segment → display config. Unknown segments fall back to title-cased text. */
|
|
18
|
+
segmentConfig?: Record<string, SegmentConfig>;
|
|
19
|
+
/** Segments to skip entirely when building breadcrumbs (e.g. single-char layout routes) */
|
|
20
|
+
skipSegments?: string[];
|
|
21
|
+
/** Logo area — pass <Image/>, <TeamSwitcher/>, or any ReactNode. Omit to hide. */
|
|
22
|
+
logoSlot?: React.ReactNode;
|
|
23
|
+
/** Search widget slot. Visibility also controlled by options.showSearch. */
|
|
24
|
+
searchSlot?: React.ReactNode;
|
|
25
|
+
/**
|
|
26
|
+
* Theme toggle slot.
|
|
27
|
+
* - `undefined` (default) → renders the built-in <ThemeToggle /> when showThemeToggle is true
|
|
28
|
+
* - `null` → hidden
|
|
29
|
+
* - `ReactNode` → renders the provided element
|
|
30
|
+
*/
|
|
31
|
+
themeSlot?: React.ReactNode;
|
|
32
|
+
/** User avatar/menu slot. Omit to hide. */
|
|
33
|
+
userSlot?: React.ReactNode;
|
|
34
|
+
/** Rendered outside / after the <header> tag — for portals, dialogs, etc. */
|
|
35
|
+
afterHeader?: React.ReactNode;
|
|
36
|
+
options?: {
|
|
37
|
+
showSidebarTrigger?: boolean;
|
|
38
|
+
showThemeToggle?: boolean;
|
|
39
|
+
showNavUser?: boolean;
|
|
40
|
+
showSearch?: boolean | HideOptions;
|
|
41
|
+
showBreadcrumbs?: boolean;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export declare function PageHeader({ title, children, className, segmentConfig, skipSegments, logoSlot, searchSlot, themeSlot, userSlot, afterHeader, options, }: PageHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=page-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-header.d.ts","sourceRoot":"","sources":["../../../src/ui/aevr/page-header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAK7D,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,2FAA2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC9C,2FAA2F;IAC3F,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAGxB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE9B,OAAO,CAAC,EAAE;QACR,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,UAAU,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;QACnC,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH;AA4DD,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,aAAkB,EAClB,YAAiB,EACjB,QAAQ,EACR,UAAU,EACV,SAAS,EACT,QAAQ,EACR,WAAW,EACX,OAMC,GACF,EAAE,eAAe,2CAgKjB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { motion, AnimatePresence } from "motion/react";
|
|
5
|
+
import { ThemeToggle } from "./theme-toggle";
|
|
6
|
+
import { ResponsiveBreadcrumb } from "./responsive-breadcrumb";
|
|
7
|
+
import { cn } from "../../lib/utils";
|
|
8
|
+
import { usePathname } from "next/navigation";
|
|
9
|
+
import { BookmarkIcon } from "lucide-react";
|
|
10
|
+
import { BlurredBackground } from "./blurred-background";
|
|
11
|
+
// ── Breadcrumb helpers ────────────────────────────────────────────────────────
|
|
12
|
+
function fallbackConfig(seg) {
|
|
13
|
+
const label = seg
|
|
14
|
+
.split("-")
|
|
15
|
+
.map((w) => w.charAt(0).toUpperCase() + w.slice(1))
|
|
16
|
+
.join(" ");
|
|
17
|
+
return { label, shortLabel: label, icon: BookmarkIcon };
|
|
18
|
+
}
|
|
19
|
+
function isDynamicId(seg) {
|
|
20
|
+
return /^[a-f0-9]{16,}$/i.test(seg) || /^[0-9a-f-]{32,}$/i.test(seg);
|
|
21
|
+
}
|
|
22
|
+
function buildCrumbs(pathname, segmentConfig, skipSet) {
|
|
23
|
+
const segments = pathname.replace(/^\//, "").split("/").filter(Boolean);
|
|
24
|
+
let accumulated = "";
|
|
25
|
+
const crumbs = [];
|
|
26
|
+
for (const seg of segments) {
|
|
27
|
+
accumulated += `/${seg}`;
|
|
28
|
+
if (skipSet.has(seg))
|
|
29
|
+
continue;
|
|
30
|
+
const config = segmentConfig[seg] ?? fallbackConfig(seg);
|
|
31
|
+
const label = isDynamicId(seg) ? seg.slice(0, 8) + "…" : config.label;
|
|
32
|
+
const shortLabel = isDynamicId(seg)
|
|
33
|
+
? seg.slice(0, 6) + "…"
|
|
34
|
+
: config.shortLabel;
|
|
35
|
+
crumbs.push({
|
|
36
|
+
...config,
|
|
37
|
+
label,
|
|
38
|
+
shortLabel,
|
|
39
|
+
href: accumulated,
|
|
40
|
+
isLast: false,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
crumbs.forEach((c, i) => {
|
|
44
|
+
c.isLast = i === crumbs.length - 1;
|
|
45
|
+
});
|
|
46
|
+
return crumbs;
|
|
47
|
+
}
|
|
48
|
+
// ── Component ─────────────────────────────────────────────────────────────────
|
|
49
|
+
export function PageHeader({ title, children, className, segmentConfig = {}, skipSegments = [], logoSlot, searchSlot, themeSlot, userSlot, afterHeader, options = {
|
|
50
|
+
showSidebarTrigger: false,
|
|
51
|
+
showThemeToggle: true,
|
|
52
|
+
showNavUser: true,
|
|
53
|
+
showSearch: true,
|
|
54
|
+
showBreadcrumbs: true,
|
|
55
|
+
}, }) {
|
|
56
|
+
const pathname = usePathname();
|
|
57
|
+
const skipSet = React.useMemo(() => new Set(skipSegments),
|
|
58
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
59
|
+
[skipSegments.join(",")]);
|
|
60
|
+
const shouldShowSearch = () => {
|
|
61
|
+
if (typeof options?.showSearch === "boolean")
|
|
62
|
+
return options.showSearch;
|
|
63
|
+
return (options?.showSearch?.showPaths?.includes(pathname) === true ||
|
|
64
|
+
options?.showSearch?.hidePaths?.includes(pathname) === false);
|
|
65
|
+
};
|
|
66
|
+
const crumbs = buildCrumbs(pathname, segmentConfig, skipSet);
|
|
67
|
+
const showBreadcrumbs = options?.showBreadcrumbs !== false && crumbs.length > 0;
|
|
68
|
+
// themeSlot=undefined → use built-in (when enabled); null → hide; ReactNode → custom
|
|
69
|
+
const themeElement = themeSlot !== undefined ? (themeSlot) : options?.showThemeToggle !== false ? (_jsx(ThemeToggle, {})) : null;
|
|
70
|
+
return (_jsxs(_Fragment, { children: [_jsxs(motion.header, { initial: { y: -20, opacity: 0 }, animate: { y: 0, opacity: 1 }, transition: { duration: 0.4, ease: [0.25, 0.46, 0.45, 0.94] }, className: cn("sticky top-0 z-50 px-4", className), children: [_jsx(BlurredBackground, { className: "h-[150%]" }), _jsxs("div", { className: "wrapper mx-auto flex min-h-16 max-w-4xl shrink-0 items-center gap-2 xl:gap-6 lg:py-6", children: [_jsx(AnimatePresence, { mode: "sync", children: logoSlot ? (_jsx(motion.div, { layout: true, initial: { opacity: 0, x: -10 }, animate: { opacity: 1, x: 0 }, exit: { opacity: 0, x: -10 }, transition: { duration: 0.2 }, className: "shrink-0", children: logoSlot }, "logo")) : null }), _jsx(AnimatePresence, { mode: "popLayout", children: options?.showSidebarTrigger && (_jsx(motion.div, { layout: true, initial: { opacity: 0, x: -10 }, animate: { opacity: 1, x: 0 }, exit: { opacity: 0, x: -10 }, transition: { duration: 0.2 } })) }), _jsx(AnimatePresence, { mode: "popLayout", children: showBreadcrumbs ? (_jsx(motion.div, { layout: true, initial: { opacity: 0, x: -10 }, animate: { opacity: 1, x: 0 }, exit: { opacity: 0, x: -10 }, transition: { duration: 0.2 }, className: "min-w-0 flex-1 md:flex-initial", children: _jsx(ResponsiveBreadcrumb, { crumbs: crumbs }) }, "breadcrumbs")) : (title && (_jsx(motion.h1, { layout: true, initial: { opacity: 0, x: -10 }, animate: { opacity: 1, x: 0 }, exit: { opacity: 0, x: -10 }, transition: { duration: 0.2 }, className: "truncate text-xl font-bold", children: title }, "title"))) }), _jsxs(motion.div, { layout: true, className: "ml-auto flex flex-1 items-center justify-end gap-2 sm:gap-4 md:flex-initial", children: [_jsx(AnimatePresence, { mode: "popLayout", children: shouldShowSearch() && searchSlot ? (_jsx(motion.div, { layout: true, initial: { opacity: 0, scale: 0.95 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.95 }, transition: { duration: 0.2 }, className: "grow", children: searchSlot })) : null }), children, _jsx(AnimatePresence, { mode: "popLayout", children: themeElement ? (_jsx(motion.div, { layout: true, initial: { opacity: 0, scale: 0.9 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.9 }, transition: { duration: 0.2 }, className: "flex items-center justify-center", children: themeElement })) : null }), _jsx(AnimatePresence, { mode: "popLayout", children: options?.showNavUser !== false && userSlot ? (_jsx(motion.div, { layout: true, initial: { opacity: 0, scale: 0.9 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.9 }, transition: { duration: 0.2 }, children: userSlot })) : null })] })] })] }), afterHeader] }));
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=page-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-header.js","sourceRoot":"","sources":["../../../src/ui/aevr/page-header.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Progress as ProgressPrimitive } from "radix-ui";
|
|
3
|
+
declare function Progress({ className, value, ...props }: React.ComponentProps<typeof ProgressPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export interface ProgressSegment {
|
|
5
|
+
/** Percentage of total (0–100). Segments are rendered left-to-right. */
|
|
6
|
+
value: number;
|
|
7
|
+
/** Tailwind class or CSS class for the filled color, e.g. "bg-green-500" */
|
|
8
|
+
className?: string;
|
|
9
|
+
/** Accessible label for this segment, e.g. "Success" */
|
|
10
|
+
label?: string;
|
|
11
|
+
}
|
|
12
|
+
interface SplitProgressBarProps {
|
|
13
|
+
/**
|
|
14
|
+
* Single percentage (0–100) — original single-color API.
|
|
15
|
+
* Ignored when `segments` is provided.
|
|
16
|
+
*/
|
|
17
|
+
value?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Multi-segment API. Each segment specifies a `value` (percentage) and
|
|
20
|
+
* optional `className` for its color. Segments are laid out left-to-right.
|
|
21
|
+
* Any remaining percentage (up to 100) is rendered with the empty/default color.
|
|
22
|
+
*/
|
|
23
|
+
segments?: ProgressSegment[];
|
|
24
|
+
/** Number of bar segments. Auto-calculated from container width when omitted. */
|
|
25
|
+
bars?: number;
|
|
26
|
+
/** Height of each bar in px. Defaults to 40. */
|
|
27
|
+
barHeight?: number;
|
|
28
|
+
/** Gap between bars in px. Defaults to 2. */
|
|
29
|
+
gap?: number;
|
|
30
|
+
className?: string;
|
|
31
|
+
/** Color class for filled bars (single-value API only). */
|
|
32
|
+
filledClassName?: string;
|
|
33
|
+
/** Color class for empty/unassigned bars. */
|
|
34
|
+
emptyClassName?: string;
|
|
35
|
+
}
|
|
36
|
+
declare function SplitProgressBar({ value, segments, bars, barHeight, gap, className, filledClassName, emptyClassName, }: SplitProgressBarProps): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
export { Progress, SplitProgressBar };
|
|
38
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/ui/aevr/progress.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGzD,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,2CAiBrD;AAED,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,qBAAqB;IAC7B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,iBAAS,gBAAgB,CAAC,EACxB,KAAS,EACT,QAAQ,EACR,IAAI,EACJ,SAAc,EACd,GAAO,EACP,SAAS,EACT,eAAe,EACf,cAAc,GACf,EAAE,qBAAqB,2CAqFvB;AAED,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// ./components/ui/aevr/progress.tsx
|
|
2
|
+
"use client";
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { Progress as ProgressPrimitive } from "radix-ui";
|
|
6
|
+
import { cn } from "../../lib/utils";
|
|
7
|
+
function Progress({ className, value, ...props }) {
|
|
8
|
+
return (_jsx(ProgressPrimitive.Root, { "data-slot": "progress", className: cn("bg-muted relative flex h-3 w-full items-center overflow-x-hidden rounded-full", className), ...props, children: _jsx(ProgressPrimitive.Indicator, { "data-slot": "progress-indicator", className: "bg-primary size-full flex-1 transition-all", style: { transform: `translateX(-${100 - (value || 0)}%)` } }) }));
|
|
9
|
+
}
|
|
10
|
+
function SplitProgressBar({ value = 0, segments, bars, barHeight = 40, gap = 2, className, filledClassName, emptyClassName, }) {
|
|
11
|
+
const containerRef = React.useRef(null);
|
|
12
|
+
const [autoBarCount, setAutoBarCount] = React.useState(20);
|
|
13
|
+
React.useEffect(() => {
|
|
14
|
+
if (bars !== undefined)
|
|
15
|
+
return;
|
|
16
|
+
const observer = new ResizeObserver((entries) => {
|
|
17
|
+
for (const entry of entries) {
|
|
18
|
+
const width = entry.contentRect.width;
|
|
19
|
+
const barWidth = 10;
|
|
20
|
+
const count = Math.max(1, Math.floor(width / (barWidth + gap)));
|
|
21
|
+
setAutoBarCount(count);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
if (containerRef.current)
|
|
25
|
+
observer.observe(containerRef.current);
|
|
26
|
+
return () => observer.disconnect();
|
|
27
|
+
}, [bars, gap]);
|
|
28
|
+
const totalBars = bars ?? autoBarCount;
|
|
29
|
+
// Build a per-bar color map
|
|
30
|
+
const barColors = React.useMemo(() => {
|
|
31
|
+
const colors = new Array(totalBars).fill(undefined);
|
|
32
|
+
if (segments?.length) {
|
|
33
|
+
let cursor = 0;
|
|
34
|
+
for (const seg of segments) {
|
|
35
|
+
const count = Math.round((Math.min(100, Math.max(0, seg.value)) / 100) * totalBars);
|
|
36
|
+
for (let i = cursor; i < Math.min(cursor + count, totalBars); i++) {
|
|
37
|
+
colors[i] = seg.className;
|
|
38
|
+
}
|
|
39
|
+
cursor += count;
|
|
40
|
+
if (cursor >= totalBars)
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// Single-value legacy path
|
|
46
|
+
const filledCount = Math.round((Math.min(100, Math.max(0, value)) / 100) * totalBars);
|
|
47
|
+
for (let i = 0; i < filledCount; i++) {
|
|
48
|
+
colors[i] = filledClassName;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return colors;
|
|
52
|
+
}, [segments, value, filledClassName, totalBars]);
|
|
53
|
+
// Build aria-label from segments for accessibility
|
|
54
|
+
const ariaLabel = segments
|
|
55
|
+
? segments.map((s) => `${s.label ?? "segment"}: ${s.value}%`).join(", ")
|
|
56
|
+
: `${value}%`;
|
|
57
|
+
return (_jsx("div", { ref: containerRef, "data-slot": "split-progress", role: "progressbar", "aria-valuenow": segments ? undefined : value, "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": ariaLabel, className: cn("flex w-full items-center", className), style: { gap }, children: Array.from({ length: totalBars }, (_, i) => {
|
|
58
|
+
const color = barColors[i];
|
|
59
|
+
return (_jsx("div", { "data-slot": "split-progress-bar", "data-filled": color !== undefined ? "" : undefined, className: cn("flex-1 rounded-sm transition-colors duration-300", color !== undefined
|
|
60
|
+
? color || "bg-primary"
|
|
61
|
+
: cn("bg-muted", emptyClassName)), style: { height: barHeight } }, i));
|
|
62
|
+
}) }));
|
|
63
|
+
}
|
|
64
|
+
export { Progress, SplitProgressBar };
|
|
65
|
+
//# sourceMappingURL=progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../src/ui/aevr/progress.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type LucideIcon } from "lucide-react";
|
|
2
|
+
type Crumb = {
|
|
3
|
+
label: string;
|
|
4
|
+
shortLabel: string;
|
|
5
|
+
icon: LucideIcon;
|
|
6
|
+
href: string;
|
|
7
|
+
isLast: boolean;
|
|
8
|
+
};
|
|
9
|
+
interface ResponsiveBreadcrumbProps {
|
|
10
|
+
crumbs: Crumb[];
|
|
11
|
+
}
|
|
12
|
+
export declare function ResponsiveBreadcrumb({ crumbs }: ResponsiveBreadcrumbProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=responsive-breadcrumb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responsive-breadcrumb.d.ts","sourceRoot":"","sources":["../../../src/ui/aevr/responsive-breadcrumb.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,UAAU,yBAAyB;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,MAAM,EAAE,EAAE,yBAAyB,kDAiEzE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// components/ui/responsive-breadcrumb.tsx
|
|
2
|
+
"use client";
|
|
3
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
import Link from "next/link";
|
|
5
|
+
import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis, } from "../breadcrumb.js";
|
|
6
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "../dropdown-menu.js";
|
|
7
|
+
export function ResponsiveBreadcrumb({ crumbs }) {
|
|
8
|
+
if (crumbs.length === 0)
|
|
9
|
+
return null;
|
|
10
|
+
// ── Always show: first + last. Middle ones collapse into ellipsis. ──
|
|
11
|
+
const first = crumbs[0];
|
|
12
|
+
const last = crumbs[crumbs.length - 1];
|
|
13
|
+
const middle = crumbs.slice(1, -1); // may be empty
|
|
14
|
+
const isSingle = crumbs.length === 1;
|
|
15
|
+
return (_jsx(Breadcrumb, { children: _jsxs(BreadcrumbList, { className: "flex-nowrap", children: [!isSingle && (_jsxs(_Fragment, { children: [_jsx(BreadcrumbItem, { children: _jsx(BreadcrumbLink, { asChild: true, children: _jsx(Link, { href: first.href, className: "hidden sm:inline", children: first.label }) }) }), _jsx(BreadcrumbSeparator, { className: "hidden sm:flex" })] })), middle.length > 0 && (_jsxs(_Fragment, { children: [_jsx(BreadcrumbItem, { className: "hidden sm:flex", children: _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { className: "flex items-center gap-1", children: _jsx(BreadcrumbEllipsis, {}) }), _jsx(DropdownMenuContent, { align: "start", children: middle.map((crumb) => (_jsx(DropdownMenuItem, { asChild: true, children: _jsx(Link, { href: crumb.href, children: crumb.label }) }, crumb.href))) })] }) }), _jsx(BreadcrumbSeparator, { className: "hidden sm:flex" })] })), _jsx(BreadcrumbItem, { className: "min-w-0", children: _jsxs(BreadcrumbPage, { className: "flex min-w-0 items-center gap-1.5", children: [_jsx(last.icon, { className: "size-4 shrink-0 sm:hidden" }), _jsx("span", { className: "hidden max-w-[180px] truncate sm:inline", children: last.label }), _jsx("span", { className: "max-w-[100px] truncate sm:hidden", children: last.shortLabel })] }) })] }) }));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=responsive-breadcrumb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responsive-breadcrumb.js","sourceRoot":"","sources":["../../../src/ui/aevr/responsive-breadcrumb.tsx"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,YAAY,CAAC;;AAGb,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAe7B,MAAM,UAAU,oBAAoB,CAAC,EAAE,MAAM,EAA6B;IACxE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,uEAAuE;IACvE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;IACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAErC,OAAO,CACL,KAAC,UAAU,cACT,MAAC,cAAc,IAAC,SAAS,EAAC,aAAa,aAEpC,CAAC,QAAQ,IAAI,CACZ,8BACE,KAAC,cAAc,cACb,KAAC,cAAc,IAAC,OAAO,kBACrB,KAAC,IAAI,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAC,kBAAkB,YACjD,KAAK,CAAC,KAAK,GACP,GACQ,GACF,EACjB,KAAC,mBAAmB,IAAC,SAAS,EAAC,gBAAgB,GAAG,IACjD,CACJ,EAGA,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACpB,8BACE,KAAC,cAAc,IAAC,SAAS,EAAC,gBAAgB,YACxC,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,SAAS,EAAC,yBAAyB,YACtD,KAAC,kBAAkB,KAAG,GACF,EACtB,KAAC,mBAAmB,IAAC,KAAK,EAAC,OAAO,YAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,KAAC,gBAAgB,IAAkB,OAAO,kBACxC,KAAC,IAAI,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,YAAG,KAAK,CAAC,KAAK,GAAQ,IADvB,KAAK,CAAC,IAAI,CAEd,CACpB,CAAC,GACkB,IACT,GACA,EACjB,KAAC,mBAAmB,IAAC,SAAS,EAAC,gBAAgB,GAAG,IACjD,CACJ,EAGD,KAAC,cAAc,IAAC,SAAS,EAAC,SAAS,YACjC,MAAC,cAAc,IAAC,SAAS,EAAC,mCAAmC,aAE3D,KAAC,IAAI,CAAC,IAAI,IAAC,SAAS,EAAC,2BAA2B,GAAG,EAEnD,eAAM,SAAS,EAAC,yCAAyC,YACtD,IAAI,CAAC,KAAK,GACN,EAEP,eAAM,SAAS,EAAC,kCAAkC,YAC/C,IAAI,CAAC,UAAU,GACX,IACQ,GACF,IACF,GACN,CACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface CommandEntry {
|
|
3
|
+
title: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
href: string;
|
|
6
|
+
keywords?: string[];
|
|
7
|
+
icon: React.ComponentType<{
|
|
8
|
+
className?: string;
|
|
9
|
+
}>;
|
|
10
|
+
shortcut?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface SearchCommandGroup {
|
|
13
|
+
heading: string;
|
|
14
|
+
entries: CommandEntry[];
|
|
15
|
+
}
|
|
16
|
+
interface SearchCommandProps {
|
|
17
|
+
variant?: "header" | "large";
|
|
18
|
+
/** Placeholder text inside the command input */
|
|
19
|
+
placeholder?: string;
|
|
20
|
+
/** Label shown on the trigger button */
|
|
21
|
+
triggerLabel?: string;
|
|
22
|
+
/** localStorage key for persisting recent activity */
|
|
23
|
+
storageKey?: string;
|
|
24
|
+
/** Content groups rendered in the command palette */
|
|
25
|
+
groups?: SearchCommandGroup[];
|
|
26
|
+
/** Keyboard shortcut sequences mapped to hrefs e.g. { gd: "/dashboard" } */
|
|
27
|
+
keySequenceRoutes?: Record<string, string>;
|
|
28
|
+
}
|
|
29
|
+
export declare function SearchCommand({ variant, placeholder, triggerLabel, storageKey, groups, keySequenceRoutes, }: SearchCommandProps): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=search-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-command.d.ts","sourceRoot":"","sources":["../../../src/ui/aevr/search-command.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAOD,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC7B,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC9B,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED,wBAAgB,aAAa,CAAC,EAC5B,OAAkB,EAClB,WAA2C,EAC3C,YAAuB,EACvB,UAAgC,EAChC,MAAW,EACX,iBAAsB,GACvB,EAAE,kBAAkB,2CAuOpB"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { usePathname, useRouter } from "next/navigation";
|
|
5
|
+
import { CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, } from "../command";
|
|
6
|
+
import { Clock3Icon, SearchIcon } from "lucide-react";
|
|
7
|
+
import { Button } from "../button";
|
|
8
|
+
// ── Component ─────────────────────────────────────────────────────────────────
|
|
9
|
+
const DEFAULT_STORAGE_KEY = "app:search:recent";
|
|
10
|
+
const MAX_RECENT = 6;
|
|
11
|
+
export function SearchCommand({ variant = "header", placeholder = "Type a command or search...", triggerLabel = "Search", storageKey = DEFAULT_STORAGE_KEY, groups = [], keySequenceRoutes = {}, }) {
|
|
12
|
+
const [open, setOpen] = React.useState(false);
|
|
13
|
+
const [recentActivity, setRecentActivity] = React.useState([]);
|
|
14
|
+
const keySequenceRef = React.useRef("");
|
|
15
|
+
const keySequenceTimeoutRef = React.useRef(null);
|
|
16
|
+
const router = useRouter();
|
|
17
|
+
const pathname = usePathname();
|
|
18
|
+
// Flat list of all entries across all groups for route-tracking and shortcut lookup
|
|
19
|
+
const allEntries = React.useMemo(() => groups.flatMap((g) => g.entries), [groups]);
|
|
20
|
+
// ── Recent activity persistence ──────────────────────────────────────────
|
|
21
|
+
const readRecent = React.useCallback(() => {
|
|
22
|
+
if (typeof window === "undefined")
|
|
23
|
+
return [];
|
|
24
|
+
try {
|
|
25
|
+
const raw = window.localStorage.getItem(storageKey);
|
|
26
|
+
if (!raw)
|
|
27
|
+
return [];
|
|
28
|
+
const parsed = JSON.parse(raw);
|
|
29
|
+
return parsed
|
|
30
|
+
.filter((e) => Boolean(e?.title && e?.href))
|
|
31
|
+
.map((e) => ({
|
|
32
|
+
title: e.title,
|
|
33
|
+
description: e.description,
|
|
34
|
+
href: e.href,
|
|
35
|
+
icon: Clock3Icon,
|
|
36
|
+
keywords: ["recent", "activity"],
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
}, [storageKey]);
|
|
43
|
+
const writeRecent = React.useCallback((entries) => {
|
|
44
|
+
if (typeof window === "undefined")
|
|
45
|
+
return;
|
|
46
|
+
window.localStorage.setItem(storageKey, JSON.stringify(entries.map((e) => ({
|
|
47
|
+
title: e.title,
|
|
48
|
+
description: e.description,
|
|
49
|
+
href: e.href,
|
|
50
|
+
}))));
|
|
51
|
+
}, [storageKey]);
|
|
52
|
+
const addRecent = React.useCallback((entry) => {
|
|
53
|
+
setRecentActivity((prev) => {
|
|
54
|
+
const deduped = prev.filter((item) => item.href !== entry.href);
|
|
55
|
+
const next = [
|
|
56
|
+
{
|
|
57
|
+
...entry,
|
|
58
|
+
icon: Clock3Icon,
|
|
59
|
+
keywords: ["recent", "activity", ...(entry.keywords ?? [])],
|
|
60
|
+
},
|
|
61
|
+
...deduped,
|
|
62
|
+
].slice(0, MAX_RECENT);
|
|
63
|
+
writeRecent(next);
|
|
64
|
+
return next;
|
|
65
|
+
});
|
|
66
|
+
}, [writeRecent]);
|
|
67
|
+
// ── Navigation helpers ────────────────────────────────────────────────────
|
|
68
|
+
const runByHref = React.useCallback((href) => {
|
|
69
|
+
const entry = allEntries.find((e) => e.href === href);
|
|
70
|
+
setOpen(false);
|
|
71
|
+
if (entry)
|
|
72
|
+
addRecent(entry);
|
|
73
|
+
router.push(href);
|
|
74
|
+
}, [addRecent, allEntries, router]);
|
|
75
|
+
const runCommand = React.useCallback((entry) => {
|
|
76
|
+
setOpen(false);
|
|
77
|
+
addRecent(entry);
|
|
78
|
+
router.push(entry.href);
|
|
79
|
+
}, [addRecent, router]);
|
|
80
|
+
// ── Keyboard shortcuts ────────────────────────────────────────────────────
|
|
81
|
+
React.useEffect(() => {
|
|
82
|
+
const down = (e) => {
|
|
83
|
+
if (e.key === "k" && (e.metaKey || e.ctrlKey)) {
|
|
84
|
+
e.preventDefault();
|
|
85
|
+
setOpen((o) => !o);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (e.metaKey || e.ctrlKey || e.altKey)
|
|
89
|
+
return;
|
|
90
|
+
const target = e.target;
|
|
91
|
+
if (target?.closest("input, textarea, [contenteditable='true']"))
|
|
92
|
+
return;
|
|
93
|
+
if (!/^[a-z]$/i.test(e.key))
|
|
94
|
+
return;
|
|
95
|
+
const next = `${keySequenceRef.current}${e.key.toLowerCase()}`.slice(-2);
|
|
96
|
+
keySequenceRef.current = next;
|
|
97
|
+
if (keySequenceTimeoutRef.current)
|
|
98
|
+
window.clearTimeout(keySequenceTimeoutRef.current);
|
|
99
|
+
keySequenceTimeoutRef.current = window.setTimeout(() => {
|
|
100
|
+
keySequenceRef.current = "";
|
|
101
|
+
}, 700);
|
|
102
|
+
const nextHref = keySequenceRoutes[next];
|
|
103
|
+
if (nextHref) {
|
|
104
|
+
e.preventDefault();
|
|
105
|
+
keySequenceRef.current = "";
|
|
106
|
+
runByHref(nextHref);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
document.addEventListener("keydown", down);
|
|
110
|
+
return () => {
|
|
111
|
+
document.removeEventListener("keydown", down);
|
|
112
|
+
if (keySequenceTimeoutRef.current)
|
|
113
|
+
window.clearTimeout(keySequenceTimeoutRef.current);
|
|
114
|
+
};
|
|
115
|
+
}, [keySequenceRoutes, runByHref]);
|
|
116
|
+
// ── Pathname tracking ─────────────────────────────────────────────────────
|
|
117
|
+
React.useEffect(() => {
|
|
118
|
+
setRecentActivity(readRecent());
|
|
119
|
+
}, [readRecent]);
|
|
120
|
+
React.useEffect(() => {
|
|
121
|
+
const active = allEntries.find((e) => e.href === pathname);
|
|
122
|
+
if (active)
|
|
123
|
+
addRecent(active);
|
|
124
|
+
}, [addRecent, allEntries, pathname]);
|
|
125
|
+
// ── Render helpers ────────────────────────────────────────────────────────
|
|
126
|
+
const renderItem = React.useCallback((entry) => (_jsxs(CommandItem, { value: `${entry.title} ${entry.description ?? ""} ${entry.keywords?.join(" ") ?? ""}`, onSelect: () => runCommand(entry), children: [_jsx("div", { className: "text-muted-foreground mr-2 flex h-8 w-8 items-center justify-center rounded-md border", children: _jsx(entry.icon, { className: "h-4 w-4" }) }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [_jsx("span", { className: "truncate text-sm font-medium", children: entry.title }), entry.description ? (_jsx("span", { className: "text-muted-foreground truncate text-xs", children: entry.description })) : null] }), entry.shortcut ? (_jsx("kbd", { className: "text-muted-foreground uppercase bg-muted ml-2 hidden rounded border px-1.5 py-0.5 font-mono text-[10px] font-semibold tracking-wider sm:inline-flex", children: entry.shortcut })) : null] }, entry.href)), [runCommand]);
|
|
127
|
+
return (_jsxs(_Fragment, { children: [variant === "large" ? (_jsxs(Button, { onClick: () => setOpen(true), className: "group dark:bg-muted text-muted-foreground hover:bg-muted focus-visible:bg-background focus-visible:ring-primary relative mx-auto flex h-12 w-full max-w-4xl items-center justify-start rounded-full bg-neutral-100 px-4 pl-12 text-base font-medium transition-colors focus-visible:ring-1 focus-visible:outline-hidden", children: [_jsx("div", { className: "text-muted-foreground group-focus-within:text-primary absolute top-1/2 left-4 -translate-y-1/2 transition-colors", children: _jsx(SearchIcon, { className: "h-5 w-5" }) }), triggerLabel, _jsxs("kbd", { className: "bg-muted pointer-events-none absolute top-1/2 right-4 hidden h-6 -translate-y-1/2 items-center gap-1 rounded border px-2 font-mono text-[11px] font-medium opacity-100 select-none sm:flex", children: [_jsx("span", { className: "text-xs", children: "\u2318" }), "K"] })] })) : (_jsxs(Button, { onClick: () => setOpen(true), className: "group dark:bg-muted text-muted-foreground hover:bg-muted focus-visible:bg-background focus-visible:ring-primary relative flex h-9 w-full items-center justify-start rounded-full bg-neutral-100 px-4 text-sm font-medium transition-colors focus-visible:ring-1 focus-visible:outline-hidden sm:w-64 lg:w-80", children: [_jsx(SearchIcon, { className: "mr-2 h-4 w-4" }), _jsx("span", { className: "hidden lg:inline-flex", children: triggerLabel }), _jsx("span", { className: "lg:hidden", children: "Search..." }), _jsxs("kbd", { className: "dark:bg-muted pointer-events-none absolute top-1/2 right-2 hidden h-5 -translate-y-1/2 items-center gap-1 rounded-lg border bg-neutral-50 px-1.5 font-mono text-[10px] font-medium opacity-100 select-none sm:flex", children: [_jsx("span", { className: "text-xs", children: "\u2318" }), "K"] })] })), _jsxs(CommandDialog, { open: open, onOpenChange: setOpen, children: [_jsx(CommandInput, { placeholder: placeholder }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: "No results found." }), recentActivity.length > 0 && (_jsx(CommandGroup, { heading: "Recent Activity", children: recentActivity.map(renderItem) })), groups.map((group) => group.entries.length > 0 ? (_jsx(CommandGroup, { heading: group.heading, children: group.entries.map(renderItem) }, group.heading)) : null)] })] })] }));
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=search-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-command.js","sourceRoot":"","sources":["../../../src/ui/aevr/search-command.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-toggle.d.ts","sourceRoot":"","sources":["../../../src/ui/aevr/theme-toggle.tsx"],"names":[],"mappings":"AAQA,wBAAgB,WAAW,4CAsD1B"}
|