@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 +1 @@
1
- {"version":3,"file":"use-indicator.mjs","names":[],"sources":["../../../src/lib/hooks/use-indicator.tsx"],"sourcesContent":["\"use client\";\n\nimport type React from \"react\";\nimport { createContext, useCallback, useContext, useEffect, useState, useTransition } from \"react\";\n\n/**\n * Indicator status\n */\nexport type IndicatorStatus = \"idle\" | \"pending\" | \"success\" | \"error\";\n\n/**\n * Use local indicator\n */\nexport function useLocalIndicator() {\n /**\n * Start transition\n */\n const [, startTransitionBase] = useTransition();\n\n /**\n * Status of the inline edit indicator\n */\n const [status, setStatus] = useState<IndicatorStatus>(\"idle\");\n\n /**\n * Set status to pending when isPending is true\n */\n const startTransition = useCallback<React.TransitionStartFunction>(\n (callback) => {\n setStatus(\"pending\");\n startTransitionBase(callback);\n },\n [],\n );\n\n /**\n * Set status back to idle after 1.5 seconds when status is succes\n * Set status back to idle after 3 seconds when status is error\n */\n const resetAfterDelay = useCallback(() => {\n if (status !== \"success\" && status !== \"error\") return undefined;\n\n const timeout = setTimeout(() => setStatus(\"idle\"), status === \"success\" ? 1000 : 2000);\n\n return () => clearTimeout(timeout);\n }, [status]);\n\n useEffect(() => resetAfterDelay(), [resetAfterDelay]);\n\n return { status, setStatus, startTransition };\n}\n\n/**\n * Indicator context\n */\ntype IndicatorContextType = {\n status: IndicatorStatus;\n setStatus: React.Dispatch<React.SetStateAction<IndicatorStatus>>;\n startTransition: React.TransitionStartFunction;\n};\n\nexport const IndicatorContext = createContext<IndicatorContextType>({} as IndicatorContextType);\n\n/**\n * Inline edit indicator context\n */\nexport const useIndicator = () => useContext(IndicatorContext);\n\n/**\n * Indicator context provider\n */\nexport function IndicatorContextProvider({ children }: { children: React.ReactNode }) {\n const { status, setStatus, startTransition } = useLocalIndicator();\n\n return (\n <IndicatorContext.Provider value={{ status, setStatus, startTransition }}>\n {children}\n </IndicatorContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;;AAaA,SAAgB,oBAAoB;;;;CAIlC,MAAM,GAAG,uBAAuB,eAAe;;;;CAK/C,MAAM,CAAC,QAAQ,aAAa,SAA0B,OAAO;;;;CAK7D,MAAM,kBAAkB,aACrB,aAAa;AACZ,YAAU,UAAU;AACpB,sBAAoB,SAAS;IAE/B,EAAE,CACH;;;;;CAMD,MAAM,kBAAkB,kBAAkB;AACxC,MAAI,WAAW,aAAa,WAAW,QAAS,QAAO;EAEvD,MAAM,UAAU,iBAAiB,UAAU,OAAO,EAAE,WAAW,YAAY,MAAO,IAAK;AAEvF,eAAa,aAAa,QAAQ;IACjC,CAAC,OAAO,CAAC;AAEZ,iBAAgB,iBAAiB,EAAE,CAAC,gBAAgB,CAAC;AAErD,QAAO;EAAE;EAAQ;EAAW;EAAiB;;AAY/C,MAAa,mBAAmB,cAAoC,EAAE,CAAyB;;;;AAK/F,MAAa,qBAAqB,WAAW,iBAAiB;;;;AAK9D,SAAgB,yBAAyB,EAAE,YAA2C;CACpF,MAAM,EAAE,QAAQ,WAAW,oBAAoB,mBAAmB;AAElE,QACE,oBAAC,iBAAiB;EAAS,OAAO;GAAE;GAAQ;GAAW;GAAiB;EACrE;GACyB"}
1
+ {"version":3,"file":"use-indicator.mjs","names":[],"sources":["../../../src/lib/hooks/use-indicator.tsx"],"sourcesContent":["\"use client\";\n\nimport type React from \"react\";\nimport { createContext, useCallback, useContext, useEffect, useState, useTransition } from \"react\";\n\n/**\n * Indicator status\n */\nexport type IndicatorStatus = \"idle\" | \"pending\" | \"success\" | \"error\";\n\n/**\n * Use local indicator\n */\nexport function useLocalIndicator() {\n /**\n * Start transition\n */\n const [, startTransitionBase] = useTransition();\n\n /**\n * Status of the inline edit indicator\n */\n const [status, setStatus] = useState<IndicatorStatus>(\"idle\");\n\n /**\n * Set status to pending when isPending is true\n */\n const startTransition = useCallback<React.TransitionStartFunction>((callback) => {\n setStatus(\"pending\");\n startTransitionBase(callback);\n }, []);\n\n /**\n * Set status back to idle after 1.5 seconds when status is succes\n * Set status back to idle after 3 seconds when status is error\n */\n const resetAfterDelay = useCallback(() => {\n if (status !== \"success\" && status !== \"error\") return undefined;\n\n const timeout = setTimeout(() => setStatus(\"idle\"), status === \"success\" ? 1000 : 2000);\n\n return () => clearTimeout(timeout);\n }, [status]);\n\n useEffect(() => resetAfterDelay(), [resetAfterDelay]);\n\n return { status, setStatus, startTransition };\n}\n\n/**\n * Indicator context\n */\ntype IndicatorContextType = {\n status: IndicatorStatus;\n setStatus: React.Dispatch<React.SetStateAction<IndicatorStatus>>;\n startTransition: React.TransitionStartFunction;\n};\n\nexport const IndicatorContext = createContext<IndicatorContextType>({} as IndicatorContextType);\n\n/**\n * Inline edit indicator context\n */\nexport const useIndicator = () => useContext(IndicatorContext);\n\n/**\n * Indicator context provider\n */\nexport function IndicatorContextProvider({ children }: { children: React.ReactNode }) {\n const { status, setStatus, startTransition } = useLocalIndicator();\n\n return (\n <IndicatorContext.Provider value={{ status, setStatus, startTransition }}>\n {children}\n </IndicatorContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;;AAaA,SAAgB,oBAAoB;;;;CAIlC,MAAM,GAAG,uBAAuB,eAAe;;;;CAK/C,MAAM,CAAC,QAAQ,aAAa,SAA0B,OAAO;;;;CAK7D,MAAM,kBAAkB,aAA4C,aAAa;AAC/E,YAAU,UAAU;AACpB,sBAAoB,SAAS;IAC5B,EAAE,CAAC;;;;;CAMN,MAAM,kBAAkB,kBAAkB;AACxC,MAAI,WAAW,aAAa,WAAW,QAAS,QAAO;EAEvD,MAAM,UAAU,iBAAiB,UAAU,OAAO,EAAE,WAAW,YAAY,MAAO,IAAK;AAEvF,eAAa,aAAa,QAAQ;IACjC,CAAC,OAAO,CAAC;AAEZ,iBAAgB,iBAAiB,EAAE,CAAC,gBAAgB,CAAC;AAErD,QAAO;EAAE;EAAQ;EAAW;EAAiB;;AAY/C,MAAa,mBAAmB,cAAoC,EAAE,CAAyB;;;;AAK/F,MAAa,qBAAqB,WAAW,iBAAiB;;;;AAK9D,SAAgB,yBAAyB,EAAE,YAA2C;CACpF,MAAM,EAAE,QAAQ,WAAW,oBAAoB,mBAAmB;AAElE,QACE,oBAAC,iBAAiB;EAAS,OAAO;GAAE;GAAQ;GAAW;GAAiB;EACrE;GACyB"}
@@ -0,0 +1,10 @@
1
+ import MarkdownIt from "markdown-it";
2
+
3
+ //#region src/lib/utils/markdown.d.ts
4
+ /**
5
+ * Convert markdown to HTML
6
+ */
7
+ declare const markdownParser: MarkdownIt;
8
+ //#endregion
9
+ export { markdownParser };
10
+ //# sourceMappingURL=markdown.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.d.mts","names":[],"sources":["../../../src/lib/utils/markdown.ts"],"mappings":";;;;;AAKA;cAAa,cAAA,EAAc,UAAA"}
@@ -0,0 +1,15 @@
1
+ import MarkdownIt from "markdown-it";
2
+
3
+ //#region src/lib/utils/markdown.ts
4
+ /**
5
+ * Convert markdown to HTML
6
+ */
7
+ const markdownParser = new MarkdownIt({
8
+ html: false,
9
+ linkify: true,
10
+ breaks: true
11
+ });
12
+
13
+ //#endregion
14
+ export { markdownParser };
15
+ //# sourceMappingURL=markdown.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.mjs","names":[],"sources":["../../../src/lib/utils/markdown.ts"],"sourcesContent":["import MarkdownIt from \"markdown-it\";\n\n/**\n * Convert markdown to HTML\n */\nexport const markdownParser = new MarkdownIt({\n html: false, // safer default\n linkify: true,\n breaks: true,\n});\n"],"mappings":";;;;;;AAKA,MAAa,iBAAiB,IAAI,WAAW;CAC3C,MAAM;CACN,SAAS;CACT,QAAQ;CACT,CAAC"}
@@ -6,7 +6,8 @@
6
6
  */
7
7
  function url(path = "") {
8
8
  const base = process.env.NEXT_PUBLIC_DEPLOYMENT_URL ?? process.env.NEXT_PUBLIC_VERCEL_URL;
9
- if (base) return `https://${base}${path}`;
9
+ const protocol = process.env.NODE_ENV === "production" ? "https" : "http";
10
+ if (base) return `${protocol}://${base}${path}`;
10
11
  return `http://localhost:${process.env.NEXT_PUBLIC_PORT ?? 3e3}${path}`;
11
12
  }
12
13
 
@@ -1 +1 @@
1
- {"version":3,"file":"url.mjs","names":[],"sources":["../../../src/lib/utils/url.ts"],"sourcesContent":["/**\n * Get the production url for a path\n * @param {string} path\n * @returns {string}\n */\nexport function url(path: string = \"\"): string {\n const base = process.env.NEXT_PUBLIC_DEPLOYMENT_URL ?? process.env.NEXT_PUBLIC_VERCEL_URL;\n\n if (base) return `https://${base}${path}`;\n\n return `http://localhost:${process.env.NEXT_PUBLIC_PORT ?? 3000}${path}`;\n}\n"],"mappings":";;;;;;AAKA,SAAgB,IAAI,OAAe,IAAY;CAC7C,MAAM,OAAO,QAAQ,IAAI,8BAA8B,QAAQ,IAAI;AAEnE,KAAI,KAAM,QAAO,WAAW,OAAO;AAEnC,QAAO,oBAAoB,QAAQ,IAAI,oBAAoB,MAAO"}
1
+ {"version":3,"file":"url.mjs","names":[],"sources":["../../../src/lib/utils/url.ts"],"sourcesContent":["/**\n * Get the production url for a path\n * @param {string} path\n * @returns {string}\n */\nexport function url(path: string = \"\"): string {\n const base = process.env.NEXT_PUBLIC_DEPLOYMENT_URL ?? process.env.NEXT_PUBLIC_VERCEL_URL;\n const protocol = process.env.NODE_ENV === \"production\" ? \"https\" : \"http\";\n\n if (base) return `${protocol}://${base}${path}`;\n\n return `http://localhost:${process.env.NEXT_PUBLIC_PORT ?? 3000}${path}`;\n}\n"],"mappings":";;;;;;AAKA,SAAgB,IAAI,OAAe,IAAY;CAC7C,MAAM,OAAO,QAAQ,IAAI,8BAA8B,QAAQ,IAAI;CACnE,MAAM,WAAW,QAAQ,IAAI,aAAa,eAAe,UAAU;AAEnE,KAAI,KAAM,QAAO,GAAG,SAAS,KAAK,OAAO;AAEzC,QAAO,oBAAoB,QAAQ,IAAI,oBAAoB,MAAO"}
@@ -1,4 +1,9 @@
1
1
  //#region src/lib/utils/user-agent.ts
2
+ /**
3
+ * Detects the browser name and version from a user agent string.
4
+ * @param ua - The user agent string.
5
+ * @returns An object with the browser name and optional version.
6
+ */
2
7
  function detectBrowser(ua) {
3
8
  let m = ua.match(/Edg\/(\d+)/);
4
9
  if (m) return {
@@ -24,6 +29,11 @@ function detectBrowser(ua) {
24
29
  }
25
30
  return { name: "Unknown browser" };
26
31
  }
32
+ /**
33
+ * Detects the operating system name and version from a user agent string.
34
+ * @param ua - The user agent string.
35
+ * @returns An object with the OS name and optional version.
36
+ */
27
37
  function detectOS(ua) {
28
38
  let m = ua.match(/Mac OS X ([\d_]+)/);
29
39
  if (m) return {
@@ -48,6 +58,11 @@ function detectOS(ua) {
48
58
  if (/Linux/.test(ua)) return { name: "Linux" };
49
59
  return { name: "Unknown OS" };
50
60
  }
61
+ /**
62
+ * Detects the device type (Desktop, Mobile, or Tablet) from a user agent string.
63
+ * @param ua - The user agent string.
64
+ * @returns The device type as "Desktop", "Mobile", or "Tablet".
65
+ */
51
66
  function detectDevice(ua) {
52
67
  const s = ua.toLowerCase();
53
68
  if (s.includes("ipad") || s.includes("tablet")) return "Tablet";
@@ -1 +1 @@
1
- {"version":3,"file":"user-agent.mjs","names":[],"sources":["../../../src/lib/utils/user-agent.ts"],"sourcesContent":["export function detectBrowser(ua: string): { name: string; version?: string } {\n // Edge\n let m = ua.match(/Edg\\/(\\d+)/);\n if (m) return { name: \"Edge\", version: m[1] };\n\n // Chrome (not Edge/Opera)\n m = ua.match(/Chrome\\/(\\d+)/);\n if (m && !/Edg\\//.test(ua) && !/OPR\\//.test(ua)) {\n return { name: \"Chrome\", version: m[1] };\n }\n\n // Firefox\n m = ua.match(/Firefox\\/(\\d+)/);\n if (m) return { name: \"Firefox\", version: m[1] };\n\n // Safari\n if (/Safari\\/\\d+/.test(ua) && /Version\\/(\\d+)/.test(ua)) {\n m = ua.match(/Version\\/(\\d+)/);\n if (m) return { name: \"Safari\", version: m[1] };\n }\n\n return { name: \"Unknown browser\" };\n}\n\nexport function detectOS(ua: string): { name: string; version?: string } {\n // macOS\n let m = ua.match(/Mac OS X ([\\d_]+)/);\n if (m) {\n return { name: \"macOS\", version: m[1]?.replace(/_/g, \".\") };\n }\n\n // Windows\n m = ua.match(/Windows NT ([\\d.]+)/);\n if (m) return { name: \"Windows\", version: m[1] };\n\n // iOS\n m = ua.match(/iPhone OS ([\\d_]+)/) || ua.match(/CPU (?:iPhone )?OS ([\\d_]+)/);\n if (m) {\n return { name: \"iOS\", version: m[1]?.replace(/_/g, \".\") };\n }\n\n // Android\n m = ua.match(/Android ([\\d.]+)/);\n if (m) return { name: \"Android\", version: m[1] };\n\n if (/Linux/.test(ua)) return { name: \"Linux\" };\n\n return { name: \"Unknown OS\" };\n}\n\nexport function detectDevice(ua: string): \"Desktop\" | \"Mobile\" | \"Tablet\" {\n const s = ua.toLowerCase();\n\n if (s.includes(\"ipad\") || s.includes(\"tablet\")) return \"Tablet\";\n if (\n s.includes(\"mobi\") ||\n s.includes(\"iphone\") ||\n (s.includes(\"android\") && !s.includes(\"tablet\"))\n ) {\n return \"Mobile\";\n }\n return \"Desktop\";\n}\n"],"mappings":";AAAA,SAAgB,cAAc,IAAgD;CAE5E,IAAI,IAAI,GAAG,MAAM,aAAa;AAC9B,KAAI,EAAG,QAAO;EAAE,MAAM;EAAQ,SAAS,EAAE;EAAI;AAG7C,KAAI,GAAG,MAAM,gBAAgB;AAC7B,KAAI,KAAK,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,QAAQ,KAAK,GAAG,CAC7C,QAAO;EAAE,MAAM;EAAU,SAAS,EAAE;EAAI;AAI1C,KAAI,GAAG,MAAM,iBAAiB;AAC9B,KAAI,EAAG,QAAO;EAAE,MAAM;EAAW,SAAS,EAAE;EAAI;AAGhD,KAAI,cAAc,KAAK,GAAG,IAAI,iBAAiB,KAAK,GAAG,EAAE;AACvD,MAAI,GAAG,MAAM,iBAAiB;AAC9B,MAAI,EAAG,QAAO;GAAE,MAAM;GAAU,SAAS,EAAE;GAAI;;AAGjD,QAAO,EAAE,MAAM,mBAAmB;;AAGpC,SAAgB,SAAS,IAAgD;CAEvE,IAAI,IAAI,GAAG,MAAM,oBAAoB;AACrC,KAAI,EACF,QAAO;EAAE,MAAM;EAAS,SAAS,EAAE,IAAI,QAAQ,MAAM,IAAI;EAAE;AAI7D,KAAI,GAAG,MAAM,sBAAsB;AACnC,KAAI,EAAG,QAAO;EAAE,MAAM;EAAW,SAAS,EAAE;EAAI;AAGhD,KAAI,GAAG,MAAM,qBAAqB,IAAI,GAAG,MAAM,8BAA8B;AAC7E,KAAI,EACF,QAAO;EAAE,MAAM;EAAO,SAAS,EAAE,IAAI,QAAQ,MAAM,IAAI;EAAE;AAI3D,KAAI,GAAG,MAAM,mBAAmB;AAChC,KAAI,EAAG,QAAO;EAAE,MAAM;EAAW,SAAS,EAAE;EAAI;AAEhD,KAAI,QAAQ,KAAK,GAAG,CAAE,QAAO,EAAE,MAAM,SAAS;AAE9C,QAAO,EAAE,MAAM,cAAc;;AAG/B,SAAgB,aAAa,IAA6C;CACxE,MAAM,IAAI,GAAG,aAAa;AAE1B,KAAI,EAAE,SAAS,OAAO,IAAI,EAAE,SAAS,SAAS,CAAE,QAAO;AACvD,KACE,EAAE,SAAS,OAAO,IAClB,EAAE,SAAS,SAAS,IACnB,EAAE,SAAS,UAAU,IAAI,CAAC,EAAE,SAAS,SAAS,CAE/C,QAAO;AAET,QAAO"}
1
+ {"version":3,"file":"user-agent.mjs","names":[],"sources":["../../../src/lib/utils/user-agent.ts"],"sourcesContent":["/**\n * Detects the browser name and version from a user agent string.\n * @param ua - The user agent string.\n * @returns An object with the browser name and optional version.\n */\nexport function detectBrowser(ua: string): { name: string; version?: string } {\n // Edge\n let m = ua.match(/Edg\\/(\\d+)/);\n if (m) return { name: \"Edge\", version: m[1] };\n\n // Chrome (not Edge/Opera)\n m = ua.match(/Chrome\\/(\\d+)/);\n if (m && !/Edg\\//.test(ua) && !/OPR\\//.test(ua)) {\n return { name: \"Chrome\", version: m[1] };\n }\n\n // Firefox\n m = ua.match(/Firefox\\/(\\d+)/);\n if (m) return { name: \"Firefox\", version: m[1] };\n\n // Safari\n if (/Safari\\/\\d+/.test(ua) && /Version\\/(\\d+)/.test(ua)) {\n m = ua.match(/Version\\/(\\d+)/);\n if (m) return { name: \"Safari\", version: m[1] };\n }\n\n return { name: \"Unknown browser\" };\n}\n\n/**\n * Detects the operating system name and version from a user agent string.\n * @param ua - The user agent string.\n * @returns An object with the OS name and optional version.\n */\nexport function detectOS(ua: string): { name: string; version?: string } {\n // macOS\n let m = ua.match(/Mac OS X ([\\d_]+)/);\n if (m) {\n return { name: \"macOS\", version: m[1]?.replace(/_/g, \".\") };\n }\n\n // Windows\n m = ua.match(/Windows NT ([\\d.]+)/);\n if (m) return { name: \"Windows\", version: m[1] };\n\n // iOS\n m = ua.match(/iPhone OS ([\\d_]+)/) || ua.match(/CPU (?:iPhone )?OS ([\\d_]+)/);\n if (m) {\n return { name: \"iOS\", version: m[1]?.replace(/_/g, \".\") };\n }\n\n // Android\n m = ua.match(/Android ([\\d.]+)/);\n if (m) return { name: \"Android\", version: m[1] };\n\n if (/Linux/.test(ua)) return { name: \"Linux\" };\n\n return { name: \"Unknown OS\" };\n}\n\n/**\n * Detects the device type (Desktop, Mobile, or Tablet) from a user agent string.\n * @param ua - The user agent string.\n * @returns The device type as \"Desktop\", \"Mobile\", or \"Tablet\".\n */\nexport function detectDevice(ua: string): \"Desktop\" | \"Mobile\" | \"Tablet\" {\n const s = ua.toLowerCase();\n\n if (s.includes(\"ipad\") || s.includes(\"tablet\")) return \"Tablet\";\n if (\n s.includes(\"mobi\") ||\n s.includes(\"iphone\") ||\n (s.includes(\"android\") && !s.includes(\"tablet\"))\n ) {\n return \"Mobile\";\n }\n return \"Desktop\";\n}\n"],"mappings":";;;;;;AAKA,SAAgB,cAAc,IAAgD;CAE5E,IAAI,IAAI,GAAG,MAAM,aAAa;AAC9B,KAAI,EAAG,QAAO;EAAE,MAAM;EAAQ,SAAS,EAAE;EAAI;AAG7C,KAAI,GAAG,MAAM,gBAAgB;AAC7B,KAAI,KAAK,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,QAAQ,KAAK,GAAG,CAC7C,QAAO;EAAE,MAAM;EAAU,SAAS,EAAE;EAAI;AAI1C,KAAI,GAAG,MAAM,iBAAiB;AAC9B,KAAI,EAAG,QAAO;EAAE,MAAM;EAAW,SAAS,EAAE;EAAI;AAGhD,KAAI,cAAc,KAAK,GAAG,IAAI,iBAAiB,KAAK,GAAG,EAAE;AACvD,MAAI,GAAG,MAAM,iBAAiB;AAC9B,MAAI,EAAG,QAAO;GAAE,MAAM;GAAU,SAAS,EAAE;GAAI;;AAGjD,QAAO,EAAE,MAAM,mBAAmB;;;;;;;AAQpC,SAAgB,SAAS,IAAgD;CAEvE,IAAI,IAAI,GAAG,MAAM,oBAAoB;AACrC,KAAI,EACF,QAAO;EAAE,MAAM;EAAS,SAAS,EAAE,IAAI,QAAQ,MAAM,IAAI;EAAE;AAI7D,KAAI,GAAG,MAAM,sBAAsB;AACnC,KAAI,EAAG,QAAO;EAAE,MAAM;EAAW,SAAS,EAAE;EAAI;AAGhD,KAAI,GAAG,MAAM,qBAAqB,IAAI,GAAG,MAAM,8BAA8B;AAC7E,KAAI,EACF,QAAO;EAAE,MAAM;EAAO,SAAS,EAAE,IAAI,QAAQ,MAAM,IAAI;EAAE;AAI3D,KAAI,GAAG,MAAM,mBAAmB;AAChC,KAAI,EAAG,QAAO;EAAE,MAAM;EAAW,SAAS,EAAE;EAAI;AAEhD,KAAI,QAAQ,KAAK,GAAG,CAAE,QAAO,EAAE,MAAM,SAAS;AAE9C,QAAO,EAAE,MAAM,cAAc;;;;;;;AAQ/B,SAAgB,aAAa,IAA6C;CACxE,MAAM,IAAI,GAAG,aAAa;AAE1B,KAAI,EAAE,SAAS,OAAO,IAAI,EAAE,SAAS,SAAS,CAAE,QAAO;AACvD,KACE,EAAE,SAAS,OAAO,IAClB,EAAE,SAAS,SAAS,IACnB,EAAE,SAAS,UAAU,IAAI,CAAC,EAAE,SAAS,SAAS,CAE/C,QAAO;AAET,QAAO"}
package/dist/lib.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { ConfigWithIcon } from "./lib/types/config.mjs";
2
- import { BUCKET_NAME } from "./lib/config/constants.mjs";
3
2
  import { arrayMove } from "./lib/utils/array-move.mjs";
4
3
  import { cn } from "./lib/utils/cn.mjs";
5
4
  import { formatAssetSize, formatCurrency, formatDate, formatDateTime, formatDuration, formatPhone, formatTime, formatUserAgent } from "./lib/utils/format.mjs";
6
5
  import { generateManifest } from "./lib/utils/manifest.mjs";
6
+ import { markdownParser } from "./lib/utils/markdown.mjs";
7
7
  import { url } from "./lib/utils/url.mjs";
8
- export { BUCKET_NAME, ConfigWithIcon, arrayMove, cn, formatAssetSize, formatCurrency, formatDate, formatDateTime, formatDuration, formatPhone, formatTime, formatUserAgent, generateManifest, url };
8
+ export { ConfigWithIcon, arrayMove, cn, formatAssetSize, formatCurrency, formatDate, formatDateTime, formatDuration, formatPhone, formatTime, formatUserAgent, generateManifest, markdownParser, url };
package/dist/lib.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import { cn } from "./lib/utils/cn.mjs";
2
- import { BUCKET_NAME } from "./lib/config/constants.mjs";
2
+ import { markdownParser } from "./lib/utils/markdown.mjs";
3
3
  import { arrayMove } from "./lib/utils/array-move.mjs";
4
4
  import { formatAssetSize, formatCurrency, formatDate, formatDateTime, formatDuration, formatPhone, formatTime, formatUserAgent } from "./lib/utils/format.mjs";
5
5
  import { generateManifest } from "./lib/utils/manifest.mjs";
6
6
  import { url } from "./lib/utils/url.mjs";
7
7
 
8
- export { BUCKET_NAME, arrayMove, cn, formatAssetSize, formatCurrency, formatDate, formatDateTime, formatDuration, formatPhone, formatTime, formatUserAgent, generateManifest, url };
8
+ export { arrayMove, cn, formatAssetSize, formatCurrency, formatDate, formatDateTime, formatDuration, formatPhone, formatTime, formatUserAgent, generateManifest, markdownParser, url };
@@ -7,7 +7,7 @@ async function AuthLayout(props) {
7
7
  return /* @__PURE__ */ jsxs("div", {
8
8
  className: "container relative mx-auto grid h-dvh flex-col items-center justify-center lg:max-w-none lg:grid-cols-2 lg:px-0",
9
9
  children: [/* @__PURE__ */ jsxs("div", {
10
- className: "bg-muted relative hidden h-full flex-col p-10 text-white lg:flex dark:border-r",
10
+ className: "relative hidden h-full flex-col bg-muted p-10 text-white lg:flex dark:border-r",
11
11
  children: [
12
12
  /* @__PURE__ */ jsx(Image, {
13
13
  src: "/images/auth-background.jpeg",
@@ -17,7 +17,7 @@ async function AuthLayout(props) {
17
17
  }),
18
18
  /* @__PURE__ */ jsx(Link, {
19
19
  href: "/",
20
- className: "relative z-20 flex items-center text-lg font-bold",
20
+ className: "relative z-20 flex items-center font-bold text-lg",
21
21
  children: props.name
22
22
  }),
23
23
  /* @__PURE__ */ jsx("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"auth-layout.server.mjs","names":[],"sources":["../../../../src/modules/auth/components/auth-layout.server.tsx"],"sourcesContent":["import Image from \"next/image\";\nimport Link from \"next/link\";\nimport type { PropsWithChildren } from \"react\";\n\nexport async function AuthLayout(props: PropsWithChildren<{ name: string }>) {\n return (\n <div className=\"container relative mx-auto grid h-dvh flex-col items-center justify-center lg:max-w-none lg:grid-cols-2 lg:px-0\">\n <div className=\"bg-muted relative hidden h-full flex-col p-10 text-white lg:flex dark:border-r\">\n <Image src=\"/images/auth-background.jpeg\" alt=\"Background\" className=\"object-cover\" fill />\n\n <Link href=\"/\" className=\"relative z-20 flex items-center text-lg font-bold\">\n {props.name}\n </Link>\n\n <div className=\"relative z-20 mt-auto\">\n <blockquote className=\"space-y-2 text-sm\">Developed by NewCode</blockquote>\n </div>\n </div>\n\n {props.children}\n </div>\n );\n}\n"],"mappings":";;;;;AAIA,eAAsB,WAAW,OAA4C;AAC3E,QACE,qBAAC;EAAI,WAAU;aACb,qBAAC;GAAI,WAAU;;IACb,oBAAC;KAAM,KAAI;KAA+B,KAAI;KAAa,WAAU;KAAe;MAAO;IAE3F,oBAAC;KAAK,MAAK;KAAI,WAAU;eACtB,MAAM;MACF;IAEP,oBAAC;KAAI,WAAU;eACb,oBAAC;MAAW,WAAU;gBAAoB;OAAiC;MACvE;;IACF,EAEL,MAAM;GACH"}
1
+ {"version":3,"file":"auth-layout.server.mjs","names":[],"sources":["../../../../src/modules/auth/components/auth-layout.server.tsx"],"sourcesContent":["import Image from \"next/image\";\nimport Link from \"next/link\";\nimport type { PropsWithChildren } from \"react\";\n\nexport async function AuthLayout(props: PropsWithChildren<{ name: string }>) {\n return (\n <div className=\"container relative mx-auto grid h-dvh flex-col items-center justify-center lg:max-w-none lg:grid-cols-2 lg:px-0\">\n <div className=\"relative hidden h-full flex-col bg-muted p-10 text-white lg:flex dark:border-r\">\n <Image src=\"/images/auth-background.jpeg\" alt=\"Background\" className=\"object-cover\" fill />\n\n <Link href=\"/\" className=\"relative z-20 flex items-center font-bold text-lg\">\n {props.name}\n </Link>\n\n <div className=\"relative z-20 mt-auto\">\n <blockquote className=\"space-y-2 text-sm\">Developed by NewCode</blockquote>\n </div>\n </div>\n\n {props.children}\n </div>\n );\n}\n"],"mappings":";;;;;AAIA,eAAsB,WAAW,OAA4C;AAC3E,QACE,qBAAC;EAAI,WAAU;aACb,qBAAC;GAAI,WAAU;;IACb,oBAAC;KAAM,KAAI;KAA+B,KAAI;KAAa,WAAU;KAAe;MAAO;IAE3F,oBAAC;KAAK,MAAK;KAAI,WAAU;eACtB,MAAM;MACF;IAEP,oBAAC;KAAI,WAAU;eACb,oBAAC;MAAW,WAAU;gBAAoB;OAAiC;MACvE;;IACF,EAEL,MAAM;GACH"}
@@ -0,0 +1,16 @@
1
+ import { TDatabaseSchema } from "../../database/lib/types.mjs";
2
+ import { TulipContext } from "../../config/lib/context.mjs";
3
+ import "../../../config.mjs";
4
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
5
+ import { PropsWithChildren } from "react";
6
+ import "server-cli-only";
7
+
8
+ //#region src/modules/auth/components/create-first-user-guard.server.d.ts
9
+ type AuthGuardFirstUserProps<TSchema extends TDatabaseSchema> = PropsWithChildren<Pick<TulipContext<TSchema>, "db">>;
10
+ declare function CreateFirstUserPageGuard<TSchema extends TDatabaseSchema>({
11
+ children,
12
+ db
13
+ }: AuthGuardFirstUserProps<TSchema>): Promise<react_jsx_runtime0.JSX.Element>;
14
+ //#endregion
15
+ export { CreateFirstUserPageGuard };
16
+ //# sourceMappingURL=create-first-user-guard.server.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-first-user-guard.server.d.mts","names":[],"sources":["../../../../src/modules/auth/components/create-first-user-guard.server.tsx"],"mappings":";;;;;;;;KAQK,uBAAA,iBAAwC,eAAA,IAAmB,iBAAA,CAC9D,IAAA,CAAK,YAAA,CAAa,OAAA;AAAA,iBAGE,wBAAA,iBAAyC,eAAA,CAAA,CAAA;EAC7D,QAAA;EACA;AAAA,GACC,uBAAA,CAAwB,OAAA,IAAQ,OAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -0,0 +1,16 @@
1
+ import { users } from "../db/schema.mjs";
2
+ import { Fragment, jsx } from "react/jsx-runtime";
3
+ import { redirect } from "next/navigation";
4
+ import "server-cli-only";
5
+ import { connection } from "next/server";
6
+
7
+ //#region src/modules/auth/components/create-first-user-guard.server.tsx
8
+ async function CreateFirstUserPageGuard({ children, db }) {
9
+ await connection();
10
+ if ((await db.select().from(users).limit(1)).length > 0) redirect("/auth/login");
11
+ return /* @__PURE__ */ jsx(Fragment, { children });
12
+ }
13
+
14
+ //#endregion
15
+ export { CreateFirstUserPageGuard };
16
+ //# sourceMappingURL=create-first-user-guard.server.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-first-user-guard.server.mjs","names":[],"sources":["../../../../src/modules/auth/components/create-first-user-guard.server.tsx"],"sourcesContent":["import \"server-cli-only\";\n\nimport { redirect } from \"next/navigation\";\nimport { connection } from \"next/server\";\nimport type { PropsWithChildren } from \"react\";\nimport type { TDatabaseSchema, TulipContext } from \"@/modules/config/entry\";\nimport { users } from \"../db/schema\";\n\ntype AuthGuardFirstUserProps<TSchema extends TDatabaseSchema> = PropsWithChildren<\n Pick<TulipContext<TSchema>, \"db\">\n>;\n\nexport async function CreateFirstUserPageGuard<TSchema extends TDatabaseSchema>({\n children,\n db,\n}: AuthGuardFirstUserProps<TSchema>) {\n await connection();\n\n const allUsers = await db.select().from(users).limit(1);\n const usersExist = allUsers.length > 0;\n\n if (usersExist) redirect(\"/auth/login\");\n\n return <>{children}</>;\n}\n"],"mappings":";;;;;;;AAYA,eAAsB,yBAA0D,EAC9E,UACA,MACmC;AACnC,OAAM,YAAY;AAKlB,MAHiB,MAAM,GAAG,QAAQ,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,EAC3B,SAAS,EAErB,UAAS,cAAc;AAEvC,QAAO,gCAAG,WAAY"}
@@ -61,7 +61,7 @@ function CreateFirstUserPage() {
61
61
  children: [/* @__PURE__ */ jsxs("div", {
62
62
  className: "flex flex-col space-y-2 text-center",
63
63
  children: [/* @__PURE__ */ jsx("h1", {
64
- className: "text-3xl font-semibold tracking-tight",
64
+ className: "font-semibold text-3xl tracking-tight",
65
65
  children: "Welkom eerste gebruiker"
66
66
  }), /* @__PURE__ */ jsx("p", {
67
67
  className: "text-muted-foreground text-sm",
@@ -126,10 +126,10 @@ function CreateFirstUserPage() {
126
126
  type: "button",
127
127
  variant: "ghost",
128
128
  size: "sm",
129
- className: "absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent",
129
+ className: "absolute top-0 right-0 h-full px-3 py-2 hover:bg-transparent",
130
130
  onClick: () => setShowPassword(!showPassword),
131
131
  disabled,
132
- children: showPassword ? /* @__PURE__ */ jsx(EyeOff, { className: "text-muted-foreground h-4 w-4" }) : /* @__PURE__ */ jsx(Eye, { className: "text-muted-foreground h-4 w-4" })
132
+ children: showPassword ? /* @__PURE__ */ jsx(EyeOff, { className: "h-4 w-4 text-muted-foreground" }) : /* @__PURE__ */ jsx(Eye, { className: "h-4 w-4 text-muted-foreground" })
133
133
  })]
134
134
  }) }),
135
135
  /* @__PURE__ */ jsx(FormMessage, {})
@@ -1 +1 @@
1
- {"version":3,"file":"create-first-user-page.client.mjs","names":["Form"],"sources":["../../../../src/modules/auth/components/create-first-user-page.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { standardSchemaResolver } from \"@hookform/resolvers/standard-schema\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { Eye, EyeOff } from \"lucide-react\";\nimport { useRouter } from \"next/navigation\";\nimport { parseAsString, useQueryState } from \"nuqs\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { toast } from \"sonner\";\nimport type * as z from \"zod\";\nimport { Icons } from \"@/components/common/icons\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/components/ui/form.client\";\nimport { Input } from \"@/components/ui/input\";\nimport { useAuthClient } from \"../hooks/use-auth-client\";\nimport { createUserSchema } from \"../lib/validators\";\n\nexport function CreateFirstUserPage() {\n const router = useRouter();\n const authClient = useAuthClient();\n const [callbackURL] = useQueryState(\"callbackURL\", parseAsString);\n const [showPassword, setShowPassword] = useState(false);\n\n const createFirstUserMutation = useMutation({\n mutationFn: async (data: z.infer<typeof createUserSchema>) => {\n const result = await authClient.signUp.email({\n email: data.email,\n password: data.password,\n name: `${data.firstName} ${data.lastName}`,\n firstName: data.firstName,\n lastName: data.lastName,\n callbackURL: callbackURL ?? \"/admin\",\n });\n\n if (result.error) throw result.error;\n\n return result.data;\n },\n onError: (err: Error) => {\n console.error(\"Create First User error: \", err);\n toast.error(\"Er is iets misgegaan\");\n },\n onSuccess: () => {\n router.replace(callbackURL ?? \"/admin\");\n toast.success(\"Account succesvol aangemaakt!\");\n },\n });\n\n const disabled = createFirstUserMutation.isPending;\n\n const form = useForm<z.infer<typeof createUserSchema>>({\n resolver: standardSchemaResolver(createUserSchema),\n defaultValues: { email: \"\", firstName: \"\", lastName: \"\", password: \"\" },\n disabled,\n });\n\n if (Object.keys(form.formState.errors).length > 0) {\n console.error(form.formState.errors);\n }\n\n return (\n <div className=\"mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]\">\n <div className=\"flex flex-col space-y-2 text-center\">\n <h1 className=\"text-3xl font-semibold tracking-tight\">Welkom eerste gebruiker</h1>\n <p className=\"text-muted-foreground text-sm\">Maak eerst een account aan om in te loggen</p>\n </div>\n\n <Form {...form}>\n <form\n className=\"space-y-6\"\n onSubmit={form.handleSubmit((data) => createFirstUserMutation.mutate(data))}\n >\n <div className=\"flex flex-col gap-3\">\n <FormField\n control={form.control}\n name=\"firstName\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Voornaam</FormLabel>\n <FormControl>\n <Input placeholder=\"Voornaam\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <FormField\n control={form.control}\n name=\"lastName\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Achternaam</FormLabel>\n <FormControl>\n <Input placeholder=\"Achternaam\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <FormField\n control={form.control}\n name=\"email\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Email</FormLabel>\n <FormControl>\n <Input placeholder=\"email@example.be\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <FormField\n control={form.control}\n name=\"password\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Wachtwoord</FormLabel>\n <FormControl>\n <div className=\"relative\">\n <Input\n type={showPassword ? \"text\" : \"password\"}\n placeholder=\"********\"\n {...field}\n />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent\"\n onClick={() => setShowPassword(!showPassword)}\n disabled={disabled}\n >\n {showPassword ? (\n <EyeOff className=\"text-muted-foreground h-4 w-4\" />\n ) : (\n <Eye className=\"text-muted-foreground h-4 w-4\" />\n )}\n </Button>\n </div>\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n\n <div className=\"space-y-3\">\n <Button disabled={disabled} className=\"w-full\">\n {createFirstUserMutation.isPending && (\n <Icons.spinner className=\"mr-2 h-4 w-4 animate-spin\" />\n )}\n Account aanmaken\n </Button>\n </div>\n </form>\n </Form>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAyBA,SAAgB,sBAAsB;CACpC,MAAM,SAAS,WAAW;CAC1B,MAAM,aAAa,eAAe;CAClC,MAAM,CAAC,eAAe,cAAc,eAAe,cAAc;CACjE,MAAM,CAAC,cAAc,mBAAmB,SAAS,MAAM;CAEvD,MAAM,0BAA0B,YAAY;EAC1C,YAAY,OAAO,SAA2C;GAC5D,MAAM,SAAS,MAAM,WAAW,OAAO,MAAM;IAC3C,OAAO,KAAK;IACZ,UAAU,KAAK;IACf,MAAM,GAAG,KAAK,UAAU,GAAG,KAAK;IAChC,WAAW,KAAK;IAChB,UAAU,KAAK;IACf,aAAa,eAAe;IAC7B,CAAC;AAEF,OAAI,OAAO,MAAO,OAAM,OAAO;AAE/B,UAAO,OAAO;;EAEhB,UAAU,QAAe;AACvB,WAAQ,MAAM,6BAA6B,IAAI;AAC/C,SAAM,MAAM,uBAAuB;;EAErC,iBAAiB;AACf,UAAO,QAAQ,eAAe,SAAS;AACvC,SAAM,QAAQ,gCAAgC;;EAEjD,CAAC;CAEF,MAAM,WAAW,wBAAwB;CAEzC,MAAM,OAAO,QAA0C;EACrD,UAAU,uBAAuB,iBAAiB;EAClD,eAAe;GAAE,OAAO;GAAI,WAAW;GAAI,UAAU;GAAI,UAAU;GAAI;EACvE;EACD,CAAC;AAEF,KAAI,OAAO,KAAK,KAAK,UAAU,OAAO,CAAC,SAAS,EAC9C,SAAQ,MAAM,KAAK,UAAU,OAAO;AAGtC,QACE,qBAAC;EAAI,WAAU;aACb,qBAAC;GAAI,WAAU;cACb,oBAAC;IAAG,WAAU;cAAwC;KAA4B,EAClF,oBAAC;IAAE,WAAU;cAAgC;KAA8C;IACvF,EAEN,oBAACA;GAAK,GAAI;aACR,qBAAC;IACC,WAAU;IACV,UAAU,KAAK,cAAc,SAAS,wBAAwB,OAAO,KAAK,CAAC;eAE3E,qBAAC;KAAI,WAAU;;MACb,oBAAC;OACC,SAAS,KAAK;OACd,MAAK;OACL,SAAS,EAAE,YACT,qBAAC;QACC,oBAAC,uBAAU,aAAoB;QAC/B,oBAAC,yBACC,oBAAC;SAAM,aAAY;SAAW,GAAI;UAAS,GAC/B;QACd,oBAAC,gBAAc;WACN;QAEb;MAEF,oBAAC;OACC,SAAS,KAAK;OACd,MAAK;OACL,SAAS,EAAE,YACT,qBAAC;QACC,oBAAC,uBAAU,eAAsB;QACjC,oBAAC,yBACC,oBAAC;SAAM,aAAY;SAAa,GAAI;UAAS,GACjC;QACd,oBAAC,gBAAc;WACN;QAEb;MAEF,oBAAC;OACC,SAAS,KAAK;OACd,MAAK;OACL,SAAS,EAAE,YACT,qBAAC;QACC,oBAAC,uBAAU,UAAiB;QAC5B,oBAAC,yBACC,oBAAC;SAAM,aAAY;SAAmB,GAAI;UAAS,GACvC;QACd,oBAAC,gBAAc;WACN;QAEb;MAEF,oBAAC;OACC,SAAS,KAAK;OACd,MAAK;OACL,SAAS,EAAE,YACT,qBAAC;QACC,oBAAC,uBAAU,eAAsB;QACjC,oBAAC,yBACC,qBAAC;SAAI,WAAU;oBACb,oBAAC;UACC,MAAM,eAAe,SAAS;UAC9B,aAAY;UACZ,GAAI;WACJ,EACF,oBAAC;UACC,MAAK;UACL,SAAQ;UACR,MAAK;UACL,WAAU;UACV,eAAe,gBAAgB,CAAC,aAAa;UACnC;oBAET,eACC,oBAAC,UAAO,WAAU,kCAAkC,GAEpD,oBAAC,OAAI,WAAU,kCAAkC;WAE5C;UACL,GACM;QACd,oBAAC,gBAAc;WACN;QAEb;;MACE,EAEN,oBAAC;KAAI,WAAU;eACb,qBAAC;MAAiB;MAAU,WAAU;iBACnC,wBAAwB,aACvB,oBAAC,MAAM,WAAQ,WAAU,8BAA8B,EACvD;OAEK;MACL;KACD;IACF;GACH"}
1
+ {"version":3,"file":"create-first-user-page.client.mjs","names":["Form"],"sources":["../../../../src/modules/auth/components/create-first-user-page.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { standardSchemaResolver } from \"@hookform/resolvers/standard-schema\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { Eye, EyeOff } from \"lucide-react\";\nimport { useRouter } from \"next/navigation\";\nimport { parseAsString, useQueryState } from \"nuqs\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { toast } from \"sonner\";\nimport type * as z from \"zod\";\nimport { Icons } from \"@/components/common/icons\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/components/ui/form.client\";\nimport { Input } from \"@/components/ui/input\";\nimport { useAuthClient } from \"../hooks/use-auth-client\";\nimport { createUserSchema } from \"../lib/validators\";\n\nexport function CreateFirstUserPage() {\n const router = useRouter();\n const authClient = useAuthClient();\n const [callbackURL] = useQueryState(\"callbackURL\", parseAsString);\n const [showPassword, setShowPassword] = useState(false);\n\n const createFirstUserMutation = useMutation({\n mutationFn: async (data: z.infer<typeof createUserSchema>) => {\n const result = await authClient.signUp.email({\n email: data.email,\n password: data.password,\n name: `${data.firstName} ${data.lastName}`,\n firstName: data.firstName,\n lastName: data.lastName,\n callbackURL: callbackURL ?? \"/admin\",\n });\n\n if (result.error) throw result.error;\n\n return result.data;\n },\n onError: (err: Error) => {\n console.error(\"Create First User error: \", err);\n toast.error(\"Er is iets misgegaan\");\n },\n onSuccess: () => {\n router.replace(callbackURL ?? \"/admin\");\n toast.success(\"Account succesvol aangemaakt!\");\n },\n });\n\n const disabled = createFirstUserMutation.isPending;\n\n const form = useForm<z.infer<typeof createUserSchema>>({\n resolver: standardSchemaResolver(createUserSchema),\n defaultValues: { email: \"\", firstName: \"\", lastName: \"\", password: \"\" },\n disabled,\n });\n\n if (Object.keys(form.formState.errors).length > 0) {\n console.error(form.formState.errors);\n }\n\n return (\n <div className=\"mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]\">\n <div className=\"flex flex-col space-y-2 text-center\">\n <h1 className=\"font-semibold text-3xl tracking-tight\">Welkom eerste gebruiker</h1>\n <p className=\"text-muted-foreground text-sm\">Maak eerst een account aan om in te loggen</p>\n </div>\n\n <Form {...form}>\n <form\n className=\"space-y-6\"\n onSubmit={form.handleSubmit((data) => createFirstUserMutation.mutate(data))}\n >\n <div className=\"flex flex-col gap-3\">\n <FormField\n control={form.control}\n name=\"firstName\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Voornaam</FormLabel>\n <FormControl>\n <Input placeholder=\"Voornaam\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <FormField\n control={form.control}\n name=\"lastName\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Achternaam</FormLabel>\n <FormControl>\n <Input placeholder=\"Achternaam\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <FormField\n control={form.control}\n name=\"email\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Email</FormLabel>\n <FormControl>\n <Input placeholder=\"email@example.be\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <FormField\n control={form.control}\n name=\"password\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Wachtwoord</FormLabel>\n <FormControl>\n <div className=\"relative\">\n <Input\n type={showPassword ? \"text\" : \"password\"}\n placeholder=\"********\"\n {...field}\n />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"absolute top-0 right-0 h-full px-3 py-2 hover:bg-transparent\"\n onClick={() => setShowPassword(!showPassword)}\n disabled={disabled}\n >\n {showPassword ? (\n <EyeOff className=\"h-4 w-4 text-muted-foreground\" />\n ) : (\n <Eye className=\"h-4 w-4 text-muted-foreground\" />\n )}\n </Button>\n </div>\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n\n <div className=\"space-y-3\">\n <Button disabled={disabled} className=\"w-full\">\n {createFirstUserMutation.isPending && (\n <Icons.spinner className=\"mr-2 h-4 w-4 animate-spin\" />\n )}\n Account aanmaken\n </Button>\n </div>\n </form>\n </Form>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAyBA,SAAgB,sBAAsB;CACpC,MAAM,SAAS,WAAW;CAC1B,MAAM,aAAa,eAAe;CAClC,MAAM,CAAC,eAAe,cAAc,eAAe,cAAc;CACjE,MAAM,CAAC,cAAc,mBAAmB,SAAS,MAAM;CAEvD,MAAM,0BAA0B,YAAY;EAC1C,YAAY,OAAO,SAA2C;GAC5D,MAAM,SAAS,MAAM,WAAW,OAAO,MAAM;IAC3C,OAAO,KAAK;IACZ,UAAU,KAAK;IACf,MAAM,GAAG,KAAK,UAAU,GAAG,KAAK;IAChC,WAAW,KAAK;IAChB,UAAU,KAAK;IACf,aAAa,eAAe;IAC7B,CAAC;AAEF,OAAI,OAAO,MAAO,OAAM,OAAO;AAE/B,UAAO,OAAO;;EAEhB,UAAU,QAAe;AACvB,WAAQ,MAAM,6BAA6B,IAAI;AAC/C,SAAM,MAAM,uBAAuB;;EAErC,iBAAiB;AACf,UAAO,QAAQ,eAAe,SAAS;AACvC,SAAM,QAAQ,gCAAgC;;EAEjD,CAAC;CAEF,MAAM,WAAW,wBAAwB;CAEzC,MAAM,OAAO,QAA0C;EACrD,UAAU,uBAAuB,iBAAiB;EAClD,eAAe;GAAE,OAAO;GAAI,WAAW;GAAI,UAAU;GAAI,UAAU;GAAI;EACvE;EACD,CAAC;AAEF,KAAI,OAAO,KAAK,KAAK,UAAU,OAAO,CAAC,SAAS,EAC9C,SAAQ,MAAM,KAAK,UAAU,OAAO;AAGtC,QACE,qBAAC;EAAI,WAAU;aACb,qBAAC;GAAI,WAAU;cACb,oBAAC;IAAG,WAAU;cAAwC;KAA4B,EAClF,oBAAC;IAAE,WAAU;cAAgC;KAA8C;IACvF,EAEN,oBAACA;GAAK,GAAI;aACR,qBAAC;IACC,WAAU;IACV,UAAU,KAAK,cAAc,SAAS,wBAAwB,OAAO,KAAK,CAAC;eAE3E,qBAAC;KAAI,WAAU;;MACb,oBAAC;OACC,SAAS,KAAK;OACd,MAAK;OACL,SAAS,EAAE,YACT,qBAAC;QACC,oBAAC,uBAAU,aAAoB;QAC/B,oBAAC,yBACC,oBAAC;SAAM,aAAY;SAAW,GAAI;UAAS,GAC/B;QACd,oBAAC,gBAAc;WACN;QAEb;MAEF,oBAAC;OACC,SAAS,KAAK;OACd,MAAK;OACL,SAAS,EAAE,YACT,qBAAC;QACC,oBAAC,uBAAU,eAAsB;QACjC,oBAAC,yBACC,oBAAC;SAAM,aAAY;SAAa,GAAI;UAAS,GACjC;QACd,oBAAC,gBAAc;WACN;QAEb;MAEF,oBAAC;OACC,SAAS,KAAK;OACd,MAAK;OACL,SAAS,EAAE,YACT,qBAAC;QACC,oBAAC,uBAAU,UAAiB;QAC5B,oBAAC,yBACC,oBAAC;SAAM,aAAY;SAAmB,GAAI;UAAS,GACvC;QACd,oBAAC,gBAAc;WACN;QAEb;MAEF,oBAAC;OACC,SAAS,KAAK;OACd,MAAK;OACL,SAAS,EAAE,YACT,qBAAC;QACC,oBAAC,uBAAU,eAAsB;QACjC,oBAAC,yBACC,qBAAC;SAAI,WAAU;oBACb,oBAAC;UACC,MAAM,eAAe,SAAS;UAC9B,aAAY;UACZ,GAAI;WACJ,EACF,oBAAC;UACC,MAAK;UACL,SAAQ;UACR,MAAK;UACL,WAAU;UACV,eAAe,gBAAgB,CAAC,aAAa;UACnC;oBAET,eACC,oBAAC,UAAO,WAAU,kCAAkC,GAEpD,oBAAC,OAAI,WAAU,kCAAkC;WAE5C;UACL,GACM;QACd,oBAAC,gBAAc;WACN;QAEb;;MACE,EAEN,oBAAC;KAAI,WAAU;eACb,qBAAC;MAAiB;MAAU,WAAU;iBACnC,wBAAwB,aACvB,oBAAC,MAAM,WAAQ,WAAU,8BAA8B,EACvD;OAEK;MACL;KACD;IACF;GACH"}
@@ -26,7 +26,7 @@ function ForgetPasswordPage() {
26
26
  children: [/* @__PURE__ */ jsxs("div", {
27
27
  className: "flex flex-col space-y-2 text-center",
28
28
  children: [/* @__PURE__ */ jsx("h1", {
29
- className: "text-3xl font-semibold tracking-tight",
29
+ className: "font-semibold text-3xl tracking-tight",
30
30
  children: "Wachtwoord vergeten"
31
31
  }), /* @__PURE__ */ jsx("p", {
32
32
  className: "text-muted-foreground text-sm",
@@ -1 +1 @@
1
- {"version":3,"file":"forget-password-page.client.mjs","names":["Form"],"sources":["../../../../src/modules/auth/components/forget-password-page.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { standardSchemaResolver } from \"@hookform/resolvers/standard-schema\";\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { toast } from \"sonner\";\nimport type * as z from \"zod\";\nimport { Icons } from \"@/components/common/icons\";\nimport { Button } from \"@/components/ui/button\";\nimport { Form, FormControl, FormField, FormItem, FormMessage } from \"@/components/ui/form.client\";\nimport { Input } from \"@/components/ui/input\";\nimport { useAuthClient } from \"../hooks/use-auth-client\";\nimport { forgotPasswordSchema } from \"../lib/validators\";\n\nexport function ForgetPasswordPage() {\n const authClient = useAuthClient();\n const [isPending, startTransition] = React.useTransition();\n\n const form = useForm<z.infer<typeof forgotPasswordSchema>>({\n resolver: standardSchemaResolver(forgotPasswordSchema),\n defaultValues: { email: \"\" },\n disabled: isPending,\n });\n\n return (\n <div className=\"mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]\">\n <div className=\"flex flex-col space-y-2 text-center\">\n <h1 className=\"text-3xl font-semibold tracking-tight\">Wachtwoord vergeten</h1>\n <p className=\"text-muted-foreground text-sm\">\n Schrijf je email zodat we je een mail kunnen verzenden om je wachtwoord te herstellen.\n </p>\n </div>\n\n <Form {...form}>\n <form\n onSubmit={form.handleSubmit(({ email }) =>\n startTransition(async () => {\n await authClient.emailOtp.sendVerificationOtp({\n type: \"forget-password\",\n email,\n fetchOptions: {\n onSuccess: () => {\n toast.success(\"Succesvol verzonden\", {\n description:\n \"We hebben je een email verzonden om je wachtwoord te herstellen.\",\n });\n },\n onError: ({ error }) => {\n console.error(\"Error: \", error);\n toast.error(\"Er is iets misgegaan\");\n },\n },\n });\n }),\n )}\n className=\"space-y-6\"\n >\n <FormField\n control={form.control}\n name=\"email\"\n render={({ field }) => (\n <FormItem>\n <FormControl>\n <Input placeholder=\"email@example.be\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <Button disabled={form.formState.disabled} className=\"w-full\">\n {isPending && <Icons.spinner className=\"mr-2 h-4 w-4 animate-spin\" />}\n Verzenden\n </Button>\n </form>\n </Form>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;AAcA,SAAgB,qBAAqB;CACnC,MAAM,aAAa,eAAe;CAClC,MAAM,CAAC,WAAW,mBAAmB,MAAM,eAAe;CAE1D,MAAM,OAAO,QAA8C;EACzD,UAAU,uBAAuB,qBAAqB;EACtD,eAAe,EAAE,OAAO,IAAI;EAC5B,UAAU;EACX,CAAC;AAEF,QACE,qBAAC;EAAI,WAAU;aACb,qBAAC;GAAI,WAAU;cACb,oBAAC;IAAG,WAAU;cAAwC;KAAwB,EAC9E,oBAAC;IAAE,WAAU;cAAgC;KAEzC;IACA,EAEN,oBAACA;GAAK,GAAI;aACR,qBAAC;IACC,UAAU,KAAK,cAAc,EAAE,YAC7B,gBAAgB,YAAY;AAC1B,WAAM,WAAW,SAAS,oBAAoB;MAC5C,MAAM;MACN;MACA,cAAc;OACZ,iBAAiB;AACf,cAAM,QAAQ,uBAAuB,EACnC,aACE,oEACH,CAAC;;OAEJ,UAAU,EAAE,YAAY;AACtB,gBAAQ,MAAM,WAAW,MAAM;AAC/B,cAAM,MAAM,uBAAuB;;OAEtC;MACF,CAAC;MACF,CACH;IACD,WAAU;eAEV,oBAAC;KACC,SAAS,KAAK;KACd,MAAK;KACL,SAAS,EAAE,YACT,qBAAC,uBACC,oBAAC,yBACC,oBAAC;MAAM,aAAY;MAAmB,GAAI;OAAS,GACvC,EACd,oBAAC,gBAAc,IACN;MAEb,EAEF,qBAAC;KAAO,UAAU,KAAK,UAAU;KAAU,WAAU;gBAClD,aAAa,oBAAC,MAAM,WAAQ,WAAU,8BAA8B,EAAC;MAE/D;KACJ;IACF;GACH"}
1
+ {"version":3,"file":"forget-password-page.client.mjs","names":["Form"],"sources":["../../../../src/modules/auth/components/forget-password-page.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { standardSchemaResolver } from \"@hookform/resolvers/standard-schema\";\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { toast } from \"sonner\";\nimport type * as z from \"zod\";\nimport { Icons } from \"@/components/common/icons\";\nimport { Button } from \"@/components/ui/button\";\nimport { Form, FormControl, FormField, FormItem, FormMessage } from \"@/components/ui/form.client\";\nimport { Input } from \"@/components/ui/input\";\nimport { useAuthClient } from \"../hooks/use-auth-client\";\nimport { forgotPasswordSchema } from \"../lib/validators\";\n\nexport function ForgetPasswordPage() {\n const authClient = useAuthClient();\n const [isPending, startTransition] = React.useTransition();\n\n const form = useForm<z.infer<typeof forgotPasswordSchema>>({\n resolver: standardSchemaResolver(forgotPasswordSchema),\n defaultValues: { email: \"\" },\n disabled: isPending,\n });\n\n return (\n <div className=\"mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]\">\n <div className=\"flex flex-col space-y-2 text-center\">\n <h1 className=\"font-semibold text-3xl tracking-tight\">Wachtwoord vergeten</h1>\n <p className=\"text-muted-foreground text-sm\">\n Schrijf je email zodat we je een mail kunnen verzenden om je wachtwoord te herstellen.\n </p>\n </div>\n\n <Form {...form}>\n <form\n onSubmit={form.handleSubmit(({ email }) =>\n startTransition(async () => {\n await authClient.emailOtp.sendVerificationOtp({\n type: \"forget-password\",\n email,\n fetchOptions: {\n onSuccess: () => {\n toast.success(\"Succesvol verzonden\", {\n description:\n \"We hebben je een email verzonden om je wachtwoord te herstellen.\",\n });\n },\n onError: ({ error }) => {\n console.error(\"Error: \", error);\n toast.error(\"Er is iets misgegaan\");\n },\n },\n });\n }),\n )}\n className=\"space-y-6\"\n >\n <FormField\n control={form.control}\n name=\"email\"\n render={({ field }) => (\n <FormItem>\n <FormControl>\n <Input placeholder=\"email@example.be\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <Button disabled={form.formState.disabled} className=\"w-full\">\n {isPending && <Icons.spinner className=\"mr-2 h-4 w-4 animate-spin\" />}\n Verzenden\n </Button>\n </form>\n </Form>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;AAcA,SAAgB,qBAAqB;CACnC,MAAM,aAAa,eAAe;CAClC,MAAM,CAAC,WAAW,mBAAmB,MAAM,eAAe;CAE1D,MAAM,OAAO,QAA8C;EACzD,UAAU,uBAAuB,qBAAqB;EACtD,eAAe,EAAE,OAAO,IAAI;EAC5B,UAAU;EACX,CAAC;AAEF,QACE,qBAAC;EAAI,WAAU;aACb,qBAAC;GAAI,WAAU;cACb,oBAAC;IAAG,WAAU;cAAwC;KAAwB,EAC9E,oBAAC;IAAE,WAAU;cAAgC;KAEzC;IACA,EAEN,oBAACA;GAAK,GAAI;aACR,qBAAC;IACC,UAAU,KAAK,cAAc,EAAE,YAC7B,gBAAgB,YAAY;AAC1B,WAAM,WAAW,SAAS,oBAAoB;MAC5C,MAAM;MACN;MACA,cAAc;OACZ,iBAAiB;AACf,cAAM,QAAQ,uBAAuB,EACnC,aACE,oEACH,CAAC;;OAEJ,UAAU,EAAE,YAAY;AACtB,gBAAQ,MAAM,WAAW,MAAM;AAC/B,cAAM,MAAM,uBAAuB;;OAEtC;MACF,CAAC;MACF,CACH;IACD,WAAU;eAEV,oBAAC;KACC,SAAS,KAAK;KACd,MAAK;KACL,SAAS,EAAE,YACT,qBAAC,uBACC,oBAAC,yBACC,oBAAC;MAAM,aAAY;MAAmB,GAAI;OAAS,GACvC,EACd,oBAAC,gBAAc,IACN;MAEb,EAEF,qBAAC;KAAO,UAAU,KAAK,UAAU;KAAU,WAAU;gBAClD,aAAa,oBAAC,MAAM,WAAQ,WAAU,8BAA8B,EAAC;MAE/D;KACJ;IACF;GACH"}
@@ -1,9 +1,9 @@
1
- import { TDatabaseSchema } from "../../config/db/types.mjs";
1
+ import { TDatabaseSchema } from "../../database/lib/types.mjs";
2
2
  import { TulipContext } from "../../config/lib/context.mjs";
3
3
  import "../../../config.mjs";
4
4
  import * as react_jsx_runtime0 from "react/jsx-runtime";
5
5
  import { PropsWithChildren } from "react";
6
- import "server-only";
6
+ import "server-cli-only";
7
7
 
8
8
  //#region src/modules/auth/components/guard.server.d.ts
9
9
  declare function AuthGuard<TSchema extends TDatabaseSchema>({
@@ -3,7 +3,7 @@ import { HydrateClient } from "../../router/lib/query-client.server.mjs";
3
3
  import { getSession } from "../lib/helpers.server.mjs";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  import { redirect } from "next/navigation";
6
- import "server-only";
6
+ import "server-cli-only";
7
7
 
8
8
  //#region src/modules/auth/components/guard.server.tsx
9
9
  async function AuthGuard({ children, auth }) {
@@ -1 +1 @@
1
- {"version":3,"file":"guard.server.mjs","names":[],"sources":["../../../../src/modules/auth/components/guard.server.tsx"],"sourcesContent":["import \"server-only\";\n\nimport { redirect } from \"next/navigation\";\nimport type { PropsWithChildren } from \"react\";\nimport type { TDatabaseSchema, TulipContext } from \"@/modules/config/entry\";\nimport { getQueryClient } from \"@/modules/router/lib/query-client\";\nimport { HydrateClient } from \"@/modules/router/lib/query-client.server\";\nimport { getSession } from \"../lib/helpers.server\";\n\nexport async function AuthGuard<TSchema extends TDatabaseSchema>({\n children,\n auth,\n}: PropsWithChildren<Pick<TulipContext<TSchema>, \"auth\">>) {\n const session = await getSession({ auth });\n if (!session) redirect(\"/auth/login\");\n\n const queryClient = getQueryClient();\n queryClient.prefetchQuery({\n queryKey: [\"session\"],\n queryFn: async () => session,\n });\n\n return <HydrateClient>{children}</HydrateClient>;\n}\n"],"mappings":";;;;;;;;AASA,eAAsB,UAA2C,EAC/D,UACA,QACyD;CACzD,MAAM,UAAU,MAAM,WAAW,EAAE,MAAM,CAAC;AAC1C,KAAI,CAAC,QAAS,UAAS,cAAc;AAGrC,CADoB,gBAAgB,CACxB,cAAc;EACxB,UAAU,CAAC,UAAU;EACrB,SAAS,YAAY;EACtB,CAAC;AAEF,QAAO,oBAAC,iBAAe,WAAyB"}
1
+ {"version":3,"file":"guard.server.mjs","names":[],"sources":["../../../../src/modules/auth/components/guard.server.tsx"],"sourcesContent":["import \"server-cli-only\";\n\nimport { redirect } from \"next/navigation\";\nimport type { PropsWithChildren } from \"react\";\nimport type { TDatabaseSchema, TulipContext } from \"@/modules/config/entry\";\nimport { getQueryClient } from \"@/modules/router/lib/query-client\";\nimport { HydrateClient } from \"@/modules/router/lib/query-client.server\";\nimport { getSession } from \"../lib/helpers.server\";\n\nexport async function AuthGuard<TSchema extends TDatabaseSchema>({\n children,\n auth,\n}: PropsWithChildren<Pick<TulipContext<TSchema>, \"auth\">>) {\n const session = await getSession({ auth });\n if (!session) redirect(\"/auth/login\");\n\n const queryClient = getQueryClient();\n queryClient.prefetchQuery({\n queryKey: [\"session\"],\n queryFn: async () => session,\n });\n\n return <HydrateClient>{children}</HydrateClient>;\n}\n"],"mappings":";;;;;;;;AASA,eAAsB,UAA2C,EAC/D,UACA,QACyD;CACzD,MAAM,UAAU,MAAM,WAAW,EAAE,MAAM,CAAC;AAC1C,KAAI,CAAC,QAAS,UAAS,cAAc;AAGrC,CADoB,gBAAgB,CACxB,cAAc;EACxB,UAAU,CAAC,UAAU;EACrB,SAAS,YAAY;EACtB,CAAC;AAEF,QAAO,oBAAC,iBAAe,WAAyB"}
@@ -81,7 +81,7 @@ function LoginPage(props) {
81
81
  /* @__PURE__ */ jsxs("div", {
82
82
  className: "flex flex-col space-y-2 text-center",
83
83
  children: [/* @__PURE__ */ jsx("h1", {
84
- className: "text-3xl font-semibold tracking-tight",
84
+ className: "font-semibold text-3xl tracking-tight",
85
85
  children: "Login"
86
86
  }), /* @__PURE__ */ jsx("p", {
87
87
  className: "text-muted-foreground text-sm",
@@ -115,10 +115,10 @@ function LoginPage(props) {
115
115
  type: "button",
116
116
  variant: "ghost",
117
117
  size: "sm",
118
- className: "absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent",
118
+ className: "absolute top-0 right-0 h-full px-3 py-2 hover:bg-transparent",
119
119
  onClick: () => setShowPassword(!showPassword),
120
120
  disabled,
121
- children: showPassword ? /* @__PURE__ */ jsx(EyeOff, { className: "text-muted-foreground h-4 w-4" }) : /* @__PURE__ */ jsx(Eye, { className: "text-muted-foreground h-4 w-4" })
121
+ children: showPassword ? /* @__PURE__ */ jsx(EyeOff, { className: "h-4 w-4 text-muted-foreground" }) : /* @__PURE__ */ jsx(Eye, { className: "h-4 w-4 text-muted-foreground" })
122
122
  })]
123
123
  }) }), /* @__PURE__ */ jsx(FormMessage, {})] })
124
124
  })]
@@ -140,10 +140,10 @@ function LoginPage(props) {
140
140
  })
141
141
  }),
142
142
  /* @__PURE__ */ jsx("p", {
143
- className: "text-muted-foreground px-8 text-center text-sm",
143
+ className: "px-8 text-center text-muted-foreground text-sm",
144
144
  children: /* @__PURE__ */ jsx(Link, {
145
145
  href: "/auth/forget-password",
146
- className: "hover:text-primary underline underline-offset-4",
146
+ className: "underline underline-offset-4 hover:text-primary",
147
147
  children: "Wachtwoord vergeten"
148
148
  })
149
149
  })
@@ -1 +1 @@
1
- {"version":3,"file":"login-page.client.mjs","names":["Form"],"sources":["../../../../src/modules/auth/components/login-page.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { standardSchemaResolver } from \"@hookform/resolvers/standard-schema\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { Eye, EyeOff, FingerprintIcon } from \"lucide-react\";\nimport Link from \"next/link\";\nimport { useRouter } from \"next/navigation\";\nimport { parseAsString, useQueryState } from \"nuqs\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { toast } from \"sonner\";\nimport type * as z from \"zod\";\nimport { Icons } from \"@/components/common/icons\";\nimport { Button } from \"@/components/ui/button\";\nimport { Form, FormControl, FormField, FormItem, FormMessage } from \"@/components/ui/form.client\";\nimport { Input } from \"@/components/ui/input\";\nimport { useAuthClient } from \"../hooks/use-auth-client\";\nimport { loginSchema } from \"../lib/validators\";\n\ntype LoginPageProps = {\n options?: {\n enablePasskey?: boolean;\n };\n};\n\nexport function LoginPage(props: LoginPageProps) {\n const router = useRouter();\n const authClient = useAuthClient();\n const [callbackURL] = useQueryState(\"callbackURL\", parseAsString);\n const [showPassword, setShowPassword] = useState(false);\n\n const loginWithEmailMutation = useMutation({\n mutationFn: async (data: z.infer<typeof loginSchema>) => {\n const result = await authClient.signIn.email({\n ...data,\n callbackURL: callbackURL ?? \"/admin\",\n });\n if (result.error) throw result.error;\n\n return result.data;\n },\n onError: (err) => {\n console.error(\"Login error: \", err);\n\n if (\"status\" in err) {\n if (err.status === 401) {\n toast.error(\"Ongeldige email of wachtwoord\");\n return;\n }\n\n if (err.status === 403) {\n toast.error(\"Account is geblokkeerd\");\n return;\n }\n\n if (err.status === 429) {\n toast.error(\"Te veel login pogingen\");\n return;\n }\n }\n\n toast.error(\"Er is iets misgegaan\");\n },\n });\n\n const loginWithPasskeyMutation = useMutation({\n mutationFn: async () => {\n const result = await authClient.signIn.passkey();\n if (result.error) throw result.error;\n\n return result.data;\n },\n onSuccess: () => {\n router.replace(callbackURL ?? \"/admin\");\n toast.success(\"Succesvol ingelogd\");\n },\n onError: (err) => {\n console.error(\"Login error: \", err);\n toast.error(\"Er is iets misgegaan\");\n },\n });\n\n const disabled = loginWithEmailMutation.isPending || loginWithPasskeyMutation.isPending;\n\n const form = useForm<z.infer<typeof loginSchema>>({\n resolver: standardSchemaResolver(loginSchema),\n defaultValues: { email: \"\", password: \"\" },\n disabled,\n });\n\n return (\n <div className=\"mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]\">\n <div className=\"flex flex-col space-y-2 text-center\">\n <h1 className=\"text-3xl font-semibold tracking-tight\">Login</h1>\n <p className=\"text-muted-foreground text-sm\">\n Schrijf je email en wachtwoord in om in te loggen.\n </p>\n </div>\n\n <Form {...form}>\n <form\n className=\"space-y-6\"\n onSubmit={form.handleSubmit((data) => loginWithEmailMutation.mutate(data))}\n >\n <div className=\"flex flex-col gap-3\">\n <FormField\n control={form.control}\n name=\"email\"\n render={({ field }) => (\n <FormItem>\n <FormControl>\n <Input placeholder=\"email@example.be\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <FormField\n control={form.control}\n name=\"password\"\n render={({ field }) => (\n <FormItem>\n <FormControl>\n <div className=\"relative\">\n <Input\n type={showPassword ? \"text\" : \"password\"}\n placeholder=\"********\"\n {...field}\n />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent\"\n onClick={() => setShowPassword(!showPassword)}\n disabled={disabled}\n >\n {showPassword ? (\n <EyeOff className=\"text-muted-foreground h-4 w-4\" />\n ) : (\n <Eye className=\"text-muted-foreground h-4 w-4\" />\n )}\n </Button>\n </div>\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n\n <div className=\"space-y-3\">\n <Button disabled={disabled} className=\"w-full\">\n {loginWithEmailMutation.isPending && (\n <Icons.spinner className=\"mr-2 h-4 w-4 animate-spin\" />\n )}\n Inloggen\n </Button>\n\n {props.options?.enablePasskey && (\n <Button\n className=\"w-full\"\n type=\"button\"\n variant=\"outline\"\n disabled={disabled}\n onClick={() => loginWithPasskeyMutation.mutate()}\n >\n {loginWithPasskeyMutation.isPending ? (\n <Icons.spinner className=\"mr-2 h-4 w-4 animate-spin\" />\n ) : (\n <FingerprintIcon className=\"mr-2 h-4 w-4\" />\n )}\n Inloggen met passkey\n </Button>\n )}\n </div>\n </form>\n </Form>\n\n <p className=\"text-muted-foreground px-8 text-center text-sm\">\n <Link\n href=\"/auth/forget-password\"\n className=\"hover:text-primary underline underline-offset-4\"\n >\n Wachtwoord vergeten\n </Link>\n </p>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyBA,SAAgB,UAAU,OAAuB;CAC/C,MAAM,SAAS,WAAW;CAC1B,MAAM,aAAa,eAAe;CAClC,MAAM,CAAC,eAAe,cAAc,eAAe,cAAc;CACjE,MAAM,CAAC,cAAc,mBAAmB,SAAS,MAAM;CAEvD,MAAM,yBAAyB,YAAY;EACzC,YAAY,OAAO,SAAsC;GACvD,MAAM,SAAS,MAAM,WAAW,OAAO,MAAM;IAC3C,GAAG;IACH,aAAa,eAAe;IAC7B,CAAC;AACF,OAAI,OAAO,MAAO,OAAM,OAAO;AAE/B,UAAO,OAAO;;EAEhB,UAAU,QAAQ;AAChB,WAAQ,MAAM,iBAAiB,IAAI;AAEnC,OAAI,YAAY,KAAK;AACnB,QAAI,IAAI,WAAW,KAAK;AACtB,WAAM,MAAM,gCAAgC;AAC5C;;AAGF,QAAI,IAAI,WAAW,KAAK;AACtB,WAAM,MAAM,yBAAyB;AACrC;;AAGF,QAAI,IAAI,WAAW,KAAK;AACtB,WAAM,MAAM,yBAAyB;AACrC;;;AAIJ,SAAM,MAAM,uBAAuB;;EAEtC,CAAC;CAEF,MAAM,2BAA2B,YAAY;EAC3C,YAAY,YAAY;GACtB,MAAM,SAAS,MAAM,WAAW,OAAO,SAAS;AAChD,OAAI,OAAO,MAAO,OAAM,OAAO;AAE/B,UAAO,OAAO;;EAEhB,iBAAiB;AACf,UAAO,QAAQ,eAAe,SAAS;AACvC,SAAM,QAAQ,qBAAqB;;EAErC,UAAU,QAAQ;AAChB,WAAQ,MAAM,iBAAiB,IAAI;AACnC,SAAM,MAAM,uBAAuB;;EAEtC,CAAC;CAEF,MAAM,WAAW,uBAAuB,aAAa,yBAAyB;CAE9E,MAAM,OAAO,QAAqC;EAChD,UAAU,uBAAuB,YAAY;EAC7C,eAAe;GAAE,OAAO;GAAI,UAAU;GAAI;EAC1C;EACD,CAAC;AAEF,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAwC;MAAU,EAChE,oBAAC;KAAE,WAAU;eAAgC;MAEzC;KACA;GAEN,oBAACA;IAAK,GAAI;cACR,qBAAC;KACC,WAAU;KACV,UAAU,KAAK,cAAc,SAAS,uBAAuB,OAAO,KAAK,CAAC;gBAE1E,qBAAC;MAAI,WAAU;iBACb,oBAAC;OACC,SAAS,KAAK;OACd,MAAK;OACL,SAAS,EAAE,YACT,qBAAC,uBACC,oBAAC,yBACC,oBAAC;QAAM,aAAY;QAAmB,GAAI;SAAS,GACvC,EACd,oBAAC,gBAAc,IACN;QAEb,EAEF,oBAAC;OACC,SAAS,KAAK;OACd,MAAK;OACL,SAAS,EAAE,YACT,qBAAC,uBACC,oBAAC,yBACC,qBAAC;QAAI,WAAU;mBACb,oBAAC;SACC,MAAM,eAAe,SAAS;SAC9B,aAAY;SACZ,GAAI;UACJ,EACF,oBAAC;SACC,MAAK;SACL,SAAQ;SACR,MAAK;SACL,WAAU;SACV,eAAe,gBAAgB,CAAC,aAAa;SACnC;mBAET,eACC,oBAAC,UAAO,WAAU,kCAAkC,GAEpD,oBAAC,OAAI,WAAU,kCAAkC;UAE5C;SACL,GACM,EACd,oBAAC,gBAAc,IACN;QAEb;OACE,EAEN,qBAAC;MAAI,WAAU;iBACb,qBAAC;OAAiB;OAAU,WAAU;kBACnC,uBAAuB,aACtB,oBAAC,MAAM,WAAQ,WAAU,8BAA8B,EACvD;QAEK,EAER,MAAM,SAAS,iBACd,qBAAC;OACC,WAAU;OACV,MAAK;OACL,SAAQ;OACE;OACV,eAAe,yBAAyB,QAAQ;kBAE/C,yBAAyB,YACxB,oBAAC,MAAM,WAAQ,WAAU,8BAA8B,GAEvD,oBAAC,mBAAgB,WAAU,iBAAiB,EAC5C;QAEK;OAEP;MACD;KACF;GAEP,oBAAC;IAAE,WAAU;cACX,oBAAC;KACC,MAAK;KACL,WAAU;eACX;MAEM;KACL;;GACA"}
1
+ {"version":3,"file":"login-page.client.mjs","names":["Form"],"sources":["../../../../src/modules/auth/components/login-page.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { standardSchemaResolver } from \"@hookform/resolvers/standard-schema\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { Eye, EyeOff, FingerprintIcon } from \"lucide-react\";\nimport Link from \"next/link\";\nimport { useRouter } from \"next/navigation\";\nimport { parseAsString, useQueryState } from \"nuqs\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { toast } from \"sonner\";\nimport type * as z from \"zod\";\nimport { Icons } from \"@/components/common/icons\";\nimport { Button } from \"@/components/ui/button\";\nimport { Form, FormControl, FormField, FormItem, FormMessage } from \"@/components/ui/form.client\";\nimport { Input } from \"@/components/ui/input\";\nimport { useAuthClient } from \"../hooks/use-auth-client\";\nimport { loginSchema } from \"../lib/validators\";\n\ntype LoginPageProps = {\n options?: {\n enablePasskey?: boolean;\n };\n};\n\nexport function LoginPage(props: LoginPageProps) {\n const router = useRouter();\n const authClient = useAuthClient();\n const [callbackURL] = useQueryState(\"callbackURL\", parseAsString);\n const [showPassword, setShowPassword] = useState(false);\n\n const loginWithEmailMutation = useMutation({\n mutationFn: async (data: z.infer<typeof loginSchema>) => {\n const result = await authClient.signIn.email({\n ...data,\n callbackURL: callbackURL ?? \"/admin\",\n });\n if (result.error) throw result.error;\n\n return result.data;\n },\n onError: (err) => {\n console.error(\"Login error: \", err);\n\n if (\"status\" in err) {\n if (err.status === 401) {\n toast.error(\"Ongeldige email of wachtwoord\");\n return;\n }\n\n if (err.status === 403) {\n toast.error(\"Account is geblokkeerd\");\n return;\n }\n\n if (err.status === 429) {\n toast.error(\"Te veel login pogingen\");\n return;\n }\n }\n\n toast.error(\"Er is iets misgegaan\");\n },\n });\n\n const loginWithPasskeyMutation = useMutation({\n mutationFn: async () => {\n const result = await authClient.signIn.passkey();\n if (result.error) throw result.error;\n\n return result.data;\n },\n onSuccess: () => {\n router.replace(callbackURL ?? \"/admin\");\n toast.success(\"Succesvol ingelogd\");\n },\n onError: (err) => {\n console.error(\"Login error: \", err);\n toast.error(\"Er is iets misgegaan\");\n },\n });\n\n const disabled = loginWithEmailMutation.isPending || loginWithPasskeyMutation.isPending;\n\n const form = useForm<z.infer<typeof loginSchema>>({\n resolver: standardSchemaResolver(loginSchema),\n defaultValues: { email: \"\", password: \"\" },\n disabled,\n });\n\n return (\n <div className=\"mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]\">\n <div className=\"flex flex-col space-y-2 text-center\">\n <h1 className=\"font-semibold text-3xl tracking-tight\">Login</h1>\n <p className=\"text-muted-foreground text-sm\">\n Schrijf je email en wachtwoord in om in te loggen.\n </p>\n </div>\n\n <Form {...form}>\n <form\n className=\"space-y-6\"\n onSubmit={form.handleSubmit((data) => loginWithEmailMutation.mutate(data))}\n >\n <div className=\"flex flex-col gap-3\">\n <FormField\n control={form.control}\n name=\"email\"\n render={({ field }) => (\n <FormItem>\n <FormControl>\n <Input placeholder=\"email@example.be\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <FormField\n control={form.control}\n name=\"password\"\n render={({ field }) => (\n <FormItem>\n <FormControl>\n <div className=\"relative\">\n <Input\n type={showPassword ? \"text\" : \"password\"}\n placeholder=\"********\"\n {...field}\n />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"absolute top-0 right-0 h-full px-3 py-2 hover:bg-transparent\"\n onClick={() => setShowPassword(!showPassword)}\n disabled={disabled}\n >\n {showPassword ? (\n <EyeOff className=\"h-4 w-4 text-muted-foreground\" />\n ) : (\n <Eye className=\"h-4 w-4 text-muted-foreground\" />\n )}\n </Button>\n </div>\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n\n <div className=\"space-y-3\">\n <Button disabled={disabled} className=\"w-full\">\n {loginWithEmailMutation.isPending && (\n <Icons.spinner className=\"mr-2 h-4 w-4 animate-spin\" />\n )}\n Inloggen\n </Button>\n\n {props.options?.enablePasskey && (\n <Button\n className=\"w-full\"\n type=\"button\"\n variant=\"outline\"\n disabled={disabled}\n onClick={() => loginWithPasskeyMutation.mutate()}\n >\n {loginWithPasskeyMutation.isPending ? (\n <Icons.spinner className=\"mr-2 h-4 w-4 animate-spin\" />\n ) : (\n <FingerprintIcon className=\"mr-2 h-4 w-4\" />\n )}\n Inloggen met passkey\n </Button>\n )}\n </div>\n </form>\n </Form>\n\n <p className=\"px-8 text-center text-muted-foreground text-sm\">\n <Link\n href=\"/auth/forget-password\"\n className=\"underline underline-offset-4 hover:text-primary\"\n >\n Wachtwoord vergeten\n </Link>\n </p>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyBA,SAAgB,UAAU,OAAuB;CAC/C,MAAM,SAAS,WAAW;CAC1B,MAAM,aAAa,eAAe;CAClC,MAAM,CAAC,eAAe,cAAc,eAAe,cAAc;CACjE,MAAM,CAAC,cAAc,mBAAmB,SAAS,MAAM;CAEvD,MAAM,yBAAyB,YAAY;EACzC,YAAY,OAAO,SAAsC;GACvD,MAAM,SAAS,MAAM,WAAW,OAAO,MAAM;IAC3C,GAAG;IACH,aAAa,eAAe;IAC7B,CAAC;AACF,OAAI,OAAO,MAAO,OAAM,OAAO;AAE/B,UAAO,OAAO;;EAEhB,UAAU,QAAQ;AAChB,WAAQ,MAAM,iBAAiB,IAAI;AAEnC,OAAI,YAAY,KAAK;AACnB,QAAI,IAAI,WAAW,KAAK;AACtB,WAAM,MAAM,gCAAgC;AAC5C;;AAGF,QAAI,IAAI,WAAW,KAAK;AACtB,WAAM,MAAM,yBAAyB;AACrC;;AAGF,QAAI,IAAI,WAAW,KAAK;AACtB,WAAM,MAAM,yBAAyB;AACrC;;;AAIJ,SAAM,MAAM,uBAAuB;;EAEtC,CAAC;CAEF,MAAM,2BAA2B,YAAY;EAC3C,YAAY,YAAY;GACtB,MAAM,SAAS,MAAM,WAAW,OAAO,SAAS;AAChD,OAAI,OAAO,MAAO,OAAM,OAAO;AAE/B,UAAO,OAAO;;EAEhB,iBAAiB;AACf,UAAO,QAAQ,eAAe,SAAS;AACvC,SAAM,QAAQ,qBAAqB;;EAErC,UAAU,QAAQ;AAChB,WAAQ,MAAM,iBAAiB,IAAI;AACnC,SAAM,MAAM,uBAAuB;;EAEtC,CAAC;CAEF,MAAM,WAAW,uBAAuB,aAAa,yBAAyB;CAE9E,MAAM,OAAO,QAAqC;EAChD,UAAU,uBAAuB,YAAY;EAC7C,eAAe;GAAE,OAAO;GAAI,UAAU;GAAI;EAC1C;EACD,CAAC;AAEF,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAwC;MAAU,EAChE,oBAAC;KAAE,WAAU;eAAgC;MAEzC;KACA;GAEN,oBAACA;IAAK,GAAI;cACR,qBAAC;KACC,WAAU;KACV,UAAU,KAAK,cAAc,SAAS,uBAAuB,OAAO,KAAK,CAAC;gBAE1E,qBAAC;MAAI,WAAU;iBACb,oBAAC;OACC,SAAS,KAAK;OACd,MAAK;OACL,SAAS,EAAE,YACT,qBAAC,uBACC,oBAAC,yBACC,oBAAC;QAAM,aAAY;QAAmB,GAAI;SAAS,GACvC,EACd,oBAAC,gBAAc,IACN;QAEb,EAEF,oBAAC;OACC,SAAS,KAAK;OACd,MAAK;OACL,SAAS,EAAE,YACT,qBAAC,uBACC,oBAAC,yBACC,qBAAC;QAAI,WAAU;mBACb,oBAAC;SACC,MAAM,eAAe,SAAS;SAC9B,aAAY;SACZ,GAAI;UACJ,EACF,oBAAC;SACC,MAAK;SACL,SAAQ;SACR,MAAK;SACL,WAAU;SACV,eAAe,gBAAgB,CAAC,aAAa;SACnC;mBAET,eACC,oBAAC,UAAO,WAAU,kCAAkC,GAEpD,oBAAC,OAAI,WAAU,kCAAkC;UAE5C;SACL,GACM,EACd,oBAAC,gBAAc,IACN;QAEb;OACE,EAEN,qBAAC;MAAI,WAAU;iBACb,qBAAC;OAAiB;OAAU,WAAU;kBACnC,uBAAuB,aACtB,oBAAC,MAAM,WAAQ,WAAU,8BAA8B,EACvD;QAEK,EAER,MAAM,SAAS,iBACd,qBAAC;OACC,WAAU;OACV,MAAK;OACL,SAAQ;OACE;OACV,eAAe,yBAAyB,QAAQ;kBAE/C,yBAAyB,YACxB,oBAAC,MAAM,WAAQ,WAAU,8BAA8B,GAEvD,oBAAC,mBAAgB,WAAU,iBAAiB,EAC5C;QAEK;OAEP;MACD;KACF;GAEP,oBAAC;IAAE,WAAU;cACX,oBAAC;KACC,MAAK;KACL,WAAU;eACX;MAEM;KACL;;GACA"}
@@ -31,7 +31,7 @@ function ResetPasswordPage(params) {
31
31
  children: [/* @__PURE__ */ jsxs("div", {
32
32
  className: "flex flex-col space-y-2 text-center",
33
33
  children: [/* @__PURE__ */ jsx("h1", {
34
- className: "text-3xl font-semibold tracking-tight",
34
+ className: "font-semibold text-3xl tracking-tight",
35
35
  children: "Wachtwoord herstellen"
36
36
  }), /* @__PURE__ */ jsx("p", {
37
37
  className: "text-muted-foreground text-sm",
@@ -75,10 +75,10 @@ function ResetPasswordPage(params) {
75
75
  type: "button",
76
76
  variant: "ghost",
77
77
  size: "sm",
78
- className: "absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent",
78
+ className: "absolute top-0 right-0 h-full px-3 py-2 hover:bg-transparent",
79
79
  onClick: () => setShowPassword(!showPassword),
80
80
  disabled: form.formState.disabled,
81
- children: showPassword ? /* @__PURE__ */ jsx(EyeOff, { className: "text-muted-foreground h-4 w-4" }) : /* @__PURE__ */ jsx(Eye, { className: "text-muted-foreground h-4 w-4" })
81
+ children: showPassword ? /* @__PURE__ */ jsx(EyeOff, { className: "h-4 w-4 text-muted-foreground" }) : /* @__PURE__ */ jsx(Eye, { className: "h-4 w-4 text-muted-foreground" })
82
82
  })]
83
83
  }) }),
84
84
  /* @__PURE__ */ jsx(FormMessage, {})
@@ -98,10 +98,10 @@ function ResetPasswordPage(params) {
98
98
  type: "button",
99
99
  variant: "ghost",
100
100
  size: "sm",
101
- className: "absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent",
101
+ className: "absolute top-0 right-0 h-full px-3 py-2 hover:bg-transparent",
102
102
  onClick: () => setShowPasswordConfirm(!showPasswordConfirm),
103
103
  disabled: form.formState.disabled,
104
- children: showPasswordConfirm ? /* @__PURE__ */ jsx(EyeOff, { className: "text-muted-foreground h-4 w-4" }) : /* @__PURE__ */ jsx(Eye, { className: "text-muted-foreground h-4 w-4" })
104
+ children: showPasswordConfirm ? /* @__PURE__ */ jsx(EyeOff, { className: "h-4 w-4 text-muted-foreground" }) : /* @__PURE__ */ jsx(Eye, { className: "h-4 w-4 text-muted-foreground" })
105
105
  })]
106
106
  }) }),
107
107
  /* @__PURE__ */ jsx(FormMessage, {})
@@ -1 +1 @@
1
- {"version":3,"file":"reset-password-page.client.mjs","names":["Form"],"sources":["../../../../src/modules/auth/components/reset-password-page.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { standardSchemaResolver } from \"@hookform/resolvers/standard-schema\";\nimport { Eye, EyeOff } from \"lucide-react\";\nimport { useRouter } from \"next/navigation\";\nimport React, { use, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { toast } from \"sonner\";\nimport type * as z from \"zod\";\nimport { Icons } from \"@/components/common/icons\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/components/ui/form.client\";\nimport { Input } from \"@/components/ui/input\";\nimport { useAuthClient } from \"../hooks/use-auth-client\";\nimport { resetPasswordSchema } from \"../lib/validators\";\n\nexport function ResetPasswordPage(params: {\n searchParams: Promise<{ email: string; otp: string }>;\n}) {\n const { email, otp } = use(params.searchParams);\n\n const router = useRouter();\n const authClient = useAuthClient();\n\n const [showPassword, setShowPassword] = useState(false);\n const [showPasswordConfirm, setShowPasswordConfirm] = useState(false);\n\n const [isPending, startTransition] = React.useTransition();\n\n const form = useForm<z.infer<typeof resetPasswordSchema>>({\n resolver: standardSchemaResolver(resetPasswordSchema),\n disabled: isPending,\n });\n\n return (\n <div className=\"mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]\">\n <div className=\"flex flex-col space-y-2 text-center\">\n <h1 className=\"text-3xl font-semibold tracking-tight\">Wachtwoord herstellen</h1>\n <p className=\"text-muted-foreground text-sm\">Vul je nieuwe wachtwoord in</p>\n </div>\n\n <Form {...form}>\n <form\n onSubmit={form.handleSubmit(({ password }) =>\n startTransition(async () => {\n await authClient.emailOtp.resetPassword({\n email,\n otp,\n password,\n fetchOptions: {\n onSuccess: () => {\n toast.success(\"Wachtwoord succesvol gewijzigd\", {\n description: \"Log nu in met je nieuw wachtwoord.\",\n });\n router.replace(\"/auth/login\");\n },\n onError: ({ error }) => {\n console.error(\"Error: \", error);\n toast.error(\"Er is iets misgegaan\");\n },\n },\n });\n }),\n )}\n className=\"space-y-6\"\n >\n <div className=\"flex flex-col gap-3\">\n <FormField\n control={form.control}\n name=\"password\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Wachtwoord</FormLabel>\n <FormControl>\n <div className=\"relative\">\n <Input\n type={showPassword ? \"text\" : \"password\"}\n placeholder=\"********\"\n {...field}\n />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent\"\n onClick={() => setShowPassword(!showPassword)}\n disabled={form.formState.disabled}\n >\n {showPassword ? (\n <EyeOff className=\"text-muted-foreground h-4 w-4\" />\n ) : (\n <Eye className=\"text-muted-foreground h-4 w-4\" />\n )}\n </Button>\n </div>\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <FormField\n control={form.control}\n name=\"passwordConfirmation\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Herhaal Wachtwoord</FormLabel>\n <FormControl>\n <div className=\"relative\">\n <Input\n type={showPasswordConfirm ? \"text\" : \"password\"}\n placeholder=\"********\"\n {...field}\n />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent\"\n onClick={() => setShowPasswordConfirm(!showPasswordConfirm)}\n disabled={form.formState.disabled}\n >\n {showPasswordConfirm ? (\n <EyeOff className=\"text-muted-foreground h-4 w-4\" />\n ) : (\n <Eye className=\"text-muted-foreground h-4 w-4\" />\n )}\n </Button>\n </div>\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n\n <Button disabled={form.formState.disabled} className=\"w-full\">\n {isPending && <Icons.spinner className=\"mr-2 h-4 w-4 animate-spin\" />}\n Verzenden\n </Button>\n </form>\n </Form>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,SAAgB,kBAAkB,QAE/B;CACD,MAAM,EAAE,OAAO,QAAQ,IAAI,OAAO,aAAa;CAE/C,MAAM,SAAS,WAAW;CAC1B,MAAM,aAAa,eAAe;CAElC,MAAM,CAAC,cAAc,mBAAmB,SAAS,MAAM;CACvD,MAAM,CAAC,qBAAqB,0BAA0B,SAAS,MAAM;CAErE,MAAM,CAAC,WAAW,mBAAmB,MAAM,eAAe;CAE1D,MAAM,OAAO,QAA6C;EACxD,UAAU,uBAAuB,oBAAoB;EACrD,UAAU;EACX,CAAC;AAEF,QACE,qBAAC;EAAI,WAAU;aACb,qBAAC;GAAI,WAAU;cACb,oBAAC;IAAG,WAAU;cAAwC;KAA0B,EAChF,oBAAC;IAAE,WAAU;cAAgC;KAA+B;IACxE,EAEN,oBAACA;GAAK,GAAI;aACR,qBAAC;IACC,UAAU,KAAK,cAAc,EAAE,eAC7B,gBAAgB,YAAY;AAC1B,WAAM,WAAW,SAAS,cAAc;MACtC;MACA;MACA;MACA,cAAc;OACZ,iBAAiB;AACf,cAAM,QAAQ,kCAAkC,EAC9C,aAAa,sCACd,CAAC;AACF,eAAO,QAAQ,cAAc;;OAE/B,UAAU,EAAE,YAAY;AACtB,gBAAQ,MAAM,WAAW,MAAM;AAC/B,cAAM,MAAM,uBAAuB;;OAEtC;MACF,CAAC;MACF,CACH;IACD,WAAU;eAEV,qBAAC;KAAI,WAAU;gBACb,oBAAC;MACC,SAAS,KAAK;MACd,MAAK;MACL,SAAS,EAAE,YACT,qBAAC;OACC,oBAAC,uBAAU,eAAsB;OACjC,oBAAC,yBACC,qBAAC;QAAI,WAAU;mBACb,oBAAC;SACC,MAAM,eAAe,SAAS;SAC9B,aAAY;SACZ,GAAI;UACJ,EACF,oBAAC;SACC,MAAK;SACL,SAAQ;SACR,MAAK;SACL,WAAU;SACV,eAAe,gBAAgB,CAAC,aAAa;SAC7C,UAAU,KAAK,UAAU;mBAExB,eACC,oBAAC,UAAO,WAAU,kCAAkC,GAEpD,oBAAC,OAAI,WAAU,kCAAkC;UAE5C;SACL,GACM;OACd,oBAAC,gBAAc;UACN;OAEb,EAEF,oBAAC;MACC,SAAS,KAAK;MACd,MAAK;MACL,SAAS,EAAE,YACT,qBAAC;OACC,oBAAC,uBAAU,uBAA8B;OACzC,oBAAC,yBACC,qBAAC;QAAI,WAAU;mBACb,oBAAC;SACC,MAAM,sBAAsB,SAAS;SACrC,aAAY;SACZ,GAAI;UACJ,EACF,oBAAC;SACC,MAAK;SACL,SAAQ;SACR,MAAK;SACL,WAAU;SACV,eAAe,uBAAuB,CAAC,oBAAoB;SAC3D,UAAU,KAAK,UAAU;mBAExB,sBACC,oBAAC,UAAO,WAAU,kCAAkC,GAEpD,oBAAC,OAAI,WAAU,kCAAkC;UAE5C;SACL,GACM;OACd,oBAAC,gBAAc;UACN;OAEb;MACE,EAEN,qBAAC;KAAO,UAAU,KAAK,UAAU;KAAU,WAAU;gBAClD,aAAa,oBAAC,MAAM,WAAQ,WAAU,8BAA8B,EAAC;MAE/D;KACJ;IACF;GACH"}
1
+ {"version":3,"file":"reset-password-page.client.mjs","names":["Form"],"sources":["../../../../src/modules/auth/components/reset-password-page.client.tsx"],"sourcesContent":["\"use client\";\n\nimport { standardSchemaResolver } from \"@hookform/resolvers/standard-schema\";\nimport { Eye, EyeOff } from \"lucide-react\";\nimport { useRouter } from \"next/navigation\";\nimport React, { use, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { toast } from \"sonner\";\nimport type * as z from \"zod\";\nimport { Icons } from \"@/components/common/icons\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/components/ui/form.client\";\nimport { Input } from \"@/components/ui/input\";\nimport { useAuthClient } from \"../hooks/use-auth-client\";\nimport { resetPasswordSchema } from \"../lib/validators\";\n\nexport function ResetPasswordPage(params: {\n searchParams: Promise<{ email: string; otp: string }>;\n}) {\n const { email, otp } = use(params.searchParams);\n\n const router = useRouter();\n const authClient = useAuthClient();\n\n const [showPassword, setShowPassword] = useState(false);\n const [showPasswordConfirm, setShowPasswordConfirm] = useState(false);\n\n const [isPending, startTransition] = React.useTransition();\n\n const form = useForm<z.infer<typeof resetPasswordSchema>>({\n resolver: standardSchemaResolver(resetPasswordSchema),\n disabled: isPending,\n });\n\n return (\n <div className=\"mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]\">\n <div className=\"flex flex-col space-y-2 text-center\">\n <h1 className=\"font-semibold text-3xl tracking-tight\">Wachtwoord herstellen</h1>\n <p className=\"text-muted-foreground text-sm\">Vul je nieuwe wachtwoord in</p>\n </div>\n\n <Form {...form}>\n <form\n onSubmit={form.handleSubmit(({ password }) =>\n startTransition(async () => {\n await authClient.emailOtp.resetPassword({\n email,\n otp,\n password,\n fetchOptions: {\n onSuccess: () => {\n toast.success(\"Wachtwoord succesvol gewijzigd\", {\n description: \"Log nu in met je nieuw wachtwoord.\",\n });\n router.replace(\"/auth/login\");\n },\n onError: ({ error }) => {\n console.error(\"Error: \", error);\n toast.error(\"Er is iets misgegaan\");\n },\n },\n });\n }),\n )}\n className=\"space-y-6\"\n >\n <div className=\"flex flex-col gap-3\">\n <FormField\n control={form.control}\n name=\"password\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Wachtwoord</FormLabel>\n <FormControl>\n <div className=\"relative\">\n <Input\n type={showPassword ? \"text\" : \"password\"}\n placeholder=\"********\"\n {...field}\n />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"absolute top-0 right-0 h-full px-3 py-2 hover:bg-transparent\"\n onClick={() => setShowPassword(!showPassword)}\n disabled={form.formState.disabled}\n >\n {showPassword ? (\n <EyeOff className=\"h-4 w-4 text-muted-foreground\" />\n ) : (\n <Eye className=\"h-4 w-4 text-muted-foreground\" />\n )}\n </Button>\n </div>\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <FormField\n control={form.control}\n name=\"passwordConfirmation\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Herhaal Wachtwoord</FormLabel>\n <FormControl>\n <div className=\"relative\">\n <Input\n type={showPasswordConfirm ? \"text\" : \"password\"}\n placeholder=\"********\"\n {...field}\n />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"absolute top-0 right-0 h-full px-3 py-2 hover:bg-transparent\"\n onClick={() => setShowPasswordConfirm(!showPasswordConfirm)}\n disabled={form.formState.disabled}\n >\n {showPasswordConfirm ? (\n <EyeOff className=\"h-4 w-4 text-muted-foreground\" />\n ) : (\n <Eye className=\"h-4 w-4 text-muted-foreground\" />\n )}\n </Button>\n </div>\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n\n <Button disabled={form.formState.disabled} className=\"w-full\">\n {isPending && <Icons.spinner className=\"mr-2 h-4 w-4 animate-spin\" />}\n Verzenden\n </Button>\n </form>\n </Form>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,SAAgB,kBAAkB,QAE/B;CACD,MAAM,EAAE,OAAO,QAAQ,IAAI,OAAO,aAAa;CAE/C,MAAM,SAAS,WAAW;CAC1B,MAAM,aAAa,eAAe;CAElC,MAAM,CAAC,cAAc,mBAAmB,SAAS,MAAM;CACvD,MAAM,CAAC,qBAAqB,0BAA0B,SAAS,MAAM;CAErE,MAAM,CAAC,WAAW,mBAAmB,MAAM,eAAe;CAE1D,MAAM,OAAO,QAA6C;EACxD,UAAU,uBAAuB,oBAAoB;EACrD,UAAU;EACX,CAAC;AAEF,QACE,qBAAC;EAAI,WAAU;aACb,qBAAC;GAAI,WAAU;cACb,oBAAC;IAAG,WAAU;cAAwC;KAA0B,EAChF,oBAAC;IAAE,WAAU;cAAgC;KAA+B;IACxE,EAEN,oBAACA;GAAK,GAAI;aACR,qBAAC;IACC,UAAU,KAAK,cAAc,EAAE,eAC7B,gBAAgB,YAAY;AAC1B,WAAM,WAAW,SAAS,cAAc;MACtC;MACA;MACA;MACA,cAAc;OACZ,iBAAiB;AACf,cAAM,QAAQ,kCAAkC,EAC9C,aAAa,sCACd,CAAC;AACF,eAAO,QAAQ,cAAc;;OAE/B,UAAU,EAAE,YAAY;AACtB,gBAAQ,MAAM,WAAW,MAAM;AAC/B,cAAM,MAAM,uBAAuB;;OAEtC;MACF,CAAC;MACF,CACH;IACD,WAAU;eAEV,qBAAC;KAAI,WAAU;gBACb,oBAAC;MACC,SAAS,KAAK;MACd,MAAK;MACL,SAAS,EAAE,YACT,qBAAC;OACC,oBAAC,uBAAU,eAAsB;OACjC,oBAAC,yBACC,qBAAC;QAAI,WAAU;mBACb,oBAAC;SACC,MAAM,eAAe,SAAS;SAC9B,aAAY;SACZ,GAAI;UACJ,EACF,oBAAC;SACC,MAAK;SACL,SAAQ;SACR,MAAK;SACL,WAAU;SACV,eAAe,gBAAgB,CAAC,aAAa;SAC7C,UAAU,KAAK,UAAU;mBAExB,eACC,oBAAC,UAAO,WAAU,kCAAkC,GAEpD,oBAAC,OAAI,WAAU,kCAAkC;UAE5C;SACL,GACM;OACd,oBAAC,gBAAc;UACN;OAEb,EAEF,oBAAC;MACC,SAAS,KAAK;MACd,MAAK;MACL,SAAS,EAAE,YACT,qBAAC;OACC,oBAAC,uBAAU,uBAA8B;OACzC,oBAAC,yBACC,qBAAC;QAAI,WAAU;mBACb,oBAAC;SACC,MAAM,sBAAsB,SAAS;SACrC,aAAY;SACZ,GAAI;UACJ,EACF,oBAAC;SACC,MAAK;SACL,SAAQ;SACR,MAAK;SACL,WAAU;SACV,eAAe,uBAAuB,CAAC,oBAAoB;SAC3D,UAAU,KAAK,UAAU;mBAExB,sBACC,oBAAC,UAAO,WAAU,kCAAkC,GAEpD,oBAAC,OAAI,WAAU,kCAAkC;UAE5C;SACL,GACM;OACd,oBAAC,gBAAc;UACN;OAEb;MACE,EAEN,qBAAC;KAAO,UAAU,KAAK,UAAU;KAAU,WAAU;gBAClD,aAAa,oBAAC,MAAM,WAAQ,WAAU,8BAA8B,EAAC;MAE/D;KACJ;IACF;GACH"}
@@ -1,5 +1,5 @@
1
- import * as drizzle_orm0 from "drizzle-orm";
2
1
  import * as drizzle_orm_pg_core0 from "drizzle-orm/pg-core";
2
+ import * as drizzle_orm0 from "drizzle-orm";
3
3
 
4
4
  //#region src/modules/auth/db/schema.d.ts
5
5
  /**
@@ -1,6 +1,6 @@
1
- import { baseColumns } from "../../config/db/helpers.mjs";
2
- import { relations, sql } from "drizzle-orm";
1
+ import { baseColumns } from "../../database/lib/helpers.mjs";
3
2
  import { pgTable } from "drizzle-orm/pg-core";
3
+ import { relations, sql } from "drizzle-orm";
4
4
 
5
5
  //#region src/modules/auth/db/schema.ts
6
6
  /**