@tulip-systems/core 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. package/LICENSE +662 -0
  2. package/dist/commands/client.d.mts +2 -1
  3. package/dist/commands/client.mjs +2 -1
  4. package/dist/components/client.d.mts +19 -3
  5. package/dist/components/client.mjs +18 -2
  6. package/dist/components/editor/components/menu-nodes.client.mjs +3 -3
  7. package/dist/components/editor/components/menu-nodes.client.mjs.map +1 -1
  8. package/dist/components/editor/components/menu.client.mjs +3 -3
  9. package/dist/components/editor/components/menu.client.mjs.map +1 -1
  10. package/dist/components/emails/forget-password-email.mjs +6 -6
  11. package/dist/components/emails/forget-password-email.mjs.map +1 -1
  12. package/dist/components/header/back-button.client.mjs +2 -2
  13. package/dist/components/header/back-button.client.mjs.map +1 -1
  14. package/dist/components/header/bottom-bar.client.mjs +2 -2
  15. package/dist/components/header/bottom-bar.client.mjs.map +1 -1
  16. package/dist/components/header/breadcrumbs.client.mjs +1 -1
  17. package/dist/components/header/breadcrumbs.client.mjs.map +1 -1
  18. package/dist/components/header/header.client.mjs +1 -1
  19. package/dist/components/header/header.client.mjs.map +1 -1
  20. package/dist/components/layouts/empty-page.mjs +2 -2
  21. package/dist/components/layouts/empty-page.mjs.map +1 -1
  22. package/dist/components/layouts/error-page.mjs +3 -3
  23. package/dist/components/layouts/error-page.mjs.map +1 -1
  24. package/dist/components/layouts/providers.client.d.mts.map +1 -1
  25. package/dist/components/layouts/providers.client.mjs +3 -2
  26. package/dist/components/layouts/providers.client.mjs.map +1 -1
  27. package/dist/components/layouts/root-loading.mjs +2 -2
  28. package/dist/components/layouts/root-loading.mjs.map +1 -1
  29. package/dist/components/layouts/tab-layout.mjs +1 -1
  30. package/dist/components/layouts/tab-layout.mjs.map +1 -1
  31. package/dist/components/lists/data-list.mjs +1 -1
  32. package/dist/components/lists/data-list.mjs.map +1 -1
  33. package/dist/components/lists/data-stack.mjs +1 -1
  34. package/dist/components/lists/data-stack.mjs.map +1 -1
  35. package/dist/components/navigation/admin-sidebar-header.client.mjs +3 -3
  36. package/dist/components/navigation/admin-sidebar-header.client.mjs.map +1 -1
  37. package/dist/components/navigation/admin-sidebar-skeleton.mjs +1 -1
  38. package/dist/components/navigation/admin-sidebar-skeleton.mjs.map +1 -1
  39. package/dist/components/ui/accordion.client.d.mts +26 -0
  40. package/dist/components/ui/accordion.client.d.mts.map +1 -0
  41. package/dist/components/ui/accordion.client.mjs +58 -0
  42. package/dist/components/ui/accordion.client.mjs.map +1 -0
  43. package/dist/components/ui/alert-dialog.client.d.mts +61 -0
  44. package/dist/components/ui/alert-dialog.client.d.mts.map +1 -0
  45. package/dist/components/ui/alert-dialog.client.mjs +104 -0
  46. package/dist/components/ui/alert-dialog.client.mjs.map +1 -0
  47. package/dist/components/ui/alert.d.mts +5 -1
  48. package/dist/components/ui/alert.d.mts.map +1 -1
  49. package/dist/components/ui/alert.mjs +13 -6
  50. package/dist/components/ui/alert.mjs.map +1 -1
  51. package/dist/components/ui/aspect-ratio.client.d.mts +10 -0
  52. package/dist/components/ui/aspect-ratio.client.d.mts.map +1 -0
  53. package/dist/components/ui/aspect-ratio.client.mjs +16 -0
  54. package/dist/components/ui/aspect-ratio.client.mjs.map +1 -0
  55. package/dist/components/ui/avatar.client.d.mts +21 -6
  56. package/dist/components/ui/avatar.client.d.mts.map +1 -1
  57. package/dist/components/ui/avatar.client.mjs +31 -9
  58. package/dist/components/ui/avatar.client.mjs.map +1 -1
  59. package/dist/components/ui/badge.d.mts +1 -1
  60. package/dist/components/ui/badge.d.mts.map +1 -1
  61. package/dist/components/ui/badge.mjs +11 -8
  62. package/dist/components/ui/badge.mjs.map +1 -1
  63. package/dist/components/ui/breadcrumb.d.mts +3 -1
  64. package/dist/components/ui/breadcrumb.d.mts.map +1 -1
  65. package/dist/components/ui/breadcrumb.mjs +7 -7
  66. package/dist/components/ui/breadcrumb.mjs.map +1 -1
  67. package/dist/components/ui/button-group.d.mts +29 -0
  68. package/dist/components/ui/button-group.d.mts.map +1 -0
  69. package/dist/components/ui/button-group.mjs +41 -0
  70. package/dist/components/ui/button-group.mjs.map +1 -0
  71. package/dist/components/ui/button.d.mts +1 -1
  72. package/dist/components/ui/button.d.mts.map +1 -1
  73. package/dist/components/ui/button.mjs +19 -13
  74. package/dist/components/ui/button.mjs.map +1 -1
  75. package/dist/components/ui/{calendar.d.mts → calendar.client.d.mts} +7 -4
  76. package/dist/components/ui/calendar.client.d.mts.map +1 -0
  77. package/dist/components/ui/{calendar.mjs → calendar.client.mjs} +22 -19
  78. package/dist/components/ui/calendar.client.mjs.map +1 -0
  79. package/dist/components/ui/card.d.mts +9 -2
  80. package/dist/components/ui/card.d.mts.map +1 -1
  81. package/dist/components/ui/card.mjs +15 -7
  82. package/dist/components/ui/card.mjs.map +1 -1
  83. package/dist/components/ui/{carousel.d.mts → carousel.client.d.mts} +12 -3
  84. package/dist/components/ui/carousel.client.d.mts.map +1 -0
  85. package/dist/components/ui/{carousel.mjs → carousel.client.mjs} +10 -10
  86. package/dist/components/ui/carousel.client.mjs.map +1 -0
  87. package/dist/components/ui/chart.client.d.mts.map +1 -1
  88. package/dist/components/ui/chart.client.mjs +11 -11
  89. package/dist/components/ui/chart.client.mjs.map +1 -1
  90. package/dist/components/ui/checkbox.client.d.mts +12 -0
  91. package/dist/components/ui/checkbox.client.d.mts.map +1 -0
  92. package/dist/components/ui/checkbox.client.mjs +24 -0
  93. package/dist/components/ui/checkbox.client.mjs.map +1 -0
  94. package/dist/components/ui/collapsible.client.d.mts +6 -6
  95. package/dist/components/ui/collapsible.client.d.mts.map +1 -1
  96. package/dist/components/ui/collapsible.client.mjs +6 -6
  97. package/dist/components/ui/collapsible.client.mjs.map +1 -1
  98. package/dist/components/ui/combobox-dropdown.client.d.mts +1 -1
  99. package/dist/components/ui/combobox-dropdown.client.mjs +2 -2
  100. package/dist/components/ui/combobox-dropdown.client.mjs.map +1 -1
  101. package/dist/components/ui/combobox.client.mjs +4 -4
  102. package/dist/components/ui/combobox.client.mjs.map +1 -1
  103. package/dist/components/ui/{command.d.mts → command.client.d.mts} +8 -2
  104. package/dist/components/ui/command.client.d.mts.map +1 -0
  105. package/dist/components/ui/command.client.mjs +91 -0
  106. package/dist/components/ui/command.client.mjs.map +1 -0
  107. package/dist/components/ui/context-menu.client.d.mts +86 -0
  108. package/dist/components/ui/context-menu.client.d.mts.map +1 -0
  109. package/dist/components/ui/context-menu.client.mjs +128 -0
  110. package/dist/components/ui/context-menu.client.mjs.map +1 -0
  111. package/dist/components/ui/date-picker.client.mjs +2 -2
  112. package/dist/components/ui/date-picker.client.mjs.map +1 -1
  113. package/dist/components/ui/dialog.client.d.mts +19 -12
  114. package/dist/components/ui/dialog.client.d.mts.map +1 -1
  115. package/dist/components/ui/dialog.client.mjs +40 -29
  116. package/dist/components/ui/dialog.client.mjs.map +1 -1
  117. package/dist/components/ui/drawer.client.d.mts.map +1 -1
  118. package/dist/components/ui/drawer.client.mjs +5 -5
  119. package/dist/components/ui/drawer.client.mjs.map +1 -1
  120. package/dist/components/ui/dropdown-menu.client.d.mts +85 -0
  121. package/dist/components/ui/dropdown-menu.client.d.mts.map +1 -0
  122. package/dist/components/ui/dropdown-menu.client.mjs +131 -0
  123. package/dist/components/ui/dropdown-menu.client.mjs.map +1 -0
  124. package/dist/components/ui/empty.d.mts +36 -0
  125. package/dist/components/ui/empty.d.mts.map +1 -0
  126. package/dist/components/ui/empty.mjs +62 -0
  127. package/dist/components/ui/empty.mjs.map +1 -0
  128. package/dist/components/ui/field.client.d.mts +65 -0
  129. package/dist/components/ui/field.client.d.mts.map +1 -0
  130. package/dist/components/ui/field.client.mjs +114 -0
  131. package/dist/components/ui/field.client.mjs.map +1 -0
  132. package/dist/components/ui/form.client.d.mts +3 -4
  133. package/dist/components/ui/form.client.d.mts.map +1 -1
  134. package/dist/components/ui/form.client.mjs +4 -4
  135. package/dist/components/ui/form.client.mjs.map +1 -1
  136. package/dist/components/ui/hover-card.client.d.mts +6 -6
  137. package/dist/components/ui/hover-card.client.d.mts.map +1 -1
  138. package/dist/components/ui/hover-card.client.mjs +14 -11
  139. package/dist/components/ui/hover-card.client.mjs.map +1 -1
  140. package/dist/components/ui/{input-date-time.d.mts → input-date-time.client.d.mts} +7 -7
  141. package/dist/components/ui/input-date-time.client.d.mts.map +1 -0
  142. package/dist/components/ui/{input-date-time.mjs → input-date-time.client.mjs} +8 -8
  143. package/dist/components/ui/input-date-time.client.mjs.map +1 -0
  144. package/dist/components/ui/input-date.d.mts +1 -1
  145. package/dist/components/ui/input-date.d.mts.map +1 -1
  146. package/dist/components/ui/input-date.mjs.map +1 -1
  147. package/dist/components/ui/input-group.client.d.mts +59 -0
  148. package/dist/components/ui/input-group.client.d.mts.map +1 -0
  149. package/dist/components/ui/input-group.client.mjs +106 -0
  150. package/dist/components/ui/input-group.client.mjs.map +1 -0
  151. package/dist/components/ui/input-recipient.mjs +11 -11
  152. package/dist/components/ui/input-recipient.mjs.map +1 -1
  153. package/dist/components/ui/input-time.d.mts +1 -1
  154. package/dist/components/ui/input-time.d.mts.map +1 -1
  155. package/dist/components/ui/input-time.mjs.map +1 -1
  156. package/dist/components/ui/input.d.mts.map +1 -1
  157. package/dist/components/ui/input.mjs +1 -1
  158. package/dist/components/ui/input.mjs.map +1 -1
  159. package/dist/components/ui/item.d.mts +63 -0
  160. package/dist/components/ui/item.d.mts.map +1 -0
  161. package/dist/components/ui/item.mjs +119 -0
  162. package/dist/components/ui/item.mjs.map +1 -0
  163. package/dist/components/ui/kbd.d.mts +14 -0
  164. package/dist/components/ui/kbd.d.mts.map +1 -0
  165. package/dist/components/ui/kbd.mjs +22 -0
  166. package/dist/components/ui/kbd.mjs.map +1 -0
  167. package/dist/components/ui/label.d.mts +4 -4
  168. package/dist/components/ui/label.d.mts.map +1 -1
  169. package/dist/components/ui/label.mjs +5 -5
  170. package/dist/components/ui/label.mjs.map +1 -1
  171. package/dist/components/ui/loader.d.mts +7 -0
  172. package/dist/components/ui/loader.d.mts.map +1 -0
  173. package/dist/components/ui/loader.mjs +63 -0
  174. package/dist/components/ui/loader.mjs.map +1 -0
  175. package/dist/components/ui/navigation-menu.d.mts +11 -11
  176. package/dist/components/ui/navigation-menu.d.mts.map +1 -1
  177. package/dist/components/ui/navigation-menu.mjs +18 -20
  178. package/dist/components/ui/navigation-menu.mjs.map +1 -1
  179. package/dist/components/ui/pagination.d.mts +8 -2
  180. package/dist/components/ui/pagination.d.mts.map +1 -1
  181. package/dist/components/ui/pagination.mjs +29 -21
  182. package/dist/components/ui/pagination.mjs.map +1 -1
  183. package/dist/components/ui/popover.client.d.mts +35 -0
  184. package/dist/components/ui/popover.client.d.mts.map +1 -0
  185. package/dist/components/ui/popover.client.mjs +59 -0
  186. package/dist/components/ui/popover.client.mjs.map +1 -0
  187. package/dist/components/ui/progress.client.d.mts +4 -4
  188. package/dist/components/ui/progress.client.d.mts.map +1 -1
  189. package/dist/components/ui/progress.client.mjs +7 -7
  190. package/dist/components/ui/progress.client.mjs.map +1 -1
  191. package/dist/components/ui/radio-group.d.mts +5 -5
  192. package/dist/components/ui/radio-group.d.mts.map +1 -1
  193. package/dist/components/ui/radio-group.mjs +10 -11
  194. package/dist/components/ui/radio-group.mjs.map +1 -1
  195. package/dist/components/ui/resizable.client.d.mts +3 -4
  196. package/dist/components/ui/resizable.client.d.mts.map +1 -1
  197. package/dist/components/ui/resizable.client.mjs +5 -9
  198. package/dist/components/ui/resizable.client.mjs.map +1 -1
  199. package/dist/components/ui/scroll-area.d.mts +5 -5
  200. package/dist/components/ui/scroll-area.d.mts.map +1 -1
  201. package/dist/components/ui/scroll-area.mjs +12 -11
  202. package/dist/components/ui/scroll-area.mjs.map +1 -1
  203. package/dist/components/ui/select.client.d.mts +18 -13
  204. package/dist/components/ui/select.client.d.mts.map +1 -1
  205. package/dist/components/ui/select.client.mjs +37 -32
  206. package/dist/components/ui/select.client.mjs.map +1 -1
  207. package/dist/components/ui/separator.d.mts +4 -4
  208. package/dist/components/ui/separator.d.mts.map +1 -1
  209. package/dist/components/ui/separator.mjs +6 -6
  210. package/dist/components/ui/separator.mjs.map +1 -1
  211. package/dist/components/ui/sheet.client.d.mts +9 -7
  212. package/dist/components/ui/sheet.client.d.mts.map +1 -1
  213. package/dist/components/ui/sheet.client.mjs +30 -20
  214. package/dist/components/ui/sheet.client.mjs.map +1 -1
  215. package/dist/components/ui/sidebar.client.mjs +28 -28
  216. package/dist/components/ui/sidebar.client.mjs.map +1 -1
  217. package/dist/components/ui/skeleton.mjs +1 -1
  218. package/dist/components/ui/skeleton.mjs.map +1 -1
  219. package/dist/components/ui/slider.d.mts +4 -4
  220. package/dist/components/ui/slider.d.mts.map +1 -1
  221. package/dist/components/ui/slider.mjs +11 -11
  222. package/dist/components/ui/slider.mjs.map +1 -1
  223. package/dist/components/ui/spinner.d.mts +10 -0
  224. package/dist/components/ui/spinner.d.mts.map +1 -0
  225. package/dist/components/ui/spinner.mjs +9 -55
  226. package/dist/components/ui/spinner.mjs.map +1 -1
  227. package/dist/components/ui/switch.client.d.mts +15 -0
  228. package/dist/components/ui/switch.client.d.mts.map +1 -0
  229. package/dist/components/ui/switch.client.mjs +23 -0
  230. package/dist/components/ui/switch.client.mjs.map +1 -0
  231. package/dist/components/ui/tabs.client.d.mts +31 -0
  232. package/dist/components/ui/tabs.client.d.mts.map +1 -0
  233. package/dist/components/ui/tabs.client.mjs +49 -0
  234. package/dist/components/ui/tabs.client.mjs.map +1 -0
  235. package/dist/components/ui/textarea.d.mts.map +1 -1
  236. package/dist/components/ui/textarea.mjs +1 -1
  237. package/dist/components/ui/textarea.mjs.map +1 -1
  238. package/dist/components/ui/toggle-group.client.d.mts +11 -6
  239. package/dist/components/ui/toggle-group.client.d.mts.map +1 -1
  240. package/dist/components/ui/toggle-group.client.mjs +20 -12
  241. package/dist/components/ui/toggle-group.client.mjs.map +1 -1
  242. package/dist/components/ui/{toggle.d.mts → toggle.client.d.mts} +6 -6
  243. package/dist/components/ui/toggle.client.d.mts.map +1 -0
  244. package/dist/components/ui/toggle.client.mjs +40 -0
  245. package/dist/components/ui/toggle.client.mjs.map +1 -0
  246. package/dist/components/ui/tooltip.client.d.mts +7 -7
  247. package/dist/components/ui/tooltip.client.d.mts.map +1 -1
  248. package/dist/components/ui/tooltip.client.mjs +10 -10
  249. package/dist/components/ui/tooltip.client.mjs.map +1 -1
  250. package/dist/components.d.mts +12 -20
  251. package/dist/components.mjs +12 -20
  252. package/dist/inline-edit/client.d.mts +3 -3
  253. package/dist/lib/hooks/use-indicator.d.mts.map +1 -1
  254. package/dist/lib/hooks/use-indicator.mjs +11 -8
  255. package/dist/lib/hooks/use-indicator.mjs.map +1 -1
  256. package/dist/modules/auth/components/auth-layout.server.mjs +3 -3
  257. package/dist/modules/auth/components/auth-layout.server.mjs.map +1 -1
  258. package/dist/modules/auth/components/create-first-user-page.client.mjs +3 -3
  259. package/dist/modules/auth/components/create-first-user-page.client.mjs.map +1 -1
  260. package/dist/modules/auth/components/forget-password-page.client.mjs +1 -1
  261. package/dist/modules/auth/components/forget-password-page.client.mjs.map +1 -1
  262. package/dist/modules/auth/components/login-page.client.mjs +5 -5
  263. package/dist/modules/auth/components/login-page.client.mjs.map +1 -1
  264. package/dist/modules/auth/components/reset-password-page.client.mjs +5 -5
  265. package/dist/modules/auth/components/reset-password-page.client.mjs.map +1 -1
  266. package/dist/modules/commands/components/alert-dialog-command.client.d.mts +9 -9
  267. package/dist/modules/commands/components/alert-dialog-command.client.d.mts.map +1 -1
  268. package/dist/modules/commands/components/alert-dialog-command.client.mjs +3 -3
  269. package/dist/modules/commands/components/alert-dialog-command.client.mjs.map +1 -1
  270. package/dist/modules/commands/components/click-command.client.mjs +2 -2
  271. package/dist/modules/commands/components/click-command.client.mjs.map +1 -1
  272. package/dist/modules/commands/components/dialog-command.client.d.mts +8 -8
  273. package/dist/modules/commands/components/dialog-command.client.d.mts.map +1 -1
  274. package/dist/modules/commands/components/dialog-command.client.mjs +2 -2
  275. package/dist/modules/commands/components/dialog-command.client.mjs.map +1 -1
  276. package/dist/modules/commands/components/dropdown-command.client.mjs +2 -2
  277. package/dist/modules/commands/components/dropdown-command.client.mjs.map +1 -1
  278. package/dist/modules/commands/components/empty-command.client.mjs +2 -2
  279. package/dist/modules/commands/components/empty-command.client.mjs.map +1 -1
  280. package/dist/modules/commands/components/form-dialog-command.client.d.mts +11 -9
  281. package/dist/modules/commands/components/form-dialog-command.client.d.mts.map +1 -1
  282. package/dist/modules/commands/components/form-dialog-command.client.mjs +8 -6
  283. package/dist/modules/commands/components/form-dialog-command.client.mjs.map +1 -1
  284. package/dist/modules/commands/hooks/use-command-menu.client.d.mts +8 -1
  285. package/dist/modules/commands/hooks/use-command-menu.client.d.mts.map +1 -1
  286. package/dist/modules/commands/hooks/use-command-menu.client.mjs.map +1 -1
  287. package/dist/modules/commands/menus/context-menu.client.d.mts +3 -3
  288. package/dist/modules/commands/menus/context-menu.client.d.mts.map +1 -1
  289. package/dist/modules/commands/menus/context-menu.client.mjs +1 -1
  290. package/dist/modules/commands/menus/context-menu.client.mjs.map +1 -1
  291. package/dist/modules/commands/menus/dropdown-menu.client.mjs +2 -2
  292. package/dist/modules/commands/menus/dropdown-menu.client.mjs.map +1 -1
  293. package/dist/modules/commands/menus/floating-menu.client.d.mts +19 -0
  294. package/dist/modules/commands/menus/floating-menu.client.d.mts.map +1 -0
  295. package/dist/modules/commands/menus/{data-table-menu.client.mjs → floating-menu.client.mjs} +11 -11
  296. package/dist/modules/commands/menus/floating-menu.client.mjs.map +1 -0
  297. package/dist/modules/commands/utils/archive-command.client.mjs +1 -1
  298. package/dist/modules/commands/utils/archive-command.client.mjs.map +1 -1
  299. package/dist/modules/commands/utils/delete-command.client.mjs +1 -1
  300. package/dist/modules/commands/utils/delete-command.client.mjs.map +1 -1
  301. package/dist/modules/data-tables/components/cell/select.client.mjs +1 -1
  302. package/dist/modules/data-tables/components/cell/select.client.mjs.map +1 -1
  303. package/dist/modules/data-tables/components/column-header.mjs +5 -5
  304. package/dist/modules/data-tables/components/column-header.mjs.map +1 -1
  305. package/dist/modules/data-tables/components/filters/combobox.client.mjs +6 -6
  306. package/dist/modules/data-tables/components/filters/combobox.client.mjs.map +1 -1
  307. package/dist/modules/data-tables/components/filters/slider.client.mjs +2 -2
  308. package/dist/modules/data-tables/components/filters/slider.client.mjs.map +1 -1
  309. package/dist/modules/data-tables/components/header.mjs +1 -1
  310. package/dist/modules/data-tables/components/header.mjs.map +1 -1
  311. package/dist/modules/data-tables/components/skeleton.mjs +2 -2
  312. package/dist/modules/data-tables/components/skeleton.mjs.map +1 -1
  313. package/dist/modules/data-tables/components/table.mjs +3 -3
  314. package/dist/modules/data-tables/components/table.mjs.map +1 -1
  315. package/dist/modules/data-tables/components/toolbar.mjs +1 -1
  316. package/dist/modules/data-tables/components/toolbar.mjs.map +1 -1
  317. package/dist/modules/data-tables/strategies/pagination/components.mjs +3 -3
  318. package/dist/modules/data-tables/strategies/pagination/components.mjs.map +1 -1
  319. package/dist/modules/data-tables/tables/data-table/components/table.mjs +8 -2
  320. package/dist/modules/data-tables/tables/data-table/components/table.mjs.map +1 -1
  321. package/dist/modules/data-tables/tables/inline-table/components/cells/common.mjs +1 -1
  322. package/dist/modules/data-tables/tables/inline-table/components/cells/common.mjs.map +1 -1
  323. package/dist/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.mjs +1 -1
  324. package/dist/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.mjs.map +1 -1
  325. package/dist/modules/data-tables/tables/inline-table/components/cells/read-only.mjs +1 -1
  326. package/dist/modules/data-tables/tables/inline-table/components/cells/read-only.mjs.map +1 -1
  327. package/dist/modules/data-tables/tables/inline-table/components/table.mjs +8 -2
  328. package/dist/modules/data-tables/tables/inline-table/components/table.mjs.map +1 -1
  329. package/dist/modules/inline-edit/components/combobox-dropdown.client.mjs +5 -1
  330. package/dist/modules/inline-edit/components/combobox-dropdown.client.mjs.map +1 -1
  331. package/dist/modules/inline-edit/components/combobox.client.mjs +5 -1
  332. package/dist/modules/inline-edit/components/combobox.client.mjs.map +1 -1
  333. package/dist/modules/inline-edit/components/date-input.client.mjs +8 -4
  334. package/dist/modules/inline-edit/components/date-input.client.mjs.map +1 -1
  335. package/dist/modules/inline-edit/components/date-picker.client.mjs +7 -3
  336. package/dist/modules/inline-edit/components/date-picker.client.mjs.map +1 -1
  337. package/dist/modules/inline-edit/components/date-time.client.d.mts +1 -1
  338. package/dist/modules/inline-edit/components/date-time.client.d.mts.map +1 -1
  339. package/dist/modules/inline-edit/components/date-time.client.mjs +7 -2
  340. package/dist/modules/inline-edit/components/date-time.client.mjs.map +1 -1
  341. package/dist/modules/inline-edit/components/editor.client.mjs +5 -1
  342. package/dist/modules/inline-edit/components/editor.client.mjs.map +1 -1
  343. package/dist/modules/inline-edit/components/input-recipient.client.mjs +5 -1
  344. package/dist/modules/inline-edit/components/input-recipient.client.mjs.map +1 -1
  345. package/dist/modules/inline-edit/components/input-toggle.client.mjs +7 -3
  346. package/dist/modules/inline-edit/components/input-toggle.client.mjs.map +1 -1
  347. package/dist/modules/inline-edit/components/input.client.d.mts.map +1 -1
  348. package/dist/modules/inline-edit/components/input.client.mjs +18 -6
  349. package/dist/modules/inline-edit/components/input.client.mjs.map +1 -1
  350. package/dist/modules/inline-edit/components/select.client.d.mts +8 -11
  351. package/dist/modules/inline-edit/components/select.client.d.mts.map +1 -1
  352. package/dist/modules/inline-edit/components/select.client.mjs +5 -1
  353. package/dist/modules/inline-edit/components/select.client.mjs.map +1 -1
  354. package/dist/modules/inline-edit/components/switch.client.d.mts +3 -2
  355. package/dist/modules/inline-edit/components/switch.client.d.mts.map +1 -1
  356. package/dist/modules/inline-edit/components/switch.client.mjs +6 -2
  357. package/dist/modules/inline-edit/components/switch.client.mjs.map +1 -1
  358. package/dist/modules/inline-edit/components/toggle.client.mjs +6 -2
  359. package/dist/modules/inline-edit/components/toggle.client.mjs.map +1 -1
  360. package/dist/modules/inline-edit/hooks/use-inline.client.d.mts +20 -5
  361. package/dist/modules/inline-edit/hooks/use-inline.client.d.mts.map +1 -1
  362. package/dist/modules/inline-edit/hooks/use-inline.client.mjs +11 -8
  363. package/dist/modules/inline-edit/hooks/use-inline.client.mjs.map +1 -1
  364. package/dist/modules/inline-edit/lib/variants.mjs +1 -1
  365. package/dist/modules/inline-edit/lib/variants.mjs.map +1 -1
  366. package/dist/modules/storage/components/dropzone.client.d.mts +2 -2
  367. package/dist/modules/storage/components/dropzone.client.d.mts.map +1 -1
  368. package/dist/modules/storage/components/dropzone.client.mjs +8 -8
  369. package/dist/modules/storage/components/dropzone.client.mjs.map +1 -1
  370. package/dist/modules/storage/components/image-grid.client.mjs +5 -5
  371. package/dist/modules/storage/components/image-grid.client.mjs.map +1 -1
  372. package/dist/modules/storage/components/upload-zone-context.client.d.mts +1 -0
  373. package/dist/modules/storage/components/upload-zone-context.client.d.mts.map +1 -1
  374. package/dist/modules/storage/components/upload-zone-context.client.mjs.map +1 -1
  375. package/dist/modules/storage/components/upload-zone.client.d.mts +2 -1
  376. package/dist/modules/storage/components/upload-zone.client.d.mts.map +1 -1
  377. package/dist/modules/storage/components/upload-zone.client.mjs +6 -4
  378. package/dist/modules/storage/components/upload-zone.client.mjs.map +1 -1
  379. package/package.json +6 -31
  380. package/src/components/editor/components/menu-nodes.client.tsx +3 -3
  381. package/src/components/editor/components/menu.client.tsx +3 -3
  382. package/src/components/emails/forget-password-email.tsx +6 -6
  383. package/src/components/entry.client.ts +16 -0
  384. package/src/components/entry.ts +6 -14
  385. package/src/components/header/back-button.client.tsx +2 -2
  386. package/src/components/header/bottom-bar.client.tsx +2 -2
  387. package/src/components/header/breadcrumbs.client.tsx +1 -1
  388. package/src/components/header/header.client.tsx +1 -1
  389. package/src/components/layouts/empty-page.tsx +2 -2
  390. package/src/components/layouts/error-page.tsx +3 -3
  391. package/src/components/layouts/providers.client.tsx +8 -5
  392. package/src/components/layouts/root-loading.tsx +2 -2
  393. package/src/components/layouts/tab-layout.tsx +1 -1
  394. package/src/components/lists/data-list.tsx +1 -1
  395. package/src/components/lists/data-stack.tsx +1 -1
  396. package/src/components/navigation/admin-sidebar-header.client.tsx +3 -3
  397. package/src/components/navigation/admin-sidebar-skeleton.tsx +1 -1
  398. package/src/components/navigation/admin-sidebar.client.tsx +1 -0
  399. package/src/components/ui/accordion.client.tsx +83 -0
  400. package/src/components/ui/alert-dialog.client.tsx +181 -0
  401. package/src/components/ui/alert.tsx +15 -7
  402. package/src/components/ui/aspect-ratio.client.tsx +9 -0
  403. package/src/components/ui/avatar.client.tsx +61 -6
  404. package/src/components/ui/badge.tsx +17 -11
  405. package/src/components/ui/breadcrumb.tsx +9 -10
  406. package/src/components/ui/button-group.tsx +78 -0
  407. package/src/components/ui/button.tsx +26 -16
  408. package/src/components/ui/{calendar.tsx → calendar.client.tsx} +27 -20
  409. package/src/components/ui/card.tsx +41 -8
  410. package/src/components/ui/{carousel.tsx → carousel.client.tsx} +12 -12
  411. package/src/components/ui/chart.client.tsx +105 -103
  412. package/src/components/ui/checkbox.client.tsx +28 -0
  413. package/src/components/ui/collapsible.client.tsx +2 -2
  414. package/src/components/ui/combobox-dropdown.client.tsx +2 -2
  415. package/src/components/ui/combobox.client.tsx +6 -6
  416. package/src/components/ui/command.client.tsx +179 -0
  417. package/src/components/ui/{context-menu.tsx → context-menu.client.tsx} +86 -64
  418. package/src/components/ui/date-picker.client.tsx +2 -2
  419. package/src/components/ui/dialog.client.tsx +43 -20
  420. package/src/components/ui/drawer.client.tsx +13 -15
  421. package/src/components/ui/{dropdown-menu.tsx → dropdown-menu.client.tsx} +45 -24
  422. package/src/components/ui/empty.tsx +93 -0
  423. package/src/components/ui/field.client.tsx +224 -0
  424. package/src/components/ui/form.client.tsx +4 -4
  425. package/src/components/ui/hover-card.client.tsx +14 -13
  426. package/src/components/ui/{input-date-time.tsx → input-date-time.client.tsx} +18 -11
  427. package/src/components/ui/input-date.tsx +1 -1
  428. package/src/components/ui/input-group.client.tsx +191 -0
  429. package/src/components/ui/input-recipient.tsx +12 -12
  430. package/src/components/ui/input-time.tsx +1 -1
  431. package/src/components/ui/input.tsx +2 -4
  432. package/src/components/ui/item.tsx +182 -0
  433. package/src/components/ui/kbd.tsx +26 -0
  434. package/src/components/ui/label.tsx +2 -3
  435. package/src/components/ui/loader.tsx +51 -0
  436. package/src/components/ui/navigation-menu.tsx +14 -17
  437. package/src/components/ui/pagination.tsx +31 -26
  438. package/src/components/ui/popover.client.tsx +73 -0
  439. package/src/components/ui/progress.client.tsx +6 -4
  440. package/src/components/ui/radio-group.tsx +5 -7
  441. package/src/components/ui/resizable.client.tsx +9 -19
  442. package/src/components/ui/scroll-area.tsx +5 -7
  443. package/src/components/ui/select.client.tsx +40 -22
  444. package/src/components/ui/separator.tsx +3 -4
  445. package/src/components/ui/sheet.client.tsx +19 -18
  446. package/src/components/ui/sidebar.client.tsx +27 -27
  447. package/src/components/ui/skeleton.tsx +1 -1
  448. package/src/components/ui/slider.tsx +5 -10
  449. package/src/components/ui/spinner.tsx +12 -48
  450. package/src/components/ui/switch.client.tsx +32 -0
  451. package/src/components/ui/tabs.client.tsx +79 -0
  452. package/src/components/ui/textarea.tsx +1 -2
  453. package/src/components/ui/toggle-group.client.tsx +26 -10
  454. package/src/components/ui/toggle.client.tsx +44 -0
  455. package/src/components/ui/tooltip.client.tsx +4 -9
  456. package/src/lib/hooks/use-indicator.tsx +14 -8
  457. package/src/modules/auth/components/auth-layout.server.tsx +3 -3
  458. package/src/modules/auth/components/create-first-user-page.client.tsx +4 -4
  459. package/src/modules/auth/components/forget-password-page.client.tsx +1 -1
  460. package/src/modules/auth/components/login-page.client.tsx +6 -6
  461. package/src/modules/auth/components/reset-password-page.client.tsx +7 -7
  462. package/src/modules/commands/components/alert-dialog-command.client.tsx +20 -16
  463. package/src/modules/commands/components/click-command.client.tsx +2 -2
  464. package/src/modules/commands/components/dialog-command.client.tsx +11 -10
  465. package/src/modules/commands/components/dropdown-command.client.tsx +2 -2
  466. package/src/modules/commands/components/empty-command.client.tsx +2 -2
  467. package/src/modules/commands/components/form-dialog-command.client.tsx +29 -13
  468. package/src/modules/commands/entry.client.ts +16 -0
  469. package/src/modules/commands/hooks/use-command-menu.client.tsx +2 -0
  470. package/src/modules/commands/menus/context-menu.client.tsx +3 -4
  471. package/src/modules/commands/menus/dropdown-menu.client.tsx +2 -2
  472. package/src/modules/commands/menus/floating-menu.client.tsx +54 -0
  473. package/src/modules/commands/utils/archive-command.client.tsx +1 -1
  474. package/src/modules/commands/utils/delete-command.client.tsx +1 -1
  475. package/src/modules/data-tables/components/cell/select.client.tsx +1 -1
  476. package/src/modules/data-tables/components/column-header.tsx +5 -5
  477. package/src/modules/data-tables/components/filters/combobox.client.tsx +6 -6
  478. package/src/modules/data-tables/components/filters/slider.client.tsx +2 -2
  479. package/src/modules/data-tables/components/header.tsx +1 -1
  480. package/src/modules/data-tables/components/skeleton.tsx +2 -2
  481. package/src/modules/data-tables/components/table.tsx +3 -3
  482. package/src/modules/data-tables/components/toolbar.tsx +1 -1
  483. package/src/modules/data-tables/strategies/pagination/components.tsx +3 -3
  484. package/src/modules/data-tables/tables/data-table/components/table.tsx +11 -2
  485. package/src/modules/data-tables/tables/inline-table/components/cells/common.tsx +1 -1
  486. package/src/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.tsx +1 -1
  487. package/src/modules/data-tables/tables/inline-table/components/cells/read-only.tsx +1 -1
  488. package/src/modules/data-tables/tables/inline-table/components/table.tsx +11 -2
  489. package/src/modules/inline-edit/components/combobox-dropdown.client.tsx +4 -0
  490. package/src/modules/inline-edit/components/combobox.client.tsx +4 -0
  491. package/src/modules/inline-edit/components/date-input.client.tsx +7 -3
  492. package/src/modules/inline-edit/components/date-picker.client.tsx +6 -2
  493. package/src/modules/inline-edit/components/date-time.client.tsx +16 -2
  494. package/src/modules/inline-edit/components/editor.client.tsx +4 -0
  495. package/src/modules/inline-edit/components/input-recipient.client.tsx +4 -0
  496. package/src/modules/inline-edit/components/input-toggle.client.tsx +6 -2
  497. package/src/modules/inline-edit/components/input.client.tsx +15 -3
  498. package/src/modules/inline-edit/components/select.client.tsx +10 -20
  499. package/src/modules/inline-edit/components/switch.client.tsx +7 -3
  500. package/src/modules/inline-edit/components/toggle.client.tsx +5 -1
  501. package/src/modules/inline-edit/hooks/use-inline.client.tsx +37 -13
  502. package/src/modules/inline-edit/lib/parsers.ts +9 -0
  503. package/src/modules/inline-edit/lib/variants.ts +1 -1
  504. package/src/modules/storage/components/dropzone.client.tsx +8 -8
  505. package/src/modules/storage/components/image-grid.client.tsx +5 -5
  506. package/src/modules/storage/components/upload-zone-context.client.tsx +1 -0
  507. package/src/modules/storage/components/upload-zone.client.tsx +9 -3
  508. package/src/styles.css +1 -3
  509. package/dist/components/ui/accordion.d.mts +0 -25
  510. package/dist/components/ui/accordion.d.mts.map +0 -1
  511. package/dist/components/ui/accordion.mjs +0 -46
  512. package/dist/components/ui/accordion.mjs.map +0 -1
  513. package/dist/components/ui/alert-dialog.d.mts +0 -43
  514. package/dist/components/ui/alert-dialog.d.mts.map +0 -1
  515. package/dist/components/ui/alert-dialog.mjs +0 -84
  516. package/dist/components/ui/alert-dialog.mjs.map +0 -1
  517. package/dist/components/ui/aspect-ratio.d.mts +0 -8
  518. package/dist/components/ui/aspect-ratio.d.mts.map +0 -1
  519. package/dist/components/ui/aspect-ratio.mjs +0 -16
  520. package/dist/components/ui/aspect-ratio.mjs.map +0 -1
  521. package/dist/components/ui/calendar.d.mts.map +0 -1
  522. package/dist/components/ui/calendar.mjs.map +0 -1
  523. package/dist/components/ui/carousel.d.mts.map +0 -1
  524. package/dist/components/ui/carousel.mjs.map +0 -1
  525. package/dist/components/ui/checkbox.d.mts +0 -12
  526. package/dist/components/ui/checkbox.d.mts.map +0 -1
  527. package/dist/components/ui/checkbox.mjs +0 -24
  528. package/dist/components/ui/checkbox.mjs.map +0 -1
  529. package/dist/components/ui/command.d.mts.map +0 -1
  530. package/dist/components/ui/command.mjs +0 -88
  531. package/dist/components/ui/command.mjs.map +0 -1
  532. package/dist/components/ui/context-menu.d.mts +0 -77
  533. package/dist/components/ui/context-menu.d.mts.map +0 -1
  534. package/dist/components/ui/context-menu.mjs +0 -125
  535. package/dist/components/ui/context-menu.mjs.map +0 -1
  536. package/dist/components/ui/dropdown-menu.d.mts +0 -78
  537. package/dist/components/ui/dropdown-menu.d.mts.map +0 -1
  538. package/dist/components/ui/dropdown-menu.mjs +0 -126
  539. package/dist/components/ui/dropdown-menu.mjs.map +0 -1
  540. package/dist/components/ui/input-date-time.d.mts.map +0 -1
  541. package/dist/components/ui/input-date-time.mjs.map +0 -1
  542. package/dist/components/ui/popover.d.mts +0 -23
  543. package/dist/components/ui/popover.d.mts.map +0 -1
  544. package/dist/components/ui/popover.mjs +0 -38
  545. package/dist/components/ui/popover.mjs.map +0 -1
  546. package/dist/components/ui/switch.d.mts +0 -12
  547. package/dist/components/ui/switch.d.mts.map +0 -1
  548. package/dist/components/ui/switch.mjs +0 -22
  549. package/dist/components/ui/switch.mjs.map +0 -1
  550. package/dist/components/ui/tabs.d.mts +0 -24
  551. package/dist/components/ui/tabs.d.mts.map +0 -1
  552. package/dist/components/ui/tabs.mjs +0 -39
  553. package/dist/components/ui/tabs.mjs.map +0 -1
  554. package/dist/components/ui/toggle.d.mts.map +0 -1
  555. package/dist/components/ui/toggle.mjs +0 -40
  556. package/dist/components/ui/toggle.mjs.map +0 -1
  557. package/dist/modules/commands/menus/data-table-menu.client.mjs.map +0 -1
  558. package/src/components/ui/accordion.tsx +0 -63
  559. package/src/components/ui/alert-dialog.tsx +0 -133
  560. package/src/components/ui/aspect-ratio.tsx +0 -9
  561. package/src/components/ui/checkbox.tsx +0 -29
  562. package/src/components/ui/command.tsx +0 -154
  563. package/src/components/ui/popover.tsx +0 -42
  564. package/src/components/ui/switch.tsx +0 -28
  565. package/src/components/ui/tabs.tsx +0 -54
  566. package/src/components/ui/toggle.tsx +0 -46
  567. package/src/modules/commands/menus/data-table-menu.client.tsx +0 -46
