@tulip-systems/core 0.6.1 → 0.8.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 (840) hide show
  1. package/LICENSE +662 -0
  2. package/dist/auth/server.d.mts +3 -3
  3. package/dist/auth/server.mjs +3 -3
  4. package/dist/components/client.d.mts +19 -3
  5. package/dist/components/client.mjs +18 -2
  6. package/dist/components/editor/components/editor.client.d.mts +4 -3
  7. package/dist/components/editor/components/editor.client.d.mts.map +1 -1
  8. package/dist/components/editor/components/editor.client.mjs +5 -2
  9. package/dist/components/editor/components/editor.client.mjs.map +1 -1
  10. package/dist/components/editor/components/menu-nodes.client.mjs +1 -1
  11. package/dist/components/editor/components/menu-nodes.client.mjs.map +1 -1
  12. package/dist/components/editor/components/menu.client.mjs +3 -3
  13. package/dist/components/editor/components/menu.client.mjs.map +1 -1
  14. package/dist/components/editor/extensions/file-handler/extension.d.mts +4 -4
  15. package/dist/components/editor/extensions/file-handler/extension.d.mts.map +1 -1
  16. package/dist/components/editor/extensions/file-handler/extension.mjs.map +1 -1
  17. package/dist/components/editor/extensions/file-handler/strategy.d.mts +4 -6
  18. package/dist/components/editor/extensions/file-handler/strategy.d.mts.map +1 -1
  19. package/dist/components/editor/extensions/file-handler/strategy.mjs +11 -11
  20. package/dist/components/editor/extensions/file-handler/strategy.mjs.map +1 -1
  21. package/dist/components/editor/extensions/file-handler/utils.mjs +1 -1
  22. package/dist/components/editor/extensions/file-handler/utils.mjs.map +1 -1
  23. package/dist/components/editor/extensions/image/extension.mjs +9 -9
  24. package/dist/components/editor/extensions/image/extension.mjs.map +1 -1
  25. package/dist/components/editor/lib/constants.d.mts +1 -1
  26. package/dist/components/editor/lib/constants.mjs +1 -1
  27. package/dist/components/editor/lib/extensions.d.mts +1 -1
  28. package/dist/components/editor/lib/helpers.d.mts +11 -3
  29. package/dist/components/editor/lib/helpers.d.mts.map +1 -1
  30. package/dist/components/editor/lib/helpers.mjs +27 -13
  31. package/dist/components/editor/lib/helpers.mjs.map +1 -1
  32. package/dist/components/emails/forget-password-email.mjs +6 -6
  33. package/dist/components/emails/forget-password-email.mjs.map +1 -1
  34. package/dist/components/header/back-button.client.mjs +2 -2
  35. package/dist/components/header/back-button.client.mjs.map +1 -1
  36. package/dist/components/header/bottom-bar.client.mjs +2 -2
  37. package/dist/components/header/bottom-bar.client.mjs.map +1 -1
  38. package/dist/components/header/breadcrumbs.client.mjs +1 -1
  39. package/dist/components/header/breadcrumbs.client.mjs.map +1 -1
  40. package/dist/components/header/header.client.mjs +1 -1
  41. package/dist/components/header/header.client.mjs.map +1 -1
  42. package/dist/components/layouts/empty-page.mjs +2 -2
  43. package/dist/components/layouts/empty-page.mjs.map +1 -1
  44. package/dist/components/layouts/error-page.mjs +3 -3
  45. package/dist/components/layouts/error-page.mjs.map +1 -1
  46. package/dist/components/layouts/providers.client.d.mts.map +1 -1
  47. package/dist/components/layouts/providers.client.mjs +3 -2
  48. package/dist/components/layouts/providers.client.mjs.map +1 -1
  49. package/dist/components/layouts/root-loading.mjs +2 -2
  50. package/dist/components/layouts/root-loading.mjs.map +1 -1
  51. package/dist/components/layouts/tab-layout.mjs +1 -1
  52. package/dist/components/layouts/tab-layout.mjs.map +1 -1
  53. package/dist/components/lists/data-list.mjs +1 -1
  54. package/dist/components/lists/data-list.mjs.map +1 -1
  55. package/dist/components/lists/data-stack.mjs +1 -1
  56. package/dist/components/lists/data-stack.mjs.map +1 -1
  57. package/dist/components/navigation/admin-sidebar-header.client.mjs +3 -3
  58. package/dist/components/navigation/admin-sidebar-header.client.mjs.map +1 -1
  59. package/dist/components/navigation/admin-sidebar-skeleton.mjs +1 -1
  60. package/dist/components/navigation/admin-sidebar-skeleton.mjs.map +1 -1
  61. package/dist/components/ui/accordion.client.d.mts +26 -0
  62. package/dist/components/ui/accordion.client.d.mts.map +1 -0
  63. package/dist/components/ui/accordion.client.mjs +58 -0
  64. package/dist/components/ui/accordion.client.mjs.map +1 -0
  65. package/dist/components/ui/alert-dialog.client.d.mts +61 -0
  66. package/dist/components/ui/alert-dialog.client.d.mts.map +1 -0
  67. package/dist/components/ui/alert-dialog.client.mjs +104 -0
  68. package/dist/components/ui/alert-dialog.client.mjs.map +1 -0
  69. package/dist/components/ui/alert.d.mts +5 -1
  70. package/dist/components/ui/alert.d.mts.map +1 -1
  71. package/dist/components/ui/alert.mjs +13 -6
  72. package/dist/components/ui/alert.mjs.map +1 -1
  73. package/dist/components/ui/aspect-ratio.client.d.mts +10 -0
  74. package/dist/components/ui/aspect-ratio.client.d.mts.map +1 -0
  75. package/dist/components/ui/aspect-ratio.client.mjs +16 -0
  76. package/dist/components/ui/aspect-ratio.client.mjs.map +1 -0
  77. package/dist/components/ui/avatar.client.d.mts +21 -6
  78. package/dist/components/ui/avatar.client.d.mts.map +1 -1
  79. package/dist/components/ui/avatar.client.mjs +31 -9
  80. package/dist/components/ui/avatar.client.mjs.map +1 -1
  81. package/dist/components/ui/badge.d.mts +1 -1
  82. package/dist/components/ui/badge.d.mts.map +1 -1
  83. package/dist/components/ui/badge.mjs +11 -8
  84. package/dist/components/ui/badge.mjs.map +1 -1
  85. package/dist/components/ui/breadcrumb.d.mts +3 -1
  86. package/dist/components/ui/breadcrumb.d.mts.map +1 -1
  87. package/dist/components/ui/breadcrumb.mjs +7 -7
  88. package/dist/components/ui/breadcrumb.mjs.map +1 -1
  89. package/dist/components/ui/button-group.d.mts +29 -0
  90. package/dist/components/ui/button-group.d.mts.map +1 -0
  91. package/dist/components/ui/button-group.mjs +41 -0
  92. package/dist/components/ui/button-group.mjs.map +1 -0
  93. package/dist/components/ui/button.d.mts +2 -2
  94. package/dist/components/ui/button.d.mts.map +1 -1
  95. package/dist/components/ui/button.mjs +19 -13
  96. package/dist/components/ui/button.mjs.map +1 -1
  97. package/dist/components/ui/{calendar.d.mts → calendar.client.d.mts} +7 -4
  98. package/dist/components/ui/calendar.client.d.mts.map +1 -0
  99. package/dist/components/ui/{calendar.mjs → calendar.client.mjs} +22 -19
  100. package/dist/components/ui/calendar.client.mjs.map +1 -0
  101. package/dist/components/ui/card.d.mts +9 -2
  102. package/dist/components/ui/card.d.mts.map +1 -1
  103. package/dist/components/ui/card.mjs +15 -7
  104. package/dist/components/ui/card.mjs.map +1 -1
  105. package/dist/components/ui/{carousel.d.mts → carousel.client.d.mts} +12 -3
  106. package/dist/components/ui/carousel.client.d.mts.map +1 -0
  107. package/dist/components/ui/{carousel.mjs → carousel.client.mjs} +10 -10
  108. package/dist/components/ui/carousel.client.mjs.map +1 -0
  109. package/dist/components/ui/chart.client.d.mts.map +1 -1
  110. package/dist/components/ui/chart.client.mjs +11 -11
  111. package/dist/components/ui/chart.client.mjs.map +1 -1
  112. package/dist/components/ui/checkbox.client.d.mts +12 -0
  113. package/dist/components/ui/checkbox.client.d.mts.map +1 -0
  114. package/dist/components/ui/checkbox.client.mjs +24 -0
  115. package/dist/components/ui/checkbox.client.mjs.map +1 -0
  116. package/dist/components/ui/collapsible.client.d.mts +6 -6
  117. package/dist/components/ui/collapsible.client.d.mts.map +1 -1
  118. package/dist/components/ui/collapsible.client.mjs +6 -6
  119. package/dist/components/ui/collapsible.client.mjs.map +1 -1
  120. package/dist/components/ui/combobox-dropdown.client.d.mts +1 -1
  121. package/dist/components/ui/combobox-dropdown.client.mjs +3 -2
  122. package/dist/components/ui/combobox-dropdown.client.mjs.map +1 -1
  123. package/dist/components/ui/combobox.client.mjs +5 -5
  124. package/dist/components/ui/combobox.client.mjs.map +1 -1
  125. package/dist/components/ui/{command.d.mts → command.client.d.mts} +8 -2
  126. package/dist/components/ui/command.client.d.mts.map +1 -0
  127. package/dist/components/ui/command.client.mjs +91 -0
  128. package/dist/components/ui/command.client.mjs.map +1 -0
  129. package/dist/components/ui/context-menu.client.d.mts +86 -0
  130. package/dist/components/ui/context-menu.client.d.mts.map +1 -0
  131. package/dist/components/ui/context-menu.client.mjs +128 -0
  132. package/dist/components/ui/context-menu.client.mjs.map +1 -0
  133. package/dist/components/ui/date-picker.client.mjs +2 -2
  134. package/dist/components/ui/date-picker.client.mjs.map +1 -1
  135. package/dist/components/ui/dialog.client.d.mts +19 -12
  136. package/dist/components/ui/dialog.client.d.mts.map +1 -1
  137. package/dist/components/ui/dialog.client.mjs +40 -29
  138. package/dist/components/ui/dialog.client.mjs.map +1 -1
  139. package/dist/components/ui/drawer.client.d.mts.map +1 -1
  140. package/dist/components/ui/drawer.client.mjs +5 -5
  141. package/dist/components/ui/drawer.client.mjs.map +1 -1
  142. package/dist/components/ui/dropdown-menu.client.d.mts +85 -0
  143. package/dist/components/ui/dropdown-menu.client.d.mts.map +1 -0
  144. package/dist/components/ui/dropdown-menu.client.mjs +131 -0
  145. package/dist/components/ui/dropdown-menu.client.mjs.map +1 -0
  146. package/dist/components/ui/empty.d.mts +36 -0
  147. package/dist/components/ui/empty.d.mts.map +1 -0
  148. package/dist/components/ui/empty.mjs +62 -0
  149. package/dist/components/ui/empty.mjs.map +1 -0
  150. package/dist/components/ui/field.client.d.mts +65 -0
  151. package/dist/components/ui/field.client.d.mts.map +1 -0
  152. package/dist/components/ui/field.client.mjs +114 -0
  153. package/dist/components/ui/field.client.mjs.map +1 -0
  154. package/dist/components/ui/form.client.d.mts +3 -4
  155. package/dist/components/ui/form.client.d.mts.map +1 -1
  156. package/dist/components/ui/form.client.mjs +4 -4
  157. package/dist/components/ui/form.client.mjs.map +1 -1
  158. package/dist/components/ui/hover-card.client.d.mts +6 -6
  159. package/dist/components/ui/hover-card.client.d.mts.map +1 -1
  160. package/dist/components/ui/hover-card.client.mjs +14 -11
  161. package/dist/components/ui/hover-card.client.mjs.map +1 -1
  162. package/dist/components/ui/{input-date-time.d.mts → input-date-time.client.d.mts} +3 -3
  163. package/dist/components/ui/input-date-time.client.d.mts.map +1 -0
  164. package/dist/components/ui/{input-date-time.mjs → input-date-time.client.mjs} +4 -2
  165. package/dist/components/ui/input-date-time.client.mjs.map +1 -0
  166. package/dist/components/ui/input-date.d.mts +1 -1
  167. package/dist/components/ui/input-date.d.mts.map +1 -1
  168. package/dist/components/ui/input-date.mjs.map +1 -1
  169. package/dist/components/ui/input-group.client.d.mts +59 -0
  170. package/dist/components/ui/input-group.client.d.mts.map +1 -0
  171. package/dist/components/ui/input-group.client.mjs +106 -0
  172. package/dist/components/ui/input-group.client.mjs.map +1 -0
  173. package/dist/components/ui/input-recipient.mjs +11 -11
  174. package/dist/components/ui/input-recipient.mjs.map +1 -1
  175. package/dist/components/ui/input-time.d.mts +1 -1
  176. package/dist/components/ui/input-time.d.mts.map +1 -1
  177. package/dist/components/ui/input-time.mjs.map +1 -1
  178. package/dist/components/ui/input.d.mts.map +1 -1
  179. package/dist/components/ui/input.mjs +1 -1
  180. package/dist/components/ui/input.mjs.map +1 -1
  181. package/dist/components/ui/item.d.mts +63 -0
  182. package/dist/components/ui/item.d.mts.map +1 -0
  183. package/dist/components/ui/item.mjs +119 -0
  184. package/dist/components/ui/item.mjs.map +1 -0
  185. package/dist/components/ui/kbd.d.mts +14 -0
  186. package/dist/components/ui/kbd.d.mts.map +1 -0
  187. package/dist/components/ui/kbd.mjs +22 -0
  188. package/dist/components/ui/kbd.mjs.map +1 -0
  189. package/dist/components/ui/label.d.mts +4 -4
  190. package/dist/components/ui/label.d.mts.map +1 -1
  191. package/dist/components/ui/label.mjs +5 -5
  192. package/dist/components/ui/label.mjs.map +1 -1
  193. package/dist/components/ui/loader.d.mts +7 -0
  194. package/dist/components/ui/loader.d.mts.map +1 -0
  195. package/dist/components/ui/loader.mjs +63 -0
  196. package/dist/components/ui/loader.mjs.map +1 -0
  197. package/dist/components/ui/navigation-menu.d.mts +11 -11
  198. package/dist/components/ui/navigation-menu.d.mts.map +1 -1
  199. package/dist/components/ui/navigation-menu.mjs +18 -20
  200. package/dist/components/ui/navigation-menu.mjs.map +1 -1
  201. package/dist/components/ui/pagination.d.mts +8 -2
  202. package/dist/components/ui/pagination.d.mts.map +1 -1
  203. package/dist/components/ui/pagination.mjs +29 -21
  204. package/dist/components/ui/pagination.mjs.map +1 -1
  205. package/dist/components/ui/popover.client.d.mts +35 -0
  206. package/dist/components/ui/popover.client.d.mts.map +1 -0
  207. package/dist/components/ui/popover.client.mjs +59 -0
  208. package/dist/components/ui/popover.client.mjs.map +1 -0
  209. package/dist/components/ui/progress.client.d.mts +4 -4
  210. package/dist/components/ui/progress.client.d.mts.map +1 -1
  211. package/dist/components/ui/progress.client.mjs +7 -7
  212. package/dist/components/ui/progress.client.mjs.map +1 -1
  213. package/dist/components/ui/radio-group.d.mts +5 -5
  214. package/dist/components/ui/radio-group.d.mts.map +1 -1
  215. package/dist/components/ui/radio-group.mjs +10 -11
  216. package/dist/components/ui/radio-group.mjs.map +1 -1
  217. package/dist/components/ui/resizable.client.d.mts +3 -4
  218. package/dist/components/ui/resizable.client.d.mts.map +1 -1
  219. package/dist/components/ui/resizable.client.mjs +5 -9
  220. package/dist/components/ui/resizable.client.mjs.map +1 -1
  221. package/dist/components/ui/scroll-area.d.mts +5 -5
  222. package/dist/components/ui/scroll-area.d.mts.map +1 -1
  223. package/dist/components/ui/scroll-area.mjs +12 -11
  224. package/dist/components/ui/scroll-area.mjs.map +1 -1
  225. package/dist/components/ui/select.client.d.mts +18 -13
  226. package/dist/components/ui/select.client.d.mts.map +1 -1
  227. package/dist/components/ui/select.client.mjs +37 -32
  228. package/dist/components/ui/select.client.mjs.map +1 -1
  229. package/dist/components/ui/separator.d.mts +4 -4
  230. package/dist/components/ui/separator.d.mts.map +1 -1
  231. package/dist/components/ui/separator.mjs +6 -6
  232. package/dist/components/ui/separator.mjs.map +1 -1
  233. package/dist/components/ui/sheet.client.d.mts +9 -7
  234. package/dist/components/ui/sheet.client.d.mts.map +1 -1
  235. package/dist/components/ui/sheet.client.mjs +30 -20
  236. package/dist/components/ui/sheet.client.mjs.map +1 -1
  237. package/dist/components/ui/sidebar.client.mjs +28 -28
  238. package/dist/components/ui/sidebar.client.mjs.map +1 -1
  239. package/dist/components/ui/skeleton.mjs +1 -1
  240. package/dist/components/ui/skeleton.mjs.map +1 -1
  241. package/dist/components/ui/slider.d.mts +4 -4
  242. package/dist/components/ui/slider.d.mts.map +1 -1
  243. package/dist/components/ui/slider.mjs +11 -11
  244. package/dist/components/ui/slider.mjs.map +1 -1
  245. package/dist/components/ui/spinner.d.mts +10 -0
  246. package/dist/components/ui/spinner.d.mts.map +1 -0
  247. package/dist/components/ui/spinner.mjs +9 -55
  248. package/dist/components/ui/spinner.mjs.map +1 -1
  249. package/dist/components/ui/switch.client.d.mts +15 -0
  250. package/dist/components/ui/switch.client.d.mts.map +1 -0
  251. package/dist/components/ui/switch.client.mjs +23 -0
  252. package/dist/components/ui/switch.client.mjs.map +1 -0
  253. package/dist/components/ui/tabs.client.d.mts +31 -0
  254. package/dist/components/ui/tabs.client.d.mts.map +1 -0
  255. package/dist/components/ui/tabs.client.mjs +49 -0
  256. package/dist/components/ui/tabs.client.mjs.map +1 -0
  257. package/dist/components/ui/textarea.d.mts.map +1 -1
  258. package/dist/components/ui/textarea.mjs +1 -1
  259. package/dist/components/ui/textarea.mjs.map +1 -1
  260. package/dist/components/ui/toggle-group.client.d.mts +11 -6
  261. package/dist/components/ui/toggle-group.client.d.mts.map +1 -1
  262. package/dist/components/ui/toggle-group.client.mjs +20 -12
  263. package/dist/components/ui/toggle-group.client.mjs.map +1 -1
  264. package/dist/components/ui/{toggle.d.mts → toggle.client.d.mts} +6 -6
  265. package/dist/components/ui/toggle.client.d.mts.map +1 -0
  266. package/dist/components/ui/toggle.client.mjs +40 -0
  267. package/dist/components/ui/toggle.client.mjs.map +1 -0
  268. package/dist/components/ui/tooltip.client.d.mts +7 -7
  269. package/dist/components/ui/tooltip.client.d.mts.map +1 -1
  270. package/dist/components/ui/tooltip.client.mjs +10 -10
  271. package/dist/components/ui/tooltip.client.mjs.map +1 -1
  272. package/dist/components.d.mts +13 -21
  273. package/dist/components.mjs +13 -21
  274. package/dist/config/server.d.mts +1 -3
  275. package/dist/config/server.mjs +1 -4
  276. package/dist/config.d.mts +2 -2
  277. package/dist/config.mjs +1 -1
  278. package/dist/data-tables/client.d.mts +2 -1
  279. package/dist/data-tables/client.mjs +2 -1
  280. package/dist/data-tables.d.mts +1 -1
  281. package/dist/database/client.d.mts +1 -0
  282. package/dist/database/client.mjs +1 -0
  283. package/dist/database/server.d.mts +2 -0
  284. package/dist/database/server.mjs +3 -0
  285. package/dist/database.d.mts +3 -0
  286. package/dist/database.mjs +3 -0
  287. package/dist/emails/client.d.mts +1 -0
  288. package/dist/emails/client.mjs +1 -0
  289. package/dist/emails/server.d.mts +2 -0
  290. package/dist/emails/server.mjs +3 -0
  291. package/dist/emails.d.mts +1 -0
  292. package/dist/emails.mjs +1 -0
  293. package/dist/inline-edit/client.d.mts +2 -2
  294. package/dist/lib/hooks/use-indicator.d.mts.map +1 -1
  295. package/dist/lib/hooks/use-indicator.mjs.map +1 -1
  296. package/dist/lib/utils/markdown.d.mts +10 -0
  297. package/dist/lib/utils/markdown.d.mts.map +1 -0
  298. package/dist/lib/utils/markdown.mjs +15 -0
  299. package/dist/lib/utils/markdown.mjs.map +1 -0
  300. package/dist/lib/utils/url.mjs +2 -1
  301. package/dist/lib/utils/url.mjs.map +1 -1
  302. package/dist/lib/utils/user-agent.mjs +15 -0
  303. package/dist/lib/utils/user-agent.mjs.map +1 -1
  304. package/dist/lib.d.mts +2 -2
  305. package/dist/lib.mjs +2 -2
  306. package/dist/modules/auth/components/auth-layout.server.mjs +2 -2
  307. package/dist/modules/auth/components/auth-layout.server.mjs.map +1 -1
  308. package/dist/modules/auth/components/create-first-user-guard.server.d.mts +16 -0
  309. package/dist/modules/auth/components/create-first-user-guard.server.d.mts.map +1 -0
  310. package/dist/modules/auth/components/create-first-user-guard.server.mjs +16 -0
  311. package/dist/modules/auth/components/create-first-user-guard.server.mjs.map +1 -0
  312. package/dist/modules/auth/components/create-first-user-page.client.mjs +3 -3
  313. package/dist/modules/auth/components/create-first-user-page.client.mjs.map +1 -1
  314. package/dist/modules/auth/components/forget-password-page.client.mjs +1 -1
  315. package/dist/modules/auth/components/forget-password-page.client.mjs.map +1 -1
  316. package/dist/modules/auth/components/guard.server.d.mts +2 -2
  317. package/dist/modules/auth/components/guard.server.mjs +1 -1
  318. package/dist/modules/auth/components/guard.server.mjs.map +1 -1
  319. package/dist/modules/auth/components/login-page.client.mjs +5 -5
  320. package/dist/modules/auth/components/login-page.client.mjs.map +1 -1
  321. package/dist/modules/auth/components/reset-password-page.client.mjs +5 -5
  322. package/dist/modules/auth/components/reset-password-page.client.mjs.map +1 -1
  323. package/dist/modules/auth/db/schema.d.mts +1 -1
  324. package/dist/modules/auth/db/schema.mjs +2 -2
  325. package/dist/modules/auth/handler/create-client.client.d.mts +4838 -229
  326. package/dist/modules/auth/handler/create-client.client.d.mts.map +1 -1
  327. package/dist/modules/auth/handler/create-client.client.mjs.map +1 -1
  328. package/dist/modules/auth/handler/proxy.server.mjs +2 -2
  329. package/dist/modules/auth/handler/proxy.server.mjs.map +1 -1
  330. package/dist/modules/auth/handler/route.server.d.mts +2 -2
  331. package/dist/modules/auth/handler/route.server.d.mts.map +1 -1
  332. package/dist/modules/auth/handler/route.server.mjs.map +1 -1
  333. package/dist/modules/auth/handler/{init.d.mts → service.server.d.mts} +322 -90
  334. package/dist/modules/auth/handler/service.server.d.mts.map +1 -0
  335. package/dist/modules/auth/handler/{init.mjs → service.server.mjs} +19 -8
  336. package/dist/modules/auth/handler/service.server.mjs.map +1 -0
  337. package/dist/modules/auth/hooks/use-session.d.mts +9 -4
  338. package/dist/modules/auth/hooks/use-session.d.mts.map +1 -1
  339. package/dist/modules/auth/lib/helpers.server.d.mts +1 -1
  340. package/dist/modules/auth/lib/permissions.d.mts +1 -1
  341. package/dist/modules/auth/lib/validators.mjs +1 -1
  342. package/dist/modules/commands/components/alert-dialog-command.client.d.mts +9 -9
  343. package/dist/modules/commands/components/alert-dialog-command.client.d.mts.map +1 -1
  344. package/dist/modules/commands/components/alert-dialog-command.client.mjs +3 -3
  345. package/dist/modules/commands/components/alert-dialog-command.client.mjs.map +1 -1
  346. package/dist/modules/commands/components/click-command.client.mjs +2 -2
  347. package/dist/modules/commands/components/click-command.client.mjs.map +1 -1
  348. package/dist/modules/commands/components/dialog-command.client.d.mts +8 -8
  349. package/dist/modules/commands/components/dialog-command.client.d.mts.map +1 -1
  350. package/dist/modules/commands/components/dialog-command.client.mjs +2 -2
  351. package/dist/modules/commands/components/dialog-command.client.mjs.map +1 -1
  352. package/dist/modules/commands/components/dropdown-command.client.mjs +2 -2
  353. package/dist/modules/commands/components/dropdown-command.client.mjs.map +1 -1
  354. package/dist/modules/commands/components/empty-command.client.mjs +2 -2
  355. package/dist/modules/commands/components/empty-command.client.mjs.map +1 -1
  356. package/dist/modules/commands/components/form-dialog-command.client.d.mts +11 -9
  357. package/dist/modules/commands/components/form-dialog-command.client.d.mts.map +1 -1
  358. package/dist/modules/commands/components/form-dialog-command.client.mjs +8 -6
  359. package/dist/modules/commands/components/form-dialog-command.client.mjs.map +1 -1
  360. package/dist/modules/commands/menus/context-menu.client.d.mts +3 -3
  361. package/dist/modules/commands/menus/context-menu.client.d.mts.map +1 -1
  362. package/dist/modules/commands/menus/context-menu.client.mjs +1 -1
  363. package/dist/modules/commands/menus/context-menu.client.mjs.map +1 -1
  364. package/dist/modules/commands/menus/dropdown-menu.client.mjs +2 -2
  365. package/dist/modules/commands/menus/dropdown-menu.client.mjs.map +1 -1
  366. package/dist/modules/commands/menus/floating-menu.client.mjs +2 -2
  367. package/dist/modules/commands/menus/floating-menu.client.mjs.map +1 -1
  368. package/dist/modules/commands/utils/archive-command.client.mjs +1 -1
  369. package/dist/modules/commands/utils/archive-command.client.mjs.map +1 -1
  370. package/dist/modules/commands/utils/delete-command.client.mjs +1 -1
  371. package/dist/modules/commands/utils/delete-command.client.mjs.map +1 -1
  372. package/dist/modules/config/lib/context.d.mts +9 -10
  373. package/dist/modules/config/lib/context.d.mts.map +1 -1
  374. package/dist/modules/config/lib/context.mjs.map +1 -1
  375. package/dist/modules/data-tables/components/cell/select.client.mjs +1 -1
  376. package/dist/modules/data-tables/components/cell/select.client.mjs.map +1 -1
  377. package/dist/modules/data-tables/components/column-header.mjs +5 -5
  378. package/dist/modules/data-tables/components/column-header.mjs.map +1 -1
  379. package/dist/modules/data-tables/components/filters/combobox.client.mjs +6 -6
  380. package/dist/modules/data-tables/components/filters/combobox.client.mjs.map +1 -1
  381. package/dist/modules/data-tables/components/filters/slider.client.mjs +2 -2
  382. package/dist/modules/data-tables/components/filters/slider.client.mjs.map +1 -1
  383. package/dist/modules/data-tables/components/header.mjs +1 -1
  384. package/dist/modules/data-tables/components/header.mjs.map +1 -1
  385. package/dist/modules/data-tables/components/skeleton.mjs +2 -2
  386. package/dist/modules/data-tables/components/skeleton.mjs.map +1 -1
  387. package/dist/modules/data-tables/components/table.mjs +3 -3
  388. package/dist/modules/data-tables/components/table.mjs.map +1 -1
  389. package/dist/modules/data-tables/components/toolbar.mjs +1 -1
  390. package/dist/modules/data-tables/components/toolbar.mjs.map +1 -1
  391. package/dist/modules/data-tables/lib/converters/search.d.mts +1 -1
  392. package/dist/modules/data-tables/lib/converters/sorting.d.mts +1 -1
  393. package/dist/modules/data-tables/server/get-data.server.d.mts +3 -3
  394. package/dist/modules/data-tables/server/get-data.server.mjs +1 -1
  395. package/dist/modules/data-tables/server/get-data.server.mjs.map +1 -1
  396. package/dist/modules/data-tables/strategies/infinite/strategy.d.mts +1 -1
  397. package/dist/modules/data-tables/strategies/infinite/strategy.mjs +3 -0
  398. package/dist/modules/data-tables/strategies/infinite/strategy.mjs.map +1 -1
  399. package/dist/modules/data-tables/strategies/pagination/components.mjs +3 -3
  400. package/dist/modules/data-tables/strategies/pagination/components.mjs.map +1 -1
  401. package/dist/modules/data-tables/tables/data-table/components/row.mjs +5 -15
  402. package/dist/modules/data-tables/tables/data-table/components/row.mjs.map +1 -1
  403. package/dist/modules/data-tables/tables/inline-table/components/body.mjs +1 -1
  404. package/dist/modules/data-tables/tables/inline-table/components/body.mjs.map +1 -1
  405. package/dist/modules/data-tables/tables/inline-table/components/cells/common.mjs +1 -1
  406. package/dist/modules/data-tables/tables/inline-table/components/cells/common.mjs.map +1 -1
  407. package/dist/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.mjs +1 -1
  408. package/dist/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.mjs.map +1 -1
  409. package/dist/modules/data-tables/tables/inline-table/components/cells/read-only.mjs +1 -1
  410. package/dist/modules/data-tables/tables/inline-table/components/cells/read-only.mjs.map +1 -1
  411. package/dist/modules/data-tables/tables/inline-table/components/row.client.mjs +13 -23
  412. package/dist/modules/data-tables/tables/inline-table/components/row.client.mjs.map +1 -1
  413. package/dist/modules/data-tables/tables/inline-table/components/table.d.mts +1 -0
  414. package/dist/modules/data-tables/tables/inline-table/components/table.d.mts.map +1 -1
  415. package/dist/modules/data-tables/tables/inline-table/components/table.mjs +2 -1
  416. package/dist/modules/data-tables/tables/inline-table/components/table.mjs.map +1 -1
  417. package/dist/modules/data-tables/tables/inline-table/hooks/context.client.d.mts +5 -1
  418. package/dist/modules/data-tables/tables/inline-table/hooks/context.client.d.mts.map +1 -1
  419. package/dist/modules/data-tables/tables/inline-table/hooks/context.client.mjs +2 -1
  420. package/dist/modules/data-tables/tables/inline-table/hooks/context.client.mjs.map +1 -1
  421. package/dist/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.d.mts +30 -0
  422. package/dist/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.d.mts.map +1 -0
  423. package/dist/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.mjs +77 -9
  424. package/dist/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.mjs.map +1 -1
  425. package/dist/modules/{config/db → database/lib}/helpers.d.mts +2 -2
  426. package/dist/modules/database/lib/helpers.d.mts.map +1 -0
  427. package/dist/modules/{config/db → database/lib}/helpers.mjs +1 -1
  428. package/dist/modules/database/lib/helpers.mjs.map +1 -0
  429. package/dist/modules/database/lib/service.server.d.mts +34 -0
  430. package/dist/modules/database/lib/service.server.d.mts.map +1 -0
  431. package/dist/modules/database/lib/service.server.mjs +24 -0
  432. package/dist/modules/database/lib/service.server.mjs.map +1 -0
  433. package/dist/modules/{config/db → database/lib}/types.d.mts +1 -1
  434. package/dist/modules/database/lib/types.d.mts.map +1 -0
  435. package/dist/modules/emails/lib/service.server.d.mts +29 -0
  436. package/dist/modules/emails/lib/service.server.d.mts.map +1 -0
  437. package/dist/modules/emails/lib/service.server.mjs +21 -0
  438. package/dist/modules/emails/lib/service.server.mjs.map +1 -0
  439. package/dist/modules/inline-edit/components/date-input.client.mjs +4 -4
  440. package/dist/modules/inline-edit/components/date-input.client.mjs.map +1 -1
  441. package/dist/modules/inline-edit/components/date-picker.client.mjs +3 -2
  442. package/dist/modules/inline-edit/components/date-picker.client.mjs.map +1 -1
  443. package/dist/modules/inline-edit/components/date-time.client.d.mts +1 -1
  444. package/dist/modules/inline-edit/components/date-time.client.mjs +2 -1
  445. package/dist/modules/inline-edit/components/date-time.client.mjs.map +1 -1
  446. package/dist/modules/inline-edit/components/editor.client.mjs +1 -0
  447. package/dist/modules/inline-edit/components/editor.client.mjs.map +1 -1
  448. package/dist/modules/inline-edit/components/input-recipient.client.mjs +1 -0
  449. package/dist/modules/inline-edit/components/input-recipient.client.mjs.map +1 -1
  450. package/dist/modules/inline-edit/components/input-toggle.client.mjs +3 -2
  451. package/dist/modules/inline-edit/components/input-toggle.client.mjs.map +1 -1
  452. package/dist/modules/inline-edit/components/input.client.d.mts.map +1 -1
  453. package/dist/modules/inline-edit/components/input.client.mjs +6 -3
  454. package/dist/modules/inline-edit/components/input.client.mjs.map +1 -1
  455. package/dist/modules/inline-edit/components/select.client.d.mts +8 -11
  456. package/dist/modules/inline-edit/components/select.client.d.mts.map +1 -1
  457. package/dist/modules/inline-edit/components/select.client.mjs +1 -0
  458. package/dist/modules/inline-edit/components/select.client.mjs.map +1 -1
  459. package/dist/modules/inline-edit/components/switch.client.d.mts +3 -2
  460. package/dist/modules/inline-edit/components/switch.client.d.mts.map +1 -1
  461. package/dist/modules/inline-edit/components/switch.client.mjs +2 -1
  462. package/dist/modules/inline-edit/components/switch.client.mjs.map +1 -1
  463. package/dist/modules/inline-edit/components/toggle.client.mjs +2 -1
  464. package/dist/modules/inline-edit/components/toggle.client.mjs.map +1 -1
  465. package/dist/modules/inline-edit/lib/variants.d.mts +1 -1
  466. package/dist/modules/inline-edit/lib/variants.mjs +1 -1
  467. package/dist/modules/inline-edit/lib/variants.mjs.map +1 -1
  468. package/dist/modules/router/handler/context.server.d.mts +12 -10
  469. package/dist/modules/router/handler/context.server.d.mts.map +1 -1
  470. package/dist/modules/router/handler/init.server.d.mts +13 -11
  471. package/dist/modules/router/handler/init.server.d.mts.map +1 -1
  472. package/dist/modules/router/handler/init.server.mjs +2 -2
  473. package/dist/modules/router/handler/init.server.mjs.map +1 -1
  474. package/dist/modules/router/handler/route.server.d.mts +1 -1
  475. package/dist/modules/storage/components/dropzone.client.d.mts +2 -2
  476. package/dist/modules/storage/components/dropzone.client.d.mts.map +1 -1
  477. package/dist/modules/storage/components/dropzone.client.mjs +8 -8
  478. package/dist/modules/storage/components/dropzone.client.mjs.map +1 -1
  479. package/dist/modules/storage/components/image-grid.client.d.mts +3 -3
  480. package/dist/modules/storage/components/image-grid.client.d.mts.map +1 -1
  481. package/dist/modules/storage/components/image-grid.client.mjs +24 -26
  482. package/dist/modules/storage/components/image-grid.client.mjs.map +1 -1
  483. package/dist/modules/storage/components/image.client.d.mts +8 -0
  484. package/dist/modules/storage/components/image.client.d.mts.map +1 -0
  485. package/dist/modules/storage/components/image.client.mjs +17 -0
  486. package/dist/modules/storage/components/image.client.mjs.map +1 -0
  487. package/dist/modules/storage/components/upload-button.client.d.mts +12 -0
  488. package/dist/modules/storage/components/upload-button.client.d.mts.map +1 -0
  489. package/dist/modules/storage/components/upload-button.client.mjs +34 -0
  490. package/dist/modules/storage/components/upload-button.client.mjs.map +1 -0
  491. package/dist/modules/storage/components/upload-zone-context.client.d.mts +5 -5
  492. package/dist/modules/storage/components/upload-zone-context.client.d.mts.map +1 -1
  493. package/dist/modules/storage/components/upload-zone-context.client.mjs +2 -2
  494. package/dist/modules/storage/components/upload-zone-context.client.mjs.map +1 -1
  495. package/dist/modules/storage/components/upload-zone.client.d.mts +4 -4
  496. package/dist/modules/storage/components/upload-zone.client.d.mts.map +1 -1
  497. package/dist/modules/storage/components/upload-zone.client.mjs +17 -10
  498. package/dist/modules/storage/components/upload-zone.client.mjs.map +1 -1
  499. package/dist/modules/storage/lib/constants.d.mts +1 -5
  500. package/dist/modules/storage/lib/constants.d.mts.map +1 -1
  501. package/dist/modules/storage/lib/constants.mjs +1 -13
  502. package/dist/modules/storage/lib/constants.mjs.map +1 -1
  503. package/dist/modules/storage/lib/helpers.d.mts +14 -28
  504. package/dist/modules/storage/lib/helpers.d.mts.map +1 -1
  505. package/dist/modules/storage/lib/helpers.mjs +17 -75
  506. package/dist/modules/storage/lib/helpers.mjs.map +1 -1
  507. package/dist/modules/storage/lib/procedures.server.d.mts +1991 -0
  508. package/dist/modules/{auth/handler/init.d.mts.map → storage/lib/procedures.server.d.mts.map} +1 -1
  509. package/dist/modules/storage/lib/procedures.server.mjs +22 -0
  510. package/dist/modules/storage/lib/procedures.server.mjs.map +1 -0
  511. package/dist/modules/storage/lib/router-handlers.server.d.mts +41 -0
  512. package/dist/modules/storage/lib/router-handlers.server.d.mts.map +1 -0
  513. package/dist/modules/storage/lib/router-handlers.server.mjs +124 -0
  514. package/dist/modules/storage/lib/router-handlers.server.mjs.map +1 -0
  515. package/dist/modules/storage/lib/schema.d.mts +68 -958
  516. package/dist/modules/storage/lib/schema.d.mts.map +1 -1
  517. package/dist/modules/storage/lib/schema.mjs +28 -65
  518. package/dist/modules/storage/lib/schema.mjs.map +1 -1
  519. package/dist/modules/storage/lib/service.server.d.mts +2155 -141
  520. package/dist/modules/storage/lib/service.server.d.mts.map +1 -1
  521. package/dist/modules/storage/lib/service.server.mjs +453 -242
  522. package/dist/modules/storage/lib/service.server.mjs.map +1 -1
  523. package/dist/modules/storage/lib/upload.client.d.mts +58 -0
  524. package/dist/modules/storage/lib/upload.client.d.mts.map +1 -0
  525. package/dist/modules/storage/lib/upload.client.mjs +87 -0
  526. package/dist/modules/storage/lib/upload.client.mjs.map +1 -0
  527. package/dist/modules/storage/lib/validators.d.mts +297 -835
  528. package/dist/modules/storage/lib/validators.d.mts.map +1 -1
  529. package/dist/modules/storage/lib/validators.mjs +32 -76
  530. package/dist/modules/storage/lib/validators.mjs.map +1 -1
  531. package/dist/modules/storage/providers/adapters/s3.server.d.mts +19 -0
  532. package/dist/modules/storage/providers/adapters/s3.server.d.mts.map +1 -0
  533. package/dist/modules/storage/providers/adapters/s3.server.mjs +173 -0
  534. package/dist/modules/storage/providers/adapters/s3.server.mjs.map +1 -0
  535. package/dist/modules/storage/providers/lib/constants.d.mts +6 -0
  536. package/dist/modules/storage/providers/lib/constants.d.mts.map +1 -0
  537. package/dist/modules/storage/providers/lib/constants.mjs +6 -0
  538. package/dist/modules/storage/providers/lib/constants.mjs.map +1 -0
  539. package/dist/modules/storage/providers/lib/errors.d.mts +12 -0
  540. package/dist/modules/storage/providers/lib/errors.d.mts.map +1 -0
  541. package/dist/modules/storage/providers/lib/errors.mjs +13 -0
  542. package/dist/modules/storage/providers/lib/errors.mjs.map +1 -0
  543. package/dist/modules/storage/providers/lib/types.d.mts +21 -0
  544. package/dist/modules/storage/providers/lib/types.d.mts.map +1 -0
  545. package/dist/modules/storage/providers/lib/validators.d.mts +112 -0
  546. package/dist/modules/storage/providers/lib/validators.d.mts.map +1 -0
  547. package/dist/modules/storage/providers/lib/validators.mjs +75 -0
  548. package/dist/modules/storage/providers/lib/validators.mjs.map +1 -0
  549. package/dist/router/server.d.mts +1 -1
  550. package/dist/storage/client.d.mts +4 -2
  551. package/dist/storage/client.mjs +4 -2
  552. package/dist/storage/server.d.mts +5 -4
  553. package/dist/storage/server.mjs +5 -4
  554. package/dist/storage.d.mts +9 -6
  555. package/dist/storage.mjs +8 -6
  556. package/package.json +20 -32
  557. package/src/components/editor/components/editor.client.tsx +9 -1
  558. package/src/components/editor/components/menu-nodes.client.tsx +1 -1
  559. package/src/components/editor/components/menu.client.tsx +3 -3
  560. package/src/components/editor/extensions/file-handler/extension.ts +4 -4
  561. package/src/components/editor/extensions/file-handler/strategy.ts +15 -40
  562. package/src/components/editor/extensions/file-handler/utils.ts +1 -1
  563. package/src/components/editor/extensions/image/extension.ts +10 -10
  564. package/src/components/editor/lib/helpers.ts +28 -11
  565. package/src/components/emails/forget-password-email.tsx +6 -6
  566. package/src/components/entry.client.ts +16 -0
  567. package/src/components/entry.ts +6 -14
  568. package/src/components/header/back-button.client.tsx +2 -2
  569. package/src/components/header/bottom-bar.client.tsx +2 -2
  570. package/src/components/header/breadcrumbs.client.tsx +1 -1
  571. package/src/components/header/header.client.tsx +1 -1
  572. package/src/components/layouts/empty-page.tsx +2 -2
  573. package/src/components/layouts/error-page.tsx +3 -3
  574. package/src/components/layouts/providers.client.tsx +8 -5
  575. package/src/components/layouts/root-loading.tsx +2 -2
  576. package/src/components/layouts/tab-layout.tsx +1 -1
  577. package/src/components/lists/data-list.tsx +1 -1
  578. package/src/components/lists/data-stack.tsx +1 -1
  579. package/src/components/navigation/admin-sidebar-header.client.tsx +3 -3
  580. package/src/components/navigation/admin-sidebar-skeleton.tsx +1 -1
  581. package/src/components/ui/accordion.client.tsx +83 -0
  582. package/src/components/ui/alert-dialog.client.tsx +181 -0
  583. package/src/components/ui/alert.tsx +15 -7
  584. package/src/components/ui/aspect-ratio.client.tsx +9 -0
  585. package/src/components/ui/avatar.client.tsx +61 -6
  586. package/src/components/ui/badge.tsx +17 -11
  587. package/src/components/ui/breadcrumb.tsx +9 -10
  588. package/src/components/ui/button-group.tsx +78 -0
  589. package/src/components/ui/button.tsx +26 -16
  590. package/src/components/ui/{calendar.tsx → calendar.client.tsx} +27 -20
  591. package/src/components/ui/card.tsx +41 -8
  592. package/src/components/ui/{carousel.tsx → carousel.client.tsx} +12 -12
  593. package/src/components/ui/chart.client.tsx +105 -103
  594. package/src/components/ui/checkbox.client.tsx +28 -0
  595. package/src/components/ui/collapsible.client.tsx +2 -2
  596. package/src/components/ui/combobox-dropdown.client.tsx +3 -2
  597. package/src/components/ui/combobox.client.tsx +7 -7
  598. package/src/components/ui/command.client.tsx +179 -0
  599. package/src/components/ui/{context-menu.tsx → context-menu.client.tsx} +86 -64
  600. package/src/components/ui/date-picker.client.tsx +2 -2
  601. package/src/components/ui/dialog.client.tsx +43 -20
  602. package/src/components/ui/drawer.client.tsx +13 -15
  603. package/src/components/ui/{dropdown-menu.tsx → dropdown-menu.client.tsx} +45 -24
  604. package/src/components/ui/empty.tsx +93 -0
  605. package/src/components/ui/field.client.tsx +224 -0
  606. package/src/components/ui/form.client.tsx +4 -4
  607. package/src/components/ui/hover-card.client.tsx +14 -13
  608. package/src/components/ui/{input-date-time.tsx → input-date-time.client.tsx} +6 -1
  609. package/src/components/ui/input-date.tsx +1 -1
  610. package/src/components/ui/input-group.client.tsx +191 -0
  611. package/src/components/ui/input-recipient.tsx +12 -12
  612. package/src/components/ui/input-time.tsx +1 -1
  613. package/src/components/ui/input.tsx +2 -4
  614. package/src/components/ui/item.tsx +182 -0
  615. package/src/components/ui/kbd.tsx +26 -0
  616. package/src/components/ui/label.tsx +2 -3
  617. package/src/components/ui/loader.tsx +51 -0
  618. package/src/components/ui/navigation-menu.tsx +14 -17
  619. package/src/components/ui/pagination.tsx +31 -26
  620. package/src/components/ui/popover.client.tsx +73 -0
  621. package/src/components/ui/progress.client.tsx +6 -4
  622. package/src/components/ui/radio-group.tsx +5 -7
  623. package/src/components/ui/resizable.client.tsx +9 -19
  624. package/src/components/ui/scroll-area.tsx +5 -7
  625. package/src/components/ui/select.client.tsx +40 -22
  626. package/src/components/ui/separator.tsx +3 -4
  627. package/src/components/ui/sheet.client.tsx +19 -18
  628. package/src/components/ui/sidebar.client.tsx +27 -27
  629. package/src/components/ui/skeleton.tsx +1 -1
  630. package/src/components/ui/slider.tsx +5 -10
  631. package/src/components/ui/spinner.tsx +12 -48
  632. package/src/components/ui/switch.client.tsx +32 -0
  633. package/src/components/ui/tabs.client.tsx +79 -0
  634. package/src/components/ui/textarea.tsx +1 -2
  635. package/src/components/ui/toggle-group.client.tsx +26 -10
  636. package/src/components/ui/toggle.client.tsx +44 -0
  637. package/src/components/ui/tooltip.client.tsx +4 -9
  638. package/src/entry.ts +12 -51
  639. package/src/lib/entry.ts +1 -5
  640. package/src/lib/hooks/use-indicator.tsx +4 -7
  641. package/src/lib/utils/markdown.ts +10 -0
  642. package/src/lib/utils/url.ts +2 -1
  643. package/src/lib/utils/user-agent.ts +15 -0
  644. package/src/modules/auth/components/auth-layout.server.tsx +2 -2
  645. package/src/modules/auth/components/{guard-first-user.server.tsx → create-first-user-guard.server.tsx} +8 -8
  646. package/src/modules/auth/components/create-first-user-page.client.tsx +4 -4
  647. package/src/modules/auth/components/forget-password-page.client.tsx +1 -1
  648. package/src/modules/auth/components/guard.server.tsx +1 -1
  649. package/src/modules/auth/components/login-page.client.tsx +6 -6
  650. package/src/modules/auth/components/reset-password-page.client.tsx +7 -7
  651. package/src/modules/auth/entry.server.ts +4 -5
  652. package/src/modules/auth/handler/create-client.client.ts +2 -2
  653. package/src/modules/auth/handler/proxy.server.ts +1 -1
  654. package/src/modules/auth/handler/route.server.ts +2 -2
  655. package/src/modules/auth/handler/{init.ts → service.server.ts} +30 -9
  656. package/src/modules/commands/components/alert-dialog-command.client.tsx +20 -16
  657. package/src/modules/commands/components/click-command.client.tsx +2 -2
  658. package/src/modules/commands/components/dialog-command.client.tsx +11 -10
  659. package/src/modules/commands/components/dropdown-command.client.tsx +2 -2
  660. package/src/modules/commands/components/empty-command.client.tsx +2 -2
  661. package/src/modules/commands/components/form-dialog-command.client.tsx +29 -13
  662. package/src/modules/commands/menus/context-menu.client.tsx +3 -4
  663. package/src/modules/commands/menus/dropdown-menu.client.tsx +2 -2
  664. package/src/modules/commands/menus/floating-menu.client.tsx +2 -2
  665. package/src/modules/commands/utils/archive-command.client.tsx +1 -1
  666. package/src/modules/commands/utils/delete-command.client.tsx +1 -1
  667. package/src/modules/config/entry.server.ts +0 -9
  668. package/src/modules/config/entry.ts +2 -2
  669. package/src/modules/config/lib/context.ts +9 -9
  670. package/src/modules/data-tables/components/cell/select.client.tsx +1 -1
  671. package/src/modules/data-tables/components/column-header.tsx +5 -5
  672. package/src/modules/data-tables/components/filters/combobox.client.tsx +6 -6
  673. package/src/modules/data-tables/components/filters/slider.client.tsx +2 -2
  674. package/src/modules/data-tables/components/header.tsx +1 -1
  675. package/src/modules/data-tables/components/skeleton.tsx +2 -2
  676. package/src/modules/data-tables/components/table.tsx +3 -3
  677. package/src/modules/data-tables/components/toolbar.tsx +1 -1
  678. package/src/modules/data-tables/entry.client.ts +1 -0
  679. package/src/modules/data-tables/server/get-data.server.ts +1 -1
  680. package/src/modules/data-tables/strategies/infinite/strategy.ts +4 -1
  681. package/src/modules/data-tables/strategies/pagination/components.tsx +3 -3
  682. package/src/modules/data-tables/tables/data-table/components/row.tsx +12 -21
  683. package/src/modules/data-tables/tables/inline-table/components/body.tsx +1 -1
  684. package/src/modules/data-tables/tables/inline-table/components/cells/common.tsx +1 -1
  685. package/src/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.tsx +1 -1
  686. package/src/modules/data-tables/tables/inline-table/components/cells/read-only.tsx +1 -1
  687. package/src/modules/data-tables/tables/inline-table/components/row.client.tsx +24 -30
  688. package/src/modules/data-tables/tables/inline-table/components/table.tsx +6 -1
  689. package/src/modules/data-tables/tables/inline-table/hooks/context.client.tsx +5 -0
  690. package/src/modules/data-tables/tables/inline-table/hooks/use-hotkeys.client.ts +119 -91
  691. package/src/modules/database/entry.client.ts +0 -0
  692. package/src/modules/database/entry.server.ts +4 -0
  693. package/src/modules/database/entry.ts +5 -0
  694. package/src/modules/database/lib/service.server.ts +33 -0
  695. package/src/modules/emails/entry.client.ts +0 -0
  696. package/src/modules/emails/entry.server.ts +4 -0
  697. package/src/modules/emails/entry.ts +0 -0
  698. package/src/modules/emails/lib/service.server.ts +29 -0
  699. package/src/modules/inline-edit/components/date-input.client.tsx +4 -4
  700. package/src/modules/inline-edit/components/date-picker.client.tsx +3 -2
  701. package/src/modules/inline-edit/components/date-time.client.tsx +2 -1
  702. package/src/modules/inline-edit/components/editor.client.tsx +3 -0
  703. package/src/modules/inline-edit/components/input-recipient.client.tsx +1 -0
  704. package/src/modules/inline-edit/components/input-toggle.client.tsx +3 -2
  705. package/src/modules/inline-edit/components/input.client.tsx +6 -3
  706. package/src/modules/inline-edit/components/select.client.tsx +11 -21
  707. package/src/modules/inline-edit/components/switch.client.tsx +4 -3
  708. package/src/modules/inline-edit/components/toggle.client.tsx +2 -1
  709. package/src/modules/inline-edit/lib/variants.ts +1 -1
  710. package/src/modules/router/handler/init.server.ts +2 -2
  711. package/src/modules/storage/components/dropzone.client.tsx +9 -9
  712. package/src/modules/storage/components/image-grid.client.tsx +28 -25
  713. package/src/modules/storage/components/image.client.tsx +8 -0
  714. package/src/modules/storage/components/upload-zone-context.client.tsx +11 -8
  715. package/src/modules/storage/components/upload-zone.client.tsx +23 -17
  716. package/src/modules/storage/entry.client.ts +3 -1
  717. package/src/modules/storage/entry.server.ts +9 -3
  718. package/src/modules/storage/entry.ts +13 -1
  719. package/src/modules/storage/lib/constants.ts +0 -11
  720. package/src/modules/storage/lib/helpers.ts +18 -65
  721. package/src/modules/storage/lib/procedures.server.ts +60 -0
  722. package/src/modules/storage/lib/router-handlers.server.ts +178 -0
  723. package/src/modules/storage/lib/schema.ts +26 -97
  724. package/src/modules/storage/lib/service.server.ts +636 -374
  725. package/src/modules/storage/lib/upload.client.ts +156 -0
  726. package/src/modules/storage/lib/validators.ts +50 -111
  727. package/src/modules/storage/providers/adapters/s3.server.ts +281 -0
  728. package/src/modules/storage/providers/lib/constants.ts +3 -0
  729. package/src/modules/storage/providers/lib/errors.ts +21 -0
  730. package/src/modules/storage/providers/lib/types.ts +28 -0
  731. package/src/modules/storage/providers/lib/validators.ts +122 -0
  732. package/src/styles.css +1 -3
  733. package/dist/components/ui/accordion.d.mts +0 -25
  734. package/dist/components/ui/accordion.d.mts.map +0 -1
  735. package/dist/components/ui/accordion.mjs +0 -46
  736. package/dist/components/ui/accordion.mjs.map +0 -1
  737. package/dist/components/ui/alert-dialog.d.mts +0 -43
  738. package/dist/components/ui/alert-dialog.d.mts.map +0 -1
  739. package/dist/components/ui/alert-dialog.mjs +0 -84
  740. package/dist/components/ui/alert-dialog.mjs.map +0 -1
  741. package/dist/components/ui/aspect-ratio.d.mts +0 -8
  742. package/dist/components/ui/aspect-ratio.d.mts.map +0 -1
  743. package/dist/components/ui/aspect-ratio.mjs +0 -16
  744. package/dist/components/ui/aspect-ratio.mjs.map +0 -1
  745. package/dist/components/ui/calendar.d.mts.map +0 -1
  746. package/dist/components/ui/calendar.mjs.map +0 -1
  747. package/dist/components/ui/carousel.d.mts.map +0 -1
  748. package/dist/components/ui/carousel.mjs.map +0 -1
  749. package/dist/components/ui/checkbox.d.mts +0 -12
  750. package/dist/components/ui/checkbox.d.mts.map +0 -1
  751. package/dist/components/ui/checkbox.mjs +0 -24
  752. package/dist/components/ui/checkbox.mjs.map +0 -1
  753. package/dist/components/ui/command.d.mts.map +0 -1
  754. package/dist/components/ui/command.mjs +0 -88
  755. package/dist/components/ui/command.mjs.map +0 -1
  756. package/dist/components/ui/context-menu.d.mts +0 -77
  757. package/dist/components/ui/context-menu.d.mts.map +0 -1
  758. package/dist/components/ui/context-menu.mjs +0 -125
  759. package/dist/components/ui/context-menu.mjs.map +0 -1
  760. package/dist/components/ui/dropdown-menu.d.mts +0 -78
  761. package/dist/components/ui/dropdown-menu.d.mts.map +0 -1
  762. package/dist/components/ui/dropdown-menu.mjs +0 -126
  763. package/dist/components/ui/dropdown-menu.mjs.map +0 -1
  764. package/dist/components/ui/input-date-time.d.mts.map +0 -1
  765. package/dist/components/ui/input-date-time.mjs.map +0 -1
  766. package/dist/components/ui/popover.d.mts +0 -23
  767. package/dist/components/ui/popover.d.mts.map +0 -1
  768. package/dist/components/ui/popover.mjs +0 -38
  769. package/dist/components/ui/popover.mjs.map +0 -1
  770. package/dist/components/ui/switch.d.mts +0 -12
  771. package/dist/components/ui/switch.d.mts.map +0 -1
  772. package/dist/components/ui/switch.mjs +0 -22
  773. package/dist/components/ui/switch.mjs.map +0 -1
  774. package/dist/components/ui/tabs.d.mts +0 -24
  775. package/dist/components/ui/tabs.d.mts.map +0 -1
  776. package/dist/components/ui/tabs.mjs +0 -39
  777. package/dist/components/ui/tabs.mjs.map +0 -1
  778. package/dist/components/ui/toggle.d.mts.map +0 -1
  779. package/dist/components/ui/toggle.mjs +0 -40
  780. package/dist/components/ui/toggle.mjs.map +0 -1
  781. package/dist/lib/config/constants.d.mts +0 -5
  782. package/dist/lib/config/constants.d.mts.map +0 -1
  783. package/dist/lib/config/constants.mjs +0 -6
  784. package/dist/lib/config/constants.mjs.map +0 -1
  785. package/dist/modules/auth/components/guard-first-user.server.d.mts +0 -18
  786. package/dist/modules/auth/components/guard-first-user.server.d.mts.map +0 -1
  787. package/dist/modules/auth/components/guard-first-user.server.mjs +0 -16
  788. package/dist/modules/auth/components/guard-first-user.server.mjs.map +0 -1
  789. package/dist/modules/auth/handler/init.mjs.map +0 -1
  790. package/dist/modules/config/db/helpers.d.mts.map +0 -1
  791. package/dist/modules/config/db/helpers.mjs.map +0 -1
  792. package/dist/modules/config/db/init.d.mts +0 -20
  793. package/dist/modules/config/db/init.d.mts.map +0 -1
  794. package/dist/modules/config/db/init.mjs +0 -15
  795. package/dist/modules/config/db/init.mjs.map +0 -1
  796. package/dist/modules/config/db/types.d.mts.map +0 -1
  797. package/dist/modules/config/providers/email.d.mts +0 -12
  798. package/dist/modules/config/providers/email.d.mts.map +0 -1
  799. package/dist/modules/config/providers/email.mjs +0 -11
  800. package/dist/modules/config/providers/email.mjs.map +0 -1
  801. package/dist/modules/storage/config/filters.d.mts +0 -17
  802. package/dist/modules/storage/config/filters.d.mts.map +0 -1
  803. package/dist/modules/storage/config/filters.mjs +0 -17
  804. package/dist/modules/storage/config/filters.mjs.map +0 -1
  805. package/dist/modules/storage/lib/create-client.server.d.mts +0 -11
  806. package/dist/modules/storage/lib/create-client.server.d.mts.map +0 -1
  807. package/dist/modules/storage/lib/create-client.server.mjs +0 -11
  808. package/dist/modules/storage/lib/create-client.server.mjs.map +0 -1
  809. package/dist/modules/storage/lib/create-upload.client.d.mts +0 -56
  810. package/dist/modules/storage/lib/create-upload.client.d.mts.map +0 -1
  811. package/dist/modules/storage/lib/create-upload.client.mjs +0 -98
  812. package/dist/modules/storage/lib/create-upload.client.mjs.map +0 -1
  813. package/dist/modules/storage/lib/proxy.server.d.mts +0 -21
  814. package/dist/modules/storage/lib/proxy.server.d.mts.map +0 -1
  815. package/dist/modules/storage/lib/proxy.server.mjs +0 -46
  816. package/dist/modules/storage/lib/proxy.server.mjs.map +0 -1
  817. package/dist/modules/storage/lib/router.server.d.mts +0 -31002
  818. package/dist/modules/storage/lib/router.server.d.mts.map +0 -1
  819. package/dist/modules/storage/lib/router.server.mjs +0 -86
  820. package/dist/modules/storage/lib/router.server.mjs.map +0 -1
  821. package/src/components/ui/accordion.tsx +0 -63
  822. package/src/components/ui/alert-dialog.tsx +0 -133
  823. package/src/components/ui/aspect-ratio.tsx +0 -9
  824. package/src/components/ui/checkbox.tsx +0 -29
  825. package/src/components/ui/command.tsx +0 -154
  826. package/src/components/ui/popover.tsx +0 -42
  827. package/src/components/ui/switch.tsx +0 -28
  828. package/src/components/ui/tabs.tsx +0 -54
  829. package/src/components/ui/toggle.tsx +0 -46
  830. package/src/lib/config/constants.ts +0 -1
  831. package/src/lib/utils/time-picker.ts +0 -139
  832. package/src/modules/config/db/init.ts +0 -21
  833. package/src/modules/config/providers/email.ts +0 -13
  834. package/src/modules/storage/config/filters.ts +0 -12
  835. package/src/modules/storage/lib/create-client.server.ts +0 -14
  836. package/src/modules/storage/lib/create-upload.client.ts +0 -134
  837. package/src/modules/storage/lib/proxy.server.ts +0 -63
  838. package/src/modules/storage/lib/router.server.ts +0 -182
  839. /package/src/modules/{config/db → database/lib}/helpers.ts +0 -0
  840. /package/src/modules/{config/db → database/lib}/types.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { getFileUrl } from "../../../../modules/storage/lib/helpers.mjs";
