@m5kdev/web-ui 0.1.4 → 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.
Files changed (379) hide show
  1. package/dist/src/animations/card.motion.d.ts +0 -1
  2. package/dist/src/components/AvatarUpload.d.ts +0 -1
  3. package/dist/src/components/Button.d.ts +0 -1
  4. package/dist/src/components/Calendar.d.ts +0 -1
  5. package/dist/src/components/CardsSelect.d.ts +0 -1
  6. package/dist/src/components/CollapsibleSidebarMenuItem.d.ts +0 -1
  7. package/dist/src/components/ColorPicker.d.ts +0 -1
  8. package/dist/src/components/CopyButton.d.ts +0 -1
  9. package/dist/src/components/CropDialog.d.ts +0 -1
  10. package/dist/src/components/DialogProvider.d.ts +0 -1
  11. package/dist/src/components/ErrorFallback.d.ts +0 -1
  12. package/dist/src/components/FileDropzone.d.ts +0 -1
  13. package/dist/src/components/MultiSelectDropdown.d.ts +0 -1
  14. package/dist/src/components/Orb.d.ts +0 -1
  15. package/dist/src/components/PageAlert.d.ts +0 -1
  16. package/dist/src/components/SelectChips.d.ts +0 -1
  17. package/dist/src/components/SidebarItem.d.ts +0 -1
  18. package/dist/src/components/Steps.d.ts +0 -1
  19. package/dist/src/components/TablerIconPicker.d.ts +0 -1
  20. package/dist/src/components/app-header.d.ts +0 -1
  21. package/dist/src/components/blur-card.d.ts +0 -1
  22. package/dist/src/components/features-section-demo-1.d.ts +0 -1
  23. package/dist/src/components/features-section-demo-2.d.ts +0 -1
  24. package/dist/src/components/features-section-demo-3.d.ts +0 -1
  25. package/dist/src/components/mode-toggle.d.ts +0 -1
  26. package/dist/src/components/nav-main.d.ts +0 -1
  27. package/dist/src/components/pricing-cards.d.ts +0 -1
  28. package/dist/src/components/shared/ButtonCopy.d.ts +0 -1
  29. package/dist/src/components/team-switcher.d.ts +0 -1
  30. package/dist/src/components/theme-provider.d.ts +0 -1
  31. package/dist/src/components/typewriter.d.ts +0 -1
  32. package/dist/src/components/ui/alert-dialog.d.ts +0 -1
  33. package/dist/src/components/ui/alert.d.ts +0 -1
  34. package/dist/src/components/ui/avatar.d.ts +0 -1
  35. package/dist/src/components/ui/badge.d.ts +0 -1
  36. package/dist/src/components/ui/bento-grid.d.ts +0 -1
  37. package/dist/src/components/ui/bento-grid2.d.ts +0 -1
  38. package/dist/src/components/ui/breadcrumb.d.ts +0 -1
  39. package/dist/src/components/ui/button.d.ts +0 -1
  40. package/dist/src/components/ui/card.d.ts +0 -1
  41. package/dist/src/components/ui/checkbox.d.ts +0 -1
  42. package/dist/src/components/ui/collapsible.d.ts +0 -1
  43. package/dist/src/components/ui/dialog.d.ts +0 -1
  44. package/dist/src/components/ui/dropdown-menu.d.ts +0 -1
  45. package/dist/src/components/ui/floating-navbar.d.ts +0 -1
  46. package/dist/src/components/ui/form.d.ts +0 -1
  47. package/dist/src/components/ui/image.d.ts +0 -1
  48. package/dist/src/components/ui/input.d.ts +0 -1
  49. package/dist/src/components/ui/label.d.ts +0 -1
  50. package/dist/src/components/ui/pagination.d.ts +0 -1
  51. package/dist/src/components/ui/progress.d.ts +0 -1
  52. package/dist/src/components/ui/resizable-navbar.d.ts +0 -1
  53. package/dist/src/components/ui/segment-control.d.ts +0 -1
  54. package/dist/src/components/ui/select.d.ts +0 -1
  55. package/dist/src/components/ui/separator.d.ts +0 -1
  56. package/dist/src/components/ui/sheet.d.ts +0 -1
  57. package/dist/src/components/ui/sidebar.d.ts +0 -1
  58. package/dist/src/components/ui/skeleton.d.ts +0 -1
  59. package/dist/src/components/ui/slider.d.ts +0 -1
  60. package/dist/src/components/ui/sonner.d.ts +0 -1
  61. package/dist/src/components/ui/spinner.d.ts +0 -1
  62. package/dist/src/components/ui/switch.d.ts +0 -1
  63. package/dist/src/components/ui/table.d.ts +0 -1
  64. package/dist/src/components/ui/tabs.d.ts +0 -1
  65. package/dist/src/components/ui/textarea.d.ts +0 -1
  66. package/dist/src/components/ui/timeline.d.ts +0 -1
  67. package/dist/src/components/ui/toast.d.ts +0 -1
  68. package/dist/src/components/ui/tooltip.d.ts +0 -1
  69. package/dist/src/components/ui/typewriter-effect.d.ts +0 -1
  70. package/dist/src/hooks/use-mobile.d.ts +0 -1
  71. package/dist/src/hooks/useDialog.d.ts +0 -1
  72. package/dist/src/icons/GoogleIcon.d.ts +0 -1
  73. package/dist/src/icons/LinkedInIcon.d.ts +0 -1
  74. package/dist/src/icons/MicrosoftIcon.d.ts +0 -1
  75. package/dist/src/lib/chatwoot.d.ts +0 -1
  76. package/dist/src/lib/utils.d.ts +0 -1
  77. package/dist/src/modules/app/components/AppLoader.d.ts +0 -1
  78. package/dist/src/modules/app/components/AppShell.d.ts +0 -1
  79. package/dist/src/modules/app/components/AppSidebar.d.ts +0 -1
  80. package/dist/src/modules/app/components/AppSidebarContent.d.ts +0 -1
  81. package/dist/src/modules/app/components/AppSidebarHeader.d.ts +0 -1
  82. package/dist/src/modules/app/components/AppSidebarInvites.d.ts +0 -1
  83. package/dist/src/modules/app/components/AppSidebarUser.d.ts +0 -1
  84. package/dist/src/modules/auth/components/AdminUserManagement.d.ts +0 -1
  85. package/dist/src/modules/auth/components/AdminWaitlist.d.ts +0 -1
  86. package/dist/src/modules/auth/components/AuthLayout.d.ts +0 -1
  87. package/dist/src/modules/auth/components/AuthProviders.d.ts +0 -1
  88. package/dist/src/modules/auth/components/AuthRouter.d.ts +0 -1
  89. package/dist/src/modules/auth/components/ClaimAccountRoute.d.ts +0 -1
  90. package/dist/src/modules/auth/components/ErrorAuthRoute.d.ts +0 -1
  91. package/dist/src/modules/auth/components/ForgotPasswordForm.d.ts +0 -1
  92. package/dist/src/modules/auth/components/ForgotPasswordRoute.d.ts +0 -1
  93. package/dist/src/modules/auth/components/InviteFriends.d.ts +0 -1
  94. package/dist/src/modules/auth/components/LastUsedBadge.d.ts +0 -1
  95. package/dist/src/modules/auth/components/LoginForm.d.ts +0 -1
  96. package/dist/src/modules/auth/components/LoginRoute.d.ts +0 -1
  97. package/dist/src/modules/auth/components/LogoutRoute.d.ts +0 -1
  98. package/dist/src/modules/auth/components/OrganizationAcceptInvitationRoute.d.ts +0 -1
  99. package/dist/src/modules/auth/components/OrganizationMembersRoute.d.ts +0 -1
  100. package/dist/src/modules/auth/components/OrganizationSettingsRoute.d.ts +0 -1
  101. package/dist/src/modules/auth/components/OrganizationSwitcher.d.ts +0 -1
  102. package/dist/src/modules/auth/components/ProfileRoute.d.ts +0 -1
  103. package/dist/src/modules/auth/components/RangeNuqsDatePicker.d.ts +0 -1
  104. package/dist/src/modules/auth/components/ResetPasswordForm.d.ts +0 -1
  105. package/dist/src/modules/auth/components/ResetPasswordRoute.d.ts +0 -1
  106. package/dist/src/modules/auth/components/SignupFormRoute.d.ts +0 -1
  107. package/dist/src/modules/auth/components/SignupRoute.d.ts +0 -1
  108. package/dist/src/modules/auth/components/UserPreferences.d.ts +0 -1
  109. package/dist/src/modules/auth/components/WaitlistCard.d.ts +0 -1
  110. package/dist/src/modules/auth/components/WaitlistCodeValidation.d.ts +0 -1
  111. package/dist/src/modules/billing/components/BillingBetaPage.d.ts +0 -1
  112. package/dist/src/modules/billing/components/BillingInvoicePage.d.ts +0 -1
  113. package/dist/src/modules/billing/components/BillingPlanSelect.d.ts +0 -1
  114. package/dist/src/modules/billing/components/BillingRouter.d.ts +0 -1
  115. package/dist/src/modules/billing/components/BillingSinglePlanSelect.d.ts +0 -1
  116. package/dist/src/modules/table/components/ColumnOrderAndVisibility.d.ts +0 -1
  117. package/dist/src/modules/table/components/NuqsTable.d.ts +0 -1
  118. package/dist/src/modules/table/components/TableFiltering.d.ts +0 -1
  119. package/dist/src/modules/table/components/TablePagination.d.ts +0 -1
  120. package/dist/src/modules/table/components/table.types.d.ts +0 -1
  121. package/dist/src/modules/table/filterTransformers.d.ts +0 -1
  122. package/dist/src/types.d.ts +0 -1
  123. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  124. package/package.json +8 -5
  125. package/.cursor/rules/web-ui.mdc +0 -126
  126. package/.turbo/turbo-build.log +0 -5
  127. package/.turbo/turbo-check-types.log +0 -5
  128. package/.turbo/turbo-lint$colon$fix.log +0 -381
  129. package/.turbo/turbo-lint.log +0 -361
  130. package/CHANGELOG.md +0 -25
  131. package/components.json +0 -21
  132. package/dist/src/animations/card.motion.d.ts.map +0 -1
  133. package/dist/src/components/AvatarUpload.d.ts.map +0 -1
  134. package/dist/src/components/Button.d.ts.map +0 -1
  135. package/dist/src/components/Calendar.d.ts.map +0 -1
  136. package/dist/src/components/CardsSelect.d.ts.map +0 -1
  137. package/dist/src/components/CollapsibleSidebarMenuItem.d.ts.map +0 -1
  138. package/dist/src/components/ColorPicker.d.ts.map +0 -1
  139. package/dist/src/components/CopyButton.d.ts.map +0 -1
  140. package/dist/src/components/CropDialog.d.ts.map +0 -1
  141. package/dist/src/components/DialogProvider.d.ts.map +0 -1
  142. package/dist/src/components/ErrorFallback.d.ts.map +0 -1
  143. package/dist/src/components/FileDropzone.d.ts.map +0 -1
  144. package/dist/src/components/MultiSelectDropdown.d.ts.map +0 -1
  145. package/dist/src/components/Orb.d.ts.map +0 -1
  146. package/dist/src/components/PageAlert.d.ts.map +0 -1
  147. package/dist/src/components/SelectChips.d.ts.map +0 -1
  148. package/dist/src/components/SidebarItem.d.ts.map +0 -1
  149. package/dist/src/components/Steps.d.ts.map +0 -1
  150. package/dist/src/components/TablerIconPicker.d.ts.map +0 -1
  151. package/dist/src/components/app-header.d.ts.map +0 -1
  152. package/dist/src/components/blur-card.d.ts.map +0 -1
  153. package/dist/src/components/features-section-demo-1.d.ts.map +0 -1
  154. package/dist/src/components/features-section-demo-2.d.ts.map +0 -1
  155. package/dist/src/components/features-section-demo-3.d.ts.map +0 -1
  156. package/dist/src/components/mode-toggle.d.ts.map +0 -1
  157. package/dist/src/components/nav-main.d.ts.map +0 -1
  158. package/dist/src/components/pricing-cards.d.ts.map +0 -1
  159. package/dist/src/components/shared/ButtonCopy.d.ts.map +0 -1
  160. package/dist/src/components/team-switcher.d.ts.map +0 -1
  161. package/dist/src/components/theme-provider.d.ts.map +0 -1
  162. package/dist/src/components/typewriter.d.ts.map +0 -1
  163. package/dist/src/components/ui/alert-dialog.d.ts.map +0 -1
  164. package/dist/src/components/ui/alert.d.ts.map +0 -1
  165. package/dist/src/components/ui/avatar.d.ts.map +0 -1
  166. package/dist/src/components/ui/badge.d.ts.map +0 -1
  167. package/dist/src/components/ui/bento-grid.d.ts.map +0 -1
  168. package/dist/src/components/ui/bento-grid2.d.ts.map +0 -1
  169. package/dist/src/components/ui/breadcrumb.d.ts.map +0 -1
  170. package/dist/src/components/ui/button.d.ts.map +0 -1
  171. package/dist/src/components/ui/card.d.ts.map +0 -1
  172. package/dist/src/components/ui/checkbox.d.ts.map +0 -1
  173. package/dist/src/components/ui/collapsible.d.ts.map +0 -1
  174. package/dist/src/components/ui/dialog.d.ts.map +0 -1
  175. package/dist/src/components/ui/dropdown-menu.d.ts.map +0 -1
  176. package/dist/src/components/ui/floating-navbar.d.ts.map +0 -1
  177. package/dist/src/components/ui/form.d.ts.map +0 -1
  178. package/dist/src/components/ui/image.d.ts.map +0 -1
  179. package/dist/src/components/ui/input.d.ts.map +0 -1
  180. package/dist/src/components/ui/label.d.ts.map +0 -1
  181. package/dist/src/components/ui/pagination.d.ts.map +0 -1
  182. package/dist/src/components/ui/progress.d.ts.map +0 -1
  183. package/dist/src/components/ui/resizable-navbar.d.ts.map +0 -1
  184. package/dist/src/components/ui/segment-control.d.ts.map +0 -1
  185. package/dist/src/components/ui/select.d.ts.map +0 -1
  186. package/dist/src/components/ui/separator.d.ts.map +0 -1
  187. package/dist/src/components/ui/sheet.d.ts.map +0 -1
  188. package/dist/src/components/ui/sidebar.d.ts.map +0 -1
  189. package/dist/src/components/ui/skeleton.d.ts.map +0 -1
  190. package/dist/src/components/ui/slider.d.ts.map +0 -1
  191. package/dist/src/components/ui/sonner.d.ts.map +0 -1
  192. package/dist/src/components/ui/spinner.d.ts.map +0 -1
  193. package/dist/src/components/ui/switch.d.ts.map +0 -1
  194. package/dist/src/components/ui/table.d.ts.map +0 -1
  195. package/dist/src/components/ui/tabs.d.ts.map +0 -1
  196. package/dist/src/components/ui/textarea.d.ts.map +0 -1
  197. package/dist/src/components/ui/timeline.d.ts.map +0 -1
  198. package/dist/src/components/ui/toast.d.ts.map +0 -1
  199. package/dist/src/components/ui/tooltip.d.ts.map +0 -1
  200. package/dist/src/components/ui/typewriter-effect.d.ts.map +0 -1
  201. package/dist/src/hooks/use-mobile.d.ts.map +0 -1
  202. package/dist/src/hooks/useDialog.d.ts.map +0 -1
  203. package/dist/src/icons/GoogleIcon.d.ts.map +0 -1
  204. package/dist/src/icons/LinkedInIcon.d.ts.map +0 -1
  205. package/dist/src/icons/MicrosoftIcon.d.ts.map +0 -1
  206. package/dist/src/lib/chatwoot.d.ts.map +0 -1
  207. package/dist/src/lib/utils.d.ts.map +0 -1
  208. package/dist/src/modules/app/components/AppLoader.d.ts.map +0 -1
  209. package/dist/src/modules/app/components/AppShell.d.ts.map +0 -1
  210. package/dist/src/modules/app/components/AppSidebar.d.ts.map +0 -1
  211. package/dist/src/modules/app/components/AppSidebarContent.d.ts.map +0 -1
  212. package/dist/src/modules/app/components/AppSidebarHeader.d.ts.map +0 -1
  213. package/dist/src/modules/app/components/AppSidebarInvites.d.ts.map +0 -1
  214. package/dist/src/modules/app/components/AppSidebarUser.d.ts.map +0 -1
  215. package/dist/src/modules/auth/components/AdminUserManagement.d.ts.map +0 -1
  216. package/dist/src/modules/auth/components/AdminWaitlist.d.ts.map +0 -1
  217. package/dist/src/modules/auth/components/AuthLayout.d.ts.map +0 -1
  218. package/dist/src/modules/auth/components/AuthProviders.d.ts.map +0 -1
  219. package/dist/src/modules/auth/components/AuthRouter.d.ts.map +0 -1
  220. package/dist/src/modules/auth/components/ClaimAccountRoute.d.ts.map +0 -1
  221. package/dist/src/modules/auth/components/ErrorAuthRoute.d.ts.map +0 -1
  222. package/dist/src/modules/auth/components/ForgotPasswordForm.d.ts.map +0 -1
  223. package/dist/src/modules/auth/components/ForgotPasswordRoute.d.ts.map +0 -1
  224. package/dist/src/modules/auth/components/InviteFriends.d.ts.map +0 -1
  225. package/dist/src/modules/auth/components/LastUsedBadge.d.ts.map +0 -1
  226. package/dist/src/modules/auth/components/LoginForm.d.ts.map +0 -1
  227. package/dist/src/modules/auth/components/LoginRoute.d.ts.map +0 -1
  228. package/dist/src/modules/auth/components/LogoutRoute.d.ts.map +0 -1
  229. package/dist/src/modules/auth/components/OrganizationAcceptInvitationRoute.d.ts.map +0 -1
  230. package/dist/src/modules/auth/components/OrganizationMembersRoute.d.ts.map +0 -1
  231. package/dist/src/modules/auth/components/OrganizationSettingsRoute.d.ts.map +0 -1
  232. package/dist/src/modules/auth/components/OrganizationSwitcher.d.ts.map +0 -1
  233. package/dist/src/modules/auth/components/ProfileRoute.d.ts.map +0 -1
  234. package/dist/src/modules/auth/components/RangeNuqsDatePicker.d.ts.map +0 -1
  235. package/dist/src/modules/auth/components/ResetPasswordForm.d.ts.map +0 -1
  236. package/dist/src/modules/auth/components/ResetPasswordRoute.d.ts.map +0 -1
  237. package/dist/src/modules/auth/components/SignupFormRoute.d.ts.map +0 -1
  238. package/dist/src/modules/auth/components/SignupRoute.d.ts.map +0 -1
  239. package/dist/src/modules/auth/components/UserPreferences.d.ts.map +0 -1
  240. package/dist/src/modules/auth/components/WaitlistCard.d.ts.map +0 -1
  241. package/dist/src/modules/auth/components/WaitlistCodeValidation.d.ts.map +0 -1
  242. package/dist/src/modules/billing/components/BillingBetaPage.d.ts.map +0 -1
  243. package/dist/src/modules/billing/components/BillingInvoicePage.d.ts.map +0 -1
  244. package/dist/src/modules/billing/components/BillingPlanSelect.d.ts.map +0 -1
  245. package/dist/src/modules/billing/components/BillingRouter.d.ts.map +0 -1
  246. package/dist/src/modules/billing/components/BillingSinglePlanSelect.d.ts.map +0 -1
  247. package/dist/src/modules/table/components/ColumnOrderAndVisibility.d.ts.map +0 -1
  248. package/dist/src/modules/table/components/NuqsTable.d.ts.map +0 -1
  249. package/dist/src/modules/table/components/TableFiltering.d.ts.map +0 -1
  250. package/dist/src/modules/table/components/TablePagination.d.ts.map +0 -1
  251. package/dist/src/modules/table/components/table.types.d.ts.map +0 -1
  252. package/dist/src/modules/table/filterTransformers.d.ts.map +0 -1
  253. package/dist/src/types.d.ts.map +0 -1
  254. package/src/animations/card.motion.ts +0 -9
  255. package/src/components/AvatarUpload.tsx +0 -133
  256. package/src/components/Button.tsx +0 -14
  257. package/src/components/Calendar.css +0 -684
  258. package/src/components/Calendar.tsx +0 -32
  259. package/src/components/CardsSelect.tsx +0 -155
  260. package/src/components/CollapsibleSidebarMenuItem.tsx +0 -57
  261. package/src/components/ColorPicker.tsx +0 -56
  262. package/src/components/CopyButton.tsx +0 -45
  263. package/src/components/CropDialog.tsx +0 -154
  264. package/src/components/DialogProvider.tsx +0 -105
  265. package/src/components/ErrorFallback.tsx +0 -17
  266. package/src/components/FileDropzone.tsx +0 -120
  267. package/src/components/MultiSelectDropdown.tsx +0 -233
  268. package/src/components/Orb.tsx +0 -288
  269. package/src/components/PageAlert.tsx +0 -121
  270. package/src/components/SelectChips.tsx +0 -40
  271. package/src/components/SidebarItem.tsx +0 -26
  272. package/src/components/Steps.tsx +0 -340
  273. package/src/components/TablerIconPicker.tsx +0 -4260
  274. package/src/components/app-header.tsx +0 -40
  275. package/src/components/blur-card.tsx +0 -132
  276. package/src/components/features-section-demo-1.tsx +0 -127
  277. package/src/components/features-section-demo-2.tsx +0 -102
  278. package/src/components/features-section-demo-3.tsx +0 -272
  279. package/src/components/mode-toggle.tsx +0 -31
  280. package/src/components/nav-main.tsx +0 -69
  281. package/src/components/pricing-cards.tsx +0 -133
  282. package/src/components/shared/ButtonCopy.tsx +0 -50
  283. package/src/components/team-switcher.tsx +0 -83
  284. package/src/components/theme-provider.tsx +0 -74
  285. package/src/components/typewriter.tsx +0 -90
  286. package/src/components/ui/alert-dialog.tsx +0 -133
  287. package/src/components/ui/alert.tsx +0 -60
  288. package/src/components/ui/avatar.tsx +0 -47
  289. package/src/components/ui/badge.tsx +0 -33
  290. package/src/components/ui/bento-grid.tsx +0 -54
  291. package/src/components/ui/bento-grid2.tsx +0 -66
  292. package/src/components/ui/breadcrumb.tsx +0 -101
  293. package/src/components/ui/button.tsx +0 -50
  294. package/src/components/ui/card.tsx +0 -55
  295. package/src/components/ui/checkbox.tsx +0 -26
  296. package/src/components/ui/collapsible.tsx +0 -9
  297. package/src/components/ui/dialog.tsx +0 -119
  298. package/src/components/ui/dropdown-menu.tsx +0 -186
  299. package/src/components/ui/floating-navbar.tsx +0 -78
  300. package/src/components/ui/form.tsx +0 -167
  301. package/src/components/ui/image.tsx +0 -55
  302. package/src/components/ui/input.tsx +0 -22
  303. package/src/components/ui/label.tsx +0 -19
  304. package/src/components/ui/pagination.tsx +0 -105
  305. package/src/components/ui/progress.tsx +0 -23
  306. package/src/components/ui/resizable-navbar.tsx +0 -260
  307. package/src/components/ui/segment-control.tsx +0 -143
  308. package/src/components/ui/select.tsx +0 -153
  309. package/src/components/ui/separator.tsx +0 -24
  310. package/src/components/ui/sheet.tsx +0 -121
  311. package/src/components/ui/sidebar.tsx +0 -736
  312. package/src/components/ui/skeleton.tsx +0 -7
  313. package/src/components/ui/slider.tsx +0 -23
  314. package/src/components/ui/sonner.tsx +0 -27
  315. package/src/components/ui/spinner.tsx +0 -45
  316. package/src/components/ui/switch.tsx +0 -27
  317. package/src/components/ui/table.tsx +0 -90
  318. package/src/components/ui/tabs.tsx +0 -52
  319. package/src/components/ui/textarea.tsx +0 -18
  320. package/src/components/ui/timeline.tsx +0 -95
  321. package/src/components/ui/toast.tsx +0 -126
  322. package/src/components/ui/tooltip.tsx +0 -55
  323. package/src/components/ui/typewriter-effect.tsx +0 -181
  324. package/src/hooks/use-mobile.ts +0 -19
  325. package/src/hooks/useDialog.ts +0 -25
  326. package/src/icons/GoogleIcon.tsx +0 -32
  327. package/src/icons/LinkedInIcon.tsx +0 -30
  328. package/src/icons/MicrosoftIcon.tsx +0 -21
  329. package/src/lib/chatwoot.ts +0 -51
  330. package/src/lib/utils.ts +0 -6
  331. package/src/modules/app/components/AppLoader.tsx +0 -9
  332. package/src/modules/app/components/AppShell.tsx +0 -21
  333. package/src/modules/app/components/AppSidebar.tsx +0 -26
  334. package/src/modules/app/components/AppSidebarContent.tsx +0 -73
  335. package/src/modules/app/components/AppSidebarHeader.tsx +0 -57
  336. package/src/modules/app/components/AppSidebarInvites.tsx +0 -32
  337. package/src/modules/app/components/AppSidebarUser.tsx +0 -128
  338. package/src/modules/auth/components/AdminUserManagement.tsx +0 -1136
  339. package/src/modules/auth/components/AdminWaitlist.tsx +0 -358
  340. package/src/modules/auth/components/AuthLayout.tsx +0 -13
  341. package/src/modules/auth/components/AuthProviders.tsx +0 -105
  342. package/src/modules/auth/components/AuthRouter.tsx +0 -29
  343. package/src/modules/auth/components/ClaimAccountRoute.tsx +0 -242
  344. package/src/modules/auth/components/ErrorAuthRoute.tsx +0 -121
  345. package/src/modules/auth/components/ForgotPasswordForm.tsx +0 -58
  346. package/src/modules/auth/components/ForgotPasswordRoute.tsx +0 -27
  347. package/src/modules/auth/components/InviteFriends.tsx +0 -273
  348. package/src/modules/auth/components/LastUsedBadge.tsx +0 -22
  349. package/src/modules/auth/components/LoginForm.tsx +0 -104
  350. package/src/modules/auth/components/LoginRoute.tsx +0 -31
  351. package/src/modules/auth/components/LogoutRoute.tsx +0 -21
  352. package/src/modules/auth/components/OrganizationAcceptInvitationRoute.tsx +0 -161
  353. package/src/modules/auth/components/OrganizationMembersRoute.tsx +0 -730
  354. package/src/modules/auth/components/OrganizationSettingsRoute.tsx +0 -280
  355. package/src/modules/auth/components/OrganizationSwitcher.tsx +0 -148
  356. package/src/modules/auth/components/ProfileRoute.tsx +0 -104
  357. package/src/modules/auth/components/RangeNuqsDatePicker.tsx +0 -365
  358. package/src/modules/auth/components/ResetPasswordForm.tsx +0 -103
  359. package/src/modules/auth/components/ResetPasswordRoute.tsx +0 -27
  360. package/src/modules/auth/components/SignupFormRoute.tsx +0 -189
  361. package/src/modules/auth/components/SignupRoute.tsx +0 -53
  362. package/src/modules/auth/components/UserPreferences.tsx +0 -144
  363. package/src/modules/auth/components/WaitlistCard.tsx +0 -78
  364. package/src/modules/auth/components/WaitlistCodeValidation.tsx +0 -79
  365. package/src/modules/billing/components/BillingBetaPage.tsx +0 -124
  366. package/src/modules/billing/components/BillingInvoicePage.tsx +0 -180
  367. package/src/modules/billing/components/BillingPlanSelect.tsx +0 -14
  368. package/src/modules/billing/components/BillingRouter.tsx +0 -20
  369. package/src/modules/billing/components/BillingSinglePlanSelect.tsx +0 -172
  370. package/src/modules/table/components/ColumnOrderAndVisibility.tsx +0 -127
  371. package/src/modules/table/components/NuqsTable.tsx +0 -396
  372. package/src/modules/table/components/TableFiltering.tsx +0 -520
  373. package/src/modules/table/components/TablePagination.tsx +0 -59
  374. package/src/modules/table/components/table.types.ts +0 -11
  375. package/src/modules/table/filterTransformers.ts +0 -323
  376. package/src/types.ts +0 -4
  377. package/src/vite-env.d.ts +0 -1
  378. package/translations/en/web-ui.json +0 -192
  379. package/tsconfig.json +0 -30
