@m5kdev/web-ui 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/dist/src/animations/card.motion.d.ts +2 -0
  2. package/dist/src/animations/card.motion.js +7 -0
  3. package/dist/src/components/AvatarUpload.d.ts +7 -0
  4. package/dist/src/components/AvatarUpload.js +67 -0
  5. package/dist/src/components/Button.d.ts +5 -0
  6. package/dist/src/components/Button.js +5 -0
  7. package/dist/src/components/Calendar.d.ts +35 -0
  8. package/dist/src/components/Calendar.js +10 -0
  9. package/dist/src/components/CardsSelect.d.ts +23 -0
  10. package/dist/src/components/CardsSelect.js +46 -0
  11. package/dist/src/components/CollapsibleSidebarMenuItem.d.ts +9 -0
  12. package/dist/src/components/CollapsibleSidebarMenuItem.js +11 -0
  13. package/dist/src/components/ColorPicker.d.ts +4 -0
  14. package/dist/src/components/ColorPicker.js +21 -0
  15. package/dist/src/components/CopyButton.d.ts +6 -0
  16. package/dist/src/components/CopyButton.js +24 -0
  17. package/dist/src/components/CropDialog.d.ts +10 -0
  18. package/dist/src/components/CropDialog.js +67 -0
  19. package/dist/src/components/DialogProvider.d.ts +15 -0
  20. package/dist/src/components/DialogProvider.js +50 -0
  21. package/dist/src/components/ErrorFallback.d.ts +4 -0
  22. package/dist/src/components/ErrorFallback.js +5 -0
  23. package/dist/src/components/FileDropzone.d.ts +6 -0
  24. package/dist/src/components/FileDropzone.js +63 -0
  25. package/dist/src/components/MultiSelectDropdown.d.ts +26 -0
  26. package/dist/src/components/MultiSelectDropdown.js +53 -0
  27. package/dist/src/components/Orb.d.ts +6 -0
  28. package/{src/components/Orb.tsx → dist/src/components/Orb.js} +107 -136
  29. package/dist/src/components/PageAlert.d.ts +18 -0
  30. package/dist/src/components/PageAlert.js +48 -0
  31. package/dist/src/components/SelectChips.d.ts +10 -0
  32. package/dist/src/components/SelectChips.js +11 -0
  33. package/dist/src/components/SidebarItem.d.ts +7 -0
  34. package/dist/src/components/SidebarItem.js +6 -0
  35. package/dist/src/components/Steps.d.ts +19 -0
  36. package/dist/src/components/Steps.js +34 -0
  37. package/dist/src/components/TablerIconPicker.d.ts +2 -0
  38. package/dist/src/components/TablerIconPicker.js +4238 -0
  39. package/dist/src/components/app-header.d.ts +6 -0
  40. package/dist/src/components/app-header.js +8 -0
  41. package/dist/src/components/blur-card.d.ts +13 -0
  42. package/dist/src/components/blur-card.js +34 -0
  43. package/dist/src/components/features-section-demo-1.d.ts +6 -0
  44. package/dist/src/components/features-section-demo-1.js +53 -0
  45. package/dist/src/components/features-section-demo-2.d.ts +1 -0
  46. package/dist/src/components/features-section-demo-2.js +51 -0
  47. package/dist/src/components/features-section-demo-3.d.ts +8 -0
  48. package/dist/src/components/features-section-demo-3.js +116 -0
  49. package/dist/src/components/mode-toggle.d.ts +1 -0
  50. package/dist/src/components/mode-toggle.js +9 -0
  51. package/dist/src/components/nav-main.d.ts +13 -0
  52. package/dist/src/components/nav-main.js +9 -0
  53. package/dist/src/components/pricing-cards.d.ts +1 -0
  54. package/dist/src/components/pricing-cards.js +27 -0
  55. package/dist/src/components/shared/ButtonCopy.d.ts +6 -0
  56. package/dist/src/components/shared/ButtonCopy.js +24 -0
  57. package/dist/src/components/team-switcher.d.ts +8 -0
  58. package/dist/src/components/team-switcher.js +10 -0
  59. package/dist/src/components/theme-provider.d.ts +13 -0
  60. package/dist/src/components/theme-provider.js +41 -0
  61. package/dist/src/components/typewriter.d.ts +18 -0
  62. package/dist/src/components/typewriter.js +38 -0
  63. package/dist/src/components/ui/alert-dialog.d.ts +14 -0
  64. package/dist/src/components/ui/alert-dialog.js +38 -0
  65. package/dist/src/components/ui/alert.d.ts +9 -0
  66. package/dist/src/components/ui/alert.js +24 -0
  67. package/dist/src/components/ui/avatar.d.ts +6 -0
  68. package/dist/src/components/ui/avatar.js +12 -0
  69. package/dist/src/components/ui/badge.d.ts +9 -0
  70. package/dist/src/components/ui/badge.js +20 -0
  71. package/dist/src/components/ui/bento-grid.d.ts +11 -0
  72. package/dist/src/components/ui/bento-grid.js +8 -0
  73. package/dist/src/components/ui/bento-grid2.d.ts +15 -0
  74. package/dist/src/components/ui/bento-grid2.js +13 -0
  75. package/dist/src/components/ui/breadcrumb.d.ts +19 -0
  76. package/dist/src/components/ui/breadcrumb.js +23 -0
  77. package/dist/src/components/ui/button.d.ts +11 -0
  78. package/dist/src/components/ui/button.js +33 -0
  79. package/dist/src/components/ui/card.d.ts +8 -0
  80. package/dist/src/components/ui/card.js +16 -0
  81. package/dist/src/components/ui/checkbox.d.ts +4 -0
  82. package/dist/src/components/ui/checkbox.js +8 -0
  83. package/dist/src/components/ui/collapsible.d.ts +5 -0
  84. package/{src/components/ui/collapsible.tsx → dist/src/components/ui/collapsible.js} +5 -9
  85. package/dist/src/components/ui/dialog.d.ts +13 -0
  86. package/dist/src/components/ui/dialog.js +35 -0
  87. package/dist/src/components/ui/dropdown-menu.d.ts +27 -0
  88. package/dist/src/components/ui/dropdown-menu.js +32 -0
  89. package/dist/src/components/ui/floating-navbar.d.ts +9 -0
  90. package/dist/src/components/ui/floating-navbar.js +38 -0
  91. package/dist/src/components/ui/form.d.ts +23 -0
  92. package/dist/src/components/ui/form.js +60 -0
  93. package/dist/src/components/ui/image.d.ts +6 -0
  94. package/dist/src/components/ui/image.js +15 -0
  95. package/dist/src/components/ui/input.d.ts +3 -0
  96. package/dist/src/components/ui/input.js +8 -0
  97. package/dist/src/components/ui/label.d.ts +5 -0
  98. package/dist/src/components/ui/label.js +9 -0
  99. package/dist/src/components/ui/pagination.d.ts +13 -0
  100. package/dist/src/components/ui/pagination.js +29 -0
  101. package/dist/src/components/ui/progress.d.ts +4 -0
  102. package/dist/src/components/ui/progress.js +7 -0
  103. package/dist/src/components/ui/resizable-navbar.d.ts +56 -0
  104. package/dist/src/components/ui/resizable-navbar.js +86 -0
  105. package/dist/src/components/ui/segment-control.d.ts +9 -0
  106. package/dist/src/components/ui/segment-control.js +42 -0
  107. package/dist/src/components/ui/select.d.ts +13 -0
  108. package/dist/src/components/ui/select.js +26 -0
  109. package/dist/src/components/ui/separator.d.ts +4 -0
  110. package/dist/src/components/ui/separator.js +7 -0
  111. package/dist/src/components/ui/sheet.d.ts +25 -0
  112. package/dist/src/components/ui/sheet.js +37 -0
  113. package/dist/src/components/ui/sidebar.d.ts +66 -0
  114. package/dist/src/components/ui/sidebar.js +222 -0
  115. package/dist/src/components/ui/skeleton.d.ts +2 -0
  116. package/dist/src/components/ui/skeleton.js +6 -0
  117. package/dist/src/components/ui/slider.d.ts +4 -0
  118. package/dist/src/components/ui/slider.js +7 -0
  119. package/dist/src/components/ui/sonner.d.ts +4 -0
  120. package/dist/src/components/ui/sonner.js +15 -0
  121. package/dist/src/components/ui/spinner.d.ts +14 -0
  122. package/dist/src/components/ui/spinner.js +30 -0
  123. package/dist/src/components/ui/switch.d.ts +4 -0
  124. package/dist/src/components/ui/switch.js +7 -0
  125. package/dist/src/components/ui/table.d.ts +10 -0
  126. package/dist/src/components/ui/table.js +27 -0
  127. package/dist/src/components/ui/tabs.d.ts +7 -0
  128. package/dist/src/components/ui/tabs.js +16 -0
  129. package/dist/src/components/ui/textarea.d.ts +3 -0
  130. package/dist/src/components/ui/textarea.js +6 -0
  131. package/dist/src/components/ui/timeline.d.ts +11 -0
  132. package/dist/src/components/ui/timeline.js +27 -0
  133. package/dist/src/components/ui/toast.d.ts +15 -0
  134. package/dist/src/components/ui/toast.js +33 -0
  135. package/dist/src/components/ui/tooltip.d.ts +7 -0
  136. package/dist/src/components/ui/tooltip.js +16 -0
  137. package/dist/src/components/ui/typewriter-effect.d.ts +16 -0
  138. package/dist/src/components/ui/typewriter-effect.js +76 -0
  139. package/dist/src/hooks/use-mobile.d.ts +1 -0
  140. package/dist/src/hooks/use-mobile.js +15 -0
  141. package/dist/src/hooks/useDialog.d.ts +4 -0
  142. package/dist/src/hooks/useDialog.js +22 -0
  143. package/dist/src/icons/GoogleIcon.d.ts +5 -0
  144. package/dist/src/icons/GoogleIcon.js +4 -0
  145. package/dist/src/icons/LinkedInIcon.d.ts +5 -0
  146. package/dist/src/icons/LinkedInIcon.js +4 -0
  147. package/dist/src/icons/MicrosoftIcon.d.ts +5 -0
  148. package/dist/src/icons/MicrosoftIcon.js +4 -0
  149. package/dist/src/lib/chatwoot.d.ts +11 -0
  150. package/dist/src/lib/chatwoot.js +28 -0
  151. package/dist/src/lib/utils.d.ts +2 -0
  152. package/dist/src/lib/utils.js +5 -0
  153. package/dist/src/modules/app/components/AppLoader.d.ts +2 -0
  154. package/dist/src/modules/app/components/AppLoader.js +5 -0
  155. package/dist/src/modules/app/components/AppShell.d.ts +7 -0
  156. package/dist/src/modules/app/components/AppShell.js +7 -0
  157. package/dist/src/modules/app/components/AppSidebar.d.ts +7 -0
  158. package/dist/src/modules/app/components/AppSidebar.js +5 -0
  159. package/dist/src/modules/app/components/AppSidebarContent.d.ts +16 -0
  160. package/dist/src/modules/app/components/AppSidebarContent.js +7 -0
  161. package/dist/src/modules/app/components/AppSidebarHeader.d.ts +8 -0
  162. package/dist/src/modules/app/components/AppSidebarHeader.js +10 -0
  163. package/dist/src/modules/app/components/AppSidebarInvites.d.ts +3 -0
  164. package/dist/src/modules/app/components/AppSidebarInvites.js +12 -0
  165. package/dist/src/modules/app/components/AppSidebarUser.d.ts +11 -0
  166. package/dist/src/modules/app/components/AppSidebarUser.js +16 -0
  167. package/dist/src/modules/auth/components/AdminUserManagement.d.ts +6 -0
  168. package/dist/src/modules/auth/components/AdminUserManagement.js +422 -0
  169. package/dist/src/modules/auth/components/AdminWaitlist.d.ts +6 -0
  170. package/dist/src/modules/auth/components/AdminWaitlist.js +118 -0
  171. package/dist/src/modules/auth/components/AuthLayout.d.ts +4 -0
  172. package/dist/src/modules/auth/components/AuthLayout.js +5 -0
  173. package/dist/src/modules/auth/components/AuthProviders.d.ts +6 -0
  174. package/dist/src/modules/auth/components/AuthProviders.js +45 -0
  175. package/dist/src/modules/auth/components/AuthRouter.d.ts +9 -0
  176. package/dist/src/modules/auth/components/AuthRouter.js +12 -0
  177. package/dist/src/modules/auth/components/ClaimAccountRoute.d.ts +4 -0
  178. package/dist/src/modules/auth/components/ClaimAccountRoute.js +143 -0
  179. package/dist/src/modules/auth/components/ErrorAuthRoute.d.ts +1 -0
  180. package/dist/src/modules/auth/components/ErrorAuthRoute.js +93 -0
  181. package/dist/src/modules/auth/components/ForgotPasswordForm.d.ts +1 -0
  182. package/dist/src/modules/auth/components/ForgotPasswordForm.js +27 -0
  183. package/dist/src/modules/auth/components/ForgotPasswordRoute.d.ts +1 -0
  184. package/dist/src/modules/auth/components/ForgotPasswordRoute.js +9 -0
  185. package/dist/src/modules/auth/components/InviteFriends.d.ts +5 -0
  186. package/dist/src/modules/auth/components/InviteFriends.js +74 -0
  187. package/dist/src/modules/auth/components/LastUsedBadge.d.ts +5 -0
  188. package/dist/src/modules/auth/components/LastUsedBadge.js +9 -0
  189. package/dist/src/modules/auth/components/LoginForm.d.ts +3 -0
  190. package/dist/src/modules/auth/components/LoginForm.js +44 -0
  191. package/dist/src/modules/auth/components/LoginRoute.d.ts +3 -0
  192. package/dist/src/modules/auth/components/LoginRoute.js +11 -0
  193. package/dist/src/modules/auth/components/LogoutRoute.d.ts +1 -0
  194. package/dist/src/modules/auth/components/LogoutRoute.js +15 -0
  195. package/dist/src/modules/auth/components/OrganizationAcceptInvitationRoute.d.ts +9 -0
  196. package/dist/src/modules/auth/components/OrganizationAcceptInvitationRoute.js +102 -0
  197. package/dist/src/modules/auth/components/OrganizationMembersRoute.d.ts +51 -0
  198. package/dist/src/modules/auth/components/OrganizationMembersRoute.js +359 -0
  199. package/dist/src/modules/auth/components/OrganizationSettingsRoute.d.ts +20 -0
  200. package/dist/src/modules/auth/components/OrganizationSettingsRoute.js +153 -0
  201. package/dist/src/modules/auth/components/OrganizationSwitcher.d.ts +7 -0
  202. package/dist/src/modules/auth/components/OrganizationSwitcher.js +74 -0
  203. package/dist/src/modules/auth/components/ProfileRoute.d.ts +1 -0
  204. package/dist/src/modules/auth/components/ProfileRoute.js +42 -0
  205. package/dist/src/modules/auth/components/RangeNuqsDatePicker.d.ts +31 -0
  206. package/dist/src/modules/auth/components/RangeNuqsDatePicker.js +236 -0
  207. package/dist/src/modules/auth/components/ResetPasswordForm.d.ts +1 -0
  208. package/dist/src/modules/auth/components/ResetPasswordForm.js +39 -0
  209. package/dist/src/modules/auth/components/ResetPasswordRoute.d.ts +1 -0
  210. package/dist/src/modules/auth/components/ResetPasswordRoute.js +9 -0
  211. package/dist/src/modules/auth/components/SignupFormRoute.d.ts +5 -0
  212. package/dist/src/modules/auth/components/SignupFormRoute.js +106 -0
  213. package/dist/src/modules/auth/components/SignupRoute.d.ts +7 -0
  214. package/dist/src/modules/auth/components/SignupRoute.js +16 -0
  215. package/dist/src/modules/auth/components/UserPreferences.d.ts +30 -0
  216. package/dist/src/modules/auth/components/UserPreferences.js +60 -0
  217. package/dist/src/modules/auth/components/WaitlistCard.d.ts +6 -0
  218. package/dist/src/modules/auth/components/WaitlistCard.js +32 -0
  219. package/dist/src/modules/auth/components/WaitlistCodeValidation.d.ts +7 -0
  220. package/dist/src/modules/auth/components/WaitlistCodeValidation.js +43 -0
  221. package/dist/src/modules/billing/components/BillingBetaPage.d.ts +8 -0
  222. package/dist/src/modules/billing/components/BillingBetaPage.js +11 -0
  223. package/dist/src/modules/billing/components/BillingInvoicePage.d.ts +7 -0
  224. package/dist/src/modules/billing/components/BillingInvoicePage.js +32 -0
  225. package/dist/src/modules/billing/components/BillingPlanSelect.d.ts +6 -0
  226. package/dist/src/modules/billing/components/BillingPlanSelect.js +8 -0
  227. package/dist/src/modules/billing/components/BillingRouter.d.ts +9 -0
  228. package/dist/src/modules/billing/components/BillingRouter.js +8 -0
  229. package/dist/src/modules/billing/components/BillingSinglePlanSelect.d.ts +8 -0
  230. package/dist/src/modules/billing/components/BillingSinglePlanSelect.js +46 -0
  231. package/dist/src/modules/table/components/ColumnOrderAndVisibility.d.ts +10 -0
  232. package/dist/src/modules/table/components/ColumnOrderAndVisibility.js +42 -0
  233. package/dist/src/modules/table/components/NuqsTable.d.ts +23 -0
  234. package/dist/src/modules/table/components/NuqsTable.js +198 -0
  235. package/dist/src/modules/table/components/TableFiltering.d.ts +23 -0
  236. package/dist/src/modules/table/components/TableFiltering.js +236 -0
  237. package/dist/src/modules/table/components/TablePagination.d.ts +9 -0
  238. package/dist/src/modules/table/components/TablePagination.js +21 -0
  239. package/{src/modules/table/components/table.types.ts → dist/src/modules/table/components/table.types.d.ts} +12 -11
  240. package/dist/src/modules/table/components/table.types.js +1 -0
  241. package/dist/src/modules/table/filterTransformers.d.ts +53 -0
  242. package/dist/src/modules/table/filterTransformers.js +276 -0
  243. package/{src/types.ts → dist/src/types.d.ts} +3 -4
  244. package/dist/src/types.js +1 -0
  245. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  246. package/package.json +8 -5
  247. package/.cursor/rules/web-ui.mdc +0 -126
  248. package/.turbo/turbo-build.log +0 -5
  249. package/.turbo/turbo-check-types.log +0 -5
  250. package/.turbo/turbo-lint$colon$fix.log +0 -381
  251. package/.turbo/turbo-lint.log +0 -361
  252. package/CHANGELOG.md +0 -19
  253. package/components.json +0 -21
  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/PageAlert.tsx +0 -121
  269. package/src/components/SelectChips.tsx +0 -40
  270. package/src/components/SidebarItem.tsx +0 -26
  271. package/src/components/Steps.tsx +0 -340
  272. package/src/components/TablerIconPicker.tsx +0 -4260
  273. package/src/components/app-header.tsx +0 -40
  274. package/src/components/blur-card.tsx +0 -132
  275. package/src/components/features-section-demo-1.tsx +0 -127
  276. package/src/components/features-section-demo-2.tsx +0 -102
  277. package/src/components/features-section-demo-3.tsx +0 -272
  278. package/src/components/mode-toggle.tsx +0 -31
  279. package/src/components/nav-main.tsx +0 -69
  280. package/src/components/pricing-cards.tsx +0 -133
  281. package/src/components/shared/ButtonCopy.tsx +0 -50
  282. package/src/components/team-switcher.tsx +0 -83
  283. package/src/components/theme-provider.tsx +0 -74
  284. package/src/components/typewriter.tsx +0 -90
  285. package/src/components/ui/alert-dialog.tsx +0 -133
  286. package/src/components/ui/alert.tsx +0 -60
  287. package/src/components/ui/avatar.tsx +0 -47
  288. package/src/components/ui/badge.tsx +0 -33
  289. package/src/components/ui/bento-grid.tsx +0 -54
  290. package/src/components/ui/bento-grid2.tsx +0 -66
  291. package/src/components/ui/breadcrumb.tsx +0 -101
  292. package/src/components/ui/button.tsx +0 -50
  293. package/src/components/ui/card.tsx +0 -55
  294. package/src/components/ui/checkbox.tsx +0 -26
  295. package/src/components/ui/dialog.tsx +0 -119
  296. package/src/components/ui/dropdown-menu.tsx +0 -186
  297. package/src/components/ui/floating-navbar.tsx +0 -78
  298. package/src/components/ui/form.tsx +0 -167
  299. package/src/components/ui/image.tsx +0 -55
  300. package/src/components/ui/input.tsx +0 -22
  301. package/src/components/ui/label.tsx +0 -19
  302. package/src/components/ui/pagination.tsx +0 -105
  303. package/src/components/ui/progress.tsx +0 -23
  304. package/src/components/ui/resizable-navbar.tsx +0 -260
  305. package/src/components/ui/segment-control.tsx +0 -143
  306. package/src/components/ui/select.tsx +0 -153
  307. package/src/components/ui/separator.tsx +0 -24
  308. package/src/components/ui/sheet.tsx +0 -121
  309. package/src/components/ui/sidebar.tsx +0 -736
  310. package/src/components/ui/skeleton.tsx +0 -7
  311. package/src/components/ui/slider.tsx +0 -23
  312. package/src/components/ui/sonner.tsx +0 -27
  313. package/src/components/ui/spinner.tsx +0 -45
  314. package/src/components/ui/switch.tsx +0 -27
  315. package/src/components/ui/table.tsx +0 -90
  316. package/src/components/ui/tabs.tsx +0 -52
  317. package/src/components/ui/textarea.tsx +0 -18
  318. package/src/components/ui/timeline.tsx +0 -95
  319. package/src/components/ui/toast.tsx +0 -126
  320. package/src/components/ui/tooltip.tsx +0 -55
  321. package/src/components/ui/typewriter-effect.tsx +0 -181
  322. package/src/hooks/use-mobile.ts +0 -19
  323. package/src/hooks/useDialog.ts +0 -25
  324. package/src/icons/GoogleIcon.tsx +0 -32
  325. package/src/icons/LinkedInIcon.tsx +0 -30
  326. package/src/icons/MicrosoftIcon.tsx +0 -21
  327. package/src/lib/chatwoot.ts +0 -51
  328. package/src/lib/utils.ts +0 -6
  329. package/src/modules/app/components/AppLoader.tsx +0 -9
  330. package/src/modules/app/components/AppShell.tsx +0 -21
  331. package/src/modules/app/components/AppSidebar.tsx +0 -26
  332. package/src/modules/app/components/AppSidebarContent.tsx +0 -73
  333. package/src/modules/app/components/AppSidebarHeader.tsx +0 -57
  334. package/src/modules/app/components/AppSidebarInvites.tsx +0 -32
  335. package/src/modules/app/components/AppSidebarUser.tsx +0 -128
  336. package/src/modules/auth/components/AdminUserManagement.tsx +0 -1136
  337. package/src/modules/auth/components/AdminWaitlist.tsx +0 -358
  338. package/src/modules/auth/components/AuthLayout.tsx +0 -13
  339. package/src/modules/auth/components/AuthProviders.tsx +0 -105
  340. package/src/modules/auth/components/AuthRouter.tsx +0 -29
  341. package/src/modules/auth/components/ClaimAccountRoute.tsx +0 -242
  342. package/src/modules/auth/components/ErrorAuthRoute.tsx +0 -121
  343. package/src/modules/auth/components/ForgotPasswordForm.tsx +0 -58
  344. package/src/modules/auth/components/ForgotPasswordRoute.tsx +0 -27
  345. package/src/modules/auth/components/InviteFriends.tsx +0 -273
  346. package/src/modules/auth/components/LastUsedBadge.tsx +0 -22
  347. package/src/modules/auth/components/LoginForm.tsx +0 -104
  348. package/src/modules/auth/components/LoginRoute.tsx +0 -31
  349. package/src/modules/auth/components/LogoutRoute.tsx +0 -21
  350. package/src/modules/auth/components/OrganizationAcceptInvitationRoute.tsx +0 -161
  351. package/src/modules/auth/components/OrganizationMembersRoute.tsx +0 -730
  352. package/src/modules/auth/components/OrganizationSettingsRoute.tsx +0 -280
  353. package/src/modules/auth/components/OrganizationSwitcher.tsx +0 -148
  354. package/src/modules/auth/components/ProfileRoute.tsx +0 -104
  355. package/src/modules/auth/components/RangeNuqsDatePicker.tsx +0 -365
  356. package/src/modules/auth/components/ResetPasswordForm.tsx +0 -103
  357. package/src/modules/auth/components/ResetPasswordRoute.tsx +0 -27
  358. package/src/modules/auth/components/SignupFormRoute.tsx +0 -189
  359. package/src/modules/auth/components/SignupRoute.tsx +0 -53
  360. package/src/modules/auth/components/UserPreferences.tsx +0 -144
  361. package/src/modules/auth/components/WaitlistCard.tsx +0 -78
  362. package/src/modules/auth/components/WaitlistCodeValidation.tsx +0 -79
  363. package/src/modules/billing/components/BillingBetaPage.tsx +0 -124
  364. package/src/modules/billing/components/BillingInvoicePage.tsx +0 -180
  365. package/src/modules/billing/components/BillingPlanSelect.tsx +0 -14
  366. package/src/modules/billing/components/BillingRouter.tsx +0 -20
  367. package/src/modules/billing/components/BillingSinglePlanSelect.tsx +0 -172
  368. package/src/modules/table/components/ColumnOrderAndVisibility.tsx +0 -127
  369. package/src/modules/table/components/NuqsTable.tsx +0 -396
  370. package/src/modules/table/components/TableFiltering.tsx +0 -520
  371. package/src/modules/table/components/TablePagination.tsx +0 -59
  372. package/src/modules/table/filterTransformers.ts +0 -323
  373. package/src/vite-env.d.ts +0 -1
  374. package/translations/en/web-ui.json +0 -192
  375. package/tsconfig.json +0 -30
@@ -1,358 +0,0 @@
1
- import {
2
- Button,
3
- Dropdown,
4
- DropdownItem,
5
- DropdownMenu,
6
- DropdownTrigger,
7
- Input,
8
- Modal,
9
- ModalBody,
10
- ModalContent,
11
- ModalFooter,
12
- ModalHeader,
13
- Spinner,
14
- Table,
15
- TableBody,
16
- TableCell,
17
- TableColumn,
18
- TableHeader,
19
- TableRow,
20
- } from "@heroui/react";
21
- import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
22
- import { Mail, MoreHorizontal, Search, Trash2, UserPlus, X } from "lucide-react";
23
- import { useEffect, useId, useState } from "react";
24
- import { toast } from "sonner";
25
- import type { UseBackendTRPC } from "#types";
26
-
27
- interface AdminWaitlistProps {
28
- useTRPC: UseBackendTRPC;
29
- }
30
-
31
- export function AdminWaitlist({ useTRPC }: AdminWaitlistProps) {
32
- const trpc = useTRPC();
33
- const queryClient = useQueryClient();
34
-
35
- const { data: waitlist = [], isLoading } = useQuery(trpc.auth.listAdminWaitlist.queryOptions());
36
- const { mutate: invite, isPending: isInviting } = useMutation(
37
- trpc.auth.inviteFromWaitlist.mutationOptions({
38
- onSuccess: () => {
39
- queryClient.invalidateQueries({ queryKey: trpc.auth.listAdminWaitlist.queryKey() });
40
- toast.success("Invitation sent successfully");
41
- },
42
- onError: (error) => {
43
- toast.error(
44
- `Failed to send invitation: ${error instanceof Error ? error.message : String(error)}`
45
- );
46
- },
47
- })
48
- );
49
- const { mutate: remove, isPending: isRemoving } = useMutation(
50
- trpc.auth.removeFromWaitlist.mutationOptions({
51
- onSuccess: () => {
52
- queryClient.invalidateQueries({ queryKey: trpc.auth.listAdminWaitlist.queryKey() });
53
- toast.success("Removed from waitlist successfully");
54
- },
55
- onError: (error) => {
56
- toast.error(`Failed to remove: ${error instanceof Error ? error.message : String(error)}`);
57
- },
58
- onSettled: () => {
59
- setItemToDelete(null);
60
- },
61
- })
62
- );
63
- const { mutate: add, isPending: isAdding } = useMutation(
64
- trpc.auth.addToWaitlist.mutationOptions({
65
- onSuccess: () => {
66
- queryClient.invalidateQueries({ queryKey: trpc.auth.listAdminWaitlist.queryKey() });
67
- toast.success("Added to waitlist successfully");
68
- },
69
- onError: (error) => {
70
- toast.error(
71
- `Failed to add to waitlist: ${error instanceof Error ? error.message : String(error)}`
72
- );
73
- },
74
- })
75
- );
76
- const emailInputId = useId();
77
- const [searchQuery, setSearchQuery] = useState("");
78
- const [debouncedSearchQuery, setDebouncedSearchQuery] = useState("");
79
- const [itemToDelete, setItemToDelete] = useState<string | null>(null);
80
- const [isAddModalOpen, setIsAddModalOpen] = useState(false);
81
- const [newEmail, setNewEmail] = useState("");
82
-
83
- // Debounce search query
84
- useEffect(() => {
85
- const timer = setTimeout(() => {
86
- setDebouncedSearchQuery(searchQuery);
87
- }, 300);
88
-
89
- return () => clearTimeout(timer);
90
- }, [searchQuery]);
91
-
92
- const filteredWaitlist = waitlist.filter((item) =>
93
- item.email?.toLowerCase().includes(debouncedSearchQuery?.toLowerCase() ?? "")
94
- );
95
-
96
- const handleInvite = (id: string) => {
97
- invite({ id });
98
- };
99
-
100
- const handleRemove = () => {
101
- if (itemToDelete) {
102
- remove({ id: itemToDelete });
103
- }
104
- };
105
-
106
- const handleAdd = async () => {
107
- if (!newEmail.trim()) {
108
- toast.error("Please enter an email address");
109
- return;
110
- }
111
-
112
- // Basic email validation
113
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
114
- if (!emailRegex.test(newEmail.trim())) {
115
- toast.error("Please enter a valid email address");
116
- return;
117
- }
118
-
119
- add({ email: newEmail.trim() });
120
- setNewEmail("");
121
- setIsAddModalOpen(false);
122
- };
123
-
124
- const formatDate = (date: Date | string | null) => {
125
- if (!date) return "N/A";
126
- const dateObj = typeof date === "string" ? new Date(date) : date;
127
- return dateObj.toLocaleDateString(undefined, {
128
- year: "numeric",
129
- month: "short",
130
- day: "numeric",
131
- hour: "2-digit",
132
- minute: "2-digit",
133
- });
134
- };
135
-
136
- const getStatusBadge = (status: string) => {
137
- const statusLower = status.toLowerCase();
138
- if (statusLower === "invited" || statusLower === "active") {
139
- return (
140
- <span className="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800">
141
- {status}
142
- </span>
143
- );
144
- }
145
- if (statusLower === "pending") {
146
- return (
147
- <span className="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-yellow-100 text-yellow-800">
148
- {status}
149
- </span>
150
- );
151
- }
152
- return (
153
- <span className="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-gray-100 text-gray-800">
154
- {status}
155
- </span>
156
- );
157
- };
158
-
159
- if (isLoading) {
160
- return (
161
- <div className="flex justify-center p-8">
162
- <Spinner />
163
- </div>
164
- );
165
- }
166
-
167
- return (
168
- <div className="space-y-4 p-4">
169
- <div className="flex justify-between items-center">
170
- <h2 className="text-xl font-semibold">Waitlist Management</h2>
171
- <div className="flex items-center gap-2">
172
- <Button onPress={() => setIsAddModalOpen(true)} size="sm">
173
- <UserPlus className="h-4 w-4 mr-2" />
174
- Add to Waitlist
175
- </Button>
176
- <div className="text-sm text-muted-foreground">Total: {waitlist.length}</div>
177
- </div>
178
- </div>
179
-
180
- {/* Search */}
181
- <div className="flex flex-col sm:flex-row gap-3 items-start sm:items-center">
182
- <form
183
- className="relative flex-1"
184
- onSubmit={(e) => {
185
- e.preventDefault();
186
- setDebouncedSearchQuery(searchQuery);
187
- }}
188
- >
189
- <Search className="absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground" />
190
- <Input
191
- aria-label="Search by email"
192
- placeholder="Search by email..."
193
- className="pl-8 w-full"
194
- value={searchQuery}
195
- onChange={(e) => setSearchQuery(e.target.value)}
196
- variant="bordered"
197
- />
198
- {searchQuery && (
199
- <button
200
- type="button"
201
- onClick={() => setSearchQuery("")}
202
- className="absolute right-2.5 top-2.5 text-muted-foreground hover:text-foreground"
203
- aria-label="Clear search"
204
- >
205
- <X className="h-4 w-4" />
206
- </button>
207
- )}
208
- </form>
209
- </div>
210
-
211
- <div className="border rounded-lg overflow-hidden">
212
- <Table aria-label="Waitlist table" removeWrapper>
213
- <TableHeader>
214
- <TableColumn>Email</TableColumn>
215
- <TableColumn>Status</TableColumn>
216
- <TableColumn>Created At</TableColumn>
217
- <TableColumn>Updated At</TableColumn>
218
- <TableColumn className="text-right">Actions</TableColumn>
219
- </TableHeader>
220
- <TableBody
221
- items={filteredWaitlist}
222
- emptyContent={
223
- searchQuery
224
- ? "No waitlist entries found matching your search"
225
- : "No waitlist entries found"
226
- }
227
- >
228
- {(item) => (
229
- <TableRow key={item.id}>
230
- <TableCell className="font-medium">{item.email}</TableCell>
231
- <TableCell>{getStatusBadge(item.status)}</TableCell>
232
- <TableCell>{formatDate(item.createdAt)}</TableCell>
233
- <TableCell>{formatDate(item.updatedAt)}</TableCell>
234
- <TableCell className="text-right">
235
- <Dropdown placement="bottom-end">
236
- <DropdownTrigger>
237
- <Button variant="light" size="sm" isIconOnly>
238
- <MoreHorizontal className="h-4 w-4" />
239
- </Button>
240
- </DropdownTrigger>
241
- <DropdownMenu aria-label="Waitlist actions">
242
- <DropdownItem
243
- key="invite"
244
- onPress={() => handleInvite(item.id)}
245
- isDisabled={isInviting}
246
- >
247
- {isInviting ? (
248
- <>
249
- <Spinner className="mr-2 h-3 w-3" />
250
- Inviting...
251
- </>
252
- ) : (
253
- <>
254
- <Mail className="mr-2 h-4 w-4" />
255
- Send Invitation
256
- </>
257
- )}
258
- </DropdownItem>
259
- <DropdownItem
260
- key="remove"
261
- className="text-danger"
262
- onClick={() => setItemToDelete(item.id)}
263
- >
264
- <Trash2 className="mr-2 h-4 w-4" />
265
- Remove
266
- </DropdownItem>
267
- </DropdownMenu>
268
- </Dropdown>
269
- </TableCell>
270
- </TableRow>
271
- )}
272
- </TableBody>
273
- </Table>
274
- </div>
275
-
276
- {/* Remove confirmation modal */}
277
- <Modal
278
- isOpen={!!itemToDelete}
279
- onOpenChange={(open) => {
280
- if (!open) setItemToDelete(null);
281
- }}
282
- >
283
- <ModalContent>
284
- {(onClose) => (
285
- <>
286
- <ModalHeader className="flex flex-col gap-1">
287
- <p className="text-lg font-semibold">Are you sure?</p>
288
- <p className="text-sm text-default-600">
289
- This action cannot be undone. This will permanently remove this entry from the
290
- waitlist.
291
- </p>
292
- </ModalHeader>
293
- <ModalFooter>
294
- <Button variant="bordered" onPress={onClose}>
295
- Cancel
296
- </Button>
297
- <Button color="danger" onPress={handleRemove} isLoading={isRemoving}>
298
- Remove
299
- </Button>
300
- </ModalFooter>
301
- </>
302
- )}
303
- </ModalContent>
304
- </Modal>
305
-
306
- {/* Add to waitlist modal */}
307
- <Modal
308
- isOpen={isAddModalOpen}
309
- onOpenChange={(open) => {
310
- if (!open) setIsAddModalOpen(false);
311
- }}
312
- >
313
- <ModalContent>
314
- {(onClose) => (
315
- <form
316
- onSubmit={(e) => {
317
- e.preventDefault();
318
- handleAdd();
319
- }}
320
- className="space-y-4"
321
- >
322
- <ModalHeader className="flex flex-col gap-1">
323
- <p className="text-lg font-semibold">Add to Waitlist</p>
324
- <p className="text-sm text-default-600">
325
- Enter an email address to add someone to the waitlist.
326
- </p>
327
- </ModalHeader>
328
-
329
- <ModalBody className="space-y-4">
330
- <div className="space-y-2">
331
- <Input
332
- id={emailInputId}
333
- label="Email *"
334
- labelPlacement="outside"
335
- type="email"
336
- placeholder="Enter email address"
337
- value={newEmail}
338
- onChange={(e) => setNewEmail(e.target.value)}
339
- variant="bordered"
340
- />
341
- </div>
342
- </ModalBody>
343
-
344
- <ModalFooter>
345
- <Button variant="bordered" type="button" onPress={onClose}>
346
- Cancel
347
- </Button>
348
- <Button type="submit" color="primary" isDisabled={isAdding} isLoading={isAdding}>
349
- {isAdding ? "Adding..." : "Add to Waitlist"}
350
- </Button>
351
- </ModalFooter>
352
- </form>
353
- )}
354
- </ModalContent>
355
- </Modal>
356
- </div>
357
- );
358
- }
@@ -1,13 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import { Outlet } from "react-router";
3
-
4
- export function AuthLayout({ header }: { header: ReactNode }) {
5
- return (
6
- <div className="flex min-h-svh flex-col items-center justify-center gap-6 bg-muted p-6 md:p-10">
7
- <div className="flex w-full max-w-sm flex-col gap-6">
8
- <div className="flex items-center gap-2 self-center font-medium">{header}</div>
9
- <Outlet />
10
- </div>
11
- </div>
12
- );
13
- }
@@ -1,105 +0,0 @@
1
- import { Button } from "@heroui/react";
2
- import { authClient } from "@m5kdev/frontend/modules/auth/auth.lib";
3
- import { useTranslation } from "react-i18next";
4
- import { toast } from "sonner";
5
- import { GoogleIcon } from "#icons/GoogleIcon";
6
- import { LinkedInIcon } from "#icons/LinkedInIcon";
7
- import { MicrosoftIcon } from "#icons/MicrosoftIcon";
8
- import { LastUsedBadge } from "./LastUsedBadge";
9
-
10
- export function AuthProviders({
11
- providers,
12
- lastMethod,
13
- code,
14
- requestSignUp = false,
15
- }: {
16
- providers?: string[];
17
- code?: string | null;
18
- requestSignUp?: boolean;
19
- lastMethod?: string | null;
20
- }) {
21
- const { t } = useTranslation();
22
- if (!providers || providers.length === 0) return null;
23
- const additionalData = code ? { waitlistInvitationCode: code } : {};
24
-
25
- const handleSignIn = (result: any) => {
26
- if (result.error) {
27
- toast.error(t("web-ui:auth.errors.invitationCodeInvalid"));
28
- }
29
- };
30
-
31
- return (
32
- <>
33
- <div className="flex flex-col gap-4">
34
- {providers.includes("google") && (
35
- <LastUsedBadge lastMethod={lastMethod} method="google">
36
- <Button
37
- type="button"
38
- variant="bordered"
39
- className="w-full gap-2"
40
- onPress={() => {
41
- authClient.signIn
42
- .social({
43
- provider: "google",
44
- requestSignUp,
45
- additionalData,
46
- })
47
- .then(handleSignIn);
48
- }}
49
- >
50
- <GoogleIcon className="h-5 w-5" />
51
- {t("web-ui:auth.login.google")}
52
- </Button>
53
- </LastUsedBadge>
54
- )}
55
- {providers.includes("linkedin") && (
56
- <LastUsedBadge lastMethod={lastMethod} method="linkedin">
57
- <Button
58
- type="button"
59
- variant="bordered"
60
- className="w-full"
61
- onPress={() => {
62
- authClient.signIn
63
- .social({
64
- provider: "linkedin",
65
- requestSignUp,
66
- additionalData,
67
- })
68
- .then(handleSignIn);
69
- }}
70
- >
71
- <LinkedInIcon className="h-5 w-5" />
72
- {t("web-ui:auth.login.linkedin")}
73
- </Button>
74
- </LastUsedBadge>
75
- )}
76
- {providers.includes("microsoft") && (
77
- <LastUsedBadge lastMethod={lastMethod} method="microsoft">
78
- <Button
79
- type="button"
80
- variant="bordered"
81
- className="w-full"
82
- onPress={() => {
83
- authClient.signIn
84
- .social({
85
- provider: "microsoft",
86
- requestSignUp,
87
- additionalData,
88
- })
89
- .then(handleSignIn);
90
- }}
91
- >
92
- <MicrosoftIcon className="h-5 w-5" />
93
- {t("web-ui:auth.login.microsoft")}
94
- </Button>
95
- </LastUsedBadge>
96
- )}
97
- </div>
98
- <div className="relative text-center text-sm after:absolute after:inset-0 after:top-1/2 after:z-0 after:flex after:items-center after:border-t after:border-border">
99
- <span className="relative z-10 bg-background px-2 text-muted-foreground">
100
- {t("web-ui:auth.login.orContinueWith")}
101
- </span>
102
- </div>
103
- </>
104
- );
105
- }
@@ -1,29 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import { Route } from "react-router";
3
- import { AuthLayout } from "#modules/auth/components/AuthLayout";
4
- import { ClaimAccountRoute } from "#modules/auth/components/ClaimAccountRoute";
5
- import { ErrorAuthRoute } from "#modules/auth/components/ErrorAuthRoute";
6
- import { ForgotPasswordRoute } from "#modules/auth/components/ForgotPasswordRoute";
7
- import { LoginRoute } from "#modules/auth/components/LoginRoute";
8
- import { ResetPasswordRoute } from "#modules/auth/components/ResetPasswordRoute";
9
- import { SignupRoute } from "#modules/auth/components/SignupRoute";
10
- import type { UseBackendTRPC } from "#types";
11
-
12
- interface AuthRouterProps {
13
- header: ReactNode;
14
- providers?: string[];
15
- useTRPC?: UseBackendTRPC;
16
- }
17
-
18
- export function AuthRouter({ header, providers, useTRPC }: AuthRouterProps) {
19
- return (
20
- <Route element={<AuthLayout header={header} />}>
21
- <Route path="/login" element={<LoginRoute providers={providers} />} />
22
- <Route path="/signup" element={<SignupRoute providers={providers} useTRPC={useTRPC} />} />
23
- <Route path="/forgot-password" element={<ForgotPasswordRoute />} />
24
- <Route path="/reset-password" element={<ResetPasswordRoute />} />
25
- <Route path="/claim-account" element={<ClaimAccountRoute useTRPC={useTRPC} />} />
26
- <Route path="/error-auth" element={<ErrorAuthRoute />} />
27
- </Route>
28
- );
29
- }