@m5kdev/web-ui 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/animations/card.motion.d.ts +2 -0
- package/dist/src/animations/card.motion.js +7 -0
- package/dist/src/components/AvatarUpload.d.ts +7 -0
- package/dist/src/components/AvatarUpload.js +67 -0
- package/dist/src/components/Button.d.ts +5 -0
- package/dist/src/components/Button.js +5 -0
- package/dist/src/components/Calendar.d.ts +35 -0
- package/dist/src/components/Calendar.js +10 -0
- package/dist/src/components/CardsSelect.d.ts +23 -0
- package/dist/src/components/CardsSelect.js +46 -0
- package/dist/src/components/CollapsibleSidebarMenuItem.d.ts +9 -0
- package/dist/src/components/CollapsibleSidebarMenuItem.js +11 -0
- package/dist/src/components/ColorPicker.d.ts +4 -0
- package/dist/src/components/ColorPicker.js +21 -0
- package/dist/src/components/CopyButton.d.ts +6 -0
- package/dist/src/components/CopyButton.js +24 -0
- package/dist/src/components/CropDialog.d.ts +10 -0
- package/dist/src/components/CropDialog.js +67 -0
- package/dist/src/components/DialogProvider.d.ts +15 -0
- package/dist/src/components/DialogProvider.js +50 -0
- package/dist/src/components/ErrorFallback.d.ts +4 -0
- package/dist/src/components/ErrorFallback.js +5 -0
- package/dist/src/components/FileDropzone.d.ts +6 -0
- package/dist/src/components/FileDropzone.js +63 -0
- package/dist/src/components/MultiSelectDropdown.d.ts +26 -0
- package/dist/src/components/MultiSelectDropdown.js +53 -0
- package/dist/src/components/Orb.d.ts +6 -0
- package/{src/components/Orb.tsx → dist/src/components/Orb.js} +107 -136
- package/dist/src/components/PageAlert.d.ts +18 -0
- package/dist/src/components/PageAlert.js +48 -0
- package/dist/src/components/SelectChips.d.ts +10 -0
- package/dist/src/components/SelectChips.js +11 -0
- package/dist/src/components/SidebarItem.d.ts +7 -0
- package/dist/src/components/SidebarItem.js +6 -0
- package/dist/src/components/Steps.d.ts +19 -0
- package/dist/src/components/Steps.js +34 -0
- package/dist/src/components/TablerIconPicker.d.ts +2 -0
- package/dist/src/components/TablerIconPicker.js +4238 -0
- package/dist/src/components/app-header.d.ts +6 -0
- package/dist/src/components/app-header.js +8 -0
- package/dist/src/components/blur-card.d.ts +13 -0
- package/dist/src/components/blur-card.js +34 -0
- package/dist/src/components/features-section-demo-1.d.ts +6 -0
- package/dist/src/components/features-section-demo-1.js +53 -0
- package/dist/src/components/features-section-demo-2.d.ts +1 -0
- package/dist/src/components/features-section-demo-2.js +51 -0
- package/dist/src/components/features-section-demo-3.d.ts +8 -0
- package/dist/src/components/features-section-demo-3.js +116 -0
- package/dist/src/components/mode-toggle.d.ts +1 -0
- package/dist/src/components/mode-toggle.js +9 -0
- package/dist/src/components/nav-main.d.ts +13 -0
- package/dist/src/components/nav-main.js +9 -0
- package/dist/src/components/pricing-cards.d.ts +1 -0
- package/dist/src/components/pricing-cards.js +27 -0
- package/dist/src/components/shared/ButtonCopy.d.ts +6 -0
- package/dist/src/components/shared/ButtonCopy.js +24 -0
- package/dist/src/components/team-switcher.d.ts +8 -0
- package/dist/src/components/team-switcher.js +10 -0
- package/dist/src/components/theme-provider.d.ts +13 -0
- package/dist/src/components/theme-provider.js +41 -0
- package/dist/src/components/typewriter.d.ts +18 -0
- package/dist/src/components/typewriter.js +38 -0
- package/dist/src/components/ui/alert-dialog.d.ts +14 -0
- package/dist/src/components/ui/alert-dialog.js +38 -0
- package/dist/src/components/ui/alert.d.ts +9 -0
- package/dist/src/components/ui/alert.js +24 -0
- package/dist/src/components/ui/avatar.d.ts +6 -0
- package/dist/src/components/ui/avatar.js +12 -0
- package/dist/src/components/ui/badge.d.ts +9 -0
- package/dist/src/components/ui/badge.js +20 -0
- package/dist/src/components/ui/bento-grid.d.ts +11 -0
- package/dist/src/components/ui/bento-grid.js +8 -0
- package/dist/src/components/ui/bento-grid2.d.ts +15 -0
- package/dist/src/components/ui/bento-grid2.js +13 -0
- package/dist/src/components/ui/breadcrumb.d.ts +19 -0
- package/dist/src/components/ui/breadcrumb.js +23 -0
- package/dist/src/components/ui/button.d.ts +11 -0
- package/dist/src/components/ui/button.js +33 -0
- package/dist/src/components/ui/card.d.ts +8 -0
- package/dist/src/components/ui/card.js +16 -0
- package/dist/src/components/ui/checkbox.d.ts +4 -0
- package/dist/src/components/ui/checkbox.js +8 -0
- package/dist/src/components/ui/collapsible.d.ts +5 -0
- package/{src/components/ui/collapsible.tsx → dist/src/components/ui/collapsible.js} +5 -9
- package/dist/src/components/ui/dialog.d.ts +13 -0
- package/dist/src/components/ui/dialog.js +35 -0
- package/dist/src/components/ui/dropdown-menu.d.ts +27 -0
- package/dist/src/components/ui/dropdown-menu.js +32 -0
- package/dist/src/components/ui/floating-navbar.d.ts +9 -0
- package/dist/src/components/ui/floating-navbar.js +38 -0
- package/dist/src/components/ui/form.d.ts +23 -0
- package/dist/src/components/ui/form.js +60 -0
- package/dist/src/components/ui/image.d.ts +6 -0
- package/dist/src/components/ui/image.js +15 -0
- package/dist/src/components/ui/input.d.ts +3 -0
- package/dist/src/components/ui/input.js +8 -0
- package/dist/src/components/ui/label.d.ts +5 -0
- package/dist/src/components/ui/label.js +9 -0
- package/dist/src/components/ui/pagination.d.ts +13 -0
- package/dist/src/components/ui/pagination.js +29 -0
- package/dist/src/components/ui/progress.d.ts +4 -0
- package/dist/src/components/ui/progress.js +7 -0
- package/dist/src/components/ui/resizable-navbar.d.ts +56 -0
- package/dist/src/components/ui/resizable-navbar.js +86 -0
- package/dist/src/components/ui/segment-control.d.ts +9 -0
- package/dist/src/components/ui/segment-control.js +42 -0
- package/dist/src/components/ui/select.d.ts +13 -0
- package/dist/src/components/ui/select.js +26 -0
- package/dist/src/components/ui/separator.d.ts +4 -0
- package/dist/src/components/ui/separator.js +7 -0
- package/dist/src/components/ui/sheet.d.ts +25 -0
- package/dist/src/components/ui/sheet.js +37 -0
- package/dist/src/components/ui/sidebar.d.ts +66 -0
- package/dist/src/components/ui/sidebar.js +222 -0
- package/dist/src/components/ui/skeleton.d.ts +2 -0
- package/dist/src/components/ui/skeleton.js +6 -0
- package/dist/src/components/ui/slider.d.ts +4 -0
- package/dist/src/components/ui/slider.js +7 -0
- package/dist/src/components/ui/sonner.d.ts +4 -0
- package/dist/src/components/ui/sonner.js +15 -0
- package/dist/src/components/ui/spinner.d.ts +14 -0
- package/dist/src/components/ui/spinner.js +30 -0
- package/dist/src/components/ui/switch.d.ts +4 -0
- package/dist/src/components/ui/switch.js +7 -0
- package/dist/src/components/ui/table.d.ts +10 -0
- package/dist/src/components/ui/table.js +27 -0
- package/dist/src/components/ui/tabs.d.ts +7 -0
- package/dist/src/components/ui/tabs.js +16 -0
- package/dist/src/components/ui/textarea.d.ts +3 -0
- package/dist/src/components/ui/textarea.js +6 -0
- package/dist/src/components/ui/timeline.d.ts +11 -0
- package/dist/src/components/ui/timeline.js +27 -0
- package/dist/src/components/ui/toast.d.ts +15 -0
- package/dist/src/components/ui/toast.js +33 -0
- package/dist/src/components/ui/tooltip.d.ts +7 -0
- package/dist/src/components/ui/tooltip.js +16 -0
- package/dist/src/components/ui/typewriter-effect.d.ts +16 -0
- package/dist/src/components/ui/typewriter-effect.js +76 -0
- package/dist/src/hooks/use-mobile.d.ts +1 -0
- package/dist/src/hooks/use-mobile.js +15 -0
- package/dist/src/hooks/useDialog.d.ts +4 -0
- package/dist/src/hooks/useDialog.js +22 -0
- package/dist/src/icons/GoogleIcon.d.ts +5 -0
- package/dist/src/icons/GoogleIcon.js +4 -0
- package/dist/src/icons/LinkedInIcon.d.ts +5 -0
- package/dist/src/icons/LinkedInIcon.js +4 -0
- package/dist/src/icons/MicrosoftIcon.d.ts +5 -0
- package/dist/src/icons/MicrosoftIcon.js +4 -0
- package/dist/src/lib/chatwoot.d.ts +11 -0
- package/dist/src/lib/chatwoot.js +28 -0
- package/dist/src/lib/utils.d.ts +2 -0
- package/dist/src/lib/utils.js +5 -0
- package/dist/src/modules/app/components/AppLoader.d.ts +2 -0
- package/dist/src/modules/app/components/AppLoader.js +5 -0
- package/dist/src/modules/app/components/AppShell.d.ts +7 -0
- package/dist/src/modules/app/components/AppShell.js +7 -0
- package/dist/src/modules/app/components/AppSidebar.d.ts +7 -0
- package/dist/src/modules/app/components/AppSidebar.js +5 -0
- package/dist/src/modules/app/components/AppSidebarContent.d.ts +16 -0
- package/dist/src/modules/app/components/AppSidebarContent.js +7 -0
- package/dist/src/modules/app/components/AppSidebarHeader.d.ts +8 -0
- package/dist/src/modules/app/components/AppSidebarHeader.js +10 -0
- package/dist/src/modules/app/components/AppSidebarInvites.d.ts +3 -0
- package/dist/src/modules/app/components/AppSidebarInvites.js +12 -0
- package/dist/src/modules/app/components/AppSidebarUser.d.ts +11 -0
- package/dist/src/modules/app/components/AppSidebarUser.js +16 -0
- package/dist/src/modules/auth/components/AdminUserManagement.d.ts +6 -0
- package/dist/src/modules/auth/components/AdminUserManagement.js +422 -0
- package/dist/src/modules/auth/components/AdminWaitlist.d.ts +6 -0
- package/dist/src/modules/auth/components/AdminWaitlist.js +118 -0
- package/dist/src/modules/auth/components/AuthLayout.d.ts +4 -0
- package/dist/src/modules/auth/components/AuthLayout.js +5 -0
- package/dist/src/modules/auth/components/AuthProviders.d.ts +6 -0
- package/dist/src/modules/auth/components/AuthProviders.js +45 -0
- package/dist/src/modules/auth/components/AuthRouter.d.ts +9 -0
- package/dist/src/modules/auth/components/AuthRouter.js +12 -0
- package/dist/src/modules/auth/components/ClaimAccountRoute.d.ts +4 -0
- package/dist/src/modules/auth/components/ClaimAccountRoute.js +143 -0
- package/dist/src/modules/auth/components/ErrorAuthRoute.d.ts +1 -0
- package/dist/src/modules/auth/components/ErrorAuthRoute.js +93 -0
- package/dist/src/modules/auth/components/ForgotPasswordForm.d.ts +1 -0
- package/dist/src/modules/auth/components/ForgotPasswordForm.js +27 -0
- package/dist/src/modules/auth/components/ForgotPasswordRoute.d.ts +1 -0
- package/dist/src/modules/auth/components/ForgotPasswordRoute.js +9 -0
- package/dist/src/modules/auth/components/InviteFriends.d.ts +5 -0
- package/dist/src/modules/auth/components/InviteFriends.js +74 -0
- package/dist/src/modules/auth/components/LastUsedBadge.d.ts +5 -0
- package/dist/src/modules/auth/components/LastUsedBadge.js +9 -0
- package/dist/src/modules/auth/components/LoginForm.d.ts +3 -0
- package/dist/src/modules/auth/components/LoginForm.js +44 -0
- package/dist/src/modules/auth/components/LoginRoute.d.ts +3 -0
- package/dist/src/modules/auth/components/LoginRoute.js +11 -0
- package/dist/src/modules/auth/components/LogoutRoute.d.ts +1 -0
- package/dist/src/modules/auth/components/LogoutRoute.js +15 -0
- package/dist/src/modules/auth/components/OrganizationAcceptInvitationRoute.d.ts +9 -0
- package/dist/src/modules/auth/components/OrganizationAcceptInvitationRoute.js +102 -0
- package/dist/src/modules/auth/components/OrganizationMembersRoute.d.ts +51 -0
- package/dist/src/modules/auth/components/OrganizationMembersRoute.js +359 -0
- package/dist/src/modules/auth/components/OrganizationSettingsRoute.d.ts +20 -0
- package/dist/src/modules/auth/components/OrganizationSettingsRoute.js +153 -0
- package/dist/src/modules/auth/components/OrganizationSwitcher.d.ts +7 -0
- package/dist/src/modules/auth/components/OrganizationSwitcher.js +74 -0
- package/dist/src/modules/auth/components/ProfileRoute.d.ts +1 -0
- package/dist/src/modules/auth/components/ProfileRoute.js +42 -0
- package/dist/src/modules/auth/components/RangeNuqsDatePicker.d.ts +31 -0
- package/dist/src/modules/auth/components/RangeNuqsDatePicker.js +236 -0
- package/dist/src/modules/auth/components/ResetPasswordForm.d.ts +1 -0
- package/dist/src/modules/auth/components/ResetPasswordForm.js +39 -0
- package/dist/src/modules/auth/components/ResetPasswordRoute.d.ts +1 -0
- package/dist/src/modules/auth/components/ResetPasswordRoute.js +9 -0
- package/dist/src/modules/auth/components/SignupFormRoute.d.ts +5 -0
- package/dist/src/modules/auth/components/SignupFormRoute.js +106 -0
- package/dist/src/modules/auth/components/SignupRoute.d.ts +7 -0
- package/dist/src/modules/auth/components/SignupRoute.js +16 -0
- package/dist/src/modules/auth/components/UserPreferences.d.ts +30 -0
- package/dist/src/modules/auth/components/UserPreferences.js +60 -0
- package/dist/src/modules/auth/components/WaitlistCard.d.ts +6 -0
- package/dist/src/modules/auth/components/WaitlistCard.js +32 -0
- package/dist/src/modules/auth/components/WaitlistCodeValidation.d.ts +7 -0
- package/dist/src/modules/auth/components/WaitlistCodeValidation.js +43 -0
- package/dist/src/modules/billing/components/BillingBetaPage.d.ts +8 -0
- package/dist/src/modules/billing/components/BillingBetaPage.js +11 -0
- package/dist/src/modules/billing/components/BillingInvoicePage.d.ts +7 -0
- package/dist/src/modules/billing/components/BillingInvoicePage.js +32 -0
- package/dist/src/modules/billing/components/BillingPlanSelect.d.ts +6 -0
- package/dist/src/modules/billing/components/BillingPlanSelect.js +8 -0
- package/dist/src/modules/billing/components/BillingRouter.d.ts +9 -0
- package/dist/src/modules/billing/components/BillingRouter.js +8 -0
- package/dist/src/modules/billing/components/BillingSinglePlanSelect.d.ts +8 -0
- package/dist/src/modules/billing/components/BillingSinglePlanSelect.js +46 -0
- package/dist/src/modules/table/components/ColumnOrderAndVisibility.d.ts +10 -0
- package/dist/src/modules/table/components/ColumnOrderAndVisibility.js +42 -0
- package/dist/src/modules/table/components/NuqsTable.d.ts +23 -0
- package/dist/src/modules/table/components/NuqsTable.js +198 -0
- package/dist/src/modules/table/components/TableFiltering.d.ts +23 -0
- package/dist/src/modules/table/components/TableFiltering.js +236 -0
- package/dist/src/modules/table/components/TablePagination.d.ts +9 -0
- package/dist/src/modules/table/components/TablePagination.js +21 -0
- package/{src/modules/table/components/table.types.ts → dist/src/modules/table/components/table.types.d.ts} +12 -11
- package/dist/src/modules/table/components/table.types.js +1 -0
- package/dist/src/modules/table/filterTransformers.d.ts +53 -0
- package/dist/src/modules/table/filterTransformers.js +276 -0
- package/{src/types.ts → dist/src/types.d.ts} +3 -4
- package/dist/src/types.js +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +8 -5
- package/.cursor/rules/web-ui.mdc +0 -126
- package/.turbo/turbo-build.log +0 -5
- package/.turbo/turbo-check-types.log +0 -5
- package/.turbo/turbo-lint$colon$fix.log +0 -381
- package/.turbo/turbo-lint.log +0 -361
- package/CHANGELOG.md +0 -19
- package/components.json +0 -21
- package/src/animations/card.motion.ts +0 -9
- package/src/components/AvatarUpload.tsx +0 -133
- package/src/components/Button.tsx +0 -14
- package/src/components/Calendar.css +0 -684
- package/src/components/Calendar.tsx +0 -32
- package/src/components/CardsSelect.tsx +0 -155
- package/src/components/CollapsibleSidebarMenuItem.tsx +0 -57
- package/src/components/ColorPicker.tsx +0 -56
- package/src/components/CopyButton.tsx +0 -45
- package/src/components/CropDialog.tsx +0 -154
- package/src/components/DialogProvider.tsx +0 -105
- package/src/components/ErrorFallback.tsx +0 -17
- package/src/components/FileDropzone.tsx +0 -120
- package/src/components/MultiSelectDropdown.tsx +0 -233
- package/src/components/PageAlert.tsx +0 -121
- package/src/components/SelectChips.tsx +0 -40
- package/src/components/SidebarItem.tsx +0 -26
- package/src/components/Steps.tsx +0 -340
- package/src/components/TablerIconPicker.tsx +0 -4260
- package/src/components/app-header.tsx +0 -40
- package/src/components/blur-card.tsx +0 -132
- package/src/components/features-section-demo-1.tsx +0 -127
- package/src/components/features-section-demo-2.tsx +0 -102
- package/src/components/features-section-demo-3.tsx +0 -272
- package/src/components/mode-toggle.tsx +0 -31
- package/src/components/nav-main.tsx +0 -69
- package/src/components/pricing-cards.tsx +0 -133
- package/src/components/shared/ButtonCopy.tsx +0 -50
- package/src/components/team-switcher.tsx +0 -83
- package/src/components/theme-provider.tsx +0 -74
- package/src/components/typewriter.tsx +0 -90
- package/src/components/ui/alert-dialog.tsx +0 -133
- package/src/components/ui/alert.tsx +0 -60
- package/src/components/ui/avatar.tsx +0 -47
- package/src/components/ui/badge.tsx +0 -33
- package/src/components/ui/bento-grid.tsx +0 -54
- package/src/components/ui/bento-grid2.tsx +0 -66
- package/src/components/ui/breadcrumb.tsx +0 -101
- package/src/components/ui/button.tsx +0 -50
- package/src/components/ui/card.tsx +0 -55
- package/src/components/ui/checkbox.tsx +0 -26
- package/src/components/ui/dialog.tsx +0 -119
- package/src/components/ui/dropdown-menu.tsx +0 -186
- package/src/components/ui/floating-navbar.tsx +0 -78
- package/src/components/ui/form.tsx +0 -167
- package/src/components/ui/image.tsx +0 -55
- package/src/components/ui/input.tsx +0 -22
- package/src/components/ui/label.tsx +0 -19
- package/src/components/ui/pagination.tsx +0 -105
- package/src/components/ui/progress.tsx +0 -23
- package/src/components/ui/resizable-navbar.tsx +0 -260
- package/src/components/ui/segment-control.tsx +0 -143
- package/src/components/ui/select.tsx +0 -153
- package/src/components/ui/separator.tsx +0 -24
- package/src/components/ui/sheet.tsx +0 -121
- package/src/components/ui/sidebar.tsx +0 -736
- package/src/components/ui/skeleton.tsx +0 -7
- package/src/components/ui/slider.tsx +0 -23
- package/src/components/ui/sonner.tsx +0 -27
- package/src/components/ui/spinner.tsx +0 -45
- package/src/components/ui/switch.tsx +0 -27
- package/src/components/ui/table.tsx +0 -90
- package/src/components/ui/tabs.tsx +0 -52
- package/src/components/ui/textarea.tsx +0 -18
- package/src/components/ui/timeline.tsx +0 -95
- package/src/components/ui/toast.tsx +0 -126
- package/src/components/ui/tooltip.tsx +0 -55
- package/src/components/ui/typewriter-effect.tsx +0 -181
- package/src/hooks/use-mobile.ts +0 -19
- package/src/hooks/useDialog.ts +0 -25
- package/src/icons/GoogleIcon.tsx +0 -32
- package/src/icons/LinkedInIcon.tsx +0 -30
- package/src/icons/MicrosoftIcon.tsx +0 -21
- package/src/lib/chatwoot.ts +0 -51
- package/src/lib/utils.ts +0 -6
- package/src/modules/app/components/AppLoader.tsx +0 -9
- package/src/modules/app/components/AppShell.tsx +0 -21
- package/src/modules/app/components/AppSidebar.tsx +0 -26
- package/src/modules/app/components/AppSidebarContent.tsx +0 -73
- package/src/modules/app/components/AppSidebarHeader.tsx +0 -57
- package/src/modules/app/components/AppSidebarInvites.tsx +0 -32
- package/src/modules/app/components/AppSidebarUser.tsx +0 -128
- package/src/modules/auth/components/AdminUserManagement.tsx +0 -1136
- package/src/modules/auth/components/AdminWaitlist.tsx +0 -358
- package/src/modules/auth/components/AuthLayout.tsx +0 -13
- package/src/modules/auth/components/AuthProviders.tsx +0 -105
- package/src/modules/auth/components/AuthRouter.tsx +0 -29
- package/src/modules/auth/components/ClaimAccountRoute.tsx +0 -242
- package/src/modules/auth/components/ErrorAuthRoute.tsx +0 -121
- package/src/modules/auth/components/ForgotPasswordForm.tsx +0 -58
- package/src/modules/auth/components/ForgotPasswordRoute.tsx +0 -27
- package/src/modules/auth/components/InviteFriends.tsx +0 -273
- package/src/modules/auth/components/LastUsedBadge.tsx +0 -22
- package/src/modules/auth/components/LoginForm.tsx +0 -104
- package/src/modules/auth/components/LoginRoute.tsx +0 -31
- package/src/modules/auth/components/LogoutRoute.tsx +0 -21
- package/src/modules/auth/components/OrganizationAcceptInvitationRoute.tsx +0 -161
- package/src/modules/auth/components/OrganizationMembersRoute.tsx +0 -730
- package/src/modules/auth/components/OrganizationSettingsRoute.tsx +0 -280
- package/src/modules/auth/components/OrganizationSwitcher.tsx +0 -148
- package/src/modules/auth/components/ProfileRoute.tsx +0 -104
- package/src/modules/auth/components/RangeNuqsDatePicker.tsx +0 -365
- package/src/modules/auth/components/ResetPasswordForm.tsx +0 -103
- package/src/modules/auth/components/ResetPasswordRoute.tsx +0 -27
- package/src/modules/auth/components/SignupFormRoute.tsx +0 -189
- package/src/modules/auth/components/SignupRoute.tsx +0 -53
- package/src/modules/auth/components/UserPreferences.tsx +0 -144
- package/src/modules/auth/components/WaitlistCard.tsx +0 -78
- package/src/modules/auth/components/WaitlistCodeValidation.tsx +0 -79
- package/src/modules/billing/components/BillingBetaPage.tsx +0 -124
- package/src/modules/billing/components/BillingInvoicePage.tsx +0 -180
- package/src/modules/billing/components/BillingPlanSelect.tsx +0 -14
- package/src/modules/billing/components/BillingRouter.tsx +0 -20
- package/src/modules/billing/components/BillingSinglePlanSelect.tsx +0 -172
- package/src/modules/table/components/ColumnOrderAndVisibility.tsx +0 -127
- package/src/modules/table/components/NuqsTable.tsx +0 -396
- package/src/modules/table/components/TableFiltering.tsx +0 -520
- package/src/modules/table/components/TablePagination.tsx +0 -59
- package/src/modules/table/filterTransformers.ts +0 -323
- package/src/vite-env.d.ts +0 -1
- package/translations/en/web-ui.json +0 -192
- package/tsconfig.json +0 -30
|
@@ -1,323 +0,0 @@
|
|
|
1
|
-
import type { DateValue, RangeValue, SharedSelection } from "@heroui/react";
|
|
2
|
-
import { CalendarDate, getLocalTimeZone, today } from "@internationalized/date";
|
|
3
|
-
import type { QueryFilter, QueryFilters } from "@m5kdev/commons/modules/schemas/query.schema";
|
|
4
|
-
import type { ColumnDataType, FilterMethod } from "@m5kdev/commons/modules/table/filter.types";
|
|
5
|
-
import { DateTime } from "luxon";
|
|
6
|
-
|
|
7
|
-
export type FilterValue =
|
|
8
|
-
| string
|
|
9
|
-
| number
|
|
10
|
-
| string[]
|
|
11
|
-
| DateValue
|
|
12
|
-
| RangeValue<DateValue>
|
|
13
|
-
| boolean
|
|
14
|
-
| SharedSelection
|
|
15
|
-
| null;
|
|
16
|
-
|
|
17
|
-
export interface HeroUIFilter {
|
|
18
|
-
columnId: string;
|
|
19
|
-
type: ColumnDataType | null;
|
|
20
|
-
value: FilterValue;
|
|
21
|
-
method: FilterMethod | null;
|
|
22
|
-
options?: { label: string; value: string }[] | null;
|
|
23
|
-
endColumnId?: string | null;
|
|
24
|
-
periodStartColumnId?: string | null;
|
|
25
|
-
periodEndColumnId?: string | null;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Convert CalendarDate to UTC ISO string at midnight UTC
|
|
30
|
-
*/
|
|
31
|
-
export const calendarDateToUTC = (date: CalendarDate): string => {
|
|
32
|
-
return DateTime.utc(date.year, date.month, date.day).toISO() ?? "";
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Convert CalendarDate to end of day UTC ISO string
|
|
37
|
-
*/
|
|
38
|
-
export const calendarDateToEndOfDayUTC = (date: CalendarDate): string => {
|
|
39
|
-
return DateTime.utc(date.year, date.month, date.day).endOf("day").toISO() ?? "";
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Parse UTC ISO string to CalendarDate (preserves UTC date, no timezone shift)
|
|
44
|
-
*/
|
|
45
|
-
const parseUTCToCalendarDate = (isoString: string): CalendarDate | null => {
|
|
46
|
-
try {
|
|
47
|
-
const dt = DateTime.fromISO(isoString, { zone: "utc" });
|
|
48
|
-
if (!dt.isValid) return null;
|
|
49
|
-
return new CalendarDate(dt.year, dt.month, dt.day);
|
|
50
|
-
} catch {
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Convert any date filter method from URL to a RangeValue for DateRangePicker
|
|
57
|
-
* Handles: on, before, after, between, intersect
|
|
58
|
-
* Parses UTC ISO strings as UTC to avoid timezone shifts
|
|
59
|
-
*/
|
|
60
|
-
export const dateFilterToRangeValue = (
|
|
61
|
-
filters: QueryFilters | undefined,
|
|
62
|
-
columnId: string
|
|
63
|
-
): RangeValue<DateValue> | null => {
|
|
64
|
-
if (!filters) return null;
|
|
65
|
-
|
|
66
|
-
const filter = filters.find((f) => f.columnId === columnId);
|
|
67
|
-
if (!filter || filter.type !== "date") return null;
|
|
68
|
-
|
|
69
|
-
const todayDate = today(getLocalTimeZone());
|
|
70
|
-
const epochStart = new CalendarDate(1970, 1, 1);
|
|
71
|
-
|
|
72
|
-
try {
|
|
73
|
-
switch (filter.method) {
|
|
74
|
-
case "on": {
|
|
75
|
-
// Same day range
|
|
76
|
-
if (typeof filter.value !== "string" || !filter.value) return null;
|
|
77
|
-
const day = parseUTCToCalendarDate(filter.value);
|
|
78
|
-
if (!day) return null;
|
|
79
|
-
return {
|
|
80
|
-
start: day as unknown as DateValue,
|
|
81
|
-
end: day as unknown as DateValue,
|
|
82
|
-
} as RangeValue<DateValue>;
|
|
83
|
-
}
|
|
84
|
-
case "before": {
|
|
85
|
-
// [epochStart, selectedDay]
|
|
86
|
-
if (typeof filter.value !== "string" || !filter.value) return null;
|
|
87
|
-
const day = parseUTCToCalendarDate(filter.value);
|
|
88
|
-
if (!day) return null;
|
|
89
|
-
return {
|
|
90
|
-
start: epochStart as unknown as DateValue,
|
|
91
|
-
end: day as unknown as DateValue,
|
|
92
|
-
} as RangeValue<DateValue>;
|
|
93
|
-
}
|
|
94
|
-
case "after": {
|
|
95
|
-
// [selectedDay, today]
|
|
96
|
-
if (typeof filter.value !== "string" || !filter.value) return null;
|
|
97
|
-
const day = parseUTCToCalendarDate(filter.value);
|
|
98
|
-
if (!day) return null;
|
|
99
|
-
return {
|
|
100
|
-
start: day as unknown as DateValue,
|
|
101
|
-
end: todayDate as unknown as DateValue,
|
|
102
|
-
} as RangeValue<DateValue>;
|
|
103
|
-
}
|
|
104
|
-
case "between":
|
|
105
|
-
case "intersect": {
|
|
106
|
-
// [value, valueTo]
|
|
107
|
-
if (typeof filter.value !== "string" || !filter.value || !filter.valueTo) return null;
|
|
108
|
-
const startDate = parseUTCToCalendarDate(filter.value);
|
|
109
|
-
const endDate = parseUTCToCalendarDate(filter.valueTo);
|
|
110
|
-
if (!startDate || !endDate) return null;
|
|
111
|
-
return {
|
|
112
|
-
start: startDate as unknown as DateValue,
|
|
113
|
-
end: endDate as unknown as DateValue,
|
|
114
|
-
} as RangeValue<DateValue>;
|
|
115
|
-
}
|
|
116
|
-
default:
|
|
117
|
-
return null;
|
|
118
|
-
}
|
|
119
|
-
} catch {
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Transform filters from backend format (QueryFilter[]) to HeroUI format (HeroUIFilter[])
|
|
126
|
-
* Used when loading filters from URL/backend to populate HeroUI components
|
|
127
|
-
*/
|
|
128
|
-
export const transformFiltersToHeroUI = (
|
|
129
|
-
filtersToTransform: QueryFilters,
|
|
130
|
-
columnsMap: Map<
|
|
131
|
-
string,
|
|
132
|
-
{
|
|
133
|
-
id: string;
|
|
134
|
-
label: string;
|
|
135
|
-
type?: ColumnDataType | null;
|
|
136
|
-
options?: { label: string; value: string }[] | null;
|
|
137
|
-
endColumnId?: string | null;
|
|
138
|
-
periodStartColumnId?: string | null;
|
|
139
|
-
periodEndColumnId?: string | null;
|
|
140
|
-
}
|
|
141
|
-
>,
|
|
142
|
-
filterMethods: Record<ColumnDataType, FilterMethod[]>
|
|
143
|
-
): HeroUIFilter[] => {
|
|
144
|
-
return filtersToTransform.map((filter) => {
|
|
145
|
-
let value: FilterValue = null;
|
|
146
|
-
let method: FilterMethod | null = null;
|
|
147
|
-
let columnId = filter.columnId;
|
|
148
|
-
|
|
149
|
-
// Check if this intersect filter should map to Period pseudo-column
|
|
150
|
-
if (filter.type === "date" && filter.method === "intersect" && filter.endColumnId) {
|
|
151
|
-
const periodColumnId = `${filter.columnId}__period`;
|
|
152
|
-
const periodColumn = columnsMap.get(periodColumnId);
|
|
153
|
-
if (periodColumn) {
|
|
154
|
-
// Map to Period pseudo-column
|
|
155
|
-
columnId = periodColumnId;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
// Find the method object from the methods configuration
|
|
160
|
-
if (filter.type) {
|
|
161
|
-
const availableMethods = filterMethods[filter.type as ColumnDataType];
|
|
162
|
-
const methodObj = availableMethods?.find((m: FilterMethod) => m.value === filter.method);
|
|
163
|
-
if (methodObj) {
|
|
164
|
-
method = methodObj;
|
|
165
|
-
} else if (filter.method === "isEmpty" || filter.method === "isNotEmpty") {
|
|
166
|
-
// Handle isEmpty/isNotEmpty even if not in the provided method list
|
|
167
|
-
method = {
|
|
168
|
-
value: filter.method,
|
|
169
|
-
label: filter.method === "isEmpty" ? "Is Empty" : "Is Not Empty",
|
|
170
|
-
component: null,
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
// Transform value based on type
|
|
176
|
-
switch (filter.type) {
|
|
177
|
-
case "string":
|
|
178
|
-
value = filter.value as string;
|
|
179
|
-
break;
|
|
180
|
-
case "number":
|
|
181
|
-
value = filter.value as number;
|
|
182
|
-
break;
|
|
183
|
-
case "date":
|
|
184
|
-
// Use the shared helper for range conversion, or parse single dates as UTC
|
|
185
|
-
if (filter.method === "between" || filter.method === "intersect") {
|
|
186
|
-
// For range methods, use the helper function
|
|
187
|
-
const range = dateFilterToRangeValue([filter], filter.columnId);
|
|
188
|
-
value = range;
|
|
189
|
-
} else {
|
|
190
|
-
// Single date value: parse UTC ISO string and extract UTC calendar date
|
|
191
|
-
if (typeof filter.value === "string" && filter.value) {
|
|
192
|
-
const day = parseUTCToCalendarDate(filter.value);
|
|
193
|
-
value = day ? (day as unknown as DateValue) : null;
|
|
194
|
-
} else {
|
|
195
|
-
value = null;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
break;
|
|
199
|
-
case "boolean":
|
|
200
|
-
value = filter.value as boolean;
|
|
201
|
-
break;
|
|
202
|
-
case "enum":
|
|
203
|
-
if (filter.method === "oneOf" && Array.isArray(filter.value)) {
|
|
204
|
-
// Multi-select: array of strings to SharedSelection (Set)
|
|
205
|
-
value = new Set(filter.value) as SharedSelection;
|
|
206
|
-
} else {
|
|
207
|
-
// Single select: string to SharedSelection with currentKey
|
|
208
|
-
const selection = new Set([filter.value as string]) as SharedSelection;
|
|
209
|
-
// Set currentKey property
|
|
210
|
-
Object.defineProperty(selection, "currentKey", {
|
|
211
|
-
value: filter.value as string,
|
|
212
|
-
writable: true,
|
|
213
|
-
enumerable: false,
|
|
214
|
-
configurable: true,
|
|
215
|
-
});
|
|
216
|
-
value = selection;
|
|
217
|
-
}
|
|
218
|
-
break;
|
|
219
|
-
default:
|
|
220
|
-
value = filter.value;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
const column = columnsMap.get(columnId);
|
|
224
|
-
return {
|
|
225
|
-
columnId,
|
|
226
|
-
type: filter.type,
|
|
227
|
-
value,
|
|
228
|
-
method,
|
|
229
|
-
options: column?.options ?? null,
|
|
230
|
-
endColumnId: column?.endColumnId ?? null,
|
|
231
|
-
periodStartColumnId: column?.periodStartColumnId ?? null,
|
|
232
|
-
periodEndColumnId: column?.periodEndColumnId ?? null,
|
|
233
|
-
};
|
|
234
|
-
});
|
|
235
|
-
};
|
|
236
|
-
|
|
237
|
-
/**
|
|
238
|
-
* Transform filters from HeroUI format (HeroUIFilter[]) to backend format (QueryFilter[])
|
|
239
|
-
* Used when applying filters to send to backend/URL
|
|
240
|
-
*/
|
|
241
|
-
export const transformFiltersFromHeroUI = (filters: HeroUIFilter[]): QueryFilters => {
|
|
242
|
-
const filtersToApply: QueryFilters = [];
|
|
243
|
-
|
|
244
|
-
for (const filter of filters) {
|
|
245
|
-
let value: FilterValue | undefined;
|
|
246
|
-
let valueTo: FilterValue | undefined;
|
|
247
|
-
|
|
248
|
-
// Handle isEmpty/isNotEmpty methods - they don't need a value
|
|
249
|
-
if (filter.method?.value === "isEmpty" || filter.method?.value === "isNotEmpty") {
|
|
250
|
-
if (filter.columnId === "") continue;
|
|
251
|
-
|
|
252
|
-
const result: QueryFilter = {
|
|
253
|
-
columnId: filter.columnId,
|
|
254
|
-
type: filter.type as ColumnDataType,
|
|
255
|
-
method: filter.method.value,
|
|
256
|
-
value: "",
|
|
257
|
-
};
|
|
258
|
-
filtersToApply.push(result);
|
|
259
|
-
continue;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
// Handle Period pseudo-column: map to intersect on real columns
|
|
263
|
-
const isPeriodColumn = filter.columnId.endsWith("__period");
|
|
264
|
-
const actualColumnId =
|
|
265
|
-
isPeriodColumn && filter.periodStartColumnId ? filter.periodStartColumnId : filter.columnId;
|
|
266
|
-
const actualEndColumnId =
|
|
267
|
-
isPeriodColumn && filter.periodEndColumnId ? filter.periodEndColumnId : filter.endColumnId;
|
|
268
|
-
|
|
269
|
-
switch (filter.type) {
|
|
270
|
-
case "date":
|
|
271
|
-
if (
|
|
272
|
-
filter.method?.value === "between" ||
|
|
273
|
-
filter.method?.value === "intersect" ||
|
|
274
|
-
isPeriodColumn
|
|
275
|
-
) {
|
|
276
|
-
const range = filter.value as RangeValue<DateValue>;
|
|
277
|
-
if (range?.start && range?.end) {
|
|
278
|
-
value = calendarDateToUTC(range.start as unknown as CalendarDate);
|
|
279
|
-
valueTo = calendarDateToUTC(range.end as unknown as CalendarDate);
|
|
280
|
-
}
|
|
281
|
-
} else {
|
|
282
|
-
const dateValue = filter.value as unknown as CalendarDate;
|
|
283
|
-
if (dateValue?.year) {
|
|
284
|
-
value = calendarDateToUTC(dateValue);
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
break;
|
|
288
|
-
case "enum": {
|
|
289
|
-
const selection = filter.value as SharedSelection;
|
|
290
|
-
if (selection) {
|
|
291
|
-
value =
|
|
292
|
-
filter.method?.value === "oneOf"
|
|
293
|
-
? Array.from(selection).map(String)
|
|
294
|
-
: String(selection.currentKey);
|
|
295
|
-
}
|
|
296
|
-
break;
|
|
297
|
-
}
|
|
298
|
-
default:
|
|
299
|
-
value = filter.value;
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
// Skip filters without valid values
|
|
303
|
-
if (!value || value === "" || filter.columnId === "") continue;
|
|
304
|
-
if (filter.type === "enum" && Array.isArray(value) && value.length === 0) continue;
|
|
305
|
-
|
|
306
|
-
// For Period columns, always use intersect method
|
|
307
|
-
const actualMethod = isPeriodColumn ? "intersect" : (filter.method as FilterMethod).value;
|
|
308
|
-
|
|
309
|
-
const result: QueryFilter = {
|
|
310
|
-
columnId: actualColumnId,
|
|
311
|
-
type: filter.type as ColumnDataType,
|
|
312
|
-
method: actualMethod,
|
|
313
|
-
value: value as string | number | boolean | string[],
|
|
314
|
-
...(valueTo && { valueTo: valueTo as string }),
|
|
315
|
-
...(actualMethod === "intersect" && actualEndColumnId
|
|
316
|
-
? { endColumnId: actualEndColumnId }
|
|
317
|
-
: {}),
|
|
318
|
-
};
|
|
319
|
-
filtersToApply.push(result);
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
return filtersToApply;
|
|
323
|
-
};
|
package/src/vite-env.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/// <reference types="vite/client" />
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"auth.login.apple": "Login with Apple",
|
|
3
|
-
"auth.login.google": "Continue with Google",
|
|
4
|
-
"auth.login.email": "Email",
|
|
5
|
-
"auth.login.password": "Password",
|
|
6
|
-
"auth.login.forgotPassword": "Forgot your password?",
|
|
7
|
-
"auth.login.button": "Login",
|
|
8
|
-
"auth.login.noAccount": "Don't have an account?",
|
|
9
|
-
"auth.login.signUp": "Sign up",
|
|
10
|
-
"auth.login.welcome": "Welcome back",
|
|
11
|
-
"auth.login.description": "Login using your emaill and password",
|
|
12
|
-
"auth.login.orContinueWith": "Or continue with",
|
|
13
|
-
"auth.login.placeholder.email": "m@example.com",
|
|
14
|
-
"auth.signup.button": "Sign Up",
|
|
15
|
-
"auth.signup.signingUp": "Signing up...",
|
|
16
|
-
"auth.signup.success": "Account created successfully",
|
|
17
|
-
"auth.signup.successMessage": "Account created successfully",
|
|
18
|
-
"auth.signup.emailRequired": "Email is required",
|
|
19
|
-
"auth.signup.passwordRequired": "Password is required",
|
|
20
|
-
"auth.signup.createAccount": "Create an account",
|
|
21
|
-
"auth.signup.description": "Sign up to get started",
|
|
22
|
-
"auth.signup.alreadyHaveAccount": "Already have an account?",
|
|
23
|
-
"auth.signup.verificationEmailSent.title": "Verification email sent",
|
|
24
|
-
"auth.signup.verificationEmailSent.description": "We've sent a verification email to your inbox. Please click the link in the email to verify your account before logging in.",
|
|
25
|
-
"auth.signup.verificationEmailSent.openEmail": "Open your email",
|
|
26
|
-
"auth.errors.authentication": "Authentication Error",
|
|
27
|
-
"auth.errors.server": "Server Error",
|
|
28
|
-
"common.termsOfService": "Terms of Service",
|
|
29
|
-
"common.privacyPolicy": "Privacy Policy",
|
|
30
|
-
"common.byClickingContinue": "By clicking continue, you agree to our",
|
|
31
|
-
"common.and": "and",
|
|
32
|
-
"common.cancel": "Cancel",
|
|
33
|
-
"common.save": "Save",
|
|
34
|
-
"common.saving": "Saving...",
|
|
35
|
-
"image.crop.title": "Crop Image",
|
|
36
|
-
"image.crop.failedContext": "Failed to get canvas context",
|
|
37
|
-
"image.crop.failedCrop": "Failed to get cropped image",
|
|
38
|
-
"image.crop.error": "Error cropping image:",
|
|
39
|
-
"upload.errors.invalidType": "Please select a valid image file (JPG, PNG, or WebP)",
|
|
40
|
-
"upload.errors.tooLarge": "File size must be less than 5MB",
|
|
41
|
-
"profile.updated": "Profile updated",
|
|
42
|
-
"profile.updateDescription": "Your profile has been updated.",
|
|
43
|
-
"profile.error": "Error",
|
|
44
|
-
"profile.errorDescription": "Failed to update profile. Please try again.",
|
|
45
|
-
"common.copySuccess": "Copied to clipboard",
|
|
46
|
-
"common.copyError": "Failed to copy to clipboard",
|
|
47
|
-
"common.copy": "Copy",
|
|
48
|
-
"common.copied": "Copied!",
|
|
49
|
-
"alert.dismissLabel": "Dismiss alert",
|
|
50
|
-
"profile.placeholders.name": "Enter your name",
|
|
51
|
-
"profile.settings.title": "Profile Settings",
|
|
52
|
-
"profile.settings.description": "Update your profile information below.",
|
|
53
|
-
"avatar.preview.alt": "Avatar preview",
|
|
54
|
-
"ui.steps.progressLabel": "Progress",
|
|
55
|
-
"ui.sidebar.toggleLabel": "Toggle Sidebar",
|
|
56
|
-
"ui.breadcrumb.label": "breadcrumb",
|
|
57
|
-
"ui.segment.resetLabel": "Reset",
|
|
58
|
-
"auth.forgotPassword.button": "Reset Password",
|
|
59
|
-
"auth.forgotPassword.title": "Forgot Password",
|
|
60
|
-
"auth.forgotPassword.description": "Enter your email to reset your password",
|
|
61
|
-
"auth.forgotPassword.rememberPassword": "Remember your password?",
|
|
62
|
-
"auth.forgotPassword.success": "Password reset email sent",
|
|
63
|
-
"auth.forgotPassword.error": "Failed to send password reset email",
|
|
64
|
-
"auth.resetPassword.title": "Reset Password",
|
|
65
|
-
"auth.resetPassword.description": "Enter your new password",
|
|
66
|
-
"auth.resetPassword.newPassword": "New Password",
|
|
67
|
-
"auth.resetPassword.confirmPassword": "Confirm Password",
|
|
68
|
-
"auth.resetPassword.button": "Reset Password",
|
|
69
|
-
"auth.resetPassword.passwordRequired": "Password is required",
|
|
70
|
-
"auth.resetPassword.confirmPasswordRequired": "Please confirm your password",
|
|
71
|
-
"auth.resetPassword.passwordMismatch": "Passwords do not match",
|
|
72
|
-
"auth.resetPassword.tokenRequired": "Token is required",
|
|
73
|
-
"auth.resetPassword.success": "Password reset successfully",
|
|
74
|
-
"auth.resetPassword.error": "Failed to reset password",
|
|
75
|
-
"preferences.title": "Preferences",
|
|
76
|
-
"preferences.submit": "Save",
|
|
77
|
-
"billing.beta.badge": "Beta",
|
|
78
|
-
"billing.title": "Billing & Pricing",
|
|
79
|
-
"billing.subtitle": "{{appName}} is currently free to use during the beta. We’re finalizing pricing for the production launch.",
|
|
80
|
-
"billing.card.free.title": "Free during Beta",
|
|
81
|
-
"billing.card.free.description": "Use the full product while we refine it.",
|
|
82
|
-
"billing.card.free.price": "$0",
|
|
83
|
-
"billing.card.free.priceSuffix": "for now",
|
|
84
|
-
"billing.card.free.feature.fullAccess": "Full access during beta",
|
|
85
|
-
"billing.card.free.feature.noCard": "No credit card required",
|
|
86
|
-
"billing.card.free.feature.riskFree": "Try features risk‑free",
|
|
87
|
-
"billing.card.progress.title": "Pricing In Progress",
|
|
88
|
-
"billing.card.progress.description": "Final pricing will apply at production readiness.",
|
|
89
|
-
"billing.card.progress.feature.transparentPlans": "Transparent plans",
|
|
90
|
-
"billing.card.progress.feature.fairValue": "Fair value for teams and individuals",
|
|
91
|
-
"billing.card.progress.feature.simpleBilling": "Simple, predictable billing",
|
|
92
|
-
"billing.card.notice.title": "Plenty of Notice",
|
|
93
|
-
"billing.card.notice.description": "We’ll notify you well in advance of any changes.",
|
|
94
|
-
"billing.card.notice.feature.timeToDecide": "Ample time to decide whether to continue",
|
|
95
|
-
"billing.card.notice.feature.safeData": "Your projects/data remain safe",
|
|
96
|
-
"billing.card.notice.feature.autoFreeTier": "If a free tier exists, you’ll be moved automatically",
|
|
97
|
-
"impersonating.message": "You are currently impersonating a user",
|
|
98
|
-
"impersonating.stop": "Stop Impersonating",
|
|
99
|
-
"sidebar.user.upgradeToPro": "Upgrade to Pro",
|
|
100
|
-
"sidebar.user.adminDashboard": "Admin Dashboard",
|
|
101
|
-
"sidebar.user.account": "Account",
|
|
102
|
-
"sidebar.user.billing": "Billing",
|
|
103
|
-
"sidebar.user.logout": "Log out",
|
|
104
|
-
"auth.login.descriptionWithProviders": "Login using your favorite provider",
|
|
105
|
-
"auth.login.linkedin": "Sign in with LinkedIn",
|
|
106
|
-
"auth.login.microsoft": "Sign in with Microsoft",
|
|
107
|
-
"auth.waitlist.title": "Join the waitlist",
|
|
108
|
-
"auth.waitlist.description": "We don't allow signups yet, but you can join the waitlist to be notified when we launch.",
|
|
109
|
-
"auth.waitlist.email": "Email",
|
|
110
|
-
"auth.waitlist.button": "Join the waitlist",
|
|
111
|
-
"auth.waitlist.success": "You successfully joined the waitlist",
|
|
112
|
-
"auth.waitlist.error": "Failed to join waitlist. Please try again.",
|
|
113
|
-
"auth.errors.invitationCodeInvalid": "Invalid or expired invitation code",
|
|
114
|
-
"auth.error.title": "Authentication Failed",
|
|
115
|
-
"auth.error.description": "We encountered an issue with your authentication request",
|
|
116
|
-
"auth.error.alertTitle": "Authentication Error",
|
|
117
|
-
"auth.error.alertDescription": "Your authentication request could not be completed. This may be due to an expired or invalid link, or a server error. Please try again.",
|
|
118
|
-
"auth.error.backToLogin": "Back to Login",
|
|
119
|
-
"auth.error.backToSignup": "Back to Sign Up",
|
|
120
|
-
"sidebar.invites.title": "Invite Friends",
|
|
121
|
-
"auth.login.lastUsed": "Last Used",
|
|
122
|
-
"auth.waitlist.placeholder.email": "your@email.com",
|
|
123
|
-
"organization.roles.member": "member",
|
|
124
|
-
"organization.roles.admin": "admin",
|
|
125
|
-
"organization.roles.owner": "owner",
|
|
126
|
-
"organization.settings.title": "Organization settings",
|
|
127
|
-
"organization.settings.description": "Update organization name, slug, and metadata.",
|
|
128
|
-
"organization.settings.noActive": "No active organization selected.",
|
|
129
|
-
"organization.settings.manageOnly": "Only organization admins and owners can manage organization settings.",
|
|
130
|
-
"organization.settings.form.name": "Name",
|
|
131
|
-
"organization.settings.form.slug": "Slug",
|
|
132
|
-
"organization.settings.form.metadata": "Metadata (JSON)",
|
|
133
|
-
"organization.settings.form.metadataInvalidJson": "Metadata must be valid JSON.",
|
|
134
|
-
"organization.settings.form.metadataInvalid": "Invalid metadata value.",
|
|
135
|
-
"organization.settings.button.save": "Save organization",
|
|
136
|
-
"organization.settings.updateSuccess": "Organization updated",
|
|
137
|
-
"organization.settings.updateError": "Failed to update organization",
|
|
138
|
-
"organization.settings.loadError": "Failed to load organization",
|
|
139
|
-
"organization.members.loadError": "Failed to load organization",
|
|
140
|
-
"organization.members.title": "Organization members",
|
|
141
|
-
"organization.members.noActive": "No active organization selected.",
|
|
142
|
-
"organization.members.manageOnly": "Only organization admins and owners can manage members and invitations.",
|
|
143
|
-
"organization.members.description": "{{name}} member and invitation management.",
|
|
144
|
-
"organization.members.defaultName": "Organization",
|
|
145
|
-
"organization.members.loadMembersError": "Failed to load members",
|
|
146
|
-
"organization.members.loadInvitationsError": "Failed to load invitations",
|
|
147
|
-
"organization.members.roleUpdateSuccess": "Member role updated",
|
|
148
|
-
"organization.members.roleUpdateError": "Failed to update member role",
|
|
149
|
-
"organization.members.removeMemberSuccess": "Member removed",
|
|
150
|
-
"organization.members.removeMemberError": "Failed to remove member",
|
|
151
|
-
"organization.members.emailRequired": "Email is required",
|
|
152
|
-
"organization.members.inviteSuccess": "Invitation sent",
|
|
153
|
-
"organization.members.inviteError": "Failed to invite member",
|
|
154
|
-
"organization.members.cancelInvitationSuccess": "Invitation canceled",
|
|
155
|
-
"organization.members.cancelInvitationError": "Failed to cancel invitation",
|
|
156
|
-
"organization.members.inviteLinkCopied": "Invitation link copied",
|
|
157
|
-
"organization.members.copyInviteLinkError": "Failed to copy invitation link",
|
|
158
|
-
"organization.members.unknownName": "Unknown",
|
|
159
|
-
"organization.members.invitedUser": "Invited user",
|
|
160
|
-
"organization.members.emailLabel": "Email",
|
|
161
|
-
"organization.members.emailPlaceholder": "name@company.com",
|
|
162
|
-
"organization.members.roleLabel": "Role",
|
|
163
|
-
"organization.members.inviteButton": "Invite",
|
|
164
|
-
"organization.members.tableTitle": "Organization members and invitations",
|
|
165
|
-
"organization.members.columnName": "Name",
|
|
166
|
-
"organization.members.columnEmail": "Email",
|
|
167
|
-
"organization.members.columnRole": "Role",
|
|
168
|
-
"organization.members.columnStatus": "Status",
|
|
169
|
-
"organization.members.columnActions": "Actions",
|
|
170
|
-
"organization.members.tableEmpty": "No members or invitations yet.",
|
|
171
|
-
"organization.members.roleFor": "Role for {{name}}",
|
|
172
|
-
"organization.members.statusActive": "active",
|
|
173
|
-
"organization.members.statusInvited": "invited",
|
|
174
|
-
"organization.members.removeMember": "Remove member",
|
|
175
|
-
"organization.members.copyInviteLink": "Copy invitation link",
|
|
176
|
-
"organization.members.cancelInvitation": "Cancel invitation",
|
|
177
|
-
"organization.members.roleUnknown": "Unknown role",
|
|
178
|
-
"organization.invitation.errorMissing": "Invitation id is missing.",
|
|
179
|
-
"organization.invitation.acceptFailed": "Failed to accept organization invitation.",
|
|
180
|
-
"organization.invitation.activateFailed": "Failed to switch to invited organization.",
|
|
181
|
-
"organization.invitation.accepted": "Invitation accepted",
|
|
182
|
-
"organization.invitation.error": "Invitation Error",
|
|
183
|
-
"organization.invitation.unableAccept": "Unable to accept invitation.",
|
|
184
|
-
"organization.invitation.accepting": "Accepting invitation",
|
|
185
|
-
"organization.invitation.redirecting": "Invitation accepted. Redirecting...",
|
|
186
|
-
"organization.invitation.pleaseWait": "Please wait while we process your invitation.",
|
|
187
|
-
"organization.switcher.label": "Organization",
|
|
188
|
-
"organization.switcher.failedToLoadOrganizations": "Failed to load organizations",
|
|
189
|
-
"organization.switcher.failedToSwitchOrganization": "Failed to switch organization",
|
|
190
|
-
"organization.switcher.organizationSwitched": "Organization switched",
|
|
191
|
-
"organization.switcher.retry": "Retry"
|
|
192
|
-
}
|
package/tsconfig.json
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "@m5kdev/config/tsconfig.vite.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"baseUrl": ".",
|
|
5
|
-
"rootDir": ".",
|
|
6
|
-
"outDir": "dist",
|
|
7
|
-
"tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
|
|
8
|
-
"types": [
|
|
9
|
-
"vite/client"
|
|
10
|
-
],
|
|
11
|
-
"emitDeclarationOnly": false,
|
|
12
|
-
"noEmit": false,
|
|
13
|
-
"allowImportingTsExtensions": false,
|
|
14
|
-
},
|
|
15
|
-
"include": [
|
|
16
|
-
"src"
|
|
17
|
-
],
|
|
18
|
-
"exclude": [
|
|
19
|
-
"out-tsc",
|
|
20
|
-
"dist",
|
|
21
|
-
"tests/**/*.spec.ts",
|
|
22
|
-
"tests/**/*.test.ts",
|
|
23
|
-
"tests/**/*.spec.tsx",
|
|
24
|
-
"tests/**/*.test.tsx",
|
|
25
|
-
"tests/**/*.spec.js",
|
|
26
|
-
"tests/**/*.test.js",
|
|
27
|
-
"tests/**/*.spec.jsx",
|
|
28
|
-
"tests/**/*.test.jsx"
|
|
29
|
-
]
|
|
30
|
-
}
|