@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
@@ -0,0 +1,75 @@
1
+ import { z as z$1 } from "zod";
2
+ import { Readable } from "node:stream";
3
+
4
+ //#region src/modules/storage/providers/lib/validators.ts
5
+ /**
6
+ * Object body schema
7
+ */
8
+ const objectBodyInputSchema = z$1.union([
9
+ z$1.string(),
10
+ z$1.instanceof(Uint8Array),
11
+ z$1.instanceof(Buffer),
12
+ z$1.instanceof(Readable)
13
+ ]);
14
+ /**
15
+ * Object body output schema (normalized)
16
+ */
17
+ const objectBodyOutputSchema = z$1.instanceof(Readable);
18
+ /**
19
+ * Object schema
20
+ */
21
+ const objectSchema = z$1.object({
22
+ contentType: z$1.string().nullable().optional(),
23
+ size: z$1.number().nullable().optional(),
24
+ metadata: z$1.record(z$1.string(), z$1.string()).optional()
25
+ });
26
+ /**
27
+ * Get object input
28
+ */
29
+ const getObjectInputSchema = z$1.string();
30
+ /**
31
+ * Get object options schema
32
+ */
33
+ const getObjectOptionsDefaults = { disposition: "inline" };
34
+ const getObjectOptionsSchema = z$1.object({ disposition: z$1.string().optional().default(getObjectOptionsDefaults.disposition) });
35
+ /**
36
+ * Get object URL input
37
+ */
38
+ const getObjectURLOptionsSchema = getObjectOptionsSchema.extend({ expiresIn: z$1.number().optional().default(3600 * 24) });
39
+ /**
40
+ * Get object output
41
+ */
42
+ const getObjectOutputSchema = objectSchema.extend({ body: objectBodyOutputSchema });
43
+ /**
44
+ * Get object head input
45
+ */
46
+ const headObjectInputSchema = z$1.object({ key: z$1.string() });
47
+ /**
48
+ * Head object output
49
+ */
50
+ const headObjectOutputSchema = objectSchema;
51
+ /**
52
+ * Put object URL input
53
+ */
54
+ const putObjectURLInputSchema = z$1.object({
55
+ key: z$1.string(),
56
+ contentType: z$1.string().nullable().optional(),
57
+ size: z$1.number().nullable().optional(),
58
+ metadata: z$1.record(z$1.string(), z$1.string()).optional()
59
+ });
60
+ /**
61
+ * Put object URL input
62
+ */
63
+ const putObjectURLOptionsSchema = z$1.object({ expiresIn: z$1.number().optional().default(3600) });
64
+ /**
65
+ * Put object input
66
+ */
67
+ const putObjectInputSchema = putObjectURLInputSchema.extend({ body: objectBodyInputSchema });
68
+ /**
69
+ * Put object schema
70
+ */
71
+ const putObjectOutputSchema = objectSchema;
72
+
73
+ //#endregion
74
+ export { getObjectInputSchema, getObjectOptionsDefaults, getObjectOptionsSchema, getObjectOutputSchema, getObjectURLOptionsSchema, headObjectInputSchema, headObjectOutputSchema, objectBodyInputSchema, objectBodyOutputSchema, objectSchema, putObjectInputSchema, putObjectOutputSchema, putObjectURLInputSchema, putObjectURLOptionsSchema };
75
+ //# sourceMappingURL=validators.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.mjs","names":["z"],"sources":["../../../../../src/modules/storage/providers/lib/validators.ts"],"sourcesContent":["import { Readable } from \"node:stream\";\nimport { z } from \"zod\";\n\n/**\n * Object body schema\n */\nexport const objectBodyInputSchema = z.union([\n z.string(),\n z.instanceof(Uint8Array),\n z.instanceof(Buffer),\n z.instanceof(Readable),\n]);\n\nexport type ObjectBodyInput = z.infer<typeof objectBodyInputSchema>;\n\n/**\n * Object body output schema (normalized)\n */\nexport const objectBodyOutputSchema = z.instanceof(Readable);\n\nexport type ObjectBodyOutput = z.infer<typeof objectBodyOutputSchema>;\n\n/**\n * Object schema\n */\nexport const objectSchema = z.object({\n contentType: z.string().nullable().optional(),\n size: z.number().nullable().optional(),\n metadata: z.record(z.string(), z.string()).optional(),\n});\n\nexport type ObjectSchema = z.infer<typeof objectSchema>;\n\n/**\n * Get object input\n */\nexport const getObjectInputSchema = z.string();\nexport type GetObjectInput = z.input<typeof getObjectInputSchema>;\n\n/**\n * Get object options schema\n */\nexport const getObjectOptionsDefaults = { disposition: \"inline\" } as const;\n\nexport const getObjectOptionsSchema = z.object({\n disposition: z.string().optional().default(getObjectOptionsDefaults.disposition),\n});\n\nexport type GetObjectOptions = z.input<typeof getObjectOptionsSchema>;\n\n/**\n * Get object URL input\n */\nexport const getObjectURLOptionsSchema = getObjectOptionsSchema.extend({\n expiresIn: z\n .number()\n .optional()\n .default(3600 * 24),\n});\n\nexport type GetObjectURLOptions = z.input<typeof getObjectURLOptionsSchema>;\n\n/**\n * Get object output\n */\nexport const getObjectOutputSchema = objectSchema.extend({\n body: objectBodyOutputSchema,\n});\n\nexport type GetObjectOutput = z.infer<typeof getObjectOutputSchema>;\n\n/**\n * Get object head input\n */\nexport const headObjectInputSchema = z.object({\n key: z.string(),\n});\n\nexport type HeadObjectInput = z.input<typeof headObjectInputSchema>;\n\n/**\n * Head object output\n */\nexport const headObjectOutputSchema = objectSchema;\n\nexport type HeadObjectOutput = z.infer<typeof headObjectOutputSchema>;\n\n/**\n * Put object URL input\n */\nexport const putObjectURLInputSchema = z.object({\n key: z.string(),\n contentType: z.string().nullable().optional(),\n size: z.number().nullable().optional(),\n metadata: z.record(z.string(), z.string()).optional(),\n});\n\nexport type PutObjectURLInput = z.input<typeof putObjectURLInputSchema>;\n\n/**\n * Put object URL input\n */\nexport const putObjectURLOptionsSchema = z.object({\n expiresIn: z.number().optional().default(3600),\n});\n\nexport type PutObjectURLOptions = z.input<typeof putObjectURLOptionsSchema>;\n\n/**\n * Put object input\n */\nexport const putObjectInputSchema = putObjectURLInputSchema.extend({\n body: objectBodyInputSchema,\n});\n\nexport type PutObjectInput = z.input<typeof putObjectInputSchema>;\n\n/**\n * Put object schema\n */\nexport const putObjectOutputSchema = objectSchema;\nexport type PutObjectOutput = z.infer<typeof putObjectOutputSchema>;\n"],"mappings":";;;;;;;AAMA,MAAa,wBAAwBA,IAAE,MAAM;CAC3CA,IAAE,QAAQ;CACVA,IAAE,WAAW,WAAW;CACxBA,IAAE,WAAW,OAAO;CACpBA,IAAE,WAAW,SAAS;CACvB,CAAC;;;;AAOF,MAAa,yBAAyBA,IAAE,WAAW,SAAS;;;;AAO5D,MAAa,eAAeA,IAAE,OAAO;CACnC,aAAaA,IAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC7C,MAAMA,IAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CACtC,UAAUA,IAAE,OAAOA,IAAE,QAAQ,EAAEA,IAAE,QAAQ,CAAC,CAAC,UAAU;CACtD,CAAC;;;;AAOF,MAAa,uBAAuBA,IAAE,QAAQ;;;;AAM9C,MAAa,2BAA2B,EAAE,aAAa,UAAU;AAEjE,MAAa,yBAAyBA,IAAE,OAAO,EAC7C,aAAaA,IAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,yBAAyB,YAAY,EACjF,CAAC;;;;AAOF,MAAa,4BAA4B,uBAAuB,OAAO,EACrE,WAAWA,IACR,QAAQ,CACR,UAAU,CACV,QAAQ,OAAO,GAAG,EACtB,CAAC;;;;AAOF,MAAa,wBAAwB,aAAa,OAAO,EACvD,MAAM,wBACP,CAAC;;;;AAOF,MAAa,wBAAwBA,IAAE,OAAO,EAC5C,KAAKA,IAAE,QAAQ,EAChB,CAAC;;;;AAOF,MAAa,yBAAyB;;;;AAOtC,MAAa,0BAA0BA,IAAE,OAAO;CAC9C,KAAKA,IAAE,QAAQ;CACf,aAAaA,IAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC7C,MAAMA,IAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CACtC,UAAUA,IAAE,OAAOA,IAAE,QAAQ,EAAEA,IAAE,QAAQ,CAAC,CAAC,UAAU;CACtD,CAAC;;;;AAOF,MAAa,4BAA4BA,IAAE,OAAO,EAChD,WAAWA,IAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,KAAK,EAC/C,CAAC;;;;AAOF,MAAa,uBAAuB,wBAAwB,OAAO,EACjE,MAAM,uBACP,CAAC;;;;AAOF,MAAa,wBAAwB"}
@@ -1,7 +1,7 @@
1
- import { RouterClient, registerRouterClient } from "../modules/router/handler/register.server.mjs";
2
1
  import { createRPCCaller } from "../modules/router/handler/caller.server.mjs";