@@ -1,273 +0,0 @@
1
- import { Button, Card, CardBody, CardHeader, Chip, Input } from "@heroui/react";
2
- import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
3
- import { CheckCircle2, Link2Icon, Mail, Send, Ticket, Users, Zap } from "lucide-react";
4
- import { useMemo, useState } from "react";
5
- import { toast } from "sonner";
6
- import { z } from "zod";
7
- import { CopyButton } from "#components/CopyButton";
8
- import type { UseBackendTRPC } from "#types";
9
-
10
- export interface InviteFriendsProps {
11
- useTRPC: UseBackendTRPC;
12
- }
13
-
14
- export function InviteFriends({ useTRPC }: InviteFriendsProps) {
15
- const trpc = useTRPC();
16
- const queryClient = useQueryClient();
17
-
18
- const { data: waitlist = [] } = useQuery(trpc.auth.listWaitlist.queryOptions());
19
- const { data: count = 0 } = useQuery(trpc.auth.getUserWaitlistCount.queryOptions());
20
-
21
- const invitesAvailable = Math.max(0, 3 - count);
22
-
23
- const inviteMutation = useMutation(
24
- trpc.auth.inviteToWaitlist.mutationOptions({
25
- onSuccess: (result) => {
26
- queryClient.setQueryData(
27
- trpc.auth.getUserWaitlistCount.queryKey(),
28
- (old) => (old ?? 0) + 1
29
- );
30
- queryClient.setQueryData(trpc.auth.listWaitlist.queryKey(), (old) => [
31
- ...(old ?? []),
32
- result,
33
- ]);
34
- toast.success("Invitation sent successfully!");
35
- },
36
- onError: (error) => {
37
- toast.error(error.message);
38
- },
39
- })
40
- );
41
-
42
- const createInvitationCodeMutation = useMutation(
43
- trpc.auth.createInvitationCode.mutationOptions({
44
- onSuccess: (result) => {
45
- queryClient.setQueryData(
46
- trpc.auth.getUserWaitlistCount.queryKey(),
47
- (old) => (old ?? 0) + 1
48
- );
49
- queryClient.setQueryData(trpc.auth.listWaitlist.queryKey(), (old) => [
50
- ...(old ?? []),
51
- result,
52
- ]);
53
- toast.success("Code created successfully!");
54
- },
55
- onError: (error) => {
56
- toast.error(error.message);
57
- },
58
- })
59
- );
60
-
61
- const [email, setEmail] = useState("");
62
- const [name, setName] = useState("");
63
- const isLoading = inviteMutation.isPending || createInvitationCodeMutation.isPending;
64
-
65
- const isEmailValid = useMemo(() => {
66
- return z.email().safeParse(email).success;
67
- }, [email]);
68
-
69
- const handleInvite = async (e: React.FormEvent) => {
70
- e.preventDefault();
71
- if (!email) return;
72
-
73
- inviteMutation.mutate({ email, name: name.length > 0 ? name : undefined });
74
- setEmail("");
75
- setName("");
76
- };
77
-
78
- const handleCreateCode = async () => {
79
- createInvitationCodeMutation.mutate({ name: name.length > 0 ? name : undefined });
80
- setEmail("");
81
- setName("");
82
- };
83
-
84
- const getStatusColor = (status: string) => {
85
- switch (status.toLowerCase()) {
86
- case "accepted":
87
- case "completed":
88
- return "success";
89
- case "invited":
90
- return "warning";
91
- case "waitlist":
92
- return "default";
93
- default:
94
- return "default";
95
- }
96
- };
97
-
98
- return (
99
- <div className="max-w-3xl mx-auto p-6 space-y-8">
100
- {/* Hero Section */}
101
- <div className="text-center space-y-4">
102
- <div className="inline-flex items-center justify-center p-4 bg-primary/10 rounded-full mb-2 ring-1 ring-primary/20">
103
- <Ticket className="w-8 h-8 text-primary" />
104
- </div>
105
- <h1 className="text-3xl md:text-4xl font-bold tracking-tight">
106
- Invite Friends & Skip the Waitlist
107
- </h1>
108
- <p className="text-lg text-default-600 max-w-lg mx-auto leading-relaxed">
109
- Encourage your friends to join! Friends invited by you get{" "}
110
- <span className="text-foreground font-medium">immediate access</span> and skip the
111
- waitlist completely.
112
- </p>
113
- <div className="flex justify-center mt-4">
114
- <Chip
115
- color={invitesAvailable > 0 ? "warning" : "default"}
116
- variant="flat"
117
- size="lg"
118
- startContent={
119
- <Zap size={16} className={invitesAvailable > 0 ? "text-warning-600" : ""} />
120
- }
121
- className="font-medium"
122
- >
123
- {invitesAvailable} {invitesAvailable === 1 ? "Invite" : "Invites"} Remaining
124
- </Chip>
125
- </div>
126
- </div>
127
-
128
- <div className="grid gap-6">
129
- {/* Invite Form */}
130
- <Card className="shadow-sm border border-default-200">
131
- <CardHeader className="flex flex-col items-start gap-1 px-6 pt-6 pb-2">
132
- <h3 className="text-xl font-semibold">Send an Invitation via Email</h3>
133
- <p className="text-small text-default-600">
134
- They'll receive a unique code to join instantly.
135
- </p>
136
- </CardHeader>
137
- <CardBody className="px-6 pb-6">
138
- <form onSubmit={handleInvite} className="flex flex-col gap-4">
139
- <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
140
- <Input
141
- label="Friend's Name (Optional)"
142
- placeholder="e.g. Alex"
143
- value={name}
144
- onValueChange={setName}
145
- variant="bordered"
146
- labelPlacement="outside"
147
- />
148
- <Input
149
- type="email"
150
- label="Email Address (Required for sending)"
151
- placeholder="friend@example.com"
152
- value={email}
153
- onValueChange={setEmail}
154
- variant="bordered"
155
- labelPlacement="outside"
156
- startContent={
157
- <Mail
158
- className="text-default-400 pointer-events-none flex-shrink-0"
159
- size={16}
160
- />
161
- }
162
- />
163
- </div>
164
- <div className="flex justify-end pt-2 gap-2">
165
- <Button
166
- color="primary"
167
- variant="bordered"
168
- type="button"
169
- isLoading={isLoading}
170
- isDisabled={invitesAvailable <= 0}
171
- onPress={handleCreateCode}
172
- className="font-medium"
173
- endContent={!isLoading && <Link2Icon size={16} />}
174
- >
175
- Create Invitation Link
176
- </Button>
177
- <Button
178
- color="primary"
179
- type="submit"
180
- isLoading={isLoading}
181
- isDisabled={invitesAvailable <= 0 || !isEmailValid}
182
- className="font-medium"
183
- endContent={!isLoading && <Send size={16} />}
184
- >
185
- Send Invitation
186
- </Button>
187
- </div>
188
- </form>
189
- </CardBody>
190
- </Card>
191
-
192
- {/* Created Invitations Section */}
193
- <div className="space-y-4">
194
- <div className="flex items-center justify-between">
195
- <h3 className="text-xl font-semibold">Created Invitations</h3>
196
- </div>
197
-
198
- {waitlist.length > 0 ? (
199
- <div className="flex flex-col gap-3">
200
- {waitlist.map((item) => (
201
- <div
202
- key={item.id}
203
- className="flex items-center justify-between p-4 border border-default-200 rounded-lg bg-content1"
204
- >
205
- <div className="flex flex-row gap-3">
206
- <div>
207
- <span className="text-sm font-medium">
208
- {item.email || item.name || "Open Invitation Link"}
209
- </span>
210
- </div>
211
- <Chip
212
- size="sm"
213
- color={getStatusColor(item.status)}
214
- variant="flat"
215
- className="capitalize"
216
- >
217
- {item.status.toLowerCase()}
218
- </Chip>
219
- </div>
220
-
221
- <div className="flex items-center gap-3">
222
- {item.code && (
223
- <CopyButton
224
- variant="flat"
225
- color="success"
226
- size="sm"
227
- text={`${import.meta.env.VITE_APP_URL}/signup?code=${item.code}`}
228
- isIconOnly
229
- />
230
- )}
231
- </div>
232
- </div>
233
- ))}
234
- </div>
235
- ) : (
236
- <div className="text-center py-8 text-default-600 border border-dashed border-default-200 rounded-lg">
237
- No invitations created yet.
238
- </div>
239
- )}
240
- </div>
241
- </div>
242
-
243
- {/* Benefits Grid */}
244
- <div className="grid grid-cols-1 md:grid-cols-3 gap-4 py-4">
245
- <div className="flex flex-col items-center text-center p-6 rounded-2xl bg-content1 border border-default-100 shadow-sm">
246
- <div className="p-3 bg-warning/10 text-warning rounded-full mb-4">
247
- <Zap className="w-6 h-6" />
248
- </div>
249
- <h3 className="font-semibold mb-2">Instant Access</h3>
250
- <p className="text-sm text-default-600">
251
- Friends you invite skip the waitlist completely and get in right away.
252
- </p>
253
- </div>
254
- <div className="flex flex-col items-center text-center p-6 rounded-2xl bg-content1 border border-default-100 shadow-sm">
255
- <div className="p-3 bg-primary/10 text-primary rounded-full mb-4">
256
- <Users className="w-6 h-6" />
257
- </div>
258
- <h3 className="font-semibold mb-2">Grow Your Network</h3>
259
- <p className="text-sm text-default-600">Build your circle within the app from day one.</p>
260
- </div>
261
- <div className="flex flex-col items-center text-center p-6 rounded-2xl bg-content1 border border-default-100 shadow-sm">
262
- <div className="p-3 bg-success/10 text-success rounded-full mb-4">
263
- <CheckCircle2 className="w-6 h-6" />
264
- </div>
265
- <h3 className="font-semibold mb-2">Verified Status</h3>
266
- <p className="text-sm text-default-600">
267
- Invited members get a verified badge on their profile.
268
- </p>
269
- </div>
270
- </div>
271
- </div>
272
- );
273
- }
@@ -1,22 +0,0 @@
1
- import { Badge, type BadgeProps } from "@heroui/react";
2
- import { useTranslation } from "react-i18next";
3
-
4
- export function LastUsedBadge({
5
- lastMethod,
6
- method,
7
- children,
8
- ...props
9
- }: BadgeProps & { lastMethod?: string | null; method?: string | null }) {
10
- const { t } = useTranslation();
11
- if (lastMethod !== method) return children;
12
- return (
13
- <Badge
14
- {...props}
15
- content={t("web-ui:auth.login.lastUsed")}
16
- color="warning"
17
- className="px-2 !right-[10%]"
18
- >
19
- {children}
20
- </Badge>
21
- );
22
- }
@@ -1,104 +0,0 @@
1
- import { Button, Input } from "@heroui/react";
2
- import { authClient } from "@m5kdev/frontend/modules/auth/auth.lib";
3
- import { useSession } from "@m5kdev/frontend/modules/auth/hooks/useSession";
4
- import { type SubmitHandler, useForm } from "react-hook-form";
5
- import { useTranslation } from "react-i18next";
6
- import { Link, useNavigate } from "react-router";
7
- import { toast } from "sonner";
8
- import { AuthProviders } from "./AuthProviders";
9
- import { LastUsedBadge } from "./LastUsedBadge";
10
-
11
- type Inputs = {
12
- email: string;
13
- password: string;
14
- };
15
-
16
- export function LoginForm({ providers }: { providers?: string[] }) {
17
- const lastMethod = authClient.getLastUsedLoginMethod();
18
- const { register, handleSubmit } = useForm<Inputs>();
19
- const { registerSession } = useSession();
20
- const navigate = useNavigate();
21
- const { t } = useTranslation();
22
-
23
- const onSubmit: SubmitHandler<Inputs> = (data) => {
24
- console.log(data);
25
- authClient.signIn
26
- .email({
27
- email: data.email,
28
- password: data.password,
29
- })
30
- .then((res) => {
31
- console.log(res);
32
- if (res.data?.user) {
33
- registerSession(() => {
34
- navigate("/");
35
- });
36
- } else if (res.error) {
37
- toast.error(t("web-ui:auth.errors.authentication"), {
38
- description: res.error.message,
39
- });
40
- }
41
- })
42
- .catch((error) => {
43
- toast.error(t("web-ui:auth.errors.server"), {
44
- description: error.message,
45
- });
46
- });
47
- };
48
-
49
- return (
50
- <form onSubmit={handleSubmit(onSubmit)}>
51
- <div className="grid gap-6">
52
- <AuthProviders providers={providers} lastMethod={lastMethod} />
53
-
54
- <div className="grid gap-6">
55
- <div className="grid gap-2">
56
- <LastUsedBadge lastMethod={lastMethod} method="email">
57
- <label htmlFor="email" className="text-sm font-medium">
58
- {t("web-ui:auth.login.email")}
59
- </label>
60
- </LastUsedBadge>
61
- <Input
62
- type="email"
63
- placeholder={t("web-ui:auth.login.placeholder.email")}
64
- variant="bordered"
65
- isRequired
66
- {...register("email", { required: true })}
67
- />
68
- </div>
69
-
70
- <div className="grid gap-2">
71
- <div className="flex items-center">
72
- <label htmlFor="password" className="text-sm font-medium">
73
- {t("web-ui:auth.login.password")}
74
- </label>
75
- <Link
76
- to="/forgot-password"
77
- className="ml-auto text-sm underline-offset-4 hover:underline"
78
- >
79
- {t("web-ui:auth.login.forgotPassword")}
80
- </Link>
81
- </div>
82
- <Input
83
- placeholder={t("web-ui:auth.login.password")}
84
- type="password"
85
- variant="bordered"
86
- isRequired
87
- {...register("password", { required: true })}
88
- />
89
- </div>
90
- <Button type="submit" className="w-full" color="primary">
91
- {t("web-ui:auth.login.button")}
92
- </Button>
93
- </div>
94
-
95
- <div className="text-center text-sm">
96
- {t("web-ui:auth.login.noAccount")}{" "}
97
- <Link to="/signup" className="underline underline-offset-4">
98
- {t("web-ui:auth.login.signUp")}
99
- </Link>
100
- </div>
101
- </div>
102
- </form>
103
- );
104
- }
@@ -1,31 +0,0 @@
1
- import { Card, CardBody, CardHeader } from "@heroui/react";
2
- import { useTranslation } from "react-i18next";
3
- import { Link } from "react-router";
4
- import { LoginForm } from "./LoginForm";
5
-
6
- export function LoginRoute({ providers }: { providers?: string[] }) {
7
- const { t } = useTranslation();
8
- return (
9
- <div className="flex flex-col gap-6">
10
- <Card>
11
- <CardHeader className="text-center flex flex-col gap-1">
12
- <p className="text-xl font-semibold">{t("web-ui:auth.login.welcome")}</p>
13
- <p className="text-sm text-default-600">
14
- {providers
15
- ? t("web-ui:auth.login.descriptionWithProviders")
16
- : t("web-ui:auth.login.description")}
17
- </p>
18
- </CardHeader>
19
- <CardBody>
20
- <LoginForm providers={providers} />
21
- </CardBody>
22
- </Card>
23
- <div className="text-balance text-center text-xs text-muted-foreground [&_a]:underline [&_a]:underline-offset-4 [&_a]:hover:text-primary ">
24
- {t("web-ui:common.byClickingContinue")}{" "}
25
- <Link to="/terms-of-service">{t("web-ui:common.termsOfService")}</Link>{" "}
26
- {t("web-ui:common.and")}{" "}
27
- <Link to="/privacy-policy">{t("web-ui:common.privacyPolicy")}</Link>.
28
- </div>
29
- </div>
30
- );
31
- }
@@ -1,21 +0,0 @@
1
- import { Spinner } from "@heroui/react";
2
- import { authClient } from "@m5kdev/frontend/modules/auth/auth.lib";
3
- import { useEffect } from "react";
4
- import { useNavigate } from "react-router";
5
-
6
- export default function Logout() {
7
- const navigate = useNavigate();
8
-
9
- // biome-ignore lint/correctness/useExhaustiveDependencies(authClient): authClient is a singleton
10
- // biome-ignore lint/correctness/useExhaustiveDependencies(navigate): navigate is a global hook
11
- useEffect(() => {
12
- authClient.signOut();
13
- navigate("/login");
14
- }, []);
15
-
16
- return (
17
- <div className="flex-1 justify-center align-center">
18
- <Spinner />
19
- </div>
20
- );
21
- }
@@ -1,161 +0,0 @@
1
- import { Card, CardBody, CardHeader, Spinner } from "@heroui/react";
2
- import { authClient } from "@m5kdev/frontend/modules/auth/auth.lib";
3
- import { useSession } from "@m5kdev/frontend/modules/auth/hooks/useSession";
4
- import { useEffect, useMemo, useState } from "react";
5
- import { useTranslation } from "react-i18next";
6
- import { useLocation, useNavigate, useSearchParams } from "react-router";
7
- import { toast } from "sonner";
8
-
9
- type Phase = "idle" | "accepting" | "success" | "error";
10
-
11
- export type OrganizationAcceptInvitationRouteProps = {
12
- authReturnKey?: string;
13
- loginPath?: string;
14
- defaultRedirectPath?: string;
15
- managerRedirectPath?: string;
16
- managerRoles?: string[];
17
- onInvalidateScopedQueries?: () => void | Promise<void>;
18
- };
19
-
20
- export function OrganizationAcceptInvitationRoute({
21
- authReturnKey = "org-auth-return",
22
- loginPath = "/login",
23
- defaultRedirectPath = "/",
24
- managerRedirectPath = "/organization/members",
25
- managerRoles = ["admin", "owner"],
26
- onInvalidateScopedQueries,
27
- }: OrganizationAcceptInvitationRouteProps) {
28
- const { t } = useTranslation();
29
- const [searchParams] = useSearchParams();
30
- const { data: session, registerSession } = useSession();
31
- const navigate = useNavigate();
32
- const location = useLocation();
33
- const invitationId = searchParams.get("id");
34
- const [phase, setPhase] = useState<Phase>("idle");
35
- const [errorMessage, setErrorMessage] = useState<string | null>(null);
36
- const managerRoleSet = useMemo(() => new Set(managerRoles), [managerRoles]);
37
-
38
- useEffect(() => {
39
- if (!invitationId) {
40
- setPhase("error");
41
- setErrorMessage(t("web-ui:organization.invitation.errorMissing"));
42
- return;
43
- }
44
-
45
- if (!session) {
46
- sessionStorage.setItem(authReturnKey, `${location.pathname}${location.search}`);
47
- navigate(loginPath, { replace: true });
48
- }
49
- }, [
50
- authReturnKey,
51
- invitationId,
52
- location.pathname,
53
- location.search,
54
- loginPath,
55
- navigate,
56
- session,
57
- t,
58
- ]);
59
-
60
- useEffect(() => {
61
- if (!session || !invitationId || phase !== "idle") {
62
- return;
63
- }
64
-
65
- let isMounted = true;
66
-
67
- const run = async () => {
68
- try {
69
- setPhase("accepting");
70
- const { data, error } = await authClient.organization.acceptInvitation({ invitationId });
71
- if (error) {
72
- throw new Error(error.message ?? t("web-ui:organization.invitation.acceptFailed"));
73
- }
74
-
75
- const organizationId =
76
- (data as { invitation?: { organizationId?: string } | null } | null)?.invitation
77
- ?.organizationId ?? null;
78
- const invitationRole =
79
- (data as { invitation?: { role?: string } | null } | null)?.invitation?.role ?? "member";
80
-
81
- if (organizationId) {
82
- const result = await authClient.organization.setActive({ organizationId });
83
- if (result.error) {
84
- throw new Error(
85
- result.error.message ?? t("web-ui:organization.invitation.activateFailed")
86
- );
87
- }
88
- }
89
-
90
- registerSession(() => {
91
- void onInvalidateScopedQueries?.();
92
- });
93
-
94
- if (isMounted) {
95
- setPhase("success");
96
- toast.success(t("web-ui:organization.invitation.accepted"));
97
- navigate(managerRoleSet.has(invitationRole) ? managerRedirectPath : defaultRedirectPath, {
98
- replace: true,
99
- });
100
- }
101
- } catch (error) {
102
- if (isMounted) {
103
- setPhase("error");
104
- setErrorMessage(
105
- error instanceof Error
106
- ? error.message
107
- : t("web-ui:organization.invitation.acceptFailed")
108
- );
109
- }
110
- }
111
- };
112
-
113
- void run();
114
-
115
- return () => {
116
- isMounted = false;
117
- };
118
- }, [
119
- defaultRedirectPath,
120
- invitationId,
121
- managerRedirectPath,
122
- managerRoleSet,
123
- navigate,
124
- onInvalidateScopedQueries,
125
- phase,
126
- registerSession,
127
- session,
128
- t,
129
- ]);
130
-
131
- if (phase === "error") {
132
- return (
133
- <div className="min-h-screen flex items-center justify-center p-6">
134
- <Card className="w-full max-w-lg">
135
- <CardHeader className="text-lg font-semibold">
136
- {t("web-ui:organization.invitation.error")}
137
- </CardHeader>
138
- <CardBody>{errorMessage ?? t("web-ui:organization.invitation.unableAccept")}</CardBody>
139
- </Card>
140
- </div>
141
- );
142
- }
143
-
144
- return (
145
- <div className="min-h-screen flex items-center justify-center p-6">
146
- <Card className="w-full max-w-lg">
147
- <CardHeader className="text-lg font-semibold">
148
- {t("web-ui:organization.invitation.accepting")}
149
- </CardHeader>
150
- <CardBody className="flex items-center gap-3">
151
- <Spinner size="sm" />
152
- <span>
153
- {phase === "success"
154
- ? t("web-ui:organization.invitation.redirecting")
155
- : t("web-ui:organization.invitation.pleaseWait")}
156
- </span>
157
- </CardBody>
158
- </Card>
159
- </div>
160
- );
161
- }