@@ -1,12 +1,6 @@
1
1
  "use client";
2
2
 
3
- import type {
4
- SelectContentProps,
5
- SelectItemProps,
6
- SelectProps,
7
- SelectTriggerProps,
8
- SelectValueProps,
9
- } from "@radix-ui/react-select";
3
+ import type { ComponentProps } from "react";
10
4
  import {
11
5
  Select,
12
6
  SelectContent,
@@ -27,13 +21,17 @@ export function InlineSelect<Required extends boolean = false>({
27
21
  isRequired,
28
22
  disabled,
29
23
  ...props
30
- }: SelectProps & useInlineEditOptions<string, Required>) {
24
+ }: ComponentProps<typeof Select> & useInlineEditOptions<string, Required>) {
31
25
  const { value, handleChange, handleBlur, isAllowed } = useInlineEdit({
32
26
  initialValue,
33
27
  action,
34
28
  permission,
35
29
  updateStrategy,
36
30
  isRequired,
31
+ parser: {
32
+ decode: (value) => value,
33
+ encode: (value) => value,
34
+ },
37
35
  });
38
36
 
39
37
  return (
@@ -49,13 +47,11 @@ export function InlineSelect<Required extends boolean = false>({
49
47
  );
50
48
  }
51
49
 
52
- export type InlineSelectTriggerProps = SelectTriggerProps;
53
-
54
50
  export function InlineSelectTrigger({
55
51
  variant,
56
52
  className,
57
53
  ...props
58
- }: InlineSelectTriggerProps & InlineEditVariantsProps) {
54
+ }: ComponentProps<typeof SelectTrigger> & InlineEditVariantsProps) {
59
55
  const { status } = useIndicator();
60
56
 
61
57
  return (
@@ -63,20 +59,14 @@ export function InlineSelectTrigger({
63
59
  );
64
60
  }
65
61
 
66
- export type InlineSelectContentProps = SelectContentProps;
67
-
68
- export function InlineSelectContent(props: InlineSelectContentProps) {
62
+ export function InlineSelectContent(props: ComponentProps<typeof SelectContent>) {
69
63
  return <SelectContent {...props} />;
70
64
  }
71
65
 
72
- export type InlineSelectValueProps = SelectValueProps;
73
-
74
- export function InlineSelectValue(props: InlineSelectValueProps) {
66
+ export function InlineSelectValue(props: ComponentProps<typeof SelectValue>) {
75
67
  return <SelectValue {...props} />;
76
68
  }
77
69
 
78
- export type InlineSelectItenProps = SelectItemProps;
79
-
80
- export function InlineSelectItem(props: InlineSelectItenProps) {
70
+ export function InlineSelectItem(props: ComponentProps<typeof SelectItem>) {
81
71
  return <SelectItem {...props} />;
82
72
  }
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
- import type { SwitchProps } from "@radix-ui/react-switch";
4
- import { Switch } from "@/components/ui/switch";
3
+ import type { ComponentProps } from "react";
4
+ import { Switch } from "@/components/ui/switch.client";
5
5
  import { useInlineEdit, type useInlineEditOptions } from "../hooks/use-inline.client";
6
6
 
7
7
  export function InlineSwitch<Required extends boolean = false>({
@@ -12,13 +12,17 @@ export function InlineSwitch<Required extends boolean = false>({
12
12
  isRequired,
13
13
  disabled,
14
14
  ...props
15
- }: SwitchProps & useInlineEditOptions<boolean, Required>) {
15
+ }: ComponentProps<typeof Switch> & useInlineEditOptions<boolean, Required>) {
16
16
  const { value, handleChange, handleBlur, isAllowed } = useInlineEdit({
17
17
  initialValue,
18
18
  action,
19
19
  permission,
20
20
  updateStrategy,
21
21
  isRequired,
22
+ parser: {
23
+ decode: (value) => value,
24
+ encode: (value) => value,
25
+ },
22
26
  });
23
27
 
24
28
  return (
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import type React from "react";
4
- import { Toggle } from "@/components/ui/toggle";
4
+ import { Toggle } from "@/components/ui/toggle.client";
5
5
  import { cn } from "@/lib/utils/cn";
6
6
  import { useInlineEdit, type useInlineEditOptions } from "../hooks/use-inline.client";
7
7
 
@@ -24,6 +24,10 @@ export function InlineToggle<Required extends boolean = false>({
24
24
  permission,
25
25
  updateStrategy,
26
26
  isRequired,
27
+ parser: {
28
+ decode: (value) => value,
29
+ encode: (value) => value,
30
+ },
27
31
  });
28
32
 
29
33
  return (
@@ -28,15 +28,15 @@ type MaybeValue<TValue, Required extends boolean> = Required extends true ? TVal
28
28
  /**
29
29
  * Use the inline edit hook options.
30
30
  */
31
- export type useInlineEditOptions<TValue, Required extends boolean = false> = {
31
+ export type useInlineEditOptions<TResult, Required extends boolean = false> = {
32
32
  /**
33
33
  * Initial value
34
34
  */
35
- initialValue?: MaybeValue<TValue, Required>;
35
+ initialValue?: MaybeValue<TResult, Required>;
36
36
  /**
37
37
  * Action to execute on update
38
38
  */
39
- action: (value: { id: string; value: MaybeValue<TValue, Required> }) => Promise<unknown>;
39
+ action: (value: { id: string; value: MaybeValue<TResult, Required> }) => Promise<unknown>;
40
40
  /**
41
41
  * Permission required to edit
42
42
  */
@@ -55,18 +55,40 @@ export type useInlineEditOptions<TValue, Required extends boolean = false> = {
55
55
  isRequired?: Required;
56
56
  };
57
57
 
58
+ /**
59
+ * Inline edit hook props
60
+ */
61
+ export type UseInlineEditProps<
62
+ TValue extends string | number | Date | boolean | JSON | EditorJSONContent,
63
+ TResult extends string | number | Date | boolean | JSON | EditorJSONContent,
64
+ Required extends boolean = false,
65
+ > = useInlineEditOptions<TResult, Required> & {
66
+ parser: {
67
+ /**
68
+ * Transform the value from the result type to the value type
69
+ */
70
+ decode: (value: TResult) => TValue;
71
+ /**
72
+ * Transform the value from the value type to the result type
73
+ */
74
+ encode: (value: TValue) => TResult;
75
+ };
76
+ };
77
+
58
78
  /**
59
79
  * Use the inline edit hook.
60
80
  */
61
81
  export function useInlineEdit<
62
82
  TValue extends string | number | Date | boolean | JSON | EditorJSONContent,
83
+ TResult extends string | number | Date | boolean | JSON | EditorJSONContent = TValue,
63
84
  Required extends boolean = false,
64
- >(props: useInlineEditOptions<TValue, Required>) {
85
+ >(props: UseInlineEditProps<TValue, TResult, Required>) {
65
86
  /**
66
87
  * The update strategy.
67
88
  */
68
89
  const strategy = props.updateStrategy ?? defaultUpdateStrategy;
69
90
  const delay = strategy.mode === "change" ? (strategy.delay ?? 0) : 0;
91
+ const initialValue = props.parser.decode(props.initialValue as TResult) ?? undefined;
70
92
 
71
93
  /**
72
94
  * The inline edit context.
@@ -76,7 +98,7 @@ export function useInlineEdit<
76
98
  /**
77
99
  * The current value of the inline edit.
78
100
  */
79
- const [value, setValue] = useState<MaybeValue<TValue, Required> | undefined>(props.initialValue);
101
+ const [value, setValue] = useState<MaybeValue<TValue, Required> | undefined>(initialValue);
80
102
 
81
103
  /**
82
104
  * The indicator status.
@@ -101,7 +123,7 @@ export function useInlineEdit<
101
123
  setStatus("success");
102
124
  },
103
125
  onError: (error) => {
104
- setValue(props.initialValue);
126
+ setValue(initialValue);
105
127
  toast.error("Er is iets misgegaan", {
106
128
  description: error instanceof Error ? error.message : undefined,
107
129
  });
@@ -112,7 +134,7 @@ export function useInlineEdit<
112
134
  * Handle instant mutate
113
135
  */
114
136
  const handleMutateInstant = useCallback(
115
- (value: MaybeValue<TValue, Required>) => {
137
+ (input: TValue) => {
116
138
  // Permission guard
117
139
  if (!isAllowed) {
118
140
  toast.error("Je hebt geen toestemming om dit te bewerken");
@@ -120,12 +142,14 @@ export function useInlineEdit<
120
142
  }
121
143
 
122
144
  // If the value is the same as the initial value, do nothing
123
- if (value === props.initialValue) return;
145
+ if (input === initialValue) return;
146
+
147
+ const value = props.parser.encode(input as TValue);
124
148
 
125
149
  // Update the value
126
150
  return mutation.mutate({ id: context.id, value });
127
151
  },
128
- [isAllowed, props.initialValue, mutation, context.id],
152
+ [isAllowed, initialValue, mutation, context.id, props.parser],
129
153
  );
130
154
 
131
155
  /**
@@ -145,14 +169,14 @@ export function useInlineEdit<
145
169
 
146
170
  // If it is required and the value is null or empty, reset to initial value
147
171
  if (props.isRequired && next === null) {
148
- setValue(props.initialValue ?? undefined);
172
+ setValue(initialValue ?? undefined);
149
173
  setStatus("error");
150
174
  toast.error("Dit veld is verplicht");
151
175
  return;
152
176
  }
153
177
 
154
178
  // If the strategy is change, update the value after the delay
155
- handleMutateDebounced(next as MaybeValue<TValue, Required>);
179
+ handleMutateDebounced(next as TValue);
156
180
  }
157
181
 
158
182
  /**
@@ -167,14 +191,14 @@ export function useInlineEdit<
167
191
 
168
192
  // If it is required and the value is null or empty, reset to initial value
169
193
  if (props.isRequired && next === null) {
170
- setValue(props.initialValue ?? undefined);
194
+ setValue(initialValue ?? undefined);
171
195
  setStatus("error");
172
196
  toast.error("Dit veld is verplicht");
173
197
  return;
174
198
  }
175
199
 
176
200
  // If the strategy is blur, update the value
177
- handleMutateInstant(next as MaybeValue<TValue, Required>);
201
+ handleMutateInstant(next as TValue);
178
202
  }
179
203
 
180
204
  return { value, setValue, handleChange, handleBlur, status, isAllowed };
@@ -0,0 +1,9 @@
1
+ // export function defaultParser<
2
+ // TValue extends string | number | Date | boolean | JSON | EditorJSONContent,
3
+ // TResult extends string | number | Date | boolean | JSON | EditorJSONContent,
4
+ // >() {
5
+ // return {
6
+ // decode: <>(value: TResult) => value as unknown as TValue,
7
+ // encode: (value: TValue) => value as unknown as TResult,
8
+ // };
9
+ // }
@@ -5,7 +5,7 @@ export const inlineEditVariants = cva("", {
5
5
  variant: {
6
6
  default: "",
7
7
  table:
8
- "min-h-9 px-3 py-1 text-base md:text-sm rounded-none h-full w-full border-none outline-none ring-0 focus:border-0 focus:outline-none focus:ring-0 focus:ring-offset-0 focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0",
8
+ "min-h-8 px-3 py-1 text-base md:text-sm rounded-none h-full w-full border-none outline-none ring-0 focus:border-0 focus:outline-none focus:ring-0 focus:ring-offset-0 focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0",
9
9
  },
10
10
  status: {
11
11
  idle: "",
@@ -55,7 +55,7 @@ export function Dropzone({
55
55
  <Button
56
56
  className={cn(
57
57
  "relative h-auto w-full flex-col overflow-hidden p-8",
58
- isDragActive && "ring-ring outline-none ring-1",
58
+ isDragActive && "outline-none ring-1 ring-ring",
59
59
  className,
60
60
  )}
61
61
  disabled={disabled}
@@ -88,11 +88,11 @@ export function DropzoneContent({ children, className }: DropzoneContentProps) {
88
88
 
89
89
  return (
90
90
  <div className={cn("flex flex-col items-center justify-center", className)}>
91
- <div className="bg-muted text-muted-foreground flex size-8 items-center justify-center rounded-md">
91
+ <div className="flex size-8 items-center justify-center rounded-md bg-muted text-muted-foreground">
92
92
  <UploadIcon size={16} />
93
93
  </div>
94
94
 
95
- <p className="my-2 w-full truncate text-sm font-medium">
95
+ <p className="my-2 w-full truncate font-medium text-sm">
96
96
  {src.length > maxLabelItems
97
97
  ? `${new Intl.ListFormat("en").format(
98
98
  src.slice(0, maxLabelItems).map((file) => file.name),
@@ -100,7 +100,7 @@ export function DropzoneContent({ children, className }: DropzoneContentProps) {
100
100
  : new Intl.ListFormat("en").format(src.map((file) => file.name))}
101
101
  </p>
102
102
 
103
- <p className="text-muted-foreground w-full text-wrap text-xs">
103
+ <p className="w-full text-wrap text-muted-foreground text-xs">
104
104
  Drag and drop or click to replace
105
105
  </p>
106
106
  </div>
@@ -137,16 +137,16 @@ export function DropzoneEmptyState({ children, className }: DropzoneEmptyStatePr
137
137
  }
138
138
  return (
139
139
  <div className={cn("flex flex-col items-center justify-center", className)}>
140
- <div className="bg-muted text-muted-foreground flex size-8 items-center justify-center rounded-md">
140
+ <div className="flex size-8 items-center justify-center rounded-md bg-muted text-muted-foreground">
141
141
  <UploadIcon size={16} />
142
142
  </div>
143
- <p className="my-2 w-full truncate text-wrap text-sm font-medium">
143
+ <p className="my-2 w-full truncate text-wrap font-medium text-sm">
144
144
  Upload {maxFiles === 1 ? "a file" : "files"}
145
145
  </p>
146
- <p className="text-muted-foreground w-full truncate text-wrap text-xs">
146
+ <p className="w-full truncate text-wrap text-muted-foreground text-xs">
147
147
  Drag and drop or click to upload
148
148
  </p>
149
- {caption && <p className="text-muted-foreground text-wrap text-xs">{caption}.</p>}
149
+ {caption && <p className="text-wrap text-muted-foreground text-xs">{caption}.</p>}
150
150
  </div>
151
151
  );
152
152
  }
@@ -29,7 +29,7 @@ import {
29
29
  CarouselItem,
30
30
  CarouselNext,
31
31
  CarouselPrevious,
32
- } from "@/components/ui/carousel";
32
+ } from "@/components/ui/carousel.client";
33
33
  import { Dialog, DialogContent, DialogTrigger } from "@/components/ui/dialog.client";
34
34
  import { Input } from "@/components/ui/input";
35
35
  import { Skeleton } from "@/components/ui/skeleton";
@@ -108,7 +108,7 @@ export function ImageGrid({ nodes, moveAction, optimistic, disabled, ...props }:
108
108
  {!disabled && (
109
109
  <label
110
110
  htmlFor="file-upload"
111
- className="border-muted-foreground bg-muted hover:border-primary relative flex aspect-square w-full cursor-pointer flex-col items-center justify-center rounded-lg border border-dashed"
111
+ className="relative flex aspect-square w-full cursor-pointer flex-col items-center justify-center rounded-lg border border-muted-foreground border-dashed bg-muted hover:border-primary"
112
112
  >
113
113
  <UploadIcon className="h-8 w-8" />
114
114
  <Input
@@ -184,7 +184,7 @@ function ImageGridItem({ node, index, setCurrent }: ImageGridItemProps) {
184
184
  alt="Image Preview"
185
185
  width={100}
186
186
  height={100}
187
- className="bg-muted absolute inset-0 h-full w-full cursor-pointer rounded-lg object-contain"
187
+ className="absolute inset-0 h-full w-full cursor-pointer rounded-lg bg-muted object-contain"
188
188
  loader={imageLoader}
189
189
  />
190
190
  </DialogTrigger>
@@ -195,7 +195,7 @@ function ImageGridItem({ node, index, setCurrent }: ImageGridItemProps) {
195
195
  type="button"
196
196
  variant="secondary"
197
197
  size="icon"
198
- className="absolute right-2 top-2 hidden p-1 group-hover:flex"
198
+ className="absolute top-2 right-2 hidden p-1 group-hover:flex"
199
199
  >
200
200
  <GripIcon className="size-4" />
201
201
  </Button>
@@ -205,7 +205,7 @@ function ImageGridItem({ node, index, setCurrent }: ImageGridItemProps) {
205
205
  variant="destructive"
206
206
  size="icon"
207
207
  onClick={() => uploadZone.onRemove([node.id])}
208
- className="absolute left-2 top-2 hidden p-1 group-hover:flex"
208
+ className="absolute top-2 left-2 hidden p-1 group-hover:flex"
209
209
  >
210
210
  <Icons.trash className="size-4" />
211
211
  </Button>
@@ -17,6 +17,7 @@ export type UploadZoneContextValue = {
17
17
  invalidate?: () => Promise<void> | void;
18
18
  cancel?: () => Promise<void> | void;
19
19
  };
20
+ disabled?: boolean;
20
21
  // updateData: (newValue: FileNode[] | ((oldValue: FileNode[]) => FileNode[])) => Promise<void>;
21
22
  // invalidateQuery: () => Promise<void> | void;
22
23
  };
@@ -10,7 +10,7 @@ import type { FileNode, Node, UploadFileSchema } from "../lib/validators";
10
10
  import { UploadZoneContext, type UploadZoneContextValue } from "./upload-zone-context.client";
11
11
 
12
12
  export type UploadZoneProps = ComponentProps<"div"> &
13
- Pick<UploadZoneContextValue, "optimistic" | "uploadClient"> & {
13
+ Pick<UploadZoneContextValue, "optimistic" | "uploadClient" | "disabled"> & {
14
14
  variables: Pick<UploadFileSchema, "namespace" | "parentId" | "mode" | "hidden" | "readonly">;
15
15
  uploadHooks?: UploadHooks;
16
16
 
@@ -25,6 +25,7 @@ export function UploadZone({
25
25
  uploadHooks,
26
26
  onUploadCompleted,
27
27
  onUploadFailed,
28
+ disabled = false,
28
29
  children,
29
30
  className,
30
31
  ...props
@@ -106,7 +107,11 @@ export function UploadZone({
106
107
  [onUpload],
107
108
  );
108
109
 
109
- const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop, noClick: true });
110
+ const { getRootProps, getInputProps, isDragActive } = useDropzone({
111
+ onDrop,
112
+ noClick: true,
113
+ disabled,
114
+ });
110
115
 
111
116
  return (
112
117
  <div {...props} {...getRootProps()} className={cn("relative z-0", className)}>
@@ -114,7 +119,7 @@ export function UploadZone({
114
119
 
115
120
  {/* Show drag overlay when drag is active */}
116
121
  {isDragActive && (
117
- <div className="bg-primary/20 absolute inset-0 z-10 rounded-md opacity-70 backdrop-blur-3xl" />
122
+ <div className="absolute inset-0 z-10 rounded-md bg-primary/20 opacity-70 backdrop-blur-3xl" />
118
123
  )}
119
124
 
120
125
  <UploadZoneContext
@@ -123,6 +128,7 @@ export function UploadZone({
123
128
  onUpload,
124
129
  onRemove: deleteMutation.mutateAsync,
125
130
  optimistic,
131
+ disabled,
126
132
  }}
127
133
  >
128
134
  {children}
package/src/styles.css CHANGED
@@ -1,8 +1,6 @@
1
1
  @import "tailwindcss";
2
2
  @import "tw-animate-css";
3
3
 
4
- @plugin "@tailwindcss/typography";
5
-
6
4
  @source ".";
7
5
 
8
6
  @custom-variant dark (&:is(.dark *));
@@ -117,7 +115,7 @@
117
115
  --chart-4: oklch(0.44 0.16 27);
118
116
  --chart-5: oklch(0.65 0.19 41);
119
117
 
120
- --radius: 0.5rem;
118
+ --radius: 0.4rem;
121
119
  --content: 1.75rem;
122
120
 
123
121
  --header-top-bar-height: 3.5rem;
@@ -1,25 +0,0 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
- import * as React$1 from "react";
3
- import * as AccordionPrimitive from "@radix-ui/react-accordion";
4
-
5
- //#region src/components/ui/accordion.d.ts
6
- declare function Accordion({
7
- ...props
8
- }: React$1.ComponentProps<typeof AccordionPrimitive.Root>): react_jsx_runtime0.JSX.Element;
9
- declare function AccordionItem({
10
- className,
11
- ...props
12
- }: React$1.ComponentProps<typeof AccordionPrimitive.Item>): react_jsx_runtime0.JSX.Element;
13
- declare function AccordionTrigger({
14
- className,
15
- children,
16
- ...props
17
- }: React$1.ComponentProps<typeof AccordionPrimitive.Trigger>): react_jsx_runtime0.JSX.Element;
18
- declare function AccordionContent({
19
- className,
20
- children,
21
- ...props
22
- }: React$1.ComponentProps<typeof AccordionPrimitive.Content>): react_jsx_runtime0.JSX.Element;
23
- //#endregion
24
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
25
- //# sourceMappingURL=accordion.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"accordion.d.mts","names":[],"sources":["../../../src/components/ui/accordion.tsx"],"mappings":";;;;;iBAOS,SAAA,CAAA;EAAA,GAAe;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,kBAAA,CAAmB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAI5E,aAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,kBAAA,CAAmB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAU9C,gBAAA,CAAA;EACP,SAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,kBAAA,CAAmB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAkBjD,gBAAA,CAAA;EACP,SAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,kBAAA,CAAmB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,46 +0,0 @@
1
- "use client";
2
-
3
- import { cn } from "../../lib/utils/cn.mjs";
4
- import { jsx } from "react/jsx-runtime";
5
- import * as AccordionPrimitive from "@radix-ui/react-accordion";
6
-
7
- //#region src/components/ui/accordion.tsx
8
- function Accordion({ ...props }) {
9
- return /* @__PURE__ */ jsx(AccordionPrimitive.Root, {
10
- "data-slot": "accordion",
11
- ...props
12
- });
13
- }
14
- function AccordionItem({ className, ...props }) {
15
- return /* @__PURE__ */ jsx(AccordionPrimitive.Item, {
16
- "data-slot": "accordion-item",
17
- className: cn("border-b last:border-b-0", className),
18
- ...props
19
- });
20
- }
21
- function AccordionTrigger({ className, children, ...props }) {
22
- return /* @__PURE__ */ jsx(AccordionPrimitive.Header, {
23
- className: "flex",
24
- children: /* @__PURE__ */ jsx(AccordionPrimitive.Trigger, {
25
- "data-slot": "accordion-trigger",
26
- className: cn("focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium outline-none transition-all hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180", className),
27
- ...props,
28
- children
29
- })
30
- });
31
- }
32
- function AccordionContent({ className, children, ...props }) {
33
- return /* @__PURE__ */ jsx(AccordionPrimitive.Content, {
34
- "data-slot": "accordion-content",
35
- className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
36
- ...props,
37
- children: /* @__PURE__ */ jsx("div", {
38
- className: cn("pb-4 pt-0", className),
39
- children
40
- })
41
- });
42
- }
43
-
44
- //#endregion
45
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
46
- //# sourceMappingURL=accordion.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"accordion.mjs","names":[],"sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["\"use client\";\n\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/lib/utils/cn\";\n\nfunction Accordion({ ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"border-b last:border-b-0\", className)}\n {...props}\n />\n );\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium outline-none transition-all hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180\",\n className,\n )}\n {...props}\n >\n {/* <ChevronDownIcon className=\"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200\" /> */}\n {children}\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm\"\n {...props}\n >\n <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger };\n"],"mappings":";;;;;;;AAOA,SAAS,UAAU,EAAE,GAAG,SAA+D;AACrF,QAAO,oBAAC,mBAAmB;EAAK,aAAU;EAAY,GAAI;GAAS;;AAGrE,SAAS,cAAc,EACrB,WACA,GAAG,SACoD;AACvD,QACE,oBAAC,mBAAmB;EAClB,aAAU;EACV,WAAW,GAAG,4BAA4B,UAAU;EACpD,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACuD;AAC1D,QACE,oBAAC,mBAAmB;EAAO,WAAU;YACnC,oBAAC,mBAAmB;GAClB,aAAU;GACV,WAAW,GACT,8SACA,UACD;GACD,GAAI;GAGH;IAC0B;GACH;;AAIhC,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACuD;AAC1D,QACE,oBAAC,mBAAmB;EAClB,aAAU;EACV,WAAU;EACV,GAAI;YAEJ,oBAAC;GAAI,WAAW,GAAG,aAAa,UAAU;GAAG;IAAe;GACjC"}
@@ -1,43 +0,0 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
- import * as React$1 from "react";
3
- import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
4
-
5
- //#region src/components/ui/alert-dialog.d.ts
6
- declare function AlertDialog(props: React$1.ComponentProps<typeof AlertDialogPrimitive.Root>): react_jsx_runtime0.JSX.Element;
7
- declare function AlertDialogTrigger(props: React$1.ComponentProps<typeof AlertDialogPrimitive.Trigger>): react_jsx_runtime0.JSX.Element;
8
- declare function AlertDialogPortal(props: React$1.ComponentProps<typeof AlertDialogPrimitive.Portal>): react_jsx_runtime0.JSX.Element;
9
- declare function AlertDialogOverlay({
10
- className,
11
- ...props
12
- }: React$1.ComponentProps<typeof AlertDialogPrimitive.Overlay>): react_jsx_runtime0.JSX.Element;
13
- declare function AlertDialogContent({
14
- className,
15
- ...props
16
- }: React$1.ComponentProps<typeof AlertDialogPrimitive.Content>): react_jsx_runtime0.JSX.Element;
17
- declare function AlertDialogHeader({
18
- className,
19
- ...props
20
- }: React$1.ComponentProps<"div">): react_jsx_runtime0.JSX.Element;
21
- declare function AlertDialogFooter({
22
- className,
23
- ...props
24
- }: React$1.ComponentProps<"div">): react_jsx_runtime0.JSX.Element;
25
- declare function AlertDialogTitle({
26
- className,
27
- ...props
28
- }: React$1.ComponentProps<typeof AlertDialogPrimitive.Title>): react_jsx_runtime0.JSX.Element;
29
- declare function AlertDialogDescription({
30
- className,
31
- ...props
32
- }: React$1.ComponentProps<typeof AlertDialogPrimitive.Description>): react_jsx_runtime0.JSX.Element;
33
- declare function AlertDialogAction({
34
- className,
35
- ...props
36
- }: React$1.ComponentProps<typeof AlertDialogPrimitive.Action>): react_jsx_runtime0.JSX.Element;
37
- declare function AlertDialogCancel({
38
- className,
39
- ...props
40
- }: React$1.ComponentProps<typeof AlertDialogPrimitive.Cancel>): react_jsx_runtime0.JSX.Element;
41
- //#endregion
42
- export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger };
43
- //# sourceMappingURL=alert-dialog.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"alert-dialog.d.mts","names":[],"sources":["../../../src/components/ui/alert-dialog.tsx"],"mappings":";;;;;iBAQS,WAAA,CAAY,KAAA,EAAO,OAAA,CAAM,cAAA,QAAsB,oBAAA,CAAqB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAIzE,kBAAA,CAAmB,KAAA,EAAO,OAAA,CAAM,cAAA,QAAsB,oBAAA,CAAqB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAInF,iBAAA,CAAkB,KAAA,EAAO,OAAA,CAAM,cAAA,QAAsB,oBAAA,CAAqB,MAAA,IAAO,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAIjF,kBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,oBAAA,CAAqB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAanD,kBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,oBAAA,CAAqB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAgBnD,iBAAA,CAAA;EAAoB,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAUtE,iBAAA,CAAA;EAAoB,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAUtE,gBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,oBAAA,CAAqB,KAAA,IAAM,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAUjD,sBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,oBAAA,CAAqB,WAAA,IAAY,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAUvD,iBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,oBAAA,CAAqB,MAAA,IAAO,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAIlD,iBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,oBAAA,CAAqB,MAAA,IAAO,kBAAA,CAAA,GAAA,CAAA,OAAA"}