@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
@@ -5,7 +5,7 @@ import * as react_jsx_runtime0 from "react/jsx-runtime";
5
5
  import { ComponentProps } from "react";
6
6
 
7
7
  //#region src/modules/storage/components/upload-zone.client.d.ts
8
- type UploadZoneProps = ComponentProps<"div"> & Pick<UploadZoneContextValue, "optimistic" | "uploadClient"> & {
8
+ type UploadZoneProps = ComponentProps<"div"> & Pick<UploadZoneContextValue, "optimistic" | "uploadClient" | "disabled"> & {
9
9
  variables: Pick<UploadFileSchema, "namespace" | "parentId" | "mode" | "hidden" | "readonly">;
10
10
  uploadHooks?: UploadHooks;
11
11
  onUploadCompleted?: (node: Node) => Promise<void> | void;
@@ -18,6 +18,7 @@ declare function UploadZone({
18
18
  uploadHooks,
19
19
  onUploadCompleted,
20
20
  onUploadFailed,
21
+ disabled,
21
22
  children,
22
23
  className,
23
24
  ...props
@@ -1 +1 @@
1
- {"version":3,"file":"upload-zone.client.d.mts","names":[],"sources":["../../../../src/modules/storage/components/upload-zone.client.tsx"],"mappings":";;;;;;;KAWY,eAAA,GAAkB,cAAA,UAC5B,IAAA,CAAK,sBAAA;EACH,SAAA,EAAW,IAAA,CAAK,gBAAA;EAChB,WAAA,GAAc,WAAA;EAEd,iBAAA,IAAqB,IAAA,EAAM,IAAA,KAAS,OAAA;EACpC,cAAA,IAAkB,KAAA,cAAmB,OAAA;AAAA;AAAA,iBAGzB,UAAA,CAAA;EACd,SAAA;EACA,UAAA;EACA,YAAA;EACA,WAAA;EACA,iBAAA;EACA,cAAA;EACA,QAAA;EACA,SAAA;EAAA,GACG;AAAA,GACF,eAAA,GAAe,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"upload-zone.client.d.mts","names":[],"sources":["../../../../src/modules/storage/components/upload-zone.client.tsx"],"mappings":";;;;;;;KAWY,eAAA,GAAkB,cAAA,UAC5B,IAAA,CAAK,sBAAA;EACH,SAAA,EAAW,IAAA,CAAK,gBAAA;EAChB,WAAA,GAAc,WAAA;EAEd,iBAAA,IAAqB,IAAA,EAAM,IAAA,KAAS,OAAA;EACpC,cAAA,IAAkB,KAAA,cAAmB,OAAA;AAAA;AAAA,iBAGzB,UAAA,CAAA;EACd,SAAA;EACA,UAAA;EACA,YAAA;EACA,WAAA;EACA,iBAAA;EACA,cAAA;EACA,QAAA;EACA,QAAA;EACA,SAAA;EAAA,GACG;AAAA,GACF,eAAA,GAAe,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -9,7 +9,7 @@ import { useCallback } from "react";
9
9
  import { useDropzone } from "react-dropzone";
10
10
 
11
11
  //#region src/modules/storage/components/upload-zone.client.tsx
12
- function UploadZone({ variables, optimistic, uploadClient, uploadHooks, onUploadCompleted, onUploadFailed, children, className, ...props }) {
12
+ function UploadZone({ variables, optimistic, uploadClient, uploadHooks, onUploadCompleted, onUploadFailed, disabled = false, children, className, ...props }) {
13
13
  /**
14
14
  * Delete mutation
15
15
  */
@@ -76,7 +76,8 @@ function UploadZone({ variables, optimistic, uploadClient, uploadHooks, onUpload
76
76
  if (acceptedFiles.length === 0) return;
77
77
  await Promise.allSettled(acceptedFiles.map(onUpload));
78
78
  }, [onUpload]),
79
- noClick: true
79
+ noClick: true,
80
+ disabled
80
81
  });
81
82
  return /* @__PURE__ */ jsxs("div", {
82
83
  ...props,
@@ -84,13 +85,14 @@ function UploadZone({ variables, optimistic, uploadClient, uploadHooks, onUpload
84
85
  className: cn("relative z-0", className),
85
86
  children: [
86
87
  /* @__PURE__ */ jsx("input", { ...getInputProps() }),
87
- isDragActive && /* @__PURE__ */ jsx("div", { className: "bg-primary/20 absolute inset-0 z-10 rounded-md opacity-70 backdrop-blur-3xl" }),
88
+ isDragActive && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 z-10 rounded-md bg-primary/20 opacity-70 backdrop-blur-3xl" }),
88
89
  /* @__PURE__ */ jsx(UploadZoneContext, {
89
90
  value: {
90
91
  uploadClient,
91
92
  onUpload,
92
93
  onRemove: deleteMutation.mutateAsync,
93
- optimistic
94
+ optimistic,
95
+ disabled
94
96
  },
95
97
  children
96
98
  })
@@ -1 +1 @@
1
- {"version":3,"file":"upload-zone.client.mjs","names":[],"sources":["../../../../src/modules/storage/components/upload-zone.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { type ComponentProps, useCallback } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\nimport { toast } from \"@/components/ui/sonner.client\";\nimport { useAction } from \"@/lib/hooks/use-action\";\nimport { cn } from \"@/lib/utils/cn\";\nimport type { UploadFileRequest, UploadHooks } from \"../lib/create-upload.client\";\nimport type { FileNode, Node, UploadFileSchema } from \"../lib/validators\";\nimport { UploadZoneContext, type UploadZoneContextValue } from \"./upload-zone-context.client\";\n\nexport type UploadZoneProps = ComponentProps<\"div\"> &\n Pick<UploadZoneContextValue, \"optimistic\" | \"uploadClient\"> & {\n variables: Pick<UploadFileSchema, \"namespace\" | \"parentId\" | \"mode\" | \"hidden\" | \"readonly\">;\n uploadHooks?: UploadHooks;\n\n onUploadCompleted?: (node: Node) => Promise<void> | void;\n onUploadFailed?: (error: unknown) => Promise<void> | void;\n };\n\nexport function UploadZone({\n variables,\n optimistic,\n uploadClient,\n uploadHooks,\n onUploadCompleted,\n onUploadFailed,\n children,\n className,\n ...props\n}: UploadZoneProps) {\n /**\n * Delete mutation\n */\n const deleteMutation = useAction({\n mutationFn: async (ids: string[]) => uploadClient.deleteFiles(ids),\n onMutate: async (ids) => {\n await optimistic?.cancel?.();\n await optimistic?.remove?.(ids);\n },\n onError: async (error) => {\n console.error(\"Delete failed upload error: \", error);\n await onUploadFailed?.(error);\n },\n onSettled: () => {\n optimistic?.invalidate?.();\n },\n });\n\n /**\n * Upload mutation\n */\n const uploadMutation = useAction({\n mutationFn: async (params: UploadFileRequest) => uploadClient.upload(params, uploadHooks),\n onMutate: async (variables) => {\n // Generate a new node\n const newNode = {\n ...variables,\n type: \"file\",\n isPending: true,\n } as FileNode;\n\n await optimistic?.cancel?.();\n await optimistic?.add?.(newNode);\n },\n onSuccess: async (data) => {\n await onUploadCompleted?.(data);\n toast.success(`Succesvol geupload: ${data.name}`);\n },\n onError: async (error, variables) => {\n await onUploadFailed?.(error);\n\n console.error(\"Upload error: \", error);\n toast.error(\"Bestand uploaden mislukt\", {\n description: error instanceof Error ? error.message : undefined,\n });\n\n console.info(\"Deleting failed upload\");\n await deleteMutation.mutateAsync([variables.id]);\n },\n onSettled: () => {\n optimistic?.invalidate?.();\n },\n });\n\n /**\n * Upload file handler\n */\n const onUpload = useCallback(\n async (file: File) => {\n console.info(\"Uploading file\", file);\n const req = uploadClient.prepareUpload({ ...variables, file });\n return await uploadMutation.mutateAsync(req);\n },\n [uploadClient, variables, uploadMutation],\n );\n\n /**\n * Drop handler\n */\n const onDrop = useCallback(\n async (acceptedFiles: File[]) => {\n if (acceptedFiles.length === 0) return;\n await Promise.allSettled(acceptedFiles.map(onUpload));\n },\n [onUpload],\n );\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop, noClick: true });\n\n return (\n <div {...props} {...getRootProps()} className={cn(\"relative z-0\", className)}>\n <input {...getInputProps()} />\n\n {/* Show drag overlay when drag is active */}\n {isDragActive && (\n <div className=\"bg-primary/20 absolute inset-0 z-10 rounded-md opacity-70 backdrop-blur-3xl\" />\n )}\n\n <UploadZoneContext\n value={{\n uploadClient,\n onUpload,\n onRemove: deleteMutation.mutateAsync,\n optimistic,\n }}\n >\n {children}\n </UploadZoneContext>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;AAoBA,SAAgB,WAAW,EACzB,WACA,YACA,cACA,aACA,mBACA,gBACA,UACA,WACA,GAAG,SACe;;;;CAIlB,MAAM,iBAAiB,UAAU;EAC/B,YAAY,OAAO,QAAkB,aAAa,YAAY,IAAI;EAClE,UAAU,OAAO,QAAQ;AACvB,SAAM,YAAY,UAAU;AAC5B,SAAM,YAAY,SAAS,IAAI;;EAEjC,SAAS,OAAO,UAAU;AACxB,WAAQ,MAAM,gCAAgC,MAAM;AACpD,SAAM,iBAAiB,MAAM;;EAE/B,iBAAiB;AACf,eAAY,cAAc;;EAE7B,CAAC;;;;CAKF,MAAM,iBAAiB,UAAU;EAC/B,YAAY,OAAO,WAA8B,aAAa,OAAO,QAAQ,YAAY;EACzF,UAAU,OAAO,cAAc;GAE7B,MAAM,UAAU;IACd,GAAG;IACH,MAAM;IACN,WAAW;IACZ;AAED,SAAM,YAAY,UAAU;AAC5B,SAAM,YAAY,MAAM,QAAQ;;EAElC,WAAW,OAAO,SAAS;AACzB,SAAM,oBAAoB,KAAK;AAC/B,SAAM,QAAQ,uBAAuB,KAAK,OAAO;;EAEnD,SAAS,OAAO,OAAO,cAAc;AACnC,SAAM,iBAAiB,MAAM;AAE7B,WAAQ,MAAM,kBAAkB,MAAM;AACtC,SAAM,MAAM,4BAA4B,EACtC,aAAa,iBAAiB,QAAQ,MAAM,UAAU,QACvD,CAAC;AAEF,WAAQ,KAAK,yBAAyB;AACtC,SAAM,eAAe,YAAY,CAAC,UAAU,GAAG,CAAC;;EAElD,iBAAiB;AACf,eAAY,cAAc;;EAE7B,CAAC;;;;CAKF,MAAM,WAAW,YACf,OAAO,SAAe;AACpB,UAAQ,KAAK,kBAAkB,KAAK;EACpC,MAAM,MAAM,aAAa,cAAc;GAAE,GAAG;GAAW;GAAM,CAAC;AAC9D,SAAO,MAAM,eAAe,YAAY,IAAI;IAE9C;EAAC;EAAc;EAAW;EAAe,CAC1C;CAaD,MAAM,EAAE,cAAc,eAAe,iBAAiB,YAAY;EAAE,QARrD,YACb,OAAO,kBAA0B;AAC/B,OAAI,cAAc,WAAW,EAAG;AAChC,SAAM,QAAQ,WAAW,cAAc,IAAI,SAAS,CAAC;KAEvD,CAAC,SAAS,CACX;EAE2E,SAAS;EAAM,CAAC;AAE5F,QACE,qBAAC;EAAI,GAAI;EAAO,GAAI,cAAc;EAAE,WAAW,GAAG,gBAAgB,UAAU;;GAC1E,oBAAC,WAAM,GAAI,eAAe,GAAI;GAG7B,gBACC,oBAAC,SAAI,WAAU,gFAAgF;GAGjG,oBAAC;IACC,OAAO;KACL;KACA;KACA,UAAU,eAAe;KACzB;KACD;IAEA;KACiB;;GAChB"}
1
+ {"version":3,"file":"upload-zone.client.mjs","names":[],"sources":["../../../../src/modules/storage/components/upload-zone.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { type ComponentProps, useCallback } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\nimport { toast } from \"@/components/ui/sonner.client\";\nimport { useAction } from \"@/lib/hooks/use-action\";\nimport { cn } from \"@/lib/utils/cn\";\nimport type { UploadFileRequest, UploadHooks } from \"../lib/create-upload.client\";\nimport type { FileNode, Node, UploadFileSchema } from \"../lib/validators\";\nimport { UploadZoneContext, type UploadZoneContextValue } from \"./upload-zone-context.client\";\n\nexport type UploadZoneProps = ComponentProps<\"div\"> &\n Pick<UploadZoneContextValue, \"optimistic\" | \"uploadClient\" | \"disabled\"> & {\n variables: Pick<UploadFileSchema, \"namespace\" | \"parentId\" | \"mode\" | \"hidden\" | \"readonly\">;\n uploadHooks?: UploadHooks;\n\n onUploadCompleted?: (node: Node) => Promise<void> | void;\n onUploadFailed?: (error: unknown) => Promise<void> | void;\n };\n\nexport function UploadZone({\n variables,\n optimistic,\n uploadClient,\n uploadHooks,\n onUploadCompleted,\n onUploadFailed,\n disabled = false,\n children,\n className,\n ...props\n}: UploadZoneProps) {\n /**\n * Delete mutation\n */\n const deleteMutation = useAction({\n mutationFn: async (ids: string[]) => uploadClient.deleteFiles(ids),\n onMutate: async (ids) => {\n await optimistic?.cancel?.();\n await optimistic?.remove?.(ids);\n },\n onError: async (error) => {\n console.error(\"Delete failed upload error: \", error);\n await onUploadFailed?.(error);\n },\n onSettled: () => {\n optimistic?.invalidate?.();\n },\n });\n\n /**\n * Upload mutation\n */\n const uploadMutation = useAction({\n mutationFn: async (params: UploadFileRequest) => uploadClient.upload(params, uploadHooks),\n onMutate: async (variables) => {\n // Generate a new node\n const newNode = {\n ...variables,\n type: \"file\",\n isPending: true,\n } as FileNode;\n\n await optimistic?.cancel?.();\n await optimistic?.add?.(newNode);\n },\n onSuccess: async (data) => {\n await onUploadCompleted?.(data);\n toast.success(`Succesvol geupload: ${data.name}`);\n },\n onError: async (error, variables) => {\n await onUploadFailed?.(error);\n\n console.error(\"Upload error: \", error);\n toast.error(\"Bestand uploaden mislukt\", {\n description: error instanceof Error ? error.message : undefined,\n });\n\n console.info(\"Deleting failed upload\");\n await deleteMutation.mutateAsync([variables.id]);\n },\n onSettled: () => {\n optimistic?.invalidate?.();\n },\n });\n\n /**\n * Upload file handler\n */\n const onUpload = useCallback(\n async (file: File) => {\n console.info(\"Uploading file\", file);\n const req = uploadClient.prepareUpload({ ...variables, file });\n return await uploadMutation.mutateAsync(req);\n },\n [uploadClient, variables, uploadMutation],\n );\n\n /**\n * Drop handler\n */\n const onDrop = useCallback(\n async (acceptedFiles: File[]) => {\n if (acceptedFiles.length === 0) return;\n await Promise.allSettled(acceptedFiles.map(onUpload));\n },\n [onUpload],\n );\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop,\n noClick: true,\n disabled,\n });\n\n return (\n <div {...props} {...getRootProps()} className={cn(\"relative z-0\", className)}>\n <input {...getInputProps()} />\n\n {/* Show drag overlay when drag is active */}\n {isDragActive && (\n <div className=\"absolute inset-0 z-10 rounded-md bg-primary/20 opacity-70 backdrop-blur-3xl\" />\n )}\n\n <UploadZoneContext\n value={{\n uploadClient,\n onUpload,\n onRemove: deleteMutation.mutateAsync,\n optimistic,\n disabled,\n }}\n >\n {children}\n </UploadZoneContext>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;AAoBA,SAAgB,WAAW,EACzB,WACA,YACA,cACA,aACA,mBACA,gBACA,WAAW,OACX,UACA,WACA,GAAG,SACe;;;;CAIlB,MAAM,iBAAiB,UAAU;EAC/B,YAAY,OAAO,QAAkB,aAAa,YAAY,IAAI;EAClE,UAAU,OAAO,QAAQ;AACvB,SAAM,YAAY,UAAU;AAC5B,SAAM,YAAY,SAAS,IAAI;;EAEjC,SAAS,OAAO,UAAU;AACxB,WAAQ,MAAM,gCAAgC,MAAM;AACpD,SAAM,iBAAiB,MAAM;;EAE/B,iBAAiB;AACf,eAAY,cAAc;;EAE7B,CAAC;;;;CAKF,MAAM,iBAAiB,UAAU;EAC/B,YAAY,OAAO,WAA8B,aAAa,OAAO,QAAQ,YAAY;EACzF,UAAU,OAAO,cAAc;GAE7B,MAAM,UAAU;IACd,GAAG;IACH,MAAM;IACN,WAAW;IACZ;AAED,SAAM,YAAY,UAAU;AAC5B,SAAM,YAAY,MAAM,QAAQ;;EAElC,WAAW,OAAO,SAAS;AACzB,SAAM,oBAAoB,KAAK;AAC/B,SAAM,QAAQ,uBAAuB,KAAK,OAAO;;EAEnD,SAAS,OAAO,OAAO,cAAc;AACnC,SAAM,iBAAiB,MAAM;AAE7B,WAAQ,MAAM,kBAAkB,MAAM;AACtC,SAAM,MAAM,4BAA4B,EACtC,aAAa,iBAAiB,QAAQ,MAAM,UAAU,QACvD,CAAC;AAEF,WAAQ,KAAK,yBAAyB;AACtC,SAAM,eAAe,YAAY,CAAC,UAAU,GAAG,CAAC;;EAElD,iBAAiB;AACf,eAAY,cAAc;;EAE7B,CAAC;;;;CAKF,MAAM,WAAW,YACf,OAAO,SAAe;AACpB,UAAQ,KAAK,kBAAkB,KAAK;EACpC,MAAM,MAAM,aAAa,cAAc;GAAE,GAAG;GAAW;GAAM,CAAC;AAC9D,SAAO,MAAM,eAAe,YAAY,IAAI;IAE9C;EAAC;EAAc;EAAW;EAAe,CAC1C;CAaD,MAAM,EAAE,cAAc,eAAe,iBAAiB,YAAY;EAChE,QATa,YACb,OAAO,kBAA0B;AAC/B,OAAI,cAAc,WAAW,EAAG;AAChC,SAAM,QAAQ,WAAW,cAAc,IAAI,SAAS,CAAC;KAEvD,CAAC,SAAS,CACX;EAIC,SAAS;EACT;EACD,CAAC;AAEF,QACE,qBAAC;EAAI,GAAI;EAAO,GAAI,cAAc;EAAE,WAAW,GAAG,gBAAgB,UAAU;;GAC1E,oBAAC,WAAM,GAAI,eAAe,GAAI;GAG7B,gBACC,oBAAC,SAAI,WAAU,gFAAgF;GAGjG,oBAAC;IACC,OAAO;KACL;KACA;KACA,UAAU,eAAe;KACzB;KACA;KACD;IAEA;KACiB;;GAChB"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@tulip-systems/core",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
- "license": "MIT",
6
+ "license": "AGPL-3.0",
7
7
  "devDependencies": {
8
8
  "@types/pg": "^8.16.0",
9
9
  "@types/react": "19.2.14",
@@ -27,34 +27,7 @@
27
27
  "@orpc/contract": "^1.13.5",
28
28
  "@orpc/server": "^1.13.5",
29
29
  "@orpc/tanstack-query": "^1.13.5",
30
- "@radix-ui/react-accordion": "^1.2.12",
31
- "@radix-ui/react-alert-dialog": "^1.1.15",
32
- "@radix-ui/react-aspect-ratio": "^1.1.8",
33
- "@radix-ui/react-avatar": "^1.1.11",
34
- "@radix-ui/react-checkbox": "^1.3.3",
35
- "@radix-ui/react-collapsible": "^1.1.12",
36
- "@radix-ui/react-context-menu": "^2.2.16",
37
- "@radix-ui/react-dialog": "^1.1.15",
38
- "@radix-ui/react-dropdown-menu": "^2.1.16",
39
- "@radix-ui/react-hover-card": "^1.1.15",
40
- "@radix-ui/react-label": "^2.1.8",
41
- "@radix-ui/react-menubar": "^1.1.16",
42
- "@radix-ui/react-navigation-menu": "^1.2.14",
43
- "@radix-ui/react-popover": "^1.1.15",
44
- "@radix-ui/react-progress": "^1.1.8",
45
- "@radix-ui/react-radio-group": "^1.3.8",
46
- "@radix-ui/react-scroll-area": "^1.2.10",
47
- "@radix-ui/react-select": "^2.2.6",
48
- "@radix-ui/react-separator": "^1.1.8",
49
- "@radix-ui/react-slider": "^1.3.6",
50
- "@radix-ui/react-slot": "^1.2.4",
51
- "@radix-ui/react-switch": "^1.2.6",
52
- "@radix-ui/react-tabs": "^1.1.13",
53
- "@radix-ui/react-toggle": "^1.1.10",
54
- "@radix-ui/react-toggle-group": "^1.1.11",
55
- "@radix-ui/react-tooltip": "^1.2.8",
56
30
  "@react-email/components": "^1.0.8",
57
- "@tailwindcss/typography": "^0.5.19",
58
31
  "@tanstack/react-query": "^5.90.21",
59
32
  "@tanstack/react-query-devtools": "^5.91.3",
60
33
  "@tanstack/react-table": "^8.21.3",
@@ -94,6 +67,7 @@
94
67
  "lucide-react": "^0.575.0",
95
68
  "motion": "^12.34.3",
96
69
  "next-themes": "^0.4.6",
70
+ "radix-ui": "^1.4.3",
97
71
  "react-colorful": "^5.6.1",
98
72
  "react-day-picker": "9.13.2",
99
73
  "react-dropzone": "^15.0.0",
@@ -119,8 +93,9 @@
119
93
  "pg": "8.18.0",
120
94
  "react": "19.2.4",
121
95
  "react-dom": "19.2.4",
122
- "recharts": "3.7.0",
123
- "sharp": "^0.34.5"
96
+ "recharts": "2.15.4",
97
+ "sharp": "^0.34.5",
98
+ "@tailwindcss/typography": "^0.5.19"
124
99
  },
125
100
  "publishConfig": {
126
101
  "access": "public"
@@ -17,7 +17,7 @@ import {
17
17
  DropdownMenuContent,
18
18
  DropdownMenuItem,
19
19
  DropdownMenuTrigger,
20
- } from "@/components/ui/dropdown-menu";
20
+ } from "@/components/ui/dropdown-menu.client";
21
21
  import type { EditorExtensionsConfigResult } from "../lib/extensions";
22
22
  import { EditorContext } from "./editor.client";
23
23
 
@@ -104,9 +104,9 @@ export function EditorMenuNodes() {
104
104
  </DropdownMenuTrigger>
105
105
 
106
106
  <DropdownMenuContent>
107
- {filteredBlocks.map(({ label, icon: Icon, handler }, index) => (
107
+ {filteredBlocks.map(({ label, icon: Icon, handler }) => (
108
108
  <DropdownMenuItem
109
- key={index}
109
+ key={label}
110
110
  onClick={() => handler(editor)}
111
111
  className="flex items-center gap-2"
112
112
  >
@@ -13,7 +13,7 @@ import {
13
13
  import { type ComponentProps, type PropsWithChildren, useContext } from "react";
14
14
  import { Button } from "@/components/ui/button";
15
15
  import { ColorPicker } from "@/components/ui/color-picker.client";
16
- import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover";
16
+ import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover.client";
17
17
  import { cn } from "@/lib/entry";
18
18
  import { EditorContext } from "./editor.client";
19
19
  import { EditorMenuNodes } from "./menu-nodes.client";
@@ -22,7 +22,7 @@ export function EditorMenuFixed(props: React.ComponentProps<"div">) {
22
22
  return (
23
23
  <div
24
24
  {...props}
25
- className={cn("border-input bg-muted/30 z-10 overflow-auto border-b p-2", props.className)}
25
+ className={cn("z-10 overflow-auto border-input border-b bg-muted/30 p-2", props.className)}
26
26
  >
27
27
  <EditorMenuContent>
28
28
  <EditorMenuUndoRedo />
@@ -42,7 +42,7 @@ export function EditorMenuBubble(props: ComponentProps<typeof BubbleMenu>) {
42
42
  {...props}
43
43
  editor={editor}
44
44
  options={{ ...props.options, strategy: "fixed" }}
45
- className={cn("border-input bg-muted z-10 rounded-lg border p-2", props.className)}
45
+ className={cn("z-10 rounded-lg border border-input bg-muted p-2", props.className)}
46
46
  >
47
47
  <EditorMenuContent>
48
48
  <EditorMenuMarks />
@@ -25,21 +25,21 @@ export function ForgetPasswordEmail({ resetPasswordHref }: ForgetPasswordEmailPr
25
25
 
26
26
  <Tailwind>
27
27
  <Body className="mx-auto my-auto bg-white px-2 font-sans">
28
- <Container className="mx-auto my-[40px] max-w-[465px] rounded border border-solid border-[#eaeaea] p-[20px]">
28
+ <Container className="mx-auto my-[40px] max-w-[465px] rounded border border-[#eaeaea] border-solid p-[20px]">
29
29
  <Icons.logo className="w-8" />
30
30
 
31
31
  <Section className="my-[15px]">
32
- <Heading className="mx-0 my-[20px] p-0 text-[24px] font-bold text-black">
32
+ <Heading className="mx-0 my-[20px] p-0 font-bold text-[24px] text-black">
33
33
  Herstel uw wachtwoord
34
34
  </Heading>
35
35
 
36
- <Text className="text-[14px] leading-[24px] text-black">
36
+ <Text className="text-[14px] text-black leading-[24px]">
37
37
  Iemand heeft onlangs een wachtwoordwijziging voor uw account gevraagd. Als u dit
38
38
  was, kunt u hier een nieuw wachtwoord instellen:
39
39
  </Text>
40
40
 
41
41
  <Button
42
- className="rounded bg-[#000000] px-5 py-3 text-center text-[12px] font-semibold text-white no-underline"
42
+ className="rounded bg-[#000000] px-5 py-3 text-center font-semibold text-[12px] text-white no-underline"
43
43
  href={resetPasswordHref}
44
44
  >
45
45
  Reset password
@@ -47,12 +47,12 @@ export function ForgetPasswordEmail({ resetPasswordHref }: ForgetPasswordEmailPr
47
47
  </Section>
48
48
 
49
49
  <Section>
50
- <Text className="text-[12px] leading-[20px] text-black">
50
+ <Text className="text-[12px] text-black leading-[20px]">
51
51
  Als u uw wachtwoord niet wilt wijzigen of dit niet heeft gevraagd, negeer en
52
52
  verwijder dit bericht gewoon en verwijdert u.
53
53
  </Text>
54
54
 
55
- <Text className="text-[12px] leading-[20px] text-black">
55
+ <Text className="text-[12px] text-black leading-[20px]">
56
56
  Stuur deze e-mail niet door om uw account veilig te houden.
57
57
  </Text>
58
58
  </Section>
@@ -29,22 +29,38 @@ export * from "./navigation/admin-sidebar-paths.client";
29
29
  /**
30
30
  * Components UI
31
31
  */
32
+ export * from "./ui/accordion.client";
33
+ export * from "./ui/alert-dialog.client";
34
+ export * from "./ui/aspect-ratio.client";
32
35
  export * from "./ui/avatar.client";
36
+ export * from "./ui/calendar.client";
37
+ export * from "./ui/carousel.client";
33
38
  export * from "./ui/chart.client";
39
+ export * from "./ui/checkbox.client";
34
40
  export * from "./ui/collapsible.client";
35
41
  export * from "./ui/color-picker.client";
36
42
  export * from "./ui/combobox.client";
37
43
  export * from "./ui/combobox-dropdown.client";
44
+ export * from "./ui/command.client";
45
+ export * from "./ui/context-menu.client";
38
46
  export * from "./ui/date-picker.client";
39
47
  export * from "./ui/dialog.client";
40
48
  export * from "./ui/drawer.client";
49
+ export * from "./ui/dropdown-menu.client";
50
+ export * from "./ui/field.client";
41
51
  export * from "./ui/form.client";
42
52
  export * from "./ui/hover-card.client";
53
+ export * from "./ui/input-date-time.client";
54
+ export * from "./ui/input-group.client";
55
+ export * from "./ui/popover.client";
43
56
  export * from "./ui/progress.client";
44
57
  export * from "./ui/resizable.client";
45
58
  export * from "./ui/select.client";
46
59
  export * from "./ui/sheet.client";
47
60
  export * from "./ui/sidebar.client";
48
61
  export * from "./ui/sonner.client";
62
+ export * from "./ui/switch.client";
63
+ export * from "./ui/tabs.client";
64
+ export * from "./ui/toggle.client";
49
65
  export * from "./ui/toggle-group.client";
50
66
  export * from "./ui/tooltip.client";
@@ -29,34 +29,26 @@ export * from "./lists/data-stack";
29
29
  /**
30
30
  * Components UI
31
31
  */
32
- export * from "./ui/accordion";
33
32
  export * from "./ui/alert";
34
- export * from "./ui/alert-dialog";
35
- export * from "./ui/aspect-ratio";
36
33
  export * from "./ui/badge";
37
34
  export * from "./ui/breadcrumb";
38
35
  export * from "./ui/button";
39
- export * from "./ui/calendar";
36
+ export * from "./ui/button-group";
40
37
  export * from "./ui/card";
41
- export * from "./ui/carousel";
42
- export * from "./ui/checkbox";
43
- export * from "./ui/command";
44
- export * from "./ui/context-menu";
45
- export * from "./ui/dropdown-menu";
38
+ export * from "./ui/empty";
46
39
  export * from "./ui/input";
47
40
  export * from "./ui/input-date";
48
- export * from "./ui/input-date-time";
49
41
  export * from "./ui/input-time";
42
+ export * from "./ui/item";
43
+ export * from "./ui/kbd";
50
44
  export * from "./ui/label";
45
+ export * from "./ui/loader";
51
46
  export * from "./ui/navigation-menu";
52
47
  export * from "./ui/pagination";
53
- export * from "./ui/popover";
54
48
  export * from "./ui/radio-group";
55
49
  export * from "./ui/scroll-area";
56
50
  export * from "./ui/separator";
57
51
  export * from "./ui/skeleton";
58
52
  export * from "./ui/slider";
59
- export * from "./ui/switch";
60
- export * from "./ui/tabs";
53
+ export * from "./ui/spinner";
61
54
  export * from "./ui/textarea";
62
- export * from "./ui/toggle";
@@ -8,7 +8,7 @@ import {
8
8
  ContextMenuContent,
9
9
  ContextMenuItem,
10
10
  ContextMenuTrigger,
11
- } from "@/components/ui/context-menu";
11
+ } from "@/components/ui/context-menu.client";
12
12
  import { cn } from "@/lib/utils/cn";
13
13
 
14
14
  export function HeaderTopbarBackButton({
@@ -25,7 +25,7 @@ export function HeaderTopbarBackButton({
25
25
  variant="ghost"
26
26
  onClick={() => router.back()}
27
27
  className={cn(
28
- "text-muted-foreground hover:text-foreground w-content h-full rounded-none border-r p-0",
28
+ "h-full w-content rounded-none border-r border-r-border p-0 text-muted-foreground hover:text-foreground",
29
29
  className,
30
30
  )}
31
31
  >
@@ -37,7 +37,7 @@ export function BottomBarLinks({ paths, className, ...props }: BottomBarLinksPro
37
37
  return (
38
38
  <ul
39
39
  {...props}
40
- className={cn("px-content flex flex-row items-center gap-6 text-sm font-medium", className)}
40
+ className={cn("flex flex-row items-center gap-6 px-content font-medium text-sm", className)}
41
41
  >
42
42
  {paths.map(({ href, name, segment, permission }) => {
43
43
  const children = (
@@ -45,7 +45,7 @@ export function BottomBarLinks({ paths, className, ...props }: BottomBarLinksPro
45
45
  key={href}
46
46
  href={href}
47
47
  className={cn(
48
- "text-muted-foreground hover:text-foreground w-fit text-nowrap break-keep transition-colors",
48
+ "w-fit text-nowrap break-keep text-muted-foreground transition-colors hover:text-foreground",
49
49
  currentSegment === segment && "text-primary",
50
50
  )}
51
51
  >
@@ -14,7 +14,7 @@ import {
14
14
  DropdownMenuContent,
15
15
  DropdownMenuItem,
16
16
  DropdownMenuTrigger,
17
- } from "@/components/ui/dropdown-menu";
17
+ } from "@/components/ui/dropdown-menu.client";
18
18
  import { ScrollArea } from "@/components/ui/scroll-area";
19
19
 
20
20
  export type HeaderBreadcrumb = {
@@ -3,7 +3,7 @@ import { cn } from "@/lib/utils/cn";
3
3
 
4
4
  export function Header({ children, className, ...props }: ComponentProps<"header">) {
5
5
  return (
6
- <header className={cn("bg-sidebar sticky top-0 z-30 backdrop-blur-3xl", className)} {...props}>
6
+ <header className={cn("sticky top-0 z-30 bg-sidebar backdrop-blur-3xl", className)} {...props}>
7
7
  {children}
8
8
  </header>
9
9
  );
@@ -27,7 +27,7 @@ export function EmptyPage({ className, children, ...props }: ComponentProps<"div
27
27
 
28
28
  export function EmptyPageTitle({ className, children, ...props }: ComponentProps<"h2">) {
29
29
  return (
30
- <h2 className={cn("text-lg font-bold tracking-tight", className)} {...props}>
30
+ <h2 className={cn("font-bold text-lg tracking-tight", className)} {...props}>
31
31
  {children}
32
32
  </h2>
33
33
  );
@@ -35,7 +35,7 @@ export function EmptyPageTitle({ className, children, ...props }: ComponentProps
35
35
 
36
36
  export function EmptyPageDescription({ className, children, ...props }: ComponentProps<"p">) {
37
37
  return (
38
- <p className={cn("text-muted-foreground max-w-[40ch] text-sm", className)} {...props}>
38
+ <p className={cn("max-w-[40ch] text-muted-foreground text-sm", className)} {...props}>
39
39
  {children}
40
40
  </p>
41
41
  );
@@ -10,7 +10,7 @@ export function ErrorPage({ className, children, ...props }: ComponentProps<"div
10
10
  <div
11
11
  {...props}
12
12
  className={cn(
13
- "min-h-120 flex h-full w-full flex-col items-center justify-center gap-y-3 border border-dashed text-center",
13
+ "flex h-full min-h-120 w-full flex-col items-center justify-center gap-y-3 border border-dashed text-center",
14
14
  className,
15
15
  )}
16
16
  >
@@ -24,7 +24,7 @@ export function ErrorPage({ className, children, ...props }: ComponentProps<"div
24
24
  */
25
25
  export function ErrorPageCode({ className, children, ...props }: ComponentProps<"h2">) {
26
26
  return (
27
- <h2 className={cn("text-9xl font-bold leading-none", className)} {...props}>
27
+ <h2 className={cn("font-bold text-9xl leading-none", className)} {...props}>
28
28
  {children}
29
29
  </h2>
30
30
  );
@@ -55,7 +55,7 @@ export function ErrorPageIcon({
55
55
  */
56
56
  export function ErrorPageDescription({ className, children, ...props }: ComponentProps<"p">) {
57
57
  return (
58
- <p className={cn("text-2xl font-bold lg:text-3xl", className)} {...props}>
58
+ <p className={cn("font-bold text-2xl lg:text-3xl", className)} {...props}>
59
59
  {children}
60
60
  </p>
61
61
  );
@@ -8,6 +8,7 @@ import type { PropsWithChildren } from "react";
8
8
  import { Toaster } from "@/components/ui/sonner.client";
9
9
  import { IndicatorContextProvider } from "@/lib/hooks/use-indicator";
10
10
  import { getQueryClient } from "@/modules/router/lib/query-client";
11
+ import { TooltipProvider } from "../ui/tooltip.client";
11
12
 
12
13
  export function Providers({ children }: PropsWithChildren) {
13
14
  const queryClient = getQueryClient();
@@ -16,12 +17,14 @@ export function Providers({ children }: PropsWithChildren) {
16
17
  <QueryClientProvider client={queryClient}>
17
18
  <NuqsAdapter>
18
19
  <IndicatorContextProvider>
19
- <ThemeProvider attribute="class" defaultTheme="system" enableSystem>
20
- {children}
20
+ <TooltipProvider>
21
+ <ThemeProvider attribute="class" defaultTheme="system" enableSystem>
22
+ {children}
21
23
 
22
- <Toaster />
23
- <ReactQueryDevtools />
24
- </ThemeProvider>
24
+ <Toaster />
25
+ <ReactQueryDevtools />
26
+ </ThemeProvider>
27
+ </TooltipProvider>
25
28
  </IndicatorContextProvider>
26
29
  </NuqsAdapter>
27
30
  </QueryClientProvider>
@@ -1,9 +1,9 @@
1
- import { Spinner } from "../ui/spinner";
1
+ import { Loader } from "../ui/loader";
2
2
 
3
3
  export function RootLoading() {
4
4
  return (
5
5
  <div className="grid h-dvh w-full place-items-center">
6
- <Spinner />
6
+ <Loader />
7
7
  </div>
8
8
  );
9
9
  }
@@ -3,7 +3,7 @@
3
3
  import type { Route } from "next";
4
4
  import { useRouter, useSelectedLayoutSegment } from "next/navigation";
5
5
  import { useState } from "react";
6
- import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
6
+ import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs.client";
7
7
  import { Allowed } from "@/modules/auth/components/allowed.client";
8
8
  import type { Permission } from "@/modules/auth/lib/permissions";
9
9
  import { ListLayout } from "./list-layout";
@@ -31,7 +31,7 @@ export type DataListTitleProps = React.HTMLAttributes<HTMLElement>;
31
31
 
32
32
  export function DataListTitle({ children, className, ...props }: DataListTitleProps) {
33
33
  return (
34
- <dt {...props} className={cn("text-sm font-semibold leading-6", className)}>
34
+ <dt {...props} className={cn("font-semibold text-sm leading-6", className)}>
35
35
  {children}
36
36
  </dt>
37
37
  );
@@ -54,7 +54,7 @@ export type DataStackTitleProps = React.HTMLAttributes<HTMLElement>;
54
54
 
55
55
  export function DataStackTitle({ children, className, ...props }: DataStackTitleProps) {
56
56
  return (
57
- <dt {...props} className={cn("text-sm font-medium leading-none", className)}>
57
+ <dt {...props} className={cn("font-medium text-sm leading-none", className)}>
58
58
  {children}
59
59
  </dt>
60
60
  );
@@ -24,7 +24,7 @@ import {
24
24
  DropdownMenuSubContent,
25
25
  DropdownMenuSubTrigger,
26
26
  DropdownMenuTrigger,
27
- } from "@/components/ui/dropdown-menu";
27
+ } from "@/components/ui/dropdown-menu.client";
28
28
  import { cn } from "@/lib/utils/cn";
29
29
  import { useAuthClient } from "@/modules/auth/hooks/use-auth-client";
30
30
  import { useSession } from "@/modules/auth/hooks/use-session";
@@ -54,12 +54,12 @@ export function AdminSidebarHeader() {
54
54
  />
55
55
  <AvatarFallback>{sessionQuery.data?.user.name?.[0] ?? ""}</AvatarFallback>
56
56
  </Avatar>
57
- <span className="text-md text-muted-foreground font-bold">
57
+ <span className="font-bold text-md text-muted-foreground">
58
58
  {sessionQuery.data?.user.name}
59
59
  </span>
60
60
  </div>
61
61
 
62
- <ChevronsUpDownIcon className="text-muted-foreground h-4 w-4" />
62
+ <ChevronsUpDownIcon className="h-4 w-4 text-muted-foreground" />
63
63
  </Button>
64
64
  </DropdownMenuTrigger>
65
65
 
@@ -1,6 +1,6 @@
1
1
  import { Suspense } from "react";
2
2
  import { Button } from "@/components/ui/button";
3
- import { DropdownMenu, DropdownMenuTrigger } from "@/components/ui/dropdown-menu";
3
+ import { DropdownMenu, DropdownMenuTrigger } from "@/components/ui/dropdown-menu.client";
4
4
  import {
5
5
  SidebarHeader,
6
6
  SidebarMenu,
@@ -29,6 +29,7 @@ import {
29
29
 
30
30
  /**
31
31
  * AdminSidebar
32
+ * @deprecated
32
33
  */
33
34
  export function AdminSidebar({
34
35
  paths,
@@ -0,0 +1,83 @@
1
+ "use client";
2
+
3
+ import { ChevronDownIcon, ChevronUpIcon } from "lucide-react";
4
+ import { Accordion as AccordionPrimitive } from "radix-ui";
5
+ import type * as React from "react";
6
+ import { cn } from "@/lib/utils/cn";
7
+
8
+ function Accordion({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>) {
9
+ return (
10
+ <AccordionPrimitive.Root
11
+ data-slot="accordion"
12
+ className={cn("flex w-full flex-col", className)}
13
+ {...props}
14
+ />
15
+ );
16
+ }
17
+
18
+ function AccordionItem({
19
+ className,
20
+ ...props
21
+ }: React.ComponentProps<typeof AccordionPrimitive.Item>) {
22
+ return (
23
+ <AccordionPrimitive.Item
24
+ data-slot="accordion-item"
25
+ className={cn("not-last:border-b", className)}
26
+ {...props}
27
+ />
28
+ );
29
+ }
30
+
31
+ function AccordionTrigger({
32
+ className,
33
+ children,
34
+ ...props
35
+ }: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {
36
+ return (
37
+ <AccordionPrimitive.Header className="flex">
38
+ <AccordionPrimitive.Trigger
39
+ data-slot="accordion-trigger"
40
+ className={cn(
41
+ "group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left font-medium text-sm outline-none transition-all hover:underline focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground",
42
+ className,
43
+ )}
44
+ {...props}
45
+ >
46
+ {children}
47
+ <ChevronDownIcon
48
+ data-slot="accordion-trigger-icon"
49
+ className="pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden"
50
+ />
51
+ <ChevronUpIcon
52
+ data-slot="accordion-trigger-icon"
53
+ className="pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline"
54
+ />
55
+ </AccordionPrimitive.Trigger>
56
+ </AccordionPrimitive.Header>
57
+ );
58
+ }
59
+
60
+ function AccordionContent({
61
+ className,
62
+ children,
63
+ ...props
64
+ }: React.ComponentProps<typeof AccordionPrimitive.Content>) {
65
+ return (
66
+ <AccordionPrimitive.Content
67
+ data-slot="accordion-content"
68
+ className="overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"
69
+ {...props}
70
+ >
71
+ <div
72
+ className={cn(
73
+ "pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",
74
+ className,
75
+ )}
76
+ >
77
+ {children}
78
+ </div>
79
+ </AccordionPrimitive.Content>
80
+ );
81
+ }
82
+
83
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };