@tulip-systems/core 0.6.0 → 0.7.0

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 (567) hide show
  1. package/LICENSE +662 -0
  2. package/dist/commands/client.d.mts +2 -1
  3. package/dist/commands/client.mjs +2 -1
  4. package/dist/components/client.d.mts +19 -3
  5. package/dist/components/client.mjs +18 -2
  6. package/dist/components/editor/components/menu-nodes.client.mjs +3 -3
  7. package/dist/components/editor/components/menu-nodes.client.mjs.map +1 -1
  8. package/dist/components/editor/components/menu.client.mjs +3 -3
  9. package/dist/components/editor/components/menu.client.mjs.map +1 -1
  10. package/dist/components/emails/forget-password-email.mjs +6 -6
  11. package/dist/components/emails/forget-password-email.mjs.map +1 -1
  12. package/dist/components/header/back-button.client.mjs +2 -2
  13. package/dist/components/header/back-button.client.mjs.map +1 -1
  14. package/dist/components/header/bottom-bar.client.mjs +2 -2
  15. package/dist/components/header/bottom-bar.client.mjs.map +1 -1
  16. package/dist/components/header/breadcrumbs.client.mjs +1 -1
  17. package/dist/components/header/breadcrumbs.client.mjs.map +1 -1
  18. package/dist/components/header/header.client.mjs +1 -1
  19. package/dist/components/header/header.client.mjs.map +1 -1
  20. package/dist/components/layouts/empty-page.mjs +2 -2
  21. package/dist/components/layouts/empty-page.mjs.map +1 -1
  22. package/dist/components/layouts/error-page.mjs +3 -3
  23. package/dist/components/layouts/error-page.mjs.map +1 -1
  24. package/dist/components/layouts/providers.client.d.mts.map +1 -1
  25. package/dist/components/layouts/providers.client.mjs +3 -2
  26. package/dist/components/layouts/providers.client.mjs.map +1 -1
  27. package/dist/components/layouts/root-loading.mjs +2 -2
  28. package/dist/components/layouts/root-loading.mjs.map +1 -1
  29. package/dist/components/layouts/tab-layout.mjs +1 -1
  30. package/dist/components/layouts/tab-layout.mjs.map +1 -1
  31. package/dist/components/lists/data-list.mjs +1 -1
  32. package/dist/components/lists/data-list.mjs.map +1 -1
  33. package/dist/components/lists/data-stack.mjs +1 -1
  34. package/dist/components/lists/data-stack.mjs.map +1 -1
  35. package/dist/components/navigation/admin-sidebar-header.client.mjs +3 -3
  36. package/dist/components/navigation/admin-sidebar-header.client.mjs.map +1 -1
  37. package/dist/components/navigation/admin-sidebar-skeleton.mjs +1 -1
  38. package/dist/components/navigation/admin-sidebar-skeleton.mjs.map +1 -1
  39. package/dist/components/ui/accordion.client.d.mts +26 -0
  40. package/dist/components/ui/accordion.client.d.mts.map +1 -0
  41. package/dist/components/ui/accordion.client.mjs +58 -0
  42. package/dist/components/ui/accordion.client.mjs.map +1 -0
  43. package/dist/components/ui/alert-dialog.client.d.mts +61 -0
  44. package/dist/components/ui/alert-dialog.client.d.mts.map +1 -0
  45. package/dist/components/ui/alert-dialog.client.mjs +104 -0
  46. package/dist/components/ui/alert-dialog.client.mjs.map +1 -0
  47. package/dist/components/ui/alert.d.mts +5 -1
  48. package/dist/components/ui/alert.d.mts.map +1 -1
  49. package/dist/components/ui/alert.mjs +13 -6
  50. package/dist/components/ui/alert.mjs.map +1 -1
  51. package/dist/components/ui/aspect-ratio.client.d.mts +10 -0
  52. package/dist/components/ui/aspect-ratio.client.d.mts.map +1 -0
  53. package/dist/components/ui/aspect-ratio.client.mjs +16 -0
  54. package/dist/components/ui/aspect-ratio.client.mjs.map +1 -0
  55. package/dist/components/ui/avatar.client.d.mts +21 -6
  56. package/dist/components/ui/avatar.client.d.mts.map +1 -1
  57. package/dist/components/ui/avatar.client.mjs +31 -9
  58. package/dist/components/ui/avatar.client.mjs.map +1 -1
  59. package/dist/components/ui/badge.d.mts +1 -1
  60. package/dist/components/ui/badge.d.mts.map +1 -1
  61. package/dist/components/ui/badge.mjs +11 -8
  62. package/dist/components/ui/badge.mjs.map +1 -1
  63. package/dist/components/ui/breadcrumb.d.mts +3 -1
  64. package/dist/components/ui/breadcrumb.d.mts.map +1 -1
  65. package/dist/components/ui/breadcrumb.mjs +7 -7
  66. package/dist/components/ui/breadcrumb.mjs.map +1 -1
  67. package/dist/components/ui/button-group.d.mts +29 -0
  68. package/dist/components/ui/button-group.d.mts.map +1 -0
  69. package/dist/components/ui/button-group.mjs +41 -0
  70. package/dist/components/ui/button-group.mjs.map +1 -0
  71. package/dist/components/ui/button.d.mts +1 -1
  72. package/dist/components/ui/button.d.mts.map +1 -1
  73. package/dist/components/ui/button.mjs +19 -13
  74. package/dist/components/ui/button.mjs.map +1 -1
  75. package/dist/components/ui/{calendar.d.mts → calendar.client.d.mts} +7 -4
  76. package/dist/components/ui/calendar.client.d.mts.map +1 -0
  77. package/dist/components/ui/{calendar.mjs → calendar.client.mjs} +22 -19
  78. package/dist/components/ui/calendar.client.mjs.map +1 -0
  79. package/dist/components/ui/card.d.mts +9 -2
  80. package/dist/components/ui/card.d.mts.map +1 -1
  81. package/dist/components/ui/card.mjs +15 -7
  82. package/dist/components/ui/card.mjs.map +1 -1
  83. package/dist/components/ui/{carousel.d.mts → carousel.client.d.mts} +12 -3
  84. package/dist/components/ui/carousel.client.d.mts.map +1 -0
  85. package/dist/components/ui/{carousel.mjs → carousel.client.mjs} +10 -10
  86. package/dist/components/ui/carousel.client.mjs.map +1 -0
  87. package/dist/components/ui/chart.client.d.mts.map +1 -1
  88. package/dist/components/ui/chart.client.mjs +11 -11
  89. package/dist/components/ui/chart.client.mjs.map +1 -1
  90. package/dist/components/ui/checkbox.client.d.mts +12 -0
  91. package/dist/components/ui/checkbox.client.d.mts.map +1 -0
  92. package/dist/components/ui/checkbox.client.mjs +24 -0
  93. package/dist/components/ui/checkbox.client.mjs.map +1 -0
  94. package/dist/components/ui/collapsible.client.d.mts +6 -6
  95. package/dist/components/ui/collapsible.client.d.mts.map +1 -1
  96. package/dist/components/ui/collapsible.client.mjs +6 -6
  97. package/dist/components/ui/collapsible.client.mjs.map +1 -1
  98. package/dist/components/ui/combobox-dropdown.client.d.mts +1 -1
  99. package/dist/components/ui/combobox-dropdown.client.mjs +2 -2
  100. package/dist/components/ui/combobox-dropdown.client.mjs.map +1 -1
  101. package/dist/components/ui/combobox.client.mjs +4 -4
  102. package/dist/components/ui/combobox.client.mjs.map +1 -1
  103. package/dist/components/ui/{command.d.mts → command.client.d.mts} +8 -2
  104. package/dist/components/ui/command.client.d.mts.map +1 -0
  105. package/dist/components/ui/command.client.mjs +91 -0
  106. package/dist/components/ui/command.client.mjs.map +1 -0
  107. package/dist/components/ui/context-menu.client.d.mts +86 -0
  108. package/dist/components/ui/context-menu.client.d.mts.map +1 -0
  109. package/dist/components/ui/context-menu.client.mjs +128 -0
  110. package/dist/components/ui/context-menu.client.mjs.map +1 -0
  111. package/dist/components/ui/date-picker.client.mjs +2 -2
  112. package/dist/components/ui/date-picker.client.mjs.map +1 -1
  113. package/dist/components/ui/dialog.client.d.mts +19 -12
  114. package/dist/components/ui/dialog.client.d.mts.map +1 -1
  115. package/dist/components/ui/dialog.client.mjs +40 -29
  116. package/dist/components/ui/dialog.client.mjs.map +1 -1
  117. package/dist/components/ui/drawer.client.d.mts.map +1 -1
  118. package/dist/components/ui/drawer.client.mjs +5 -5
  119. package/dist/components/ui/drawer.client.mjs.map +1 -1
  120. package/dist/components/ui/dropdown-menu.client.d.mts +85 -0
  121. package/dist/components/ui/dropdown-menu.client.d.mts.map +1 -0
  122. package/dist/components/ui/dropdown-menu.client.mjs +131 -0
  123. package/dist/components/ui/dropdown-menu.client.mjs.map +1 -0
  124. package/dist/components/ui/empty.d.mts +36 -0
  125. package/dist/components/ui/empty.d.mts.map +1 -0
  126. package/dist/components/ui/empty.mjs +62 -0
  127. package/dist/components/ui/empty.mjs.map +1 -0
  128. package/dist/components/ui/field.client.d.mts +65 -0
  129. package/dist/components/ui/field.client.d.mts.map +1 -0
  130. package/dist/components/ui/field.client.mjs +114 -0
  131. package/dist/components/ui/field.client.mjs.map +1 -0
  132. package/dist/components/ui/form.client.d.mts +3 -4
  133. package/dist/components/ui/form.client.d.mts.map +1 -1
  134. package/dist/components/ui/form.client.mjs +4 -4
  135. package/dist/components/ui/form.client.mjs.map +1 -1
  136. package/dist/components/ui/hover-card.client.d.mts +6 -6
  137. package/dist/components/ui/hover-card.client.d.mts.map +1 -1
  138. package/dist/components/ui/hover-card.client.mjs +14 -11
  139. package/dist/components/ui/hover-card.client.mjs.map +1 -1
  140. package/dist/components/ui/{input-date-time.d.mts → input-date-time.client.d.mts} +7 -7
  141. package/dist/components/ui/input-date-time.client.d.mts.map +1 -0
  142. package/dist/components/ui/{input-date-time.mjs → input-date-time.client.mjs} +8 -8
  143. package/dist/components/ui/input-date-time.client.mjs.map +1 -0
  144. package/dist/components/ui/input-date.d.mts +1 -1
  145. package/dist/components/ui/input-date.d.mts.map +1 -1
  146. package/dist/components/ui/input-date.mjs.map +1 -1
  147. package/dist/components/ui/input-group.client.d.mts +59 -0
  148. package/dist/components/ui/input-group.client.d.mts.map +1 -0
  149. package/dist/components/ui/input-group.client.mjs +106 -0
  150. package/dist/components/ui/input-group.client.mjs.map +1 -0
  151. package/dist/components/ui/input-recipient.mjs +11 -11
  152. package/dist/components/ui/input-recipient.mjs.map +1 -1
  153. package/dist/components/ui/input-time.d.mts +1 -1
  154. package/dist/components/ui/input-time.d.mts.map +1 -1
  155. package/dist/components/ui/input-time.mjs.map +1 -1
  156. package/dist/components/ui/input.d.mts.map +1 -1
  157. package/dist/components/ui/input.mjs +1 -1
  158. package/dist/components/ui/input.mjs.map +1 -1
  159. package/dist/components/ui/item.d.mts +63 -0
  160. package/dist/components/ui/item.d.mts.map +1 -0
  161. package/dist/components/ui/item.mjs +119 -0
  162. package/dist/components/ui/item.mjs.map +1 -0
  163. package/dist/components/ui/kbd.d.mts +14 -0
  164. package/dist/components/ui/kbd.d.mts.map +1 -0
  165. package/dist/components/ui/kbd.mjs +22 -0
  166. package/dist/components/ui/kbd.mjs.map +1 -0
  167. package/dist/components/ui/label.d.mts +4 -4
  168. package/dist/components/ui/label.d.mts.map +1 -1
  169. package/dist/components/ui/label.mjs +5 -5
  170. package/dist/components/ui/label.mjs.map +1 -1
  171. package/dist/components/ui/loader.d.mts +7 -0
  172. package/dist/components/ui/loader.d.mts.map +1 -0
  173. package/dist/components/ui/loader.mjs +63 -0
  174. package/dist/components/ui/loader.mjs.map +1 -0
  175. package/dist/components/ui/navigation-menu.d.mts +11 -11
  176. package/dist/components/ui/navigation-menu.d.mts.map +1 -1
  177. package/dist/components/ui/navigation-menu.mjs +18 -20
  178. package/dist/components/ui/navigation-menu.mjs.map +1 -1
  179. package/dist/components/ui/pagination.d.mts +8 -2
  180. package/dist/components/ui/pagination.d.mts.map +1 -1
  181. package/dist/components/ui/pagination.mjs +29 -21
  182. package/dist/components/ui/pagination.mjs.map +1 -1
  183. package/dist/components/ui/popover.client.d.mts +35 -0
  184. package/dist/components/ui/popover.client.d.mts.map +1 -0
  185. package/dist/components/ui/popover.client.mjs +59 -0
  186. package/dist/components/ui/popover.client.mjs.map +1 -0
  187. package/dist/components/ui/progress.client.d.mts +4 -4
  188. package/dist/components/ui/progress.client.d.mts.map +1 -1
  189. package/dist/components/ui/progress.client.mjs +7 -7
  190. package/dist/components/ui/progress.client.mjs.map +1 -1
  191. package/dist/components/ui/radio-group.d.mts +5 -5
  192. package/dist/components/ui/radio-group.d.mts.map +1 -1
  193. package/dist/components/ui/radio-group.mjs +10 -11
  194. package/dist/components/ui/radio-group.mjs.map +1 -1
  195. package/dist/components/ui/resizable.client.d.mts +3 -4
  196. package/dist/components/ui/resizable.client.d.mts.map +1 -1
  197. package/dist/components/ui/resizable.client.mjs +5 -9
  198. package/dist/components/ui/resizable.client.mjs.map +1 -1
  199. package/dist/components/ui/scroll-area.d.mts +5 -5
  200. package/dist/components/ui/scroll-area.d.mts.map +1 -1
  201. package/dist/components/ui/scroll-area.mjs +12 -11
  202. package/dist/components/ui/scroll-area.mjs.map +1 -1
  203. package/dist/components/ui/select.client.d.mts +18 -13
  204. package/dist/components/ui/select.client.d.mts.map +1 -1
  205. package/dist/components/ui/select.client.mjs +37 -32
  206. package/dist/components/ui/select.client.mjs.map +1 -1
  207. package/dist/components/ui/separator.d.mts +4 -4
  208. package/dist/components/ui/separator.d.mts.map +1 -1
  209. package/dist/components/ui/separator.mjs +6 -6
  210. package/dist/components/ui/separator.mjs.map +1 -1
  211. package/dist/components/ui/sheet.client.d.mts +9 -7
  212. package/dist/components/ui/sheet.client.d.mts.map +1 -1
  213. package/dist/components/ui/sheet.client.mjs +30 -20
  214. package/dist/components/ui/sheet.client.mjs.map +1 -1
  215. package/dist/components/ui/sidebar.client.mjs +28 -28
  216. package/dist/components/ui/sidebar.client.mjs.map +1 -1
  217. package/dist/components/ui/skeleton.mjs +1 -1
  218. package/dist/components/ui/skeleton.mjs.map +1 -1
  219. package/dist/components/ui/slider.d.mts +4 -4
  220. package/dist/components/ui/slider.d.mts.map +1 -1
  221. package/dist/components/ui/slider.mjs +11 -11
  222. package/dist/components/ui/slider.mjs.map +1 -1
  223. package/dist/components/ui/spinner.d.mts +10 -0
  224. package/dist/components/ui/spinner.d.mts.map +1 -0
  225. package/dist/components/ui/spinner.mjs +9 -55
  226. package/dist/components/ui/spinner.mjs.map +1 -1
  227. package/dist/components/ui/switch.client.d.mts +15 -0
  228. package/dist/components/ui/switch.client.d.mts.map +1 -0
  229. package/dist/components/ui/switch.client.mjs +23 -0
  230. package/dist/components/ui/switch.client.mjs.map +1 -0
  231. package/dist/components/ui/tabs.client.d.mts +31 -0
  232. package/dist/components/ui/tabs.client.d.mts.map +1 -0
  233. package/dist/components/ui/tabs.client.mjs +49 -0
  234. package/dist/components/ui/tabs.client.mjs.map +1 -0
  235. package/dist/components/ui/textarea.d.mts.map +1 -1
  236. package/dist/components/ui/textarea.mjs +1 -1
  237. package/dist/components/ui/textarea.mjs.map +1 -1
  238. package/dist/components/ui/toggle-group.client.d.mts +11 -6
  239. package/dist/components/ui/toggle-group.client.d.mts.map +1 -1
  240. package/dist/components/ui/toggle-group.client.mjs +20 -12
  241. package/dist/components/ui/toggle-group.client.mjs.map +1 -1
  242. package/dist/components/ui/{toggle.d.mts → toggle.client.d.mts} +6 -6
  243. package/dist/components/ui/toggle.client.d.mts.map +1 -0
  244. package/dist/components/ui/toggle.client.mjs +40 -0
  245. package/dist/components/ui/toggle.client.mjs.map +1 -0
  246. package/dist/components/ui/tooltip.client.d.mts +7 -7
  247. package/dist/components/ui/tooltip.client.d.mts.map +1 -1
  248. package/dist/components/ui/tooltip.client.mjs +10 -10
  249. package/dist/components/ui/tooltip.client.mjs.map +1 -1
  250. package/dist/components.d.mts +12 -20
  251. package/dist/components.mjs +12 -20
  252. package/dist/inline-edit/client.d.mts +3 -3
  253. package/dist/lib/hooks/use-indicator.d.mts.map +1 -1
  254. package/dist/lib/hooks/use-indicator.mjs +11 -8
  255. package/dist/lib/hooks/use-indicator.mjs.map +1 -1
  256. package/dist/modules/auth/components/auth-layout.server.mjs +3 -3
  257. package/dist/modules/auth/components/auth-layout.server.mjs.map +1 -1
  258. package/dist/modules/auth/components/create-first-user-page.client.mjs +3 -3
  259. package/dist/modules/auth/components/create-first-user-page.client.mjs.map +1 -1
  260. package/dist/modules/auth/components/forget-password-page.client.mjs +1 -1
  261. package/dist/modules/auth/components/forget-password-page.client.mjs.map +1 -1
  262. package/dist/modules/auth/components/login-page.client.mjs +5 -5
  263. package/dist/modules/auth/components/login-page.client.mjs.map +1 -1
  264. package/dist/modules/auth/components/reset-password-page.client.mjs +5 -5
  265. package/dist/modules/auth/components/reset-password-page.client.mjs.map +1 -1
  266. package/dist/modules/commands/components/alert-dialog-command.client.d.mts +9 -9
  267. package/dist/modules/commands/components/alert-dialog-command.client.d.mts.map +1 -1
  268. package/dist/modules/commands/components/alert-dialog-command.client.mjs +3 -3
  269. package/dist/modules/commands/components/alert-dialog-command.client.mjs.map +1 -1
  270. package/dist/modules/commands/components/click-command.client.mjs +2 -2
  271. package/dist/modules/commands/components/click-command.client.mjs.map +1 -1
  272. package/dist/modules/commands/components/dialog-command.client.d.mts +8 -8
  273. package/dist/modules/commands/components/dialog-command.client.d.mts.map +1 -1
  274. package/dist/modules/commands/components/dialog-command.client.mjs +2 -2
  275. package/dist/modules/commands/components/dialog-command.client.mjs.map +1 -1
  276. package/dist/modules/commands/components/dropdown-command.client.mjs +2 -2
  277. package/dist/modules/commands/components/dropdown-command.client.mjs.map +1 -1
  278. package/dist/modules/commands/components/empty-command.client.mjs +2 -2
  279. package/dist/modules/commands/components/empty-command.client.mjs.map +1 -1
  280. package/dist/modules/commands/components/form-dialog-command.client.d.mts +11 -9
  281. package/dist/modules/commands/components/form-dialog-command.client.d.mts.map +1 -1
  282. package/dist/modules/commands/components/form-dialog-command.client.mjs +8 -6
  283. package/dist/modules/commands/components/form-dialog-command.client.mjs.map +1 -1
  284. package/dist/modules/commands/hooks/use-command-menu.client.d.mts +8 -1
  285. package/dist/modules/commands/hooks/use-command-menu.client.d.mts.map +1 -1
  286. package/dist/modules/commands/hooks/use-command-menu.client.mjs.map +1 -1
  287. package/dist/modules/commands/menus/context-menu.client.d.mts +3 -3
  288. package/dist/modules/commands/menus/context-menu.client.d.mts.map +1 -1
  289. package/dist/modules/commands/menus/context-menu.client.mjs +1 -1
  290. package/dist/modules/commands/menus/context-menu.client.mjs.map +1 -1
  291. package/dist/modules/commands/menus/dropdown-menu.client.mjs +2 -2
  292. package/dist/modules/commands/menus/dropdown-menu.client.mjs.map +1 -1
  293. package/dist/modules/commands/menus/floating-menu.client.d.mts +19 -0
  294. package/dist/modules/commands/menus/floating-menu.client.d.mts.map +1 -0
  295. package/dist/modules/commands/menus/{data-table-menu.client.mjs → floating-menu.client.mjs} +11 -11
  296. package/dist/modules/commands/menus/floating-menu.client.mjs.map +1 -0
  297. package/dist/modules/commands/utils/archive-command.client.mjs +1 -1
  298. package/dist/modules/commands/utils/archive-command.client.mjs.map +1 -1
  299. package/dist/modules/commands/utils/delete-command.client.mjs +1 -1
  300. package/dist/modules/commands/utils/delete-command.client.mjs.map +1 -1
  301. package/dist/modules/data-tables/components/cell/select.client.mjs +1 -1
  302. package/dist/modules/data-tables/components/cell/select.client.mjs.map +1 -1
  303. package/dist/modules/data-tables/components/column-header.mjs +5 -5
  304. package/dist/modules/data-tables/components/column-header.mjs.map +1 -1
  305. package/dist/modules/data-tables/components/filters/combobox.client.mjs +6 -6
  306. package/dist/modules/data-tables/components/filters/combobox.client.mjs.map +1 -1
  307. package/dist/modules/data-tables/components/filters/slider.client.mjs +2 -2
  308. package/dist/modules/data-tables/components/filters/slider.client.mjs.map +1 -1
  309. package/dist/modules/data-tables/components/header.mjs +1 -1
  310. package/dist/modules/data-tables/components/header.mjs.map +1 -1
  311. package/dist/modules/data-tables/components/skeleton.mjs +2 -2
  312. package/dist/modules/data-tables/components/skeleton.mjs.map +1 -1
  313. package/dist/modules/data-tables/components/table.mjs +3 -3
  314. package/dist/modules/data-tables/components/table.mjs.map +1 -1
  315. package/dist/modules/data-tables/components/toolbar.mjs +1 -1
  316. package/dist/modules/data-tables/components/toolbar.mjs.map +1 -1
  317. package/dist/modules/data-tables/strategies/pagination/components.mjs +3 -3
  318. package/dist/modules/data-tables/strategies/pagination/components.mjs.map +1 -1
  319. package/dist/modules/data-tables/tables/data-table/components/table.mjs +8 -2
  320. package/dist/modules/data-tables/tables/data-table/components/table.mjs.map +1 -1
  321. package/dist/modules/data-tables/tables/inline-table/components/cells/common.mjs +1 -1
  322. package/dist/modules/data-tables/tables/inline-table/components/cells/common.mjs.map +1 -1
  323. package/dist/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.mjs +1 -1
  324. package/dist/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.mjs.map +1 -1
  325. package/dist/modules/data-tables/tables/inline-table/components/cells/read-only.mjs +1 -1
  326. package/dist/modules/data-tables/tables/inline-table/components/cells/read-only.mjs.map +1 -1
  327. package/dist/modules/data-tables/tables/inline-table/components/table.mjs +8 -2
  328. package/dist/modules/data-tables/tables/inline-table/components/table.mjs.map +1 -1
  329. package/dist/modules/inline-edit/components/combobox-dropdown.client.mjs +5 -1
  330. package/dist/modules/inline-edit/components/combobox-dropdown.client.mjs.map +1 -1
  331. package/dist/modules/inline-edit/components/combobox.client.mjs +5 -1
  332. package/dist/modules/inline-edit/components/combobox.client.mjs.map +1 -1
  333. package/dist/modules/inline-edit/components/date-input.client.mjs +8 -4
  334. package/dist/modules/inline-edit/components/date-input.client.mjs.map +1 -1
  335. package/dist/modules/inline-edit/components/date-picker.client.mjs +7 -3
  336. package/dist/modules/inline-edit/components/date-picker.client.mjs.map +1 -1
  337. package/dist/modules/inline-edit/components/date-time.client.d.mts +1 -1
  338. package/dist/modules/inline-edit/components/date-time.client.d.mts.map +1 -1
  339. package/dist/modules/inline-edit/components/date-time.client.mjs +7 -2
  340. package/dist/modules/inline-edit/components/date-time.client.mjs.map +1 -1
  341. package/dist/modules/inline-edit/components/editor.client.mjs +5 -1
  342. package/dist/modules/inline-edit/components/editor.client.mjs.map +1 -1
  343. package/dist/modules/inline-edit/components/input-recipient.client.mjs +5 -1
  344. package/dist/modules/inline-edit/components/input-recipient.client.mjs.map +1 -1
  345. package/dist/modules/inline-edit/components/input-toggle.client.mjs +7 -3
  346. package/dist/modules/inline-edit/components/input-toggle.client.mjs.map +1 -1
  347. package/dist/modules/inline-edit/components/input.client.d.mts.map +1 -1
  348. package/dist/modules/inline-edit/components/input.client.mjs +18 -6
  349. package/dist/modules/inline-edit/components/input.client.mjs.map +1 -1
  350. package/dist/modules/inline-edit/components/select.client.d.mts +8 -11
  351. package/dist/modules/inline-edit/components/select.client.d.mts.map +1 -1
  352. package/dist/modules/inline-edit/components/select.client.mjs +5 -1
  353. package/dist/modules/inline-edit/components/select.client.mjs.map +1 -1
  354. package/dist/modules/inline-edit/components/switch.client.d.mts +3 -2
  355. package/dist/modules/inline-edit/components/switch.client.d.mts.map +1 -1
  356. package/dist/modules/inline-edit/components/switch.client.mjs +6 -2
  357. package/dist/modules/inline-edit/components/switch.client.mjs.map +1 -1
  358. package/dist/modules/inline-edit/components/toggle.client.mjs +6 -2
  359. package/dist/modules/inline-edit/components/toggle.client.mjs.map +1 -1
  360. package/dist/modules/inline-edit/hooks/use-inline.client.d.mts +20 -5
  361. package/dist/modules/inline-edit/hooks/use-inline.client.d.mts.map +1 -1
  362. package/dist/modules/inline-edit/hooks/use-inline.client.mjs +11 -8
  363. package/dist/modules/inline-edit/hooks/use-inline.client.mjs.map +1 -1
  364. package/dist/modules/inline-edit/lib/variants.mjs +1 -1
  365. package/dist/modules/inline-edit/lib/variants.mjs.map +1 -1
  366. package/dist/modules/storage/components/dropzone.client.d.mts +2 -2
  367. package/dist/modules/storage/components/dropzone.client.d.mts.map +1 -1
  368. package/dist/modules/storage/components/dropzone.client.mjs +8 -8
  369. package/dist/modules/storage/components/dropzone.client.mjs.map +1 -1
  370. package/dist/modules/storage/components/image-grid.client.mjs +5 -5
  371. package/dist/modules/storage/components/image-grid.client.mjs.map +1 -1
  372. package/dist/modules/storage/components/upload-zone-context.client.d.mts +1 -0
  373. package/dist/modules/storage/components/upload-zone-context.client.d.mts.map +1 -1
  374. package/dist/modules/storage/components/upload-zone-context.client.mjs.map +1 -1
  375. package/dist/modules/storage/components/upload-zone.client.d.mts +2 -1
  376. package/dist/modules/storage/components/upload-zone.client.d.mts.map +1 -1
  377. package/dist/modules/storage/components/upload-zone.client.mjs +6 -4
  378. package/dist/modules/storage/components/upload-zone.client.mjs.map +1 -1
  379. package/package.json +6 -31
  380. package/src/components/editor/components/menu-nodes.client.tsx +3 -3
  381. package/src/components/editor/components/menu.client.tsx +3 -3
  382. package/src/components/emails/forget-password-email.tsx +6 -6
  383. package/src/components/entry.client.ts +16 -0
  384. package/src/components/entry.ts +6 -14
  385. package/src/components/header/back-button.client.tsx +2 -2
  386. package/src/components/header/bottom-bar.client.tsx +2 -2
  387. package/src/components/header/breadcrumbs.client.tsx +1 -1
  388. package/src/components/header/header.client.tsx +1 -1
  389. package/src/components/layouts/empty-page.tsx +2 -2
  390. package/src/components/layouts/error-page.tsx +3 -3
  391. package/src/components/layouts/providers.client.tsx +8 -5
  392. package/src/components/layouts/root-loading.tsx +2 -2
  393. package/src/components/layouts/tab-layout.tsx +1 -1
  394. package/src/components/lists/data-list.tsx +1 -1
  395. package/src/components/lists/data-stack.tsx +1 -1
  396. package/src/components/navigation/admin-sidebar-header.client.tsx +3 -3
  397. package/src/components/navigation/admin-sidebar-skeleton.tsx +1 -1
  398. package/src/components/navigation/admin-sidebar.client.tsx +1 -0
  399. package/src/components/ui/accordion.client.tsx +83 -0
  400. package/src/components/ui/alert-dialog.client.tsx +181 -0
  401. package/src/components/ui/alert.tsx +15 -7
  402. package/src/components/ui/aspect-ratio.client.tsx +9 -0
  403. package/src/components/ui/avatar.client.tsx +61 -6
  404. package/src/components/ui/badge.tsx +17 -11
  405. package/src/components/ui/breadcrumb.tsx +9 -10
  406. package/src/components/ui/button-group.tsx +78 -0
  407. package/src/components/ui/button.tsx +26 -16
  408. package/src/components/ui/{calendar.tsx → calendar.client.tsx} +27 -20
  409. package/src/components/ui/card.tsx +41 -8
  410. package/src/components/ui/{carousel.tsx → carousel.client.tsx} +12 -12
  411. package/src/components/ui/chart.client.tsx +105 -103
  412. package/src/components/ui/checkbox.client.tsx +28 -0
  413. package/src/components/ui/collapsible.client.tsx +2 -2
  414. package/src/components/ui/combobox-dropdown.client.tsx +2 -2
  415. package/src/components/ui/combobox.client.tsx +6 -6
  416. package/src/components/ui/command.client.tsx +179 -0
  417. package/src/components/ui/{context-menu.tsx → context-menu.client.tsx} +86 -64
  418. package/src/components/ui/date-picker.client.tsx +2 -2
  419. package/src/components/ui/dialog.client.tsx +43 -20
  420. package/src/components/ui/drawer.client.tsx +13 -15
  421. package/src/components/ui/{dropdown-menu.tsx → dropdown-menu.client.tsx} +45 -24
  422. package/src/components/ui/empty.tsx +93 -0
  423. package/src/components/ui/field.client.tsx +224 -0
  424. package/src/components/ui/form.client.tsx +4 -4
  425. package/src/components/ui/hover-card.client.tsx +14 -13
  426. package/src/components/ui/{input-date-time.tsx → input-date-time.client.tsx} +18 -11
  427. package/src/components/ui/input-date.tsx +1 -1
  428. package/src/components/ui/input-group.client.tsx +191 -0
  429. package/src/components/ui/input-recipient.tsx +12 -12
  430. package/src/components/ui/input-time.tsx +1 -1
  431. package/src/components/ui/input.tsx +2 -4
  432. package/src/components/ui/item.tsx +182 -0
  433. package/src/components/ui/kbd.tsx +26 -0
  434. package/src/components/ui/label.tsx +2 -3
  435. package/src/components/ui/loader.tsx +51 -0
  436. package/src/components/ui/navigation-menu.tsx +14 -17
  437. package/src/components/ui/pagination.tsx +31 -26
  438. package/src/components/ui/popover.client.tsx +73 -0
  439. package/src/components/ui/progress.client.tsx +6 -4
  440. package/src/components/ui/radio-group.tsx +5 -7
  441. package/src/components/ui/resizable.client.tsx +9 -19
  442. package/src/components/ui/scroll-area.tsx +5 -7
  443. package/src/components/ui/select.client.tsx +40 -22
  444. package/src/components/ui/separator.tsx +3 -4
  445. package/src/components/ui/sheet.client.tsx +19 -18
  446. package/src/components/ui/sidebar.client.tsx +27 -27
  447. package/src/components/ui/skeleton.tsx +1 -1
  448. package/src/components/ui/slider.tsx +5 -10
  449. package/src/components/ui/spinner.tsx +12 -48
  450. package/src/components/ui/switch.client.tsx +32 -0
  451. package/src/components/ui/tabs.client.tsx +79 -0
  452. package/src/components/ui/textarea.tsx +1 -2
  453. package/src/components/ui/toggle-group.client.tsx +26 -10
  454. package/src/components/ui/toggle.client.tsx +44 -0
  455. package/src/components/ui/tooltip.client.tsx +4 -9
  456. package/src/lib/hooks/use-indicator.tsx +14 -8
  457. package/src/modules/auth/components/auth-layout.server.tsx +3 -3
  458. package/src/modules/auth/components/create-first-user-page.client.tsx +4 -4
  459. package/src/modules/auth/components/forget-password-page.client.tsx +1 -1
  460. package/src/modules/auth/components/login-page.client.tsx +6 -6
  461. package/src/modules/auth/components/reset-password-page.client.tsx +7 -7
  462. package/src/modules/commands/components/alert-dialog-command.client.tsx +20 -16
  463. package/src/modules/commands/components/click-command.client.tsx +2 -2
  464. package/src/modules/commands/components/dialog-command.client.tsx +11 -10
  465. package/src/modules/commands/components/dropdown-command.client.tsx +2 -2
  466. package/src/modules/commands/components/empty-command.client.tsx +2 -2
  467. package/src/modules/commands/components/form-dialog-command.client.tsx +29 -13
  468. package/src/modules/commands/entry.client.ts +16 -0
  469. package/src/modules/commands/hooks/use-command-menu.client.tsx +2 -0
  470. package/src/modules/commands/menus/context-menu.client.tsx +3 -4
  471. package/src/modules/commands/menus/dropdown-menu.client.tsx +2 -2
  472. package/src/modules/commands/menus/floating-menu.client.tsx +54 -0
  473. package/src/modules/commands/utils/archive-command.client.tsx +1 -1
  474. package/src/modules/commands/utils/delete-command.client.tsx +1 -1
  475. package/src/modules/data-tables/components/cell/select.client.tsx +1 -1
  476. package/src/modules/data-tables/components/column-header.tsx +5 -5
  477. package/src/modules/data-tables/components/filters/combobox.client.tsx +6 -6
  478. package/src/modules/data-tables/components/filters/slider.client.tsx +2 -2
  479. package/src/modules/data-tables/components/header.tsx +1 -1
  480. package/src/modules/data-tables/components/skeleton.tsx +2 -2
  481. package/src/modules/data-tables/components/table.tsx +3 -3
  482. package/src/modules/data-tables/components/toolbar.tsx +1 -1
  483. package/src/modules/data-tables/strategies/pagination/components.tsx +3 -3
  484. package/src/modules/data-tables/tables/data-table/components/table.tsx +11 -2
  485. package/src/modules/data-tables/tables/inline-table/components/cells/common.tsx +1 -1
  486. package/src/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.tsx +1 -1
  487. package/src/modules/data-tables/tables/inline-table/components/cells/read-only.tsx +1 -1
  488. package/src/modules/data-tables/tables/inline-table/components/table.tsx +11 -2
  489. package/src/modules/inline-edit/components/combobox-dropdown.client.tsx +4 -0
  490. package/src/modules/inline-edit/components/combobox.client.tsx +4 -0
  491. package/src/modules/inline-edit/components/date-input.client.tsx +7 -3
  492. package/src/modules/inline-edit/components/date-picker.client.tsx +6 -2
  493. package/src/modules/inline-edit/components/date-time.client.tsx +16 -2
  494. package/src/modules/inline-edit/components/editor.client.tsx +4 -0
  495. package/src/modules/inline-edit/components/input-recipient.client.tsx +4 -0
  496. package/src/modules/inline-edit/components/input-toggle.client.tsx +6 -2
  497. package/src/modules/inline-edit/components/input.client.tsx +15 -3
  498. package/src/modules/inline-edit/components/select.client.tsx +10 -20
  499. package/src/modules/inline-edit/components/switch.client.tsx +7 -3
  500. package/src/modules/inline-edit/components/toggle.client.tsx +5 -1
  501. package/src/modules/inline-edit/hooks/use-inline.client.tsx +37 -13
  502. package/src/modules/inline-edit/lib/parsers.ts +9 -0
  503. package/src/modules/inline-edit/lib/variants.ts +1 -1
  504. package/src/modules/storage/components/dropzone.client.tsx +8 -8
  505. package/src/modules/storage/components/image-grid.client.tsx +5 -5
  506. package/src/modules/storage/components/upload-zone-context.client.tsx +1 -0
  507. package/src/modules/storage/components/upload-zone.client.tsx +9 -3
  508. package/src/styles.css +1 -3
  509. package/dist/components/ui/accordion.d.mts +0 -25
  510. package/dist/components/ui/accordion.d.mts.map +0 -1
  511. package/dist/components/ui/accordion.mjs +0 -46
  512. package/dist/components/ui/accordion.mjs.map +0 -1
  513. package/dist/components/ui/alert-dialog.d.mts +0 -43
  514. package/dist/components/ui/alert-dialog.d.mts.map +0 -1
  515. package/dist/components/ui/alert-dialog.mjs +0 -84
  516. package/dist/components/ui/alert-dialog.mjs.map +0 -1
  517. package/dist/components/ui/aspect-ratio.d.mts +0 -8
  518. package/dist/components/ui/aspect-ratio.d.mts.map +0 -1
  519. package/dist/components/ui/aspect-ratio.mjs +0 -16
  520. package/dist/components/ui/aspect-ratio.mjs.map +0 -1
  521. package/dist/components/ui/calendar.d.mts.map +0 -1
  522. package/dist/components/ui/calendar.mjs.map +0 -1
  523. package/dist/components/ui/carousel.d.mts.map +0 -1
  524. package/dist/components/ui/carousel.mjs.map +0 -1
  525. package/dist/components/ui/checkbox.d.mts +0 -12
  526. package/dist/components/ui/checkbox.d.mts.map +0 -1
  527. package/dist/components/ui/checkbox.mjs +0 -24
  528. package/dist/components/ui/checkbox.mjs.map +0 -1
  529. package/dist/components/ui/command.d.mts.map +0 -1
  530. package/dist/components/ui/command.mjs +0 -88
  531. package/dist/components/ui/command.mjs.map +0 -1
  532. package/dist/components/ui/context-menu.d.mts +0 -77
  533. package/dist/components/ui/context-menu.d.mts.map +0 -1
  534. package/dist/components/ui/context-menu.mjs +0 -125
  535. package/dist/components/ui/context-menu.mjs.map +0 -1
  536. package/dist/components/ui/dropdown-menu.d.mts +0 -78
  537. package/dist/components/ui/dropdown-menu.d.mts.map +0 -1
  538. package/dist/components/ui/dropdown-menu.mjs +0 -126
  539. package/dist/components/ui/dropdown-menu.mjs.map +0 -1
  540. package/dist/components/ui/input-date-time.d.mts.map +0 -1
  541. package/dist/components/ui/input-date-time.mjs.map +0 -1
  542. package/dist/components/ui/popover.d.mts +0 -23
  543. package/dist/components/ui/popover.d.mts.map +0 -1
  544. package/dist/components/ui/popover.mjs +0 -38
  545. package/dist/components/ui/popover.mjs.map +0 -1
  546. package/dist/components/ui/switch.d.mts +0 -12
  547. package/dist/components/ui/switch.d.mts.map +0 -1
  548. package/dist/components/ui/switch.mjs +0 -22
  549. package/dist/components/ui/switch.mjs.map +0 -1
  550. package/dist/components/ui/tabs.d.mts +0 -24
  551. package/dist/components/ui/tabs.d.mts.map +0 -1
  552. package/dist/components/ui/tabs.mjs +0 -39
  553. package/dist/components/ui/tabs.mjs.map +0 -1
  554. package/dist/components/ui/toggle.d.mts.map +0 -1
  555. package/dist/components/ui/toggle.mjs +0 -40
  556. package/dist/components/ui/toggle.mjs.map +0 -1
  557. package/dist/modules/commands/menus/data-table-menu.client.mjs.map +0 -1
  558. package/src/components/ui/accordion.tsx +0 -63
  559. package/src/components/ui/alert-dialog.tsx +0 -133
  560. package/src/components/ui/aspect-ratio.tsx +0 -9
  561. package/src/components/ui/checkbox.tsx +0 -29
  562. package/src/components/ui/command.tsx +0 -154
  563. package/src/components/ui/popover.tsx +0 -42
  564. package/src/components/ui/switch.tsx +0 -28
  565. package/src/components/ui/tabs.tsx +0 -54
  566. package/src/components/ui/toggle.tsx +0 -46
  567. package/src/modules/commands/menus/data-table-menu.client.tsx +0 -46
