@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,186 +0,0 @@
1
- import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
2
- import { Check, ChevronRight, Circle } from "lucide-react";
3
- import * as React from "react";
4
-
5
- import { cn } from "#utils";
6
-
7
- const DropdownMenu = DropdownMenuPrimitive.Root;
8
-
9
- const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
10
-
11
- const DropdownMenuGroup = DropdownMenuPrimitive.Group;
12
-
13
- const DropdownMenuPortal = DropdownMenuPrimitive.Portal;
14
-
15
- const DropdownMenuSub = DropdownMenuPrimitive.Sub;
16
-
17
- const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
18
-
19
- const DropdownMenuSubTrigger = React.forwardRef<
20
- React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,
21
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {
22
- inset?: boolean;
23
- }
24
- >(({ className, inset, children, ...props }, ref) => (
25
- <DropdownMenuPrimitive.SubTrigger
26
- ref={ref}
27
- className={cn(
28
- "flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
29
- inset && "pl-8",
30
- className
31
- )}
32
- {...props}
33
- >
34
- {children}
35
- <ChevronRight className="ml-auto" />
36
- </DropdownMenuPrimitive.SubTrigger>
37
- ));
38
- DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
39
-
40
- const DropdownMenuSubContent = React.forwardRef<
41
- React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,
42
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>
43
- >(({ className, ...props }, ref) => (
44
- <DropdownMenuPrimitive.SubContent
45
- ref={ref}
46
- className={cn(
47
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
48
- className
49
- )}
50
- {...props}
51
- />
52
- ));
53
- DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
54
-
55
- const DropdownMenuContent = React.forwardRef<
56
- React.ElementRef<typeof DropdownMenuPrimitive.Content>,
57
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>
58
- >(({ className, sideOffset = 4, ...props }, ref) => (
59
- <DropdownMenuPrimitive.Portal>
60
- <DropdownMenuPrimitive.Content
61
- ref={ref}
62
- sideOffset={sideOffset}
63
- className={cn(
64
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
65
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
66
- className
67
- )}
68
- {...props}
69
- />
70
- </DropdownMenuPrimitive.Portal>
71
- ));
72
- DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
73
-
74
- const DropdownMenuItem = React.forwardRef<
75
- React.ElementRef<typeof DropdownMenuPrimitive.Item>,
76
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {
77
- inset?: boolean;
78
- }
79
- >(({ className, inset, ...props }, ref) => (
80
- <DropdownMenuPrimitive.Item
81
- ref={ref}
82
- className={cn(
83
- "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",
84
- inset && "pl-8",
85
- className
86
- )}
87
- {...props}
88
- />
89
- ));
90
- DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
91
-
92
- const DropdownMenuCheckboxItem = React.forwardRef<
93
- React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,
94
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>
95
- >(({ className, children, checked, ...props }, ref) => (
96
- <DropdownMenuPrimitive.CheckboxItem
97
- ref={ref}
98
- className={cn(
99
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
100
- className
101
- )}
102
- checked={checked}
103
- {...props}
104
- >
105
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
106
- <DropdownMenuPrimitive.ItemIndicator>
107
- <Check className="h-4 w-4" />
108
- </DropdownMenuPrimitive.ItemIndicator>
109
- </span>
110
- {children}
111
- </DropdownMenuPrimitive.CheckboxItem>
112
- ));
113
- DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
114
-
115
- const DropdownMenuRadioItem = React.forwardRef<
116
- React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,
117
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>
118
- >(({ className, children, ...props }, ref) => (
119
- <DropdownMenuPrimitive.RadioItem
120
- ref={ref}
121
- className={cn(
122
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
123
- className
124
- )}
125
- {...props}
126
- >
127
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
128
- <DropdownMenuPrimitive.ItemIndicator>
129
- <Circle className="h-2 w-2 fill-current" />
130
- </DropdownMenuPrimitive.ItemIndicator>
131
- </span>
132
- {children}
133
- </DropdownMenuPrimitive.RadioItem>
134
- ));
135
- DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
136
-
137
- const DropdownMenuLabel = React.forwardRef<
138
- React.ElementRef<typeof DropdownMenuPrimitive.Label>,
139
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {
140
- inset?: boolean;
141
- }
142
- >(({ className, inset, ...props }, ref) => (
143
- <DropdownMenuPrimitive.Label
144
- ref={ref}
145
- className={cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className)}
146
- {...props}
147
- />
148
- ));
149
- DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
150
-
151
- const DropdownMenuSeparator = React.forwardRef<
152
- React.ElementRef<typeof DropdownMenuPrimitive.Separator>,
153
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>
154
- >(({ className, ...props }, ref) => (
155
- <DropdownMenuPrimitive.Separator
156
- ref={ref}
157
- className={cn("-mx-1 my-1 h-px bg-muted", className)}
158
- {...props}
159
- />
160
- ));
161
- DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
162
-
163
- const DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {
164
- return (
165
- <span className={cn("ml-auto text-xs tracking-widest opacity-60", className)} {...props} />
166
- );
167
- };
168
- DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
169
-
170
- export {
171
- DropdownMenu,
172
- DropdownMenuTrigger,
173
- DropdownMenuContent,
174
- DropdownMenuItem,
175
- DropdownMenuCheckboxItem,
176
- DropdownMenuRadioItem,
177
- DropdownMenuLabel,
178
- DropdownMenuSeparator,
179
- DropdownMenuShortcut,
180
- DropdownMenuGroup,
181
- DropdownMenuPortal,
182
- DropdownMenuSub,
183
- DropdownMenuSubContent,
184
- DropdownMenuSubTrigger,
185
- DropdownMenuRadioGroup,
186
- };
@@ -1,78 +0,0 @@
1
- "use client";
2
- import { AnimatePresence, motion, useMotionValueEvent, useScroll } from "motion/react";
3
- import type React from "react";
4
- import { useState } from "react";
5
- import { cn } from "#utils";
6
-
7
- export const FloatingNav = ({
8
- navItems,
9
- className,
10
- }: {
11
- navItems: {
12
- name: string;
13
- link: string;
14
- icon?: React.ReactNode;
15
- }[];
16
- className?: string;
17
- }) => {
18
- const { scrollYProgress } = useScroll();
19
-
20
- const [visible, setVisible] = useState(true);
21
-
22
- useMotionValueEvent(scrollYProgress, "change", (current) => {
23
- // Check if current is not undefined and is a number
24
- if (typeof current === "number") {
25
- const direction = current! - scrollYProgress.getPrevious()!;
26
-
27
- if (scrollYProgress.get() < 0.05) {
28
- setVisible(false);
29
- } else {
30
- if (direction < 0) {
31
- setVisible(true);
32
- } else if (current === 1) {
33
- setVisible(true);
34
- } else {
35
- setVisible(false);
36
- }
37
- }
38
- }
39
- });
40
-
41
- return (
42
- <AnimatePresence mode="wait">
43
- <motion.div
44
- initial={{
45
- opacity: 0,
46
- y: 0,
47
- }}
48
- animate={{
49
- y: visible ? 0 : -100,
50
- opacity: visible ? 1 : 0,
51
- }}
52
- transition={{
53
- duration: 0.2,
54
- }}
55
- className={cn(
56
- "flex max-w-fit fixed top-6 inset-x-0 mx-auto border border-transparent dark:border-white/[0.2] rounded-full dark:bg-black bg-white shadow-[0px_2px_3px_-1px_rgba(0,0,0,0.1),0px_1px_0px_0px_rgba(25,28,33,0.02),0px_0px_0px_1px_rgba(25,28,33,0.08)] z-[5000] pr-2 pl-8 py-2 items-center justify-center space-x-4",
57
- className
58
- )}
59
- >
60
- {navItems.map((navItem: any, idx: number) => (
61
- <a
62
- key={`link=${idx}`}
63
- href={navItem.link}
64
- className={cn(
65
- "relative dark:text-neutral-50 items-center flex space-x-1 text-neutral-600 dark:hover:text-neutral-300 hover:text-neutral-500"
66
- )}
67
- >
68
- <span className="block sm:hidden">{navItem.icon}</span>
69
- <span className="hidden sm:block text-sm">{navItem.name}</span>
70
- </a>
71
- ))}
72
- <button className="text-sm font-medium relative text-black bg-white px-4 py-2 rounded-full">
73
- <span>Get in touch</span>
74
- </button>
75
- </motion.div>
76
- </AnimatePresence>
77
- );
78
- };
@@ -1,167 +0,0 @@
1
- import type * as LabelPrimitive from "@radix-ui/react-label";
2
- import { Slot } from "@radix-ui/react-slot";
3
- import * as React from "react";
4
- import {
5
- Controller,
6
- type ControllerProps,
7
- type FieldPath,
8
- type FieldValues,
9
- FormProvider,
10
- useFormContext,
11
- } from "react-hook-form";
12
-
13
- import { Label } from "#components/ui/label";
14
- import { cn } from "#utils";
15
-
16
- const Form = FormProvider;
17
-
18
- type FormFieldContextValue<
19
- TFieldValues extends FieldValues = FieldValues,
20
- TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
21
- > = {
22
- name: TName;
23
- };
24
-
25
- const FormFieldContext = React.createContext<FormFieldContextValue>({} as FormFieldContextValue);
26
-
27
- const FormField = <
28
- TFieldValues extends FieldValues = FieldValues,
29
- TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
30
- >({
31
- ...props
32
- }: ControllerProps<TFieldValues, TName>) => {
33
- return (
34
- <FormFieldContext.Provider value={{ name: props.name }}>
35
- <Controller {...props} />
36
- </FormFieldContext.Provider>
37
- );
38
- };
39
-
40
- const useFormField = () => {
41
- const fieldContext = React.useContext(FormFieldContext);
42
- const itemContext = React.useContext(FormItemContext);
43
- const { getFieldState, formState } = useFormContext();
44
-
45
- const fieldState = getFieldState(fieldContext.name, formState);
46
-
47
- if (!fieldContext) {
48
- throw new Error("useFormField should be used within <FormField>");
49
- }
50
-
51
- const { id } = itemContext;
52
-
53
- return {
54
- id,
55
- name: fieldContext.name,
56
- formItemId: `${id}-form-item`,
57
- formDescriptionId: `${id}-form-item-description`,
58
- formMessageId: `${id}-form-item-message`,
59
- ...fieldState,
60
- };
61
- };
62
-
63
- type FormItemContextValue = {
64
- id: string;
65
- };
66
-
67
- const FormItemContext = React.createContext<FormItemContextValue>({} as FormItemContextValue);
68
-
69
- const FormItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
70
- ({ className, ...props }, ref) => {
71
- const id = React.useId();
72
-
73
- return (
74
- <FormItemContext.Provider value={{ id }}>
75
- <div ref={ref} className={cn("space-y-2", className)} {...props} />
76
- </FormItemContext.Provider>
77
- );
78
- }
79
- );
80
- FormItem.displayName = "FormItem";
81
-
82
- const FormLabel = React.forwardRef<
83
- React.ElementRef<typeof LabelPrimitive.Root>,
84
- React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>
85
- >(({ className, ...props }, ref) => {
86
- const { error, formItemId } = useFormField();
87
-
88
- return (
89
- <Label
90
- ref={ref}
91
- className={cn(error && "text-destructive", className)}
92
- htmlFor={formItemId}
93
- {...props}
94
- />
95
- );
96
- });
97
- FormLabel.displayName = "FormLabel";
98
-
99
- const FormControl = React.forwardRef<
100
- React.ElementRef<typeof Slot>,
101
- React.ComponentPropsWithoutRef<typeof Slot>
102
- >(({ ...props }, ref) => {
103
- const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
104
-
105
- return (
106
- <Slot
107
- ref={ref}
108
- id={formItemId}
109
- aria-describedby={!error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`}
110
- aria-invalid={!!error}
111
- {...props}
112
- />
113
- );
114
- });
115
- FormControl.displayName = "FormControl";
116
-
117
- const FormDescription = React.forwardRef<
118
- HTMLParagraphElement,
119
- React.HTMLAttributes<HTMLParagraphElement>
120
- >(({ className, ...props }, ref) => {
121
- const { formDescriptionId } = useFormField();
122
-
123
- return (
124
- <p
125
- ref={ref}
126
- id={formDescriptionId}
127
- className={cn("text-[0.8rem] text-muted-foreground", className)}
128
- {...props}
129
- />
130
- );
131
- });
132
- FormDescription.displayName = "FormDescription";
133
-
134
- const FormMessage = React.forwardRef<
135
- HTMLParagraphElement,
136
- React.HTMLAttributes<HTMLParagraphElement>
137
- >(({ className, children, ...props }, ref) => {
138
- const { error, formMessageId } = useFormField();
139
- const body = error ? String(error?.message) : children;
140
-
141
- if (!body) {
142
- return null;
143
- }
144
-
145
- return (
146
- <p
147
- ref={ref}
148
- id={formMessageId}
149
- className={cn("text-[0.8rem] font-medium text-destructive", className)}
150
- {...props}
151
- >
152
- {body}
153
- </p>
154
- );
155
- });
156
- FormMessage.displayName = "FormMessage";
157
-
158
- export {
159
- useFormField,
160
- Form,
161
- FormItem,
162
- FormLabel,
163
- FormControl,
164
- FormDescription,
165
- FormMessage,
166
- FormField,
167
- };
@@ -1,55 +0,0 @@
1
- import React from "react";
2
- import { cn } from "#utils";
3
-
4
- interface ImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {
5
- fallback?: React.ReactNode;
6
- }
7
-
8
- const Image = React.forwardRef<HTMLImageElement, ImageProps>(
9
- ({ className, src, alt, fallback, ...props }, ref) => {
10
- const [error, setError] = React.useState(false);
11
-
12
- const handleError = () => {
13
- setError(true);
14
- };
15
-
16
- if (error || !src) {
17
- return (
18
- <div
19
- className={cn(
20
- "flex items-center justify-center bg-muted text-muted-foreground",
21
- className
22
- )}
23
- {...props}
24
- >
25
- {fallback || (
26
- <svg
27
- xmlns="http://www.w3.org/2000/svg"
28
- width="24"
29
- height="24"
30
- viewBox="0 0 24 24"
31
- fill="none"
32
- stroke="currentColor"
33
- strokeWidth="2"
34
- strokeLinecap="round"
35
- strokeLinejoin="round"
36
- className="h-8 w-8"
37
- >
38
- <rect width="18" height="18" x="3" y="3" rx="2" ry="2" />
39
- <circle cx="9" cy="9" r="2" />
40
- <path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" />
41
- </svg>
42
- )}
43
- </div>
44
- );
45
- }
46
-
47
- return (
48
- <img ref={ref} src={src} alt={alt} onError={handleError} className={className} {...props} />
49
- );
50
- }
51
- );
52
-
53
- Image.displayName = "Image";
54
-
55
- export default Image;
@@ -1,22 +0,0 @@
1
- import * as React from "react";
2
-
3
- import { cn } from "#utils";
4
-
5
- const Input = React.forwardRef<HTMLInputElement, React.ComponentProps<"input">>(
6
- ({ className, type, ...props }, ref) => {
7
- return (
8
- <input
9
- type={type}
10
- className={cn(
11
- "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
12
- className
13
- )}
14
- ref={ref}
15
- {...props}
16
- />
17
- );
18
- }
19
- );
20
- Input.displayName = "Input";
21
-
22
- export { Input };
@@ -1,19 +0,0 @@
1
- import * as LabelPrimitive from "@radix-ui/react-label";
2
- import { cva, type VariantProps } from "class-variance-authority";
3
- import * as React from "react";
4
-
5
- import { cn } from "#utils";
6
-
7
- const labelVariants = cva(
8
- "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
9
- );
10
-
11
- const Label = React.forwardRef<
12
- React.ElementRef<typeof LabelPrimitive.Root>,
13
- React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>
14
- >(({ className, ...props }, ref) => (
15
- <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />
16
- ));
17
- Label.displayName = LabelPrimitive.Root.displayName;
18
-
19
- export { Label };
@@ -1,105 +0,0 @@
1
- import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
2
- import type * as React from "react";
3
- import { type Button, buttonVariants } from "#components/ui/button";
4
- import { cn } from "#utils";
5
-
6
- function Pagination({ className, ...props }: React.ComponentProps<"nav">) {
7
- return (
8
- <nav
9
- role="navigation"
10
- aria-label="pagination"
11
- data-slot="pagination"
12
- className={cn("mx-auto flex w-full justify-center", className)}
13
- {...props}
14
- />
15
- );
16
- }
17
-
18
- function PaginationContent({ className, ...props }: React.ComponentProps<"ul">) {
19
- return (
20
- <ul
21
- data-slot="pagination-content"
22
- className={cn("flex flex-row items-center gap-1", className)}
23
- {...props}
24
- />
25
- );
26
- }
27
-
28
- function PaginationItem({ ...props }: React.ComponentProps<"li">) {
29
- return <li data-slot="pagination-item" {...props} />;
30
- }
31
-
32
- type PaginationLinkProps = {
33
- isActive?: boolean;
34
- } & Pick<React.ComponentProps<typeof Button>, "size"> &
35
- React.ComponentProps<"a">;
36
-
37
- function PaginationLink({ className, isActive, size = "icon", ...props }: PaginationLinkProps) {
38
- return (
39
- <a
40
- aria-current={isActive ? "page" : undefined}
41
- data-slot="pagination-link"
42
- data-active={isActive}
43
- className={cn(
44
- buttonVariants({
45
- variant: isActive ? "outline" : "ghost",
46
- size,
47
- }),
48
- className
49
- )}
50
- {...props}
51
- />
52
- );
53
- }
54
-
55
- function PaginationPrevious({ className, ...props }: React.ComponentProps<typeof PaginationLink>) {
56
- return (
57
- <PaginationLink
58
- aria-label="Go to previous page"
59
- size="default"
60
- className={cn("gap-1 px-2.5 sm:pl-2.5", className)}
61
- {...props}
62
- >
63
- <ChevronLeftIcon />
64
- <span className="hidden sm:block">Previous</span>
65
- </PaginationLink>
66
- );
67
- }
68
-
69
- function PaginationNext({ className, ...props }: React.ComponentProps<typeof PaginationLink>) {
70
- return (
71
- <PaginationLink
72
- aria-label="Go to next page"
73
- size="default"
74
- className={cn("gap-1 px-2.5 sm:pr-2.5", className)}
75
- {...props}
76
- >
77
- <span className="hidden sm:block">Next</span>
78
- <ChevronRightIcon />
79
- </PaginationLink>
80
- );
81
- }
82
-
83
- function PaginationEllipsis({ className, ...props }: React.ComponentProps<"span">) {
84
- return (
85
- <span
86
- aria-hidden
87
- data-slot="pagination-ellipsis"
88
- className={cn("flex size-9 items-center justify-center", className)}
89
- {...props}
90
- >
91
- <MoreHorizontalIcon className="size-4" />
92
- <span className="sr-only">More pages</span>
93
- </span>
94
- );
95
- }
96
-
97
- export {
98
- Pagination,
99
- PaginationContent,
100
- PaginationLink,
101
- PaginationItem,
102
- PaginationPrevious,
103
- PaginationNext,
104
- PaginationEllipsis,
105
- };
@@ -1,23 +0,0 @@
1
- import * as ProgressPrimitive from "@radix-ui/react-progress";
2
- import * as React from "react";
3
-
4
- import { cn } from "#utils";
5
-
6
- const Progress = React.forwardRef<
7
- React.ElementRef<typeof ProgressPrimitive.Root>,
8
- React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>
9
- >(({ className, value, ...props }, ref) => (
10
- <ProgressPrimitive.Root
11
- ref={ref}
12
- className={cn("relative h-2 w-full overflow-hidden rounded-full bg-primary/20", className)}
13
- {...props}
14
- >
15
- <ProgressPrimitive.Indicator
16
- className="h-full w-full flex-1 bg-primary transition-all"
17
- style={{ transform: `translateX(-${100 - (value || 0)}%)` }}
18
- />
19
- </ProgressPrimitive.Root>
20
- ));
21
- Progress.displayName = ProgressPrimitive.Root.displayName;
22
-
23
- export { Progress };