@tulip-systems/core 0.6.1 → 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 (523) hide show
  1. package/LICENSE +662 -0
  2. package/dist/components/client.d.mts +19 -3
  3. package/dist/components/client.mjs +18 -2
  4. package/dist/components/editor/components/menu-nodes.client.mjs +1 -1
  5. package/dist/components/editor/components/menu-nodes.client.mjs.map +1 -1
  6. package/dist/components/editor/components/menu.client.mjs +3 -3
  7. package/dist/components/editor/components/menu.client.mjs.map +1 -1
  8. package/dist/components/emails/forget-password-email.mjs +6 -6
  9. package/dist/components/emails/forget-password-email.mjs.map +1 -1
  10. package/dist/components/header/back-button.client.mjs +2 -2
  11. package/dist/components/header/back-button.client.mjs.map +1 -1
  12. package/dist/components/header/bottom-bar.client.mjs +2 -2
  13. package/dist/components/header/bottom-bar.client.mjs.map +1 -1
  14. package/dist/components/header/breadcrumbs.client.mjs +1 -1
  15. package/dist/components/header/breadcrumbs.client.mjs.map +1 -1
  16. package/dist/components/header/header.client.mjs +1 -1
  17. package/dist/components/header/header.client.mjs.map +1 -1
  18. package/dist/components/layouts/empty-page.mjs +2 -2
  19. package/dist/components/layouts/empty-page.mjs.map +1 -1
  20. package/dist/components/layouts/error-page.mjs +3 -3
  21. package/dist/components/layouts/error-page.mjs.map +1 -1
  22. package/dist/components/layouts/providers.client.d.mts.map +1 -1
  23. package/dist/components/layouts/providers.client.mjs +3 -2
  24. package/dist/components/layouts/providers.client.mjs.map +1 -1
  25. package/dist/components/layouts/root-loading.mjs +2 -2
  26. package/dist/components/layouts/root-loading.mjs.map +1 -1
  27. package/dist/components/layouts/tab-layout.mjs +1 -1
  28. package/dist/components/layouts/tab-layout.mjs.map +1 -1
  29. package/dist/components/lists/data-list.mjs +1 -1
  30. package/dist/components/lists/data-list.mjs.map +1 -1
  31. package/dist/components/lists/data-stack.mjs +1 -1
  32. package/dist/components/lists/data-stack.mjs.map +1 -1
  33. package/dist/components/navigation/admin-sidebar-header.client.mjs +3 -3
  34. package/dist/components/navigation/admin-sidebar-header.client.mjs.map +1 -1
  35. package/dist/components/navigation/admin-sidebar-skeleton.mjs +1 -1
  36. package/dist/components/navigation/admin-sidebar-skeleton.mjs.map +1 -1
  37. package/dist/components/ui/accordion.client.d.mts +26 -0
  38. package/dist/components/ui/accordion.client.d.mts.map +1 -0
  39. package/dist/components/ui/accordion.client.mjs +58 -0
  40. package/dist/components/ui/accordion.client.mjs.map +1 -0
  41. package/dist/components/ui/alert-dialog.client.d.mts +61 -0
  42. package/dist/components/ui/alert-dialog.client.d.mts.map +1 -0
  43. package/dist/components/ui/alert-dialog.client.mjs +104 -0
  44. package/dist/components/ui/alert-dialog.client.mjs.map +1 -0
  45. package/dist/components/ui/alert.d.mts +5 -1
  46. package/dist/components/ui/alert.d.mts.map +1 -1
  47. package/dist/components/ui/alert.mjs +13 -6
  48. package/dist/components/ui/alert.mjs.map +1 -1
  49. package/dist/components/ui/aspect-ratio.client.d.mts +10 -0
  50. package/dist/components/ui/aspect-ratio.client.d.mts.map +1 -0
  51. package/dist/components/ui/aspect-ratio.client.mjs +16 -0
  52. package/dist/components/ui/aspect-ratio.client.mjs.map +1 -0
  53. package/dist/components/ui/avatar.client.d.mts +21 -6
  54. package/dist/components/ui/avatar.client.d.mts.map +1 -1
  55. package/dist/components/ui/avatar.client.mjs +31 -9
  56. package/dist/components/ui/avatar.client.mjs.map +1 -1
  57. package/dist/components/ui/badge.d.mts +1 -1
  58. package/dist/components/ui/badge.d.mts.map +1 -1
  59. package/dist/components/ui/badge.mjs +11 -8
  60. package/dist/components/ui/badge.mjs.map +1 -1
  61. package/dist/components/ui/breadcrumb.d.mts +3 -1
  62. package/dist/components/ui/breadcrumb.d.mts.map +1 -1
  63. package/dist/components/ui/breadcrumb.mjs +7 -7
  64. package/dist/components/ui/breadcrumb.mjs.map +1 -1
  65. package/dist/components/ui/button-group.d.mts +29 -0
  66. package/dist/components/ui/button-group.d.mts.map +1 -0
  67. package/dist/components/ui/button-group.mjs +41 -0
  68. package/dist/components/ui/button-group.mjs.map +1 -0
  69. package/dist/components/ui/button.d.mts +1 -1
  70. package/dist/components/ui/button.d.mts.map +1 -1
  71. package/dist/components/ui/button.mjs +19 -13
  72. package/dist/components/ui/button.mjs.map +1 -1
  73. package/dist/components/ui/{calendar.d.mts → calendar.client.d.mts} +7 -4
  74. package/dist/components/ui/calendar.client.d.mts.map +1 -0
  75. package/dist/components/ui/{calendar.mjs → calendar.client.mjs} +22 -19
  76. package/dist/components/ui/calendar.client.mjs.map +1 -0
  77. package/dist/components/ui/card.d.mts +9 -2
  78. package/dist/components/ui/card.d.mts.map +1 -1
  79. package/dist/components/ui/card.mjs +15 -7
  80. package/dist/components/ui/card.mjs.map +1 -1
  81. package/dist/components/ui/{carousel.d.mts → carousel.client.d.mts} +12 -3
  82. package/dist/components/ui/carousel.client.d.mts.map +1 -0
  83. package/dist/components/ui/{carousel.mjs → carousel.client.mjs} +10 -10
  84. package/dist/components/ui/carousel.client.mjs.map +1 -0
  85. package/dist/components/ui/chart.client.d.mts.map +1 -1
  86. package/dist/components/ui/chart.client.mjs +11 -11
  87. package/dist/components/ui/chart.client.mjs.map +1 -1
  88. package/dist/components/ui/checkbox.client.d.mts +12 -0
  89. package/dist/components/ui/checkbox.client.d.mts.map +1 -0
  90. package/dist/components/ui/checkbox.client.mjs +24 -0
  91. package/dist/components/ui/checkbox.client.mjs.map +1 -0
  92. package/dist/components/ui/collapsible.client.d.mts +6 -6
  93. package/dist/components/ui/collapsible.client.d.mts.map +1 -1
  94. package/dist/components/ui/collapsible.client.mjs +6 -6
  95. package/dist/components/ui/collapsible.client.mjs.map +1 -1
  96. package/dist/components/ui/combobox-dropdown.client.d.mts +1 -1
  97. package/dist/components/ui/combobox-dropdown.client.mjs +2 -2
  98. package/dist/components/ui/combobox-dropdown.client.mjs.map +1 -1
  99. package/dist/components/ui/combobox.client.mjs +4 -4
  100. package/dist/components/ui/combobox.client.mjs.map +1 -1
  101. package/dist/components/ui/{command.d.mts → command.client.d.mts} +8 -2
  102. package/dist/components/ui/command.client.d.mts.map +1 -0
  103. package/dist/components/ui/command.client.mjs +91 -0
  104. package/dist/components/ui/command.client.mjs.map +1 -0
  105. package/dist/components/ui/context-menu.client.d.mts +86 -0
  106. package/dist/components/ui/context-menu.client.d.mts.map +1 -0
  107. package/dist/components/ui/context-menu.client.mjs +128 -0
  108. package/dist/components/ui/context-menu.client.mjs.map +1 -0
  109. package/dist/components/ui/date-picker.client.mjs +2 -2
  110. package/dist/components/ui/date-picker.client.mjs.map +1 -1
  111. package/dist/components/ui/dialog.client.d.mts +19 -12
  112. package/dist/components/ui/dialog.client.d.mts.map +1 -1
  113. package/dist/components/ui/dialog.client.mjs +40 -29
  114. package/dist/components/ui/dialog.client.mjs.map +1 -1
  115. package/dist/components/ui/drawer.client.d.mts.map +1 -1
  116. package/dist/components/ui/drawer.client.mjs +5 -5
  117. package/dist/components/ui/drawer.client.mjs.map +1 -1
  118. package/dist/components/ui/dropdown-menu.client.d.mts +85 -0
  119. package/dist/components/ui/dropdown-menu.client.d.mts.map +1 -0
  120. package/dist/components/ui/dropdown-menu.client.mjs +131 -0
  121. package/dist/components/ui/dropdown-menu.client.mjs.map +1 -0
  122. package/dist/components/ui/empty.d.mts +36 -0
  123. package/dist/components/ui/empty.d.mts.map +1 -0
  124. package/dist/components/ui/empty.mjs +62 -0
  125. package/dist/components/ui/empty.mjs.map +1 -0
  126. package/dist/components/ui/field.client.d.mts +65 -0
  127. package/dist/components/ui/field.client.d.mts.map +1 -0
  128. package/dist/components/ui/field.client.mjs +114 -0
  129. package/dist/components/ui/field.client.mjs.map +1 -0
  130. package/dist/components/ui/form.client.d.mts +3 -4
  131. package/dist/components/ui/form.client.d.mts.map +1 -1
  132. package/dist/components/ui/form.client.mjs +4 -4
  133. package/dist/components/ui/form.client.mjs.map +1 -1
  134. package/dist/components/ui/hover-card.client.d.mts +6 -6
  135. package/dist/components/ui/hover-card.client.d.mts.map +1 -1
  136. package/dist/components/ui/hover-card.client.mjs +14 -11
  137. package/dist/components/ui/hover-card.client.mjs.map +1 -1
  138. package/dist/components/ui/{input-date-time.d.mts → input-date-time.client.d.mts} +3 -3
  139. package/dist/components/ui/input-date-time.client.d.mts.map +1 -0
  140. package/dist/components/ui/{input-date-time.mjs → input-date-time.client.mjs} +4 -2
  141. package/dist/components/ui/input-date-time.client.mjs.map +1 -0
  142. package/dist/components/ui/input-date.d.mts +1 -1
  143. package/dist/components/ui/input-date.d.mts.map +1 -1
  144. package/dist/components/ui/input-date.mjs.map +1 -1
  145. package/dist/components/ui/input-group.client.d.mts +59 -0
  146. package/dist/components/ui/input-group.client.d.mts.map +1 -0
  147. package/dist/components/ui/input-group.client.mjs +106 -0
  148. package/dist/components/ui/input-group.client.mjs.map +1 -0
  149. package/dist/components/ui/input-recipient.mjs +11 -11
  150. package/dist/components/ui/input-recipient.mjs.map +1 -1
  151. package/dist/components/ui/input-time.d.mts +1 -1
  152. package/dist/components/ui/input-time.d.mts.map +1 -1
  153. package/dist/components/ui/input-time.mjs.map +1 -1
  154. package/dist/components/ui/input.d.mts.map +1 -1
  155. package/dist/components/ui/input.mjs +1 -1
  156. package/dist/components/ui/input.mjs.map +1 -1
  157. package/dist/components/ui/item.d.mts +63 -0
  158. package/dist/components/ui/item.d.mts.map +1 -0
  159. package/dist/components/ui/item.mjs +119 -0
  160. package/dist/components/ui/item.mjs.map +1 -0
  161. package/dist/components/ui/kbd.d.mts +14 -0
  162. package/dist/components/ui/kbd.d.mts.map +1 -0
  163. package/dist/components/ui/kbd.mjs +22 -0
  164. package/dist/components/ui/kbd.mjs.map +1 -0
  165. package/dist/components/ui/label.d.mts +4 -4
  166. package/dist/components/ui/label.d.mts.map +1 -1
  167. package/dist/components/ui/label.mjs +5 -5
  168. package/dist/components/ui/label.mjs.map +1 -1
  169. package/dist/components/ui/loader.d.mts +7 -0
  170. package/dist/components/ui/loader.d.mts.map +1 -0
  171. package/dist/components/ui/loader.mjs +63 -0
  172. package/dist/components/ui/loader.mjs.map +1 -0
  173. package/dist/components/ui/navigation-menu.d.mts +11 -11
  174. package/dist/components/ui/navigation-menu.d.mts.map +1 -1
  175. package/dist/components/ui/navigation-menu.mjs +18 -20
  176. package/dist/components/ui/navigation-menu.mjs.map +1 -1
  177. package/dist/components/ui/pagination.d.mts +8 -2
  178. package/dist/components/ui/pagination.d.mts.map +1 -1
  179. package/dist/components/ui/pagination.mjs +29 -21
  180. package/dist/components/ui/pagination.mjs.map +1 -1
  181. package/dist/components/ui/popover.client.d.mts +35 -0
  182. package/dist/components/ui/popover.client.d.mts.map +1 -0
  183. package/dist/components/ui/popover.client.mjs +59 -0
  184. package/dist/components/ui/popover.client.mjs.map +1 -0
  185. package/dist/components/ui/progress.client.d.mts +4 -4
  186. package/dist/components/ui/progress.client.d.mts.map +1 -1
  187. package/dist/components/ui/progress.client.mjs +7 -7
  188. package/dist/components/ui/progress.client.mjs.map +1 -1
  189. package/dist/components/ui/radio-group.d.mts +5 -5
  190. package/dist/components/ui/radio-group.d.mts.map +1 -1
  191. package/dist/components/ui/radio-group.mjs +10 -11
  192. package/dist/components/ui/radio-group.mjs.map +1 -1
  193. package/dist/components/ui/resizable.client.d.mts +3 -4
  194. package/dist/components/ui/resizable.client.d.mts.map +1 -1
  195. package/dist/components/ui/resizable.client.mjs +5 -9
  196. package/dist/components/ui/resizable.client.mjs.map +1 -1
  197. package/dist/components/ui/scroll-area.d.mts +5 -5
  198. package/dist/components/ui/scroll-area.d.mts.map +1 -1
  199. package/dist/components/ui/scroll-area.mjs +12 -11
  200. package/dist/components/ui/scroll-area.mjs.map +1 -1
  201. package/dist/components/ui/select.client.d.mts +18 -13
  202. package/dist/components/ui/select.client.d.mts.map +1 -1
  203. package/dist/components/ui/select.client.mjs +37 -32
  204. package/dist/components/ui/select.client.mjs.map +1 -1
  205. package/dist/components/ui/separator.d.mts +4 -4
  206. package/dist/components/ui/separator.d.mts.map +1 -1
  207. package/dist/components/ui/separator.mjs +6 -6
  208. package/dist/components/ui/separator.mjs.map +1 -1
  209. package/dist/components/ui/sheet.client.d.mts +9 -7
  210. package/dist/components/ui/sheet.client.d.mts.map +1 -1
  211. package/dist/components/ui/sheet.client.mjs +30 -20
  212. package/dist/components/ui/sheet.client.mjs.map +1 -1
  213. package/dist/components/ui/sidebar.client.mjs +28 -28
  214. package/dist/components/ui/sidebar.client.mjs.map +1 -1
  215. package/dist/components/ui/skeleton.mjs +1 -1
  216. package/dist/components/ui/skeleton.mjs.map +1 -1
  217. package/dist/components/ui/slider.d.mts +4 -4
  218. package/dist/components/ui/slider.d.mts.map +1 -1
  219. package/dist/components/ui/slider.mjs +11 -11
  220. package/dist/components/ui/slider.mjs.map +1 -1
  221. package/dist/components/ui/spinner.d.mts +10 -0
  222. package/dist/components/ui/spinner.d.mts.map +1 -0
  223. package/dist/components/ui/spinner.mjs +9 -55
  224. package/dist/components/ui/spinner.mjs.map +1 -1
  225. package/dist/components/ui/switch.client.d.mts +15 -0
  226. package/dist/components/ui/switch.client.d.mts.map +1 -0
  227. package/dist/components/ui/switch.client.mjs +23 -0
  228. package/dist/components/ui/switch.client.mjs.map +1 -0
  229. package/dist/components/ui/tabs.client.d.mts +31 -0
  230. package/dist/components/ui/tabs.client.d.mts.map +1 -0
  231. package/dist/components/ui/tabs.client.mjs +49 -0
  232. package/dist/components/ui/tabs.client.mjs.map +1 -0
  233. package/dist/components/ui/textarea.d.mts.map +1 -1
  234. package/dist/components/ui/textarea.mjs +1 -1
  235. package/dist/components/ui/textarea.mjs.map +1 -1
  236. package/dist/components/ui/toggle-group.client.d.mts +11 -6
  237. package/dist/components/ui/toggle-group.client.d.mts.map +1 -1
  238. package/dist/components/ui/toggle-group.client.mjs +20 -12
  239. package/dist/components/ui/toggle-group.client.mjs.map +1 -1
  240. package/dist/components/ui/{toggle.d.mts → toggle.client.d.mts} +6 -6
  241. package/dist/components/ui/toggle.client.d.mts.map +1 -0
  242. package/dist/components/ui/toggle.client.mjs +40 -0
  243. package/dist/components/ui/toggle.client.mjs.map +1 -0
  244. package/dist/components/ui/tooltip.client.d.mts +7 -7
  245. package/dist/components/ui/tooltip.client.d.mts.map +1 -1
  246. package/dist/components/ui/tooltip.client.mjs +10 -10
  247. package/dist/components/ui/tooltip.client.mjs.map +1 -1
  248. package/dist/components.d.mts +12 -20
  249. package/dist/components.mjs +12 -20
  250. package/dist/inline-edit/client.d.mts +2 -2
  251. package/dist/lib/hooks/use-indicator.d.mts.map +1 -1
  252. package/dist/lib/hooks/use-indicator.mjs.map +1 -1
  253. package/dist/modules/auth/components/auth-layout.server.mjs +2 -2
  254. package/dist/modules/auth/components/auth-layout.server.mjs.map +1 -1
  255. package/dist/modules/auth/components/create-first-user-page.client.mjs +3 -3
  256. package/dist/modules/auth/components/create-first-user-page.client.mjs.map +1 -1
  257. package/dist/modules/auth/components/forget-password-page.client.mjs +1 -1
  258. package/dist/modules/auth/components/forget-password-page.client.mjs.map +1 -1
  259. package/dist/modules/auth/components/login-page.client.mjs +5 -5
  260. package/dist/modules/auth/components/login-page.client.mjs.map +1 -1
  261. package/dist/modules/auth/components/reset-password-page.client.mjs +5 -5
  262. package/dist/modules/auth/components/reset-password-page.client.mjs.map +1 -1
  263. package/dist/modules/commands/components/alert-dialog-command.client.d.mts +9 -9
  264. package/dist/modules/commands/components/alert-dialog-command.client.d.mts.map +1 -1
  265. package/dist/modules/commands/components/alert-dialog-command.client.mjs +3 -3
  266. package/dist/modules/commands/components/alert-dialog-command.client.mjs.map +1 -1
  267. package/dist/modules/commands/components/click-command.client.mjs +2 -2
  268. package/dist/modules/commands/components/click-command.client.mjs.map +1 -1
  269. package/dist/modules/commands/components/dialog-command.client.d.mts +8 -8
  270. package/dist/modules/commands/components/dialog-command.client.d.mts.map +1 -1
  271. package/dist/modules/commands/components/dialog-command.client.mjs +2 -2
  272. package/dist/modules/commands/components/dialog-command.client.mjs.map +1 -1
  273. package/dist/modules/commands/components/dropdown-command.client.mjs +2 -2
  274. package/dist/modules/commands/components/dropdown-command.client.mjs.map +1 -1
  275. package/dist/modules/commands/components/empty-command.client.mjs +2 -2
  276. package/dist/modules/commands/components/empty-command.client.mjs.map +1 -1
  277. package/dist/modules/commands/components/form-dialog-command.client.d.mts +11 -9
  278. package/dist/modules/commands/components/form-dialog-command.client.d.mts.map +1 -1
  279. package/dist/modules/commands/components/form-dialog-command.client.mjs +8 -6
  280. package/dist/modules/commands/components/form-dialog-command.client.mjs.map +1 -1
  281. package/dist/modules/commands/menus/context-menu.client.d.mts +3 -3
  282. package/dist/modules/commands/menus/context-menu.client.d.mts.map +1 -1
  283. package/dist/modules/commands/menus/context-menu.client.mjs +1 -1
  284. package/dist/modules/commands/menus/context-menu.client.mjs.map +1 -1
  285. package/dist/modules/commands/menus/dropdown-menu.client.mjs +2 -2
  286. package/dist/modules/commands/menus/dropdown-menu.client.mjs.map +1 -1
  287. package/dist/modules/commands/menus/floating-menu.client.mjs +2 -2
  288. package/dist/modules/commands/menus/floating-menu.client.mjs.map +1 -1
  289. package/dist/modules/commands/utils/archive-command.client.mjs +1 -1
  290. package/dist/modules/commands/utils/archive-command.client.mjs.map +1 -1
  291. package/dist/modules/commands/utils/delete-command.client.mjs +1 -1
  292. package/dist/modules/commands/utils/delete-command.client.mjs.map +1 -1
  293. package/dist/modules/data-tables/components/cell/select.client.mjs +1 -1
  294. package/dist/modules/data-tables/components/cell/select.client.mjs.map +1 -1
  295. package/dist/modules/data-tables/components/column-header.mjs +5 -5
  296. package/dist/modules/data-tables/components/column-header.mjs.map +1 -1
  297. package/dist/modules/data-tables/components/filters/combobox.client.mjs +6 -6
  298. package/dist/modules/data-tables/components/filters/combobox.client.mjs.map +1 -1
  299. package/dist/modules/data-tables/components/filters/slider.client.mjs +2 -2
  300. package/dist/modules/data-tables/components/filters/slider.client.mjs.map +1 -1
  301. package/dist/modules/data-tables/components/header.mjs +1 -1
  302. package/dist/modules/data-tables/components/header.mjs.map +1 -1
  303. package/dist/modules/data-tables/components/skeleton.mjs +2 -2
  304. package/dist/modules/data-tables/components/skeleton.mjs.map +1 -1
  305. package/dist/modules/data-tables/components/table.mjs +3 -3
  306. package/dist/modules/data-tables/components/table.mjs.map +1 -1
  307. package/dist/modules/data-tables/components/toolbar.mjs +1 -1
  308. package/dist/modules/data-tables/components/toolbar.mjs.map +1 -1
  309. package/dist/modules/data-tables/strategies/pagination/components.mjs +3 -3
  310. package/dist/modules/data-tables/strategies/pagination/components.mjs.map +1 -1
  311. package/dist/modules/data-tables/tables/inline-table/components/cells/common.mjs +1 -1
  312. package/dist/modules/data-tables/tables/inline-table/components/cells/common.mjs.map +1 -1
  313. package/dist/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.mjs +1 -1
  314. package/dist/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.mjs.map +1 -1
  315. package/dist/modules/data-tables/tables/inline-table/components/cells/read-only.mjs +1 -1
  316. package/dist/modules/data-tables/tables/inline-table/components/cells/read-only.mjs.map +1 -1
  317. package/dist/modules/inline-edit/components/date-input.client.mjs +3 -3
  318. package/dist/modules/inline-edit/components/date-input.client.mjs.map +1 -1
  319. package/dist/modules/inline-edit/components/date-picker.client.mjs +2 -2
  320. package/dist/modules/inline-edit/components/date-picker.client.mjs.map +1 -1
  321. package/dist/modules/inline-edit/components/date-time.client.d.mts +1 -1
  322. package/dist/modules/inline-edit/components/date-time.client.mjs +1 -1
  323. package/dist/modules/inline-edit/components/date-time.client.mjs.map +1 -1
  324. package/dist/modules/inline-edit/components/input-toggle.client.mjs +2 -2
  325. package/dist/modules/inline-edit/components/input-toggle.client.mjs.map +1 -1
  326. package/dist/modules/inline-edit/components/input.client.mjs +3 -3
  327. package/dist/modules/inline-edit/components/input.client.mjs.map +1 -1
  328. package/dist/modules/inline-edit/components/select.client.d.mts +8 -11
  329. package/dist/modules/inline-edit/components/select.client.d.mts.map +1 -1
  330. package/dist/modules/inline-edit/components/select.client.mjs.map +1 -1
  331. package/dist/modules/inline-edit/components/switch.client.d.mts +3 -2
  332. package/dist/modules/inline-edit/components/switch.client.d.mts.map +1 -1
  333. package/dist/modules/inline-edit/components/switch.client.mjs +1 -1
  334. package/dist/modules/inline-edit/components/switch.client.mjs.map +1 -1
  335. package/dist/modules/inline-edit/components/toggle.client.mjs +1 -1
  336. package/dist/modules/inline-edit/components/toggle.client.mjs.map +1 -1
  337. package/dist/modules/inline-edit/lib/variants.d.mts +1 -1
  338. package/dist/modules/inline-edit/lib/variants.mjs +1 -1
  339. package/dist/modules/inline-edit/lib/variants.mjs.map +1 -1
  340. package/dist/modules/storage/components/dropzone.client.mjs +8 -8
  341. package/dist/modules/storage/components/dropzone.client.mjs.map +1 -1
  342. package/dist/modules/storage/components/image-grid.client.mjs +5 -5
  343. package/dist/modules/storage/components/image-grid.client.mjs.map +1 -1
  344. package/dist/modules/storage/components/upload-zone.client.mjs +1 -1
  345. package/dist/modules/storage/components/upload-zone.client.mjs.map +1 -1
  346. package/dist/modules/storage/lib/router.server.d.mts +11 -11
  347. package/dist/modules/storage/lib/service.server.d.mts +9 -9
  348. package/dist/modules/storage/lib/validators.d.mts +7 -7
  349. package/package.json +6 -31
  350. package/src/components/editor/components/menu-nodes.client.tsx +1 -1
  351. package/src/components/editor/components/menu.client.tsx +3 -3
  352. package/src/components/emails/forget-password-email.tsx +6 -6
  353. package/src/components/entry.client.ts +16 -0
  354. package/src/components/entry.ts +6 -14
  355. package/src/components/header/back-button.client.tsx +2 -2
  356. package/src/components/header/bottom-bar.client.tsx +2 -2
  357. package/src/components/header/breadcrumbs.client.tsx +1 -1
  358. package/src/components/header/header.client.tsx +1 -1
  359. package/src/components/layouts/empty-page.tsx +2 -2
  360. package/src/components/layouts/error-page.tsx +3 -3
  361. package/src/components/layouts/providers.client.tsx +8 -5
  362. package/src/components/layouts/root-loading.tsx +2 -2
  363. package/src/components/layouts/tab-layout.tsx +1 -1
  364. package/src/components/lists/data-list.tsx +1 -1
  365. package/src/components/lists/data-stack.tsx +1 -1
  366. package/src/components/navigation/admin-sidebar-header.client.tsx +3 -3
  367. package/src/components/navigation/admin-sidebar-skeleton.tsx +1 -1
  368. package/src/components/ui/accordion.client.tsx +83 -0
  369. package/src/components/ui/alert-dialog.client.tsx +181 -0
  370. package/src/components/ui/alert.tsx +15 -7
  371. package/src/components/ui/aspect-ratio.client.tsx +9 -0
  372. package/src/components/ui/avatar.client.tsx +61 -6
  373. package/src/components/ui/badge.tsx +17 -11
  374. package/src/components/ui/breadcrumb.tsx +9 -10
  375. package/src/components/ui/button-group.tsx +78 -0
  376. package/src/components/ui/button.tsx +26 -16
  377. package/src/components/ui/{calendar.tsx → calendar.client.tsx} +27 -20
  378. package/src/components/ui/card.tsx +41 -8
  379. package/src/components/ui/{carousel.tsx → carousel.client.tsx} +12 -12
  380. package/src/components/ui/chart.client.tsx +105 -103
  381. package/src/components/ui/checkbox.client.tsx +28 -0
  382. package/src/components/ui/collapsible.client.tsx +2 -2
  383. package/src/components/ui/combobox-dropdown.client.tsx +2 -2
  384. package/src/components/ui/combobox.client.tsx +6 -6
  385. package/src/components/ui/command.client.tsx +179 -0
  386. package/src/components/ui/{context-menu.tsx → context-menu.client.tsx} +86 -64
  387. package/src/components/ui/date-picker.client.tsx +2 -2
  388. package/src/components/ui/dialog.client.tsx +43 -20
  389. package/src/components/ui/drawer.client.tsx +13 -15
  390. package/src/components/ui/{dropdown-menu.tsx → dropdown-menu.client.tsx} +45 -24
  391. package/src/components/ui/empty.tsx +93 -0
  392. package/src/components/ui/field.client.tsx +224 -0
  393. package/src/components/ui/form.client.tsx +4 -4
  394. package/src/components/ui/hover-card.client.tsx +14 -13
  395. package/src/components/ui/{input-date-time.tsx → input-date-time.client.tsx} +6 -1
  396. package/src/components/ui/input-date.tsx +1 -1
  397. package/src/components/ui/input-group.client.tsx +191 -0
  398. package/src/components/ui/input-recipient.tsx +12 -12
  399. package/src/components/ui/input-time.tsx +1 -1
  400. package/src/components/ui/input.tsx +2 -4
  401. package/src/components/ui/item.tsx +182 -0
  402. package/src/components/ui/kbd.tsx +26 -0
  403. package/src/components/ui/label.tsx +2 -3
  404. package/src/components/ui/loader.tsx +51 -0
  405. package/src/components/ui/navigation-menu.tsx +14 -17
  406. package/src/components/ui/pagination.tsx +31 -26
  407. package/src/components/ui/popover.client.tsx +73 -0
  408. package/src/components/ui/progress.client.tsx +6 -4
  409. package/src/components/ui/radio-group.tsx +5 -7
  410. package/src/components/ui/resizable.client.tsx +9 -19
  411. package/src/components/ui/scroll-area.tsx +5 -7
  412. package/src/components/ui/select.client.tsx +40 -22
  413. package/src/components/ui/separator.tsx +3 -4
  414. package/src/components/ui/sheet.client.tsx +19 -18
  415. package/src/components/ui/sidebar.client.tsx +27 -27
  416. package/src/components/ui/skeleton.tsx +1 -1
  417. package/src/components/ui/slider.tsx +5 -10
  418. package/src/components/ui/spinner.tsx +12 -48
  419. package/src/components/ui/switch.client.tsx +32 -0
  420. package/src/components/ui/tabs.client.tsx +79 -0
  421. package/src/components/ui/textarea.tsx +1 -2
  422. package/src/components/ui/toggle-group.client.tsx +26 -10
  423. package/src/components/ui/toggle.client.tsx +44 -0
  424. package/src/components/ui/tooltip.client.tsx +4 -9
  425. package/src/lib/hooks/use-indicator.tsx +4 -7
  426. package/src/modules/auth/components/auth-layout.server.tsx +2 -2
  427. package/src/modules/auth/components/create-first-user-page.client.tsx +4 -4
  428. package/src/modules/auth/components/forget-password-page.client.tsx +1 -1
  429. package/src/modules/auth/components/login-page.client.tsx +6 -6
  430. package/src/modules/auth/components/reset-password-page.client.tsx +7 -7
  431. package/src/modules/commands/components/alert-dialog-command.client.tsx +20 -16
  432. package/src/modules/commands/components/click-command.client.tsx +2 -2
  433. package/src/modules/commands/components/dialog-command.client.tsx +11 -10
  434. package/src/modules/commands/components/dropdown-command.client.tsx +2 -2
  435. package/src/modules/commands/components/empty-command.client.tsx +2 -2
  436. package/src/modules/commands/components/form-dialog-command.client.tsx +29 -13
  437. package/src/modules/commands/menus/context-menu.client.tsx +3 -4
  438. package/src/modules/commands/menus/dropdown-menu.client.tsx +2 -2
  439. package/src/modules/commands/menus/floating-menu.client.tsx +2 -2
  440. package/src/modules/commands/utils/archive-command.client.tsx +1 -1
  441. package/src/modules/commands/utils/delete-command.client.tsx +1 -1
  442. package/src/modules/data-tables/components/cell/select.client.tsx +1 -1
  443. package/src/modules/data-tables/components/column-header.tsx +5 -5
  444. package/src/modules/data-tables/components/filters/combobox.client.tsx +6 -6
  445. package/src/modules/data-tables/components/filters/slider.client.tsx +2 -2
  446. package/src/modules/data-tables/components/header.tsx +1 -1
  447. package/src/modules/data-tables/components/skeleton.tsx +2 -2
  448. package/src/modules/data-tables/components/table.tsx +3 -3
  449. package/src/modules/data-tables/components/toolbar.tsx +1 -1
  450. package/src/modules/data-tables/strategies/pagination/components.tsx +3 -3
  451. package/src/modules/data-tables/tables/inline-table/components/cells/common.tsx +1 -1
  452. package/src/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.tsx +1 -1
  453. package/src/modules/data-tables/tables/inline-table/components/cells/read-only.tsx +1 -1
  454. package/src/modules/inline-edit/components/date-input.client.tsx +3 -3
  455. package/src/modules/inline-edit/components/date-picker.client.tsx +2 -2
  456. package/src/modules/inline-edit/components/date-time.client.tsx +1 -1
  457. package/src/modules/inline-edit/components/input-toggle.client.tsx +2 -2
  458. package/src/modules/inline-edit/components/input.client.tsx +3 -3
  459. package/src/modules/inline-edit/components/select.client.tsx +6 -20
  460. package/src/modules/inline-edit/components/switch.client.tsx +3 -3
  461. package/src/modules/inline-edit/components/toggle.client.tsx +1 -1
  462. package/src/modules/inline-edit/lib/variants.ts +1 -1
  463. package/src/modules/storage/components/dropzone.client.tsx +8 -8
  464. package/src/modules/storage/components/image-grid.client.tsx +5 -5
  465. package/src/modules/storage/components/upload-zone.client.tsx +1 -1
  466. package/src/styles.css +1 -3
  467. package/dist/components/ui/accordion.d.mts +0 -25
  468. package/dist/components/ui/accordion.d.mts.map +0 -1
  469. package/dist/components/ui/accordion.mjs +0 -46
  470. package/dist/components/ui/accordion.mjs.map +0 -1
  471. package/dist/components/ui/alert-dialog.d.mts +0 -43
  472. package/dist/components/ui/alert-dialog.d.mts.map +0 -1
  473. package/dist/components/ui/alert-dialog.mjs +0 -84
  474. package/dist/components/ui/alert-dialog.mjs.map +0 -1
  475. package/dist/components/ui/aspect-ratio.d.mts +0 -8
  476. package/dist/components/ui/aspect-ratio.d.mts.map +0 -1
  477. package/dist/components/ui/aspect-ratio.mjs +0 -16
  478. package/dist/components/ui/aspect-ratio.mjs.map +0 -1
  479. package/dist/components/ui/calendar.d.mts.map +0 -1
  480. package/dist/components/ui/calendar.mjs.map +0 -1
  481. package/dist/components/ui/carousel.d.mts.map +0 -1
  482. package/dist/components/ui/carousel.mjs.map +0 -1
  483. package/dist/components/ui/checkbox.d.mts +0 -12
  484. package/dist/components/ui/checkbox.d.mts.map +0 -1
  485. package/dist/components/ui/checkbox.mjs +0 -24
  486. package/dist/components/ui/checkbox.mjs.map +0 -1
  487. package/dist/components/ui/command.d.mts.map +0 -1
  488. package/dist/components/ui/command.mjs +0 -88
  489. package/dist/components/ui/command.mjs.map +0 -1
  490. package/dist/components/ui/context-menu.d.mts +0 -77
  491. package/dist/components/ui/context-menu.d.mts.map +0 -1
  492. package/dist/components/ui/context-menu.mjs +0 -125
  493. package/dist/components/ui/context-menu.mjs.map +0 -1
  494. package/dist/components/ui/dropdown-menu.d.mts +0 -78
  495. package/dist/components/ui/dropdown-menu.d.mts.map +0 -1
  496. package/dist/components/ui/dropdown-menu.mjs +0 -126
  497. package/dist/components/ui/dropdown-menu.mjs.map +0 -1
  498. package/dist/components/ui/input-date-time.d.mts.map +0 -1
  499. package/dist/components/ui/input-date-time.mjs.map +0 -1
  500. package/dist/components/ui/popover.d.mts +0 -23
  501. package/dist/components/ui/popover.d.mts.map +0 -1
  502. package/dist/components/ui/popover.mjs +0 -38
  503. package/dist/components/ui/popover.mjs.map +0 -1
  504. package/dist/components/ui/switch.d.mts +0 -12
  505. package/dist/components/ui/switch.d.mts.map +0 -1
  506. package/dist/components/ui/switch.mjs +0 -22
  507. package/dist/components/ui/switch.mjs.map +0 -1
  508. package/dist/components/ui/tabs.d.mts +0 -24
  509. package/dist/components/ui/tabs.d.mts.map +0 -1
  510. package/dist/components/ui/tabs.mjs +0 -39
  511. package/dist/components/ui/tabs.mjs.map +0 -1
  512. package/dist/components/ui/toggle.d.mts.map +0 -1
  513. package/dist/components/ui/toggle.mjs +0 -40
  514. package/dist/components/ui/toggle.mjs.map +0 -1
  515. package/src/components/ui/accordion.tsx +0 -63
  516. package/src/components/ui/alert-dialog.tsx +0 -133
  517. package/src/components/ui/aspect-ratio.tsx +0 -9
  518. package/src/components/ui/checkbox.tsx +0 -29
  519. package/src/components/ui/command.tsx +0 -154
  520. package/src/components/ui/popover.tsx +0 -42
  521. package/src/components/ui/switch.tsx +0 -28
  522. package/src/components/ui/tabs.tsx +0 -54
  523. package/src/components/ui/toggle.tsx +0 -46