3
2
  import { ProtectedRPCContext, RPCContext, createRPCContext } from "../modules/router/handler/context.server.mjs";
4
3
  import { initRPC } from "../modules/router/handler/init.server.mjs";
4
+ import { RouterClient, registerRouterClient } from "../modules/router/handler/register.server.mjs";
5
5
  import { handleRPCRoute } from "../modules/router/handler/route.server.mjs";
6
6
  import { ServerError } from "../modules/router/lib/error.server.mjs";
7
7
  import { HydrateClient, getQueryClient } from "../modules/router/lib/query-client.server.mjs";
@@ -1,7 +1,9 @@
1
+ import { PrepareUploadInput, UploadClient, UploadFileRequest, UploadHooks, createUploadClient } from "../modules/storage/lib/upload.client.mjs";
1
2
  import { Dropzone, DropzoneContent, DropzoneContentProps, DropzoneEmptyState, DropzoneEmptyStateProps, DropzoneProps } from "../modules/storage/components/dropzone.client.mjs";
2
3
  import { DropzoneContext, useDropzoneContext } from "../modules/storage/components/dropzone-context.client.mjs";
4
+ import { StorageImage } from "../modules/storage/components/image.client.mjs";
3
5
  import { ImageGrid, ImageGridSkeleton } from "../modules/storage/components/image-grid.client.mjs";
4
- import { PrepareUploadInput, UploadClient, UploadFileRequest, UploadHooks, createUploadClient } from "../modules/storage/lib/create-upload.client.mjs";
6
+ import { UploadButton } from "../modules/storage/components/upload-button.client.mjs";
5
7
  import { UploadZoneContext, UploadZoneContextValue, useUploadZone } from "../modules/storage/components/upload-zone-context.client.mjs";
6
8
  import { UploadZone, UploadZoneProps } from "../modules/storage/components/upload-zone.client.mjs";
7
- export { Dropzone, DropzoneContent, DropzoneContentProps, DropzoneContext, DropzoneEmptyState, DropzoneEmptyStateProps, DropzoneProps, ImageGrid, ImageGridSkeleton, PrepareUploadInput, UploadClient, UploadFileRequest, UploadHooks, UploadZone, UploadZoneContext, UploadZoneContextValue, UploadZoneProps, createUploadClient, useDropzoneContext, useUploadZone };
9
+ export { Dropzone, DropzoneContent, DropzoneContentProps, DropzoneContext, DropzoneEmptyState, DropzoneEmptyStateProps, DropzoneProps, ImageGrid, ImageGridSkeleton, PrepareUploadInput, StorageImage, UploadButton, UploadClient, UploadFileRequest, UploadHooks, UploadZone, UploadZoneContext, UploadZoneContextValue, UploadZoneProps, createUploadClient, useDropzoneContext, useUploadZone };
@@ -1,8 +1,10 @@
1
1
  import { DropzoneContext, useDropzoneContext } from "../modules/storage/components/dropzone-context.client.mjs";
2
2
  import { Dropzone, DropzoneContent, DropzoneEmptyState } from "../modules/storage/components/dropzone.client.mjs";
3
+ import { StorageImage } from "../modules/storage/components/image.client.mjs";
3
4
  import { UploadZoneContext, useUploadZone } from "../modules/storage/components/upload-zone-context.client.mjs";
4
5
  import { ImageGrid, ImageGridSkeleton } from "../modules/storage/components/image-grid.client.mjs";
6
+ import { UploadButton } from "../modules/storage/components/upload-button.client.mjs";
5
7
  import { UploadZone } from "../modules/storage/components/upload-zone.client.mjs";
6
- import { createUploadClient } from "../modules/storage/lib/create-upload.client.mjs";
8
+ import { createUploadClient } from "../modules/storage/lib/upload.client.mjs";
7
9
 
8
- export { Dropzone, DropzoneContent, DropzoneContext, DropzoneEmptyState, ImageGrid, ImageGridSkeleton, UploadZone, UploadZoneContext, createUploadClient, useDropzoneContext, useUploadZone };
10
+ export { Dropzone, DropzoneContent, DropzoneContext, DropzoneEmptyState, ImageGrid, ImageGridSkeleton, StorageImage, UploadButton, UploadZone, UploadZoneContext, createUploadClient, useDropzoneContext, useUploadZone };
@@ -1,4 +1,5 @@
1
- import { StorageClient, createStorageClient } from "../modules/storage/lib/create-client.server.mjs";
2
- import { createDriveProxyRoute } from "../modules/storage/lib/proxy.server.mjs";
3
- import { createDriveBaseProcedures } from "../modules/storage/lib/router.server.mjs";
4
- export { StorageClient, createDriveBaseProcedures, createDriveProxyRoute, createStorageClient };
1
+ import { Storage, StorageConfig } from "../modules/storage/lib/service.server.mjs";
2
+ import { createStorageRouteHandler } from "../modules/storage/lib/router-handlers.server.mjs";
3
+ import { StorageS3AdapterConfig, storageS3Adapter } from "../modules/storage/providers/adapters/s3.server.mjs";
4
+ import { StorageRouter, StorageRouterInputs, StorageRouterOutputs, createStorageProcedures } from "../modules/storage/lib/procedures.server.mjs";
5
+ export { Storage, StorageConfig, StorageRouter, StorageRouterInputs, StorageRouterOutputs, StorageS3AdapterConfig, createStorageProcedures, createStorageRouteHandler, storageS3Adapter };
@@ -1,5 +1,6 @@
1
- import { createStorageClient } from "../modules/storage/lib/create-client.server.mjs";
2
- import { createDriveProxyRoute } from "../modules/storage/lib/proxy.server.mjs";
3
- import { createDriveBaseProcedures } from "../modules/storage/lib/router.server.mjs";
1
+ import { createStorageProcedures } from "../modules/storage/lib/procedures.server.mjs";
2
+ import { createStorageRouteHandler } from "../modules/storage/lib/router-handlers.server.mjs";
3
+ import { Storage } from "../modules/storage/lib/service.server.mjs";
4
+ import { storageS3Adapter } from "../modules/storage/providers/adapters/s3.server.mjs";
4
5
 
