@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
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from "lucide-react";
4
4
  import * as React from "react";
5
- import { type DayButton, DayPicker, getDefaultClassNames } from "react-day-picker";
5
+ import { type DayButton, DayPicker, getDefaultClassNames, type Locale } from "react-day-picker";
6
6
  import { nlBE } from "react-day-picker/locale";
7
7
  import { Button, buttonVariants } from "@/components/ui/button";
8
8
  import { cn } from "@/lib/utils/cn";
@@ -26,17 +26,17 @@ function Calendar({
26
26
  <DayPicker
27
27
  showOutsideDays={showOutsideDays}
28
28
  className={cn(
29
- "bg-background group/calendar in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent p-3 [--cell-size:--spacing(8)]",
29
+ "group/calendar bg-background in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent p-2 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(7)]",
30
30
  String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
31
31
  String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
32
32
  className,
33
33
  )}
34
34
  captionLayout={captionLayout}
35
+ locale={locale}
35
36
  formatters={{
36
- formatMonthDropdown: (date) => date.toLocaleString("default", { month: "short" }),
37
+ formatMonthDropdown: (date) => date.toLocaleString(locale?.code, { month: "short" }),
37
38
  ...formatters,
38
39
  }}
39
- locale={locale}
40
40
  classNames={{
41
41
  root: cn("w-fit", defaultClassNames.root),
42
42
  months: cn("flex gap-4 flex-col md:flex-row relative", defaultClassNames.months),
@@ -64,7 +64,7 @@ function Calendar({
64
64
  defaultClassNames.dropdowns,
65
65
  ),
66
66
  dropdown_root: cn(
67
- "relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",
67
+ "relative cn-calendar-dropdown-root rounded-(--cell-radius)",
68
68
  defaultClassNames.dropdown_root,
69
69
  ),
70
70
  dropdown: cn("absolute bg-popover inset-0 opacity-0", defaultClassNames.dropdown),
@@ -72,13 +72,13 @@ function Calendar({
72
72
  "select-none font-medium",
73
73
  captionLayout === "label"
74
74
  ? "text-sm"
75
- : "rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",
75
+ : "cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5",
76
76
  defaultClassNames.caption_label,
77
77
  ),
78
78
  table: "w-full border-collapse",
79
79
  weekdays: cn("flex", defaultClassNames.weekdays),
80
80
  weekday: cn(
81
- "text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none",
81
+ "text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none",
82
82
  defaultClassNames.weekday,
83
83
  ),
84
84
  week: cn("flex w-full mt-2", defaultClassNames.week),
@@ -88,17 +88,23 @@ function Calendar({
88
88
  defaultClassNames.week_number,
89
89
  ),
90
90
  day: cn(
91
- "relative w-full h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",
91
+ "relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none",
92
92
  props.showWeekNumber
93
- ? "[&:nth-child(2)[data-selected=true]_button]:rounded-l-md"
94
- : "[&:first-child[data-selected=true]_button]:rounded-l-md",
93
+ ? "[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)"
94
+ : "[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)",
95
95
  defaultClassNames.day,
96
96
  ),
97
- range_start: cn("rounded-l-md bg-accent", defaultClassNames.range_start),
97
+ range_start: cn(
98
+ "rounded-l-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 z-0 isolate",
99
+ defaultClassNames.range_start,
100
+ ),
98
101
  range_middle: cn("rounded-none", defaultClassNames.range_middle),
99
- range_end: cn("rounded-r-md bg-accent", defaultClassNames.range_end),
102
+ range_end: cn(
103
+ "rounded-r-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:left-0 z-0 isolate",
104
+ defaultClassNames.range_end,
105
+ ),
100
106
  today: cn(
101
- "bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",
107
+ "bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none",
102
108
  defaultClassNames.today,
103
109
  ),
104
110
  outside: cn(
@@ -115,20 +121,20 @@ function Calendar({
115
121
  },
116
122
  Chevron: ({ className, orientation, ...props }) => {
117
123
  if (orientation === "left") {
118
- return <ChevronLeftIcon className={cn("size-4", className)} {...props} />;
124
+ return <ChevronLeftIcon className={cn("cn-rtl-flip size-4", className)} {...props} />;
119
125
  }
120
126
 
121
127
  if (orientation === "right") {
122
- return <ChevronRightIcon className={cn("size-4", className)} {...props} />;
128
+ return <ChevronRightIcon className={cn("cn-rtl-flip size-4", className)} {...props} />;
123
129
  }
124
130
 
125
131
  return <ChevronDownIcon className={cn("size-4", className)} {...props} />;
126
132
  },
127
- DayButton: CalendarDayButton,
133
+ DayButton: ({ ...props }) => <CalendarDayButton locale={locale} {...props} />,
128
134
  WeekNumber: ({ children, ...props }) => {
129
135
  return (
130
136
  <td {...props}>
131
- <div className="size-(--cell-size) flex items-center justify-center text-center">
137
+ <div className="flex size-(--cell-size) items-center justify-center text-center">
132
138
  {children}
133
139
  </div>
134
140
  </td>
@@ -145,8 +151,9 @@ function CalendarDayButton({
145
151
  className,
146
152
  day,
147
153
  modifiers,
154
+ locale,
148
155
  ...props
149
- }: React.ComponentProps<typeof DayButton>) {
156
+ }: React.ComponentProps<typeof DayButton> & { locale?: Partial<Locale> }) {
150
157
  const defaultClassNames = getDefaultClassNames();
151
158
 
152
159
  const ref = React.useRef<HTMLButtonElement>(null);
@@ -159,7 +166,7 @@ function CalendarDayButton({
159
166
  ref={ref}
160
167
  variant="ghost"
161
168
  size="icon"
162
- data-day={day.date.toLocaleDateString()}
169
+ data-day={day.date.toLocaleDateString(locale?.code)}
163
170
  data-selected-single={
164
171
  modifiers.selected &&
165
172
  !modifiers.range_start &&
@@ -170,7 +177,7 @@ function CalendarDayButton({
170
177
  data-range-end={modifiers.range_end}
171
178
  data-range-middle={modifiers.range_middle}
172
179
  className={cn(
173
- "data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground min-w-(--cell-size) flex aspect-square size-auto w-full flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-start=true]:rounded-l-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",
180
+ "relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 font-normal leading-none data-[range-end=true]:rounded-(--cell-radius) data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) data-[range-end=true]:bg-primary data-[range-middle=true]:bg-muted data-[range-start=true]:bg-primary data-[selected-single=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:text-foreground data-[range-start=true]:text-primary-foreground data-[selected-single=true]:text-primary-foreground group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 dark:hover:text-foreground [&>span]:text-xs [&>span]:opacity-70",
174
181
  defaultClassNames.day,
175
182
  className,
176
183
  )}
@@ -1,13 +1,17 @@
1
1
  import type * as React from "react";
2
-
3
2
  import { cn } from "@/lib/utils/cn";
4
3
 
5
- function Card({ className, ...props }: React.ComponentProps<"div">) {
4
+ function Card({
5
+ className,
6
+ size = "default",
7
+ ...props
8
+ }: React.ComponentProps<"div"> & { size?: "default" | "sm" }) {
6
9
  return (
7
10
  <div
8
11
  data-slot="card"
12
+ data-size={size}
9
13
  className={cn(
10
- "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",
14
+ "group/card flex flex-col gap-4 overflow-hidden rounded-xl bg-card py-4 text-card-foreground text-sm ring-1 ring-foreground/10 has-[>img:first-child]:pt-0 has-data-[slot=card-footer]:pb-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",
11
15
  className,
12
16
  )}
13
17
  {...props}
@@ -19,7 +23,10 @@ function CardHeader({ className, ...props }: React.ComponentProps<"div">) {
19
23
  return (
20
24
  <div
21
25
  data-slot="card-header"
22
- className={cn("flex flex-col gap-1.5 px-6", className)}
26
+ className={cn(
27
+ "group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] group-data-[size=sm]/card:px-3 [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3",
28
+ className,
29
+ )}
23
30
  {...props}
24
31
  />
25
32
  );
@@ -29,7 +36,10 @@ function CardTitle({ className, ...props }: React.ComponentProps<"div">) {
29
36
  return (
30
37
  <div
31
38
  data-slot="card-title"
32
- className={cn("font-semibold leading-none", className)}
39
+ className={cn(
40
+ "font-medium text-base leading-snug group-data-[size=sm]/card:text-sm",
41
+ className,
42
+ )}
33
43
  {...props}
34
44
  />
35
45
  );
@@ -45,14 +55,37 @@ function CardDescription({ className, ...props }: React.ComponentProps<"div">) {
45
55
  );
46
56
  }
47
57
 
58
+ function CardAction({ className, ...props }: React.ComponentProps<"div">) {
59
+ return (
60
+ <div
61
+ data-slot="card-action"
62
+ className={cn("col-start-2 row-span-2 row-start-1 self-start justify-self-end", className)}
63
+ {...props}
64
+ />
65
+ );
66
+ }
67
+
48
68
  function CardContent({ className, ...props }: React.ComponentProps<"div">) {
49
- return <div data-slot="card-content" className={cn("px-6", className)} {...props} />;
69
+ return (
70
+ <div
71
+ data-slot="card-content"
72
+ className={cn("px-4 group-data-[size=sm]/card:px-3", className)}
73
+ {...props}
74
+ />
75
+ );
50
76
  }
51
77
 
52
78
  function CardFooter({ className, ...props }: React.ComponentProps<"div">) {
53
79
  return (
54
- <div data-slot="card-footer" className={cn("flex items-center px-6", className)} {...props} />
80
+ <div
81
+ data-slot="card-footer"
82
+ className={cn(
83
+ "flex items-center rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/card:p-3",
84
+ className,
85
+ )}
86
+ {...props}
87
+ />
55
88
  );
56
89
  }
57
90
 
58
- export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
91
+ export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent };
@@ -1,9 +1,8 @@
1
1
  "use client";
2
2
 
3
3
  import useEmblaCarousel, { type UseEmblaCarouselType } from "embla-carousel-react";
4
- import { ArrowLeft, ArrowRight } from "lucide-react";
4
+ import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react";
5
5
  import * as React from "react";
6
-
7
6
  import { Button } from "@/components/ui/button";
8
7
  import { cn } from "@/lib/utils/cn";
9
8
 
@@ -165,7 +164,7 @@ function CarouselItem({ className, ...props }: React.ComponentProps<"div">) {
165
164
  function CarouselPrevious({
166
165
  className,
167
166
  variant = "outline",
168
- size = "icon",
167
+ size = "icon-sm",
169
168
  ...props
170
169
  }: React.ComponentProps<typeof Button>) {
171
170
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
@@ -176,9 +175,9 @@ function CarouselPrevious({
176
175
  variant={variant}
177
176
  size={size}
178
177
  className={cn(
179
- "absolute size-8 rounded-full",
178
+ "absolute touch-manipulation rounded-full",
180
179
  orientation === "horizontal"
181
- ? "-left-12 top-1/2 -translate-y-1/2"
180
+ ? "top-1/2 -left-12 -translate-y-1/2"
182
181
  : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
183
182
  className,
184
183
  )}
@@ -186,7 +185,7 @@ function CarouselPrevious({
186
185
  onClick={scrollPrev}
187
186
  {...props}
188
187
  >
189
- <ArrowLeft />
188
+ <ChevronLeftIcon className="cn-rtl-flip" />
190
189
  <span className="sr-only">Previous slide</span>
191
190
  </Button>
192
191
  );
@@ -195,7 +194,7 @@ function CarouselPrevious({
195
194
  function CarouselNext({
196
195
  className,
197
196
  variant = "outline",
198
- size = "icon",
197
+ size = "icon-sm",
199
198
  ...props
200
199
  }: React.ComponentProps<typeof Button>) {
201
200
  const { orientation, scrollNext, canScrollNext } = useCarousel();
@@ -206,9 +205,9 @@ function CarouselNext({
206
205
  variant={variant}
207
206
  size={size}
208
207
  className={cn(
209
- "absolute size-8 rounded-full",
208
+ "absolute touch-manipulation rounded-full",
210
209
  orientation === "horizontal"
211
- ? "-right-12 top-1/2 -translate-y-1/2"
210
+ ? "top-1/2 -right-12 -translate-y-1/2"
212
211
  : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
213
212
  className,
214
213
  )}
@@ -216,17 +215,18 @@ function CarouselNext({
216
215
  onClick={scrollNext}
217
216
  {...props}
218
217
  >
219
- <ArrowRight />
218
+ <ChevronRightIcon className="cn-rtl-flip" />
220
219
  <span className="sr-only">Next slide</span>
221
220
  </Button>
222
221
  );
223
222
  }
224
223
 
225
224
  export {
225
+ type CarouselApi,
226
226
  Carousel,
227
227
  CarouselContent,
228
228
  CarouselItem,
229
- CarouselNext,
230
229
  CarouselPrevious,
231
- type CarouselApi,
230
+ CarouselNext,
231
+ useCarousel,
232
232
  };
@@ -2,7 +2,6 @@
2
2
 
3
3
  import * as React from "react";
4
4
  import * as RechartsPrimitive from "recharts";
5
-
6
5
  import { cn } from "@/lib/utils/cn";
7
6
 
8
7
  // Format: { THEME_NAME: CSS_SELECTOR }
@@ -53,7 +52,7 @@ function ChartContainer({
53
52
  data-slot="chart"
54
53
  data-chart={chartId}
55
54
  className={cn(
56
- "[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-surface]:outline-hidden flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-sector[stroke='#fff']]:stroke-transparent",
55
+ "flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-hidden [&_.recharts-surface]:outline-hidden",
57
56
  className,
58
57
  )}
59
58
  {...props}
@@ -74,20 +73,20 @@ const ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {
74
73
 
75
74
  return (
76
75
  <style
77
- // biome-ignore lint/security/noDangerouslySetInnerHtml: This is needed to inject dynamic CSS based on the chart config
76
+ // biome-ignore lint/security/noDangerouslySetInnerHtml: This is necessary to inject dynamic CSS based on the chart config.
78
77
  dangerouslySetInnerHTML={{
79
78
  __html: Object.entries(THEMES)
80
79
  .map(
81
80
  ([theme, prefix]) => `
82
- ${prefix} [data-chart=${id}] {
83
- ${colorConfig
84
- .map(([key, itemConfig]) => {
85
- const color =
86
- itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || itemConfig.color;
87
- return color ? ` --color-${key}: ${color};` : null;
88
- })
89
- .join("\n")}
90
- }
81
+ ${prefix} [data-chart=${id}] {
82
+ ${colorConfig
83
+ .map(([key, itemConfig]) => {
84
+ const color =
85
+ itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || itemConfig.color;
86
+ return color ? ` --color-${key}: ${color};` : null;
87
+ })
88
+ .join("\n")}
89
+ }
91
90
  `,
92
91
  )
93
92
  .join("\n"),
@@ -157,76 +156,78 @@ function ChartTooltipContent({
157
156
  return (
158
157
  <div
159
158
  className={cn(
160
- "border-border/50 bg-background grid min-w-32 items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",
159
+ "grid min-w-32 items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
161
160
  className,
162
161
  )}
163
162
  >
164
163
  {!nestLabel ? tooltipLabel : null}
165
164
  <div className="grid gap-1.5">
166
- {payload.map((item, index) => {
167
- const key = `${nameKey || item.name || item.dataKey || "value"}`;
168
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
169
- const indicatorColor = color || item.payload.fill || item.color;
170
-
171
- return (
172
- <div
173
- key={item.dataKey}
174
- className={cn(
175
- "[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",
176
- indicator === "dot" && "items-center",
177
- )}
178
- >
179
- {formatter && item?.value !== undefined && item.name ? (
180
- formatter(item.value, item.name, item, index, item.payload)
181
- ) : (
182
- <>
183
- {itemConfig?.icon ? (
184
- <itemConfig.icon />
185
- ) : (
186
- !hideIndicator && (
187
- <div
188
- className={cn(
189
- "border-(--color-border) bg-(--color-bg) shrink-0 rounded-[2px]",
190
- {
191
- "h-2.5 w-2.5": indicator === "dot",
192
- "w-1": indicator === "line",
193
- "w-0 border-[1.5px] border-dashed bg-transparent":
194
- indicator === "dashed",
195
- "my-0.5": nestLabel && indicator === "dashed",
196
- },
197
- )}
198
- style={
199
- {
200
- "--color-bg": indicatorColor,
201
- "--color-border": indicatorColor,
202
- } as React.CSSProperties
203
- }
204
- />
205
- )
206
- )}
207
- <div
208
- className={cn(
209
- "flex flex-1 justify-between leading-none",
210
- nestLabel ? "items-end" : "items-center",
165
+ {payload
166
+ .filter((item) => item.type !== "none")
167
+ .map((item, index) => {
168
+ const key = `${nameKey || item.name || item.dataKey || "value"}`;
169
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
170
+ const indicatorColor = color || item.payload.fill || item.color;
171
+
172
+ return (
173
+ <div
174
+ key={item.dataKey}
175
+ className={cn(
176
+ "flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
177
+ indicator === "dot" && "items-center",
178
+ )}
179
+ >
180
+ {formatter && item?.value !== undefined && item.name ? (
181
+ formatter(item.value, item.name, item, index, item.payload)
182
+ ) : (
183
+ <>
184
+ {itemConfig?.icon ? (
185
+ <itemConfig.icon />
186
+ ) : (
187
+ !hideIndicator && (
188
+ <div
189
+ className={cn(
190
+ "shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
191
+ {
192
+ "h-2.5 w-2.5": indicator === "dot",
193
+ "w-1": indicator === "line",
194
+ "w-0 border-[1.5px] border-dashed bg-transparent":
195
+ indicator === "dashed",
196
+ "my-0.5": nestLabel && indicator === "dashed",
197
+ },
198
+ )}
199
+ style={
200
+ {
201
+ "--color-bg": indicatorColor,
202
+ "--color-border": indicatorColor,
203
+ } as React.CSSProperties
204
+ }
205
+ />
206
+ )
211
207
  )}
212
- >
213
- <div className="grid gap-1.5">
214
- {nestLabel ? tooltipLabel : null}
215
- <span className="text-muted-foreground">
216
- {itemConfig?.label || item.name}
217
- </span>
208
+ <div
209
+ className={cn(
210
+ "flex flex-1 justify-between leading-none",
211
+ nestLabel ? "items-end" : "items-center",
212
+ )}
213
+ >
214
+ <div className="grid gap-1.5">
215
+ {nestLabel ? tooltipLabel : null}
216
+ <span className="text-muted-foreground">
217
+ {itemConfig?.label || item.name}
218
+ </span>
219
+ </div>
220
+ {item.value && (
221
+ <span className="font-medium font-mono text-foreground tabular-nums">
222
+ {item.value.toLocaleString()}
223
+ </span>
224
+ )}
218
225
  </div>
219
- {item.value && (
220
- <span className="text-foreground font-mono font-medium tabular-nums">
221
- {item.value.toLocaleString()}
222
- </span>
223
- )}
224
- </div>
225
- </>
226
- )}
227
- </div>
228
- );
229
- })}
226
+ </>
227
+ )}
228
+ </div>
229
+ );
230
+ })}
230
231
  </div>
231
232
  </div>
232
233
  );
@@ -259,36 +260,37 @@ function ChartLegendContent({
259
260
  className,
260
261
  )}
261
262
  >
262
- {payload.map((item) => {
263
- const key = `${nameKey || item.dataKey || "value"}`;
264
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
265
-
266
- return (
267
- <div
268
- key={item.value}
269
- className={cn(
270
- "[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3",
271
- )}
272
- >
273
- {itemConfig?.icon && !hideIcon ? (
274
- <itemConfig.icon />
275
- ) : (
276
- <div
277
- className="h-2 w-2 shrink-0 rounded-[2px]"
278
- style={{
279
- backgroundColor: item.color,
280
- }}
281
- />
282
- )}
283
- {itemConfig?.label}
284
- </div>
285
- );
286
- })}
263
+ {payload
264
+ .filter((item) => item.type !== "none")
265
+ .map((item) => {
266
+ const key = `${nameKey || item.dataKey || "value"}`;
267
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
268
+
269
+ return (
270
+ <div
271
+ key={item.value}
272
+ className={cn(
273
+ "flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground",
274
+ )}
275
+ >
276
+ {itemConfig?.icon && !hideIcon ? (
277
+ <itemConfig.icon />
278
+ ) : (
279
+ <div
280
+ className="h-2 w-2 shrink-0 rounded-[2px]"
281
+ style={{
282
+ backgroundColor: item.color,
283
+ }}
284
+ />
285
+ )}
286
+ {itemConfig?.label}
287
+ </div>
288
+ );
289
+ })}
287
290
  </div>
288
291
  );
289
292
  }
290
293
 
291
- // Helper to extract item config from a payload.
292
294
  function getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {
293
295
  if (typeof payload !== "object" || payload === null) {
294
296
  return undefined;
@@ -316,9 +318,9 @@ function getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key:
316
318
 
317
319
  export {
318
320
  ChartContainer,
321
+ ChartTooltip,
322
+ ChartTooltipContent,
319
323
  ChartLegend,
320
324
  ChartLegendContent,
321
325
  ChartStyle,
322
- ChartTooltip,
323
- ChartTooltipContent,
324
326
  };
@@ -0,0 +1,28 @@
1
+ "use client";
2
+
3
+ import { CheckIcon } from "lucide-react";
4
+ import { Checkbox as CheckboxPrimitive } from "radix-ui";
5
+ import type * as React from "react";
6
+ import { cn } from "@/lib/utils/cn";
7
+
8
+ function Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>) {
9
+ return (
10
+ <CheckboxPrimitive.Root
11
+ data-slot="checkbox"
12
+ className={cn(
13
+ "peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input outline-none transition-colors after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 group-has-disabled/field:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:bg-input/30 dark:data-checked:bg-primary dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",
14
+ className,
15
+ )}
16
+ {...props}
17
+ >
18
+ <CheckboxPrimitive.Indicator
19
+ data-slot="checkbox-indicator"
20
+ className="grid place-content-center text-current transition-none [&>svg]:size-3.5"
21
+ >
22
+ <CheckIcon />
23
+ </CheckboxPrimitive.Indicator>
24
+ </CheckboxPrimitive.Root>
25
+ );
26
+ }
27
+
28
+ export { Checkbox };
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
3
+ import { Collapsible as CollapsiblePrimitive } from "radix-ui";
4
4
 
5
5
  function Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {
6
6
  return <CollapsiblePrimitive.Root data-slot="collapsible" {...props} />;
@@ -18,4 +18,4 @@ function CollapsibleContent({
18
18
  return <CollapsiblePrimitive.CollapsibleContent data-slot="collapsible-content" {...props} />;
19
19
  }
20
20
 
21
- export { Collapsible, CollapsibleContent, CollapsibleTrigger };
21
+ export { Collapsible, CollapsibleTrigger, CollapsibleContent };
@@ -5,8 +5,8 @@ import { ChevronsUpDown } from "lucide-react";
5
5
  import * as React from "react";
6
6
  import { cn } from "@/lib/utils/cn";
7
7
  import { Button } from "./button";
8
- import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem } from "./command";
9
- import { Popover, PopoverContent, PopoverTrigger } from "./popover";
8
+ import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem } from "./command.client";
9
+ import { Popover, PopoverContent, PopoverTrigger } from "./popover.client";
10
10
 
11
11
  export type ComboboxDropdownItem = {
12
12
  id: string;