@@ -0,0 +1,73 @@
1
+ "use client";
2
+
3
+ import { Popover as PopoverPrimitive } from "radix-ui";
4
+ import type * as React from "react";
5
+ import { cn } from "@/lib/utils/cn";
6
+
7
+ function Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>) {
8
+ return <PopoverPrimitive.Root data-slot="popover" {...props} />;
9
+ }
10
+
11
+ function PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {
12
+ return <PopoverPrimitive.Trigger data-slot="popover-trigger" {...props} />;
13
+ }
14
+
15
+ function PopoverContent({
16
+ className,
17
+ align = "center",
18
+ sideOffset = 4,
19
+ ...props
20
+ }: React.ComponentProps<typeof PopoverPrimitive.Content>) {
21
+ return (
22
+ <PopoverPrimitive.Portal>
23
+ <PopoverPrimitive.Content
24
+ data-slot="popover-content"
25
+ align={align}
26
+ sideOffset={sideOffset}
27
+ className={cn(
28
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 flex w-72 origin-(--radix-popover-content-transform-origin) flex-col gap-2.5 rounded-lg bg-popover p-2.5 text-popover-foreground text-sm shadow-md outline-hidden ring-1 ring-foreground/10 duration-100 data-[state=closed]:animate-out data-[state=open]:animate-in",
29
+ className,
30
+ )}
31
+ {...props}
32
+ />
33
+ </PopoverPrimitive.Portal>
34
+ );
35
+ }
36
+
37
+ function PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {
38
+ return <PopoverPrimitive.Anchor data-slot="popover-anchor" {...props} />;
39
+ }
40
+
41
+ function PopoverHeader({ className, ...props }: React.ComponentProps<"div">) {
42
+ return (
43
+ <div
44
+ data-slot="popover-header"
45
+ className={cn("flex flex-col gap-0.5 text-sm", className)}
46
+ {...props}
47
+ />
48
+ );
49
+ }
50
+
51
+ function PopoverTitle({ className, ...props }: React.ComponentProps<"h2">) {
52
+ return <div data-slot="popover-title" className={cn("font-medium", className)} {...props} />;
53
+ }
54
+
55
+ function PopoverDescription({ className, ...props }: React.ComponentProps<"p">) {
56
+ return (
57
+ <p
58
+ data-slot="popover-description"
59
+ className={cn("text-muted-foreground", className)}
60
+ {...props}
61
+ />
62
+ );
63
+ }
64
+
65
+ export {
66
+ Popover,
67
+ PopoverAnchor,
68
+ PopoverContent,
69
+ PopoverDescription,
70
+ PopoverHeader,
71
+ PopoverTitle,
72
+ PopoverTrigger,
73
+ };
@@ -1,8 +1,7 @@
1
1
  "use client";