5
- export { createDriveBaseProcedures, createDriveProxyRoute, createStorageClient };
6
+ export { Storage, createStorageProcedures, createStorageRouteHandler, storageS3Adapter };
@@ -1,6 +1,9 @@
1
- import { nodesTableFilters } from "./modules/storage/config/filters.mjs";
2
- import { ImageDisposition, ImageVariant, deviceSizes, imageDispositions, imageSizes, imageVariants } from "./modules/storage/lib/constants.mjs";
3
- import { DriveSchema, nodeModeEnum, nodePresignedUrls, nodePresignedUrlsRelations, nodeTypeEnum, nodeVariants, nodeVariantsRelations, nodes, nodesRelations } from "./modules/storage/lib/schema.mjs";
4
- import { CreateFolderNodeSchema, CreateNodeInput, CreateNodeSchema, FileNode, FolderNode, GetFileURLSchema, GetFileUrlInput, GetNodesByParentIdInput, GetObjectInput, GetObjectSchema, Node, NodeMode, NodesTableFilters, PresignFileSchema, PutObjectInput, PutObjectSchema, SelectNodeSchema, SelectNodeWithChildrenSchema, UpdateNodeInput, UpdateNodeSchema, UploadFileSchema, createFolderNodeSchema, createNodeSchema, getFileURLSchema, getFileURLSchemaDefaults, getNodesByParentIdSchema, getObjectSchema, nodeModeSchema, nodesTableFiltersSchema, presignFileSchema, putObjectSchema, selectNodeSchema, selectNodeWithChildrenSchema, updateNodeSchema, uploadFileSchema } from "./modules/storage/lib/validators.mjs";
5
- import { NodeSubtype, getDriveBucketKey, getFileUrl, imageLoader, inferNodeSubtype, isFile, isFolder, nodeSubtypes, renderBytes } from "./modules/storage/lib/helpers.mjs";
6
- export { CreateFolderNodeSchema, CreateNodeInput, CreateNodeSchema, DriveSchema, FileNode, FolderNode, GetFileURLSchema, GetFileUrlInput, GetNodesByParentIdInput, GetObjectInput, GetObjectSchema, ImageDisposition, ImageVariant, Node, NodeMode, NodeSubtype, NodesTableFilters, PresignFileSchema, PutObjectInput, PutObjectSchema, SelectNodeSchema, SelectNodeWithChildrenSchema, UpdateNodeInput, UpdateNodeSchema, UploadFileSchema, createFolderNodeSchema, createNodeSchema, deviceSizes, getDriveBucketKey, getFileURLSchema, getFileURLSchemaDefaults, getFileUrl, getNodesByParentIdSchema, getObjectSchema, imageDispositions, imageLoader, imageSizes, imageVariants, inferNodeSubtype, isFile, isFolder, nodeModeEnum, nodeModeSchema, nodePresignedUrls, nodePresignedUrlsRelations, nodeSubtypes, nodeTypeEnum, nodeVariants, nodeVariantsRelations, nodes, nodesRelations, nodesTableFilters, nodesTableFiltersSchema, presignFileSchema, putObjectSchema, renderBytes, selectNodeSchema, selectNodeWithChildrenSchema, updateNodeSchema, uploadFileSchema };
1
+ import { StorageProvider, storageProviders } from "./modules/storage/providers/lib/constants.mjs";
2
+ import { GetObjectInput, GetObjectOptions, GetObjectOutput, GetObjectURLOptions, HeadObjectInput, HeadObjectOutput, ObjectBodyInput, ObjectBodyOutput, ObjectSchema, PutObjectInput, PutObjectOutput, PutObjectURLInput, PutObjectURLOptions, getObjectInputSchema, getObjectOptionsDefaults, getObjectOptionsSchema, getObjectOutputSchema, getObjectURLOptionsSchema, headObjectInputSchema, headObjectOutputSchema, objectBodyInputSchema, objectBodyOutputSchema, objectSchema, putObjectInputSchema, putObjectOutputSchema, putObjectURLInputSchema, putObjectURLOptionsSchema } from "./modules/storage/providers/lib/validators.mjs";
3
+ import { StorageAdapter } from "./modules/storage/providers/lib/types.mjs";
4
+ import { storageAssetStatusEnum, storageAssetVisibilityEnum, storageAssets } from "./modules/storage/lib/schema.mjs";
5
+ import { ConfirmUploadInput, CreateStorageAssetInput, CreateStorageAssetSchema, GetAssetURLInput, GetAssetURLSchema, PresignUploadInput, PresignUploadOutput, SelectStorageAssetSchema, StorageAsset, StorageAssetVisibility, UpdateStorageAssetInput, UpdateStorageAssetSchema, UploadInput, confirmUploadInputSchema, createStorageAssetSchema, getAssetURLSchema, presignUploadInputSchema, presignUploadOutputSchema, selectStorageAssetSchema, storageAssetVisibilitySchema, updateStorageAssetSchema, uploadInputSchema } from "./modules/storage/lib/validators.mjs";
6
+ import { ImageDisposition, imageDispositions } from "./modules/storage/lib/constants.mjs";
7
+ import { getAssetURL, imageLoader, renderBytes } from "./modules/storage/lib/helpers.mjs";
8
+ import { StorageAdapterError, StorageAdapterErrorCode } from "./modules/storage/providers/lib/errors.mjs";
9
+ export { ConfirmUploadInput, CreateStorageAssetInput, CreateStorageAssetSchema, GetAssetURLInput, GetAssetURLSchema, GetObjectInput, GetObjectOptions, GetObjectOutput, GetObjectURLOptions, HeadObjectInput, HeadObjectOutput, ImageDisposition, ObjectBodyInput, ObjectBodyOutput, ObjectSchema, PresignUploadInput, PresignUploadOutput, PutObjectInput, PutObjectOutput, PutObjectURLInput, PutObjectURLOptions, SelectStorageAssetSchema, StorageAdapter, StorageAdapterError, StorageAdapterErrorCode, StorageAsset, StorageAssetVisibility, StorageProvider, UpdateStorageAssetInput, UpdateStorageAssetSchema, UploadInput, confirmUploadInputSchema, createStorageAssetSchema, getAssetURL, getAssetURLSchema, getObjectInputSchema, getObjectOptionsDefaults, getObjectOptionsSchema, getObjectOutputSchema, getObjectURLOptionsSchema, headObjectInputSchema, headObjectOutputSchema, imageDispositions, imageLoader, objectBodyInputSchema, objectBodyOutputSchema, objectSchema, presignUploadInputSchema, presignUploadOutputSchema, putObjectInputSchema, putObjectOutputSchema, putObjectURLInputSchema, putObjectURLOptionsSchema, renderBytes, selectStorageAssetSchema, storageAssetStatusEnum, storageAssetVisibilityEnum, storageAssetVisibilitySchema, storageAssets, storageProviders, updateStorageAssetSchema, uploadInputSchema };
package/dist/storage.mjs CHANGED
@@ -1,7 +1,9 @@
1
- import { getDriveBucketKey, getFileUrl, imageLoader, inferNodeSubtype, isFile, isFolder, nodeSubtypes, renderBytes } from "./modules/storage/lib/helpers.mjs";
2
- import { deviceSizes, imageDispositions, imageSizes, imageVariants } from "./modules/storage/lib/constants.mjs";
3
- import { nodeModeEnum, nodePresignedUrls, nodePresignedUrlsRelations, nodeTypeEnum, nodeVariants, nodeVariantsRelations, nodes, nodesRelations } from "./modules/storage/lib/schema.mjs";
4
- import { nodesTableFilters } from "./modules/storage/config/filters.mjs";
5
- import { createFolderNodeSchema, createNodeSchema, getFileURLSchema, getFileURLSchemaDefaults, getNodesByParentIdSchema, getObjectSchema, nodeModeSchema, nodesTableFiltersSchema, presignFileSchema, putObjectSchema, selectNodeSchema, selectNodeWithChildrenSchema, updateNodeSchema, uploadFileSchema } from "./modules/storage/lib/validators.mjs";
1
+ import { imageDispositions } from "./modules/storage/lib/constants.mjs";
2
+ import { getAssetURL, imageLoader, renderBytes } from "./modules/storage/lib/helpers.mjs";
3
+ import { storageProviders } from "./modules/storage/providers/lib/constants.mjs";
4
+ import { storageAssetStatusEnum, storageAssetVisibilityEnum, storageAssets } from "./modules/storage/lib/schema.mjs";
5
+ import { getObjectInputSchema, getObjectOptionsDefaults, getObjectOptionsSchema, getObjectOutputSchema, getObjectURLOptionsSchema, headObjectInputSchema, headObjectOutputSchema, objectBodyInputSchema, objectBodyOutputSchema, objectSchema, putObjectInputSchema, putObjectOutputSchema, putObjectURLInputSchema, putObjectURLOptionsSchema } from "./modules/storage/providers/lib/validators.mjs";
6
+ import { confirmUploadInputSchema, createStorageAssetSchema, getAssetURLSchema, presignUploadInputSchema, presignUploadOutputSchema, selectStorageAssetSchema, storageAssetVisibilitySchema, updateStorageAssetSchema, uploadInputSchema } from "./modules/storage/lib/validators.mjs";
7
+ import { StorageAdapterError } from "./modules/storage/providers/lib/errors.mjs";
6
8
 