3
+ import { getAssetURL } from "../../../../modules/storage/lib/helpers.mjs";
4
4
  import { Image } from "@tiptap/extension-image";
5
5
 
6
6
  //#region src/components/editor/extensions/image/extension.ts
@@ -9,14 +9,14 @@ const Image$1 = Image.extend({
9
9
  addAttributes() {
10
10
  return {
11
11
  ...this.parent?.(),
12
- nodeId: {
12
+ assetId: {
13
13
  default: null,
14
- parseHTML: (el) => el.getAttribute("data-node-id"),
14
+ parseHTML: (el) => el.getAttribute("data-asset-id"),
15
15
  renderHTML: (attrs) => {
16
- if (!attrs.nodeId) return {};
16
+ if (!attrs.assetId) return {};
17
17
  return {
18
- "data-node-id": attrs.nodeId,
19
- ...attrs.nodeId && !attrs.isPending ? { src: getFileUrl(attrs.nodeId) } : {}
18
+ "data-asset-id": attrs.assetId,
19
+ ...attrs.assetId && !attrs.isPending ? { src: getAssetURL(attrs.assetId) } : {}
20
20
  };
21
21
  }
22
22
  },
@@ -32,13 +32,13 @@ const Image$1 = Image.extend({
32
32
  };
33
33
  },
34
34
  parseHTML() {
35
- return [{ tag: "img[data-node-id]" }];
35
+ return [{ tag: "img[data-asset-id]" }];
36
36
  },
37
37
  renderHTML({ HTMLAttributes }) {
38
38
  const { src: _, ...attrs } = HTMLAttributes;
39
- const nodeId = attrs.nodeId;
39
+ const assetId = attrs.assetId;
40
40
  const isPending = Boolean(attrs.isPending);
41
- const src = nodeId && !isPending ? getFileUrl(nodeId) : null;
41
+ const src = assetId && !isPending ? getAssetURL(assetId) : null;
42
42
  return ["img", {
43
43
  ...attrs,
44
44
  ...src ? { src } : {}
@@ -1 +1 @@
1
- {"version":3,"file":"extension.mjs","names":["Image","TiptapImage"],"sources":["../../../../../src/components/editor/extensions/image/extension.ts"],"sourcesContent":["\"use client\";\n\nimport {\n Image as TiptapImage,\n type ImageOptions as TiptapImageOptions,\n} from \"@tiptap/extension-image\";\nimport { getFileUrl } from \"@/modules/storage/lib/helpers\";\n\nexport interface ImageOptions extends TiptapImageOptions {}\n\nexport const Image = TiptapImage.extend<ImageOptions>({\n atom: true,\n addAttributes() {\n return {\n ...this.parent?.(),\n // node id\n nodeId: {\n default: null,\n parseHTML: (el) => el.getAttribute(\"data-node-id\"),\n renderHTML: (attrs) => {\n if (!attrs.nodeId) return {};\n return {\n \"data-node-id\": attrs.nodeId,\n ...(attrs.nodeId && !attrs.isPending ? { src: getFileUrl(attrs.nodeId) } : {}),\n };\n },\n },\n\n // semantics\n alt: { default: null },\n title: { default: null },\n\n // layout stability\n width: { default: null },\n height: { default: null },\n\n // upload UX\n isPending: {\n default: false,\n renderHTML: (attrs) => (attrs.isPending ? { \"data-pending\": \"true\" } : {}),\n },\n fileName: { default: null },\n };\n },\n parseHTML() {\n return [{ tag: \"img[data-node-id]\" }];\n },\n renderHTML({ HTMLAttributes }) {\n const { src: _, ...attrs } = HTMLAttributes;\n\n const nodeId = attrs.nodeId as string | null;\n const isPending = Boolean(attrs.isPending);\n\n const src = nodeId && !isPending ? getFileUrl(nodeId) : null;\n\n return [\"img\", { ...attrs, ...(src ? { src } : {}) }];\n },\n});\n"],"mappings":";;;;;;AAUA,MAAaA,UAAQC,MAAY,OAAqB;CACpD,MAAM;CACN,gBAAgB;AACd,SAAO;GACL,GAAG,KAAK,UAAU;GAElB,QAAQ;IACN,SAAS;IACT,YAAY,OAAO,GAAG,aAAa,eAAe;IAClD,aAAa,UAAU;AACrB,SAAI,CAAC,MAAM,OAAQ,QAAO,EAAE;AAC5B,YAAO;MACL,gBAAgB,MAAM;MACtB,GAAI,MAAM,UAAU,CAAC,MAAM,YAAY,EAAE,KAAK,WAAW,MAAM,OAAO,EAAE,GAAG,EAAE;MAC9E;;IAEJ;GAGD,KAAK,EAAE,SAAS,MAAM;GACtB,OAAO,EAAE,SAAS,MAAM;GAGxB,OAAO,EAAE,SAAS,MAAM;GACxB,QAAQ,EAAE,SAAS,MAAM;GAGzB,WAAW;IACT,SAAS;IACT,aAAa,UAAW,MAAM,YAAY,EAAE,gBAAgB,QAAQ,GAAG,EAAE;IAC1E;GACD,UAAU,EAAE,SAAS,MAAM;GAC5B;;CAEH,YAAY;AACV,SAAO,CAAC,EAAE,KAAK,qBAAqB,CAAC;;CAEvC,WAAW,EAAE,kBAAkB;EAC7B,MAAM,EAAE,KAAK,GAAG,GAAG,UAAU;EAE7B,MAAM,SAAS,MAAM;EACrB,MAAM,YAAY,QAAQ,MAAM,UAAU;EAE1C,MAAM,MAAM,UAAU,CAAC,YAAY,WAAW,OAAO,GAAG;AAExD,SAAO,CAAC,OAAO;GAAE,GAAG;GAAO,GAAI,MAAM,EAAE,KAAK,GAAG,EAAE;GAAG,CAAC;;CAExD,CAAC"}
1
+ {"version":3,"file":"extension.mjs","names":["Image","TiptapImage"],"sources":["../../../../../src/components/editor/extensions/image/extension.ts"],"sourcesContent":["\"use client\";\n\nimport {\n Image as TiptapImage,\n type ImageOptions as TiptapImageOptions,\n} from \"@tiptap/extension-image\";\nimport { getAssetURL } from \"@/modules/storage/entry\";\n\nexport interface ImageOptions extends TiptapImageOptions {}\n\nexport const Image = TiptapImage.extend<ImageOptions>({\n atom: true,\n addAttributes() {\n return {\n ...this.parent?.(),\n // asset id\n assetId: {\n default: null,\n parseHTML: (el) => el.getAttribute(\"data-asset-id\"),\n renderHTML: (attrs) => {\n if (!attrs.assetId) return {};\n return {\n \"data-asset-id\": attrs.assetId,\n ...(attrs.assetId && !attrs.isPending ? { src: getAssetURL(attrs.assetId) } : {}),\n };\n },\n },\n\n // semantics\n alt: { default: null },\n title: { default: null },\n\n // layout stability\n width: { default: null },\n height: { default: null },\n\n // upload UX\n isPending: {\n default: false,\n renderHTML: (attrs) => (attrs.isPending ? { \"data-pending\": \"true\" } : {}),\n },\n fileName: { default: null },\n };\n },\n parseHTML() {\n return [{ tag: \"img[data-asset-id]\" }];\n },\n renderHTML({ HTMLAttributes }) {\n const { src: _, ...attrs } = HTMLAttributes;\n\n const assetId = attrs.assetId as string | null;\n const isPending = Boolean(attrs.isPending);\n\n const src = assetId && !isPending ? getAssetURL(assetId) : null;\n\n return [\"img\", { ...attrs, ...(src ? { src } : {}) }];\n },\n});\n"],"mappings":";;;;;;AAUA,MAAaA,UAAQC,MAAY,OAAqB;CACpD,MAAM;CACN,gBAAgB;AACd,SAAO;GACL,GAAG,KAAK,UAAU;GAElB,SAAS;IACP,SAAS;IACT,YAAY,OAAO,GAAG,aAAa,gBAAgB;IACnD,aAAa,UAAU;AACrB,SAAI,CAAC,MAAM,QAAS,QAAO,EAAE;AAC7B,YAAO;MACL,iBAAiB,MAAM;MACvB,GAAI,MAAM,WAAW,CAAC,MAAM,YAAY,EAAE,KAAK,YAAY,MAAM,QAAQ,EAAE,GAAG,EAAE;MACjF;;IAEJ;GAGD,KAAK,EAAE,SAAS,MAAM;GACtB,OAAO,EAAE,SAAS,MAAM;GAGxB,OAAO,EAAE,SAAS,MAAM;GACxB,QAAQ,EAAE,SAAS,MAAM;GAGzB,WAAW;IACT,SAAS;IACT,aAAa,UAAW,MAAM,YAAY,EAAE,gBAAgB,QAAQ,GAAG,EAAE;IAC1E;GACD,UAAU,EAAE,SAAS,MAAM;GAC5B;;CAEH,YAAY;AACV,SAAO,CAAC,EAAE,KAAK,sBAAsB,CAAC;;CAExC,WAAW,EAAE,kBAAkB;EAC7B,MAAM,EAAE,KAAK,GAAG,GAAG,UAAU;EAE7B,MAAM,UAAU,MAAM;EACtB,MAAM,YAAY,QAAQ,MAAM,UAAU;EAE1C,MAAM,MAAM,WAAW,CAAC,YAAY,YAAY,QAAQ,GAAG;AAE3D,SAAO,CAAC,OAAO;GAAE,GAAG;GAAO,GAAI,MAAM,EAAE,KAAK,GAAG,EAAE;GAAG,CAAC;;CAExD,CAAC"}
@@ -11,9 +11,9 @@ import * as _tiptap_extension_list0 from "@tiptap/extension-list";
11
11
  import * as _tiptap_extension_paragraph0 from "@tiptap/extension-paragraph";
12
12
  import * as _tiptap_extension_strike0 from "@tiptap/extension-strike";
13
13
  import * as _tiptap_extension_underline0 from "@tiptap/extension-underline";
14
- import * as _tiptap_extensions0 from "@tiptap/extensions";
15
14
  import * as _tiptap_extension_highlight0 from "@tiptap/extension-highlight";
16
15
  import * as _tiptap_extension_text_style0 from "@tiptap/extension-text-style";
16
+ import * as _tiptap_extensions0 from "@tiptap/extensions";
17
17
  import * as _tiptap_core0 from "@tiptap/core";
18
18
 
19
19
  //#region src/components/editor/lib/constants.d.ts
@@ -15,9 +15,9 @@ import Paragraph from "@tiptap/extension-paragraph";
15
15
  import Strike from "@tiptap/extension-strike";
16
16
  import Text from "@tiptap/extension-text";
17
17
  import Underline from "@tiptap/extension-underline";
18
- import { Dropcursor, Gapcursor, TrailingNode, UndoRedo } from "@tiptap/extensions";
19
18
  import Highlight from "@tiptap/extension-highlight";
20
19
  import { Color, TextStyle } from "@tiptap/extension-text-style";
20
+ import { Dropcursor, Gapcursor, TrailingNode, UndoRedo } from "@tiptap/extensions";
21
21
 
22
22
  //#region src/components/editor/lib/constants.ts
23
23
  /**
@@ -12,10 +12,10 @@ import { BulletListOptions, ListItemOptions, ListKeymapOptions, OrderedListOptio
12
12
  import { ParagraphOptions } from "@tiptap/extension-paragraph";
13
13
  import { StrikeOptions } from "@tiptap/extension-strike";
14
14
  import { UnderlineOptions } from "@tiptap/extension-underline";
15
- import { DropcursorOptions, TrailingNodeOptions, UndoRedoOptions } from "@tiptap/extensions";
16
15
  import "@tiptap/react";
17
16
  import { HighlightOptions } from "@tiptap/extension-highlight";
18
17
  import { ColorOptions, TextStyleOptions } from "@tiptap/extension-text-style";
18
+ import { DropcursorOptions, TrailingNodeOptions, UndoRedoOptions } from "@tiptap/extensions";
19
19
  import "@tiptap/core";
20
20
 
21
21
  //#region src/components/editor/lib/extensions.d.ts
@@ -2,13 +2,21 @@ import { EditorJSONContent } from "./types.mjs";
2
2
 
3
3
  //#region src/components/editor/lib/helpers.d.ts
4
4
  /**
5
- * Convert text to editor content
5
+ * Convert HTML to editor content
6
6
  */
7
7
  declare function convertHTMLToEditorContent(html: string): EditorJSONContent;
8
8
  /**
9
- * Convert editor content to text
9
+ * Convert markdown to editor content
10
+ */
11
+ declare function convertMarkdownToEditorContent(markdown: string): EditorJSONContent;
12
+ /**
13
+ * Convert editor content to HTML
10
14
  */
11
15
  declare function convertEditorContentToHTML(content: EditorJSONContent): string;
16
+ /**
17
+ * Convert editor content to markdown
18
+ */
19
+ declare function convertEditorContentToMarkdown(content: EditorJSONContent): string;
12
20
  //#endregion
13
- export { convertEditorContentToHTML, convertHTMLToEditorContent };
21
+ export { convertEditorContentToHTML, convertEditorContentToMarkdown, convertHTMLToEditorContent, convertMarkdownToEditorContent };
14
22
  //# sourceMappingURL=helpers.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.mts","names":[],"sources":["../../../../src/components/editor/lib/helpers.ts"],"mappings":";;;;;AA2CA;iBAAgB,0BAAA,CAA2B,IAAA,WAAe,iBAAA;;;;iBAO1C,0BAAA,CAA2B,OAAA,EAAS,iBAAA"}
1
+ {"version":3,"file":"helpers.d.mts","names":[],"sources":["../../../../src/components/editor/lib/helpers.ts"],"mappings":";;;;;AAuCA;iBAAgB,0BAAA,CAA2B,IAAA,WAAe,iBAAA;;;;iBAO1C,8BAAA,CAA+B,QAAA,WAAmB,iBAAA;;;;iBAQlD,0BAAA,CAA2B,OAAA,EAAS,iBAAA;AAApD;;;AAAA,iBAUgB,8BAAA,CAA+B,OAAA,EAAS,iBAAA"}
@@ -1,3 +1,4 @@
1
+ import { markdownParser } from "../../../lib/utils/markdown.mjs";
1
2
  import Blockquote from "@tiptap/extension-blockquote";
2
3
  import Bold from "@tiptap/extension-bold";
3
4
  import Document from "@tiptap/extension-document";
@@ -6,13 +7,13 @@ import Heading from "@tiptap/extension-heading";
6
7
  import HorizontalRule from "@tiptap/extension-horizontal-rule";
7
8
  import Italic from "@tiptap/extension-italic";
8
9
  import Link from "@tiptap/extension-link";
9
- import { BulletList, ListItem, ListKeymap, OrderedList } from "@tiptap/extension-list";
10
+ import { BulletList, ListItem, OrderedList } from "@tiptap/extension-list";
10
11
  import Paragraph from "@tiptap/extension-paragraph";
11
12
  import Strike from "@tiptap/extension-strike";
12
13
  import Text from "@tiptap/extension-text";
13
14
  import Underline from "@tiptap/extension-underline";
14
- import { Dropcursor, Gapcursor, TrailingNode, UndoRedo } from "@tiptap/extensions";
15
- import { generateHTML, generateJSON } from "@tiptap/html";
15
+ import { generateJSON } from "@tiptap/html";
16
+ import { renderToHTMLString, renderToMarkdown } from "@tiptap/static-renderer";
16
17
 
17
18
  //#region src/components/editor/lib/helpers.ts
18
19
  const EXTENSIONS_FOR_GENERATION = [
@@ -30,26 +31,39 @@ const EXTENSIONS_FOR_GENERATION = [
30
31
  Italic,
31
32
  Link,
32
33
  Strike,
33
- Underline,
34
- Dropcursor,
35
- Gapcursor,
36
- UndoRedo,
37
- ListKeymap,
38
- TrailingNode
34
+ Underline
39
35
  ];
40
36
  /**
41
- * Convert text to editor content
37
+ * Convert HTML to editor content
42
38
  */
43
39
  function convertHTMLToEditorContent(html) {
44
40
  return generateJSON(html, EXTENSIONS_FOR_GENERATION);
45
41
  }
46
42
  /**
47
- * Convert editor content to text
43
+ * Convert markdown to editor content
44
+ */
45
+ function convertMarkdownToEditorContent(markdown) {
46
+ return convertHTMLToEditorContent(markdownParser.render(markdown));
47
+ }
48
+ /**
49
+ * Convert editor content to HTML
48
50
  */
49
51
  function convertEditorContentToHTML(content) {
50
- return generateHTML(content, EXTENSIONS_FOR_GENERATION);
52
+ return renderToHTMLString({
53
+ content,
54
+ extensions: EXTENSIONS_FOR_GENERATION
55
+ });
56
+ }
57
+ /**
58
+ * Convert editor content to markdown
59
+ */
60
+ function convertEditorContentToMarkdown(content) {
61
+ return renderToMarkdown({
62
+ content,
63
+ extensions: EXTENSIONS_FOR_GENERATION
64
+ });
51
65
  }
52
66
 
53
67
  //#endregion
54
- export { convertEditorContentToHTML, convertHTMLToEditorContent };
68
+ export { convertEditorContentToHTML, convertEditorContentToMarkdown, convertHTMLToEditorContent, convertMarkdownToEditorContent };
55
69
  //# sourceMappingURL=helpers.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.mjs","names":[],"sources":["../../../../src/components/editor/lib/helpers.ts"],"sourcesContent":["import Blockquote from \"@tiptap/extension-blockquote\";\nimport Bold from \"@tiptap/extension-bold\";\nimport Document from \"@tiptap/extension-document\";\nimport HardBreak from \"@tiptap/extension-hard-break\";\nimport Heading from \"@tiptap/extension-heading\";\nimport HorizontalRule from \"@tiptap/extension-horizontal-rule\";\nimport Italic from \"@tiptap/extension-italic\";\nimport Link from \"@tiptap/extension-link\";\nimport { BulletList, ListItem, ListKeymap, OrderedList } from \"@tiptap/extension-list\";\nimport Paragraph from \"@tiptap/extension-paragraph\";\nimport Strike from \"@tiptap/extension-strike\";\nimport Text from \"@tiptap/extension-text\";\nimport Underline from \"@tiptap/extension-underline\";\nimport { Dropcursor, Gapcursor, TrailingNode, UndoRedo } from \"@tiptap/extensions\";\nimport { generateHTML, generateJSON } from \"@tiptap/html\";\nimport type { EditorJSONContent } from \"./types\";\n\nconst EXTENSIONS_FOR_GENERATION = [\n Blockquote,\n BulletList,\n Document,\n HardBreak,\n Heading,\n HorizontalRule,\n ListItem,\n OrderedList,\n Paragraph,\n Text,\n Bold,\n Italic,\n Link,\n Strike,\n Underline,\n Dropcursor,\n Gapcursor,\n UndoRedo,\n ListKeymap,\n TrailingNode,\n];\n\n/**\n * Convert text to editor content\n */\nexport function convertHTMLToEditorContent(html: string): EditorJSONContent {\n return generateJSON(html, EXTENSIONS_FOR_GENERATION);\n}\n\n/**\n * Convert editor content to text\n */\nexport function convertEditorContentToHTML(content: EditorJSONContent): string {\n return generateHTML(content, EXTENSIONS_FOR_GENERATION);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,MAAM,4BAA4B;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;;;;AAKD,SAAgB,2BAA2B,MAAiC;AAC1E,QAAO,aAAa,MAAM,0BAA0B;;;;;AAMtD,SAAgB,2BAA2B,SAAoC;AAC7E,QAAO,aAAa,SAAS,0BAA0B"}
1
+ {"version":3,"file":"helpers.mjs","names":[],"sources":["../../../../src/components/editor/lib/helpers.ts"],"sourcesContent":["import Blockquote from \"@tiptap/extension-blockquote\";\nimport Bold from \"@tiptap/extension-bold\";\nimport Document from \"@tiptap/extension-document\";\nimport HardBreak from \"@tiptap/extension-hard-break\";\nimport Heading from \"@tiptap/extension-heading\";\nimport HorizontalRule from \"@tiptap/extension-horizontal-rule\";\nimport Italic from \"@tiptap/extension-italic\";\nimport Link from \"@tiptap/extension-link\";\nimport { BulletList, ListItem, OrderedList } from \"@tiptap/extension-list\";\nimport Paragraph from \"@tiptap/extension-paragraph\";\nimport Strike from \"@tiptap/extension-strike\";\nimport Text from \"@tiptap/extension-text\";\nimport Underline from \"@tiptap/extension-underline\";\nimport { generateJSON } from \"@tiptap/html\";\nimport { renderToHTMLString, renderToMarkdown } from \"@tiptap/static-renderer\";\nimport { markdownParser } from \"@/lib/utils/markdown\";\nimport type { EditorJSONContent } from \"./types\";\n\nconst EXTENSIONS_FOR_GENERATION = [\n Blockquote,\n BulletList,\n Document,\n HardBreak,\n Heading,\n HorizontalRule,\n ListItem,\n OrderedList,\n Paragraph,\n Text,\n Bold,\n Italic,\n Link,\n Strike,\n Underline,\n];\n\n/**\n * Convert HTML to editor content\n */\nexport function convertHTMLToEditorContent(html: string): EditorJSONContent {\n return generateJSON(html, EXTENSIONS_FOR_GENERATION);\n}\n\n/**\n * Convert markdown to editor content\n */\nexport function convertMarkdownToEditorContent(markdown: string): EditorJSONContent {\n const html = markdownParser.render(markdown);\n return convertHTMLToEditorContent(html);\n}\n\n/**\n * Convert editor content to HTML\n */\nexport function convertEditorContentToHTML(content: EditorJSONContent): string {\n return renderToHTMLString({\n content,\n extensions: EXTENSIONS_FOR_GENERATION,\n });\n}\n\n/**\n * Convert editor content to markdown\n */\nexport function convertEditorContentToMarkdown(content: EditorJSONContent): string {\n return renderToMarkdown({\n content,\n extensions: EXTENSIONS_FOR_GENERATION,\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,MAAM,4BAA4B;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;;;;AAKD,SAAgB,2BAA2B,MAAiC;AAC1E,QAAO,aAAa,MAAM,0BAA0B;;;;;AAMtD,SAAgB,+BAA+B,UAAqC;AAElF,QAAO,2BADM,eAAe,OAAO,SAAS,CACL;;;;;AAMzC,SAAgB,2BAA2B,SAAoC;AAC7E,QAAO,mBAAmB;EACxB;EACA,YAAY;EACb,CAAC;;;;;AAMJ,SAAgB,+BAA+B,SAAoC;AACjF,QAAO,iBAAiB;EACtB;EACA,YAAY;EACb,CAAC"}
@@ -11,32 +11,32 @@ function ForgetPasswordEmail({ resetPasswordHref }) {
11
11
  /* @__PURE__ */ jsx(Tailwind, { children: /* @__PURE__ */ jsx(Body, {
12
12
  className: "mx-auto my-auto bg-white px-2 font-sans",
13
13
  children: /* @__PURE__ */ jsxs(Container, {
14
- className: "mx-auto my-[40px] max-w-[465px] rounded border border-solid border-[#eaeaea] p-[20px]",
14
+ className: "mx-auto my-[40px] max-w-[465px] rounded border border-[#eaeaea] border-solid p-[20px]",
15
15
  children: [
16
16
  /* @__PURE__ */ jsx(Icons.logo, { className: "w-8" }),
17
17
  /* @__PURE__ */ jsxs(Section, {
18
18
  className: "my-[15px]",
19
19
  children: [
20
20
  /* @__PURE__ */ jsx(Heading, {
21
- className: "mx-0 my-[20px] p-0 text-[24px] font-bold text-black",
21
+ className: "mx-0 my-[20px] p-0 font-bold text-[24px] text-black",
22
22
  children: "Herstel uw wachtwoord"
23
23
  }),
24
24
  /* @__PURE__ */ jsx(Text, {
25
- className: "text-[14px] leading-[24px] text-black",
25
+ className: "text-[14px] text-black leading-[24px]",
26
26
  children: "Iemand heeft onlangs een wachtwoordwijziging voor uw account gevraagd. Als u dit was, kunt u hier een nieuw wachtwoord instellen:"
27
27
  }),
28
28
  /* @__PURE__ */ jsx(Button, {
29
- className: "rounded bg-[#000000] px-5 py-3 text-center text-[12px] font-semibold text-white no-underline",
29
+ className: "rounded bg-[#000000] px-5 py-3 text-center font-semibold text-[12px] text-white no-underline",
30
30
  href: resetPasswordHref,
31
31
  children: "Reset password"
32
32
  })
33
33
  ]
34
34
  }),
35
35
  /* @__PURE__ */ jsxs(Section, { children: [/* @__PURE__ */ jsx(Text, {
36
- className: "text-[12px] leading-[20px] text-black",
36
+ className: "text-[12px] text-black leading-[20px]",
37
37
  children: "Als u uw wachtwoord niet wilt wijzigen of dit niet heeft gevraagd, negeer en verwijder dit bericht gewoon en verwijdert u."
38
38
  }), /* @__PURE__ */ jsx(Text, {
39
- className: "text-[12px] leading-[20px] text-black",
39
+ className: "text-[12px] text-black leading-[20px]",
40
40
  children: "Stuur deze e-mail niet door om uw account veilig te houden."
41
41
  })] })
42
42
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"forget-password-email.mjs","names":[],"sources":["../../../src/components/emails/forget-password-email.tsx"],"sourcesContent":["import {\n Body,\n Button,\n Container,\n Head,\n Heading,\n Html,\n Preview,\n Section,\n Tailwind,\n Text,\n} from \"@react-email/components\";\nimport { url } from \"@/lib/utils/url\";\nimport { Icons } from \"../common/icons\";\n\ninterface ForgetPasswordEmailProps {\n resetPasswordHref: string;\n}\n\nexport function ForgetPasswordEmail({ resetPasswordHref }: ForgetPasswordEmailProps) {\n return (\n <Html>\n <Head />\n <Preview>Herstel je wachtwoord</Preview>\n\n <Tailwind>\n <Body className=\"mx-auto my-auto bg-white px-2 font-sans\">\n <Container className=\"mx-auto my-[40px] max-w-[465px] rounded border border-solid border-[#eaeaea] p-[20px]\">\n <Icons.logo className=\"w-8\" />\n\n <Section className=\"my-[15px]\">\n <Heading className=\"mx-0 my-[20px] p-0 text-[24px] font-bold text-black\">\n Herstel uw wachtwoord\n </Heading>\n\n <Text className=\"text-[14px] leading-[24px] text-black\">\n Iemand heeft onlangs een wachtwoordwijziging voor uw account gevraagd. Als u dit\n was, kunt u hier een nieuw wachtwoord instellen:\n </Text>\n\n <Button\n className=\"rounded bg-[#000000] px-5 py-3 text-center text-[12px] font-semibold text-white no-underline\"\n href={resetPasswordHref}\n >\n Reset password\n </Button>\n </Section>\n\n <Section>\n <Text className=\"text-[12px] leading-[20px] text-black\">\n Als u uw wachtwoord niet wilt wijzigen of dit niet heeft gevraagd, negeer en\n verwijder dit bericht gewoon en verwijdert u.\n </Text>\n\n <Text className=\"text-[12px] leading-[20px] text-black\">\n Stuur deze e-mail niet door om uw account veilig te houden.\n </Text>\n </Section>\n </Container>\n </Body>\n </Tailwind>\n </Html>\n );\n}\n\nForgetPasswordEmail.PreviewProps = {\n resetPasswordHref: url(\"/auth/reset-password\"),\n} as ForgetPasswordEmailProps;\n\nexport default ForgetPasswordEmail;\n"],"mappings":";;;;;;AAmBA,SAAgB,oBAAoB,EAAE,qBAA+C;AACnF,QACE,qBAAC;EACC,oBAAC,SAAO;EACR,oBAAC,qBAAQ,0BAA+B;EAExC,oBAAC,sBACC,oBAAC;GAAK,WAAU;aACd,qBAAC;IAAU,WAAU;;KACnB,oBAAC,MAAM,QAAK,WAAU,QAAQ;KAE9B,qBAAC;MAAQ,WAAU;;OACjB,oBAAC;QAAQ,WAAU;kBAAsD;SAE/D;OAEV,oBAAC;QAAK,WAAU;kBAAwC;SAGjD;OAEP,oBAAC;QACC,WAAU;QACV,MAAM;kBACP;SAEQ;;OACD;KAEV,qBAAC,sBACC,oBAAC;MAAK,WAAU;gBAAwC;OAGjD,EAEP,oBAAC;MAAK,WAAU;gBAAwC;OAEjD,IACC;;KACA;IACP,GACE;KACN;;AAIX,oBAAoB,eAAe,EACjC,mBAAmB,IAAI,uBAAuB,EAC/C"}
1
+ {"version":3,"file":"forget-password-email.mjs","names":[],"sources":["../../../src/components/emails/forget-password-email.tsx"],"sourcesContent":["import {\n Body,\n Button,\n Container,\n Head,\n Heading,\n Html,\n Preview,\n Section,\n Tailwind,\n Text,\n} from \"@react-email/components\";\nimport { url } from \"@/lib/utils/url\";\nimport { Icons } from \"../common/icons\";\n\ninterface ForgetPasswordEmailProps {\n resetPasswordHref: string;\n}\n\nexport function ForgetPasswordEmail({ resetPasswordHref }: ForgetPasswordEmailProps) {\n return (\n <Html>\n <Head />\n <Preview>Herstel je wachtwoord</Preview>\n\n <Tailwind>\n <Body className=\"mx-auto my-auto bg-white px-2 font-sans\">\n <Container className=\"mx-auto my-[40px] max-w-[465px] rounded border border-[#eaeaea] border-solid p-[20px]\">\n <Icons.logo className=\"w-8\" />\n\n <Section className=\"my-[15px]\">\n <Heading className=\"mx-0 my-[20px] p-0 font-bold text-[24px] text-black\">\n Herstel uw wachtwoord\n </Heading>\n\n <Text className=\"text-[14px] text-black leading-[24px]\">\n Iemand heeft onlangs een wachtwoordwijziging voor uw account gevraagd. Als u dit\n was, kunt u hier een nieuw wachtwoord instellen:\n </Text>\n\n <Button\n className=\"rounded bg-[#000000] px-5 py-3 text-center font-semibold text-[12px] text-white no-underline\"\n href={resetPasswordHref}\n >\n Reset password\n </Button>\n </Section>\n\n <Section>\n <Text className=\"text-[12px] text-black leading-[20px]\">\n Als u uw wachtwoord niet wilt wijzigen of dit niet heeft gevraagd, negeer en\n verwijder dit bericht gewoon en verwijdert u.\n </Text>\n\n <Text className=\"text-[12px] text-black leading-[20px]\">\n Stuur deze e-mail niet door om uw account veilig te houden.\n </Text>\n </Section>\n </Container>\n </Body>\n </Tailwind>\n </Html>\n );\n}\n\nForgetPasswordEmail.PreviewProps = {\n resetPasswordHref: url(\"/auth/reset-password\"),\n} as ForgetPasswordEmailProps;\n\nexport default ForgetPasswordEmail;\n"],"mappings":";;;;;;AAmBA,SAAgB,oBAAoB,EAAE,qBAA+C;AACnF,QACE,qBAAC;EACC,oBAAC,SAAO;EACR,oBAAC,qBAAQ,0BAA+B;EAExC,oBAAC,sBACC,oBAAC;GAAK,WAAU;aACd,qBAAC;IAAU,WAAU;;KACnB,oBAAC,MAAM,QAAK,WAAU,QAAQ;KAE9B,qBAAC;MAAQ,WAAU;;OACjB,oBAAC;QAAQ,WAAU;kBAAsD;SAE/D;OAEV,oBAAC;QAAK,WAAU;kBAAwC;SAGjD;OAEP,oBAAC;QACC,WAAU;QACV,MAAM;kBACP;SAEQ;;OACD;KAEV,qBAAC,sBACC,oBAAC;MAAK,WAAU;gBAAwC;OAGjD,EAEP,oBAAC;MAAK,WAAU;gBAAwC;OAEjD,IACC;;KACA;IACP,GACE;KACN;;AAIX,oBAAoB,eAAe,EACjC,mBAAmB,IAAI,uBAAuB,EAC/C"}
@@ -3,7 +3,7 @@
3
3
  import { Icons } from "../common/icons.mjs";
4
4
  import { cn } from "../../lib/utils/cn.mjs";
5
5
  import { Button } from "../ui/button.mjs";
6
- import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuTrigger } from "../ui/context-menu.mjs";
6
+ import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuTrigger } from "../ui/context-menu.client.mjs";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  import { useRouter } from "next/navigation";
9
9
 
@@ -16,7 +16,7 @@ function HeaderTopbarBackButton({ className, ...props }) {
16
16
  ...props,
17
17
  variant: "ghost",
18
18
  onClick: () => router.back(),
19
- className: cn("text-muted-foreground hover:text-foreground w-content h-full rounded-none border-r p-0", className),
19
+ className: cn("h-full w-content rounded-none border-r border-r-border p-0 text-muted-foreground hover:text-foreground", className),
20
20
  children: /* @__PURE__ */ jsx(Icons.chevronLeft, { className: "opacity-50" })
21
21
  })
22
22
  }), /* @__PURE__ */ jsxs(ContextMenuContent, { children: [
@@ -1 +1 @@
1
- {"version":3,"file":"back-button.client.mjs","names":[],"sources":["../../../src/components/header/back-button.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { useRouter } from \"next/navigation\";\nimport { Icons } from \"@/components/common/icons\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"@/components/ui/context-menu\";\nimport { cn } from \"@/lib/utils/cn\";\n\nexport function HeaderTopbarBackButton({\n className,\n ...props\n}: React.HtmlHTMLAttributes<HTMLButtonElement>) {\n const router = useRouter();\n\n return (\n <ContextMenu>\n <ContextMenuTrigger asChild>\n <Button\n {...props}\n variant=\"ghost\"\n onClick={() => router.back()}\n className={cn(\n \"text-muted-foreground hover:text-foreground w-content h-full rounded-none border-r p-0\",\n className,\n )}\n >\n <Icons.chevronLeft className=\"opacity-50\" />\n </Button>\n </ContextMenuTrigger>\n\n <ContextMenuContent>\n <ContextMenuItem className=\"flex gap-3\" onClick={() => router.back()}>\n <Icons.moveLeft className=\"w-4\" />\n Terug\n </ContextMenuItem>\n\n <ContextMenuItem className=\"flex gap-3\" onClick={() => router.forward()}>\n <Icons.moveRight className=\"w-4\" />\n Vooruit\n </ContextMenuItem>\n\n <ContextMenuItem className=\"flex gap-3\" onClick={() => router.refresh()}>\n <Icons.refresh className=\"w-3.5\" />\n Verversen\n </ContextMenuItem>\n </ContextMenuContent>\n </ContextMenu>\n );\n}\n"],"mappings":";;;;;;;;;;AAaA,SAAgB,uBAAuB,EACrC,WACA,GAAG,SAC2C;CAC9C,MAAM,SAAS,WAAW;AAE1B,QACE,qBAAC,0BACC,oBAAC;EAAmB;YAClB,oBAAC;GACC,GAAI;GACJ,SAAQ;GACR,eAAe,OAAO,MAAM;GAC5B,WAAW,GACT,0FACA,UACD;aAED,oBAAC,MAAM,eAAY,WAAU,eAAe;IACrC;GACU,EAErB,qBAAC;EACC,qBAAC;GAAgB,WAAU;GAAa,eAAe,OAAO,MAAM;cAClE,oBAAC,MAAM,YAAS,WAAU,QAAQ;IAElB;EAElB,qBAAC;GAAgB,WAAU;GAAa,eAAe,OAAO,SAAS;cACrE,oBAAC,MAAM,aAAU,WAAU,QAAQ;IAEnB;EAElB,qBAAC;GAAgB,WAAU;GAAa,eAAe,OAAO,SAAS;cACrE,oBAAC,MAAM,WAAQ,WAAU,UAAU;IAEnB;KACC,IACT"}
1
+ {"version":3,"file":"back-button.client.mjs","names":[],"sources":["../../../src/components/header/back-button.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { useRouter } from \"next/navigation\";\nimport { Icons } from \"@/components/common/icons\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"@/components/ui/context-menu.client\";\nimport { cn } from \"@/lib/utils/cn\";\n\nexport function HeaderTopbarBackButton({\n className,\n ...props\n}: React.HtmlHTMLAttributes<HTMLButtonElement>) {\n const router = useRouter();\n\n return (\n <ContextMenu>\n <ContextMenuTrigger asChild>\n <Button\n {...props}\n variant=\"ghost\"\n onClick={() => router.back()}\n className={cn(\n \"h-full w-content rounded-none border-r border-r-border p-0 text-muted-foreground hover:text-foreground\",\n className,\n )}\n >\n <Icons.chevronLeft className=\"opacity-50\" />\n </Button>\n </ContextMenuTrigger>\n\n <ContextMenuContent>\n <ContextMenuItem className=\"flex gap-3\" onClick={() => router.back()}>\n <Icons.moveLeft className=\"w-4\" />\n Terug\n </ContextMenuItem>\n\n <ContextMenuItem className=\"flex gap-3\" onClick={() => router.forward()}>\n <Icons.moveRight className=\"w-4\" />\n Vooruit\n </ContextMenuItem>\n\n <ContextMenuItem className=\"flex gap-3\" onClick={() => router.refresh()}>\n <Icons.refresh className=\"w-3.5\" />\n Verversen\n </ContextMenuItem>\n </ContextMenuContent>\n </ContextMenu>\n );\n}\n"],"mappings":";;;;;;;;;;AAaA,SAAgB,uBAAuB,EACrC,WACA,GAAG,SAC2C;CAC9C,MAAM,SAAS,WAAW;AAE1B,QACE,qBAAC,0BACC,oBAAC;EAAmB;YAClB,oBAAC;GACC,GAAI;GACJ,SAAQ;GACR,eAAe,OAAO,MAAM;GAC5B,WAAW,GACT,0GACA,UACD;aAED,oBAAC,MAAM,eAAY,WAAU,eAAe;IACrC;GACU,EAErB,qBAAC;EACC,qBAAC;GAAgB,WAAU;GAAa,eAAe,OAAO,MAAM;cAClE,oBAAC,MAAM,YAAS,WAAU,QAAQ;IAElB;EAElB,qBAAC;GAAgB,WAAU;GAAa,eAAe,OAAO,SAAS;cACrE,oBAAC,MAAM,aAAU,WAAU,QAAQ;IAEnB;EAElB,qBAAC;GAAgB,WAAU;GAAa,eAAe,OAAO,SAAS;cACrE,oBAAC,MAAM,WAAQ,WAAU,UAAU;IAEnB;KACC,IACT"}
@@ -17,11 +17,11 @@ function BottomBarLinks({ paths, className, ...props }) {
17
17
  const currentSegment = useSelectedLayoutSegment();
18
18
  return /* @__PURE__ */ jsx("ul", {
19
19
  ...props,
20
- className: cn("px-content flex flex-row items-center gap-6 text-sm font-medium", className),
20
+ className: cn("flex flex-row items-center gap-6 px-content font-medium text-sm", className),
21
21
  children: paths.map(({ href, name, segment, permission }) => {
22
22
  const children = /* @__PURE__ */ jsx(Link, {
23
23
  href,
24
- className: cn("text-muted-foreground hover:text-foreground w-fit text-nowrap break-keep transition-colors", currentSegment === segment && "text-primary"),
24
+ className: cn("w-fit text-nowrap break-keep text-muted-foreground transition-colors hover:text-foreground", currentSegment === segment && "text-primary"),
25
25
  children: name
26
26
  }, href);
27
27
  if (permission) return /* @__PURE__ */ jsx(Allowed, {
@@ -1 +1 @@
1
- {"version":3,"file":"bottom-bar.client.mjs","names":[],"sources":["../../../src/components/header/bottom-bar.client.tsx"],"sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport { useSelectedLayoutSegment } from \"next/navigation\";\nimport type React from \"react\";\nimport { cn } from \"@/lib/utils/cn\";\nimport { Allowed } from \"@/modules/auth/components/allowed.client\";\nimport type { Path } from \"@/modules/config/paths/types\";\n\n/**\n * Bottombar component\n */\nexport type BottomBarProps = {\n children: React.ReactNode;\n};\n\nexport function BottomBar({ children }: BottomBarProps) {\n return (\n <nav className=\"flex h-[var(--header-bottom-bar-height)] items-center justify-between overflow-x-auto border-b\">\n {children}\n </nav>\n );\n}\n\n/**\n * Bottombar link component\n */\nexport type BottomBarLink = Omit<Path, \"icon\" | \"badge\">;\n\nexport type BottomBarLinksProps = React.HTMLAttributes<HTMLElement> & {\n paths: BottomBarLink[];\n};\n\nexport function BottomBarLinks({ paths, className, ...props }: BottomBarLinksProps) {\n const currentSegment = useSelectedLayoutSegment();\n\n return (\n <ul\n {...props}\n className={cn(\"px-content flex flex-row items-center gap-6 text-sm font-medium\", className)}\n >\n {paths.map(({ href, name, segment, permission }) => {\n const children = (\n <Link\n key={href}\n href={href}\n className={cn(\n \"text-muted-foreground hover:text-foreground w-fit text-nowrap break-keep transition-colors\",\n currentSegment === segment && \"text-primary\",\n )}\n >\n {name}\n </Link>\n );\n\n if (permission) {\n return (\n <Allowed key={href} permission={permission}>\n {children}\n </Allowed>\n );\n }\n\n return children;\n })}\n </ul>\n );\n}\n"],"mappings":";;;;;;;;;AAgBA,SAAgB,UAAU,EAAE,YAA4B;AACtD,QACE,oBAAC;EAAI,WAAU;EACZ;GACG;;AAaV,SAAgB,eAAe,EAAE,OAAO,WAAW,GAAG,SAA8B;CAClF,MAAM,iBAAiB,0BAA0B;AAEjD,QACE,oBAAC;EACC,GAAI;EACJ,WAAW,GAAG,mEAAmE,UAAU;YAE1F,MAAM,KAAK,EAAE,MAAM,MAAM,SAAS,iBAAiB;GAClD,MAAM,WACJ,oBAAC;IAEO;IACN,WAAW,GACT,8FACA,mBAAmB,WAAW,eAC/B;cAEA;MAPI,KAQA;AAGT,OAAI,WACF,QACE,oBAAC;IAA+B;IAC7B;MADW,KAEJ;AAId,UAAO;IACP;GACC"}
1
+ {"version":3,"file":"bottom-bar.client.mjs","names":[],"sources":["../../../src/components/header/bottom-bar.client.tsx"],"sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport { useSelectedLayoutSegment } from \"next/navigation\";\nimport type React from \"react\";\nimport { cn } from \"@/lib/utils/cn\";\nimport { Allowed } from \"@/modules/auth/components/allowed.client\";\nimport type { Path } from \"@/modules/config/paths/types\";\n\n/**\n * Bottombar component\n */\nexport type BottomBarProps = {\n children: React.ReactNode;\n};\n\nexport function BottomBar({ children }: BottomBarProps) {\n return (\n <nav className=\"flex h-[var(--header-bottom-bar-height)] items-center justify-between overflow-x-auto border-b\">\n {children}\n </nav>\n );\n}\n\n/**\n * Bottombar link component\n */\nexport type BottomBarLink = Omit<Path, \"icon\" | \"badge\">;\n\nexport type BottomBarLinksProps = React.HTMLAttributes<HTMLElement> & {\n paths: BottomBarLink[];\n};\n\nexport function BottomBarLinks({ paths, className, ...props }: BottomBarLinksProps) {\n const currentSegment = useSelectedLayoutSegment();\n\n return (\n <ul\n {...props}\n className={cn(\"flex flex-row items-center gap-6 px-content font-medium text-sm\", className)}\n >\n {paths.map(({ href, name, segment, permission }) => {\n const children = (\n <Link\n key={href}\n href={href}\n className={cn(\n \"w-fit text-nowrap break-keep text-muted-foreground transition-colors hover:text-foreground\",\n currentSegment === segment && \"text-primary\",\n )}\n >\n {name}\n </Link>\n );\n\n if (permission) {\n return (\n <Allowed key={href} permission={permission}>\n {children}\n </Allowed>\n );\n }\n\n return children;\n })}\n </ul>\n );\n}\n"],"mappings":";;;;;;;;;AAgBA,SAAgB,UAAU,EAAE,YAA4B;AACtD,QACE,oBAAC;EAAI,WAAU;EACZ;GACG;;AAaV,SAAgB,eAAe,EAAE,OAAO,WAAW,GAAG,SAA8B;CAClF,MAAM,iBAAiB,0BAA0B;AAEjD,QACE,oBAAC;EACC,GAAI;EACJ,WAAW,GAAG,mEAAmE,UAAU;YAE1F,MAAM,KAAK,EAAE,MAAM,MAAM,SAAS,iBAAiB;GAClD,MAAM,WACJ,oBAAC;IAEO;IACN,WAAW,GACT,8FACA,mBAAmB,WAAW,eAC/B;cAEA;MAPI,KAQA;AAGT,OAAI,WACF,QACE,oBAAC;IAA+B;IAC7B;MADW,KAEJ;AAId,UAAO;IACP;GACC"}
@@ -1,5 +1,5 @@
1
1
  import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "../ui/breadcrumb.mjs";
2
- import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../ui/dropdown-menu.mjs";
2
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../ui/dropdown-menu.client.mjs";
3
3
  import { ScrollArea } from "../ui/scroll-area.mjs";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import Link from "next/link";
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.client.mjs","names":[],"sources":["../../../src/components/header/breadcrumbs.client.tsx"],"sourcesContent":["import Link from \"next/link\";\nimport type { PropsWithChildren } from \"react\";\nimport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\n\nexport type HeaderBreadcrumb = {\n label: string;\n href?: string;\n};\n\nexport type HeaderBreadcrumbProps = {\n breadcrumbs: HeaderBreadcrumb[];\n};\n\nexport function HeaderBreadcrumbs(props: PropsWithChildren) {\n return <Breadcrumb>{props.children}</Breadcrumb>;\n}\n\nexport const HeaderBreadcrumbSeparator = BreadcrumbSeparator;\n\n/**\n * Dropdown menu\n */\nexport function HeaderBreadcrumbsDropdownMenu(props: PropsWithChildren) {\n return (\n <BreadcrumbItem>\n <DropdownMenu>\n <DropdownMenuTrigger className=\"flex items-center gap-1\">\n <BreadcrumbEllipsis />\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">{props.children}</DropdownMenuContent>\n </DropdownMenu>\n </BreadcrumbItem>\n );\n}\n\nexport function HeaderBreadcrumbsDropdownMenuItem(props: { breadcrumb: HeaderBreadcrumb }) {\n return (\n <DropdownMenuItem>\n {props.breadcrumb.href ? (\n <Link href={props.breadcrumb.href}>{props.breadcrumb.label}</Link>\n ) : (\n <span>{props.breadcrumb.label}</span>\n )}\n </DropdownMenuItem>\n );\n}\n\n/**\n * Links\n */\nexport function HeaderBreadcrumbsLink(props: { breadcrumb: HeaderBreadcrumb }) {\n return (\n <BreadcrumbItem>\n {props.breadcrumb.href ? (\n <BreadcrumbLink asChild>\n <Link href={props.breadcrumb.href} className=\"truncate\">\n {props.breadcrumb.label}\n </Link>\n </BreadcrumbLink>\n ) : (\n <BreadcrumbPage className=\"truncate\">{props.breadcrumb.label}</BreadcrumbPage>\n )}\n </BreadcrumbItem>\n );\n}\n\n/**\n * Lists\n */\nexport function HeaderBreadcrumbsMobileList(props: PropsWithChildren) {\n return (\n <ScrollArea>\n <BreadcrumbList className=\"flex-nowrap lg:hidden\">{props.children}</BreadcrumbList>\n </ScrollArea>\n );\n}\n\nexport function HeaderBreadcrumbsDesktopList(props: PropsWithChildren) {\n return (\n <ScrollArea>\n <BreadcrumbList className=\"hidden flex-nowrap lg:flex\">{props.children}</BreadcrumbList>\n </ScrollArea>\n );\n}\n"],"mappings":";;;;;;;AA4BA,SAAgB,kBAAkB,OAA0B;AAC1D,QAAO,oBAAC,wBAAY,MAAM,WAAsB;;AAGlD,MAAa,4BAA4B;;;;AAKzC,SAAgB,8BAA8B,OAA0B;AACtE,QACE,oBAAC,4BACC,qBAAC,2BACC,oBAAC;EAAoB,WAAU;YAC7B,oBAAC,uBAAqB;GACF,EACtB,oBAAC;EAAoB,OAAM;YAAS,MAAM;GAA+B,IAC5D,GACA;;AAIrB,SAAgB,kCAAkC,OAAyC;AACzF,QACE,oBAAC,8BACE,MAAM,WAAW,OAChB,oBAAC;EAAK,MAAM,MAAM,WAAW;YAAO,MAAM,WAAW;GAAa,GAElE,oBAAC,oBAAM,MAAM,WAAW,QAAa,GAEtB;;;;;AAOvB,SAAgB,sBAAsB,OAAyC;AAC7E,QACE,oBAAC,4BACE,MAAM,WAAW,OAChB,oBAAC;EAAe;YACd,oBAAC;GAAK,MAAM,MAAM,WAAW;GAAM,WAAU;aAC1C,MAAM,WAAW;IACb;GACQ,GAEjB,oBAAC;EAAe,WAAU;YAAY,MAAM,WAAW;GAAuB,GAEjE;;;;;AAOrB,SAAgB,4BAA4B,OAA0B;AACpE,QACE,oBAAC,wBACC,oBAAC;EAAe,WAAU;YAAyB,MAAM;GAA0B,GACxE;;AAIjB,SAAgB,6BAA6B,OAA0B;AACrE,QACE,oBAAC,wBACC,oBAAC;EAAe,WAAU;YAA8B,MAAM;GAA0B,GAC7E"}
1
+ {"version":3,"file":"breadcrumbs.client.mjs","names":[],"sources":["../../../src/components/header/breadcrumbs.client.tsx"],"sourcesContent":["import Link from \"next/link\";\nimport type { PropsWithChildren } from \"react\";\nimport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu.client\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\n\nexport type HeaderBreadcrumb = {\n label: string;\n href?: string;\n};\n\nexport type HeaderBreadcrumbProps = {\n breadcrumbs: HeaderBreadcrumb[];\n};\n\nexport function HeaderBreadcrumbs(props: PropsWithChildren) {\n return <Breadcrumb>{props.children}</Breadcrumb>;\n}\n\nexport const HeaderBreadcrumbSeparator = BreadcrumbSeparator;\n\n/**\n * Dropdown menu\n */\nexport function HeaderBreadcrumbsDropdownMenu(props: PropsWithChildren) {\n return (\n <BreadcrumbItem>\n <DropdownMenu>\n <DropdownMenuTrigger className=\"flex items-center gap-1\">\n <BreadcrumbEllipsis />\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">{props.children}</DropdownMenuContent>\n </DropdownMenu>\n </BreadcrumbItem>\n );\n}\n\nexport function HeaderBreadcrumbsDropdownMenuItem(props: { breadcrumb: HeaderBreadcrumb }) {\n return (\n <DropdownMenuItem>\n {props.breadcrumb.href ? (\n <Link href={props.breadcrumb.href}>{props.breadcrumb.label}</Link>\n ) : (\n <span>{props.breadcrumb.label}</span>\n )}\n </DropdownMenuItem>\n );\n}\n\n/**\n * Links\n */\nexport function HeaderBreadcrumbsLink(props: { breadcrumb: HeaderBreadcrumb }) {\n return (\n <BreadcrumbItem>\n {props.breadcrumb.href ? (\n <BreadcrumbLink asChild>\n <Link href={props.breadcrumb.href} className=\"truncate\">\n {props.breadcrumb.label}\n </Link>\n </BreadcrumbLink>\n ) : (\n <BreadcrumbPage className=\"truncate\">{props.breadcrumb.label}</BreadcrumbPage>\n )}\n </BreadcrumbItem>\n );\n}\n\n/**\n * Lists\n */\nexport function HeaderBreadcrumbsMobileList(props: PropsWithChildren) {\n return (\n <ScrollArea>\n <BreadcrumbList className=\"flex-nowrap lg:hidden\">{props.children}</BreadcrumbList>\n </ScrollArea>\n );\n}\n\nexport function HeaderBreadcrumbsDesktopList(props: PropsWithChildren) {\n return (\n <ScrollArea>\n <BreadcrumbList className=\"hidden flex-nowrap lg:flex\">{props.children}</BreadcrumbList>\n </ScrollArea>\n );\n}\n"],"mappings":";;;;;;;AA4BA,SAAgB,kBAAkB,OAA0B;AAC1D,QAAO,oBAAC,wBAAY,MAAM,WAAsB;;AAGlD,MAAa,4BAA4B;;;;AAKzC,SAAgB,8BAA8B,OAA0B;AACtE,QACE,oBAAC,4BACC,qBAAC,2BACC,oBAAC;EAAoB,WAAU;YAC7B,oBAAC,uBAAqB;GACF,EACtB,oBAAC;EAAoB,OAAM;YAAS,MAAM;GAA+B,IAC5D,GACA;;AAIrB,SAAgB,kCAAkC,OAAyC;AACzF,QACE,oBAAC,8BACE,MAAM,WAAW,OAChB,oBAAC;EAAK,MAAM,MAAM,WAAW;YAAO,MAAM,WAAW;GAAa,GAElE,oBAAC,oBAAM,MAAM,WAAW,QAAa,GAEtB;;;;;AAOvB,SAAgB,sBAAsB,OAAyC;AAC7E,QACE,oBAAC,4BACE,MAAM,WAAW,OAChB,oBAAC;EAAe;YACd,oBAAC;GAAK,MAAM,MAAM,WAAW;GAAM,WAAU;aAC1C,MAAM,WAAW;IACb;GACQ,GAEjB,oBAAC;EAAe,WAAU;YAAY,MAAM,WAAW;GAAuB,GAEjE;;;;;AAOrB,SAAgB,4BAA4B,OAA0B;AACpE,QACE,oBAAC,wBACC,oBAAC;EAAe,WAAU;YAAyB,MAAM;GAA0B,GACxE;;AAIjB,SAAgB,6BAA6B,OAA0B;AACrE,QACE,oBAAC,wBACC,oBAAC;EAAe,WAAU;YAA8B,MAAM;GAA0B,GAC7E"}
@@ -4,7 +4,7 @@ import { jsx } from "react/jsx-runtime";
4
4
  //#region src/components/header/header.client.tsx
5
5
  function Header({ children, className, ...props }) {
6
6
  return /* @__PURE__ */ jsx("header", {
7
- className: cn("bg-sidebar sticky top-0 z-30 backdrop-blur-3xl", className),
7
+ className: cn("sticky top-0 z-30 bg-sidebar backdrop-blur-3xl", className),
8
8
  ...props,
9
9
  children
10
10
  });
@@ -1 +1 @@
1
- {"version":3,"file":"header.client.mjs","names":[],"sources":["../../../src/components/header/header.client.tsx"],"sourcesContent":["import type { ComponentProps } from \"react\";\nimport { cn } from \"@/lib/utils/cn\";\n\nexport function Header({ children, className, ...props }: ComponentProps<\"header\">) {\n return (\n <header className={cn(\"bg-sidebar sticky top-0 z-30 backdrop-blur-3xl\", className)} {...props}>\n {children}\n </header>\n );\n}\n"],"mappings":";;;;AAGA,SAAgB,OAAO,EAAE,UAAU,WAAW,GAAG,SAAmC;AAClF,QACE,oBAAC;EAAO,WAAW,GAAG,kDAAkD,UAAU;EAAE,GAAI;EACrF;GACM"}
1
+ {"version":3,"file":"header.client.mjs","names":[],"sources":["../../../src/components/header/header.client.tsx"],"sourcesContent":["import type { ComponentProps } from \"react\";\nimport { cn } from \"@/lib/utils/cn\";\n\nexport function Header({ children, className, ...props }: ComponentProps<\"header\">) {\n return (\n <header className={cn(\"sticky top-0 z-30 bg-sidebar backdrop-blur-3xl\", className)} {...props}>\n {children}\n </header>\n );\n}\n"],"mappings":";;;;AAGA,SAAgB,OAAO,EAAE,UAAU,WAAW,GAAG,SAAmC;AAClF,QACE,oBAAC;EAAO,WAAW,GAAG,kDAAkD,UAAU;EAAE,GAAI;EACrF;GACM"}
@@ -11,14 +11,14 @@ function EmptyPage({ className, children, ...props }) {
11
11
  }
12
12
  function EmptyPageTitle({ className, children, ...props }) {
13
13
  return /* @__PURE__ */ jsx("h2", {
14
- className: cn("text-lg font-bold tracking-tight", className),
14
+ className: cn("font-bold text-lg tracking-tight", className),
15
15
  ...props,
16
16
  children
17
17
  });
18
18
  }
19
19
  function EmptyPageDescription({ className, children, ...props }) {
20
20
  return /* @__PURE__ */ jsx("p", {
21
- className: cn("text-muted-foreground max-w-[40ch] text-sm", className),
21
+ className: cn("max-w-[40ch] text-muted-foreground text-sm", className),
22
22
  ...props,
23
23
  children
24
24
  });
@@ -1 +1 @@
1
- {"version":3,"file":"empty-page.mjs","names":[],"sources":["../../../src/components/layouts/empty-page.tsx"],"sourcesContent":["import type { Route } from \"next\";\nimport type { ComponentProps, HTMLAttributes } from \"react\";\nimport { cn } from \"@/lib/utils/cn\";\n\nexport type EmptyPageProps = HTMLAttributes<HTMLDivElement> & {\n title: string;\n description?: string;\n callToAction?: {\n href: Route;\n title: string;\n };\n};\n\nexport function EmptyPage({ className, children, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex h-full min-h-[30rem] w-full flex-col items-center justify-center gap-y-2 border border-dashed text-center\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport function EmptyPageTitle({ className, children, ...props }: ComponentProps<\"h2\">) {\n return (\n <h2 className={cn(\"text-lg font-bold tracking-tight\", className)} {...props}>\n {children}\n </h2>\n );\n}\n\nexport function EmptyPageDescription({ className, children, ...props }: ComponentProps<\"p\">) {\n return (\n <p className={cn(\"text-muted-foreground max-w-[40ch] text-sm\", className)} {...props}>\n {children}\n </p>\n );\n}\n"],"mappings":";;;;AAaA,SAAgB,UAAU,EAAE,WAAW,UAAU,GAAG,SAAgC;AAClF,QACE,oBAAC;EACC,WAAW,GACT,kHACA,UACD;EACD,GAAI;EAEH;GACG;;AAIV,SAAgB,eAAe,EAAE,WAAW,UAAU,GAAG,SAA+B;AACtF,QACE,oBAAC;EAAG,WAAW,GAAG,oCAAoC,UAAU;EAAE,GAAI;EACnE;GACE;;AAIT,SAAgB,qBAAqB,EAAE,WAAW,UAAU,GAAG,SAA8B;AAC3F,QACE,oBAAC;EAAE,WAAW,GAAG,8CAA8C,UAAU;EAAE,GAAI;EAC5E;GACC"}
1
+ {"version":3,"file":"empty-page.mjs","names":[],"sources":["../../../src/components/layouts/empty-page.tsx"],"sourcesContent":["import type { Route } from \"next\";\nimport type { ComponentProps, HTMLAttributes } from \"react\";\nimport { cn } from \"@/lib/utils/cn\";\n\nexport type EmptyPageProps = HTMLAttributes<HTMLDivElement> & {\n title: string;\n description?: string;\n callToAction?: {\n href: Route;\n title: string;\n };\n};\n\nexport function EmptyPage({ className, children, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex h-full min-h-[30rem] w-full flex-col items-center justify-center gap-y-2 border border-dashed text-center\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport function EmptyPageTitle({ className, children, ...props }: ComponentProps<\"h2\">) {\n return (\n <h2 className={cn(\"font-bold text-lg tracking-tight\", className)} {...props}>\n {children}\n </h2>\n );\n}\n\nexport function EmptyPageDescription({ className, children, ...props }: ComponentProps<\"p\">) {\n return (\n <p className={cn(\"max-w-[40ch] text-muted-foreground text-sm\", className)} {...props}>\n {children}\n </p>\n );\n}\n"],"mappings":";;;;AAaA,SAAgB,UAAU,EAAE,WAAW,UAAU,GAAG,SAAgC;AAClF,QACE,oBAAC;EACC,WAAW,GACT,kHACA,UACD;EACD,GAAI;EAEH;GACG;;AAIV,SAAgB,eAAe,EAAE,WAAW,UAAU,GAAG,SAA+B;AACtF,QACE,oBAAC;EAAG,WAAW,GAAG,oCAAoC,UAAU;EAAE,GAAI;EACnE;GACE;;AAIT,SAAgB,qBAAqB,EAAE,WAAW,UAAU,GAAG,SAA8B;AAC3F,QACE,oBAAC;EAAE,WAAW,GAAG,8CAA8C,UAAU;EAAE,GAAI;EAC5E;GACC"}
@@ -9,7 +9,7 @@ import { jsx } from "react/jsx-runtime";
9
9
  function ErrorPage({ className, children, ...props }) {
10
10
  return /* @__PURE__ */ jsx("div", {
11
11
  ...props,
12
- className: cn("min-h-120 flex h-full w-full flex-col items-center justify-center gap-y-3 border border-dashed text-center", className),
12
+ className: cn("flex h-full min-h-120 w-full flex-col items-center justify-center gap-y-3 border border-dashed text-center", className),
13
13
  children
14
14
  });
15
15
  }
@@ -18,7 +18,7 @@ function ErrorPage({ className, children, ...props }) {
18
18
  */
19
19
  function ErrorPageCode({ className, children, ...props }) {
20
20
  return /* @__PURE__ */ jsx("h2", {
21
- className: cn("text-9xl font-bold leading-none", className),
21
+ className: cn("font-bold text-9xl leading-none", className),
22
22
  ...props,
23
23
  children
24
24
  });
@@ -43,7 +43,7 @@ function ErrorPageIcon({ variant = "default", className, ...props }) {
43
43
  */
44
44
  function ErrorPageDescription({ className, children, ...props }) {
45
45
  return /* @__PURE__ */ jsx("p", {
46
- className: cn("text-2xl font-bold lg:text-3xl", className),
46
+ className: cn("font-bold text-2xl lg:text-3xl", className),
47
47
  ...props,
48
48
  children
49
49
  });
@@ -1 +1 @@
1
- {"version":3,"file":"error-page.mjs","names":[],"sources":["../../../src/components/layouts/error-page.tsx"],"sourcesContent":["import { BugIcon, ServerCrashIcon, ShieldBanIcon } from \"lucide-react\";\nimport type { ComponentProps } from \"react\";\nimport { cn } from \"@/lib/utils/cn\";\n\n/**\n * ErrorPage\n */\nexport function ErrorPage({ className, children, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n {...props}\n className={cn(\n \"min-h-120 flex h-full w-full flex-col items-center justify-center gap-y-3 border border-dashed text-center\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\n/**\n * ErrorPageCode\n */\nexport function ErrorPageCode({ className, children, ...props }: ComponentProps<\"h2\">) {\n return (\n <h2 className={cn(\"text-9xl font-bold leading-none\", className)} {...props}>\n {children}\n </h2>\n );\n}\n\n/**\n * ErrorPageIcon\n */\nconst errorPageIcons = {\n serverError: ServerCrashIcon,\n notAllowed: ShieldBanIcon,\n default: BugIcon,\n // 404: BombIcon,\n};\n\nexport function ErrorPageIcon({\n variant = \"default\",\n className,\n ...props\n}: ComponentProps<\"svg\"> & { variant?: keyof typeof errorPageIcons }) {\n const Icon = errorPageIcons[variant];\n\n return <Icon className={cn(\"size-16 xl:size-24\", className)} {...props} />;\n}\n\n/**\n * ErrorPageDescription\n */\nexport function ErrorPageDescription({ className, children, ...props }: ComponentProps<\"p\">) {\n return (\n <p className={cn(\"text-2xl font-bold lg:text-3xl\", className)} {...props}>\n {children}\n </p>\n );\n}\n\n// export function ErrorPage({ className, ...props }: ComponentProps<\"div\">) {\n// return (\n// <div {...props} className={cn(\"relative z-0 grid w-full place-items-center\", className)}>\n// <div className=\"flex flex-col items-center gap-12 text-center\">\n// <span className=\"text-destructive flex flex-col items-center gap-2\">\n// <BugIcon className=\"size-20 xl:size-32\" />\n// <h1 className=\"text-2xl font-bold lg:text-3xl\">Oeps, er is iets fout gegaan.</h1>\n// </span>\n// </div>\n// </div>\n// );\n// }\n"],"mappings":";;;;;;;;AAOA,SAAgB,UAAU,EAAE,WAAW,UAAU,GAAG,SAAgC;AAClF,QACE,oBAAC;EACC,GAAI;EACJ,WAAW,GACT,8GACA,UACD;EAEA;GACG;;;;;AAOV,SAAgB,cAAc,EAAE,WAAW,UAAU,GAAG,SAA+B;AACrF,QACE,oBAAC;EAAG,WAAW,GAAG,mCAAmC,UAAU;EAAE,GAAI;EAClE;GACE;;;;;AAOT,MAAM,iBAAiB;CACrB,aAAa;CACb,YAAY;CACZ,SAAS;CAEV;AAED,SAAgB,cAAc,EAC5B,UAAU,WACV,WACA,GAAG,SACiE;CACpE,MAAM,OAAO,eAAe;AAE5B,QAAO,oBAAC;EAAK,WAAW,GAAG,sBAAsB,UAAU;EAAE,GAAI;GAAS;;;;;AAM5E,SAAgB,qBAAqB,EAAE,WAAW,UAAU,GAAG,SAA8B;AAC3F,QACE,oBAAC;EAAE,WAAW,GAAG,kCAAkC,UAAU;EAAE,GAAI;EAChE;GACC"}
1
+ {"version":3,"file":"error-page.mjs","names":[],"sources":["../../../src/components/layouts/error-page.tsx"],"sourcesContent":["import { BugIcon, ServerCrashIcon, ShieldBanIcon } from \"lucide-react\";\nimport type { ComponentProps } from \"react\";\nimport { cn } from \"@/lib/utils/cn\";\n\n/**\n * ErrorPage\n */\nexport function ErrorPage({ className, children, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n {...props}\n className={cn(\n \"flex h-full min-h-120 w-full flex-col items-center justify-center gap-y-3 border border-dashed text-center\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\n/**\n * ErrorPageCode\n */\nexport function ErrorPageCode({ className, children, ...props }: ComponentProps<\"h2\">) {\n return (\n <h2 className={cn(\"font-bold text-9xl leading-none\", className)} {...props}>\n {children}\n </h2>\n );\n}\n\n/**\n * ErrorPageIcon\n */\nconst errorPageIcons = {\n serverError: ServerCrashIcon,\n notAllowed: ShieldBanIcon,\n default: BugIcon,\n // 404: BombIcon,\n};\n\nexport function ErrorPageIcon({\n variant = \"default\",\n className,\n ...props\n}: ComponentProps<\"svg\"> & { variant?: keyof typeof errorPageIcons }) {\n const Icon = errorPageIcons[variant];\n\n return <Icon className={cn(\"size-16 xl:size-24\", className)} {...props} />;\n}\n\n/**\n * ErrorPageDescription\n */\nexport function ErrorPageDescription({ className, children, ...props }: ComponentProps<\"p\">) {\n return (\n <p className={cn(\"font-bold text-2xl lg:text-3xl\", className)} {...props}>\n {children}\n </p>\n );\n}\n\n// export function ErrorPage({ className, ...props }: ComponentProps<\"div\">) {\n// return (\n// <div {...props} className={cn(\"relative z-0 grid w-full place-items-center\", className)}>\n// <div className=\"flex flex-col items-center gap-12 text-center\">\n// <span className=\"text-destructive flex flex-col items-center gap-2\">\n// <BugIcon className=\"size-20 xl:size-32\" />\n// <h1 className=\"text-2xl font-bold lg:text-3xl\">Oeps, er is iets fout gegaan.</h1>\n// </span>\n// </div>\n// </div>\n// );\n// }\n"],"mappings":";;;;;;;;AAOA,SAAgB,UAAU,EAAE,WAAW,UAAU,GAAG,SAAgC;AAClF,QACE,oBAAC;EACC,GAAI;EACJ,WAAW,GACT,8GACA,UACD;EAEA;GACG;;;;;AAOV,SAAgB,cAAc,EAAE,WAAW,UAAU,GAAG,SAA+B;AACrF,QACE,oBAAC;EAAG,WAAW,GAAG,mCAAmC,UAAU;EAAE,GAAI;EAClE;GACE;;;;;AAOT,MAAM,iBAAiB;CACrB,aAAa;CACb,YAAY;CACZ,SAAS;CAEV;AAED,SAAgB,cAAc,EAC5B,UAAU,WACV,WACA,GAAG,SACiE;CACpE,MAAM,OAAO,eAAe;AAE5B,QAAO,oBAAC;EAAK,WAAW,GAAG,sBAAsB,UAAU;EAAE,GAAI;GAAS;;;;;AAM5E,SAAgB,qBAAqB,EAAE,WAAW,UAAU,GAAG,SAA8B;AAC3F,QACE,oBAAC;EAAE,WAAW,GAAG,kCAAkC,UAAU;EAAE,GAAI;EAChE;GACC"}
@@ -1 +1 @@
1
- {"version":3,"file":"providers.client.d.mts","names":[],"sources":["../../../src/components/layouts/providers.client.tsx"],"mappings":";;;;iBAWgB,SAAA,CAAA;EAAY;AAAA,GAAY,iBAAA,GAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"providers.client.d.mts","names":[],"sources":["../../../src/components/layouts/providers.client.tsx"],"mappings":";;;;iBAYgB,SAAA,CAAA;EAAY;AAAA,GAAY,iBAAA,GAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import { IndicatorContextProvider } from "../../lib/hooks/use-indicator.mjs";
4
+ import { TooltipProvider } from "../ui/tooltip.client.mjs";
4
5
  import { Toaster } from "../ui/sonner.client.mjs";
5
6
  import { getQueryClient } from "../../modules/router/lib/query-client.mjs";
6
7
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -13,7 +14,7 @@ import { NuqsAdapter } from "nuqs/adapters/next/app";
13
14
  function Providers({ children }) {
14
15
  return /* @__PURE__ */ jsx(QueryClientProvider, {
15
16
  client: getQueryClient(),
16
- children: /* @__PURE__ */ jsx(NuqsAdapter, { children: /* @__PURE__ */ jsx(IndicatorContextProvider, { children: /* @__PURE__ */ jsxs(ThemeProvider, {
17
+ children: /* @__PURE__ */ jsx(NuqsAdapter, { children: /* @__PURE__ */ jsx(IndicatorContextProvider, { children: /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsxs(ThemeProvider, {
17
18
  attribute: "class",
18
19
  defaultTheme: "system",
19
20
  enableSystem: true,
@@ -22,7 +23,7 @@ function Providers({ children }) {
22
23
  /* @__PURE__ */ jsx(Toaster, {}),
23
24
  /* @__PURE__ */ jsx(ReactQueryDevtools, {})
24
25
  ]
25
- }) }) })
26
+ }) }) }) })
26
27
  });
27
28
  }
28
29
 
@@ -1 +1 @@
1
- {"version":3,"file":"providers.client.mjs","names":[],"sources":["../../../src/components/layouts/providers.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { QueryClientProvider } from \"@tanstack/react-query\";\nimport { ReactQueryDevtools } from \"@tanstack/react-query-devtools\";\nimport { ThemeProvider } from \"next-themes\";\nimport { NuqsAdapter } from \"nuqs/adapters/next/app\";\nimport type { PropsWithChildren } from \"react\";\nimport { Toaster } from \"@/components/ui/sonner.client\";\nimport { IndicatorContextProvider } from \"@/lib/hooks/use-indicator\";\nimport { getQueryClient } from \"@/modules/router/lib/query-client\";\n\nexport function Providers({ children }: PropsWithChildren) {\n const queryClient = getQueryClient();\n\n return (\n <QueryClientProvider client={queryClient}>\n <NuqsAdapter>\n <IndicatorContextProvider>\n <ThemeProvider attribute=\"class\" defaultTheme=\"system\" enableSystem>\n {children}\n\n <Toaster />\n <ReactQueryDevtools />\n </ThemeProvider>\n </IndicatorContextProvider>\n </NuqsAdapter>\n </QueryClientProvider>\n );\n}\n"],"mappings":";;;;;;;;;;;;AAWA,SAAgB,UAAU,EAAE,YAA+B;AAGzD,QACE,oBAAC;EAAoB,QAHH,gBAAgB;YAIhC,oBAAC,yBACC,oBAAC,sCACC,qBAAC;GAAc,WAAU;GAAQ,cAAa;GAAS;;IACpD;IAED,oBAAC,YAAU;IACX,oBAAC,uBAAqB;;IACR,GACS,GACf;GACM"}
1
+ {"version":3,"file":"providers.client.mjs","names":[],"sources":["../../../src/components/layouts/providers.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { QueryClientProvider } from \"@tanstack/react-query\";\nimport { ReactQueryDevtools } from \"@tanstack/react-query-devtools\";\nimport { ThemeProvider } from \"next-themes\";\nimport { NuqsAdapter } from \"nuqs/adapters/next/app\";\nimport type { PropsWithChildren } from \"react\";\nimport { Toaster } from \"@/components/ui/sonner.client\";\nimport { IndicatorContextProvider } from \"@/lib/hooks/use-indicator\";\nimport { getQueryClient } from \"@/modules/router/lib/query-client\";\nimport { TooltipProvider } from \"../ui/tooltip.client\";\n\nexport function Providers({ children }: PropsWithChildren) {\n const queryClient = getQueryClient();\n\n return (\n <QueryClientProvider client={queryClient}>\n <NuqsAdapter>\n <IndicatorContextProvider>\n <TooltipProvider>\n <ThemeProvider attribute=\"class\" defaultTheme=\"system\" enableSystem>\n {children}\n\n <Toaster />\n <ReactQueryDevtools />\n </ThemeProvider>\n </TooltipProvider>\n </IndicatorContextProvider>\n </NuqsAdapter>\n </QueryClientProvider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAYA,SAAgB,UAAU,EAAE,YAA+B;AAGzD,QACE,oBAAC;EAAoB,QAHH,gBAAgB;YAIhC,oBAAC,yBACC,oBAAC,sCACC,oBAAC,6BACC,qBAAC;GAAc,WAAU;GAAQ,cAAa;GAAS;;IACpD;IAED,oBAAC,YAAU;IACX,oBAAC,uBAAqB;;IACR,GACA,GACO,GACf;GACM"}
@@ -1,11 +1,11 @@
1
- import { Spinner } from "../ui/spinner.mjs";
1
+ import { Loader } from "../ui/loader.mjs";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/layouts/root-loading.tsx
5
5
  function RootLoading() {
6
6
  return /* @__PURE__ */ jsx("div", {
7
7
  className: "grid h-dvh w-full place-items-center",
8
- children: /* @__PURE__ */ jsx(Spinner, {})
8
+ children: /* @__PURE__ */ jsx(Loader, {})
9
9
  });
10
10
  }
11
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"root-loading.mjs","names":[],"sources":["../../../src/components/layouts/root-loading.tsx"],"sourcesContent":["import { Spinner } from \"../ui/spinner\";\n\nexport function RootLoading() {\n return (\n <div className=\"grid h-dvh w-full place-items-center\">\n <Spinner />\n </div>\n );\n}\n"],"mappings":";;;;AAEA,SAAgB,cAAc;AAC5B,QACE,oBAAC;EAAI,WAAU;YACb,oBAAC,YAAU;GACP"}
1
+ {"version":3,"file":"root-loading.mjs","names":[],"sources":["../../../src/components/layouts/root-loading.tsx"],"sourcesContent":["import { Loader } from \"../ui/loader\";\n\nexport function RootLoading() {\n return (\n <div className=\"grid h-dvh w-full place-items-center\">\n <Loader />\n </div>\n );\n}\n"],"mappings":";;;;AAEA,SAAgB,cAAc;AAC5B,QACE,oBAAC;EAAI,WAAU;YACb,oBAAC,WAAS;GACN"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
 
3
3
  import { Allowed } from "../../modules/auth/components/allowed.client.mjs";
4
+ import { Tabs, TabsContent, TabsList, TabsTrigger } from "../ui/tabs.client.mjs";
4
5
  import { ListLayout } from "./list-layout.mjs";
5
- import { Tabs, TabsContent, TabsList, TabsTrigger } from "../ui/tabs.mjs";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  import { useState } from "react";
8
8
  import { useRouter, useSelectedLayoutSegment } from "next/navigation";
@@ -1 +1 @@
1
- {"version":3,"file":"tab-layout.mjs","names":[],"sources":["../../../src/components/layouts/tab-layout.tsx"],"sourcesContent":["\"use client\";\n\nimport type { Route } from \"next\";\nimport { useRouter, useSelectedLayoutSegment } from \"next/navigation\";\nimport { useState } from \"react\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { Allowed } from \"@/modules/auth/components/allowed.client\";\nimport type { Permission } from \"@/modules/auth/lib/permissions\";\nimport { ListLayout } from \"./list-layout\";\n\nexport type Tab = {\n name: string;\n href: Route;\n segment: string;\n icon?: React.ReactNode;\n permission?: Permission;\n};\n\nexport type TabLayoutProps = {\n tabs: Tab[];\n children: React.ReactNode;\n};\n\nexport function TabLayout({ tabs, children }: TabLayoutProps) {\n const segment = useSelectedLayoutSegment();\n const router = useRouter();\n\n const initialTab = tabs.find((tab) => tab.segment === segment);\n\n const [selectedTab, setSelectedTab] = useState(initialTab ?? tabs[0]);\n\n return (\n <Tabs\n value={selectedTab?.segment}\n onValueChange={(value) => {\n const newSelectedTab = tabs.find((tab) => tab.segment === value);\n if (!newSelectedTab) return;\n setSelectedTab(newSelectedTab);\n router.replace(newSelectedTab.href);\n }}\n >\n <div className=\"mb-10 max-w-full overflow-x-auto\">\n <TabsList>\n {tabs.map((tab) => {\n const children = (\n <TabsTrigger key={tab.segment} value={tab.segment}>\n {tab.icon && <span className=\"mr-2\">{tab.icon}</span>}\n <span className=\"capitalize\">{tab.name}</span>\n </TabsTrigger>\n );\n\n if (!tab.permission) return children;\n\n return (\n <Allowed key={tab.segment} permission={tab.permission}>\n {children}\n </Allowed>\n );\n })}\n </TabsList>\n </div>\n\n <TabsContent value={selectedTab?.segment ?? \"\"}>\n <ListLayout>{children}</ListLayout>\n </TabsContent>\n </Tabs>\n );\n}\n"],"mappings":";;;;;;;;;;AAuBA,SAAgB,UAAU,EAAE,MAAM,YAA4B;CAC5D,MAAM,UAAU,0BAA0B;CAC1C,MAAM,SAAS,WAAW;CAI1B,MAAM,CAAC,aAAa,kBAAkB,SAFnB,KAAK,MAAM,QAAQ,IAAI,YAAY,QAAQ,IAED,KAAK,GAAG;AAErE,QACE,qBAAC;EACC,OAAO,aAAa;EACpB,gBAAgB,UAAU;GACxB,MAAM,iBAAiB,KAAK,MAAM,QAAQ,IAAI,YAAY,MAAM;AAChE,OAAI,CAAC,eAAgB;AACrB,kBAAe,eAAe;AAC9B,UAAO,QAAQ,eAAe,KAAK;;aAGrC,oBAAC;GAAI,WAAU;aACb,oBAAC,sBACE,KAAK,KAAK,QAAQ;IACjB,MAAM,WACJ,qBAAC;KAA8B,OAAO,IAAI;gBACvC,IAAI,QAAQ,oBAAC;MAAK,WAAU;gBAAQ,IAAI;OAAY,EACrD,oBAAC;MAAK,WAAU;gBAAc,IAAI;OAAY;OAF9B,IAAI,QAGR;AAGhB,QAAI,CAAC,IAAI,WAAY,QAAO;AAE5B,WACE,oBAAC;KAA0B,YAAY,IAAI;KACxC;OADW,IAAI,QAER;KAEZ,GACO;IACP,EAEN,oBAAC;GAAY,OAAO,aAAa,WAAW;aAC1C,oBAAC,cAAY,WAAsB;IACvB;GACT"}
1
+ {"version":3,"file":"tab-layout.mjs","names":[],"sources":["../../../src/components/layouts/tab-layout.tsx"],"sourcesContent":["\"use client\";\n\nimport type { Route } from \"next\";\nimport { useRouter, useSelectedLayoutSegment } from \"next/navigation\";\nimport { useState } from \"react\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs.client\";\nimport { Allowed } from \"@/modules/auth/components/allowed.client\";\nimport type { Permission } from \"@/modules/auth/lib/permissions\";\nimport { ListLayout } from \"./list-layout\";\n\nexport type Tab = {\n name: string;\n href: Route;\n segment: string;\n icon?: React.ReactNode;\n permission?: Permission;\n};\n\nexport type TabLayoutProps = {\n tabs: Tab[];\n children: React.ReactNode;\n};\n\nexport function TabLayout({ tabs, children }: TabLayoutProps) {\n const segment = useSelectedLayoutSegment();\n const router = useRouter();\n\n const initialTab = tabs.find((tab) => tab.segment === segment);\n\n const [selectedTab, setSelectedTab] = useState(initialTab ?? tabs[0]);\n\n return (\n <Tabs\n value={selectedTab?.segment}\n onValueChange={(value) => {\n const newSelectedTab = tabs.find((tab) => tab.segment === value);\n if (!newSelectedTab) return;\n setSelectedTab(newSelectedTab);\n router.replace(newSelectedTab.href);\n }}\n >\n <div className=\"mb-10 max-w-full overflow-x-auto\">\n <TabsList>\n {tabs.map((tab) => {\n const children = (\n <TabsTrigger key={tab.segment} value={tab.segment}>\n {tab.icon && <span className=\"mr-2\">{tab.icon}</span>}\n <span className=\"capitalize\">{tab.name}</span>\n </TabsTrigger>\n );\n\n if (!tab.permission) return children;\n\n return (\n <Allowed key={tab.segment} permission={tab.permission}>\n {children}\n </Allowed>\n );\n })}\n </TabsList>\n </div>\n\n <TabsContent value={selectedTab?.segment ?? \"\"}>\n <ListLayout>{children}</ListLayout>\n </TabsContent>\n </Tabs>\n );\n}\n"],"mappings":";;;;;;;;;;AAuBA,SAAgB,UAAU,EAAE,MAAM,YAA4B;CAC5D,MAAM,UAAU,0BAA0B;CAC1C,MAAM,SAAS,WAAW;CAI1B,MAAM,CAAC,aAAa,kBAAkB,SAFnB,KAAK,MAAM,QAAQ,IAAI,YAAY,QAAQ,IAED,KAAK,GAAG;AAErE,QACE,qBAAC;EACC,OAAO,aAAa;EACpB,gBAAgB,UAAU;GACxB,MAAM,iBAAiB,KAAK,MAAM,QAAQ,IAAI,YAAY,MAAM;AAChE,OAAI,CAAC,eAAgB;AACrB,kBAAe,eAAe;AAC9B,UAAO,QAAQ,eAAe,KAAK;;aAGrC,oBAAC;GAAI,WAAU;aACb,oBAAC,sBACE,KAAK,KAAK,QAAQ;IACjB,MAAM,WACJ,qBAAC;KAA8B,OAAO,IAAI;gBACvC,IAAI,QAAQ,oBAAC;MAAK,WAAU;gBAAQ,IAAI;OAAY,EACrD,oBAAC;MAAK,WAAU;gBAAc,IAAI;OAAY;OAF9B,IAAI,QAGR;AAGhB,QAAI,CAAC,IAAI,WAAY,QAAO;AAE5B,WACE,oBAAC;KAA0B,YAAY,IAAI;KACxC;OADW,IAAI,QAER;KAEZ,GACO;IACP,EAEN,oBAAC;GAAY,OAAO,aAAa,WAAW;aAC1C,oBAAC,cAAY,WAAsB;IACvB;GACT"}
@@ -19,7 +19,7 @@ function DataListItem({ children, className, ...props }) {
19
19
  function DataListTitle({ children, className, ...props }) {
20
20
  return /* @__PURE__ */ jsx("dt", {
21
21
  ...props,
22
- className: cn("text-sm font-semibold leading-6", className),
22
+ className: cn("font-semibold text-sm leading-6", className),
23
23
  children
24
24
  });
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"data-list.mjs","names":[],"sources":["../../../src/components/lists/data-list.tsx"],"sourcesContent":["import type React from \"react\";\nimport { cn } from \"@/lib/utils/cn\";\n\nexport type DataListProps = React.HTMLAttributes<HTMLOListElement>;\n\nexport function DataList({ children, className, ...props }: DataListProps) {\n return (\n <dl {...props} className={cn(\"divide-y\", className)}>\n {children}\n </dl>\n );\n}\n\nexport type DataListItemProps = React.HTMLAttributes<HTMLElement>;\n\nexport function DataListItem({ children, className, ...props }: DataListItemProps) {\n return (\n <div\n {...props}\n className={cn(\n \"items-center py-3 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nexport type DataListTitleProps = React.HTMLAttributes<HTMLElement>;\n\nexport function DataListTitle({ children, className, ...props }: DataListTitleProps) {\n return (\n <dt {...props} className={cn(\"text-sm font-semibold leading-6\", className)}>\n {children}\n </dt>\n );\n}\n\nexport type DataListValueProps = React.HTMLAttributes<HTMLElement>;\n\nexport function DataListValue({ children, className, ...props }: DataListValueProps) {\n return (\n <dd {...props} className={cn(\"mt-1 text-sm leading-6 sm:col-span-2 sm:mt-0\", className)}>\n {children}\n </dd>\n );\n}\n"],"mappings":";;;;AAKA,SAAgB,SAAS,EAAE,UAAU,WAAW,GAAG,SAAwB;AACzE,QACE,oBAAC;EAAG,GAAI;EAAO,WAAW,GAAG,YAAY,UAAU;EAChD;GACE;;AAMT,SAAgB,aAAa,EAAE,UAAU,WAAW,GAAG,SAA4B;AACjF,QACE,oBAAC;EACC,GAAI;EACJ,WAAW,GACT,0EACA,UACD;EAEA;GACG;;AAMV,SAAgB,cAAc,EAAE,UAAU,WAAW,GAAG,SAA6B;AACnF,QACE,oBAAC;EAAG,GAAI;EAAO,WAAW,GAAG,mCAAmC,UAAU;EACvE;GACE;;AAMT,SAAgB,cAAc,EAAE,UAAU,WAAW,GAAG,SAA6B;AACnF,QACE,oBAAC;EAAG,GAAI;EAAO,WAAW,GAAG,gDAAgD,UAAU;EACpF;GACE"}
1
+ {"version":3,"file":"data-list.mjs","names":[],"sources":["../../../src/components/lists/data-list.tsx"],"sourcesContent":["import type React from \"react\";\nimport { cn } from \"@/lib/utils/cn\";\n\nexport type DataListProps = React.HTMLAttributes<HTMLOListElement>;\n\nexport function DataList({ children, className, ...props }: DataListProps) {\n return (\n <dl {...props} className={cn(\"divide-y\", className)}>\n {children}\n </dl>\n );\n}\n\nexport type DataListItemProps = React.HTMLAttributes<HTMLElement>;\n\nexport function DataListItem({ children, className, ...props }: DataListItemProps) {\n return (\n <div\n {...props}\n className={cn(\n \"items-center py-3 first:pt-0 last:pb-0 sm:grid sm:grid-cols-3 sm:gap-4\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nexport type DataListTitleProps = React.HTMLAttributes<HTMLElement>;\n\nexport function DataListTitle({ children, className, ...props }: DataListTitleProps) {\n return (\n <dt {...props} className={cn(\"font-semibold text-sm leading-6\", className)}>\n {children}\n </dt>\n );\n}\n\nexport type DataListValueProps = React.HTMLAttributes<HTMLElement>;\n\nexport function DataListValue({ children, className, ...props }: DataListValueProps) {\n return (\n <dd {...props} className={cn(\"mt-1 text-sm leading-6 sm:col-span-2 sm:mt-0\", className)}>\n {children}\n </dd>\n );\n}\n"],"mappings":";;;;AAKA,SAAgB,SAAS,EAAE,UAAU,WAAW,GAAG,SAAwB;AACzE,QACE,oBAAC;EAAG,GAAI;EAAO,WAAW,GAAG,YAAY,UAAU;EAChD;GACE;;AAMT,SAAgB,aAAa,EAAE,UAAU,WAAW,GAAG,SAA4B;AACjF,QACE,oBAAC;EACC,GAAI;EACJ,WAAW,GACT,0EACA,UACD;EAEA;GACG;;AAMV,SAAgB,cAAc,EAAE,UAAU,WAAW,GAAG,SAA6B;AACnF,QACE,oBAAC;EAAG,GAAI;EAAO,WAAW,GAAG,mCAAmC,UAAU;EACvE;GACE;;AAMT,SAAgB,cAAc,EAAE,UAAU,WAAW,GAAG,SAA6B;AACnF,QACE,oBAAC;EAAG,GAAI;EAAO,WAAW,GAAG,gDAAgD,UAAU;EACpF;GACE"}
@@ -40,7 +40,7 @@ function DataStack({ children, className, ...props }) {
40
40
  function DataStackTitle({ children, className, ...props }) {
41
41
  return /* @__PURE__ */ jsx("dt", {
42
42
  ...props,
43
- className: cn("text-sm font-medium leading-none", className),
43
+ className: cn("font-medium text-sm leading-none", className),
44
44
  children
45
45
  });
46
46
  }