@@ -1 +1 @@
1
- {"version":3,"file":"context-menu.client.mjs","names":[],"sources":["../../../../src/modules/commands/menus/context-menu.client.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ContextMenuContentProps } from \"@radix-ui/react-context-menu\";\nimport { useState } from \"react\";\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"@/components/ui/context-menu\";\nimport { cn } from \"@/lib/entry\";\nimport { RenderCommand } from \"../components/render-command\";\nimport { CommandContextProvider } from \"../hooks/context.client\";\nimport {\n type SingleCommandMenuProps,\n useSingleCommandMenu,\n} from \"../hooks/use-command-menu.client\";\n\n/**\n * ContextCommandMenu\n */\nexport const ContextCommandMenu = ContextMenu;\n\n/**\n * ContextCommandMenuTrigger\n */\nexport const ContextCommandMenuTrigger = ContextMenuTrigger;\n\n/**\n * ContextCommandMenuContent\n */\nexport function ContextCommandMenuContent<TData, TMeta>({\n data,\n commands,\n meta,\n className,\n ...props\n}: SingleCommandMenuProps<TData, TMeta> & ContextMenuContentProps) {\n const [hasCommands, setHasCommands] = useState(true);\n\n const [validCommands, renderCommand] = useSingleCommandMenu({ data, commands, meta });\n\n if (!hasCommands) {\n return (\n <CommandContextProvider value={{ menu: \"context\" }}>\n <ContextMenuContent {...props} className={cn(\"min-w-40\", className)}>\n <ContextMenuItem className=\"font-medium\" disabled>\n Geen acties beschikbaar\n </ContextMenuItem>\n </ContextMenuContent>\n </CommandContextProvider>\n );\n }\n\n return (\n <CommandContextProvider value={{ menu: \"context\" }}>\n <ContextMenuContent\n {...props}\n className={cn(\"min-w-40\", className)}\n ref={(ref) => {\n if (ref?.childNodes.length === 0) setHasCommands(false);\n }}\n >\n {validCommands.map((command) => (\n <RenderCommand key={command.name} command={command} render={renderCommand} />\n ))}\n </ContextMenuContent>\n </CommandContextProvider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAqBA,MAAa,qBAAqB;;;;AAKlC,MAAa,4BAA4B;;;;AAKzC,SAAgB,0BAAwC,EACtD,MACA,UACA,MACA,WACA,GAAG,SAC8D;CACjE,MAAM,CAAC,aAAa,kBAAkB,SAAS,KAAK;CAEpD,MAAM,CAAC,eAAe,iBAAiB,qBAAqB;EAAE;EAAM;EAAU;EAAM,CAAC;AAErF,KAAI,CAAC,YACH,QACE,oBAAC;EAAuB,OAAO,EAAE,MAAM,WAAW;YAChD,oBAAC;GAAmB,GAAI;GAAO,WAAW,GAAG,YAAY,UAAU;aACjE,oBAAC;IAAgB,WAAU;IAAc;cAAS;KAEhC;IACC;GACE;AAI7B,QACE,oBAAC;EAAuB,OAAO,EAAE,MAAM,WAAW;YAChD,oBAAC;GACC,GAAI;GACJ,WAAW,GAAG,YAAY,UAAU;GACpC,MAAM,QAAQ;AACZ,QAAI,KAAK,WAAW,WAAW,EAAG,gBAAe,MAAM;;aAGxD,cAAc,KAAK,YAClB,oBAAC;IAA0C;IAAS,QAAQ;MAAxC,QAAQ,KAAiD,CAC7E;IACiB;GACE"}
1
+ {"version":3,"file":"context-menu.client.mjs","names":[],"sources":["../../../../src/modules/commands/menus/context-menu.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { type ComponentProps, useState } from \"react\";\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"@/components/ui/context-menu.client\";\nimport { cn } from \"@/lib/entry\";\nimport { RenderCommand } from \"../components/render-command\";\nimport { CommandContextProvider } from \"../hooks/context.client\";\nimport {\n type SingleCommandMenuProps,\n useSingleCommandMenu,\n} from \"../hooks/use-command-menu.client\";\n\n/**\n * ContextCommandMenu\n */\nexport const ContextCommandMenu = ContextMenu;\n\n/**\n * ContextCommandMenuTrigger\n */\nexport const ContextCommandMenuTrigger = ContextMenuTrigger;\n\n/**\n * ContextCommandMenuContent\n */\nexport function ContextCommandMenuContent<TData, TMeta>({\n data,\n commands,\n meta,\n className,\n ...props\n}: SingleCommandMenuProps<TData, TMeta> & ComponentProps<typeof ContextMenuContent>) {\n const [hasCommands, setHasCommands] = useState(true);\n\n const [validCommands, renderCommand] = useSingleCommandMenu({ data, commands, meta });\n\n if (!hasCommands) {\n return (\n <CommandContextProvider value={{ menu: \"context\" }}>\n <ContextMenuContent {...props} className={cn(\"min-w-40\", className)}>\n <ContextMenuItem className=\"font-medium\" disabled>\n Geen acties beschikbaar\n </ContextMenuItem>\n </ContextMenuContent>\n </CommandContextProvider>\n );\n }\n\n return (\n <CommandContextProvider value={{ menu: \"context\" }}>\n <ContextMenuContent\n {...props}\n className={cn(\"min-w-40\", className)}\n ref={(ref) => {\n if (ref?.childNodes.length === 0) setHasCommands(false);\n }}\n >\n {validCommands.map((command) => (\n <RenderCommand key={command.name} command={command} render={renderCommand} />\n ))}\n </ContextMenuContent>\n </CommandContextProvider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAoBA,MAAa,qBAAqB;;;;AAKlC,MAAa,4BAA4B;;;;AAKzC,SAAgB,0BAAwC,EACtD,MACA,UACA,MACA,WACA,GAAG,SACgF;CACnF,MAAM,CAAC,aAAa,kBAAkB,SAAS,KAAK;CAEpD,MAAM,CAAC,eAAe,iBAAiB,qBAAqB;EAAE;EAAM;EAAU;EAAM,CAAC;AAErF,KAAI,CAAC,YACH,QACE,oBAAC;EAAuB,OAAO,EAAE,MAAM,WAAW;YAChD,oBAAC;GAAmB,GAAI;GAAO,WAAW,GAAG,YAAY,UAAU;aACjE,oBAAC;IAAgB,WAAU;IAAc;cAAS;KAEhC;IACC;GACE;AAI7B,QACE,oBAAC;EAAuB,OAAO,EAAE,MAAM,WAAW;YAChD,oBAAC;GACC,GAAI;GACJ,WAAW,GAAG,YAAY,UAAU;GACpC,MAAM,QAAQ;AACZ,QAAI,KAAK,WAAW,WAAW,EAAG,gBAAe,MAAM;;aAGxD,cAAc,KAAK,YAClB,oBAAC;IAA0C;IAAS,QAAQ;MAAxC,QAAQ,KAAiD,CAC7E;IACiB;GACE"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { cn } from "../../../lib/utils/cn.mjs";
4
4
  import { Button } from "../../../components/ui/button.mjs";
5
- import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from "../../../components/ui/dropdown-menu.mjs";
5
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from "../../../components/ui/dropdown-menu.client.mjs";
6
6
  import { Skeleton } from "../../../components/ui/skeleton.mjs";
7
7
  import { CommandContextProvider } from "../hooks/context.client.mjs";
8
8
  import { RenderCommand } from "../components/render-command.mjs";
@@ -28,7 +28,7 @@ function DropdownCommandMenu({ data, commands, meta, className, ...props }) {
28
28
  children: /* @__PURE__ */ jsxs(Button, {
29
29
  ...props,
30
30
  variant: "ghost",
31
- className: cn("data-[state=open]:bg-secondary size-8 p-0", className),
31
+ className: cn("size-8 p-0 data-[state=open]:bg-secondary", className),
32
32
  children: [/* @__PURE__ */ jsx(MoreHorizontal, { className: "h-4 w-4" }), /* @__PURE__ */ jsx("span", {
33
33
  className: "sr-only",
34
34
  children: "Open menu"
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-menu.client.mjs","names":[],"sources":["../../../../src/modules/commands/menus/dropdown-menu.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { MoreHorizontal } from \"lucide-react\";\nimport React, { type ComponentProps } from \"react\";\nimport { Skeleton } from \"@/components/entry\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport { cn } from \"@/lib/utils/cn\";\nimport { RenderCommand } from \"../components/render-command\";\nimport { CommandContextProvider } from \"../hooks/context.client\";\nimport {\n type SingleCommandMenuProps,\n useSingleCommandMenu,\n} from \"../hooks/use-command-menu.client\";\n\nexport function DropdownCommandMenu<TData, TMeta>({\n data,\n commands,\n meta,\n className,\n ...props\n}: SingleCommandMenuProps<TData, TMeta> & React.HTMLAttributes<HTMLElement>) {\n const [open, setOpen] = React.useState(false);\n const [validCommands, renderCommand] = useSingleCommandMenu({ data, commands, meta });\n\n if (!validCommands.length) return null;\n\n return (\n <DropdownMenu open={open} onOpenChange={setOpen}>\n <DropdownMenuTrigger asChild>\n <Button\n {...props}\n variant=\"ghost\"\n className={cn(\"data-[state=open]:bg-secondary size-8 p-0\", className)}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">Open menu</span>\n </Button>\n </DropdownMenuTrigger>\n\n <DropdownMenuContent align=\"end\" className=\"min-w-[10rem]\">\n <CommandContextProvider value={{ menu: \"dropdown\", onSuccess: () => setOpen(false) }}>\n {validCommands.map((command) => (\n <RenderCommand key={command.name} command={command} render={renderCommand} />\n ))}\n </CommandContextProvider>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nexport function DropdownCommandMenuLoading({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div {...props} className={cn(\"flex w-fit items-center\", className)}>\n <Skeleton className=\"h-8 w-8\" />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAmBA,SAAgB,oBAAkC,EAChD,MACA,UACA,MACA,WACA,GAAG,SACwE;CAC3E,MAAM,CAAC,MAAM,WAAW,MAAM,SAAS,MAAM;CAC7C,MAAM,CAAC,eAAe,iBAAiB,qBAAqB;EAAE;EAAM;EAAU;EAAM,CAAC;AAErF,KAAI,CAAC,cAAc,OAAQ,QAAO;AAElC,QACE,qBAAC;EAAmB;EAAM,cAAc;aACtC,oBAAC;GAAoB;aACnB,qBAAC;IACC,GAAI;IACJ,SAAQ;IACR,WAAW,GAAG,6CAA6C,UAAU;eAErE,oBAAC,kBAAe,WAAU,YAAY,EACtC,oBAAC;KAAK,WAAU;eAAU;MAAgB;KACnC;IACW,EAEtB,oBAAC;GAAoB,OAAM;GAAM,WAAU;aACzC,oBAAC;IAAuB,OAAO;KAAE,MAAM;KAAY,iBAAiB,QAAQ,MAAM;KAAE;cACjF,cAAc,KAAK,YAClB,oBAAC;KAA0C;KAAS,QAAQ;OAAxC,QAAQ,KAAiD,CAC7E;KACqB;IACL;GACT;;AAInB,SAAgB,2BAA2B,EAAE,WAAW,GAAG,SAAgC;AACzF,QACE,oBAAC;EAAI,GAAI;EAAO,WAAW,GAAG,2BAA2B,UAAU;YACjE,oBAAC,YAAS,WAAU,YAAY;GAC5B"}
1
+ {"version":3,"file":"dropdown-menu.client.mjs","names":[],"sources":["../../../../src/modules/commands/menus/dropdown-menu.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { MoreHorizontal } from \"lucide-react\";\nimport React, { type ComponentProps } from \"react\";\nimport { Skeleton } from \"@/components/entry\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu.client\";\nimport { cn } from \"@/lib/utils/cn\";\nimport { RenderCommand } from \"../components/render-command\";\nimport { CommandContextProvider } from \"../hooks/context.client\";\nimport {\n type SingleCommandMenuProps,\n useSingleCommandMenu,\n} from \"../hooks/use-command-menu.client\";\n\nexport function DropdownCommandMenu<TData, TMeta>({\n data,\n commands,\n meta,\n className,\n ...props\n}: SingleCommandMenuProps<TData, TMeta> & React.HTMLAttributes<HTMLElement>) {\n const [open, setOpen] = React.useState(false);\n const [validCommands, renderCommand] = useSingleCommandMenu({ data, commands, meta });\n\n if (!validCommands.length) return null;\n\n return (\n <DropdownMenu open={open} onOpenChange={setOpen}>\n <DropdownMenuTrigger asChild>\n <Button\n {...props}\n variant=\"ghost\"\n className={cn(\"size-8 p-0 data-[state=open]:bg-secondary\", className)}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">Open menu</span>\n </Button>\n </DropdownMenuTrigger>\n\n <DropdownMenuContent align=\"end\" className=\"min-w-[10rem]\">\n <CommandContextProvider value={{ menu: \"dropdown\", onSuccess: () => setOpen(false) }}>\n {validCommands.map((command) => (\n <RenderCommand key={command.name} command={command} render={renderCommand} />\n ))}\n </CommandContextProvider>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nexport function DropdownCommandMenuLoading({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div {...props} className={cn(\"flex w-fit items-center\", className)}>\n <Skeleton className=\"h-8 w-8\" />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAmBA,SAAgB,oBAAkC,EAChD,MACA,UACA,MACA,WACA,GAAG,SACwE;CAC3E,MAAM,CAAC,MAAM,WAAW,MAAM,SAAS,MAAM;CAC7C,MAAM,CAAC,eAAe,iBAAiB,qBAAqB;EAAE;EAAM;EAAU;EAAM,CAAC;AAErF,KAAI,CAAC,cAAc,OAAQ,QAAO;AAElC,QACE,qBAAC;EAAmB;EAAM,cAAc;aACtC,oBAAC;GAAoB;aACnB,qBAAC;IACC,GAAI;IACJ,SAAQ;IACR,WAAW,GAAG,6CAA6C,UAAU;eAErE,oBAAC,kBAAe,WAAU,YAAY,EACtC,oBAAC;KAAK,WAAU;eAAU;MAAgB;KACnC;IACW,EAEtB,oBAAC;GAAoB,OAAM;GAAM,WAAU;aACzC,oBAAC;IAAuB,OAAO;KAAE,MAAM;KAAY,iBAAiB,QAAQ,MAAM;KAAE;cACjF,cAAc,KAAK,YAClB,oBAAC;KAA0C;KAAS,QAAQ;OAAxC,QAAQ,KAAiD,CAC7E;KACqB;IACL;GACT;;AAInB,SAAgB,2BAA2B,EAAE,WAAW,GAAG,SAAgC;AACzF,QACE,oBAAC;EAAI,GAAI;EAAO,WAAW,GAAG,2BAA2B,UAAU;YACjE,oBAAC,YAAS,WAAU,YAAY;GAC5B"}
@@ -0,0 +1,19 @@
1
+ import { BulkCommandMenuProps } from "../hooks/use-command-menu.client.mjs";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
+
4
+ //#region src/modules/commands/menus/floating-menu.client.d.ts
5
+ type FloatingCommandMenuProps<TData, TMeta> = BulkCommandMenuProps<TData, TMeta> & React.HTMLAttributes<HTMLElement> & {
6
+ state: "open" | "closed";
7
+ };
8
+ declare function FloatingCommandMenu<TData, TMeta>({
9
+ data,
10
+ commands,
11
+ meta,
12
+ state,
13
+ onSuccess,
14
+ className,
15
+ ...props
16
+ }: FloatingCommandMenuProps<TData, TMeta>): react_jsx_runtime0.JSX.Element;
17
+ //#endregion
18
+ export { FloatingCommandMenu };
19
+ //# sourceMappingURL=floating-menu.client.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floating-menu.client.d.mts","names":[],"sources":["../../../../src/modules/commands/menus/floating-menu.client.tsx"],"mappings":";;;;KAQK,wBAAA,iBAAyC,oBAAA,CAAqB,KAAA,EAAO,KAAA,IACxE,KAAA,CAAM,cAAA,CAAe,WAAA;EACnB,KAAA;AAAA;AAAA,iBAGY,mBAAA,cAAA,CAAA;EACd,IAAA;EACA,QAAA;EACA,IAAA;EACA,KAAA;EACA,SAAA;EACA,SAAA;EAAA,GACG;AAAA,GACF,wBAAA,CAAyB,KAAA,EAAO,KAAA,IAAM,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,24 +1,24 @@
1
1
  "use client";
2
2
 
3
+ import { cn } from "../../../lib/utils/cn.mjs";
3
4
  import { CommandContextProvider } from "../hooks/context.client.mjs";
4
5
  import { RenderCommand } from "../components/render-command.mjs";
5
6
  import { useBulkCommandMenu } from "../hooks/use-command-menu.client.mjs";
6
7
  import { jsx, jsxs } from "react/jsx-runtime";
7
8
  import { useRef } from "react";
8
9
 
9
- //#region src/modules/commands/menus/data-table-menu.client.tsx
10
- function TableCommandMenu({ table }) {
11
- const meta = table.options.meta;
10
+ //#region src/modules/commands/menus/floating-menu.client.tsx
11
+ function FloatingCommandMenu({ data, commands, meta, state, onSuccess, className, ...props }) {
12
12
  const hasCommands = useRef(true);
13
- const onSuccess = () => table.resetRowSelection();
14
13
  const [validCommands, renderCommand] = useBulkCommandMenu({
15
- data: meta.selectedData ?? [],
16
- commands: meta.commands ?? [],
14
+ data,
15
+ commands,
17
16
  meta
18
17
  });
19
18
  return /* @__PURE__ */ jsx("div", {
20
- "data-state": meta.selectedData?.length ? "open" : "closed",
21
- className: "bg-muted/80 fixed bottom-12 left-0 right-0 z-50 mx-auto flex w-fit items-center rounded-xl border px-3 py-2 shadow-xl backdrop-blur-2xl data-[state=open]:flex data-[state=closed]:hidden",
19
+ ...props,
20
+ "data-state": state,
21
+ className: cn("fixed right-0 bottom-12 left-0 z-50 mx-auto flex w-fit items-center rounded-xl border bg-muted/80 px-3 py-2 shadow-xl backdrop-blur-2xl data-[state=open]:flex data-[state=closed]:hidden", className),
22
22
  children: /* @__PURE__ */ jsxs(CommandContextProvider, {
23
23
  value: {
24
24
  menu: "table",
@@ -34,7 +34,7 @@ function TableCommandMenu({ table }) {
34
34
  render: renderCommand
35
35
  }, command.name))
36
36
  }), !hasCommands.current && /* @__PURE__ */ jsx("span", {
37
- className: "text-sm font-medium",
37
+ className: "font-medium text-sm",
38
38
  children: "Geen acties beschikbaar"
39
39
  })]
40
40
  })
@@ -42,5 +42,5 @@ function TableCommandMenu({ table }) {
42
42
  }
43
43
 
44
44
  //#endregion
45
- export { TableCommandMenu };
46
- //# sourceMappingURL=data-table-menu.client.mjs.map
45
+ export { FloatingCommandMenu };
46
+ //# sourceMappingURL=floating-menu.client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floating-menu.client.mjs","names":[],"sources":["../../../../src/modules/commands/menus/floating-menu.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { useRef } from \"react\";\nimport { cn } from \"@/lib/utils/cn\";\nimport { RenderCommand } from \"../components/render-command\";\nimport { CommandContextProvider } from \"../hooks/context.client\";\nimport { type BulkCommandMenuProps, useBulkCommandMenu } from \"../hooks/use-command-menu.client\";\n\ntype FloatingCommandMenuProps<TData, TMeta> = BulkCommandMenuProps<TData, TMeta> &\n React.HTMLAttributes<HTMLElement> & {\n state: \"open\" | \"closed\";\n };\n\nexport function FloatingCommandMenu<TData, TMeta>({\n data,\n commands,\n meta,\n state,\n onSuccess,\n className,\n ...props\n}: FloatingCommandMenuProps<TData, TMeta>) {\n const hasCommands = useRef(true);\n\n const [validCommands, renderCommand] = useBulkCommandMenu({ data, commands, meta });\n\n return (\n <div\n {...props}\n data-state={state}\n className={cn(\n \"fixed right-0 bottom-12 left-0 z-50 mx-auto flex w-fit items-center rounded-xl border bg-muted/80 px-3 py-2 shadow-xl backdrop-blur-2xl data-[state=open]:flex data-[state=closed]:hidden\",\n className,\n )}\n >\n <CommandContextProvider value={{ menu: \"table\", onSuccess }}>\n <div\n className=\"flex gap-2\"\n ref={(ref) => {\n if (ref?.childNodes.length === 0) hasCommands.current = false;\n }}\n >\n {validCommands.map((command) => (\n <RenderCommand key={command.name} command={command} render={renderCommand} />\n ))}\n </div>\n\n {!hasCommands.current && (\n <span className=\"font-medium text-sm\">Geen acties beschikbaar</span>\n )}\n </CommandContextProvider>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AAaA,SAAgB,oBAAkC,EAChD,MACA,UACA,MACA,OACA,WACA,WACA,GAAG,SACsC;CACzC,MAAM,cAAc,OAAO,KAAK;CAEhC,MAAM,CAAC,eAAe,iBAAiB,mBAAmB;EAAE;EAAM;EAAU;EAAM,CAAC;AAEnF,QACE,oBAAC;EACC,GAAI;EACJ,cAAY;EACZ,WAAW,GACT,6LACA,UACD;YAED,qBAAC;GAAuB,OAAO;IAAE,MAAM;IAAS;IAAW;cACzD,oBAAC;IACC,WAAU;IACV,MAAM,QAAQ;AACZ,SAAI,KAAK,WAAW,WAAW,EAAG,aAAY,UAAU;;cAGzD,cAAc,KAAK,YAClB,oBAAC;KAA0C;KAAS,QAAQ;OAAxC,QAAQ,KAAiD,CAC7E;KACE,EAEL,CAAC,YAAY,WACZ,oBAAC;IAAK,WAAU;cAAsB;KAA8B;IAE/C;GACrB"}
@@ -16,7 +16,7 @@ function ArchiveCommand({ variables, mutation }) {
16
16
  mutation,
17
17
  className: "text-destructive",
18
18
  label: "Archiveren",
19
- children: [/* @__PURE__ */ jsx(Icons.archive, { className: "text-destructive w-4" }), /* @__PURE__ */ jsx(CommandLabel, {})]
19
+ children: [/* @__PURE__ */ jsx(Icons.archive, { className: "w-4 text-destructive" }), /* @__PURE__ */ jsx(CommandLabel, {})]
20
20
  });
21
21
  }
22
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"archive-command.client.mjs","names":[],"sources":["../../../../src/modules/commands/utils/archive-command.client.tsx"],"sourcesContent":["\"use client\";\n\nimport type { DefaultError, MutationOptions } from \"@tanstack/react-query\";\nimport { Icons } from \"@/components/common/icons\";\nimport { CommandClick } from \"../components/click-command.client\";\nimport { CommandLabel } from \"../components/command-trigger.client\";\n\nexport type ArchiveCommandProps<\n TData = unknown,\n TError = DefaultError,\n TVariables = { ids: string[] },\n TOnMutateResult = unknown,\n> = {\n variables: TVariables;\n mutation: MutationOptions<TData, TError, TVariables, TOnMutateResult>;\n};\n\n/**\n * Archive command\n * @description command to archive a resource\n */\nexport function ArchiveCommand<\n TData = unknown,\n TError = DefaultError,\n TVariables = { ids: string[] },\n TOnMutateResult = unknown,\n>({ variables, mutation }: ArchiveCommandProps<TData, TError, TVariables, TOnMutateResult>) {\n return (\n <CommandClick\n variables={variables}\n mutation={mutation}\n className=\"text-destructive\"\n label=\"Archiveren\"\n >\n <Icons.archive className=\"text-destructive w-4\" />\n <CommandLabel />\n </CommandClick>\n );\n}\n\n/**\n * Unarchive command\n * @description command to unarchive a resource\n */\nexport function RestoreCommand<\n TData = unknown,\n TError = DefaultError,\n TVariables = { ids: string[] },\n TOnMutateResult = unknown,\n>({ variables, mutation }: ArchiveCommandProps<TData, TError, TVariables, TOnMutateResult>) {\n return (\n <CommandClick\n className=\"flex gap-2\"\n variables={variables}\n mutation={mutation}\n label=\"Terugzetten\"\n >\n <Icons.restore className=\"w-4\" />\n <CommandLabel />\n </CommandClick>\n );\n}\n"],"mappings":";;;;;;;;;;;;AAqBA,SAAgB,eAKd,EAAE,WAAW,YAA6E;AAC1F,QACE,qBAAC;EACY;EACD;EACV,WAAU;EACV,OAAM;aAEN,oBAAC,MAAM,WAAQ,WAAU,yBAAyB,EAClD,oBAAC,iBAAe;GACH;;;;;;AAQnB,SAAgB,eAKd,EAAE,WAAW,YAA6E;AAC1F,QACE,qBAAC;EACC,WAAU;EACC;EACD;EACV,OAAM;aAEN,oBAAC,MAAM,WAAQ,WAAU,QAAQ,EACjC,oBAAC,iBAAe;GACH"}
1
+ {"version":3,"file":"archive-command.client.mjs","names":[],"sources":["../../../../src/modules/commands/utils/archive-command.client.tsx"],"sourcesContent":["\"use client\";\n\nimport type { DefaultError, MutationOptions } from \"@tanstack/react-query\";\nimport { Icons } from \"@/components/common/icons\";\nimport { CommandClick } from \"../components/click-command.client\";\nimport { CommandLabel } from \"../components/command-trigger.client\";\n\nexport type ArchiveCommandProps<\n TData = unknown,\n TError = DefaultError,\n TVariables = { ids: string[] },\n TOnMutateResult = unknown,\n> = {\n variables: TVariables;\n mutation: MutationOptions<TData, TError, TVariables, TOnMutateResult>;\n};\n\n/**\n * Archive command\n * @description command to archive a resource\n */\nexport function ArchiveCommand<\n TData = unknown,\n TError = DefaultError,\n TVariables = { ids: string[] },\n TOnMutateResult = unknown,\n>({ variables, mutation }: ArchiveCommandProps<TData, TError, TVariables, TOnMutateResult>) {\n return (\n <CommandClick\n variables={variables}\n mutation={mutation}\n className=\"text-destructive\"\n label=\"Archiveren\"\n >\n <Icons.archive className=\"w-4 text-destructive\" />\n <CommandLabel />\n </CommandClick>\n );\n}\n\n/**\n * Unarchive command\n * @description command to unarchive a resource\n */\nexport function RestoreCommand<\n TData = unknown,\n TError = DefaultError,\n TVariables = { ids: string[] },\n TOnMutateResult = unknown,\n>({ variables, mutation }: ArchiveCommandProps<TData, TError, TVariables, TOnMutateResult>) {\n return (\n <CommandClick\n className=\"flex gap-2\"\n variables={variables}\n mutation={mutation}\n label=\"Terugzetten\"\n >\n <Icons.restore className=\"w-4\" />\n <CommandLabel />\n </CommandClick>\n );\n}\n"],"mappings":";;;;;;;;;;;;AAqBA,SAAgB,eAKd,EAAE,WAAW,YAA6E;AAC1F,QACE,qBAAC;EACY;EACD;EACV,WAAU;EACV,OAAM;aAEN,oBAAC,MAAM,WAAQ,WAAU,yBAAyB,EAClD,oBAAC,iBAAe;GACH;;;;;;AAQnB,SAAgB,eAKd,EAAE,WAAW,YAA6E;AAC1F,QACE,qBAAC;EACC,WAAU;EACC;EACD;EACV,OAAM;aAEN,oBAAC,MAAM,WAAQ,WAAU,QAAQ,EACjC,oBAAC,iBAAe;GACH"}
@@ -14,7 +14,7 @@ function DeleteCommand({ variables, mutation }) {
14
14
  return /* @__PURE__ */ jsxs(CommandAlertDialog, { children: [/* @__PURE__ */ jsxs(CommandAlertDialogTrigger, {
15
15
  className: "text-destructive",
16
16
  label: "Verwijderen",
17
- children: [/* @__PURE__ */ jsx(Icons.trash, { className: "text-destructive w-4" }), /* @__PURE__ */ jsx(CommandLabel, {})]
17
+ children: [/* @__PURE__ */ jsx(Icons.trash, { className: "w-4 text-destructive" }), /* @__PURE__ */ jsx(CommandLabel, {})]
18
18
  }), /* @__PURE__ */ jsxs(CommandAlertDialogContent, { children: [/* @__PURE__ */ jsxs(CommandAlertDialogHeader, { children: [/* @__PURE__ */ jsx(CommandAlertDialogTitle, { children: "Weet je zeker dat je dit wilt verwijderen?" }), /* @__PURE__ */ jsx(CommandAlertDialogDescription, { children: "Dit kan niet ongedaan gemaakt worden en alle gegevens zullen verloren gaan." })] }), /* @__PURE__ */ jsxs(CommandAlertDialogFooter, { children: [/* @__PURE__ */ jsx(CommandAlertDialogCancel, { children: "Annuleren" }), /* @__PURE__ */ jsx(CommandAlertDialogAction, {
19
19
  mutation,
20
20
  variables,
@@ -1 +1 @@
1
- {"version":3,"file":"delete-command.client.mjs","names":[],"sources":["../../../../src/modules/commands/utils/delete-command.client.tsx"],"sourcesContent":["\"use client\";\n\nimport type { DefaultError, MutationOptions } from \"@tanstack/react-query\";\nimport { Icons } from \"@/components/common/icons\";\nimport {\n CommandAlertDialog,\n CommandAlertDialogAction,\n CommandAlertDialogCancel,\n CommandAlertDialogContent,\n CommandAlertDialogDescription,\n CommandAlertDialogFooter,\n CommandAlertDialogHeader,\n CommandAlertDialogTitle,\n CommandAlertDialogTrigger,\n} from \"../components/alert-dialog-command.client\";\nimport { CommandLabel } from \"../components/command-trigger.client\";\n\nexport type DeleteCommandProps<\n TData = unknown,\n TError = DefaultError,\n TVariables = unknown,\n TOnMutateResult = unknown,\n> = {\n variables: TVariables;\n mutation: MutationOptions<TData, TError, TVariables, TOnMutateResult>;\n};\n/**\n * Delete command\n * @description command to delete a resource\n */\nexport function DeleteCommand<\n TData = unknown,\n TError = DefaultError,\n TVariables = unknown,\n TOnMutateResult = unknown,\n>({ variables, mutation }: DeleteCommandProps<TData, TError, TVariables, TOnMutateResult>) {\n return (\n <CommandAlertDialog>\n <CommandAlertDialogTrigger className=\"text-destructive\" label=\"Verwijderen\">\n <Icons.trash className=\"text-destructive w-4\" />\n <CommandLabel />\n </CommandAlertDialogTrigger>\n\n <CommandAlertDialogContent>\n <CommandAlertDialogHeader>\n <CommandAlertDialogTitle>\n Weet je zeker dat je dit wilt verwijderen?\n </CommandAlertDialogTitle>\n\n <CommandAlertDialogDescription>\n Dit kan niet ongedaan gemaakt worden en alle gegevens zullen verloren gaan.\n </CommandAlertDialogDescription>\n </CommandAlertDialogHeader>\n\n <CommandAlertDialogFooter>\n <CommandAlertDialogCancel>Annuleren</CommandAlertDialogCancel>\n <CommandAlertDialogAction mutation={mutation} variables={variables}>\n Verwijderen\n </CommandAlertDialogAction>\n </CommandAlertDialogFooter>\n </CommandAlertDialogContent>\n </CommandAlertDialog>\n );\n}\n\n/**\n * Single Delete command\n */\nexport function SingleDeleteCommand<\n TData = unknown,\n TError = DefaultError,\n TVariables = { id: string },\n TOnMutateResult = unknown,\n>({ variables, mutation }: DeleteCommandProps<TData, TError, TVariables, TOnMutateResult>) {\n return <DeleteCommand variables={variables} mutation={mutation} />;\n}\n"],"mappings":";;;;;;;;;;;;AA8BA,SAAgB,cAKd,EAAE,WAAW,YAA4E;AACzF,QACE,qBAAC,iCACC,qBAAC;EAA0B,WAAU;EAAmB,OAAM;aAC5D,oBAAC,MAAM,SAAM,WAAU,yBAAyB,EAChD,oBAAC,iBAAe;GACU,EAE5B,qBAAC,wCACC,qBAAC,uCACC,oBAAC,qCAAwB,+CAEC,EAE1B,oBAAC,2CAA8B,gFAEC,IACP,EAE3B,qBAAC,uCACC,oBAAC,sCAAyB,cAAoC,EAC9D,oBAAC;EAAmC;EAAqB;YAAW;GAEzC,IACF,IACD,IACT;;;;;AAOzB,SAAgB,oBAKd,EAAE,WAAW,YAA4E;AACzF,QAAO,oBAAC;EAAyB;EAAqB;GAAY"}
1
+ {"version":3,"file":"delete-command.client.mjs","names":[],"sources":["../../../../src/modules/commands/utils/delete-command.client.tsx"],"sourcesContent":["\"use client\";\n\nimport type { DefaultError, MutationOptions } from \"@tanstack/react-query\";\nimport { Icons } from \"@/components/common/icons\";\nimport {\n CommandAlertDialog,\n CommandAlertDialogAction,\n CommandAlertDialogCancel,\n CommandAlertDialogContent,\n CommandAlertDialogDescription,\n CommandAlertDialogFooter,\n CommandAlertDialogHeader,\n CommandAlertDialogTitle,\n CommandAlertDialogTrigger,\n} from \"../components/alert-dialog-command.client\";\nimport { CommandLabel } from \"../components/command-trigger.client\";\n\nexport type DeleteCommandProps<\n TData = unknown,\n TError = DefaultError,\n TVariables = unknown,\n TOnMutateResult = unknown,\n> = {\n variables: TVariables;\n mutation: MutationOptions<TData, TError, TVariables, TOnMutateResult>;\n};\n/**\n * Delete command\n * @description command to delete a resource\n */\nexport function DeleteCommand<\n TData = unknown,\n TError = DefaultError,\n TVariables = unknown,\n TOnMutateResult = unknown,\n>({ variables, mutation }: DeleteCommandProps<TData, TError, TVariables, TOnMutateResult>) {\n return (\n <CommandAlertDialog>\n <CommandAlertDialogTrigger className=\"text-destructive\" label=\"Verwijderen\">\n <Icons.trash className=\"w-4 text-destructive\" />\n <CommandLabel />\n </CommandAlertDialogTrigger>\n\n <CommandAlertDialogContent>\n <CommandAlertDialogHeader>\n <CommandAlertDialogTitle>\n Weet je zeker dat je dit wilt verwijderen?\n </CommandAlertDialogTitle>\n\n <CommandAlertDialogDescription>\n Dit kan niet ongedaan gemaakt worden en alle gegevens zullen verloren gaan.\n </CommandAlertDialogDescription>\n </CommandAlertDialogHeader>\n\n <CommandAlertDialogFooter>\n <CommandAlertDialogCancel>Annuleren</CommandAlertDialogCancel>\n <CommandAlertDialogAction mutation={mutation} variables={variables}>\n Verwijderen\n </CommandAlertDialogAction>\n </CommandAlertDialogFooter>\n </CommandAlertDialogContent>\n </CommandAlertDialog>\n );\n}\n\n/**\n * Single Delete command\n */\nexport function SingleDeleteCommand<\n TData = unknown,\n TError = DefaultError,\n TVariables = { id: string },\n TOnMutateResult = unknown,\n>({ variables, mutation }: DeleteCommandProps<TData, TError, TVariables, TOnMutateResult>) {\n return <DeleteCommand variables={variables} mutation={mutation} />;\n}\n"],"mappings":";;;;;;;;;;;;AA8BA,SAAgB,cAKd,EAAE,WAAW,YAA4E;AACzF,QACE,qBAAC,iCACC,qBAAC;EAA0B,WAAU;EAAmB,OAAM;aAC5D,oBAAC,MAAM,SAAM,WAAU,yBAAyB,EAChD,oBAAC,iBAAe;GACU,EAE5B,qBAAC,wCACC,qBAAC,uCACC,oBAAC,qCAAwB,+CAEC,EAE1B,oBAAC,2CAA8B,gFAEC,IACP,EAE3B,qBAAC,uCACC,oBAAC,sCAAyB,cAAoC,EAC9D,oBAAC;EAAmC;EAAqB;YAAW;GAEzC,IACF,IACD,IACT;;;;;AAOzB,SAAgB,oBAKd,EAAE,WAAW,YAA4E;AACzF,QAAO,oBAAC;EAAyB;EAAqB;GAAY"}
@@ -1,4 +1,4 @@
1
- import { Checkbox } from "../../../../components/ui/checkbox.mjs";
1
+ import { Checkbox } from "../../../../components/ui/checkbox.client.mjs";
2
2
  import { TableCell } from "../table.mjs";
3
3
  import { createTableCell } from "../../lib/helpers/create-column.mjs";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1 +1 @@
1
- {"version":3,"file":"select.client.mjs","names":[],"sources":["../../../../../src/modules/data-tables/components/cell/select.client.tsx"],"sourcesContent":["import { Checkbox } from \"@/components/ui/checkbox\";\nimport { TableCell } from \"@/modules/data-tables/components/table\";\nimport { createTableCell } from \"../../lib/helpers/create-column\";\n\n/**\n * Create a new column with the select checkbox\n */\nexport const createTableSelectCell = createTableCell({\n id: \"select\",\n header: ({ table }) => (\n <div className=\"flex w-full items-center justify-center\">\n <Checkbox\n checked={table.getIsAllPageRowsSelected()}\n onCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}\n aria-label=\"Select all\"\n />\n </div>\n ),\n cell: ({ row }) => (\n <TableCell className=\"w-8\">\n <div className=\"flex w-full items-center justify-center\">\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={(value) => row.toggleSelected(!!value)}\n aria-label=\"Select row\"\n />\n </div>\n </TableCell>\n ),\n enableHiding: false,\n enableSorting: false,\n});\n"],"mappings":";;;;;;;;;AAOA,MAAa,wBAAwB,gBAAgB;CACnD,IAAI;CACJ,SAAS,EAAE,YACT,oBAAC;EAAI,WAAU;YACb,oBAAC;GACC,SAAS,MAAM,0BAA0B;GACzC,kBAAkB,UAAU,MAAM,0BAA0B,CAAC,CAAC,MAAM;GACpE,cAAW;IACX;GACE;CAER,OAAO,EAAE,UACP,oBAAC;EAAU,WAAU;YACnB,oBAAC;GAAI,WAAU;aACb,oBAAC;IACC,SAAS,IAAI,eAAe;IAC5B,kBAAkB,UAAU,IAAI,eAAe,CAAC,CAAC,MAAM;IACvD,cAAW;KACX;IACE;GACI;CAEd,cAAc;CACd,eAAe;CAChB,CAAC"}
1
+ {"version":3,"file":"select.client.mjs","names":[],"sources":["../../../../../src/modules/data-tables/components/cell/select.client.tsx"],"sourcesContent":["import { Checkbox } from \"@/components/ui/checkbox.client\";\nimport { TableCell } from \"@/modules/data-tables/components/table\";\nimport { createTableCell } from \"../../lib/helpers/create-column\";\n\n/**\n * Create a new column with the select checkbox\n */\nexport const createTableSelectCell = createTableCell({\n id: \"select\",\n header: ({ table }) => (\n <div className=\"flex w-full items-center justify-center\">\n <Checkbox\n checked={table.getIsAllPageRowsSelected()}\n onCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}\n aria-label=\"Select all\"\n />\n </div>\n ),\n cell: ({ row }) => (\n <TableCell className=\"w-8\">\n <div className=\"flex w-full items-center justify-center\">\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={(value) => row.toggleSelected(!!value)}\n aria-label=\"Select row\"\n />\n </div>\n </TableCell>\n ),\n enableHiding: false,\n enableSorting: false,\n});\n"],"mappings":";;;;;;;;;AAOA,MAAa,wBAAwB,gBAAgB;CACnD,IAAI;CACJ,SAAS,EAAE,YACT,oBAAC;EAAI,WAAU;YACb,oBAAC;GACC,SAAS,MAAM,0BAA0B;GACzC,kBAAkB,UAAU,MAAM,0BAA0B,CAAC,CAAC,MAAM;GACpE,cAAW;IACX;GACE;CAER,OAAO,EAAE,UACP,oBAAC;EAAU,WAAU;YACnB,oBAAC;GAAI,WAAU;aACb,oBAAC;IACC,SAAS,IAAI,eAAe;IAC5B,kBAAkB,UAAU,IAAI,eAAe,CAAC,CAAC,MAAM;IACvD,cAAW;KACX;IACE;GACI;CAEd,cAAc;CACd,eAAe;CAChB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { cn } from "../../../lib/utils/cn.mjs";
2
2
  import { Button } from "../../../components/ui/button.mjs";
3
- import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger } from "../../../components/ui/dropdown-menu.mjs";
3
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger } from "../../../components/ui/dropdown-menu.client.mjs";
4
4
  import { ChevronsUpDown, RotateCcwIcon, SortAsc, SortDesc } from "lucide-react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
 
@@ -18,7 +18,7 @@ function TableColumnHeader({ column, title, className }) {
18
18
  size: "sm",
19
19
  type: "button",
20
20
  variant: "ghost",
21
- className: "data-[state=open]:bg-accent -ml-3 h-8",
21
+ className: "-ml-3 h-8 data-[state=open]:bg-accent",
22
22
  children: [/* @__PURE__ */ jsx("span", { children: title }), column.getIsSorted() === "desc" ? /* @__PURE__ */ jsx(SortDesc, { className: "ml-2 h-4 w-4" }) : column.getIsSorted() === "asc" ? /* @__PURE__ */ jsx(SortAsc, { className: "ml-2 h-4 w-4" }) : /* @__PURE__ */ jsx(ChevronsUpDown, { className: "ml-2 h-4 w-4" })]
23
23
  })
24
24
  }), /* @__PURE__ */ jsxs(DropdownMenuContent, {
@@ -26,16 +26,16 @@ function TableColumnHeader({ column, title, className }) {
26
26
  children: [
27
27
  /* @__PURE__ */ jsxs(DropdownMenuItem, {
28
28
  onClick: () => column.toggleSorting(false),
29
- children: [/* @__PURE__ */ jsx(SortAsc, { className: "text-muted-foreground/70 mr-2 h-3.5 w-3.5" }), "Asc"]
29
+ children: [/* @__PURE__ */ jsx(SortAsc, { className: "mr-2 h-3.5 w-3.5 text-muted-foreground/70" }), "Asc"]
30
30
  }),
31
31
  /* @__PURE__ */ jsxs(DropdownMenuItem, {
32
32
  onClick: () => column.toggleSorting(true),
33
- children: [/* @__PURE__ */ jsx(SortDesc, { className: "text-muted-foreground/70 mr-2 h-3.5 w-3.5" }), "Desc"]
33
+ children: [/* @__PURE__ */ jsx(SortDesc, { className: "mr-2 h-3.5 w-3.5 text-muted-foreground/70" }), "Desc"]
34
34
  }),
35
35
  /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
36
36
  /* @__PURE__ */ jsxs(DropdownMenuItem, {
37
37
  onClick: () => column.clearSorting(),
38
- children: [/* @__PURE__ */ jsx(RotateCcwIcon, { className: "text-muted-foreground/70 mr-2 h-3.5 w-3.5" }), "Clear"]
38
+ children: [/* @__PURE__ */ jsx(RotateCcwIcon, { className: "mr-2 h-3.5 w-3.5 text-muted-foreground/70" }), "Clear"]
39
39
  })
40
40
  ]
41
41
  })] })
@@ -1 +1 @@
1
- {"version":3,"file":"column-header.mjs","names":[],"sources":["../../../../src/modules/data-tables/components/column-header.tsx"],"sourcesContent":["import type { Column } from \"@tanstack/react-table\";\nimport { ChevronsUpDown, RotateCcwIcon, SortAsc, SortDesc } from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport { cn } from \"@/lib/utils/cn\";\n\ninterface TableColumnHeaderProps<TData, TValue> extends React.HTMLAttributes<HTMLDivElement> {\n column: Column<TData, TValue>;\n title: string;\n}\n\nexport function TableColumnHeader<TData, TValue>({\n column,\n title,\n className,\n}: TableColumnHeaderProps<TData, TValue>) {\n if (!column.getCanSort()) {\n return <div className={cn(className)}>{title}</div>;\n }\n\n return (\n <div className={cn(\"flex items-center space-x-2\", className)}>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n size=\"sm\"\n type=\"button\"\n variant=\"ghost\"\n className=\"data-[state=open]:bg-accent -ml-3 h-8\"\n >\n <span>{title}</span>\n {column.getIsSorted() === \"desc\" ? (\n <SortDesc className=\"ml-2 h-4 w-4\" />\n ) : column.getIsSorted() === \"asc\" ? (\n <SortAsc className=\"ml-2 h-4 w-4\" />\n ) : (\n <ChevronsUpDown className=\"ml-2 h-4 w-4\" />\n )}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">\n <DropdownMenuItem onClick={() => column.toggleSorting(false)}>\n <SortAsc className=\"text-muted-foreground/70 mr-2 h-3.5 w-3.5\" />\n Asc\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => column.toggleSorting(true)}>\n <SortDesc className=\"text-muted-foreground/70 mr-2 h-3.5 w-3.5\" />\n Desc\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={() => column.clearSorting()}>\n <RotateCcwIcon className=\"text-muted-foreground/70 mr-2 h-3.5 w-3.5\" />\n Clear\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAiBA,SAAgB,kBAAiC,EAC/C,QACA,OACA,aACwC;AACxC,KAAI,CAAC,OAAO,YAAY,CACtB,QAAO,oBAAC;EAAI,WAAW,GAAG,UAAU;YAAG;GAAY;AAGrD,QACE,oBAAC;EAAI,WAAW,GAAG,+BAA+B,UAAU;YAC1D,qBAAC,2BACC,oBAAC;GAAoB;aACnB,qBAAC;IACC,MAAK;IACL,MAAK;IACL,SAAQ;IACR,WAAU;eAEV,oBAAC,oBAAM,QAAa,EACnB,OAAO,aAAa,KAAK,SACxB,oBAAC,YAAS,WAAU,iBAAiB,GACnC,OAAO,aAAa,KAAK,QAC3B,oBAAC,WAAQ,WAAU,iBAAiB,GAEpC,oBAAC,kBAAe,WAAU,iBAAiB;KAEtC;IACW,EACtB,qBAAC;GAAoB,OAAM;;IACzB,qBAAC;KAAiB,eAAe,OAAO,cAAc,MAAM;gBAC1D,oBAAC,WAAQ,WAAU,8CAA8C;MAEhD;IACnB,qBAAC;KAAiB,eAAe,OAAO,cAAc,KAAK;gBACzD,oBAAC,YAAS,WAAU,8CAA8C;MAEjD;IACnB,oBAAC,0BAAwB;IACzB,qBAAC;KAAiB,eAAe,OAAO,cAAc;gBACpD,oBAAC,iBAAc,WAAU,8CAA8C;MAEtD;;IACC,IACT;GACX"}
1
+ {"version":3,"file":"column-header.mjs","names":[],"sources":["../../../../src/modules/data-tables/components/column-header.tsx"],"sourcesContent":["import type { Column } from \"@tanstack/react-table\";\nimport { ChevronsUpDown, RotateCcwIcon, SortAsc, SortDesc } from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu.client\";\nimport { cn } from \"@/lib/utils/cn\";\n\ninterface TableColumnHeaderProps<TData, TValue> extends React.HTMLAttributes<HTMLDivElement> {\n column: Column<TData, TValue>;\n title: string;\n}\n\nexport function TableColumnHeader<TData, TValue>({\n column,\n title,\n className,\n}: TableColumnHeaderProps<TData, TValue>) {\n if (!column.getCanSort()) {\n return <div className={cn(className)}>{title}</div>;\n }\n\n return (\n <div className={cn(\"flex items-center space-x-2\", className)}>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n size=\"sm\"\n type=\"button\"\n variant=\"ghost\"\n className=\"-ml-3 h-8 data-[state=open]:bg-accent\"\n >\n <span>{title}</span>\n {column.getIsSorted() === \"desc\" ? (\n <SortDesc className=\"ml-2 h-4 w-4\" />\n ) : column.getIsSorted() === \"asc\" ? (\n <SortAsc className=\"ml-2 h-4 w-4\" />\n ) : (\n <ChevronsUpDown className=\"ml-2 h-4 w-4\" />\n )}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">\n <DropdownMenuItem onClick={() => column.toggleSorting(false)}>\n <SortAsc className=\"mr-2 h-3.5 w-3.5 text-muted-foreground/70\" />\n Asc\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => column.toggleSorting(true)}>\n <SortDesc className=\"mr-2 h-3.5 w-3.5 text-muted-foreground/70\" />\n Desc\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={() => column.clearSorting()}>\n <RotateCcwIcon className=\"mr-2 h-3.5 w-3.5 text-muted-foreground/70\" />\n Clear\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAiBA,SAAgB,kBAAiC,EAC/C,QACA,OACA,aACwC;AACxC,KAAI,CAAC,OAAO,YAAY,CACtB,QAAO,oBAAC;EAAI,WAAW,GAAG,UAAU;YAAG;GAAY;AAGrD,QACE,oBAAC;EAAI,WAAW,GAAG,+BAA+B,UAAU;YAC1D,qBAAC,2BACC,oBAAC;GAAoB;aACnB,qBAAC;IACC,MAAK;IACL,MAAK;IACL,SAAQ;IACR,WAAU;eAEV,oBAAC,oBAAM,QAAa,EACnB,OAAO,aAAa,KAAK,SACxB,oBAAC,YAAS,WAAU,iBAAiB,GACnC,OAAO,aAAa,KAAK,QAC3B,oBAAC,WAAQ,WAAU,iBAAiB,GAEpC,oBAAC,kBAAe,WAAU,iBAAiB;KAEtC;IACW,EACtB,qBAAC;GAAoB,OAAM;;IACzB,qBAAC;KAAiB,eAAe,OAAO,cAAc,MAAM;gBAC1D,oBAAC,WAAQ,WAAU,8CAA8C;MAEhD;IACnB,qBAAC;KAAiB,eAAe,OAAO,cAAc,KAAK;gBACzD,oBAAC,YAAS,WAAU,8CAA8C;MAEjD;IACnB,oBAAC,0BAAwB;IACzB,qBAAC;KAAiB,eAAe,OAAO,cAAc;gBACpD,oBAAC,iBAAc,WAAU,8CAA8C;MAEtD;;IACC,IACT;GACX"}
@@ -3,9 +3,9 @@
3
3
  import { cn } from "../../../../lib/utils/cn.mjs";
4
4
  import { Badge } from "../../../../components/ui/badge.mjs";
5
5
  import { Button } from "../../../../components/ui/button.mjs";
6
- import { Popover, PopoverContent, PopoverTrigger } from "../../../../components/ui/popover.mjs";
6
+ import { Popover, PopoverContent, PopoverTrigger } from "../../../../components/ui/popover.client.mjs";
7
7
  import { Separator } from "../../../../components/ui/separator.mjs";
8
- import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator } from "../../../../components/ui/command.mjs";
8
+ import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator } from "../../../../components/ui/command.client.mjs";
9
9
  import { Check, PlusCircle } from "lucide-react";
10
10
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
11
11
  import { startTransition, useOptimistic } from "react";
@@ -23,7 +23,7 @@ function TableFilterCombobox({ title, filter, options }) {
23
23
  size: "sm",
24
24
  className: "h-8 border-dashed",
25
25
  children: [
26
- /* @__PURE__ */ jsx(PlusCircle, { className: "mr-2 h-4 w-4" }),
26
+ /* @__PURE__ */ jsx(PlusCircle, { className: "h-4 w-4" }),
27
27
  title,
28
28
  selectedValues?.size > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
29
29
  /* @__PURE__ */ jsx(Separator, {
@@ -69,8 +69,8 @@ function TableFilterCombobox({ title, filter, options }) {
69
69
  children: [
70
70
  /* @__PURE__ */ jsx("div", {
71
71
  "data-active": selectedValues.has(option.value),
72
- className: cn("border-primary data-[active=true]:bg-primary data-[active=true]:text-primary-foreground data-[active=true]:[&>svg]:text-primary-foreground mr-2 flex h-4 w-4 items-center justify-center rounded-sm border opacity-50 data-[active=true]:opacity-100 [&>svg]:invisible data-[active=true]:[&>svg]:visible"),
73
- children: /* @__PURE__ */ jsx(Check, { className: "text-foreground h-4 w-4" })
72
+ className: cn("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary opacity-50 data-[active=true]:bg-primary data-[active=true]:text-primary-foreground data-[active=true]:opacity-100 [&>svg]:invisible data-[active=true]:[&>svg]:visible data-[active=true]:[&>svg]:text-primary-foreground"),
73
+ children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4 text-foreground" })
74
74
  }),
75
75
  /* @__PURE__ */ jsxs("div", {
76
76
  className: "flex flex-1 items-center gap-2",
@@ -80,7 +80,7 @@ function TableFilterCombobox({ title, filter, options }) {
80
80
  })]
81
81
  }),
82
82
  option.total !== void 0 && /* @__PURE__ */ jsx("span", {
83
- className: "text-muted-foreground/50 size-4 justify-self-end font-mono text-xs",
83
+ className: "size-4 justify-self-end font-mono text-muted-foreground/50 text-xs",
84
84
  children: option.total
85
85
  })
86
86
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.client.mjs","names":[],"sources":["../../../../../src/modules/data-tables/components/filters/combobox.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { Check, type LucideIcon, PlusCircle } from \"lucide-react\";\nimport { type ParserBuilder, useQueryState } from \"nuqs\";\nimport { startTransition, useOptimistic } from \"react\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n} from \"@/components/ui/command\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { cn } from \"@/lib/utils/cn\";\n\nexport type TableFilterComboboxOption = {\n label: string;\n value: string;\n className?: string;\n icon?: LucideIcon;\n total?: number;\n};\n\nexport type TableFilterComboboxProps<TValue extends string = string> = {\n title?: string;\n filter: { name: string; parser: ParserBuilder<TValue[] | null> };\n options: TableFilterComboboxOption[];\n};\n\nexport function TableFilterCombobox<TValue extends string>({\n title,\n filter,\n options,\n}: TableFilterComboboxProps<TValue>) {\n const [query, setQuery] = useQueryState(filter.name, filter.parser);\n\n const [selectedValues, setSelectedValues] = useOptimistic(\n new Set<string>(Array.isArray(query) ? query : []),\n );\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button type=\"button\" variant=\"outline\" size=\"sm\" className=\"h-8 border-dashed\">\n <PlusCircle className=\"mr-2 h-4 w-4\" />\n {title}\n {selectedValues?.size > 0 && (\n <>\n <Separator orientation=\"vertical\" className=\"mx-2 h-4\" />\n <Badge variant=\"secondary\" className=\"rounded-sm px-1 font-normal lg:hidden\">\n {selectedValues.size}\n </Badge>\n <div className=\"hidden space-x-1 lg:flex\">\n {selectedValues.size > 2 ? (\n <Badge variant=\"secondary\" className=\"rounded-sm px-1 font-normal\">\n {selectedValues.size} selected\n </Badge>\n ) : (\n options\n .filter((option) => selectedValues.has(option.value))\n .map((option) => (\n <Badge\n variant=\"secondary\"\n key={option.value}\n className=\"rounded-sm px-1 font-normal\"\n >\n {option.label}\n </Badge>\n ))\n )}\n </div>\n </>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[20rem] p-0\" align=\"start\">\n <Command>\n <CommandInput placeholder={title} />\n <CommandList>\n <CommandEmpty>No results found.</CommandEmpty>\n <CommandGroup>\n {options.map((option) => {\n const Icon = option.icon;\n\n return (\n <CommandItem\n key={option.value}\n onSelect={() =>\n startTransition(() => {\n const newSelectedValues = new Set(selectedValues);\n\n const isSelected = newSelectedValues.has(option.value);\n\n if (isSelected) newSelectedValues.delete(option.value);\n else newSelectedValues.add(option.value);\n setSelectedValues(newSelectedValues);\n\n const filterValues = Array.from(newSelectedValues) as TValue[];\n setQuery(filterValues.length ? filterValues : null);\n })\n }\n >\n <div\n data-active={selectedValues.has(option.value)}\n className={cn(\n \"border-primary data-[active=true]:bg-primary data-[active=true]:text-primary-foreground data-[active=true]:[&>svg]:text-primary-foreground mr-2 flex h-4 w-4 items-center justify-center rounded-sm border opacity-50 data-[active=true]:opacity-100 [&>svg]:invisible data-[active=true]:[&>svg]:visible\",\n )}\n >\n <Check className=\"text-foreground h-4 w-4\" />\n </div>\n\n <div className=\"flex flex-1 items-center gap-2\">\n {Icon && <Icon className={cn(\"size-4\", option.className)} />}\n <span className={cn(option.className)}>{option.label}</span>\n </div>\n\n {option.total !== undefined && (\n <span className=\"text-muted-foreground/50 size-4 justify-self-end font-mono text-xs\">\n {option.total}\n </span>\n )}\n </CommandItem>\n );\n })}\n </CommandGroup>\n\n {selectedValues.size > 0 && (\n <>\n <CommandSeparator />\n <CommandGroup>\n <CommandItem\n onSelect={() => setQuery(null)}\n className=\"justify-center text-center\"\n >\n Clear filters\n </CommandItem>\n </CommandGroup>\n </>\n )}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAkCA,SAAgB,oBAA2C,EACzD,OACA,QACA,WACmC;CACnC,MAAM,CAAC,OAAO,YAAY,cAAc,OAAO,MAAM,OAAO,OAAO;CAEnE,MAAM,CAAC,gBAAgB,qBAAqB,cAC1C,IAAI,IAAY,MAAM,QAAQ,MAAM,GAAG,QAAQ,EAAE,CAAC,CACnD;AAED,QACE,qBAAC,sBACC,oBAAC;EAAe;YACd,qBAAC;GAAO,MAAK;GAAS,SAAQ;GAAU,MAAK;GAAK,WAAU;;IAC1D,oBAAC,cAAW,WAAU,iBAAiB;IACtC;IACA,gBAAgB,OAAO,KACtB;KACE,oBAAC;MAAU,aAAY;MAAW,WAAU;OAAa;KACzD,oBAAC;MAAM,SAAQ;MAAY,WAAU;gBAClC,eAAe;OACV;KACR,oBAAC;MAAI,WAAU;gBACZ,eAAe,OAAO,IACrB,qBAAC;OAAM,SAAQ;OAAY,WAAU;kBAClC,eAAe,MAAK;QACf,GAER,QACG,QAAQ,WAAW,eAAe,IAAI,OAAO,MAAM,CAAC,CACpD,KAAK,WACJ,oBAAC;OACC,SAAQ;OAER,WAAU;iBAET,OAAO;SAHH,OAAO,MAIN,CACR;OAEF;QACL;;IAEE;GACM,EACjB,oBAAC;EAAe,WAAU;EAAgB,OAAM;YAC9C,qBAAC,sBACC,oBAAC,gBAAa,aAAa,QAAS,EACpC,qBAAC;GACC,oBAAC,0BAAa,sBAAgC;GAC9C,oBAAC,0BACE,QAAQ,KAAK,WAAW;IACvB,MAAM,OAAO,OAAO;AAEpB,WACE,qBAAC;KAEC,gBACE,sBAAsB;MACpB,MAAM,oBAAoB,IAAI,IAAI,eAAe;AAIjD,UAFmB,kBAAkB,IAAI,OAAO,MAAM,CAEtC,mBAAkB,OAAO,OAAO,MAAM;UACjD,mBAAkB,IAAI,OAAO,MAAM;AACxC,wBAAkB,kBAAkB;MAEpC,MAAM,eAAe,MAAM,KAAK,kBAAkB;AAClD,eAAS,aAAa,SAAS,eAAe,KAAK;OACnD;;MAGJ,oBAAC;OACC,eAAa,eAAe,IAAI,OAAO,MAAM;OAC7C,WAAW,GACT,4SACD;iBAED,oBAAC,SAAM,WAAU,4BAA4B;QACzC;MAEN,qBAAC;OAAI,WAAU;kBACZ,QAAQ,oBAAC,QAAK,WAAW,GAAG,UAAU,OAAO,UAAU,GAAI,EAC5D,oBAAC;QAAK,WAAW,GAAG,OAAO,UAAU;kBAAG,OAAO;SAAa;QACxD;MAEL,OAAO,UAAU,UAChB,oBAAC;OAAK,WAAU;iBACb,OAAO;QACH;;OAjCJ,OAAO,MAmCA;KAEhB,GACW;GAEd,eAAe,OAAO,KACrB,4CACE,oBAAC,qBAAmB,EACpB,oBAAC,0BACC,oBAAC;IACC,gBAAgB,SAAS,KAAK;IAC9B,WAAU;cACX;KAEa,GACD,IACd;MAEO,IACN;GACK,IACT"}
1
+ {"version":3,"file":"combobox.client.mjs","names":[],"sources":["../../../../../src/modules/data-tables/components/filters/combobox.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { Check, type LucideIcon, PlusCircle } from \"lucide-react\";\nimport { type ParserBuilder, useQueryState } from \"nuqs\";\nimport { startTransition, useOptimistic } from \"react\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n} from \"@/components/ui/command.client\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover.client\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { cn } from \"@/lib/utils/cn\";\n\nexport type TableFilterComboboxOption = {\n label: string;\n value: string;\n className?: string;\n icon?: LucideIcon;\n total?: number;\n};\n\nexport type TableFilterComboboxProps<TValue extends string = string> = {\n title?: string;\n filter: { name: string; parser: ParserBuilder<TValue[] | null> };\n options: TableFilterComboboxOption[];\n};\n\nexport function TableFilterCombobox<TValue extends string>({\n title,\n filter,\n options,\n}: TableFilterComboboxProps<TValue>) {\n const [query, setQuery] = useQueryState(filter.name, filter.parser);\n\n const [selectedValues, setSelectedValues] = useOptimistic(\n new Set<string>(Array.isArray(query) ? query : []),\n );\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button type=\"button\" variant=\"outline\" size=\"sm\" className=\"h-8 border-dashed\">\n <PlusCircle className=\"h-4 w-4\" />\n {title}\n {selectedValues?.size > 0 && (\n <>\n <Separator orientation=\"vertical\" className=\"mx-2 h-4\" />\n <Badge variant=\"secondary\" className=\"rounded-sm px-1 font-normal lg:hidden\">\n {selectedValues.size}\n </Badge>\n <div className=\"hidden space-x-1 lg:flex\">\n {selectedValues.size > 2 ? (\n <Badge variant=\"secondary\" className=\"rounded-sm px-1 font-normal\">\n {selectedValues.size} selected\n </Badge>\n ) : (\n options\n .filter((option) => selectedValues.has(option.value))\n .map((option) => (\n <Badge\n variant=\"secondary\"\n key={option.value}\n className=\"rounded-sm px-1 font-normal\"\n >\n {option.label}\n </Badge>\n ))\n )}\n </div>\n </>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[20rem] p-0\" align=\"start\">\n <Command>\n <CommandInput placeholder={title} />\n <CommandList>\n <CommandEmpty>No results found.</CommandEmpty>\n <CommandGroup>\n {options.map((option) => {\n const Icon = option.icon;\n\n return (\n <CommandItem\n key={option.value}\n onSelect={() =>\n startTransition(() => {\n const newSelectedValues = new Set(selectedValues);\n\n const isSelected = newSelectedValues.has(option.value);\n\n if (isSelected) newSelectedValues.delete(option.value);\n else newSelectedValues.add(option.value);\n setSelectedValues(newSelectedValues);\n\n const filterValues = Array.from(newSelectedValues) as TValue[];\n setQuery(filterValues.length ? filterValues : null);\n })\n }\n >\n <div\n data-active={selectedValues.has(option.value)}\n className={cn(\n \"mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary opacity-50 data-[active=true]:bg-primary data-[active=true]:text-primary-foreground data-[active=true]:opacity-100 [&>svg]:invisible data-[active=true]:[&>svg]:visible data-[active=true]:[&>svg]:text-primary-foreground\",\n )}\n >\n <Check className=\"h-4 w-4 text-foreground\" />\n </div>\n\n <div className=\"flex flex-1 items-center gap-2\">\n {Icon && <Icon className={cn(\"size-4\", option.className)} />}\n <span className={cn(option.className)}>{option.label}</span>\n </div>\n\n {option.total !== undefined && (\n <span className=\"size-4 justify-self-end font-mono text-muted-foreground/50 text-xs\">\n {option.total}\n </span>\n )}\n </CommandItem>\n );\n })}\n </CommandGroup>\n\n {selectedValues.size > 0 && (\n <>\n <CommandSeparator />\n <CommandGroup>\n <CommandItem\n onSelect={() => setQuery(null)}\n className=\"justify-center text-center\"\n >\n Clear filters\n </CommandItem>\n </CommandGroup>\n </>\n )}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAkCA,SAAgB,oBAA2C,EACzD,OACA,QACA,WACmC;CACnC,MAAM,CAAC,OAAO,YAAY,cAAc,OAAO,MAAM,OAAO,OAAO;CAEnE,MAAM,CAAC,gBAAgB,qBAAqB,cAC1C,IAAI,IAAY,MAAM,QAAQ,MAAM,GAAG,QAAQ,EAAE,CAAC,CACnD;AAED,QACE,qBAAC,sBACC,oBAAC;EAAe;YACd,qBAAC;GAAO,MAAK;GAAS,SAAQ;GAAU,MAAK;GAAK,WAAU;;IAC1D,oBAAC,cAAW,WAAU,YAAY;IACjC;IACA,gBAAgB,OAAO,KACtB;KACE,oBAAC;MAAU,aAAY;MAAW,WAAU;OAAa;KACzD,oBAAC;MAAM,SAAQ;MAAY,WAAU;gBAClC,eAAe;OACV;KACR,oBAAC;MAAI,WAAU;gBACZ,eAAe,OAAO,IACrB,qBAAC;OAAM,SAAQ;OAAY,WAAU;kBAClC,eAAe,MAAK;QACf,GAER,QACG,QAAQ,WAAW,eAAe,IAAI,OAAO,MAAM,CAAC,CACpD,KAAK,WACJ,oBAAC;OACC,SAAQ;OAER,WAAU;iBAET,OAAO;SAHH,OAAO,MAIN,CACR;OAEF;QACL;;IAEE;GACM,EACjB,oBAAC;EAAe,WAAU;EAAgB,OAAM;YAC9C,qBAAC,sBACC,oBAAC,gBAAa,aAAa,QAAS,EACpC,qBAAC;GACC,oBAAC,0BAAa,sBAAgC;GAC9C,oBAAC,0BACE,QAAQ,KAAK,WAAW;IACvB,MAAM,OAAO,OAAO;AAEpB,WACE,qBAAC;KAEC,gBACE,sBAAsB;MACpB,MAAM,oBAAoB,IAAI,IAAI,eAAe;AAIjD,UAFmB,kBAAkB,IAAI,OAAO,MAAM,CAEtC,mBAAkB,OAAO,OAAO,MAAM;UACjD,mBAAkB,IAAI,OAAO,MAAM;AACxC,wBAAkB,kBAAkB;MAEpC,MAAM,eAAe,MAAM,KAAK,kBAAkB;AAClD,eAAS,aAAa,SAAS,eAAe,KAAK;OACnD;;MAGJ,oBAAC;OACC,eAAa,eAAe,IAAI,OAAO,MAAM;OAC7C,WAAW,GACT,4SACD;iBAED,oBAAC,SAAM,WAAU,4BAA4B;QACzC;MAEN,qBAAC;OAAI,WAAU;kBACZ,QAAQ,oBAAC,QAAK,WAAW,GAAG,UAAU,OAAO,UAAU,GAAI,EAC5D,oBAAC;QAAK,WAAW,GAAG,OAAO,UAAU;kBAAG,OAAO;SAAa;QACxD;MAEL,OAAO,UAAU,UAChB,oBAAC;OAAK,WAAU;iBACb,OAAO;QACH;;OAjCJ,OAAO,MAmCA;KAEhB,GACW;GAEd,eAAe,OAAO,KACrB,4CACE,oBAAC,qBAAmB,EACpB,oBAAC,0BACC,oBAAC;IACC,gBAAgB,SAAS,KAAK;IAC9B,WAAU;cACX;KAEa,GACD,IACd;MAEO,IACN;GACK,IACT"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { Badge } from "../../../../components/ui/badge.mjs";
4
4
  import { Button } from "../../../../components/ui/button.mjs";
5
- import { Popover, PopoverContent, PopoverTrigger } from "../../../../components/ui/popover.mjs";
5
+ import { Popover, PopoverContent, PopoverTrigger } from "../../../../components/ui/popover.client.mjs";
6
6
  import { Input } from "../../../../components/ui/input.mjs";
7
7
  import { Separator } from "../../../../components/ui/separator.mjs";
8
8
  import { Slider } from "../../../../components/ui/slider.mjs";
@@ -101,7 +101,7 @@ function TableFilterSlider({ title, filter, options = {
101
101
  min,
102
102
  max
103
103
  }), /* @__PURE__ */ jsxs("div", {
104
- className: "text-muted-foreground flex justify-between text-xs",
104
+ className: "flex justify-between text-muted-foreground text-xs",
105
105
  children: [/* @__PURE__ */ jsx("span", { children: min }), /* @__PURE__ */ jsx("span", { children: max })]
106
106
  })]
107
107
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"slider.client.mjs","names":[],"sources":["../../../../../src/modules/data-tables/components/filters/slider.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { PlusCircle } from \"lucide-react\";\nimport { type ParserBuilder, useQueryState } from \"nuqs\";\nimport { startTransition, useState } from \"react\";\nimport { useDebouncedCallback } from \"use-debounce\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { Slider } from \"@/components/ui/slider\";\n\nexport type TableFilterSliderProps = {\n title?: string;\n filter: { name: string; parser: ParserBuilder<[number, number] | null> };\n options?: { min: number; max: number };\n};\n\nexport function TableFilterSlider({\n title,\n filter,\n options = { min: 0, max: 100 },\n}: TableFilterSliderProps) {\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useQueryState(filter.name, filter.parser);\n\n const [selectedValues, setSelectedValues] = useState(query);\n\n const handleSliderChange = useDebouncedCallback(\n (values: [number, number] | null) => setQuery(values, { startTransition }),\n 300,\n );\n\n const { min, max } = options;\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button type=\"button\" variant=\"outline\" size=\"sm\" className=\"h-8 border-dashed\">\n <PlusCircle className=\"mr-2 h-4 w-4\" />\n {title}\n {selectedValues && selectedValues?.length > 0 && (\n <>\n <Separator orientation=\"vertical\" className=\"mx-2 h-4\" />\n <Badge variant=\"secondary\" className=\"rounded-sm px-1 font-normal lg:hidden\">\n {selectedValues?.length}\n </Badge>\n\n <div className=\"hidden space-x-1 lg:flex\">\n <Badge variant=\"secondary\" className=\"rounded-sm px-1 font-normal\">\n {query?.[0]} tot {query?.[1]}\n </Badge>\n </div>\n </>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[20rem] p-0\" align=\"start\">\n <div className=\"space-y-8 p-4\">\n <div className=\"flex items-center gap-2\">\n <Input\n type=\"number\"\n value={selectedValues?.[0] ?? undefined}\n placeholder=\"Min\"\n onChange={(e) => {\n startTransition(() => {\n const newValues = e.target.value\n ? ([Number(e.target.value), selectedValues?.[1] ?? max] as [number, number])\n : null;\n\n setSelectedValues(newValues);\n });\n }}\n onBlur={() => handleSliderChange(selectedValues)}\n />\n <Input\n type=\"number\"\n value={selectedValues?.[1] ?? undefined}\n placeholder=\"Max\"\n max={max}\n onChange={(e) => {\n startTransition(() => {\n const newValues = e.target.value\n ? ([selectedValues?.[0] ?? min, Number(e.target.value)] as [number, number])\n : null;\n\n setSelectedValues(newValues);\n });\n }}\n onBlur={() => handleSliderChange(selectedValues)}\n />\n </div>\n\n <div className=\"space-y-3\">\n <Slider\n value={selectedValues ?? [min, max]}\n onValueChange={(values: [number, number]) =>\n startTransition(() => {\n setSelectedValues(values);\n handleSliderChange(values);\n })\n }\n step={1}\n min={min}\n max={max}\n />\n\n <div className=\"text-muted-foreground flex justify-between text-xs\">\n <span>{min}</span>\n <span>{max}</span>\n </div>\n </div>\n </div>\n\n {selectedValues && selectedValues.length > 0 && (\n <div className=\"w-full space-y-2 p-1.5\">\n <Separator />\n\n <Button\n size=\"sm\"\n type=\"button\"\n variant=\"ghost\"\n onClick={() => {\n setOpen(false);\n setSelectedValues(null);\n handleSliderChange(null);\n }}\n className=\"w-full text-center\"\n >\n Clear filters\n </Button>\n </div>\n )}\n </PopoverContent>\n </Popover>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,SAAgB,kBAAkB,EAChC,OACA,QACA,UAAU;CAAE,KAAK;CAAG,KAAK;CAAK,IACL;CACzB,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CACvC,MAAM,CAAC,OAAO,YAAY,cAAc,OAAO,MAAM,OAAO,OAAO;CAEnE,MAAM,CAAC,gBAAgB,qBAAqB,SAAS,MAAM;CAE3D,MAAM,qBAAqB,sBACxB,WAAoC,SAAS,QAAQ,EAAE,iBAAiB,CAAC,EAC1E,IACD;CAED,MAAM,EAAE,KAAK,QAAQ;AAErB,QACE,qBAAC;EAAc;EAAM,cAAc;aACjC,oBAAC;GAAe;aACd,qBAAC;IAAO,MAAK;IAAS,SAAQ;IAAU,MAAK;IAAK,WAAU;;KAC1D,oBAAC,cAAW,WAAU,iBAAiB;KACtC;KACA,kBAAkB,gBAAgB,SAAS,KAC1C;MACE,oBAAC;OAAU,aAAY;OAAW,WAAU;QAAa;MACzD,oBAAC;OAAM,SAAQ;OAAY,WAAU;iBAClC,gBAAgB;QACX;MAER,oBAAC;OAAI,WAAU;iBACb,qBAAC;QAAM,SAAQ;QAAY,WAAU;;SAClC,QAAQ;SAAG;SAAM,QAAQ;;SACpB;QACJ;SACL;;KAEE;IACM,EACjB,qBAAC;GAAe,WAAU;GAAgB,OAAM;cAC9C,qBAAC;IAAI,WAAU;eACb,qBAAC;KAAI,WAAU;gBACb,oBAAC;MACC,MAAK;MACL,OAAO,iBAAiB,MAAM;MAC9B,aAAY;MACZ,WAAW,MAAM;AACf,6BAAsB;AAKpB,0BAJkB,EAAE,OAAO,QACtB,CAAC,OAAO,EAAE,OAAO,MAAM,EAAE,iBAAiB,MAAM,IAAI,GACrD,KAEwB;SAC5B;;MAEJ,cAAc,mBAAmB,eAAe;OAChD,EACF,oBAAC;MACC,MAAK;MACL,OAAO,iBAAiB,MAAM;MAC9B,aAAY;MACP;MACL,WAAW,MAAM;AACf,6BAAsB;AAKpB,0BAJkB,EAAE,OAAO,QACtB,CAAC,iBAAiB,MAAM,KAAK,OAAO,EAAE,OAAO,MAAM,CAAC,GACrD,KAEwB;SAC5B;;MAEJ,cAAc,mBAAmB,eAAe;OAChD;MACE,EAEN,qBAAC;KAAI,WAAU;gBACb,oBAAC;MACC,OAAO,kBAAkB,CAAC,KAAK,IAAI;MACnC,gBAAgB,WACd,sBAAsB;AACpB,yBAAkB,OAAO;AACzB,0BAAmB,OAAO;QAC1B;MAEJ,MAAM;MACD;MACA;OACL,EAEF,qBAAC;MAAI,WAAU;iBACb,oBAAC,oBAAM,MAAW,EAClB,oBAAC,oBAAM,MAAW;OACd;MACF;KACF,EAEL,kBAAkB,eAAe,SAAS,KACzC,qBAAC;IAAI,WAAU;eACb,oBAAC,cAAY,EAEb,oBAAC;KACC,MAAK;KACL,MAAK;KACL,SAAQ;KACR,eAAe;AACb,cAAQ,MAAM;AACd,wBAAkB,KAAK;AACvB,yBAAmB,KAAK;;KAE1B,WAAU;eACX;MAEQ;KACL;IAEO;GACT"}
1
+ {"version":3,"file":"slider.client.mjs","names":[],"sources":["../../../../../src/modules/data-tables/components/filters/slider.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { PlusCircle } from \"lucide-react\";\nimport { type ParserBuilder, useQueryState } from \"nuqs\";\nimport { startTransition, useState } from \"react\";\nimport { useDebouncedCallback } from \"use-debounce\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover.client\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { Slider } from \"@/components/ui/slider\";\n\nexport type TableFilterSliderProps = {\n title?: string;\n filter: { name: string; parser: ParserBuilder<[number, number] | null> };\n options?: { min: number; max: number };\n};\n\nexport function TableFilterSlider({\n title,\n filter,\n options = { min: 0, max: 100 },\n}: TableFilterSliderProps) {\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useQueryState(filter.name, filter.parser);\n\n const [selectedValues, setSelectedValues] = useState(query);\n\n const handleSliderChange = useDebouncedCallback(\n (values: [number, number] | null) => setQuery(values, { startTransition }),\n 300,\n );\n\n const { min, max } = options;\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button type=\"button\" variant=\"outline\" size=\"sm\" className=\"h-8 border-dashed\">\n <PlusCircle className=\"mr-2 h-4 w-4\" />\n {title}\n {selectedValues && selectedValues?.length > 0 && (\n <>\n <Separator orientation=\"vertical\" className=\"mx-2 h-4\" />\n <Badge variant=\"secondary\" className=\"rounded-sm px-1 font-normal lg:hidden\">\n {selectedValues?.length}\n </Badge>\n\n <div className=\"hidden space-x-1 lg:flex\">\n <Badge variant=\"secondary\" className=\"rounded-sm px-1 font-normal\">\n {query?.[0]} tot {query?.[1]}\n </Badge>\n </div>\n </>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[20rem] p-0\" align=\"start\">\n <div className=\"space-y-8 p-4\">\n <div className=\"flex items-center gap-2\">\n <Input\n type=\"number\"\n value={selectedValues?.[0] ?? undefined}\n placeholder=\"Min\"\n onChange={(e) => {\n startTransition(() => {\n const newValues = e.target.value\n ? ([Number(e.target.value), selectedValues?.[1] ?? max] as [number, number])\n : null;\n\n setSelectedValues(newValues);\n });\n }}\n onBlur={() => handleSliderChange(selectedValues)}\n />\n <Input\n type=\"number\"\n value={selectedValues?.[1] ?? undefined}\n placeholder=\"Max\"\n max={max}\n onChange={(e) => {\n startTransition(() => {\n const newValues = e.target.value\n ? ([selectedValues?.[0] ?? min, Number(e.target.value)] as [number, number])\n : null;\n\n setSelectedValues(newValues);\n });\n }}\n onBlur={() => handleSliderChange(selectedValues)}\n />\n </div>\n\n <div className=\"space-y-3\">\n <Slider\n value={selectedValues ?? [min, max]}\n onValueChange={(values: [number, number]) =>\n startTransition(() => {\n setSelectedValues(values);\n handleSliderChange(values);\n })\n }\n step={1}\n min={min}\n max={max}\n />\n\n <div className=\"flex justify-between text-muted-foreground text-xs\">\n <span>{min}</span>\n <span>{max}</span>\n </div>\n </div>\n </div>\n\n {selectedValues && selectedValues.length > 0 && (\n <div className=\"w-full space-y-2 p-1.5\">\n <Separator />\n\n <Button\n size=\"sm\"\n type=\"button\"\n variant=\"ghost\"\n onClick={() => {\n setOpen(false);\n setSelectedValues(null);\n handleSliderChange(null);\n }}\n className=\"w-full text-center\"\n >\n Clear filters\n </Button>\n </div>\n )}\n </PopoverContent>\n </Popover>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,SAAgB,kBAAkB,EAChC,OACA,QACA,UAAU;CAAE,KAAK;CAAG,KAAK;CAAK,IACL;CACzB,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CACvC,MAAM,CAAC,OAAO,YAAY,cAAc,OAAO,MAAM,OAAO,OAAO;CAEnE,MAAM,CAAC,gBAAgB,qBAAqB,SAAS,MAAM;CAE3D,MAAM,qBAAqB,sBACxB,WAAoC,SAAS,QAAQ,EAAE,iBAAiB,CAAC,EAC1E,IACD;CAED,MAAM,EAAE,KAAK,QAAQ;AAErB,QACE,qBAAC;EAAc;EAAM,cAAc;aACjC,oBAAC;GAAe;aACd,qBAAC;IAAO,MAAK;IAAS,SAAQ;IAAU,MAAK;IAAK,WAAU;;KAC1D,oBAAC,cAAW,WAAU,iBAAiB;KACtC;KACA,kBAAkB,gBAAgB,SAAS,KAC1C;MACE,oBAAC;OAAU,aAAY;OAAW,WAAU;QAAa;MACzD,oBAAC;OAAM,SAAQ;OAAY,WAAU;iBAClC,gBAAgB;QACX;MAER,oBAAC;OAAI,WAAU;iBACb,qBAAC;QAAM,SAAQ;QAAY,WAAU;;SAClC,QAAQ;SAAG;SAAM,QAAQ;;SACpB;QACJ;SACL;;KAEE;IACM,EACjB,qBAAC;GAAe,WAAU;GAAgB,OAAM;cAC9C,qBAAC;IAAI,WAAU;eACb,qBAAC;KAAI,WAAU;gBACb,oBAAC;MACC,MAAK;MACL,OAAO,iBAAiB,MAAM;MAC9B,aAAY;MACZ,WAAW,MAAM;AACf,6BAAsB;AAKpB,0BAJkB,EAAE,OAAO,QACtB,CAAC,OAAO,EAAE,OAAO,MAAM,EAAE,iBAAiB,MAAM,IAAI,GACrD,KAEwB;SAC5B;;MAEJ,cAAc,mBAAmB,eAAe;OAChD,EACF,oBAAC;MACC,MAAK;MACL,OAAO,iBAAiB,MAAM;MAC9B,aAAY;MACP;MACL,WAAW,MAAM;AACf,6BAAsB;AAKpB,0BAJkB,EAAE,OAAO,QACtB,CAAC,iBAAiB,MAAM,KAAK,OAAO,EAAE,OAAO,MAAM,CAAC,GACrD,KAEwB;SAC5B;;MAEJ,cAAc,mBAAmB,eAAe;OAChD;MACE,EAEN,qBAAC;KAAI,WAAU;gBACb,oBAAC;MACC,OAAO,kBAAkB,CAAC,KAAK,IAAI;MACnC,gBAAgB,WACd,sBAAsB;AACpB,yBAAkB,OAAO;AACzB,0BAAmB,OAAO;QAC1B;MAEJ,MAAM;MACD;MACA;OACL,EAEF,qBAAC;MAAI,WAAU;iBACb,oBAAC,oBAAM,MAAW,EAClB,oBAAC,oBAAM,MAAW;OACd;MACF;KACF,EAEL,kBAAkB,eAAe,SAAS,KACzC,qBAAC;IAAI,WAAU;eACb,oBAAC,cAAY,EAEb,oBAAC;KACC,MAAK;KACL,MAAK;KACL,SAAQ;KACR,eAAe;AACb,cAAQ,MAAM;AACd,wBAAkB,KAAK;AACvB,yBAAmB,KAAK;;KAE1B,WAAU;eACX;MAEQ;KACL;IAEO;GACT"}
@@ -25,7 +25,7 @@ const TableHeaderRow = TableRow;
25
25
  function TableHead({ className, ...props }) {
26
26
  return /* @__PURE__ */ jsx("th", {
27
27
  "data-slot": "table-head",
28
- className: cn("text-muted-foreground bg-muted/70 h-10 whitespace-nowrap px-2 text-left align-middle font-medium", className),
28
+ className: cn("h-10 whitespace-nowrap bg-muted/70 px-2 text-left align-middle font-medium text-muted-foreground", className),
29
29
  ...props
30
30
  });
31
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"header.mjs","names":[],"sources":["../../../../src/modules/data-tables/components/header.tsx"],"sourcesContent":["import { flexRender, type Header, type Table } from \"@tanstack/react-table\";\nimport { cn } from \"@/lib/utils/cn\";\nimport { Allowed } from \"@/modules/auth/components/allowed.client\";\nimport { TableRow } from \"@/modules/data-tables/components/table\";\nimport type { TableColumnDef } from \"../lib/types\";\n\n/**\n * TableHeaderProps\n */\nexport type TableHeaderProps<TData> = {\n table: Table<TData>;\n};\n\n/**\n * DataTableHeader\n */\nexport function TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return <thead data-slot=\"table-header\" className={cn(\"[&_tr]:border-b\", className)} {...props} />;\n}\n\n/**\n * DataTableHeaderRow\n */\nexport const TableHeaderRow = TableRow;\n\n/**\n * TableHead\n */\nexport function TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"text-muted-foreground bg-muted/70 h-10 whitespace-nowrap px-2 text-left align-middle font-medium\", //[&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * DataTableHeaderCell\n */\ntype DataTableHeaderCellProps<TData> = {\n header: Header<TData, unknown>;\n};\n\nexport function TableHeaderCell<TData>({ header }: DataTableHeaderCellProps<TData>) {\n const columnDef = header.column.columnDef as TableColumnDef<TData>;\n\n const children = (\n <TableHead key={header.id}>\n {header.isPlaceholder\n ? null\n : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n );\n\n if (!columnDef.permissions) return children;\n\n return (\n <Allowed key={header.id} permission={columnDef.permissions}>\n {children}\n </Allowed>\n );\n}\n"],"mappings":";;;;;;;;;;AAgBA,SAAgB,YAAY,EAAE,WAAW,GAAG,SAAwC;AAClF,QAAO,oBAAC;EAAM,aAAU;EAAe,WAAW,GAAG,mBAAmB,UAAU;EAAE,GAAI;GAAS;;;;;AAMnG,MAAa,iBAAiB;;;;AAK9B,SAAgB,UAAU,EAAE,WAAW,GAAG,SAAqC;AAC7E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,oGACA,UACD;EACD,GAAI;GACJ;;AAWN,SAAgB,gBAAuB,EAAE,UAA2C;CAClF,MAAM,YAAY,OAAO,OAAO;CAEhC,MAAM,WACJ,oBAAC,uBACE,OAAO,gBACJ,OACA,WAAW,OAAO,OAAO,UAAU,QAAQ,OAAO,YAAY,CAAC,IAHrD,OAAO,GAIX;AAGd,KAAI,CAAC,UAAU,YAAa,QAAO;AAEnC,QACE,oBAAC;EAAwB,YAAY,UAAU;EAC5C;IADW,OAAO,GAEX"}
1
+ {"version":3,"file":"header.mjs","names":[],"sources":["../../../../src/modules/data-tables/components/header.tsx"],"sourcesContent":["import { flexRender, type Header, type Table } from \"@tanstack/react-table\";\nimport { cn } from \"@/lib/utils/cn\";\nimport { Allowed } from \"@/modules/auth/components/allowed.client\";\nimport { TableRow } from \"@/modules/data-tables/components/table\";\nimport type { TableColumnDef } from \"../lib/types\";\n\n/**\n * TableHeaderProps\n */\nexport type TableHeaderProps<TData> = {\n table: Table<TData>;\n};\n\n/**\n * DataTableHeader\n */\nexport function TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return <thead data-slot=\"table-header\" className={cn(\"[&_tr]:border-b\", className)} {...props} />;\n}\n\n/**\n * DataTableHeaderRow\n */\nexport const TableHeaderRow = TableRow;\n\n/**\n * TableHead\n */\nexport function TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"h-10 whitespace-nowrap bg-muted/70 px-2 text-left align-middle font-medium text-muted-foreground\", //[&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * DataTableHeaderCell\n */\ntype DataTableHeaderCellProps<TData> = {\n header: Header<TData, unknown>;\n};\n\nexport function TableHeaderCell<TData>({ header }: DataTableHeaderCellProps<TData>) {\n const columnDef = header.column.columnDef as TableColumnDef<TData>;\n\n const children = (\n <TableHead key={header.id}>\n {header.isPlaceholder\n ? null\n : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n );\n\n if (!columnDef.permissions) return children;\n\n return (\n <Allowed key={header.id} permission={columnDef.permissions}>\n {children}\n </Allowed>\n );\n}\n"],"mappings":";;;;;;;;;;AAgBA,SAAgB,YAAY,EAAE,WAAW,GAAG,SAAwC;AAClF,QAAO,oBAAC;EAAM,aAAU;EAAe,WAAW,GAAG,mBAAmB,UAAU;EAAE,GAAI;GAAS;;;;;AAMnG,MAAa,iBAAiB;;;;AAK9B,SAAgB,UAAU,EAAE,WAAW,GAAG,SAAqC;AAC7E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,oGACA,UACD;EACD,GAAI;GACJ;;AAWN,SAAgB,gBAAuB,EAAE,UAA2C;CAClF,MAAM,YAAY,OAAO,OAAO;CAEhC,MAAM,WACJ,oBAAC,uBACE,OAAO,gBACJ,OACA,WAAW,OAAO,OAAO,UAAU,QAAQ,OAAO,YAAY,CAAC,IAHrD,OAAO,GAIX;AAGd,KAAI,CAAC,UAAU,YAAa,QAAO;AAEnC,QACE,oBAAC;EAAwB,YAAY,UAAU;EAC5C;IADW,OAAO,GAEX"}
@@ -8,8 +8,8 @@ function TableSkeleton() {
8
8
  return /* @__PURE__ */ jsx("div", {
9
9
  className: "rounded-md border",
10
10
  children: /* @__PURE__ */ jsxs(Table, { children: [/* @__PURE__ */ jsx(TableHeader, { children: /* @__PURE__ */ jsx(TableRow, {
11
- className: "bg-muted relative",
12
- children: Array.from({ length: 15 }).map((_, index) => /* @__PURE__ */ jsx(TableHead, { children: /* @__PURE__ */ jsx(Skeleton, { className: "bg-background my-2 h-2 w-full rounded-full" }) }, index))
11
+ className: "relative bg-muted",
12
+ children: Array.from({ length: 15 }).map((_, index) => /* @__PURE__ */ jsx(TableHead, { children: /* @__PURE__ */ jsx(Skeleton, { className: "my-2 h-2 w-full rounded-full bg-background" }) }, index))
13
13
  }) }), /* @__PURE__ */ jsx(TableBody, { children: Array.from({ length: 15 }).map((_, index) => /* @__PURE__ */ jsx(TableRow, {
14
14
  className: "relative",
15
15
  children: Array.from({ length: 15 }).map((_, index) => /* @__PURE__ */ jsx(TableCell, { children: /* @__PURE__ */ jsx(Skeleton, { className: "my-2 h-2 w-full rounded-full" }) }, index))
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.mjs","names":[],"sources":["../../../../src/modules/data-tables/components/skeleton.tsx"],"sourcesContent":["import { Skeleton } from \"@/components/ui/skeleton\";\nimport { Table, TableBody, TableCell, TableRow } from \"@/modules/data-tables/components/table\";\nimport { TableHead, TableHeader } from \"./header\";\n\nexport function TableSkeleton() {\n return (\n <div className=\"rounded-md border\">\n <Table>\n <TableHeader>\n <TableRow className=\"bg-muted relative\">\n {Array.from({ length: 15 }).map((_, index) => (\n <TableHead key={index}>\n <Skeleton className=\"bg-background my-2 h-2 w-full rounded-full\" />\n </TableHead>\n ))}\n </TableRow>\n </TableHeader>\n <TableBody>\n {Array.from({ length: 15 }).map((_, index) => (\n <TableRow key={index} className=\"relative\">\n {Array.from({ length: 15 }).map((_, index) => (\n <TableCell key={index}>\n <Skeleton className=\"my-2 h-2 w-full rounded-full\" />\n </TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n );\n}\n"],"mappings":";;;;;;AAIA,SAAgB,gBAAgB;AAC9B,QACE,oBAAC;EAAI,WAAU;YACb,qBAAC,oBACC,oBAAC,yBACC,oBAAC;GAAS,WAAU;aACjB,MAAM,KAAK,EAAE,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAG,UAClC,oBAAC,uBACC,oBAAC,YAAS,WAAU,+CAA+C,IADrD,MAEJ,CACZ;IACO,GACC,EACd,oBAAC,uBACE,MAAM,KAAK,EAAE,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAG,UAClC,oBAAC;GAAqB,WAAU;aAC7B,MAAM,KAAK,EAAE,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAG,UAClC,oBAAC,uBACC,oBAAC,YAAS,WAAU,iCAAiC,IADvC,MAEJ,CACZ;KALW,MAMJ,CACX,GACQ,IACN;GACJ"}
1
+ {"version":3,"file":"skeleton.mjs","names":[],"sources":["../../../../src/modules/data-tables/components/skeleton.tsx"],"sourcesContent":["import { Skeleton } from \"@/components/ui/skeleton\";\nimport { Table, TableBody, TableCell, TableRow } from \"@/modules/data-tables/components/table\";\nimport { TableHead, TableHeader } from \"./header\";\n\nexport function TableSkeleton() {\n return (\n <div className=\"rounded-md border\">\n <Table>\n <TableHeader>\n <TableRow className=\"relative bg-muted\">\n {Array.from({ length: 15 }).map((_, index) => (\n <TableHead key={index}>\n <Skeleton className=\"my-2 h-2 w-full rounded-full bg-background\" />\n </TableHead>\n ))}\n </TableRow>\n </TableHeader>\n <TableBody>\n {Array.from({ length: 15 }).map((_, index) => (\n <TableRow key={index} className=\"relative\">\n {Array.from({ length: 15 }).map((_, index) => (\n <TableCell key={index}>\n <Skeleton className=\"my-2 h-2 w-full rounded-full\" />\n </TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n );\n}\n"],"mappings":";;;;;;AAIA,SAAgB,gBAAgB;AAC9B,QACE,oBAAC;EAAI,WAAU;YACb,qBAAC,oBACC,oBAAC,yBACC,oBAAC;GAAS,WAAU;aACjB,MAAM,KAAK,EAAE,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAG,UAClC,oBAAC,uBACC,oBAAC,YAAS,WAAU,+CAA+C,IADrD,MAEJ,CACZ;IACO,GACC,EACd,oBAAC,uBACE,MAAM,KAAK,EAAE,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAG,UAClC,oBAAC;GAAqB,WAAU;aAC7B,MAAM,KAAK,EAAE,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAG,UAClC,oBAAC,uBACC,oBAAC,YAAS,WAAU,iCAAiC,IADvC,MAEJ,CACZ;KALW,MAMJ,CACX,GACQ,IACN;GACJ"}
@@ -25,14 +25,14 @@ function TableBody({ className, ...props }) {
25
25
  function TableFooter({ className, ...props }) {
26
26
  return /* @__PURE__ */ jsx("tfoot", {
27
27
  "data-slot": "table-footer",
28
- className: cn("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0", className),
28
+ className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className),
29
29
  ...props
30
30
  });
31
31
  }
32
32
  function TableRow({ className, ...props }) {
33
33
  return /* @__PURE__ */ jsx("tr", {
34
34
  "data-slot": "table-row",
35
- className: cn("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", className),
35
+ className: cn("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", className),
36
36
  ...props
37
37
  });
38
38
  }
@@ -46,7 +46,7 @@ function TableCell({ readonly, className, ...props }) {
46
46
  function TableCaption({ className, ...props }) {
47
47
  return /* @__PURE__ */ jsx("caption", {
48
48
  "data-slot": "table-caption",
49
- className: cn("text-muted-foreground mt-4 text-sm", className),
49
+ className: cn("mt-4 text-muted-foreground text-sm", className),
50
50
  ...props
51
51
  });
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"table.mjs","names":[],"sources":["../../../../src/modules/data-tables/components/table.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\n\nimport { cn } from \"@/lib/utils/cn\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div data-slot=\"table-container\" className=\"relative w-full overflow-x-auto\">\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\", className)}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCell({\n readonly,\n className,\n ...props\n}: React.ComponentProps<\"td\"> & { readonly?: boolean }) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"whitespace-nowrap p-2 align-middle\", //[&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\n readonly && \"bg-muted/50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCaption({ className, ...props }: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"text-muted-foreground mt-4 text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport { Table, TableBody, TableCaption, TableCell, TableFooter, TableRow };\n"],"mappings":";;;;;;AAMA,SAAS,MAAM,EAAE,WAAW,GAAG,SAAwC;AACrE,QACE,oBAAC;EAAI,aAAU;EAAkB,WAAU;YACzC,oBAAC;GACC,aAAU;GACV,WAAW,GAAG,iCAAiC,UAAU;GACzD,GAAI;IACJ;GACE;;AAIV,SAAS,UAAU,EAAE,WAAW,GAAG,SAAwC;AACzE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,8BAA8B,UAAU;EACtD,GAAI;GACJ;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAwC;AAC3E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,2DAA2D,UAAU;EACnF,GAAI;GACJ;;AAIN,SAAS,SAAS,EAAE,WAAW,GAAG,SAAqC;AACrE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,+EACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,UAAU,EACjB,UACA,WACA,GAAG,SACmD;AACtD,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,sCACA,YAAY,eACZ,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,aAAa,EAAE,WAAW,GAAG,SAA0C;AAC9E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,sCAAsC,UAAU;EAC9D,GAAI;GACJ"}
1
+ {"version":3,"file":"table.mjs","names":[],"sources":["../../../../src/modules/data-tables/components/table.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\n\nimport { cn } from \"@/lib/utils/cn\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div data-slot=\"table-container\" className=\"relative w-full overflow-x-auto\">\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\", className)}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCell({\n readonly,\n className,\n ...props\n}: React.ComponentProps<\"td\"> & { readonly?: boolean }) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"whitespace-nowrap p-2 align-middle\", //[&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\n readonly && \"bg-muted/50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCaption({ className, ...props }: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"mt-4 text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport { Table, TableBody, TableCaption, TableCell, TableFooter, TableRow };\n"],"mappings":";;;;;;AAMA,SAAS,MAAM,EAAE,WAAW,GAAG,SAAwC;AACrE,QACE,oBAAC;EAAI,aAAU;EAAkB,WAAU;YACzC,oBAAC;GACC,aAAU;GACV,WAAW,GAAG,iCAAiC,UAAU;GACzD,GAAI;IACJ;GACE;;AAIV,SAAS,UAAU,EAAE,WAAW,GAAG,SAAwC;AACzE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,8BAA8B,UAAU;EACtD,GAAI;GACJ;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAwC;AAC3E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,2DAA2D,UAAU;EACnF,GAAI;GACJ;;AAIN,SAAS,SAAS,EAAE,WAAW,GAAG,SAAqC;AACrE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,+EACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,UAAU,EACjB,UACA,WACA,GAAG,SACmD;AACtD,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,sCACA,YAAY,eACZ,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,aAAa,EAAE,WAAW,GAAG,SAA0C;AAC9E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,sCAAsC,UAAU;EAC9D,GAAI;GACJ"}
@@ -5,7 +5,7 @@ import { jsx } from "react/jsx-runtime";
5
5
  function TableToolbar({ children, className, ...props }) {
6
6
  return /* @__PURE__ */ jsx("div", {
7
7
  ...props,
8
- className: cn("flex max-w-full justify-between gap-5 overflow-x-auto p-1", className),
8
+ className: cn("flex max-w-full justify-between gap-5 overflow-x-auto py-1", className),
9
9
  children
10
10
  });
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.mjs","names":[],"sources":["../../../../src/modules/data-tables/components/toolbar.tsx"],"sourcesContent":["import type { HTMLAttributes } from \"react\";\nimport { cn } from \"@/lib/utils/cn\";\n\ntype TableToolbarProps = HTMLAttributes<HTMLDivElement> & {\n children: React.ReactNode;\n};\n\nexport function TableToolbar({ children, className, ...props }: TableToolbarProps) {\n return (\n <div\n {...props}\n className={cn(\"flex max-w-full justify-between gap-5 overflow-x-auto p-1\", className)}\n >\n {children}\n </div>\n );\n}\n\ntype TableToolbarListProps = HTMLAttributes<HTMLDivElement> & {\n children: React.ReactNode;\n};\n\nexport function TableToolbarList({ children, className, ...props }: TableToolbarListProps) {\n return (\n <div {...props} className={cn(\"flex flex-row gap-5\", className)}>\n {children}\n </div>\n );\n}\n"],"mappings":";;;;AAOA,SAAgB,aAAa,EAAE,UAAU,WAAW,GAAG,SAA4B;AACjF,QACE,oBAAC;EACC,GAAI;EACJ,WAAW,GAAG,6DAA6D,UAAU;EAEpF;GACG;;AAQV,SAAgB,iBAAiB,EAAE,UAAU,WAAW,GAAG,SAAgC;AACzF,QACE,oBAAC;EAAI,GAAI;EAAO,WAAW,GAAG,uBAAuB,UAAU;EAC5D;GACG"}
1
+ {"version":3,"file":"toolbar.mjs","names":[],"sources":["../../../../src/modules/data-tables/components/toolbar.tsx"],"sourcesContent":["import type { HTMLAttributes } from \"react\";\nimport { cn } from \"@/lib/utils/cn\";\n\ntype TableToolbarProps = HTMLAttributes<HTMLDivElement> & {\n children: React.ReactNode;\n};\n\nexport function TableToolbar({ children, className, ...props }: TableToolbarProps) {\n return (\n <div\n {...props}\n className={cn(\"flex max-w-full justify-between gap-5 overflow-x-auto py-1\", className)}\n >\n {children}\n </div>\n );\n}\n\ntype TableToolbarListProps = HTMLAttributes<HTMLDivElement> & {\n children: React.ReactNode;\n};\n\nexport function TableToolbarList({ children, className, ...props }: TableToolbarListProps) {\n return (\n <div {...props} className={cn(\"flex flex-row gap-5\", className)}>\n {children}\n </div>\n );\n}\n"],"mappings":";;;;AAOA,SAAgB,aAAa,EAAE,UAAU,WAAW,GAAG,SAA4B;AACjF,QACE,oBAAC;EACC,GAAI;EACJ,WAAW,GAAG,8DAA8D,UAAU;EAErF;GACG;;AAQV,SAAgB,iBAAiB,EAAE,UAAU,WAAW,GAAG,SAAgC;AACzF,QACE,oBAAC;EAAI,GAAI;EAAO,WAAW,GAAG,uBAAuB,UAAU;EAC5D;GACG"}
@@ -21,7 +21,7 @@ function PaginationTableFooter({ table }) {
21
21
  onClick: () => table.resetRowSelection(),
22
22
  children: /* @__PURE__ */ jsx(XIcon, { className: "h-2 w-2" })
23
23
  }), /* @__PURE__ */ jsxs("div", {
24
- className: "text-muted-foreground flex-1 text-sm",
24
+ className: "flex-1 text-muted-foreground text-sm",
25
25
  children: [
26
26
  selected ?? table.getFilteredSelectedRowModel().rows.length,
27
27
  " of",
@@ -36,7 +36,7 @@ function PaginationTableFooter({ table }) {
36
36
  /* @__PURE__ */ jsxs("div", {
37
37
  className: "hidden items-center space-x-2 md:flex",
38
38
  children: [/* @__PURE__ */ jsx("p", {
39
- className: "text-sm font-medium",
39
+ className: "font-medium text-sm",
40
40
  children: "Rows per page"
41
41
  }), /* @__PURE__ */ jsxs(Select, {
42
42
  value: `${table.getState().pagination.pageSize}`,
@@ -65,7 +65,7 @@ function PaginationTableFooter({ table }) {
65
65
  })]
66
66
  }),
67
67
  /* @__PURE__ */ jsxs("div", {
68
- className: "flex items-center justify-center text-sm font-medium",
68
+ className: "flex items-center justify-center font-medium text-sm",
69
69
  children: [
70
70
  "Page ",
71
71
  table.getState().pagination.pageIndex + 1,