@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,19 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
import { TableCell, TableRow } from '../ui/table.js';
|
|
5
|
+
import { Button } from '../ui/button.js';
|
|
6
|
+
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '../ui/select.js';
|
|
7
|
+
import { RoleBadge } from './RoleBadge.js';
|
|
8
|
+
import { ConfirmDialog } from './ConfirmDialog.js';
|
|
9
|
+
import { UserX } from 'lucide-react';
|
|
10
|
+
export function MemberRow({ user, currentUserEmail, canManage, onRoleChange, onRemove, removing, }) {
|
|
11
|
+
const [confirmOpen, setConfirmOpen] = useState(false);
|
|
12
|
+
const isSelf = user.email.toLowerCase() === currentUserEmail?.toLowerCase();
|
|
13
|
+
const initials = (user.name ?? user.email).slice(0, 2).toUpperCase();
|
|
14
|
+
return (_jsxs(TableRow, { children: [_jsx(TableCell, { children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-muted text-xs font-semibold", children: initials }), _jsxs("div", { className: "min-w-0", children: [user.name && _jsx("p", { className: "truncate text-sm font-medium", children: user.name }), _jsx("p", { className: "truncate text-xs text-muted-foreground", children: user.email })] })] }) }), _jsx(TableCell, { children: canManage && !isSelf && onRoleChange ? (_jsxs(Select, { defaultValue: user.role, onValueChange: (v) => onRoleChange(user.id, v), children: [_jsx(SelectTrigger, { className: "h-7 w-28 text-xs", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "admin", children: "Admin" }), _jsx(SelectItem, { value: "publisher", children: "Publisher" }), _jsx(SelectItem, { value: "editor", children: "Editor" })] })] })) : (_jsx(RoleBadge, { role: user.role })) }), _jsx(TableCell, { className: "text-xs text-muted-foreground", children: new Date(user.createdAt * 1000).toLocaleDateString() }), _jsx(TableCell, { className: "text-right", children: canManage && !isSelf && onRemove && (_jsx(ConfirmDialog, { trigger: _jsx(Button, { variant: "ghost", size: "icon", className: "h-7 w-7 text-muted-foreground hover:text-destructive", children: _jsx(UserX, { className: "h-3.5 w-3.5" }) }), open: confirmOpen, onOpenChange: setConfirmOpen, title: "Remove member", description: `Remove ${user.name ?? user.email} from the team?`, confirmLabel: "Remove", loading: removing, onConfirm: () => {
|
|
15
|
+
onRemove(user.id);
|
|
16
|
+
setConfirmOpen(false);
|
|
17
|
+
} })) })] }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=MemberRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemberRow.js","sourceRoot":"","sources":["../../src/components/MemberRow.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface PageHeaderProps {
|
|
2
|
+
title: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
actions?: React.ReactNode;
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function PageHeader({ title, description, actions, className }: PageHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=PageHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageHeader.d.ts","sourceRoot":"","sources":["../../src/components/PageHeader.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,eAAe,2CAUrF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from '../lib/utils.js';
|
|
4
|
+
export function PageHeader({ title, description, actions, className }) {
|
|
5
|
+
return (_jsxs("div", { className: cn('flex items-start justify-between gap-4', className), children: [_jsxs("div", { className: "space-y-0.5", children: [_jsx("h2", { className: "text-base font-semibold leading-tight", children: title }), description && _jsx("p", { className: "text-sm text-muted-foreground", children: description })] }), actions && _jsx("div", { className: "flex shrink-0 items-center gap-2", children: actions })] }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=PageHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageHeader.js","sourceRoot":"","sources":["../../src/components/PageHeader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AASpC,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAmB;IACpF,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,wCAAwC,EAAE,SAAS,CAAC,aACrE,eAAK,SAAS,EAAC,aAAa,aAC1B,aAAI,SAAS,EAAC,uCAAuC,YAAE,KAAK,GAAM,EACjE,WAAW,IAAI,YAAG,SAAS,EAAC,+BAA+B,YAAE,WAAW,GAAK,IAC1E,EACL,OAAO,IAAI,cAAK,SAAS,EAAC,kCAAkC,YAAE,OAAO,GAAO,IACzE,CACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type CmsRole = 'admin' | 'publisher' | 'editor';
|
|
2
|
+
export interface RoleBadgeProps {
|
|
3
|
+
role: CmsRole;
|
|
4
|
+
className?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function RoleBadge({ role, className }: RoleBadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=RoleBadge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoleBadge.d.ts","sourceRoot":"","sources":["../../src/components/RoleBadge.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAA;AAQtD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,cAAc,2CAY5D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from '../lib/utils.js';
|
|
4
|
+
const ROLE_STYLES = {
|
|
5
|
+
admin: 'bg-violet-100 text-violet-800 dark:bg-violet-900/30 dark:text-violet-300',
|
|
6
|
+
publisher: 'bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-300',
|
|
7
|
+
editor: 'bg-slate-100 text-slate-700 dark:bg-slate-800 dark:text-slate-300',
|
|
8
|
+
};
|
|
9
|
+
export function RoleBadge({ role, className }) {
|
|
10
|
+
return (_jsx("span", { className: cn('inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium capitalize', ROLE_STYLES[role], className), children: role }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=RoleBadge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoleBadge.js","sourceRoot":"","sources":["../../src/components/RoleBadge.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAIpC,MAAM,WAAW,GAA4B;IAC3C,KAAK,EAAM,0EAA0E;IACrF,SAAS,EAAE,kEAAkE;IAC7E,MAAM,EAAK,mEAAmE;CAC/E,CAAA;AAOD,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAkB;IAC3D,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,kFAAkF,EAClF,WAAW,CAAC,IAAI,CAAC,EACjB,SAAS,CACV,YAEA,IAAI,GACA,CACR,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface StatusBadgeProps {
|
|
2
|
+
published: boolean;
|
|
3
|
+
/** ISO string or Date — when set and in future, shows "Scheduled" */
|
|
4
|
+
publishedAt?: string | Date | null;
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function StatusBadge({ published, publishedAt, className }: StatusBadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=StatusBadge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../src/components/StatusBadge.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAA;IAClB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CAwBlF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from '../lib/utils.js';
|
|
4
|
+
export function StatusBadge({ published, publishedAt, className }) {
|
|
5
|
+
const isScheduled = published &&
|
|
6
|
+
publishedAt != null &&
|
|
7
|
+
new Date(publishedAt).getTime() > Date.now();
|
|
8
|
+
const label = !published ? 'Draft' : isScheduled ? 'Scheduled' : 'Published';
|
|
9
|
+
const styles = !published
|
|
10
|
+
? 'bg-slate-100 text-slate-600 dark:bg-slate-800 dark:text-slate-400'
|
|
11
|
+
: isScheduled
|
|
12
|
+
? 'bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-300'
|
|
13
|
+
: 'bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-300';
|
|
14
|
+
return (_jsx("span", { className: cn('inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium', styles, className), children: label }));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=StatusBadge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusBadge.js","sourceRoot":"","sources":["../../src/components/StatusBadge.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AASpC,MAAM,UAAU,WAAW,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAoB;IACjF,MAAM,WAAW,GACf,SAAS;QACT,WAAW,IAAI,IAAI;QACnB,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAE9C,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAA;IAC5E,MAAM,MAAM,GAAG,CAAC,SAAS;QACvB,CAAC,CAAC,mEAAmE;QACrE,CAAC,CAAC,WAAW;YACX,CAAC,CAAC,sEAAsE;YACxE,CAAC,CAAC,8EAA8E,CAAA;IAEpF,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,uEAAuE,EACvE,MAAM,EACN,SAAS,CACV,YAEA,KAAK,GACD,CACR,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface TagInputProps {
|
|
2
|
+
id?: string;
|
|
3
|
+
value: string[];
|
|
4
|
+
onChange: (value: string[]) => void;
|
|
5
|
+
placeholder?: string;
|
|
6
|
+
/** Restrict choices to these options (multiselect). Omit for free-form (list). */
|
|
7
|
+
options?: string[];
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function TagInput({ id, value, onChange, placeholder, options, disabled, className, }: TagInputProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=TagInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagInput.d.ts","sourceRoot":"","sources":["../../src/components/TagInput.tsx"],"names":[],"mappings":"AAmBA,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACnC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,QAAQ,CAAC,EACvB,EAAE,EACF,KAAK,EACL,QAAQ,EACR,WAAoB,EACpB,OAAO,EACP,QAAQ,EACR,SAAS,GACV,EAAE,aAAa,2CA6If"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useRef } from 'react';
|
|
4
|
+
import { X } from 'lucide-react';
|
|
5
|
+
import { cn } from '../lib/utils.js';
|
|
6
|
+
export function TagInput({ id, value, onChange, placeholder = 'Add…', options, disabled, className, }) {
|
|
7
|
+
const [input, setInput] = useState('');
|
|
8
|
+
const [open, setOpen] = useState(false);
|
|
9
|
+
const inputRef = useRef(null);
|
|
10
|
+
const containerRef = useRef(null);
|
|
11
|
+
const isFreeForm = !options;
|
|
12
|
+
const suggestions = options
|
|
13
|
+
? options.filter((o) => !value.includes(o) &&
|
|
14
|
+
(input === '' || o.toLowerCase().includes(input.toLowerCase())))
|
|
15
|
+
: [];
|
|
16
|
+
function add(tag) {
|
|
17
|
+
const trimmed = tag.trim();
|
|
18
|
+
if (!trimmed)
|
|
19
|
+
return;
|
|
20
|
+
if (options && !options.includes(trimmed))
|
|
21
|
+
return; // strict match for multiselect
|
|
22
|
+
if (value.includes(trimmed))
|
|
23
|
+
return;
|
|
24
|
+
onChange([...value, trimmed]);
|
|
25
|
+
setInput('');
|
|
26
|
+
setOpen(true);
|
|
27
|
+
inputRef.current?.focus();
|
|
28
|
+
}
|
|
29
|
+
function remove(tag) {
|
|
30
|
+
onChange(value.filter((v) => v !== tag));
|
|
31
|
+
}
|
|
32
|
+
function handleKeyDown(e) {
|
|
33
|
+
if (e.key === 'Enter' || e.key === 'Tab') {
|
|
34
|
+
if (input) {
|
|
35
|
+
e.preventDefault();
|
|
36
|
+
if (isFreeForm) {
|
|
37
|
+
add(input);
|
|
38
|
+
}
|
|
39
|
+
else if (suggestions.length > 0) {
|
|
40
|
+
// Pick the first exact match or first suggestion
|
|
41
|
+
const exact = suggestions.find((s) => s.toLowerCase() === input.toLowerCase());
|
|
42
|
+
add(exact ?? suggestions[0]);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else if (e.key === ',') {
|
|
47
|
+
if (isFreeForm && input) {
|
|
48
|
+
e.preventDefault();
|
|
49
|
+
add(input);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else if (e.key === 'Backspace' && input === '' && value.length > 0) {
|
|
53
|
+
onChange(value.slice(0, -1));
|
|
54
|
+
}
|
|
55
|
+
else if (e.key === 'Escape') {
|
|
56
|
+
setOpen(false);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function handleInputChange(text) {
|
|
60
|
+
setInput(text);
|
|
61
|
+
setOpen(true);
|
|
62
|
+
// Free-form: handle inline comma-pasting (e.g. paste "a, b, c")
|
|
63
|
+
if (isFreeForm && text.includes(',')) {
|
|
64
|
+
const parts = text.split(',').map((s) => s.trim()).filter(Boolean);
|
|
65
|
+
const last = parts.pop() ?? '';
|
|
66
|
+
const newTags = parts.filter((p) => !value.includes(p));
|
|
67
|
+
if (newTags.length)
|
|
68
|
+
onChange([...value, ...newTags]);
|
|
69
|
+
setInput(last);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const showDropdown = !isFreeForm && open && suggestions.length > 0;
|
|
74
|
+
return (_jsxs("div", { className: "relative", ref: containerRef, children: [_jsxs("div", { className: cn('flex flex-wrap gap-1.5 min-h-9 w-full rounded-3xl border border-transparent bg-input/50', 'px-3 py-1.5 transition-[color,box-shadow,background-color]', 'focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/30', disabled && 'opacity-50 pointer-events-none', className), onClick: () => inputRef.current?.focus(), children: [value.map((tag) => (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-full border bg-muted pl-2.5 pr-1.5 py-0.5 text-xs font-medium leading-none", children: [tag, _jsx("button", { type: "button", tabIndex: -1, onClick: (e) => { e.stopPropagation(); remove(tag); }, className: "flex items-center justify-center rounded-full text-muted-foreground hover:text-foreground hover:bg-foreground/10 transition-colors h-3.5 w-3.5", "aria-label": `Remove ${tag}`, children: _jsx(X, { className: "h-2.5 w-2.5" }) })] }, tag))), _jsx("input", { ref: inputRef, id: id, type: "text", value: input, onChange: (e) => handleInputChange(e.target.value), onKeyDown: handleKeyDown, onFocus: () => setOpen(true), onBlur: () => setTimeout(() => setOpen(false), 150), placeholder: value.length === 0 ? placeholder : '', disabled: disabled, className: "flex-1 min-w-[6rem] bg-transparent text-sm outline-none placeholder:text-muted-foreground", autoComplete: "off" })] }), showDropdown && (_jsx("div", { className: "absolute z-10 mt-1 w-full rounded-xl border bg-popover shadow-md overflow-hidden", children: _jsx("ul", { className: "max-h-48 overflow-y-auto py-1", children: suggestions.map((opt) => (_jsx("li", { children: _jsx("button", { type: "button", onMouseDown: (e) => { e.preventDefault(); add(opt); }, className: cn('w-full text-left px-3 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground transition-colors', input && opt.toLowerCase() === input.toLowerCase() && 'bg-accent/50'), children: opt }) }, opt))) }) }))] }));
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=TagInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagInput.js","sourceRoot":"","sources":["../../src/components/TagInput.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAiB,MAAM,OAAO,CAAA;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAChC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AA0BpC,MAAM,UAAU,QAAQ,CAAC,EACvB,EAAE,EACF,KAAK,EACL,QAAQ,EACR,WAAW,GAAG,MAAM,EACpB,OAAO,EACP,QAAQ,EACR,SAAS,GACK;IACd,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAA;IAC/C,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAEjD,MAAM,UAAU,GAAG,CAAC,OAAO,CAAA;IAE3B,MAAM,WAAW,GAAG,OAAO;QACzB,CAAC,CAAC,OAAO,CAAC,MAAM,CACZ,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClB,CAAC,KAAK,KAAK,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAClE;QACH,CAAC,CAAC,EAAE,CAAA;IAEN,SAAS,GAAG,CAAC,GAAW;QACtB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAC1B,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAM,CAAC,+BAA+B;QACjF,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAM;QACnC,QAAQ,CAAC,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;QAC7B,QAAQ,CAAC,EAAE,CAAC,CAAA;QACZ,OAAO,CAAC,IAAI,CAAC,CAAA;QACb,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;IAC3B,CAAC;IAED,SAAS,MAAM,CAAC,GAAW;QACzB,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,SAAS,aAAa,CAAC,CAAkC;QACvD,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACzC,IAAI,KAAK,EAAE,CAAC;gBACV,CAAC,CAAC,cAAc,EAAE,CAAA;gBAClB,IAAI,UAAU,EAAE,CAAC;oBACf,GAAG,CAAC,KAAK,CAAC,CAAA;gBACZ,CAAC;qBAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,iDAAiD;oBACjD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;oBAC9E,GAAG,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC,CAAE,CAAC,CAAA;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACzB,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;gBACxB,CAAC,CAAC,cAAc,EAAE,CAAA;gBAClB,GAAG,CAAC,KAAK,CAAC,CAAA;YACZ,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9B,CAAC;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC;IACH,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAY;QACrC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,OAAO,CAAC,IAAI,CAAC,CAAA;QACb,gEAAgE;QAChE,IAAI,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAClE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;YAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;YACvD,IAAI,OAAO,CAAC,MAAM;gBAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,CAAA;YACpD,QAAQ,CAAC,IAAI,CAAC,CAAA;YACd,OAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,UAAU,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAA;IAElE,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,EAAC,GAAG,EAAE,YAAY,aAEzC,eACE,SAAS,EAAE,EAAE,CACX,yFAAyF,EACzF,4DAA4D,EAC5D,wEAAwE,EACxE,QAAQ,IAAI,gCAAgC,EAC5C,SAAS,CACV,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,aAEvC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAClB,gBAEE,SAAS,EAAC,mHAAmH,aAE5H,GAAG,EACJ,iBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,CAAC,EACZ,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC,EACpD,SAAS,EAAC,gJAAgJ,gBAC9I,UAAU,GAAG,EAAE,YAE3B,KAAC,CAAC,IAAC,SAAS,EAAC,aAAa,GAAG,GACtB,KAZJ,GAAG,CAaH,CACR,CAAC,EAEF,gBACE,GAAG,EAAE,QAAQ,EACb,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAClD,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAC5B,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EACnD,WAAW,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAClD,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,2FAA2F,EACrG,YAAY,EAAC,KAAK,GAClB,IACE,EAGL,YAAY,IAAI,CACf,cAAK,SAAS,EAAC,kFAAkF,YAC/F,aAAI,SAAS,EAAC,+BAA+B,YAC1C,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACxB,uBACE,iBACE,IAAI,EAAC,QAAQ,EACb,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC,EACpD,SAAS,EAAE,EAAE,CACX,qGAAqG,EACrG,KAAK,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,IAAI,cAAc,CACrE,YAEA,GAAG,GACG,IAVF,GAAG,CAWP,CACN,CAAC,GACC,GACD,CACP,IACG,CACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface UploadZoneProps {
|
|
2
|
+
onFiles: (files: File[]) => void;
|
|
3
|
+
accept?: string;
|
|
4
|
+
multiple?: boolean;
|
|
5
|
+
uploading?: boolean;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function UploadZone({ onFiles, accept, multiple, uploading, className, }: UploadZoneProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=UploadZone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UploadZone.d.ts","sourceRoot":"","sources":["../../src/components/UploadZone.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,MAAkB,EAClB,QAAe,EACf,SAAS,EACT,SAAS,GACV,EAAE,eAAe,2CAgDjB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useRef, useState } from 'react';
|
|
4
|
+
import { Upload } from 'lucide-react';
|
|
5
|
+
import { Button } from '../ui/button.js';
|
|
6
|
+
import { cn } from '../lib/utils.js';
|
|
7
|
+
export function UploadZone({ onFiles, accept = 'image/*', multiple = true, uploading, className, }) {
|
|
8
|
+
const inputRef = useRef(null);
|
|
9
|
+
const [dragging, setDragging] = useState(false);
|
|
10
|
+
function handleFiles(fileList) {
|
|
11
|
+
if (!fileList)
|
|
12
|
+
return;
|
|
13
|
+
onFiles(Array.from(fileList));
|
|
14
|
+
}
|
|
15
|
+
return (_jsxs("div", { className: cn('relative flex flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed p-8 transition-colors', dragging ? 'border-primary bg-primary/5' : 'border-muted-foreground/25 hover:border-muted-foreground/50', uploading && 'pointer-events-none opacity-50', className), onDragOver: (e) => { e.preventDefault(); setDragging(true); }, onDragLeave: () => setDragging(false), onDrop: (e) => {
|
|
16
|
+
e.preventDefault();
|
|
17
|
+
setDragging(false);
|
|
18
|
+
handleFiles(e.dataTransfer.files);
|
|
19
|
+
}, children: [_jsx(Upload, { className: "h-8 w-8 text-muted-foreground" }), _jsx("p", { className: "text-sm text-muted-foreground text-center", children: uploading ? 'Uploading…' : 'Drag & drop files here, or' }), !uploading && (_jsx(Button, { variant: "outline", size: "sm", onClick: () => inputRef.current?.click(), children: "Browse files" })), _jsx("input", { ref: inputRef, type: "file", accept: accept, multiple: multiple, className: "sr-only", onChange: (e) => handleFiles(e.target.files) })] }));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=UploadZone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UploadZone.js","sourceRoot":"","sources":["../../src/components/UploadZone.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAUpC,MAAM,UAAU,UAAU,CAAC,EACzB,OAAO,EACP,MAAM,GAAG,SAAS,EAClB,QAAQ,GAAG,IAAI,EACf,SAAS,EACT,SAAS,GACO;IAChB,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAA;IAC/C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE/C,SAAS,WAAW,CAAC,QAAyB;QAC5C,IAAI,CAAC,QAAQ;YAAE,OAAM;QACrB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,kHAAkH,EAClH,QAAQ,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,6DAA6D,EACxG,SAAS,IAAI,gCAAgC,EAC7C,SAAS,CACV,EACD,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,EAC5D,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EACrC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,CAAC,CAAC,cAAc,EAAE,CAAA;YAClB,WAAW,CAAC,KAAK,CAAC,CAAA;YAClB,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACnC,CAAC,aAED,KAAC,MAAM,IAAC,SAAS,EAAC,+BAA+B,GAAG,EACpD,YAAG,SAAS,EAAC,2CAA2C,YACrD,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,4BAA4B,GACtD,EACH,CAAC,SAAS,IAAI,CACb,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,6BAGjC,CACV,EACD,gBACE,GAAG,EAAE,QAAQ,EACb,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,SAAS,EACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAC5C,IACE,CACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export { ConfirmDialog } from './ConfirmDialog.js';
|
|
2
|
+
export type { ConfirmDialogProps } from './ConfirmDialog.js';
|
|
3
|
+
export { EmptyState } from './EmptyState.js';
|
|
4
|
+
export type { EmptyStateProps } from './EmptyState.js';
|
|
5
|
+
export { PageHeader } from './PageHeader.js';
|
|
6
|
+
export type { PageHeaderProps } from './PageHeader.js';
|
|
7
|
+
export { RoleBadge } from './RoleBadge.js';
|
|
8
|
+
export type { RoleBadgeProps, CmsRole } from './RoleBadge.js';
|
|
9
|
+
export { StatusBadge } from './StatusBadge.js';
|
|
10
|
+
export type { StatusBadgeProps } from './StatusBadge.js';
|
|
11
|
+
export { EntryRow } from './EntryRow.js';
|
|
12
|
+
export type { EntryRowProps } from './EntryRow.js';
|
|
13
|
+
export { MediaCard } from './MediaCard.js';
|
|
14
|
+
export type { MediaCardProps } from './MediaCard.js';
|
|
15
|
+
export { UploadZone } from './UploadZone.js';
|
|
16
|
+
export type { UploadZoneProps } from './UploadZone.js';
|
|
17
|
+
export { MemberRow } from './MemberRow.js';
|
|
18
|
+
export type { MemberRowProps, CmsUser } from './MemberRow.js';
|
|
19
|
+
export { InviteRow } from './InviteRow.js';
|
|
20
|
+
export type { InviteRowProps, CmsInvite } from './InviteRow.js';
|
|
21
|
+
export { ErrorAlert } from './ErrorAlert.js';
|
|
22
|
+
export type { ErrorAlertProps } from './ErrorAlert.js';
|
|
23
|
+
export { TagInput } from './TagInput.js';
|
|
24
|
+
export type { TagInputProps } from './TagInput.js';
|
|
25
|
+
export { CmsAdminHeader } from './CmsAdminHeader.js';
|
|
26
|
+
export type { CmsAdminHeaderProps } from './CmsAdminHeader.js';
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Tier 2 — Airdraft-specific composed components
|
|
2
|
+
export { ConfirmDialog } from './ConfirmDialog.js';
|
|
3
|
+
export { EmptyState } from './EmptyState.js';
|
|
4
|
+
export { PageHeader } from './PageHeader.js';
|
|
5
|
+
export { RoleBadge } from './RoleBadge.js';
|
|
6
|
+
export { StatusBadge } from './StatusBadge.js';
|
|
7
|
+
export { EntryRow } from './EntryRow.js';
|
|
8
|
+
export { MediaCard } from './MediaCard.js';
|
|
9
|
+
export { UploadZone } from './UploadZone.js';
|
|
10
|
+
export { MemberRow } from './MemberRow.js';
|
|
11
|
+
export { InviteRow } from './InviteRow.js';
|
|
12
|
+
export { ErrorAlert } from './ErrorAlert.js';
|
|
13
|
+
export { TagInput } from './TagInput.js';
|
|
14
|
+
export { CmsAdminHeader } from './CmsAdminHeader.js';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG5C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG5C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG1C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGxC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-mobile.d.ts","sourceRoot":"","sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,YAc1B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
const MOBILE_BREAKPOINT = 768;
|
|
3
|
+
export function useIsMobile() {
|
|
4
|
+
const [isMobile, setIsMobile] = React.useState(undefined);
|
|
5
|
+
React.useEffect(() => {
|
|
6
|
+
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
7
|
+
const onChange = () => {
|
|
8
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
9
|
+
};
|
|
10
|
+
mql.addEventListener("change", onChange);
|
|
11
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
12
|
+
return () => mql.removeEventListener("change", onChange);
|
|
13
|
+
}, []);
|
|
14
|
+
return !!isMobile;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=use-mobile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-mobile.js","sourceRoot":"","sources":["../../src/hooks/use-mobile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAsB,SAAS,CAAC,CAAA;IAE9E,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,iBAAiB,GAAG,CAAC,KAAK,CAAC,CAAA;QACxE,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAA;QACpD,CAAC,CAAA;QACD,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACxC,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAA;QAClD,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC1D,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CAAC,CAAC,QAAQ,CAAA;AACnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMediaQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useMediaQuery.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAapD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
export function useMediaQuery(query) {
|
|
4
|
+
const [matches, setMatches] = useState(false);
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
if (typeof window === 'undefined')
|
|
7
|
+
return;
|
|
8
|
+
const mq = window.matchMedia(query);
|
|
9
|
+
setMatches(mq.matches);
|
|
10
|
+
const listener = (e) => setMatches(e.matches);
|
|
11
|
+
mq.addEventListener('change', listener);
|
|
12
|
+
return () => mq.removeEventListener('change', listener);
|
|
13
|
+
}, [query]);
|
|
14
|
+
return matches;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=useMediaQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMediaQuery.js","sourceRoot":"","sources":["../../src/hooks/useMediaQuery.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE7C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAM;QACzC,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACnC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;QACtB,MAAM,QAAQ,GAAG,CAAC,CAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAClE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACvC,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACzD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export { SchemaEditor } from './SchemaEditor.js';
|
|
2
|
+
export type { SchemaEditorProps } from './SchemaEditor.js';
|
|
3
|
+
export { SchemaEditorRoot, useSchemaEditorContext } from './SchemaEditorRoot.js';
|
|
4
|
+
export type { SchemaEditorRootProps, SchemaEditorLabels } from './SchemaEditorRoot.js';
|
|
5
|
+
export { SchemaEditorSidebar } from './SchemaEditorSidebar.js';
|
|
6
|
+
export { SchemaEditorContent } from './SchemaEditorContent.js';
|
|
7
|
+
export { SchemaEditorFieldDrawer } from './SchemaEditorFieldDrawer.js';
|
|
8
|
+
export { AuditLogViewer } from './AuditLogViewer.js';
|
|
9
|
+
export type { AuditLogViewerProps, AuditEventRecord } from './AuditLogViewer.js';
|
|
10
|
+
export { CollectionsIndex } from './CollectionsIndex.js';
|
|
11
|
+
export type { CollectionsIndexProps } from './CollectionsIndex.js';
|
|
12
|
+
export { ContentManager } from './ContentManager.js';
|
|
13
|
+
export type { ContentManagerProps } from './ContentManager.js';
|
|
14
|
+
export { EntryEditor } from './EntryEditor.js';
|
|
15
|
+
export type { EntryEditorProps } from './EntryEditor.js';
|
|
16
|
+
export { MediaManager } from './MediaManager.js';
|
|
17
|
+
export type { MediaManagerProps } from './MediaManager.js';
|
|
18
|
+
export { TeamManager } from './TeamManager.js';
|
|
19
|
+
export type { TeamManagerProps } from './TeamManager.js';
|
|
20
|
+
export { LoginForm } from './LoginForm.js';
|
|
21
|
+
export type { LoginFormProps } from './LoginForm.js';
|
|
22
|
+
export { AcceptInviteForm } from './AcceptInviteForm.js';
|
|
23
|
+
export type { AcceptInviteFormProps } from './AcceptInviteForm.js';
|
|
24
|
+
export { ConfirmDialog, EmptyState, PageHeader, RoleBadge, StatusBadge, EntryRow, MediaCard, UploadZone, MemberRow, InviteRow, ErrorAlert, CmsAdminHeader, } from './components/index.js';
|
|
25
|
+
export type { ConfirmDialogProps, EmptyStateProps, PageHeaderProps, RoleBadgeProps, CmsRole, StatusBadgeProps, EntryRowProps, MediaCardProps, UploadZoneProps, MemberRowProps, CmsUser, InviteRowProps, CmsInvite, ErrorAlertProps, TagInput, TagInputProps, CmsAdminHeaderProps, } from './components/index.js';
|
|
26
|
+
export { useMediaQuery } from './hooks/useMediaQuery.js';
|
|
27
|
+
export { FIELD_TYPE_META, RESERVED_COLLECTION_NAMES, validateFieldKey, generateFieldKey, validateCollectionName, applyFieldUpdate, applyFieldDelete, buildDefaultPath, } from '@airdraft/ui-core';
|
|
28
|
+
export type { FieldTypeMeta } from '@airdraft/ui-core';
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAG1D,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAChF,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAEtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAGlE,OAAO,EACL,aAAa,EACb,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,cAAc,GACf,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,OAAO,EACP,cAAc,EACd,SAAS,EACT,eAAe,EACf,QAAQ,EACR,aAAa,EACb,mBAAmB,GACpB,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAGxD,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Schema editor — Tier 3 drop-in
|
|
2
|
+
export { SchemaEditor } from './SchemaEditor.js';
|
|
3
|
+
// Schema editor — Tier 2 composable slots
|
|
4
|
+
export { SchemaEditorRoot, useSchemaEditorContext } from './SchemaEditorRoot.js';
|
|
5
|
+
export { SchemaEditorSidebar } from './SchemaEditorSidebar.js';
|
|
6
|
+
export { SchemaEditorContent } from './SchemaEditorContent.js';
|
|
7
|
+
export { SchemaEditorFieldDrawer } from './SchemaEditorFieldDrawer.js';
|
|
8
|
+
export { AuditLogViewer } from './AuditLogViewer.js';
|
|
9
|
+
// Tier 3 drop-in compounds
|
|
10
|
+
export { CollectionsIndex } from './CollectionsIndex.js';
|
|
11
|
+
export { ContentManager } from './ContentManager.js';
|
|
12
|
+
export { EntryEditor } from './EntryEditor.js';
|
|
13
|
+
export { MediaManager } from './MediaManager.js';
|
|
14
|
+
export { TeamManager } from './TeamManager.js';
|
|
15
|
+
export { LoginForm } from './LoginForm.js';
|
|
16
|
+
export { AcceptInviteForm } from './AcceptInviteForm.js';
|
|
17
|
+
// Tier 2 shared components
|
|
18
|
+
export { ConfirmDialog, EmptyState, PageHeader, RoleBadge, StatusBadge, EntryRow, MediaCard, UploadZone, MemberRow, InviteRow, ErrorAlert, CmsAdminHeader, } from './components/index.js';
|
|
19
|
+
// Hooks
|
|
20
|
+
export { useMediaQuery } from './hooks/useMediaQuery.js';
|
|
21
|
+
// Re-export ui-core utilities so consumers can do: import { FIELD_TYPE_META } from '@airdraft/react-ui'
|
|
22
|
+
export { FIELD_TYPE_META, RESERVED_COLLECTION_NAMES, validateFieldKey, generateFieldKey, validateCollectionName, applyFieldUpdate, applyFieldDelete, buildDefaultPath, } from '@airdraft/ui-core';
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,0CAA0C;AAC1C,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGpD,2BAA2B;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAGxD,2BAA2B;AAC3B,OAAO,EACL,aAAa,EACb,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,cAAc,GACf,MAAM,uBAAuB,CAAA;AAqB9B,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,wGAAwG;AACxG,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AAG5C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,MAAM,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC,MAAM,UAAU,EAAE,CAAC,GAAG,MAAoB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AAC9B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Accordion as AccordionPrimitive } from "radix-ui";
|
|
3
|
+
declare function Accordion({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function AccordionItem({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare function AccordionTrigger({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function AccordionContent({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
|
|
8
|
+
//# sourceMappingURL=accordion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../src/ui/accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAK1D,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,2CAWtD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,2CAQtD;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,2CAgBzD;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,2CAiBzD;AAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Accordion as AccordionPrimitive } from "radix-ui";
|
|
4
|
+
import { cn } from "../lib/utils";
|
|
5
|
+
import { ChevronDownIcon } from "lucide-react";
|
|
6
|
+
function Accordion({ className, ...props }) {
|
|
7
|
+
return (_jsx(AccordionPrimitive.Root, { "data-slot": "accordion", className: cn("flex w-full flex-col overflow-hidden rounded-2xl border", className), ...props }));
|
|
8
|
+
}
|
|
9
|
+
function AccordionItem({ className, ...props }) {
|
|
10
|
+
return (_jsx(AccordionPrimitive.Item, { "data-slot": "accordion-item", className: cn("not-last:border-b data-open:bg-muted/50", className), ...props }));
|
|
11
|
+
}
|
|
12
|
+
function AccordionTrigger({ className, children, ...props }) {
|
|
13
|
+
return (_jsx(AccordionPrimitive.Header, { className: "flex", children: _jsxs(AccordionPrimitive.Trigger, { "data-slot": "accordion-trigger", className: cn("group/accordion-trigger relative flex flex-1 items-start justify-between gap-6 border border-transparent p-4 text-left text-sm font-medium transition-all outline-none hover:underline disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground", className), ...props, children: [children, _jsx(ChevronDownIcon, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none shrink-0 transition-transform duration-200 group-data-[state=open]/accordion-trigger:rotate-180" })] }) }));
|
|
14
|
+
}
|
|
15
|
+
function AccordionContent({ className, children, ...props }) {
|
|
16
|
+
return (_jsx(AccordionPrimitive.Content, { "data-slot": "accordion-content", className: "overflow-hidden px-4 text-sm data-open:animate-accordion-down data-closed:animate-accordion-up", ...props, children: _jsx("div", { className: cn("h-(--radix-accordion-content-height) pt-0 pb-4 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4", className), children: children }) }));
|
|
17
|
+
}
|
|
18
|
+
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
|
|
19
|
+
//# sourceMappingURL=accordion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../src/ui/accordion.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAE1D,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,SAAS,SAAS,CAAC,EACjB,SAAS,EACT,GAAG,KAAK,EAC6C;IACrD,OAAO,CACL,KAAC,kBAAkB,CAAC,IAAI,iBACZ,WAAW,EACrB,SAAS,EAAE,EAAE,CACX,yDAAyD,EACzD,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EAC6C;IACrD,OAAO,CACL,KAAC,kBAAkB,CAAC,IAAI,iBACZ,gBAAgB,EAC1B,SAAS,EAAE,EAAE,CAAC,yCAAyC,EAAE,SAAS,CAAC,KAC/D,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACgD;IACxD,OAAO,CACL,KAAC,kBAAkB,CAAC,MAAM,IAAC,SAAS,EAAC,MAAM,YACzC,MAAC,kBAAkB,CAAC,OAAO,iBACf,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CACX,gYAAgY,EAChY,SAAS,CACV,KACG,KAAK,aAER,QAAQ,EACT,KAAC,eAAe,iBAAW,wBAAwB,EAAC,SAAS,EAAC,qHAAqH,GAAG,IAC3J,GACH,CAC7B,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACgD;IACxD,OAAO,CACL,KAAC,kBAAkB,CAAC,OAAO,iBACf,mBAAmB,EAC7B,SAAS,EAAC,gGAAgG,KACtG,KAAK,YAET,cACE,SAAS,EAAE,EAAE,CACX,iJAAiJ,EACjJ,SAAS,CACV,YAEA,QAAQ,GACL,GACqB,CAC9B,CAAA;AACH,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA"}
|