2
2
 
3
- import * as ProgressPrimitive from "@radix-ui/react-progress";
3
+ import { Progress as ProgressPrimitive } from "radix-ui";
4
4
  import type * as React from "react";
5
-
6
5
  import { cn } from "@/lib/utils/cn";
7
6
 
8
7
  function Progress({
@@ -13,12 +12,15 @@ function Progress({
13
12
  return (
14
13
  <ProgressPrimitive.Root
15
14
  data-slot="progress"
16
- className={cn("bg-primary/20 relative h-2 w-full overflow-hidden rounded-full", className)}
15
+ className={cn(
16
+ "relative flex h-1 w-full items-center overflow-x-hidden rounded-full bg-muted",
17
+ className,
18
+ )}
17
19
  {...props}
18
20
  >
19
21
  <ProgressPrimitive.Indicator
20
22
  data-slot="progress-indicator"
21
- className="bg-primary h-full w-full flex-1 transition-all"
23
+ className="size-full flex-1 bg-primary transition-all"
22
24
  style={{ transform: `translateX(-${100 - (value || 0)}%)` }}
23
25
  />
24
26
  </ProgressPrimitive.Root>
@@ -1,9 +1,7 @@
1
1
  "use client";
2
2
 
3
- import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
4
- import { CircleIcon } from "lucide-react";
3
+ import { RadioGroup as RadioGroupPrimitive } from "radix-ui";
5
4
  import type * as React from "react";
6
-
7
5
  import { cn } from "@/lib/utils/cn";
8
6
 
9
7
  function RadioGroup({
@@ -13,7 +11,7 @@ function RadioGroup({
13
11
  return (
14
12
  <RadioGroupPrimitive.Root
15
13
  data-slot="radio-group"
16
- className={cn("grid gap-3", className)}
14
+ className={cn("grid w-full gap-2", className)}
17
15
  {...props}
18
16
  />
19
17
  );
@@ -27,16 +25,16 @@ function RadioGroupItem({
27
25
  <RadioGroupPrimitive.Item
28
26
  data-slot="radio-group-item"
29
27
  className={cn(
30
- "border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive shadow-xs aspect-square size-4 shrink-0 rounded-full border outline-none transition-[color,box-shadow] focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
28
+ "group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-input outline-none 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 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",
31
29
  className,
32
30
  )}
33
31
  {...props}
34
32
  >
35
33
  <RadioGroupPrimitive.Indicator
36
34
  data-slot="radio-group-indicator"
37
- className="relative flex items-center justify-center"
35
+ className="flex size-4 items-center justify-center"
38
36
  >
39
- <CircleIcon className="fill-primary absolute left-1/2 top-1/2 size-2 -translate-x-1/2 -translate-y-1/2" />
37
+ <span className="absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-foreground" />
40
38
  </RadioGroupPrimitive.Indicator>
41
39
  </RadioGroupPrimitive.Item>
42
40
  );
@@ -1,25 +1,19 @@
1
1
  "use client";
2
2
 
3
- import { GripVerticalIcon } from "lucide-react";
4
- import type * as React from "react";
5
3
  import * as ResizablePrimitive from "react-resizable-panels";
6
-
7
4
  import { cn } from "@/lib/utils/cn";
8
5
 
9
- function ResizablePanelGroup({
10
- className,
11
- ...props
12
- }: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) {
6
+ function ResizablePanelGroup({ className, ...props }: ResizablePrimitive.GroupProps) {
13
7
  return (
14
- <ResizablePrimitive.PanelGroup
8
+ <ResizablePrimitive.Group
15
9
  data-slot="resizable-panel-group"
16
- className={cn("flex h-full w-full data-[panel-group-direction=vertical]:flex-col", className)}
10
+ className={cn("flex h-full w-full aria-[orientation=vertical]:flex-col", className)}
17
11
  {...props}
18
12
  />
19
13
  );
20
14
  }
21
15
 
22
- function ResizablePanel({ ...props }: React.ComponentProps<typeof ResizablePrimitive.Panel>) {
16
+ function ResizablePanel({ ...props }: ResizablePrimitive.PanelProps) {
23
17
  return <ResizablePrimitive.Panel data-slot="resizable-panel" {...props} />;
24
18
  }
25
19
 
@@ -27,24 +21,20 @@ function ResizableHandle({
27
21
  withHandle,
28
22
  className,
29
23
  ...props
30
- }: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {
24
+ }: ResizablePrimitive.SeparatorProps & {
31
25
  withHandle?: boolean;
32
26
  }) {
33
27
  return (
34
- <ResizablePrimitive.PanelResizeHandle
28
+ <ResizablePrimitive.Separator
35
29
  data-slot="resizable-handle"
36
30
  className={cn(
37
- "bg-border focus-visible:ring-ring focus-visible:outline-hidden relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
31
+ "relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90",
38
32
  className,
39
33
  )}
40
34
  {...props}
41
35
  >
42
- {withHandle && (
43
- <div className="bg-border rounded-xs z-10 flex h-4 w-3 items-center justify-center border">
44
- <GripVerticalIcon className="size-2.5" />
45
- </div>
46
- )}
47
- </ResizablePrimitive.PanelResizeHandle>
36
+ {withHandle && <div className="z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border" />}
37
+ </ResizablePrimitive.Separator>
48
38
  );
49
39
  }
50
40
 
@@ -1,8 +1,7 @@
1
1
  "use client";
2
2
 
3
- import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
3
+ import { ScrollArea as ScrollAreaPrimitive } from "radix-ui";
4
4
  import type * as React from "react";
5
-
6
5
  import { cn } from "@/lib/utils/cn";
7
6
 
8
7
  function ScrollArea({
@@ -18,7 +17,7 @@ function ScrollArea({
18
17
  >
19
18
  <ScrollAreaPrimitive.Viewport
20
19
  data-slot="scroll-area-viewport"
21
- className="ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] focus-visible:outline-1 focus-visible:ring-4"
20
+ className="size-full rounded-[inherit] outline-none transition-[color,box-shadow] focus-visible:outline-1 focus-visible:ring-[3px] focus-visible:ring-ring/50"
22
21
  >
23
22
  {children}
24
23
  </ScrollAreaPrimitive.Viewport>
@@ -36,18 +35,17 @@ function ScrollBar({
36
35
  return (
37
36
  <ScrollAreaPrimitive.ScrollAreaScrollbar
38
37
  data-slot="scroll-area-scrollbar"
38
+ data-orientation={orientation}
39
39
  orientation={orientation}
40
40
  className={cn(
41
- "flex touch-none select-none p-px transition-colors",
42
- orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent",
43
- orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent",
41
+ "flex touch-none select-none p-px transition-colors data-[orientation=horizontal]:h-2.5 data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2.5 data-[orientation=horizontal]:flex-col data-[orientation=horizontal]:border-t data-[orientation=horizontal]:border-t-transparent data-[orientation=vertical]:border-l data-[orientation=vertical]:border-l-transparent",
44
42
  className,
45
43
  )}
46
44
  {...props}
47
45
  >
48
46
  <ScrollAreaPrimitive.ScrollAreaThumb
49
47
  data-slot="scroll-area-thumb"
50
- className="bg-border relative flex-1 rounded-full"
48
+ className="relative flex-1 rounded-full bg-border"
51
49
  />
52
50
  </ScrollAreaPrimitive.ScrollAreaScrollbar>
53
51
  );
@@ -1,17 +1,22 @@
1
1
  "use client";
2
2
 
3
- import * as SelectPrimitive from "@radix-ui/react-select";
4
3
  import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
4
+ import { Select as SelectPrimitive } from "radix-ui";
5
5
  import type * as React from "react";
6
-
7
6
  import { cn } from "@/lib/utils/cn";
8
7
 
9
8
  function Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>) {
10
9
  return <SelectPrimitive.Root data-slot="select" {...props} />;
11
10
  }
12
11
 
13
- function SelectGroup({ ...props }: React.ComponentProps<typeof SelectPrimitive.Group>) {
14
- return <SelectPrimitive.Group data-slot="select-group" {...props} />;
12
+ function SelectGroup({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Group>) {
13
+ return (
14
+ <SelectPrimitive.Group
15
+ data-slot="select-group"
16
+ className={cn("scroll-my-1 p-1", className)}
17
+ {...props}
18
+ />
19
+ );
15
20
  }
16
21
 
17
22
  function SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>) {
@@ -20,21 +25,25 @@ function SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.V
20
25
 
21
26
  function SelectTrigger({
22
27
  className,
28
+ size = "default",
23
29
  children,
24
30
  ...props
25
- }: React.ComponentProps<typeof SelectPrimitive.Trigger>) {
31
+ }: React.ComponentProps<typeof SelectPrimitive.Trigger> & {
32
+ size?: "sm" | "default";
33
+ }) {
26
34
  return (
27
35
  <SelectPrimitive.Trigger
28
36
  data-slot="select-trigger"
37
+ data-size={size}
29
38
  className={cn(
30
- "border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive shadow-xs flex h-9 w-fit items-center justify-between gap-2 whitespace-nowrap rounded-md border bg-transparent px-3 py-2 text-sm outline-none transition-[color,box-shadow] focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
39
+ "flex w-fit select-none items-center justify-between gap-1.5 whitespace-nowrap rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm outline-none transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-placeholder:text-muted-foreground *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 dark:hover:bg-input/50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
31
40
  className,
32
41
  )}
33
42
  {...props}
34
43
  >
35
44
  {children}
36
45
  <SelectPrimitive.Icon asChild>
37
- <ChevronDownIcon className="size-4 opacity-50" />
46
+ <ChevronDownIcon className="pointer-events-none size-4 text-muted-foreground" />
38
47
  </SelectPrimitive.Icon>
39
48
  </SelectPrimitive.Trigger>
40
49
  );
@@ -43,28 +52,31 @@ function SelectTrigger({
43
52
  function SelectContent({
44
53
  className,
45
54
  children,
46
- position = "popper",
55
+ position = "item-aligned",
56
+ align = "center",
47
57
  ...props
48
58
  }: React.ComponentProps<typeof SelectPrimitive.Content>) {
49
59
  return (
50
60
  <SelectPrimitive.Portal>
51
61
  <SelectPrimitive.Content
52
62
  data-slot="select-content"
63
+ data-align-trigger={position === "item-aligned"}
53
64
  className={cn(
54
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md",
65
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-y-auto overflow-x-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[state=closed]:animate-out data-[state=open]:animate-in",
55
66
  position === "popper" &&
56
- "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
67
+ "data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",
57
68
  className,
58
69
  )}
59
70
  position={position}
71
+ align={align}
60
72
  {...props}
61
73
  >
62
74
  <SelectScrollUpButton />
63
75
  <SelectPrimitive.Viewport
76
+ data-position={position}
64
77
  className={cn(
65
- "p-1",
66
- position === "popper" &&
67
- "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1",
78
+ "data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)",
79
+ position === "popper" && "",
68
80
  )}
69
81
  >
70
82
  {children}
@@ -79,7 +91,7 @@ function SelectLabel({ className, ...props }: React.ComponentProps<typeof Select
79
91
  return (
80
92
  <SelectPrimitive.Label
81
93
  data-slot="select-label"
82
- className={cn("px-2 py-1.5 text-sm font-medium", className)}
94
+ className={cn("px-1.5 py-1 text-muted-foreground text-xs", className)}
83
95
  {...props}
84
96
  />
85
97
  );
@@ -94,14 +106,14 @@ function SelectItem({
94
106
  <SelectPrimitive.Item
95
107
  data-slot="select-item"
96
108
  className={cn(
97
- "focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground outline-hidden *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 pl-2 pr-8 text-sm data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
109
+ "relative flex w-full cursor-default select-none items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
98
110
  className,
99
111
  )}
100
112
  {...props}
101
113
  >
102
- <span className="absolute right-2 flex size-3.5 items-center justify-center">
114
+ <span className="pointer-events-none absolute right-2 flex size-4 items-center justify-center">
103
115
  <SelectPrimitive.ItemIndicator>
104
- <CheckIcon className="size-4" />
116
+ <CheckIcon className="pointer-events-none" />
105
117
  </SelectPrimitive.ItemIndicator>
106
118
  </span>
107
119
  <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
@@ -116,7 +128,7 @@ function SelectSeparator({
116
128
  return (
117
129
  <SelectPrimitive.Separator
118
130
  data-slot="select-separator"
119
- className={cn("bg-border pointer-events-none -mx-1 my-1 h-px", className)}
131
+ className={cn("pointer-events-none -mx-1 my-1 h-px bg-border", className)}
120
132
  {...props}
121
133
  />
122
134
  );
@@ -129,10 +141,13 @@ function SelectScrollUpButton({
129
141
  return (
130
142
  <SelectPrimitive.ScrollUpButton
131
143
  data-slot="select-scroll-up-button"
132
- className={cn("flex cursor-default items-center justify-center py-1", className)}
144
+ className={cn(
145
+ "z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",
146
+ className,
147
+ )}
133
148
  {...props}
134
149
  >
135
- <ChevronUpIcon className="size-4" />
150
+ <ChevronUpIcon />
136
151
  </SelectPrimitive.ScrollUpButton>
137
152
  );
138
153
  }
@@ -144,10 +159,13 @@ function SelectScrollDownButton({
144
159
  return (
145
160
  <SelectPrimitive.ScrollDownButton
146
161
  data-slot="select-scroll-down-button"
147
- className={cn("flex cursor-default items-center justify-center py-1", className)}
162
+ className={cn(
163
+ "z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",
164
+ className,
165
+ )}
148
166
  {...props}
149
167
  >
150
- <ChevronDownIcon className="size-4" />
168
+ <ChevronDownIcon />
151
169
  </SelectPrimitive.ScrollDownButton>
152
170
  );
153
171
  }
@@ -1,8 +1,7 @@
1
1
  "use client";
2
2
 
3
- import * as SeparatorPrimitive from "@radix-ui/react-separator";
3
+ import { Separator as SeparatorPrimitive } from "radix-ui";
4
4
  import type * as React from "react";
5
-
6
5
  import { cn } from "@/lib/utils/cn";
7
6
 
8
7
  function Separator({
@@ -13,11 +12,11 @@ function Separator({
13
12
  }: React.ComponentProps<typeof SeparatorPrimitive.Root>) {
14
13
  return (
15
14
  <SeparatorPrimitive.Root
16
- data-slot="separator-root"
15
+ data-slot="separator"
17
16
  decorative={decorative}
18
17
  orientation={orientation}
19
18
  className={cn(
20
- "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px",
19
+ "shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch",
21
20
  className,
22
21
  )}
23
22
  {...props}
@@ -1,7 +1,9 @@
1
- import * as SheetPrimitive from "@radix-ui/react-dialog";
1
+ "use client";
2
+
2
3
  import { XIcon } from "lucide-react";
4
+ import { Dialog as SheetPrimitive } from "radix-ui";
3
5
  import type * as React from "react";
4
-
6
+ import { Button } from "@/components/ui/button";
5
7
  import { cn } from "@/lib/utils/cn";
6
8
 
7
9
  function Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {
@@ -28,7 +30,7 @@ function SheetOverlay({
28
30
  <SheetPrimitive.Overlay
29
31
  data-slot="sheet-overlay"
30
32
  className={cn(
31
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",
33
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/10 duration-100 data-[state=closed]:animate-out data-[state=open]:animate-in data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs",
32
34
  className,
33
35
  )}
34
36
  {...props}
@@ -40,34 +42,33 @@ function SheetContent({
40
42
  className,
41
43
  children,
42
44
  side = "right",
45
+ showCloseButton = true,
43
46
  ...props
44
47
  }: React.ComponentProps<typeof SheetPrimitive.Content> & {
45
48
  side?: "top" | "right" | "bottom" | "left";
49
+ showCloseButton?: boolean;
46
50
  }) {
47
51
  return (
48
52
  <SheetPortal>
49
53
  <SheetOverlay />
50
54
  <SheetPrimitive.Content
51
55
  data-slot="sheet-content"
56
+ data-side={side}
52
57
  className={cn(
53
- "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
54
- side === "right" &&
55
- "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",
56
- side === "left" &&
57
- "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",
58
- side === "top" &&
59
- "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",
60
- side === "bottom" &&
61
- "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",
58
+ "data-[side=right]:data-[state=closed]:slide-out-to-right-10 data-[side=right]:data-[state=open]:slide-in-from-right-10 data-[side=left]:data-[state=closed]:slide-out-to-left-10 data-[side=left]:data-[state=open]:slide-in-from-left-10 data-[side=top]:data-[state=closed]:slide-out-to-top-10 data-[side=top]:data-[state=open]:slide-in-from-top-10 data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[side=bottom]:data-[state=closed]:slide-out-to-bottom-10 data-[side=bottom]:data-[state=open]:slide-in-from-bottom-10 fixed z-50 flex flex-col gap-4 bg-background bg-clip-padding text-sm shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=top]:inset-x-0 data-[side=left]:inset-y-0 data-[side=right]:inset-y-0 data-[side=top]:top-0 data-[side=right]:right-0 data-[side=bottom]:bottom-0 data-[side=left]:left-0 data-[side=bottom]:h-auto data-[side=left]:h-full data-[side=right]:h-full data-[side=top]:h-auto data-[side=left]:w-3/4 data-[side=right]:w-3/4 data-[state=closed]:animate-out data-[state=open]:animate-in data-[side=bottom]:border-t data-[side=left]:border-r data-[side=top]:border-b data-[side=right]:border-l data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",
62
59
  className,
63
60
  )}
64
61
  {...props}
65
62
  >
66
63
  {children}
67
- <SheetPrimitive.Close className="ring-offset-background focus:ring-ring data-[state=open]:bg-secondary rounded-xs focus:outline-hidden absolute right-4 top-4 opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 disabled:pointer-events-none">
68
- <XIcon className="size-4" />
69
- <span className="sr-only">Close</span>
70
- </SheetPrimitive.Close>
64
+ {showCloseButton && (
65
+ <SheetPrimitive.Close data-slot="sheet-close" asChild>
66
+ <Button variant="ghost" className="absolute top-3 right-3" size="icon-sm">
67
+ <XIcon />
68
+ <span className="sr-only">Close</span>
69
+ </Button>
70
+ </SheetPrimitive.Close>
71
+ )}
71
72
  </SheetPrimitive.Content>
72
73
  </SheetPortal>
73
74
  );
@@ -77,7 +78,7 @@ function SheetHeader({ className, ...props }: React.ComponentProps<"div">) {
77
78
  return (
78
79
  <div
79
80
  data-slot="sheet-header"
80
- className={cn("flex flex-col gap-1.5 p-4", className)}
81
+ className={cn("flex flex-col gap-0.5 p-4", className)}
81
82
  {...props}
82
83
  />
83
84
  );
@@ -97,7 +98,7 @@ function SheetTitle({ className, ...props }: React.ComponentProps<typeof SheetPr
97
98
  return (
98
99
  <SheetPrimitive.Title
99
100
  data-slot="sheet-title"
100
- className={cn("text-foreground font-semibold", className)}
101
+ className={cn("font-medium text-base text-foreground", className)}
101
102
  {...props}
102
103
  />
103
104
  );