@m5kdev/web-ui 0.9.0 → 0.9.1
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/packages/backend/dist/src/modules/base/base.procedure.d.mts +11 -1
- package/dist/packages/backend/dist/src/modules/base/base.procedure.d.ts +11 -1
- package/dist/packages/backend/dist/src/modules/base/base.service.d.mts +1 -1
- package/dist/packages/backend/dist/src/modules/base/base.service.d.ts +1 -1
- package/dist/packages/backend/dist/src/modules/billing/billing.repository.d.mts +10 -10
- package/dist/packages/backend/dist/src/modules/billing/billing.repository.d.ts +10 -10
- package/dist/packages/backend/dist/src/modules/billing/billing.service.d.mts +6 -6
- package/dist/packages/backend/dist/src/modules/billing/billing.service.d.ts +6 -6
- package/dist/src/components/AvatarUpload.js +1 -1
- package/dist/src/components/AvatarUpload.mjs +2 -2
- package/dist/src/components/AvatarUpload.mjs.map +1 -1
- package/dist/src/components/Calendar.d.mts +1 -1
- package/dist/src/components/CardsSelect.js +1 -1
- package/dist/src/components/CardsSelect.mjs +1 -1
- package/dist/src/components/CollapsibleSidebarMenuItem.d.mts +1 -1
- package/dist/src/components/ColorPicker.d.mts +1 -1
- package/dist/src/components/ColorPicker.js +1 -1
- package/dist/src/components/ColorPicker.mjs +1 -1
- package/dist/src/components/CopyButton.d.mts +1 -1
- package/dist/src/components/CopyButton.js +1 -1
- package/dist/src/components/CopyButton.mjs +2 -2
- package/dist/src/components/CopyButton.mjs.map +1 -1
- package/dist/src/components/CropDialog.js +1 -1
- package/dist/src/components/CropDialog.mjs +1 -1
- package/dist/src/components/DialogProvider.d.mts +1 -1
- package/dist/src/components/DialogProvider.js +1 -1
- package/dist/src/components/DialogProvider.mjs +2 -2
- package/dist/src/components/DialogProvider.mjs.map +1 -1
- package/dist/src/components/FileDropzone.js +1 -1
- package/dist/src/components/FileDropzone.mjs +3 -3
- package/dist/src/components/FileDropzone.mjs.map +1 -1
- package/dist/src/components/MultiSelectDropdown.js +1 -1
- package/dist/src/components/MultiSelectDropdown.mjs +7 -7
- package/dist/src/components/MultiSelectDropdown.mjs.map +1 -1
- package/dist/src/components/Orb.js +1 -1
- package/dist/src/components/Orb.mjs +1 -1
- package/dist/src/components/PageAlert.d.mts +1 -1
- package/dist/src/components/PageAlert.d.ts +1 -1
- package/dist/src/components/PageAlert.js +1 -1
- package/dist/src/components/PageAlert.mjs +1 -1
- package/dist/src/components/SelectChips.d.mts +1 -1
- package/dist/src/components/SelectChips.js +1 -1
- package/dist/src/components/SelectChips.mjs +1 -1
- package/dist/src/components/SidebarItem.d.mts +1 -1
- package/dist/src/components/TablerIconPicker.d.mts +1 -1
- package/dist/src/components/TablerIconPicker.js +1 -1
- package/dist/src/components/TablerIconPicker.mjs +1 -1
- package/dist/src/components/app-header.js +1 -1
- package/dist/src/components/app-header.mjs +2 -2
- package/dist/src/components/app-header.mjs.map +1 -1
- package/dist/src/components/blur-card.d.mts +1 -1
- package/dist/src/components/blur-card.js +1 -1
- package/dist/src/components/blur-card.mjs +1 -1
- package/dist/src/components/features-section-demo-1.js +1 -1
- package/dist/src/components/features-section-demo-1.mjs +1 -1
- package/dist/src/components/features-section-demo-3.js +1 -1
- package/dist/src/components/features-section-demo-3.mjs +1 -1
- package/dist/src/components/shared/ButtonCopy.js +1 -1
- package/dist/src/components/shared/ButtonCopy.mjs +2 -2
- package/dist/src/components/shared/ButtonCopy.mjs.map +1 -1
- package/dist/src/components/team-switcher.d.mts +1 -1
- package/dist/src/components/team-switcher.js +1 -1
- package/dist/src/components/team-switcher.mjs +1 -1
- package/dist/src/components/theme-provider.js +1 -1
- package/dist/src/components/theme-provider.mjs +1 -1
- package/dist/src/components/typewriter.js +1 -1
- package/dist/src/components/typewriter.mjs +1 -1
- package/dist/src/components/ui/alert-dialog.d.mts +1 -1
- package/dist/src/components/ui/alert.d.mts +1 -1
- package/dist/src/components/ui/avatar.js +1 -1
- package/dist/src/components/ui/avatar.mjs +1 -1
- package/dist/src/components/ui/badge.d.mts +1 -1
- package/dist/src/components/ui/bento-grid2.d.mts +1 -1
- package/dist/src/components/ui/breadcrumb.d.mts +1 -1
- package/dist/src/components/ui/breadcrumb.js +1 -1
- package/dist/src/components/ui/breadcrumb.mjs +1 -1
- package/dist/src/components/ui/button.js +1 -1
- package/dist/src/components/ui/button.mjs +1 -1
- package/dist/src/components/ui/card.js +1 -1
- package/dist/src/components/ui/card.mjs +1 -1
- package/dist/src/components/ui/checkbox.js +1 -1
- package/dist/src/components/ui/checkbox.mjs +1 -1
- package/dist/src/components/ui/dialog.d.mts +1 -1
- package/dist/src/components/ui/dropdown-menu.d.mts +1 -1
- package/dist/src/components/ui/dropdown-menu.js +1 -1
- package/dist/src/components/ui/dropdown-menu.mjs +1 -1
- package/dist/src/components/ui/floating-navbar.d.mts +1 -1
- package/dist/src/components/ui/floating-navbar.js +1 -1
- package/dist/src/components/ui/floating-navbar.mjs +1 -1
- package/dist/src/components/ui/form.d.mts +1 -1
- package/dist/src/components/ui/form.js +1 -1
- package/dist/src/components/ui/form.mjs +1 -1
- package/dist/src/components/ui/image.js +1 -1
- package/dist/src/components/ui/image.mjs +1 -1
- package/dist/src/components/ui/input.js +1 -1
- package/dist/src/components/ui/input.mjs +1 -1
- package/dist/src/components/ui/label.js +1 -1
- package/dist/src/components/ui/label.mjs +1 -1
- package/dist/src/components/ui/pagination.d.mts +1 -1
- package/dist/src/components/ui/progress.js +1 -1
- package/dist/src/components/ui/progress.mjs +1 -1
- package/dist/src/components/ui/resizable-navbar.d.mts +1 -1
- package/dist/src/components/ui/resizable-navbar.js +1 -1
- package/dist/src/components/ui/resizable-navbar.mjs +1 -1
- package/dist/src/components/ui/segment-control.js +1 -1
- package/dist/src/components/ui/segment-control.mjs +3 -3
- package/dist/src/components/ui/segment-control.mjs.map +1 -1
- package/dist/src/components/ui/select.js +1 -1
- package/dist/src/components/ui/select.mjs +1 -1
- package/dist/src/components/ui/separator.js +1 -1
- package/dist/src/components/ui/separator.mjs +1 -1
- package/dist/src/components/ui/sheet.d.mts +1 -1
- package/dist/src/components/ui/sheet.js +1 -1
- package/dist/src/components/ui/sheet.mjs +1 -1
- package/dist/src/components/ui/sidebar.js +1 -1
- package/dist/src/components/ui/sidebar.mjs +1 -1
- package/dist/src/components/ui/slider.js +1 -1
- package/dist/src/components/ui/slider.mjs +1 -1
- package/dist/src/components/ui/spinner.d.mts +1 -1
- package/dist/src/components/ui/switch.js +1 -1
- package/dist/src/components/ui/switch.mjs +1 -1
- package/dist/src/components/ui/table.d.mts +1 -1
- package/dist/src/components/ui/tabs.d.mts +1 -1
- package/dist/src/components/ui/textarea.d.mts +1 -1
- package/dist/src/components/ui/timeline.d.mts +1 -1
- package/dist/src/components/ui/timeline.js +1 -1
- package/dist/src/components/ui/timeline.mjs +1 -1
- package/dist/src/components/ui/toast.js +1 -1
- package/dist/src/components/ui/toast.mjs +1 -1
- package/dist/src/components/ui/tooltip.d.mts +1 -1
- package/dist/src/components/ui/typewriter-effect.js +1 -1
- package/dist/src/components/ui/typewriter-effect.mjs +1 -1
- package/dist/src/icons/GoogleIcon.d.mts +1 -1
- package/dist/src/icons/LinkedInIcon.d.mts +1 -1
- package/dist/src/icons/MicrosoftIcon.d.mts +1 -1
- package/dist/src/modules/app/components/AppLoader.d.mts +1 -1
- package/dist/src/modules/app/components/AppLoader.js +1 -1
- package/dist/src/modules/app/components/AppLoader.mjs +1 -1
- package/dist/src/modules/app/components/AppShell.d.mts +1 -1
- package/dist/src/modules/app/components/AppSidebar.d.mts +1 -1
- package/dist/src/modules/app/components/AppSidebarHeader.js +1 -1
- package/dist/src/modules/app/components/AppSidebarHeader.mjs +1 -1
- package/dist/src/modules/app/components/AppSidebarInvites.js +1 -1
- package/dist/src/modules/app/components/AppSidebarInvites.mjs +1 -1
- package/dist/src/modules/auth/components/AdminUserManagement.js +2 -2
- package/dist/src/modules/auth/components/AdminUserManagement.mjs +6 -6
- package/dist/src/modules/auth/components/AdminUserManagement.mjs.map +1 -1
- package/dist/src/modules/auth/components/AdminWaitlist.js +1 -1
- package/dist/src/modules/auth/components/AdminWaitlist.mjs +3 -3
- package/dist/src/modules/auth/components/AdminWaitlist.mjs.map +1 -1
- package/dist/src/modules/auth/components/AuthLayout.d.mts +1 -1
- package/dist/src/modules/auth/components/AuthProviders.js +1 -1
- package/dist/src/modules/auth/components/AuthProviders.mjs +1 -1
- package/dist/src/modules/auth/components/AuthRouter.d.mts +1 -1
- package/dist/src/modules/auth/components/ClaimAccountRoute.js +1 -1
- package/dist/src/modules/auth/components/ClaimAccountRoute.mjs +1 -1
- package/dist/src/modules/auth/components/ErrorAuthRoute.js +1 -1
- package/dist/src/modules/auth/components/ErrorAuthRoute.mjs +1 -1
- package/dist/src/modules/auth/components/ForgotPasswordForm.js +1 -1
- package/dist/src/modules/auth/components/ForgotPasswordForm.mjs +1 -1
- package/dist/src/modules/auth/components/ForgotPasswordRoute.js +1 -1
- package/dist/src/modules/auth/components/ForgotPasswordRoute.mjs +1 -1
- package/dist/src/modules/auth/components/InviteFriends.js +1 -1
- package/dist/src/modules/auth/components/InviteFriends.mjs +1 -1
- package/dist/src/modules/auth/components/LastUsedBadge.d.mts +1 -1
- package/dist/src/modules/auth/components/LastUsedBadge.js +1 -1
- package/dist/src/modules/auth/components/LastUsedBadge.mjs +1 -1
- package/dist/src/modules/auth/components/LoginForm.js +1 -1
- package/dist/src/modules/auth/components/LoginForm.mjs +1 -1
- package/dist/src/modules/auth/components/LoginRoute.js +1 -1
- package/dist/src/modules/auth/components/LoginRoute.mjs +1 -1
- package/dist/src/modules/auth/components/LogoutRoute.js +1 -1
- package/dist/src/modules/auth/components/LogoutRoute.mjs +1 -1
- package/dist/src/modules/auth/components/OrganizationAcceptInvitationRoute.js +1 -1
- package/dist/src/modules/auth/components/OrganizationAcceptInvitationRoute.mjs +1 -1
- package/dist/src/modules/auth/components/OrganizationMembersRoute.js +2 -2
- package/dist/src/modules/auth/components/OrganizationMembersRoute.mjs +2 -2
- package/dist/src/modules/auth/components/OrganizationPreferences.js +1 -1
- package/dist/src/modules/auth/components/OrganizationPreferences.mjs +1 -1
- package/dist/src/modules/auth/components/OrganizationSettingsRoute.js +2 -2
- package/dist/src/modules/auth/components/OrganizationSettingsRoute.mjs +2 -2
- package/dist/src/modules/auth/components/OrganizationSwitcher.js +2 -2
- package/dist/src/modules/auth/components/OrganizationSwitcher.mjs +2 -2
- package/dist/src/modules/auth/components/PreferencesEditor.js +1 -1
- package/dist/src/modules/auth/components/PreferencesEditor.mjs +1 -1
- package/dist/src/modules/auth/components/ProfileRoute.js +1 -1
- package/dist/src/modules/auth/components/ProfileRoute.mjs +1 -1
- package/dist/src/modules/auth/components/RangeNuqsDatePicker.js +1 -1
- package/dist/src/modules/auth/components/RangeNuqsDatePicker.mjs +1 -1
- package/dist/src/modules/auth/components/ResetPasswordForm.js +1 -1
- package/dist/src/modules/auth/components/ResetPasswordForm.mjs +1 -1
- package/dist/src/modules/auth/components/ResetPasswordRoute.js +1 -1
- package/dist/src/modules/auth/components/ResetPasswordRoute.mjs +1 -1
- package/dist/src/modules/auth/components/SignupFormRoute.js +1 -1
- package/dist/src/modules/auth/components/SignupFormRoute.mjs +1 -1
- package/dist/src/modules/auth/components/SignupRoute.js +1 -1
- package/dist/src/modules/auth/components/SignupRoute.mjs +1 -1
- package/dist/src/modules/auth/components/WaitlistCard.js +1 -1
- package/dist/src/modules/auth/components/WaitlistCard.mjs +1 -1
- package/dist/src/modules/auth/components/WaitlistCodeValidation.js +1 -1
- package/dist/src/modules/auth/components/WaitlistCodeValidation.mjs +1 -1
- package/dist/src/modules/billing/components/BillingBetaPage.d.mts +1 -1
- package/dist/src/modules/billing/components/BillingInvoicePage.js +2 -2
- package/dist/src/modules/billing/components/BillingInvoicePage.mjs +2 -2
- package/dist/src/modules/billing/components/BillingSinglePlanSelect.js +1 -1
- package/dist/src/modules/billing/components/BillingSinglePlanSelect.mjs +1 -1
- package/dist/src/modules/table/components/ColumnOrderAndVisibility.js +1 -1
- package/dist/src/modules/table/components/ColumnOrderAndVisibility.mjs +1 -1
- package/dist/src/modules/table/components/NuqsTable.js +1 -1
- package/dist/src/modules/table/components/NuqsTable.mjs +3 -3
- package/dist/src/modules/table/components/NuqsTable.mjs.map +1 -1
- package/dist/src/modules/table/components/TableFiltering.js +1 -1
- package/dist/src/modules/table/components/TableFiltering.mjs +1 -1
- package/dist/src/modules/table/components/TableGroupBy.js +1 -1
- package/dist/src/modules/table/components/TableGroupBy.mjs +1 -1
- package/dist/src/modules/table/components/TablePagination.js +1 -1
- package/dist/src/modules/table/components/TablePagination.mjs +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminWaitlist.mjs","names":[],"sources":["../../../../../src/modules/auth/components/AdminWaitlist.tsx"],"sourcesContent":["import {\r\n Button,\r\n Dropdown,\r\n DropdownItem,\r\n DropdownMenu,\r\n DropdownTrigger,\r\n Input,\r\n Modal,\r\n ModalBody,\r\n ModalContent,\r\n ModalFooter,\r\n ModalHeader,\r\n Spinner,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableColumn,\r\n TableHeader,\r\n TableRow,\r\n} from \"@heroui/react\";\r\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport { Mail, MoreHorizontal, Search, Trash2, UserPlus, X } from \"lucide-react\";\r\nimport { useEffect, useId, useState } from \"react\";\r\nimport { toast } from \"sonner\";\r\nimport type { UseBackendTRPC } from \"../../../types\";\r\n\r\ninterface AdminWaitlistProps {\r\n useTRPC: UseBackendTRPC;\r\n}\r\n\r\nexport function AdminWaitlist({ useTRPC }: AdminWaitlistProps) {\r\n const trpc = useTRPC();\r\n const queryClient = useQueryClient();\r\n\r\n const { data: waitlist = [], isLoading } = useQuery(trpc.auth.listAdminWaitlist.queryOptions());\r\n const { mutate: invite, isPending: isInviting } = useMutation(\r\n trpc.auth.inviteFromWaitlist.mutationOptions({\r\n onSuccess: () => {\r\n queryClient.invalidateQueries({ queryKey: trpc.auth.listAdminWaitlist.queryKey() });\r\n toast.success(\"Invitation sent successfully\");\r\n },\r\n onError: (error) => {\r\n toast.error(\r\n `Failed to send invitation: ${error instanceof Error ? error.message : String(error)}`\r\n );\r\n },\r\n })\r\n );\r\n const { mutate: remove, isPending: isRemoving } = useMutation(\r\n trpc.auth.removeFromWaitlist.mutationOptions({\r\n onSuccess: () => {\r\n queryClient.invalidateQueries({ queryKey: trpc.auth.listAdminWaitlist.queryKey() });\r\n toast.success(\"Removed from waitlist successfully\");\r\n },\r\n onError: (error) => {\r\n toast.error(`Failed to remove: ${error instanceof Error ? error.message : String(error)}`);\r\n },\r\n onSettled: () => {\r\n setItemToDelete(null);\r\n },\r\n })\r\n );\r\n const { mutate: add, isPending: isAdding } = useMutation(\r\n trpc.auth.addToWaitlist.mutationOptions({\r\n onSuccess: () => {\r\n queryClient.invalidateQueries({ queryKey: trpc.auth.listAdminWaitlist.queryKey() });\r\n toast.success(\"Added to waitlist successfully\");\r\n },\r\n onError: (error) => {\r\n toast.error(\r\n `Failed to add to waitlist: ${error instanceof Error ? error.message : String(error)}`\r\n );\r\n },\r\n })\r\n );\r\n const emailInputId = useId();\r\n const [searchQuery, setSearchQuery] = useState(\"\");\r\n const [debouncedSearchQuery, setDebouncedSearchQuery] = useState(\"\");\r\n const [itemToDelete, setItemToDelete] = useState<string | null>(null);\r\n const [isAddModalOpen, setIsAddModalOpen] = useState(false);\r\n const [newEmail, setNewEmail] = useState(\"\");\r\n\r\n // Debounce search query\r\n useEffect(() => {\r\n const timer = setTimeout(() => {\r\n setDebouncedSearchQuery(searchQuery);\r\n }, 300);\r\n\r\n return () => clearTimeout(timer);\r\n }, [searchQuery]);\r\n\r\n const filteredWaitlist = waitlist.filter((item) =>\r\n item.email?.toLowerCase().includes(debouncedSearchQuery?.toLowerCase() ?? \"\")\r\n );\r\n\r\n const handleInvite = (id: string) => {\r\n invite({ id });\r\n };\r\n\r\n const handleRemove = () => {\r\n if (itemToDelete) {\r\n remove({ id: itemToDelete });\r\n }\r\n };\r\n\r\n const handleAdd = async () => {\r\n if (!newEmail.trim()) {\r\n toast.error(\"Please enter an email address\");\r\n return;\r\n }\r\n\r\n // Basic email validation\r\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n if (!emailRegex.test(newEmail.trim())) {\r\n toast.error(\"Please enter a valid email address\");\r\n return;\r\n }\r\n\r\n add({ email: newEmail.trim() });\r\n setNewEmail(\"\");\r\n setIsAddModalOpen(false);\r\n };\r\n\r\n const formatDate = (date: Date | string | null) => {\r\n if (!date) return \"N/A\";\r\n const dateObj = typeof date === \"string\" ? new Date(date) : date;\r\n return dateObj.toLocaleDateString(undefined, {\r\n year: \"numeric\",\r\n month: \"short\",\r\n day: \"numeric\",\r\n hour: \"2-digit\",\r\n minute: \"2-digit\",\r\n });\r\n };\r\n\r\n const getStatusBadge = (status: string) => {\r\n const statusLower = status.toLowerCase();\r\n if (statusLower === \"invited\" || statusLower === \"active\") {\r\n return (\r\n <span className=\"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800\">\r\n {status}\r\n </span>\r\n );\r\n }\r\n if (statusLower === \"pending\") {\r\n return (\r\n <span className=\"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-yellow-100 text-yellow-800\">\r\n {status}\r\n </span>\r\n );\r\n }\r\n return (\r\n <span className=\"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-gray-100 text-gray-800\">\r\n {status}\r\n </span>\r\n );\r\n };\r\n\r\n if (isLoading) {\r\n return (\r\n <div className=\"flex justify-center p-8\">\r\n <Spinner />\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"space-y-4 p-4\">\r\n <div className=\"flex justify-between items-center\">\r\n <h2 className=\"text-xl font-semibold\">Waitlist Management</h2>\r\n <div className=\"flex items-center gap-2\">\r\n <Button onPress={() => setIsAddModalOpen(true)} size=\"sm\">\r\n <UserPlus className=\"h-4 w-4 mr-2\" />\r\n Add to Waitlist\r\n </Button>\r\n <div className=\"text-sm text-muted-foreground\">Total: {waitlist.length}</div>\r\n </div>\r\n </div>\r\n\r\n {/* Search */}\r\n <div className=\"flex flex-col sm:flex-row gap-3 items-start sm:items-center\">\r\n <form\r\n className=\"relative flex-1\"\r\n onSubmit={(e) => {\r\n e.preventDefault();\r\n setDebouncedSearchQuery(searchQuery);\r\n }}\r\n >\r\n <Search className=\"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground\" />\r\n <Input\r\n aria-label=\"Search by email\"\r\n placeholder=\"Search by email...\"\r\n className=\"pl-8 w-full\"\r\n value={searchQuery}\r\n onChange={(e) => setSearchQuery(e.target.value)}\r\n variant=\"bordered\"\r\n />\r\n {searchQuery && (\r\n <button\r\n type=\"button\"\r\n onClick={() => setSearchQuery(\"\")}\r\n className=\"absolute right-2.5 top-2.5 text-muted-foreground hover:text-foreground\"\r\n aria-label=\"Clear search\"\r\n >\r\n <X className=\"h-4 w-4\" />\r\n </button>\r\n )}\r\n </form>\r\n </div>\r\n\r\n <div className=\"border rounded-lg overflow-hidden\">\r\n <Table aria-label=\"Waitlist table\" removeWrapper>\r\n <TableHeader>\r\n <TableColumn>Email</TableColumn>\r\n <TableColumn>Status</TableColumn>\r\n <TableColumn>Created At</TableColumn>\r\n <TableColumn>Updated At</TableColumn>\r\n <TableColumn className=\"text-right\">Actions</TableColumn>\r\n </TableHeader>\r\n <TableBody\r\n items={filteredWaitlist}\r\n emptyContent={\r\n searchQuery\r\n ? \"No waitlist entries found matching your search\"\r\n : \"No waitlist entries found\"\r\n }\r\n >\r\n {(item) => (\r\n <TableRow key={item.id}>\r\n <TableCell className=\"font-medium\">{item.email}</TableCell>\r\n <TableCell>{getStatusBadge(item.status)}</TableCell>\r\n <TableCell>{formatDate(item.createdAt)}</TableCell>\r\n <TableCell>{formatDate(item.updatedAt)}</TableCell>\r\n <TableCell className=\"text-right\">\r\n <Dropdown placement=\"bottom-end\">\r\n <DropdownTrigger>\r\n <Button variant=\"light\" size=\"sm\" isIconOnly>\r\n <MoreHorizontal className=\"h-4 w-4\" />\r\n </Button>\r\n </DropdownTrigger>\r\n <DropdownMenu aria-label=\"Waitlist actions\">\r\n <DropdownItem\r\n key=\"invite\"\r\n onPress={() => handleInvite(item.id)}\r\n isDisabled={isInviting}\r\n >\r\n {isInviting ? (\r\n <>\r\n <Spinner className=\"mr-2 h-3 w-3\" />\r\n Inviting...\r\n </>\r\n ) : (\r\n <>\r\n <Mail className=\"mr-2 h-4 w-4\" />\r\n Send Invitation\r\n </>\r\n )}\r\n </DropdownItem>\r\n <DropdownItem\r\n key=\"remove\"\r\n className=\"text-danger\"\r\n onClick={() => setItemToDelete(item.id)}\r\n >\r\n <Trash2 className=\"mr-2 h-4 w-4\" />\r\n Remove\r\n </DropdownItem>\r\n </DropdownMenu>\r\n </Dropdown>\r\n </TableCell>\r\n </TableRow>\r\n )}\r\n </TableBody>\r\n </Table>\r\n </div>\r\n\r\n {/* Remove confirmation modal */}\r\n <Modal\r\n isOpen={!!itemToDelete}\r\n onOpenChange={(open) => {\r\n if (!open) setItemToDelete(null);\r\n }}\r\n >\r\n <ModalContent>\r\n {(onClose) => (\r\n <>\r\n <ModalHeader className=\"flex flex-col gap-1\">\r\n <p className=\"text-lg font-semibold\">Are you sure?</p>\r\n <p className=\"text-sm text-default-600\">\r\n This action cannot be undone. This will permanently remove this entry from the\r\n waitlist.\r\n </p>\r\n </ModalHeader>\r\n <ModalFooter>\r\n <Button variant=\"bordered\" onPress={onClose}>\r\n Cancel\r\n </Button>\r\n <Button color=\"danger\" onPress={handleRemove} isLoading={isRemoving}>\r\n Remove\r\n </Button>\r\n </ModalFooter>\r\n </>\r\n )}\r\n </ModalContent>\r\n </Modal>\r\n\r\n {/* Add to waitlist modal */}\r\n <Modal\r\n isOpen={isAddModalOpen}\r\n onOpenChange={(open) => {\r\n if (!open) setIsAddModalOpen(false);\r\n }}\r\n >\r\n <ModalContent>\r\n {(onClose) => (\r\n <form\r\n onSubmit={(e) => {\r\n e.preventDefault();\r\n handleAdd();\r\n }}\r\n className=\"space-y-4\"\r\n >\r\n <ModalHeader className=\"flex flex-col gap-1\">\r\n <p className=\"text-lg font-semibold\">Add to Waitlist</p>\r\n <p className=\"text-sm text-default-600\">\r\n Enter an email address to add someone to the waitlist.\r\n </p>\r\n </ModalHeader>\r\n\r\n <ModalBody className=\"space-y-4\">\r\n <div className=\"space-y-2\">\r\n <Input\r\n id={emailInputId}\r\n label=\"Email *\"\r\n labelPlacement=\"outside\"\r\n type=\"email\"\r\n placeholder=\"Enter email address\"\r\n value={newEmail}\r\n onChange={(e) => setNewEmail(e.target.value)}\r\n variant=\"bordered\"\r\n />\r\n </div>\r\n </ModalBody>\r\n\r\n <ModalFooter>\r\n <Button variant=\"bordered\" type=\"button\" onPress={onClose}>\r\n Cancel\r\n </Button>\r\n <Button type=\"submit\" color=\"primary\" isDisabled={isAdding} isLoading={isAdding}>\r\n {isAdding ? \"Adding...\" : \"Add to Waitlist\"}\r\n </Button>\r\n </ModalFooter>\r\n </form>\r\n )}\r\n </ModalContent>\r\n </Modal>\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AdminWaitlist.mjs","names":[],"sources":["../../../../../src/modules/auth/components/AdminWaitlist.tsx"],"sourcesContent":["import {\r\n Button,\r\n Dropdown,\r\n DropdownItem,\r\n DropdownMenu,\r\n DropdownTrigger,\r\n Input,\r\n Modal,\r\n ModalBody,\r\n ModalContent,\r\n ModalFooter,\r\n ModalHeader,\r\n Spinner,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableColumn,\r\n TableHeader,\r\n TableRow,\r\n} from \"@heroui/react\";\r\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport { Mail, MoreHorizontal, Search, Trash2, UserPlus, X } from \"lucide-react\";\r\nimport { useEffect, useId, useState } from \"react\";\r\nimport { toast } from \"sonner\";\r\nimport type { UseBackendTRPC } from \"../../../types\";\r\n\r\ninterface AdminWaitlistProps {\r\n useTRPC: UseBackendTRPC;\r\n}\r\n\r\nexport function AdminWaitlist({ useTRPC }: AdminWaitlistProps) {\r\n const trpc = useTRPC();\r\n const queryClient = useQueryClient();\r\n\r\n const { data: waitlist = [], isLoading } = useQuery(trpc.auth.listAdminWaitlist.queryOptions());\r\n const { mutate: invite, isPending: isInviting } = useMutation(\r\n trpc.auth.inviteFromWaitlist.mutationOptions({\r\n onSuccess: () => {\r\n queryClient.invalidateQueries({ queryKey: trpc.auth.listAdminWaitlist.queryKey() });\r\n toast.success(\"Invitation sent successfully\");\r\n },\r\n onError: (error) => {\r\n toast.error(\r\n `Failed to send invitation: ${error instanceof Error ? error.message : String(error)}`\r\n );\r\n },\r\n })\r\n );\r\n const { mutate: remove, isPending: isRemoving } = useMutation(\r\n trpc.auth.removeFromWaitlist.mutationOptions({\r\n onSuccess: () => {\r\n queryClient.invalidateQueries({ queryKey: trpc.auth.listAdminWaitlist.queryKey() });\r\n toast.success(\"Removed from waitlist successfully\");\r\n },\r\n onError: (error) => {\r\n toast.error(`Failed to remove: ${error instanceof Error ? error.message : String(error)}`);\r\n },\r\n onSettled: () => {\r\n setItemToDelete(null);\r\n },\r\n })\r\n );\r\n const { mutate: add, isPending: isAdding } = useMutation(\r\n trpc.auth.addToWaitlist.mutationOptions({\r\n onSuccess: () => {\r\n queryClient.invalidateQueries({ queryKey: trpc.auth.listAdminWaitlist.queryKey() });\r\n toast.success(\"Added to waitlist successfully\");\r\n },\r\n onError: (error) => {\r\n toast.error(\r\n `Failed to add to waitlist: ${error instanceof Error ? error.message : String(error)}`\r\n );\r\n },\r\n })\r\n );\r\n const emailInputId = useId();\r\n const [searchQuery, setSearchQuery] = useState(\"\");\r\n const [debouncedSearchQuery, setDebouncedSearchQuery] = useState(\"\");\r\n const [itemToDelete, setItemToDelete] = useState<string | null>(null);\r\n const [isAddModalOpen, setIsAddModalOpen] = useState(false);\r\n const [newEmail, setNewEmail] = useState(\"\");\r\n\r\n // Debounce search query\r\n useEffect(() => {\r\n const timer = setTimeout(() => {\r\n setDebouncedSearchQuery(searchQuery);\r\n }, 300);\r\n\r\n return () => clearTimeout(timer);\r\n }, [searchQuery]);\r\n\r\n const filteredWaitlist = waitlist.filter((item) =>\r\n item.email?.toLowerCase().includes(debouncedSearchQuery?.toLowerCase() ?? \"\")\r\n );\r\n\r\n const handleInvite = (id: string) => {\r\n invite({ id });\r\n };\r\n\r\n const handleRemove = () => {\r\n if (itemToDelete) {\r\n remove({ id: itemToDelete });\r\n }\r\n };\r\n\r\n const handleAdd = async () => {\r\n if (!newEmail.trim()) {\r\n toast.error(\"Please enter an email address\");\r\n return;\r\n }\r\n\r\n // Basic email validation\r\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n if (!emailRegex.test(newEmail.trim())) {\r\n toast.error(\"Please enter a valid email address\");\r\n return;\r\n }\r\n\r\n add({ email: newEmail.trim() });\r\n setNewEmail(\"\");\r\n setIsAddModalOpen(false);\r\n };\r\n\r\n const formatDate = (date: Date | string | null) => {\r\n if (!date) return \"N/A\";\r\n const dateObj = typeof date === \"string\" ? new Date(date) : date;\r\n return dateObj.toLocaleDateString(undefined, {\r\n year: \"numeric\",\r\n month: \"short\",\r\n day: \"numeric\",\r\n hour: \"2-digit\",\r\n minute: \"2-digit\",\r\n });\r\n };\r\n\r\n const getStatusBadge = (status: string) => {\r\n const statusLower = status.toLowerCase();\r\n if (statusLower === \"invited\" || statusLower === \"active\") {\r\n return (\r\n <span className=\"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800\">\r\n {status}\r\n </span>\r\n );\r\n }\r\n if (statusLower === \"pending\") {\r\n return (\r\n <span className=\"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-yellow-100 text-yellow-800\">\r\n {status}\r\n </span>\r\n );\r\n }\r\n return (\r\n <span className=\"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-gray-100 text-gray-800\">\r\n {status}\r\n </span>\r\n );\r\n };\r\n\r\n if (isLoading) {\r\n return (\r\n <div className=\"flex justify-center p-8\">\r\n <Spinner />\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"space-y-4 p-4\">\r\n <div className=\"flex justify-between items-center\">\r\n <h2 className=\"text-xl font-semibold\">Waitlist Management</h2>\r\n <div className=\"flex items-center gap-2\">\r\n <Button onPress={() => setIsAddModalOpen(true)} size=\"sm\">\r\n <UserPlus className=\"h-4 w-4 mr-2\" />\r\n Add to Waitlist\r\n </Button>\r\n <div className=\"text-sm text-muted-foreground\">Total: {waitlist.length}</div>\r\n </div>\r\n </div>\r\n\r\n {/* Search */}\r\n <div className=\"flex flex-col sm:flex-row gap-3 items-start sm:items-center\">\r\n <form\r\n className=\"relative flex-1\"\r\n onSubmit={(e) => {\r\n e.preventDefault();\r\n setDebouncedSearchQuery(searchQuery);\r\n }}\r\n >\r\n <Search className=\"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground\" />\r\n <Input\r\n aria-label=\"Search by email\"\r\n placeholder=\"Search by email...\"\r\n className=\"pl-8 w-full\"\r\n value={searchQuery}\r\n onChange={(e) => setSearchQuery(e.target.value)}\r\n variant=\"bordered\"\r\n />\r\n {searchQuery && (\r\n <button\r\n type=\"button\"\r\n onClick={() => setSearchQuery(\"\")}\r\n className=\"absolute right-2.5 top-2.5 text-muted-foreground hover:text-foreground\"\r\n aria-label=\"Clear search\"\r\n >\r\n <X className=\"h-4 w-4\" />\r\n </button>\r\n )}\r\n </form>\r\n </div>\r\n\r\n <div className=\"border rounded-lg overflow-hidden\">\r\n <Table aria-label=\"Waitlist table\" removeWrapper>\r\n <TableHeader>\r\n <TableColumn>Email</TableColumn>\r\n <TableColumn>Status</TableColumn>\r\n <TableColumn>Created At</TableColumn>\r\n <TableColumn>Updated At</TableColumn>\r\n <TableColumn className=\"text-right\">Actions</TableColumn>\r\n </TableHeader>\r\n <TableBody\r\n items={filteredWaitlist}\r\n emptyContent={\r\n searchQuery\r\n ? \"No waitlist entries found matching your search\"\r\n : \"No waitlist entries found\"\r\n }\r\n >\r\n {(item) => (\r\n <TableRow key={item.id}>\r\n <TableCell className=\"font-medium\">{item.email}</TableCell>\r\n <TableCell>{getStatusBadge(item.status)}</TableCell>\r\n <TableCell>{formatDate(item.createdAt)}</TableCell>\r\n <TableCell>{formatDate(item.updatedAt)}</TableCell>\r\n <TableCell className=\"text-right\">\r\n <Dropdown placement=\"bottom-end\">\r\n <DropdownTrigger>\r\n <Button variant=\"light\" size=\"sm\" isIconOnly>\r\n <MoreHorizontal className=\"h-4 w-4\" />\r\n </Button>\r\n </DropdownTrigger>\r\n <DropdownMenu aria-label=\"Waitlist actions\">\r\n <DropdownItem\r\n key=\"invite\"\r\n onPress={() => handleInvite(item.id)}\r\n isDisabled={isInviting}\r\n >\r\n {isInviting ? (\r\n <>\r\n <Spinner className=\"mr-2 h-3 w-3\" />\r\n Inviting...\r\n </>\r\n ) : (\r\n <>\r\n <Mail className=\"mr-2 h-4 w-4\" />\r\n Send Invitation\r\n </>\r\n )}\r\n </DropdownItem>\r\n <DropdownItem\r\n key=\"remove\"\r\n className=\"text-danger\"\r\n onClick={() => setItemToDelete(item.id)}\r\n >\r\n <Trash2 className=\"mr-2 h-4 w-4\" />\r\n Remove\r\n </DropdownItem>\r\n </DropdownMenu>\r\n </Dropdown>\r\n </TableCell>\r\n </TableRow>\r\n )}\r\n </TableBody>\r\n </Table>\r\n </div>\r\n\r\n {/* Remove confirmation modal */}\r\n <Modal\r\n isOpen={!!itemToDelete}\r\n onOpenChange={(open) => {\r\n if (!open) setItemToDelete(null);\r\n }}\r\n >\r\n <ModalContent>\r\n {(onClose) => (\r\n <>\r\n <ModalHeader className=\"flex flex-col gap-1\">\r\n <p className=\"text-lg font-semibold\">Are you sure?</p>\r\n <p className=\"text-sm text-default-600\">\r\n This action cannot be undone. This will permanently remove this entry from the\r\n waitlist.\r\n </p>\r\n </ModalHeader>\r\n <ModalFooter>\r\n <Button variant=\"bordered\" onPress={onClose}>\r\n Cancel\r\n </Button>\r\n <Button color=\"danger\" onPress={handleRemove} isLoading={isRemoving}>\r\n Remove\r\n </Button>\r\n </ModalFooter>\r\n </>\r\n )}\r\n </ModalContent>\r\n </Modal>\r\n\r\n {/* Add to waitlist modal */}\r\n <Modal\r\n isOpen={isAddModalOpen}\r\n onOpenChange={(open) => {\r\n if (!open) setIsAddModalOpen(false);\r\n }}\r\n >\r\n <ModalContent>\r\n {(onClose) => (\r\n <form\r\n onSubmit={(e) => {\r\n e.preventDefault();\r\n handleAdd();\r\n }}\r\n className=\"space-y-4\"\r\n >\r\n <ModalHeader className=\"flex flex-col gap-1\">\r\n <p className=\"text-lg font-semibold\">Add to Waitlist</p>\r\n <p className=\"text-sm text-default-600\">\r\n Enter an email address to add someone to the waitlist.\r\n </p>\r\n </ModalHeader>\r\n\r\n <ModalBody className=\"space-y-4\">\r\n <div className=\"space-y-2\">\r\n <Input\r\n id={emailInputId}\r\n label=\"Email *\"\r\n labelPlacement=\"outside\"\r\n type=\"email\"\r\n placeholder=\"Enter email address\"\r\n value={newEmail}\r\n onChange={(e) => setNewEmail(e.target.value)}\r\n variant=\"bordered\"\r\n />\r\n </div>\r\n </ModalBody>\r\n\r\n <ModalFooter>\r\n <Button variant=\"bordered\" type=\"button\" onPress={onClose}>\r\n Cancel\r\n </Button>\r\n <Button type=\"submit\" color=\"primary\" isDisabled={isAdding} isLoading={isAdding}>\r\n {isAdding ? \"Adding...\" : \"Add to Waitlist\"}\r\n </Button>\r\n </ModalFooter>\r\n </form>\r\n )}\r\n </ModalContent>\r\n </Modal>\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@ const require_src_icons_GoogleIcon = require("../../../icons/GoogleIcon.js");
|
|
|
4
4
|
const require_src_icons_LinkedInIcon = require("../../../icons/LinkedInIcon.js");
|
|
5
5
|
const require_src_icons_MicrosoftIcon = require("../../../icons/MicrosoftIcon.js");
|
|
6
6
|
const require_src_modules_auth_components_LastUsedBadge = require("./LastUsedBadge.js");
|
|
7
|
-
let _heroui_react = require("@heroui/react");
|
|
8
7
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
let _heroui_react = require("@heroui/react");
|
|
9
9
|
let react_i18next = require("react-i18next");
|
|
10
10
|
let sonner = require("sonner");
|
|
11
11
|
let _m5kdev_frontend_modules_auth_auth_lib = require("@m5kdev/frontend/modules/auth/auth.lib");
|
|
@@ -2,8 +2,8 @@ import { GoogleIcon } from "../../../icons/GoogleIcon.mjs";
|
|
|
2
2
|
import { LinkedInIcon } from "../../../icons/LinkedInIcon.mjs";
|
|
3
3
|
import { MicrosoftIcon } from "../../../icons/MicrosoftIcon.mjs";
|
|
4
4
|
import { LastUsedBadge } from "./LastUsedBadge.mjs";
|
|
5
|
-
import { Button } from "@heroui/react";
|
|
6
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { Button } from "@heroui/react";
|
|
7
7
|
import { useTranslation } from "react-i18next";
|
|
8
8
|
import { toast } from "sonner";
|
|
9
9
|
import { authClient } from "@m5kdev/frontend/modules/auth/auth.lib";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UseBackendTRPC } from "../../../types.mjs";
|
|
2
|
-
import { ReactNode } from "react";
|
|
3
2
|
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
import { ReactNode } from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/modules/auth/components/AuthRouter.d.ts
|
|
6
6
|
interface AuthRouterProps {
|
|
@@ -3,9 +3,9 @@ require("../../../../_virtual/_rolldown/runtime.js");
|
|
|
3
3
|
const require_src_icons_GoogleIcon = require("../../../icons/GoogleIcon.js");
|
|
4
4
|
const require_src_icons_LinkedInIcon = require("../../../icons/LinkedInIcon.js");
|
|
5
5
|
const require_src_icons_MicrosoftIcon = require("../../../icons/MicrosoftIcon.js");
|
|
6
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
7
|
let react = require("react");
|
|
7
8
|
let _heroui_react = require("@heroui/react");
|
|
8
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
9
|
let react_router = require("react-router");
|
|
10
10
|
let sonner = require("sonner");
|
|
11
11
|
let _tanstack_react_query = require("@tanstack/react-query");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { GoogleIcon } from "../../../icons/GoogleIcon.mjs";
|
|
2
2
|
import { LinkedInIcon } from "../../../icons/LinkedInIcon.mjs";
|
|
3
3
|
import { MicrosoftIcon } from "../../../icons/MicrosoftIcon.mjs";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
5
|
import { useEffect, useMemo, useState } from "react";
|
|
5
6
|
import { Alert, Button, Card, CardBody, CardHeader, Input } from "@heroui/react";
|
|
6
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { useLocation, useNavigate } from "react-router";
|
|
8
8
|
import { toast } from "sonner";
|
|
9
9
|
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
|
-
let _heroui_react = require("@heroui/react");
|
|
4
3
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
|
+
let _heroui_react = require("@heroui/react");
|
|
5
5
|
let lucide_react = require("lucide-react");
|
|
6
6
|
let react_i18next = require("react-i18next");
|
|
7
7
|
let react_router = require("react-router");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Button, Card, CardBody, CardHeader } from "@heroui/react";
|
|
2
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Card, CardBody, CardHeader } from "@heroui/react";
|
|
3
3
|
import { AlertCircle } from "lucide-react";
|
|
4
4
|
import { useTranslation } from "react-i18next";
|
|
5
5
|
import { Link as Link$1 } from "react-router";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
3
4
|
let react = require("react");
|
|
4
5
|
let _heroui_react = require("@heroui/react");
|
|
5
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
6
|
let react_i18next = require("react-i18next");
|
|
7
7
|
let sonner = require("sonner");
|
|
8
8
|
let react_hook_form = require("react-hook-form");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
1
2
|
import { useState } from "react";
|
|
2
3
|
import { Button, Input } from "@heroui/react";
|
|
3
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useTranslation } from "react-i18next";
|
|
5
5
|
import { toast } from "sonner";
|
|
6
6
|
import { useForm } from "react-hook-form";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
3
|
const require_src_modules_auth_components_ForgotPasswordForm = require("./ForgotPasswordForm.js");
|
|
4
|
-
let _heroui_react = require("@heroui/react");
|
|
5
4
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
let _heroui_react = require("@heroui/react");
|
|
6
6
|
let react_i18next = require("react-i18next");
|
|
7
7
|
let react_router = require("react-router");
|
|
8
8
|
//#region src/modules/auth/components/ForgotPasswordRoute.tsx
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ForgotPasswordForm } from "./ForgotPasswordForm.mjs";
|
|
2
|
-
import { Card, CardBody, CardHeader } from "@heroui/react";
|
|
3
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Card, CardBody, CardHeader } from "@heroui/react";
|
|
4
4
|
import { useTranslation } from "react-i18next";
|
|
5
5
|
import { Link as Link$1 } from "react-router";
|
|
6
6
|
//#region src/modules/auth/components/ForgotPasswordRoute.tsx
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
3
|
const require_src_components_CopyButton = require("../../../components/CopyButton.js");
|
|
4
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
5
|
let react = require("react");
|
|
5
6
|
let _heroui_react = require("@heroui/react");
|
|
6
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
7
|
let lucide_react = require("lucide-react");
|
|
8
8
|
let sonner = require("sonner");
|
|
9
9
|
let _tanstack_react_query = require("@tanstack/react-query");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CopyButton } from "../../../components/CopyButton.mjs";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
3
|
import { useMemo, useState } from "react";
|
|
3
4
|
import { Button, Card, CardBody, CardHeader, Chip, Input } from "@heroui/react";
|
|
4
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { CheckCircle2, Link2Icon, Mail, Send, Ticket, Users, Zap } from "lucide-react";
|
|
6
6
|
import { toast } from "sonner";
|
|
7
7
|
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
1
2
|
import * as _$react from "react";
|
|
2
3
|
import { BadgeProps } from "@heroui/react";
|
|
3
|
-
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
4
|
|
|
5
5
|
//#region src/modules/auth/components/LastUsedBadge.d.ts
|
|
6
6
|
declare function LastUsedBadge({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
|
-
let _heroui_react = require("@heroui/react");
|
|
4
3
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
|
+
let _heroui_react = require("@heroui/react");
|
|
5
5
|
let react_i18next = require("react-i18next");
|
|
6
6
|
//#region src/modules/auth/components/LastUsedBadge.tsx
|
|
7
7
|
function LastUsedBadge({ lastMethod, method, children, ...props }) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Badge } from "@heroui/react";
|
|
2
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Badge } from "@heroui/react";
|
|
3
3
|
import { useTranslation } from "react-i18next";
|
|
4
4
|
//#region src/modules/auth/components/LastUsedBadge.tsx
|
|
5
5
|
function LastUsedBadge({ lastMethod, method, children, ...props }) {
|
|
@@ -2,8 +2,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
3
|
const require_src_modules_auth_components_LastUsedBadge = require("./LastUsedBadge.js");
|
|
4
4
|
const require_src_modules_auth_components_AuthProviders = require("./AuthProviders.js");
|
|
5
|
-
let _heroui_react = require("@heroui/react");
|
|
6
5
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
|
+
let _heroui_react = require("@heroui/react");
|
|
7
7
|
let react_i18next = require("react-i18next");
|
|
8
8
|
let react_router = require("react-router");
|
|
9
9
|
let sonner = require("sonner");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LastUsedBadge } from "./LastUsedBadge.mjs";
|
|
2
2
|
import { AuthProviders } from "./AuthProviders.mjs";
|
|
3
|
-
import { Button, Input } from "@heroui/react";
|
|
4
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { Button, Input } from "@heroui/react";
|
|
5
5
|
import { useTranslation } from "react-i18next";
|
|
6
6
|
import { Link as Link$1, useNavigate } from "react-router";
|
|
7
7
|
import { toast } from "sonner";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
3
|
const require_src_modules_auth_components_LoginForm = require("./LoginForm.js");
|
|
4
|
-
let _heroui_react = require("@heroui/react");
|
|
5
4
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
let _heroui_react = require("@heroui/react");
|
|
6
6
|
let react_i18next = require("react-i18next");
|
|
7
7
|
let react_router = require("react-router");
|
|
8
8
|
//#region src/modules/auth/components/LoginRoute.tsx
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LoginForm } from "./LoginForm.mjs";
|
|
2
|
-
import { Card, CardBody, CardHeader } from "@heroui/react";
|
|
3
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Card, CardBody, CardHeader } from "@heroui/react";
|
|
4
4
|
import { useTranslation } from "react-i18next";
|
|
5
5
|
import { Link as Link$1 } from "react-router";
|
|
6
6
|
//#region src/modules/auth/components/LoginRoute.tsx
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
2
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
2
3
|
let react = require("react");
|
|
3
4
|
let _heroui_react = require("@heroui/react");
|
|
4
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
5
|
let react_router = require("react-router");
|
|
6
6
|
let _m5kdev_frontend_modules_auth_auth_lib = require("@m5kdev/frontend/modules/auth/auth.lib");
|
|
7
7
|
//#region src/modules/auth/components/LogoutRoute.tsx
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
1
2
|
import { useEffect } from "react";
|
|
2
3
|
import { Spinner } from "@heroui/react";
|
|
3
|
-
import { jsx } from "react/jsx-runtime";
|
|
4
4
|
import { useNavigate } from "react-router";
|
|
5
5
|
import { authClient } from "@m5kdev/frontend/modules/auth/auth.lib";
|
|
6
6
|
//#region src/modules/auth/components/LogoutRoute.tsx
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
3
4
|
let react = require("react");
|
|
4
5
|
let _heroui_react = require("@heroui/react");
|
|
5
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
6
|
let react_i18next = require("react-i18next");
|
|
7
7
|
let react_router = require("react-router");
|
|
8
8
|
let sonner = require("sonner");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
1
2
|
import { useEffect, useMemo, useState } from "react";
|
|
2
3
|
import { Card, CardBody, CardHeader, Spinner } from "@heroui/react";
|
|
3
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useTranslation } from "react-i18next";
|
|
5
5
|
import { useLocation, useNavigate, useSearchParams } from "react-router";
|
|
6
6
|
import { toast } from "sonner";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
3
4
|
let react = require("react");
|
|
4
5
|
let _heroui_react = require("@heroui/react");
|
|
5
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
6
|
let lucide_react = require("lucide-react");
|
|
7
7
|
let react_i18next = require("react-i18next");
|
|
8
8
|
let sonner = require("sonner");
|
|
9
|
-
let _tanstack_react_query = require("@tanstack/react-query");
|
|
10
9
|
let _m5kdev_frontend_modules_auth_auth_lib = require("@m5kdev/frontend/modules/auth/auth.lib");
|
|
10
|
+
let _tanstack_react_query = require("@tanstack/react-query");
|
|
11
11
|
let _m5kdev_frontend_modules_auth_hooks_useSession = require("@m5kdev/frontend/modules/auth/hooks/useSession");
|
|
12
12
|
//#region src/modules/auth/components/OrganizationMembersRoute.tsx
|
|
13
13
|
const ORGANIZATION_ROLES = [
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
1
2
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
2
3
|
import { Button, Card, CardBody, CardHeader, Chip, Input, Select, SelectItem, Spinner, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow } from "@heroui/react";
|
|
3
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { Copy, Trash2, UserPlus, Users } from "lucide-react";
|
|
5
5
|
import { useTranslation } from "react-i18next";
|
|
6
6
|
import { toast } from "sonner";
|
|
7
|
-
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
8
7
|
import { authClient } from "@m5kdev/frontend/modules/auth/auth.lib";
|
|
8
|
+
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
9
9
|
import { useSession } from "@m5kdev/frontend/modules/auth/hooks/useSession";
|
|
10
10
|
//#region src/modules/auth/components/OrganizationMembersRoute.tsx
|
|
11
11
|
const ORGANIZATION_ROLES = [
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
3
|
const require_src_modules_auth_components_PreferencesEditor = require("./PreferencesEditor.js");
|
|
4
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
5
|
let react = require("react");
|
|
5
6
|
let _heroui_react = require("@heroui/react");
|
|
6
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
7
|
let react_i18next = require("react-i18next");
|
|
8
8
|
let _tanstack_react_query = require("@tanstack/react-query");
|
|
9
9
|
let _m5kdev_frontend_modules_auth_hooks_useSession = require("@m5kdev/frontend/modules/auth/hooks/useSession");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PreferencesEditor } from "./PreferencesEditor.mjs";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
3
|
import { useCallback, useMemo } from "react";
|
|
3
4
|
import { Card, CardBody, CardHeader } from "@heroui/react";
|
|
4
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { useTranslation } from "react-i18next";
|
|
6
6
|
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
7
7
|
import { useSession } from "@m5kdev/frontend/modules/auth/hooks/useSession";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
3
4
|
let react = require("react");
|
|
4
5
|
let _heroui_react = require("@heroui/react");
|
|
5
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
6
|
let react_i18next = require("react-i18next");
|
|
7
7
|
let sonner = require("sonner");
|
|
8
|
-
let _tanstack_react_query = require("@tanstack/react-query");
|
|
9
8
|
let _m5kdev_frontend_modules_auth_auth_lib = require("@m5kdev/frontend/modules/auth/auth.lib");
|
|
9
|
+
let _tanstack_react_query = require("@tanstack/react-query");
|
|
10
10
|
let _m5kdev_frontend_modules_auth_hooks_useSession = require("@m5kdev/frontend/modules/auth/hooks/useSession");
|
|
11
11
|
//#region src/modules/auth/components/OrganizationSettingsRoute.tsx
|
|
12
12
|
function OrganizationStateCard({ title, message }) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
1
2
|
import { useCallback, useEffect, useMemo, useState } from "react";
|
|
2
3
|
import { Button, Card, CardBody, CardHeader, Chip, Input, Spinner, Textarea } from "@heroui/react";
|
|
3
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useTranslation } from "react-i18next";
|
|
5
5
|
import { toast } from "sonner";
|
|
6
|
-
import { useQuery, useQueryClient } from "@tanstack/react-query";
|
|
7
6
|
import { authClient } from "@m5kdev/frontend/modules/auth/auth.lib";
|
|
7
|
+
import { useQuery, useQueryClient } from "@tanstack/react-query";
|
|
8
8
|
import { useSession } from "@m5kdev/frontend/modules/auth/hooks/useSession";
|
|
9
9
|
//#region src/modules/auth/components/OrganizationSettingsRoute.tsx
|
|
10
10
|
function OrganizationStateCard({ title, message }) {
|
|
@@ -2,15 +2,15 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
3
|
const require_src_lib_utils = require("../../../lib/utils.js");
|
|
4
4
|
const require_src_components_ui_sidebar = require("../../../components/ui/sidebar.js");
|
|
5
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
6
|
let react = require("react");
|
|
6
7
|
let _heroui_react = require("@heroui/react");
|
|
7
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
8
|
let lucide_react = require("lucide-react");
|
|
9
9
|
let react_i18next = require("react-i18next");
|
|
10
10
|
let react_router = require("react-router");
|
|
11
11
|
let sonner = require("sonner");
|
|
12
|
-
let _tanstack_react_query = require("@tanstack/react-query");
|
|
13
12
|
let _m5kdev_frontend_modules_auth_auth_lib = require("@m5kdev/frontend/modules/auth/auth.lib");
|
|
13
|
+
let _tanstack_react_query = require("@tanstack/react-query");
|
|
14
14
|
let _m5kdev_frontend_modules_auth_hooks_useSession = require("@m5kdev/frontend/modules/auth/hooks/useSession");
|
|
15
15
|
//#region src/modules/auth/components/OrganizationSwitcher.tsx
|
|
16
16
|
function OrganizationSwitcher({ onInvalidateScopedQueries, managerRoles = ["admin", "owner"], managerPath = "/organization/members", fallbackPath = "/" }) {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { cn } from "../../../lib/utils.mjs";
|
|
2
2
|
import { useSidebar } from "../../../components/ui/sidebar.mjs";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
4
|
import { useCallback, useMemo, useState } from "react";
|
|
4
5
|
import { Button, Select, SelectItem } from "@heroui/react";
|
|
5
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { Building2 } from "lucide-react";
|
|
7
7
|
import { useTranslation } from "react-i18next";
|
|
8
8
|
import { Link as Link$1 } from "react-router";
|
|
9
9
|
import { toast } from "sonner";
|
|
10
|
-
import { useQuery } from "@tanstack/react-query";
|
|
11
10
|
import { authClient } from "@m5kdev/frontend/modules/auth/auth.lib";
|
|
11
|
+
import { useQuery } from "@tanstack/react-query";
|
|
12
12
|
import { useSession } from "@m5kdev/frontend/modules/auth/hooks/useSession";
|
|
13
13
|
//#region src/modules/auth/components/OrganizationSwitcher.tsx
|
|
14
14
|
function OrganizationSwitcher({ onInvalidateScopedQueries, managerRoles = ["admin", "owner"], managerPath = "/organization/members", fallbackPath = "/" }) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
|
-
let _heroui_react = require("@heroui/react");
|
|
4
3
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
|
+
let _heroui_react = require("@heroui/react");
|
|
5
5
|
let sonner = require("sonner");
|
|
6
6
|
//#region src/modules/auth/components/PreferencesEditor.tsx
|
|
7
7
|
function PreferencesEditor({ schema, controls, values, isLoading, isPending, labels, updateValues }) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Button, Form, Input, Select, SelectItem, Switch } from "@heroui/react";
|
|
2
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Form, Input, Select, SelectItem, Switch } from "@heroui/react";
|
|
3
3
|
import { toast } from "sonner";
|
|
4
4
|
//#region src/modules/auth/components/PreferencesEditor.tsx
|
|
5
5
|
function PreferencesEditor({ schema, controls, values, isLoading, isPending, labels, updateValues }) {
|
|
@@ -2,8 +2,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
3
|
const require_src_components_AvatarUpload = require("../../../components/AvatarUpload.js");
|
|
4
4
|
const require_src_components_ui_form = require("../../../components/ui/form.js");
|
|
5
|
-
let _heroui_react = require("@heroui/react");
|
|
6
5
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
|
+
let _heroui_react = require("@heroui/react");
|
|
7
7
|
let react_i18next = require("react-i18next");
|
|
8
8
|
let sonner = require("sonner");
|
|
9
9
|
let react_hook_form = require("react-hook-form");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AvatarUpload } from "../../../components/AvatarUpload.mjs";
|
|
2
2
|
import { Form as Form$1, FormControl, FormField, FormItem, FormLabel, FormMessage } from "../../../components/ui/form.mjs";
|
|
3
|
-
import { Button, Card, CardBody, CardHeader, Input } from "@heroui/react";
|
|
4
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { Button, Card, CardBody, CardHeader, Input } from "@heroui/react";
|
|
5
5
|
import { useTranslation } from "react-i18next";
|
|
6
6
|
import { toast } from "sonner";
|
|
7
7
|
import { useForm } from "react-hook-form";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
3
4
|
let react = require("react");
|
|
4
5
|
let _heroui_react = require("@heroui/react");
|
|
5
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
6
|
let react_i18next = require("react-i18next");
|
|
7
7
|
let _internationalized_date = require("@internationalized/date");
|
|
8
8
|
let luxon = require("luxon");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
1
2
|
import { startTransition, useEffect, useMemo, useState } from "react";
|
|
2
3
|
import { DateRangePicker, Select, SelectItem } from "@heroui/react";
|
|
3
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useTranslation } from "react-i18next";
|
|
5
5
|
import { CalendarDate, getLocalTimeZone, today } from "@internationalized/date";
|
|
6
6
|
import { DateTime } from "luxon";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
|
-
let _heroui_react = require("@heroui/react");
|
|
4
3
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
|
+
let _heroui_react = require("@heroui/react");
|
|
5
5
|
let react_i18next = require("react-i18next");
|
|
6
6
|
let react_router = require("react-router");
|
|
7
7
|
let sonner = require("sonner");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Button, Card, CardBody, CardHeader, Input } from "@heroui/react";
|
|
2
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Card, CardBody, CardHeader, Input } from "@heroui/react";
|
|
3
3
|
import { useTranslation } from "react-i18next";
|
|
4
4
|
import { Link as Link$1, useSearchParams } from "react-router";
|
|
5
5
|
import { toast } from "sonner";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
3
|
const require_src_modules_auth_components_ResetPasswordForm = require("./ResetPasswordForm.js");
|
|
4
|
-
let _heroui_react = require("@heroui/react");
|
|
5
4
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
let _heroui_react = require("@heroui/react");
|
|
6
6
|
let react_i18next = require("react-i18next");
|
|
7
7
|
let react_router = require("react-router");
|
|
8
8
|
//#region src/modules/auth/components/ResetPasswordRoute.tsx
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ResetPasswordForm } from "./ResetPasswordForm.mjs";
|
|
2
|
-
import { Card, CardBody, CardHeader } from "@heroui/react";
|
|
3
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Card, CardBody, CardHeader } from "@heroui/react";
|
|
4
4
|
import { useTranslation } from "react-i18next";
|
|
5
5
|
import { Link as Link$1 } from "react-router";
|
|
6
6
|
//#region src/modules/auth/components/ResetPasswordRoute.tsx
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
3
4
|
let react = require("react");
|
|
4
5
|
let _heroui_react = require("@heroui/react");
|
|
5
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
6
|
let react_i18next = require("react-i18next");
|
|
7
7
|
let react_router = require("react-router");
|
|
8
8
|
let sonner = require("sonner");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
1
2
|
import { useState } from "react";
|
|
2
3
|
import { Alert, Button, Input } from "@heroui/react";
|
|
3
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useTranslation } from "react-i18next";
|
|
5
5
|
import { useNavigate } from "react-router";
|
|
6
6
|
import { toast } from "sonner";
|