7
- export { createFolderNodeSchema, createNodeSchema, deviceSizes, getDriveBucketKey, getFileURLSchema, getFileURLSchemaDefaults, getFileUrl, getNodesByParentIdSchema, getObjectSchema, imageDispositions, imageLoader, imageSizes, imageVariants, inferNodeSubtype, isFile, isFolder, nodeModeEnum, nodeModeSchema, nodePresignedUrls, nodePresignedUrlsRelations, nodeSubtypes, nodeTypeEnum, nodeVariants, nodeVariantsRelations, nodes, nodesRelations, nodesTableFilters, nodesTableFiltersSchema, presignFileSchema, putObjectSchema, renderBytes, selectNodeSchema, selectNodeWithChildrenSchema, updateNodeSchema, uploadFileSchema };
9
+ export { StorageAdapterError, confirmUploadInputSchema, createStorageAssetSchema, getAssetURL, getAssetURLSchema, getObjectInputSchema, getObjectOptionsDefaults, getObjectOptionsSchema, getObjectOutputSchema, getObjectURLOptionsSchema, headObjectInputSchema, headObjectOutputSchema, imageDispositions, imageLoader, objectBodyInputSchema, objectBodyOutputSchema, objectSchema, presignUploadInputSchema, presignUploadOutputSchema, putObjectInputSchema, putObjectOutputSchema, putObjectURLInputSchema, putObjectURLOptionsSchema, renderBytes, selectStorageAssetSchema, storageAssetStatusEnum, storageAssetVisibilityEnum, storageAssetVisibilitySchema, storageAssets, storageProviders, updateStorageAssetSchema, uploadInputSchema };
package/package.json CHANGED
@@ -1,18 +1,22 @@
1
1
  {
2
2
  "name": "@tulip-systems/core",
3
- "version": "0.6.1",
3
+ "version": "0.8.0",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
- "license": "MIT",
6
+ "license": "AGPL-3.0",
7
7
  "devDependencies": {
8
+ "@types/markdown-it": "^14.1.2",
8
9
  "@types/pg": "^8.16.0",
9
10
  "@types/react": "19.2.14",
10
11
  "@types/react-dom": "19.2.3",
12
+ "aws-sdk-client-mock": "^4.1.0",
13
+ "aws-sdk-client-mock-vitest": "^7.0.1",
11
14
  "tailwindcss": "^4.2.0",
12
15
  "tsdown": "^0.20.3",
13
16
  "tw-animate-css": "^1.4.0",
14
17
  "typescript": "5.9.3",
15
18
  "vite": "^7.3.1",
19
+ "vitest": "^4.1.0",
16
20
  "@tulip-systems/typescript-config": "0.0.0"
17
21
  },
18
22
  "dependencies": {
@@ -27,34 +31,7 @@
27
31
  "@orpc/contract": "^1.13.5",
28
32
  "@orpc/server": "^1.13.5",
29
33
  "@orpc/tanstack-query": "^1.13.5",
30
- "@radix-ui/react-accordion": "^1.2.12",
31
- "@radix-ui/react-alert-dialog": "^1.1.15",
32
- "@radix-ui/react-aspect-ratio": "^1.1.8",
33
- "@radix-ui/react-avatar": "^1.1.11",
34
- "@radix-ui/react-checkbox": "^1.3.3",
35
- "@radix-ui/react-collapsible": "^1.1.12",
36
- "@radix-ui/react-context-menu": "^2.2.16",
37
- "@radix-ui/react-dialog": "^1.1.15",
38
- "@radix-ui/react-dropdown-menu": "^2.1.16",
39
- "@radix-ui/react-hover-card": "^1.1.15",
40
- "@radix-ui/react-label": "^2.1.8",
41
- "@radix-ui/react-menubar": "^1.1.16",
42
- "@radix-ui/react-navigation-menu": "^1.2.14",
43
- "@radix-ui/react-popover": "^1.1.15",
44
- "@radix-ui/react-progress": "^1.1.8",
45
- "@radix-ui/react-radio-group": "^1.3.8",
46
- "@radix-ui/react-scroll-area": "^1.2.10",
47
- "@radix-ui/react-select": "^2.2.6",
48
- "@radix-ui/react-separator": "^1.1.8",
49
- "@radix-ui/react-slider": "^1.3.6",
50
- "@radix-ui/react-slot": "^1.2.4",
51
- "@radix-ui/react-switch": "^1.2.6",
52
- "@radix-ui/react-tabs": "^1.1.13",
53
- "@radix-ui/react-toggle": "^1.1.10",
54
- "@radix-ui/react-toggle-group": "^1.1.11",
55
- "@radix-ui/react-tooltip": "^1.2.8",
56
34
  "@react-email/components": "^1.0.8",
57
- "@tailwindcss/typography": "^0.5.19",
58
35
  "@tanstack/react-query": "^5.90.21",
59
36
  "@tanstack/react-query-devtools": "^5.91.3",
60
37
  "@tanstack/react-table": "^8.21.3",
@@ -82,6 +59,7 @@
82
59
  "@tiptap/html": "^3.20.0",
83
60
  "@tiptap/pm": "^3.20.0",
84
61
  "@tiptap/react": "^3.20.0",
62
+ "@tiptap/static-renderer": "^3.22.4",
85
63
  "class-variance-authority": "^0.7.1",
86
64
  "client-only": "^0.0.1",
87
65
  "clsx": "^2.1.1",
@@ -92,8 +70,10 @@
92
70
  "drizzle-zod": "^0.8.3",
93
71
  "embla-carousel-react": "^8.6.0",
94
72
  "lucide-react": "^0.575.0",
73
+ "markdown-it": "^14.1.1",
95
74
  "motion": "^12.34.3",
96
75
  "next-themes": "^0.4.6",
76
+ "radix-ui": "^1.4.3",
97
77
  "react-colorful": "^5.6.1",
98
78
  "react-day-picker": "9.13.2",
99
79
  "react-dropzone": "^15.0.0",
@@ -112,14 +92,15 @@
112
92
  "zod": "^4.3.6"
113
93
  },
114
94
  "peerDependencies": {
115
- "@better-auth/passkey": "^1.4.18",
116
- "better-auth": "^1.4.18",
95
+ "@better-auth/passkey": "^1.5.5",
96
+ "@tailwindcss/typography": "^0.5.19",
97
+ "better-auth": "^1.5.5",
117
98
  "next": "16.1.6",
118
99
  "nuqs": "2.8.8",
119
100
  "pg": "8.18.0",
120
101
  "react": "19.2.4",
121
102
  "react-dom": "19.2.4",
122
- "recharts": "3.7.0",
103
+ "recharts": "2.15.4",
123
104
  "sharp": "^0.34.5"
124
105
  },
125
106
  "publishConfig": {
@@ -148,6 +129,12 @@
148
129
  "./data-tables": "./dist/data-tables.mjs",
149
130
  "./data-tables/client": "./dist/data-tables/client.mjs",
150
131
  "./data-tables/server": "./dist/data-tables/server.mjs",
132
+ "./database": "./dist/database.mjs",
133
+ "./database/client": "./dist/database/client.mjs",
134
+ "./database/server": "./dist/database/server.mjs",
135
+ "./emails": "./dist/emails.mjs",
136
+ "./emails/client": "./dist/emails/client.mjs",
137
+ "./emails/server": "./dist/emails/server.mjs",
151
138
  "./inline-edit": "./dist/inline-edit.mjs",
152
139
  "./inline-edit/client": "./dist/inline-edit/client.mjs",
153
140
  "./inline-edit/server": "./dist/inline-edit/server.mjs",
@@ -170,6 +157,7 @@
170
157
  "lint": "biome check",
171
158
  "format": "biome format --write",
172
159
  "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
160
+ "test": "vitest",
173
161
  "ui:add": "pnpm dlx shadcn@latest add",
174
162
  "email": "email dev --port 9090 --dir src/components/emails"
175
163
  }
@@ -1,6 +1,11 @@
1
1
  "use client";
2
2
 
3
- import { type Content, type Editor as TiptapEditor, useEditor } from "@tiptap/react";
3
+ import {
4
+ type Content,
5
+ type Editor as TiptapEditor,
6
+ type EditorOptions as TiptapEditorOptions,
7
+ useEditor,
8
+ } from "@tiptap/react";
4
9
  import { cva, type VariantProps } from "class-variance-authority";
5
10
  import { createContext, type PropsWithChildren } from "react";
6
11
  import { cn } from "@/lib/utils/cn";
@@ -45,6 +50,7 @@ export const editorVariants = cva("", {
45
50
  * Editor context provider
46
51
  */
47
52
  export type EditorProps = VariantProps<typeof editorVariants> &
53
+ Pick<TiptapEditorOptions["editorProps"], "attributes"> &
48
54
  PropsWithChildren<{
49
55
  value?: Content;
50
56
  extensions?: Partial<EditorExtensionsConfig>;
@@ -63,6 +69,7 @@ export function Editor({
63
69
  variant,
64
70
  className,
65
71
  children,
72
+ attributes,
66
73
  }: EditorProps) {
67
74
  const editor = useEditor({
68
75
  extensions: editorExtensionsConfigToExtensions(extensions),
@@ -75,6 +82,7 @@ export function Editor({
75
82
  editorProps: {
76
83
  transformPastedHTML: (html) => html.replace(/<img.*?>/g, ""),
77
84
  attributes: {
85
+ ...attributes,
78
86
  class: cn(
79
87
  "editor-content text-sm max-w-full focus:outline-none",
80
88
  editorProseVariants(),
@@ -17,7 +17,7 @@ import {
17
17
  DropdownMenuContent,
18
18
  DropdownMenuItem,
19
19
  DropdownMenuTrigger,
20
- } from "@/components/ui/dropdown-menu";
20
+ } from "@/components/ui/dropdown-menu.client";
21
21
  import type { EditorExtensionsConfigResult } from "../lib/extensions";
22
22
  import { EditorContext } from "./editor.client";
23
23
 
@@ -13,7 +13,7 @@ import {
13
13
  import { type ComponentProps, type PropsWithChildren, useContext } from "react";
14
14
  import { Button } from "@/components/ui/button";
15
15
  import { ColorPicker } from "@/components/ui/color-picker.client";
16
- import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover";
16
+ import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover.client";
17
17
  import { cn } from "@/lib/entry";
18
18
  import { EditorContext } from "./editor.client";
19
19
  import { EditorMenuNodes } from "./menu-nodes.client";
@@ -22,7 +22,7 @@ export function EditorMenuFixed(props: React.ComponentProps<"div">) {
22
22
  return (
23
23
  <div
24
24
  {...props}
25
- className={cn("border-input bg-muted/30 z-10 overflow-auto border-b p-2", props.className)}
25
+ className={cn("z-10 overflow-auto border-input border-b bg-muted/30 p-2", props.className)}
26
26
  >
27
27
  <EditorMenuContent>
28
28
  <EditorMenuUndoRedo />
@@ -42,7 +42,7 @@ export function EditorMenuBubble(props: ComponentProps<typeof BubbleMenu>) {
42
42
  {...props}
43
43
  editor={editor}
44
44
  options={{ ...props.options, strategy: "fixed" }}
45
- className={cn("border-input bg-muted z-10 rounded-lg border p-2", props.className)}
45
+ className={cn("z-10 rounded-lg border border-input bg-muted p-2", props.className)}
46
46
  >
47
47
  <EditorMenuContent>
48
48
  <EditorMenuMarks />
@@ -10,17 +10,17 @@ import { collectImageIds, diffIds } from "./utils";
10
10
  export interface FileHandlerOptions extends TiptapFileHandlerOptions {
11
11
  /**
12
12
  * Callback function invoked when a image reference is removed from the editor. Receives the node ID of the removed node.
13
- * @type {(nodeId: string) => void}
13
+ * @type {(assetId: string) => void}
14
14
  * @default undefined
15
15
  **/
16
- onReferenceRemoved?: (nodeId: string) => void;
16
+ onReferenceRemoved?: (assetId: string) => void;
17
17
 
18
18
  /**
19
19
  * Callback function invoked when a image reference is added to the editor. Receives the node ID of the added node.
20
- * @type {(nodeId: string) => void}
20
+ * @type {(assetId: string) => void}
21
21
  * @default undefined
22
22
  **/
23
- onReferenceAdded?: (nodeId: string) => void;
23
+ onReferenceAdded?: (assetId: string) => void;
24
24
  }
25
25
 
26
26
  /**
@@ -1,18 +1,18 @@
1
1
  import type { Editor } from "@tiptap/core";
2
2
  import { TextSelection } from "@tiptap/pm/state";
3
- import type { SelectNodeSchema, UploadFileSchema } from "@/modules/storage/entry";
4
- import type { UploadClient, UploadHooks } from "@/modules/storage/entry.client";
3
+ import type { UploadClient, UploadHooks } from "@/modules/storage/lib/upload.client";
4
+ import type { PresignUploadInput, StorageAsset } from "@/modules/storage/lib/validators";
5
5
  import type { FileHandlerOptions } from "./extension";
6
6
 
7
7
  /**
8
8
  * Handle File Handler props
9
9
  */
10
10
  type CreateFileHandlerUploadStrategyProps = {
11
- variables: Pick<UploadFileSchema, "namespace" | "parentId" | "mode" | "hidden" | "readonly">;
11
+ variables: Pick<PresignUploadInput, "visibility" | "metadata">;
12
12
  uploadClient: UploadClient;
13
13
  uploadHooks?: UploadHooks;
14
14
  allowedMimeTypes?: string[];
15
- onUploadCompleted?: (node: SelectNodeSchema) => Promise<void> | void;
15
+ onUploadCompleted?: (asset: StorageAsset) => Promise<void> | void;
16
16
  onUploadFailed?: (error: unknown) => Promise<void> | void;
17
17
  };
18
18
 
@@ -44,7 +44,7 @@ export function createFileHandlerUploadStrategy({
44
44
  * Create skeleton node
45
45
  */
46
46
  const skeletonNode = editor.schema.nodes.skeleton?.create({
47
- imageNodeId: input.id,
47
+ imageNodeId: input.uploadId,
48
48
  width: 500,
49
49
  height: 500,
50
50
  });
@@ -53,7 +53,6 @@ export function createFileHandlerUploadStrategy({
53
53
  * Insert skeleton node into the document
54
54
  */
55
55
  if (skeletonNode) {
56
- // editor.chain().insertContentAt(insertPos, skeletonNode).focus().run();
57
56
  const tr = editor.state.tr.insert(insertPos, skeletonNode);
58
57
  tr.setSelection(TextSelection.create(tr.doc, insertPos + skeletonNode.nodeSize));
59
58
  tr.setMeta("addToHistory", false);
@@ -63,7 +62,7 @@ export function createFileHandlerUploadStrategy({
63
62
  /**
64
63
  * Upload the file
65
64
  */
66
- const fileNode = await uploadClient.upload(input, uploadHooks);
65
+ const asset = await uploadClient.upload(input, uploadHooks);
67
66
 
68
67
  /**
69
68
  * Replace skeleton with image node
@@ -72,9 +71,9 @@ export function createFileHandlerUploadStrategy({
72
71
  let replaced = false;
73
72
 
74
73
  replacedTr.doc.descendants((node, pos) => {
75
- if (node.type.name === "skeleton" && node.attrs?.imageNodeId === input.id) {
74
+ if (node.type.name === "skeleton" && node.attrs?.imageNodeId === input.uploadId) {
76
75
  const imageNode = imageType.create({
77
- nodeId: fileNode.id,
76
+ assetId: asset.id,
78
77
  alt: file.name,
79
78
  fileName: file.name,
80
79
  width: node.attrs.width ?? 500,
@@ -92,7 +91,7 @@ export function createFileHandlerUploadStrategy({
92
91
  // In case skeleton is not found, insert the image node at the original position
93
92
  const tr = editor.state.tr;
94
93
  const imageNode = imageType.create({
95
- nodeId: fileNode.id,
94
+ assetId: asset.id,
96
95
  alt: file.name,
97
96
  fileName: file.name,
98
97
  width: 500,
@@ -101,31 +100,7 @@ export function createFileHandlerUploadStrategy({
101
100
  editor.view.dispatch(tr);
102
101
  }
103
102
 
104
- // /**
105
- // * Remove skeleton node from the document
106
- // */
107
- // const tr = editor.state.tr;
108
- // tr.doc.descendants((node, pos) => {
109
- // if (node.type.name === "skeleton" && node.attrs?.imageNodeId === input.id) {
110
- // tr.delete(pos, pos + node.nodeSize);
111
- // return false;
112
- // }
113
- // });
114
- // editor.view.dispatch(tr);
115
-
116
- // /**
117
- // * Add image node to the document
118
- // */
119
- // const imageNode = imageType.create({
120
- // nodeId: fileNode.id,
121
- // alt: file.name,
122
- // fileName: file.name,
123
- // width: 500,
124
- // });
125
- // editor.commands.insertContentAt(insertPos, imageNode);
126
- // // insertPos += imageNode.nodeSize - skeletonNode.nodeSize;
127
-
128
- await onUploadCompleted?.(fileNode);
103
+ await onUploadCompleted?.(asset);
129
104
  } catch (err) {
130
105
  console.error("Upload error:", err);
131
106
 
@@ -134,7 +109,7 @@ export function createFileHandlerUploadStrategy({
134
109
  */
135
110
  const tr = editor.state.tr;
136
111
  tr.doc.descendants((node, pos) => {
137
- if (node.type.name === "image" && node.attrs?.nodeId === input.id) {
112
+ if (node.type.name === "skeleton" && node.attrs?.imageNodeId === input.uploadId) {
138
113
  tr.delete(pos, pos + node.nodeSize);
139
114
  return false;
140
115
  }
@@ -157,11 +132,11 @@ export function createFileHandlerUploadStrategy({
157
132
  const startPos = editor.state.selection.anchor;
158
133
  await handleUpload(editor, files, startPos);
159
134
  },
160
- onReferenceRemoved: async (nodeId) => {
161
- await uploadClient.updateNode(nodeId, { orphanedAt: new Date() });
135
+ onReferenceRemoved: async (assetId) => {
136
+ await uploadClient.deleteAsset(assetId);
162
137
  },
163
- onReferenceAdded: async (nodeId) => {
164
- await uploadClient.updateNode(nodeId, { orphanedAt: null });
138
+ onReferenceAdded: async (assetId) => {
139
+ await uploadClient.restoreAsset(assetId);
165
140
  },
166
141
  };
167
142
  }
@@ -18,7 +18,7 @@ export function collectImageIds(doc: Node): Map<string, number> {
18
18
  doc.descendants((node) => {
19
19
  if (node.type.name !== "image") return;
20
20
 
21
- const id = node.attrs?.nodeId;
21
+ const id = node.attrs?.assetId;
22
22
  if (!id) return;
23
23
 
24
24
  counts.set(id, (counts.get(id) ?? 0) + 1);
@@ -4,7 +4,7 @@ import {
4
4
  Image as TiptapImage,
5
5
  type ImageOptions as TiptapImageOptions,
6
6
  } from "@tiptap/extension-image";
7
- import { getFileUrl } from "@/modules/storage/lib/helpers";
7
+ import { getAssetURL } from "@/modules/storage/entry";
8
8
 
9
9
  export interface ImageOptions extends TiptapImageOptions {}
10
10
 
@@ -13,15 +13,15 @@ export const Image = TiptapImage.extend<ImageOptions>({
13
13
  addAttributes() {
14
14
  return {
15
15
  ...this.parent?.(),
16
- // node id
17
- nodeId: {
16
+ // asset id
17
+ assetId: {
18
18
  default: null,
19
- parseHTML: (el) => el.getAttribute("data-node-id"),
19
+ parseHTML: (el) => el.getAttribute("data-asset-id"),
20
20
  renderHTML: (attrs) => {
21
- if (!attrs.nodeId) return {};
21
+ if (!attrs.assetId) return {};
22
22
  return {
23
- "data-node-id": attrs.nodeId,
24
- ...(attrs.nodeId && !attrs.isPending ? { src: getFileUrl(attrs.nodeId) } : {}),
23
+ "data-asset-id": attrs.assetId,
24
+ ...(attrs.assetId && !attrs.isPending ? { src: getAssetURL(attrs.assetId) } : {}),
25
25
  };
26
26
  },
27
27
  },
@@ -43,15 +43,15 @@ export const Image = TiptapImage.extend<ImageOptions>({
43
43
  };
44
44
  },
45
45
  parseHTML() {
46
- return [{ tag: "img[data-node-id]" }];
46
+ return [{ tag: "img[data-asset-id]" }];
47
47
  },
48
48
  renderHTML({ HTMLAttributes }) {
49
49
  const { src: _, ...attrs } = HTMLAttributes;
50
50
 
51
- const nodeId = attrs.nodeId as string | null;
51
+ const assetId = attrs.assetId as string | null;
52
52
  const isPending = Boolean(attrs.isPending);
53
53
 
54
- const src = nodeId && !isPending ? getFileUrl(nodeId) : null;
54
+ const src = assetId && !isPending ? getAssetURL(assetId) : null;
55
55
 
56
56
  return ["img", { ...attrs, ...(src ? { src } : {}) }];
57
57
  },