@vitnode/core 1.2.0-canary.75 → 1.2.0-canary.77

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 (716) hide show
  1. package/cli.mjs +2 -0
  2. package/dist/scripts/build.d.ts +2 -0
  3. package/dist/scripts/build.d.ts.map +1 -0
  4. package/dist/scripts/dev.d.ts +4 -0
  5. package/dist/scripts/dev.d.ts.map +1 -0
  6. package/dist/scripts/get-config.d.ts +7 -2
  7. package/dist/scripts/get-config.d.ts.map +1 -1
  8. package/dist/scripts/i18n-check.d.ts +2 -0
  9. package/dist/scripts/i18n-check.d.ts.map +1 -0
  10. package/dist/scripts/plugin.d.ts.map +1 -1
  11. package/dist/scripts/prepare-database.d.ts.map +1 -1
  12. package/dist/scripts/prepare-plugins-files.d.ts.map +1 -1
  13. package/dist/scripts/scripts.js +4 -2
  14. package/dist/scripts/shared/file-utils.d.ts +1 -0
  15. package/dist/scripts/shared/file-utils.d.ts.map +1 -1
  16. package/dist/src/api/adapters/events/local.d.ts +3 -0
  17. package/dist/src/api/adapters/events/local.d.ts.map +1 -0
  18. package/dist/src/api/adapters/events/local.js +1 -0
  19. package/dist/src/api/adapters/search/postgres.d.ts +3 -0
  20. package/dist/src/api/adapters/search/postgres.d.ts.map +1 -0
  21. package/dist/src/api/adapters/search/postgres.js +1 -0
  22. package/dist/src/api/adapters/storage/local.d.ts +6 -0
  23. package/dist/src/api/adapters/storage/local.d.ts.map +1 -0
  24. package/dist/src/api/adapters/storage/local.js +1 -0
  25. package/dist/src/api/config.d.ts.map +1 -1
  26. package/dist/src/api/config.js +1 -1
  27. package/dist/src/api/lib/check-staff-permission.d.ts.map +1 -1
  28. package/dist/src/api/lib/check-staff-permission.js +1 -1
  29. package/dist/src/api/lib/cron.d.ts +2 -0
  30. package/dist/src/api/lib/cron.d.ts.map +1 -1
  31. package/dist/src/api/lib/cron.js +1 -1
  32. package/dist/src/api/lib/events.d.ts +15 -0
  33. package/dist/src/api/lib/events.d.ts.map +1 -0
  34. package/dist/src/api/lib/events.js +1 -0
  35. package/dist/src/api/lib/module.d.ts +4 -1
  36. package/dist/src/api/lib/module.d.ts.map +1 -1
  37. package/dist/src/api/lib/module.js +1 -1
  38. package/dist/src/api/lib/permission-staff.d.ts +0 -4
  39. package/dist/src/api/lib/permission-staff.d.ts.map +1 -1
  40. package/dist/src/api/lib/plugin.d.ts +9 -1
  41. package/dist/src/api/lib/plugin.d.ts.map +1 -1
  42. package/dist/src/api/lib/plugin.js +1 -1
  43. package/dist/src/api/lib/route.d.ts +1 -1
  44. package/dist/src/api/lib/route.d.ts.map +1 -1
  45. package/dist/src/api/lib/route.js +1 -1
  46. package/dist/src/api/lib/save-language-words.d.ts +11 -0
  47. package/dist/src/api/lib/save-language-words.d.ts.map +1 -0
  48. package/dist/src/api/lib/save-language-words.js +1 -0
  49. package/dist/src/api/middlewares/global.middleware.d.ts +29 -5
  50. package/dist/src/api/middlewares/global.middleware.d.ts.map +1 -1
  51. package/dist/src/api/middlewares/global.middleware.js +1 -1
  52. package/dist/src/api/middlewares/plugin.middleware.d.ts +3 -0
  53. package/dist/src/api/middlewares/plugin.middleware.d.ts.map +1 -0
  54. package/dist/src/api/middlewares/plugin.middleware.js +1 -0
  55. package/dist/src/api/middlewares/rate-limiter.middleware.d.ts +4 -1
  56. package/dist/src/api/middlewares/rate-limiter.middleware.d.ts.map +1 -1
  57. package/dist/src/api/middlewares/rate-limiter.middleware.js +1 -1
  58. package/dist/src/api/models/device.d.ts.map +1 -1
  59. package/dist/src/api/models/device.js +1 -1
  60. package/dist/src/api/models/email.d.ts.map +1 -1
  61. package/dist/src/api/models/email.js +1 -1
  62. package/dist/src/api/models/events.d.ts +66 -0
  63. package/dist/src/api/models/events.d.ts.map +1 -0
  64. package/dist/src/api/models/events.js +1 -0
  65. package/dist/src/api/models/i18n.d.ts +15 -0
  66. package/dist/src/api/models/i18n.d.ts.map +1 -0
  67. package/dist/src/api/models/i18n.js +1 -0
  68. package/dist/src/api/models/search.d.ts +102 -0
  69. package/dist/src/api/models/search.d.ts.map +1 -0
  70. package/dist/src/api/models/search.js +1 -0
  71. package/dist/src/api/models/storage.d.ts +40 -0
  72. package/dist/src/api/models/storage.d.ts.map +1 -0
  73. package/dist/src/api/models/storage.js +1 -0
  74. package/dist/src/api/models/user/sign-up.d.ts +1 -1
  75. package/dist/src/api/models/user/sign-up.d.ts.map +1 -1
  76. package/dist/src/api/models/user/sign-up.js +1 -1
  77. package/dist/src/api/models/user.d.ts +1 -1
  78. package/dist/src/api/modules/admin/admin.module.d.ts +376 -2
  79. package/dist/src/api/modules/admin/admin.module.d.ts.map +1 -1
  80. package/dist/src/api/modules/admin/admin.module.js +1 -1
  81. package/dist/src/api/modules/admin/advanced/advanced.admin.module.d.ts +1 -1
  82. package/dist/src/api/modules/admin/advanced/cron/routes/get.route.d.ts.map +1 -1
  83. package/dist/src/api/modules/admin/advanced/cron/routes/get.route.js +1 -1
  84. package/dist/src/api/modules/admin/advanced/cron/routes/run.route.d.ts.map +1 -1
  85. package/dist/src/api/modules/admin/advanced/cron/routes/run.route.js +1 -1
  86. package/dist/src/api/modules/admin/advanced/queue/queue.admin.module.d.ts +1 -1
  87. package/dist/src/api/modules/admin/advanced/queue/routes/get.route.d.ts +1 -1
  88. package/dist/src/api/modules/admin/debug/debug.admin.module.d.ts +100 -1
  89. package/dist/src/api/modules/admin/debug/debug.admin.module.d.ts.map +1 -1
  90. package/dist/src/api/modules/admin/debug/debug.admin.module.js +1 -1
  91. package/dist/src/api/modules/admin/debug/routes/integrations.route.d.ts +6 -0
  92. package/dist/src/api/modules/admin/debug/routes/integrations.route.d.ts.map +1 -1
  93. package/dist/src/api/modules/admin/debug/routes/integrations.route.js +1 -1
  94. package/dist/src/api/modules/admin/debug/routes/logs.route.d.ts +1 -1
  95. package/dist/src/api/modules/admin/debug/routes/rebuild-search.route.d.ts +36 -0
  96. package/dist/src/api/modules/admin/debug/routes/rebuild-search.route.d.ts.map +1 -0
  97. package/dist/src/api/modules/admin/debug/routes/rebuild-search.route.js +1 -0
  98. package/dist/src/api/modules/admin/debug/routes/search-status.route.d.ts +32 -0
  99. package/dist/src/api/modules/admin/debug/routes/search-status.route.d.ts.map +1 -0
  100. package/dist/src/api/modules/admin/debug/routes/search-status.route.js +1 -0
  101. package/dist/src/api/modules/admin/debug/routes/test-storage-upload.route.d.ts +37 -0
  102. package/dist/src/api/modules/admin/debug/routes/test-storage-upload.route.d.ts.map +1 -0
  103. package/dist/src/api/modules/admin/debug/routes/test-storage-upload.route.js +1 -0
  104. package/dist/src/api/modules/admin/files/files.admin.module.d.ts +128 -0
  105. package/dist/src/api/modules/admin/files/files.admin.module.d.ts.map +1 -0
  106. package/dist/src/api/modules/admin/files/files.admin.module.js +1 -0
  107. package/dist/src/api/modules/admin/files/routes/delete.route.d.ts +29 -0
  108. package/dist/src/api/modules/admin/files/routes/delete.route.d.ts.map +1 -0
  109. package/dist/src/api/modules/admin/files/routes/delete.route.js +1 -0
  110. package/dist/src/api/modules/admin/files/routes/download.route.d.ts +34 -0
  111. package/dist/src/api/modules/admin/files/routes/download.route.d.ts.map +1 -0
  112. package/dist/src/api/modules/admin/files/routes/download.route.js +1 -0
  113. package/dist/src/api/modules/admin/files/routes/list.route.d.ts +72 -0
  114. package/dist/src/api/modules/admin/files/routes/list.route.d.ts.map +1 -0
  115. package/dist/src/api/modules/admin/files/routes/list.route.js +1 -0
  116. package/dist/src/api/modules/admin/roles/lib/assert-manage-admin-role.d.ts +6 -0
  117. package/dist/src/api/modules/admin/roles/lib/assert-manage-admin-role.d.ts.map +1 -0
  118. package/dist/src/api/modules/admin/roles/lib/assert-manage-admin-role.js +1 -0
  119. package/dist/src/api/modules/admin/roles/roles.admin.module.d.ts +149 -0
  120. package/dist/src/api/modules/admin/roles/roles.admin.module.d.ts.map +1 -1
  121. package/dist/src/api/modules/admin/roles/roles.admin.module.js +1 -1
  122. package/dist/src/api/modules/admin/roles/routes/create.route.d.ts +58 -0
  123. package/dist/src/api/modules/admin/roles/routes/create.route.d.ts.map +1 -0
  124. package/dist/src/api/modules/admin/roles/routes/create.route.js +1 -0
  125. package/dist/src/api/modules/admin/roles/routes/delete.route.d.ts +52 -0
  126. package/dist/src/api/modules/admin/roles/routes/delete.route.d.ts.map +1 -0
  127. package/dist/src/api/modules/admin/roles/routes/delete.route.js +1 -0
  128. package/dist/src/api/modules/admin/roles/routes/list.route.d.ts +4 -0
  129. package/dist/src/api/modules/admin/roles/routes/list.route.d.ts.map +1 -1
  130. package/dist/src/api/modules/admin/roles/routes/list.route.js +1 -1
  131. package/dist/src/api/modules/admin/roles/routes/show.route.d.ts +3 -0
  132. package/dist/src/api/modules/admin/roles/routes/show.route.d.ts.map +1 -1
  133. package/dist/src/api/modules/admin/roles/routes/show.route.js +1 -1
  134. package/dist/src/api/modules/admin/roles/routes/update.route.d.ts +66 -0
  135. package/dist/src/api/modules/admin/roles/routes/update.route.d.ts.map +1 -0
  136. package/dist/src/api/modules/admin/roles/routes/update.route.js +1 -0
  137. package/dist/src/api/modules/admin/staff/lib/resolve-staff-edges.d.ts +1 -3
  138. package/dist/src/api/modules/admin/staff/lib/resolve-staff-edges.d.ts.map +1 -1
  139. package/dist/src/api/modules/admin/staff/lib/resolve-staff-edges.js +1 -1
  140. package/dist/src/api/modules/admin/staff/routes/admins.route.js +1 -1
  141. package/dist/src/api/modules/admin/staff/routes/create.route.d.ts.map +1 -1
  142. package/dist/src/api/modules/admin/staff/routes/create.route.js +1 -1
  143. package/dist/src/api/modules/admin/staff/routes/moderators.route.js +1 -1
  144. package/dist/src/api/modules/admin/staff/routes/show-permissions.route.d.ts.map +1 -1
  145. package/dist/src/api/modules/admin/staff/routes/show-permissions.route.js +1 -1
  146. package/dist/src/api/modules/admin/staff/routes/update-permissions.route.js +1 -1
  147. package/dist/src/api/modules/admin/users/routes/update.route.d.ts.map +1 -1
  148. package/dist/src/api/modules/admin/users/routes/update.route.js +1 -1
  149. package/dist/src/api/modules/admin/users/routes/users.route.d.ts +1 -1
  150. package/dist/src/api/modules/cron/helpers/register-cron-jobs.d.ts +4 -0
  151. package/dist/src/api/modules/cron/helpers/register-cron-jobs.d.ts.map +1 -0
  152. package/dist/src/api/modules/cron/helpers/register-cron-jobs.js +1 -0
  153. package/dist/src/api/modules/search/routes/search.route.d.ts +91 -0
  154. package/dist/src/api/modules/search/routes/search.route.d.ts.map +1 -0
  155. package/dist/src/api/modules/search/routes/search.route.js +1 -0
  156. package/dist/src/api/modules/search/search.module.d.ts +68 -0
  157. package/dist/src/api/modules/search/search.module.d.ts.map +1 -0
  158. package/dist/src/api/modules/search/search.module.js +1 -0
  159. package/dist/src/api/modules/search/tasks/rebuild-index.task.d.ts +2 -0
  160. package/dist/src/api/modules/search/tasks/rebuild-index.task.d.ts.map +1 -0
  161. package/dist/src/api/modules/search/tasks/rebuild-index.task.js +1 -0
  162. package/dist/src/api/modules/users/files/files.module.d.ts +124 -0
  163. package/dist/src/api/modules/users/files/files.module.d.ts.map +1 -0
  164. package/dist/src/api/modules/users/files/files.module.js +1 -0
  165. package/dist/src/api/modules/users/files/routes/delete.route.d.ts +32 -0
  166. package/dist/src/api/modules/users/files/routes/delete.route.d.ts.map +1 -0
  167. package/dist/src/api/modules/users/files/routes/delete.route.js +1 -0
  168. package/dist/src/api/modules/users/files/routes/download.route.d.ts +37 -0
  169. package/dist/src/api/modules/users/files/routes/download.route.d.ts.map +1 -0
  170. package/dist/src/api/modules/users/files/routes/download.route.js +1 -0
  171. package/dist/src/api/modules/users/files/routes/list.route.d.ts +62 -0
  172. package/dist/src/api/modules/users/files/routes/list.route.d.ts.map +1 -0
  173. package/dist/src/api/modules/users/files/routes/list.route.js +1 -0
  174. package/dist/src/api/modules/users/routes/devices.route.d.ts +34 -0
  175. package/dist/src/api/modules/users/routes/devices.route.d.ts.map +1 -0
  176. package/dist/src/api/modules/users/routes/devices.route.js +1 -0
  177. package/dist/src/api/modules/users/routes/revoke-device.route.d.ts +42 -0
  178. package/dist/src/api/modules/users/routes/revoke-device.route.d.ts.map +1 -0
  179. package/dist/src/api/modules/users/routes/revoke-device.route.js +1 -0
  180. package/dist/src/api/modules/users/users.module.d.ts +194 -2
  181. package/dist/src/api/modules/users/users.module.d.ts.map +1 -1
  182. package/dist/src/api/modules/users/users.module.js +1 -1
  183. package/dist/src/api/plugin.d.ts.map +1 -1
  184. package/dist/src/api/plugin.js +1 -1
  185. package/dist/src/components/files/file-preview.d.ts +7 -0
  186. package/dist/src/components/files/file-preview.d.ts.map +1 -0
  187. package/dist/src/components/files/file-preview.js +1 -0
  188. package/dist/src/components/files/metadata-cell.d.ts +6 -0
  189. package/dist/src/components/files/metadata-cell.d.ts.map +1 -0
  190. package/dist/src/components/files/metadata-cell.js +1 -0
  191. package/dist/src/components/form/auto-form.d.ts +12 -3
  192. package/dist/src/components/form/auto-form.d.ts.map +1 -1
  193. package/dist/src/components/form/auto-form.js +1 -1
  194. package/dist/src/components/form/fields/color.d.ts +5 -0
  195. package/dist/src/components/form/fields/color.d.ts.map +1 -0
  196. package/dist/src/components/form/fields/color.js +1 -0
  197. package/dist/src/components/form/fields/editor.d.ts +9 -0
  198. package/dist/src/components/form/fields/editor.d.ts.map +1 -0
  199. package/dist/src/components/form/fields/editor.js +1 -0
  200. package/dist/src/components/form/fields/input.d.ts +5 -1
  201. package/dist/src/components/form/fields/input.d.ts.map +1 -1
  202. package/dist/src/components/form/fields/input.js +1 -1
  203. package/dist/src/components/form/fields/multi-lang.d.ts +18 -0
  204. package/dist/src/components/form/fields/multi-lang.d.ts.map +1 -0
  205. package/dist/src/components/form/fields/multi-lang.js +1 -0
  206. package/dist/src/components/form/fields/nullable-number.d.ts +11 -0
  207. package/dist/src/components/form/fields/nullable-number.d.ts.map +1 -0
  208. package/dist/src/components/form/fields/nullable-number.js +1 -0
  209. package/dist/src/components/form/fields/radio-group.js +1 -1
  210. package/dist/src/components/form/fields/select.js +1 -1
  211. package/dist/src/components/languages-provider.d.ts +8 -0
  212. package/dist/src/components/languages-provider.d.ts.map +1 -0
  213. package/dist/src/components/languages-provider.js +1 -0
  214. package/dist/src/components/table/content.d.ts.map +1 -1
  215. package/dist/src/components/table/content.js +1 -1
  216. package/dist/src/components/table/data-table.d.ts +21 -9
  217. package/dist/src/components/table/data-table.d.ts.map +1 -1
  218. package/dist/src/components/table/filters.d.ts.map +1 -1
  219. package/dist/src/components/table/filters.js +1 -1
  220. package/dist/src/components/table/order-table-head.d.ts +1 -1
  221. package/dist/src/components/table/order-table-head.d.ts.map +1 -1
  222. package/dist/src/components/ui/alert.d.ts +1 -1
  223. package/dist/src/components/ui/alert.d.ts.map +1 -1
  224. package/dist/src/components/ui/alert.js +1 -1
  225. package/dist/src/components/ui/attachment.d.ts +24 -0
  226. package/dist/src/components/ui/attachment.d.ts.map +1 -0
  227. package/dist/src/components/ui/attachment.js +1 -0
  228. package/dist/src/components/ui/carousel.d.ts.map +1 -1
  229. package/dist/src/components/ui/carousel.js +1 -1
  230. package/dist/src/components/ui/chart.d.ts +2 -1
  231. package/dist/src/components/ui/chart.d.ts.map +1 -1
  232. package/dist/src/components/ui/color-picker.d.ts +8 -0
  233. package/dist/src/components/ui/color-picker.d.ts.map +1 -0
  234. package/dist/src/components/ui/color-picker.js +1 -0
  235. package/dist/src/components/ui/dialog.js +1 -1
  236. package/dist/src/components/ui/editor.d.ts +4 -3
  237. package/dist/src/components/ui/editor.d.ts.map +1 -1
  238. package/dist/src/components/ui/editor.js +1 -1
  239. package/dist/src/components/user-format.d.ts +0 -1
  240. package/dist/src/components/user-format.d.ts.map +1 -1
  241. package/dist/src/config.js +1 -1
  242. package/dist/src/database/admins.d.ts +22 -5
  243. package/dist/src/database/admins.d.ts.map +1 -1
  244. package/dist/src/database/admins.js +1 -1
  245. package/dist/src/database/files.d.ts +193 -0
  246. package/dist/src/database/files.d.ts.map +1 -0
  247. package/dist/src/database/files.js +1 -0
  248. package/dist/src/database/moderators.d.ts +22 -5
  249. package/dist/src/database/moderators.d.ts.map +1 -1
  250. package/dist/src/database/moderators.js +1 -1
  251. package/dist/src/database/roles.d.ts +52 -1
  252. package/dist/src/database/roles.d.ts.map +1 -1
  253. package/dist/src/database/roles.js +1 -1
  254. package/dist/src/database/search.d.ts +314 -0
  255. package/dist/src/database/search.d.ts.map +1 -0
  256. package/dist/src/database/search.js +1 -0
  257. package/dist/src/globals.css +45 -0
  258. package/dist/src/lib/api/get-devices-api.d.ts +14 -0
  259. package/dist/src/lib/api/get-devices-api.d.ts.map +1 -0
  260. package/dist/src/lib/api/get-devices-api.js +1 -0
  261. package/dist/src/lib/api/get-queue-status.d.ts +11 -0
  262. package/dist/src/lib/api/get-queue-status.d.ts.map +1 -0
  263. package/dist/src/lib/api/get-queue-status.js +1 -0
  264. package/dist/src/lib/api/get-session-api.d.ts.map +1 -1
  265. package/dist/src/lib/api/get-session-api.js +1 -1
  266. package/dist/src/lib/api/is-cron-stale.d.ts +3 -0
  267. package/dist/src/lib/api/is-cron-stale.d.ts.map +1 -0
  268. package/dist/src/lib/api/is-cron-stale.js +1 -0
  269. package/dist/src/lib/api/parse-user-agent.d.ts +8 -0
  270. package/dist/src/lib/api/parse-user-agent.d.ts.map +1 -0
  271. package/dist/src/lib/api/parse-user-agent.js +1 -0
  272. package/dist/src/lib/api/upload.d.ts +15 -0
  273. package/dist/src/lib/api/upload.d.ts.map +1 -0
  274. package/dist/src/lib/api/upload.js +1 -0
  275. package/dist/src/lib/config.d.ts +4 -4
  276. package/dist/src/lib/config.d.ts.map +1 -1
  277. package/dist/src/lib/config.js +1 -1
  278. package/dist/src/lib/fetcher/core.d.ts +2 -1
  279. package/dist/src/lib/fetcher/core.d.ts.map +1 -1
  280. package/dist/src/lib/fetcher/core.js +1 -1
  281. package/dist/src/lib/fetcher/rate-limit.d.ts +10 -0
  282. package/dist/src/lib/fetcher/rate-limit.d.ts.map +1 -0
  283. package/dist/src/lib/fetcher/rate-limit.js +1 -0
  284. package/dist/src/lib/fetcher-client.d.ts +3 -1
  285. package/dist/src/lib/fetcher-client.d.ts.map +1 -1
  286. package/dist/src/lib/fetcher-client.js +1 -1
  287. package/dist/src/lib/format-bytes.d.ts +2 -0
  288. package/dist/src/lib/format-bytes.d.ts.map +1 -0
  289. package/dist/src/lib/format-bytes.js +1 -0
  290. package/dist/src/lib/helpers/multi-lang.d.ts +21 -0
  291. package/dist/src/lib/helpers/multi-lang.d.ts.map +1 -0
  292. package/dist/src/lib/helpers/multi-lang.js +1 -0
  293. package/dist/src/lib/i18n/deep-merge.d.ts +4 -0
  294. package/dist/src/lib/i18n/deep-merge.d.ts.map +1 -0
  295. package/dist/src/lib/i18n/deep-merge.js +1 -0
  296. package/dist/src/lib/i18n/load-messages.d.ts +9 -0
  297. package/dist/src/lib/i18n/load-messages.d.ts.map +1 -0
  298. package/dist/src/lib/i18n/load-messages.js +1 -0
  299. package/dist/src/lib/i18n/negotiate-locale.d.ts +2 -0
  300. package/dist/src/lib/i18n/negotiate-locale.d.ts.map +1 -0
  301. package/dist/src/lib/i18n/negotiate-locale.js +1 -0
  302. package/dist/src/lib/i18n/sources.d.ts +9 -0
  303. package/dist/src/lib/i18n/sources.d.ts.map +1 -0
  304. package/dist/src/lib/i18n/sources.js +1 -0
  305. package/dist/src/lib/i18n/types.d.ts +24 -0
  306. package/dist/src/lib/i18n/types.d.ts.map +1 -0
  307. package/dist/src/lib/i18n/types.js +1 -0
  308. package/dist/src/lib/motion.d.ts +8 -0
  309. package/dist/src/lib/motion.d.ts.map +1 -0
  310. package/dist/src/lib/motion.js +1 -0
  311. package/dist/src/lib/plugin.d.ts +2 -0
  312. package/dist/src/lib/plugin.d.ts.map +1 -1
  313. package/dist/src/lib/strip-html.d.ts +2 -0
  314. package/dist/src/lib/strip-html.d.ts.map +1 -0
  315. package/dist/src/lib/strip-html.js +1 -0
  316. package/dist/src/locales/en.json +897 -0
  317. package/dist/src/locales/index.d.ts +4 -0
  318. package/dist/src/locales/index.d.ts.map +1 -0
  319. package/dist/src/locales/index.js +1 -0
  320. package/dist/src/routes/admin/core/advanced/cron/page.d.ts.map +1 -1
  321. package/dist/src/routes/admin/core/advanced/cron/page.js +1 -1
  322. package/dist/src/routes/admin/core/advanced/search/page.d.ts +11 -0
  323. package/dist/src/routes/admin/core/advanced/search/page.d.ts.map +1 -0
  324. package/dist/src/routes/admin/core/advanced/search/page.js +1 -0
  325. package/dist/src/routes/admin/core/system/files/page.d.ts +11 -0
  326. package/dist/src/routes/admin/core/system/files/page.d.ts.map +1 -0
  327. package/dist/src/routes/admin/core/system/files/page.js +1 -0
  328. package/dist/src/routes/admin/core/users/[id]/page.js +1 -1
  329. package/dist/src/routes/admin/core/users/roles/page.d.ts.map +1 -1
  330. package/dist/src/routes/admin/core/users/roles/page.js +1 -1
  331. package/dist/src/routes/blank/test/page.js +1 -1
  332. package/dist/src/routes/breadcrumb/admin/core/advanced/cron/page.d.ts +2 -0
  333. package/dist/src/routes/breadcrumb/admin/core/advanced/cron/page.d.ts.map +1 -0
  334. package/dist/src/routes/breadcrumb/admin/core/advanced/cron/page.js +1 -0
  335. package/dist/src/routes/breadcrumb/admin/core/advanced/queue/page.d.ts +2 -0
  336. package/dist/src/routes/breadcrumb/admin/core/advanced/queue/page.d.ts.map +1 -0
  337. package/dist/src/routes/breadcrumb/admin/core/advanced/queue/page.js +1 -0
  338. package/dist/src/routes/breadcrumb/admin/core/advanced/search/page.d.ts +2 -0
  339. package/dist/src/routes/breadcrumb/admin/core/advanced/search/page.d.ts.map +1 -0
  340. package/dist/src/routes/breadcrumb/admin/core/advanced/search/page.js +1 -0
  341. package/dist/src/routes/breadcrumb/admin/core/page.d.ts +2 -0
  342. package/dist/src/routes/breadcrumb/admin/core/page.d.ts.map +1 -0
  343. package/dist/src/routes/breadcrumb/admin/core/page.js +1 -0
  344. package/dist/src/routes/breadcrumb/admin/core/system/files/page.d.ts +2 -0
  345. package/dist/src/routes/breadcrumb/admin/core/system/files/page.d.ts.map +1 -0
  346. package/dist/src/routes/breadcrumb/admin/core/system/files/page.js +1 -0
  347. package/dist/src/routes/breadcrumb/admin/core/system/integrations/page.d.ts +2 -0
  348. package/dist/src/routes/breadcrumb/admin/core/system/integrations/page.d.ts.map +1 -0
  349. package/dist/src/routes/breadcrumb/admin/core/system/integrations/page.js +1 -0
  350. package/dist/src/routes/breadcrumb/admin/core/users/page.d.ts +2 -0
  351. package/dist/src/routes/breadcrumb/admin/core/users/page.d.ts.map +1 -0
  352. package/dist/src/routes/breadcrumb/admin/core/users/page.js +1 -0
  353. package/dist/src/routes/breadcrumb/admin/core/users/roles/page.d.ts +2 -0
  354. package/dist/src/routes/breadcrumb/admin/core/users/roles/page.d.ts.map +1 -0
  355. package/dist/src/routes/breadcrumb/admin/core/users/roles/page.js +1 -0
  356. package/dist/src/routes/breadcrumb/main/discover/page.d.ts +2 -0
  357. package/dist/src/routes/breadcrumb/main/discover/page.d.ts.map +1 -0
  358. package/dist/src/routes/breadcrumb/main/discover/page.js +1 -0
  359. package/dist/src/routes/breadcrumb/main/search/page.d.ts +2 -0
  360. package/dist/src/routes/breadcrumb/main/search/page.d.ts.map +1 -0
  361. package/dist/src/routes/breadcrumb/main/search/page.js +1 -0
  362. package/dist/src/routes/breadcrumb/main/settings/devices/page.d.ts +2 -0
  363. package/dist/src/routes/breadcrumb/main/settings/devices/page.d.ts.map +1 -0
  364. package/dist/src/routes/breadcrumb/main/settings/devices/page.js +1 -0
  365. package/dist/src/routes/main/discover/page.d.ts +11 -0
  366. package/dist/src/routes/main/discover/page.d.ts.map +1 -0
  367. package/dist/src/routes/main/discover/page.js +1 -0
  368. package/dist/src/routes/main/files/page.d.ts +15 -0
  369. package/dist/src/routes/main/files/page.d.ts.map +1 -0
  370. package/dist/src/routes/main/files/page.js +1 -0
  371. package/dist/src/routes/main/search/page.d.ts +15 -0
  372. package/dist/src/routes/main/search/page.d.ts.map +1 -0
  373. package/dist/src/routes/main/search/page.js +1 -0
  374. package/dist/src/routes/main/settings/devices/page.d.ts +5 -0
  375. package/dist/src/routes/main/settings/devices/page.d.ts.map +1 -0
  376. package/dist/src/routes/main/settings/devices/page.js +1 -0
  377. package/dist/src/tiptap.css +28 -0
  378. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-advanced-search.d.ts +5 -0
  379. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-advanced-search.d.ts.map +1 -0
  380. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-advanced-search.js +1 -0
  381. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-roles-admin.d.ts +5 -0
  382. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-roles-admin.d.ts.map +1 -0
  383. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-roles-admin.js +1 -0
  384. package/dist/src/views/admin/layouts/sidebar/nav/get-admin-nav.d.ts.map +1 -1
  385. package/dist/src/views/admin/layouts/sidebar/nav/get-admin-nav.js +1 -1
  386. package/dist/src/views/admin/layouts/sidebar/sign-out.js +1 -1
  387. package/dist/src/views/admin/layouts/user-bar/client.js +1 -1
  388. package/dist/src/views/admin/views/core/advanced/cron/cron-table-view.d.ts.map +1 -1
  389. package/dist/src/views/admin/views/core/advanced/cron/cron-table-view.js +1 -1
  390. package/dist/src/views/admin/views/core/advanced/cron/run-action/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  391. package/dist/src/views/admin/views/core/advanced/cron/run-action/mutation-api.server.d.ts.map +1 -0
  392. package/dist/src/views/admin/views/core/advanced/cron/run-action/run-action.d.ts +1 -1
  393. package/dist/src/views/admin/views/core/advanced/cron/run-action/run-action.d.ts.map +1 -1
  394. package/dist/src/views/admin/views/core/advanced/cron/run-action/run-action.js +1 -1
  395. package/dist/src/views/admin/views/core/advanced/queue/queue-table-view.js +1 -1
  396. package/dist/src/views/admin/views/core/advanced/search/collection-status.d.ts +11 -0
  397. package/dist/src/views/admin/views/core/advanced/search/collection-status.d.ts.map +1 -0
  398. package/dist/src/views/admin/views/core/advanced/search/collection-status.js +1 -0
  399. package/dist/src/views/admin/views/core/advanced/search/collections-table.d.ts +6 -0
  400. package/dist/src/views/admin/views/core/advanced/search/collections-table.d.ts.map +1 -0
  401. package/dist/src/views/admin/views/core/advanced/search/collections-table.js +1 -0
  402. package/dist/src/views/admin/views/core/advanced/search/cron-warning.d.ts +3 -0
  403. package/dist/src/views/admin/views/core/advanced/search/cron-warning.d.ts.map +1 -0
  404. package/dist/src/views/admin/views/core/advanced/search/cron-warning.js +1 -0
  405. package/dist/src/views/admin/views/core/advanced/search/mutation-api.server.d.ts +10 -0
  406. package/dist/src/views/admin/views/core/advanced/search/mutation-api.server.d.ts.map +1 -0
  407. package/dist/src/views/admin/views/core/advanced/search/mutation-api.server.js +1 -0
  408. package/dist/src/views/admin/views/core/advanced/search/reindex-action.d.ts +6 -0
  409. package/dist/src/views/admin/views/core/advanced/search/reindex-action.d.ts.map +1 -0
  410. package/dist/src/views/admin/views/core/advanced/search/reindex-action.js +1 -0
  411. package/dist/src/views/admin/views/core/advanced/search/search-header-actions.d.ts +3 -0
  412. package/dist/src/views/admin/views/core/advanced/search/search-header-actions.d.ts.map +1 -0
  413. package/dist/src/views/admin/views/core/advanced/search/search-header-actions.js +1 -0
  414. package/dist/src/views/admin/views/core/advanced/search/search-view.d.ts +7 -0
  415. package/dist/src/views/admin/views/core/advanced/search/search-view.d.ts.map +1 -0
  416. package/dist/src/views/admin/views/core/advanced/search/search-view.js +1 -0
  417. package/dist/src/views/admin/views/core/dashboard/send-notification/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  418. package/dist/src/views/admin/views/core/dashboard/send-notification/mutation-api.server.d.ts.map +1 -0
  419. package/dist/src/views/admin/views/core/dashboard/send-notification/send-notification.js +1 -1
  420. package/dist/src/views/admin/views/core/debug/actions/clear-cache/clear-cache.js +1 -1
  421. package/dist/src/views/admin/views/core/debug/actions/clear-cache/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  422. package/dist/src/views/admin/views/core/debug/actions/clear-cache/mutation-api.server.d.ts.map +1 -0
  423. package/dist/src/views/admin/views/core/debug/system-logs/system-logs-view.d.ts.map +1 -1
  424. package/dist/src/views/admin/views/core/debug/system-logs/system-logs-view.js +1 -1
  425. package/dist/src/views/admin/views/core/staff/create/form.js +1 -1
  426. package/dist/src/views/admin/views/core/staff/create/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  427. package/dist/src/views/admin/views/core/staff/create/mutation-api.server.d.ts.map +1 -0
  428. package/dist/src/views/admin/views/core/staff/create/{search.action.d.ts → search.action.server.d.ts} +1 -1
  429. package/dist/src/views/admin/views/core/staff/create/search.action.server.d.ts.map +1 -0
  430. package/dist/src/views/admin/views/core/staff/edit/form.js +1 -1
  431. package/dist/src/views/admin/views/core/staff/edit/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  432. package/dist/src/views/admin/views/core/staff/edit/mutation-api.server.d.ts.map +1 -0
  433. package/dist/src/views/admin/views/core/staff/table/actions/{delete-action.d.ts → delete-action.server.d.ts} +1 -1
  434. package/dist/src/views/admin/views/core/staff/table/actions/delete-action.server.d.ts.map +1 -0
  435. package/dist/src/views/admin/views/core/staff/table/actions/staff-row-actions.js +1 -1
  436. package/dist/src/views/admin/views/core/staff/table/staff-table.d.ts.map +1 -1
  437. package/dist/src/views/admin/views/core/staff/table/staff-table.js +1 -1
  438. package/dist/src/views/admin/views/core/system/files/actions/delete-action.server.d.ts +9 -0
  439. package/dist/src/views/admin/views/core/system/files/actions/delete-action.server.d.ts.map +1 -0
  440. package/dist/src/views/admin/views/core/system/files/actions/delete-action.server.js +1 -0
  441. package/dist/src/views/admin/views/core/system/files/actions/file-row-actions.d.ts +8 -0
  442. package/dist/src/views/admin/views/core/system/files/actions/file-row-actions.d.ts.map +1 -0
  443. package/dist/src/views/admin/views/core/system/files/actions/file-row-actions.js +1 -0
  444. package/dist/src/views/admin/views/core/system/files/files-table-view.d.ts +5 -0
  445. package/dist/src/views/admin/views/core/system/files/files-table-view.d.ts.map +1 -0
  446. package/dist/src/views/admin/views/core/system/files/files-table-view.js +1 -0
  447. package/dist/src/views/admin/views/core/system/integrations/integration-card.d.ts.map +1 -1
  448. package/dist/src/views/admin/views/core/system/integrations/integration-card.js +1 -1
  449. package/dist/src/views/admin/views/core/system/integrations/integrations-view.d.ts.map +1 -1
  450. package/dist/src/views/admin/views/core/system/integrations/integrations-view.js +1 -1
  451. package/dist/src/views/admin/views/core/system/integrations/send-test-email/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  452. package/dist/src/views/admin/views/core/system/integrations/send-test-email/mutation-api.server.d.ts.map +1 -0
  453. package/dist/src/views/admin/views/core/system/integrations/send-test-email/use-form.js +1 -1
  454. package/dist/src/views/admin/views/core/system/integrations/test-storage/content.d.ts +3 -0
  455. package/dist/src/views/admin/views/core/system/integrations/test-storage/content.d.ts.map +1 -0
  456. package/dist/src/views/admin/views/core/system/integrations/test-storage/content.js +1 -0
  457. package/dist/src/views/admin/views/core/system/integrations/test-storage/test-storage.d.ts +3 -0
  458. package/dist/src/views/admin/views/core/system/integrations/test-storage/test-storage.d.ts.map +1 -0
  459. package/dist/src/views/admin/views/core/system/integrations/test-storage/test-storage.js +1 -0
  460. package/dist/src/views/admin/views/core/test.d.ts.map +1 -1
  461. package/dist/src/views/admin/views/core/test.js +1 -1
  462. package/dist/src/views/admin/views/core/users/actions/create/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  463. package/dist/src/views/admin/views/core/users/actions/create/mutation-api.server.d.ts.map +1 -0
  464. package/dist/src/views/admin/views/core/users/actions/create/use-form.js +1 -1
  465. package/dist/src/views/admin/views/core/users/actions/verify-email/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  466. package/dist/src/views/admin/views/core/users/actions/verify-email/mutation-api.server.d.ts.map +1 -0
  467. package/dist/src/views/admin/views/core/users/actions/verify-email/verify-email.js +1 -1
  468. package/dist/src/views/admin/views/core/users/roles/actions/actions.d.ts +3 -0
  469. package/dist/src/views/admin/views/core/users/roles/actions/actions.d.ts.map +1 -0
  470. package/dist/src/views/admin/views/core/users/roles/actions/actions.js +1 -0
  471. package/dist/src/views/admin/views/core/users/roles/actions/create-edit/create-edit.d.ts +15 -0
  472. package/dist/src/views/admin/views/core/users/roles/actions/create-edit/create-edit.d.ts.map +1 -0
  473. package/dist/src/views/admin/views/core/users/roles/actions/create-edit/create-edit.js +1 -0
  474. package/dist/src/views/admin/views/core/users/roles/actions/create-edit/mutation-api.server.d.ts +11 -0
  475. package/dist/src/views/admin/views/core/users/roles/actions/create-edit/mutation-api.server.d.ts.map +1 -0
  476. package/dist/src/views/admin/views/core/users/roles/actions/create-edit/mutation-api.server.js +1 -0
  477. package/dist/src/views/admin/views/core/users/roles/roles-admin-view.d.ts.map +1 -1
  478. package/dist/src/views/admin/views/core/users/roles/roles-admin-view.js +1 -1
  479. package/dist/src/views/admin/views/core/users/roles/table/actions/delete-action.d.ts +13 -0
  480. package/dist/src/views/admin/views/core/users/roles/table/actions/delete-action.d.ts.map +1 -0
  481. package/dist/src/views/admin/views/core/users/roles/table/actions/delete-action.js +1 -0
  482. package/dist/src/views/admin/views/core/users/roles/table/actions/delete-role.action.server.d.ts +9 -0
  483. package/dist/src/views/admin/views/core/users/roles/table/actions/delete-role.action.server.d.ts.map +1 -0
  484. package/dist/src/views/admin/views/core/users/roles/table/actions/delete-role.action.server.js +1 -0
  485. package/dist/src/views/admin/views/core/users/roles/table/actions/edit-action.d.ts +7 -0
  486. package/dist/src/views/admin/views/core/users/roles/table/actions/edit-action.d.ts.map +1 -0
  487. package/dist/src/views/admin/views/core/users/roles/table/actions/edit-action.js +1 -0
  488. package/dist/src/views/admin/views/core/users/roles/table/actions/row-actions.d.ts +22 -0
  489. package/dist/src/views/admin/views/core/users/roles/table/actions/row-actions.d.ts.map +1 -0
  490. package/dist/src/views/admin/views/core/users/roles/table/actions/row-actions.js +1 -0
  491. package/dist/src/views/admin/views/core/users/roles/table/actions/search-roles.action.server.d.ts +10 -0
  492. package/dist/src/views/admin/views/core/users/roles/table/actions/search-roles.action.server.d.ts.map +1 -0
  493. package/dist/src/views/admin/views/core/users/roles/table/actions/search-roles.action.server.js +1 -0
  494. package/dist/src/views/admin/views/core/users/{search-roles.action.d.ts → search-roles.action.server.d.ts} +1 -1
  495. package/dist/src/views/admin/views/core/users/search-roles.action.server.d.ts.map +1 -0
  496. package/dist/src/views/admin/views/core/users/show/edit-field.js +1 -1
  497. package/dist/src/views/admin/views/core/users/show/edit-name-code.js +1 -1
  498. package/dist/src/views/admin/views/core/users/show/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  499. package/dist/src/views/admin/views/core/users/show/mutation-api.server.d.ts.map +1 -0
  500. package/dist/src/views/admin/views/core/users/show/roles/edit-roles.d.ts +1 -1
  501. package/dist/src/views/admin/views/core/users/show/roles/edit-roles.d.ts.map +1 -1
  502. package/dist/src/views/admin/views/core/users/show/roles/edit-roles.js +1 -1
  503. package/dist/src/views/admin/views/core/users/show/roles/roles.d.ts +1 -1
  504. package/dist/src/views/admin/views/core/users/show/roles/roles.d.ts.map +1 -1
  505. package/dist/src/views/admin/views/core/users/show/roles/{search-roles.action.d.ts → search-roles.action.server.d.ts} +1 -1
  506. package/dist/src/views/admin/views/core/users/show/roles/search-roles.action.server.d.ts.map +1 -0
  507. package/dist/src/views/admin/views/core/users/show/roles/{update-roles.action.d.ts → update-roles.action.server.d.ts} +1 -1
  508. package/dist/src/views/admin/views/core/users/show/roles/update-roles.action.server.d.ts.map +1 -0
  509. package/dist/src/views/admin/views/core/users/show/show-user-admin-view.d.ts.map +1 -1
  510. package/dist/src/views/admin/views/core/users/show/show-user-admin-view.js +1 -1
  511. package/dist/src/views/admin/views/core/users/show/tabs.d.ts +5 -0
  512. package/dist/src/views/admin/views/core/users/show/tabs.d.ts.map +1 -0
  513. package/dist/src/views/admin/views/core/users/show/tabs.js +1 -0
  514. package/dist/src/views/admin/views/core/users/users-admin-view.d.ts.map +1 -1
  515. package/dist/src/views/admin/views/core/users/users-admin-view.js +1 -1
  516. package/dist/src/views/auth/password-reset/change-password-form/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  517. package/dist/src/views/auth/password-reset/change-password-form/mutation-api.server.d.ts.map +1 -0
  518. package/dist/src/views/auth/password-reset/change-password-form/use-form.js +1 -1
  519. package/dist/src/views/auth/password-reset/form/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  520. package/dist/src/views/auth/password-reset/form/mutation-api.server.d.ts.map +1 -0
  521. package/dist/src/views/auth/password-reset/form/use-form.js +1 -1
  522. package/dist/src/views/auth/settings/devices/device-item.d.ts +5 -0
  523. package/dist/src/views/auth/settings/devices/device-item.d.ts.map +1 -0
  524. package/dist/src/views/auth/settings/devices/device-item.js +1 -0
  525. package/dist/src/views/auth/settings/devices/devices.d.ts +2 -0
  526. package/dist/src/views/auth/settings/devices/devices.d.ts.map +1 -0
  527. package/dist/src/views/auth/settings/devices/devices.js +1 -0
  528. package/dist/src/views/auth/settings/devices/revoke-action.server.d.ts +9 -0
  529. package/dist/src/views/auth/settings/devices/revoke-action.server.d.ts.map +1 -0
  530. package/dist/src/views/auth/settings/devices/revoke-action.server.js +1 -0
  531. package/dist/src/views/auth/settings/devices/revoke-device-button.d.ts +5 -0
  532. package/dist/src/views/auth/settings/devices/revoke-device-button.d.ts.map +1 -0
  533. package/dist/src/views/auth/settings/devices/revoke-device-button.js +1 -0
  534. package/dist/src/views/auth/settings/nav.d.ts.map +1 -1
  535. package/dist/src/views/auth/settings/nav.js +1 -1
  536. package/dist/src/views/auth/settings/shell.d.ts.map +1 -1
  537. package/dist/src/views/auth/settings/shell.js +1 -1
  538. package/dist/src/views/auth/sign-in/form/form.d.ts.map +1 -1
  539. package/dist/src/views/auth/sign-in/form/form.js +1 -1
  540. package/dist/src/views/auth/sign-in/form/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  541. package/dist/src/views/auth/sign-in/form/mutation-api.server.d.ts.map +1 -0
  542. package/dist/src/views/auth/sign-in/form/use-form.js +1 -1
  543. package/dist/src/views/auth/sign-up/form/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  544. package/dist/src/views/auth/sign-up/form/mutation-api.server.d.ts.map +1 -0
  545. package/dist/src/views/auth/sign-up/form/use-form.d.ts +2 -2
  546. package/dist/src/views/auth/sign-up/form/use-form.d.ts.map +1 -1
  547. package/dist/src/views/auth/sign-up/form/use-form.js +1 -1
  548. package/dist/src/views/auth/sso/buttons/client.js +1 -1
  549. package/dist/src/views/auth/sso/buttons/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  550. package/dist/src/views/auth/sso/buttons/mutation-api.server.d.ts.map +1 -0
  551. package/dist/src/views/auth/sso/callback/client/client.js +1 -1
  552. package/dist/src/views/auth/sso/callback/client/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  553. package/dist/src/views/auth/sso/callback/client/mutation-api.server.d.ts.map +1 -0
  554. package/dist/src/views/error/error-view.d.ts +1 -1
  555. package/dist/src/views/error/error-view.d.ts.map +1 -1
  556. package/dist/src/views/files/actions/delete-action.server.d.ts +9 -0
  557. package/dist/src/views/files/actions/delete-action.server.d.ts.map +1 -0
  558. package/dist/src/views/files/actions/delete-action.server.js +1 -0
  559. package/dist/src/views/files/actions/file-row-actions.d.ts +6 -0
  560. package/dist/src/views/files/actions/file-row-actions.d.ts.map +1 -0
  561. package/dist/src/views/files/actions/file-row-actions.js +1 -0
  562. package/dist/src/views/files/my-files-table-view.d.ts +5 -0
  563. package/dist/src/views/files/my-files-table-view.d.ts.map +1 -0
  564. package/dist/src/views/files/my-files-table-view.js +1 -0
  565. package/dist/src/views/layouts/provider.d.ts +6 -2
  566. package/dist/src/views/layouts/provider.d.ts.map +1 -1
  567. package/dist/src/views/layouts/provider.js +1 -1
  568. package/dist/src/views/layouts/rate-limit-listener.d.ts +2 -0
  569. package/dist/src/views/layouts/rate-limit-listener.d.ts.map +1 -0
  570. package/dist/src/views/layouts/rate-limit-listener.js +1 -0
  571. package/dist/src/views/layouts/root-layout.d.ts.map +1 -1
  572. package/dist/src/views/layouts/root-layout.js +1 -1
  573. package/dist/src/views/layouts/theme/header/header.d.ts +1 -1
  574. package/dist/src/views/layouts/theme/header/header.d.ts.map +1 -1
  575. package/dist/src/views/layouts/theme/header/header.js +1 -1
  576. package/dist/src/views/layouts/theme/header/user/auth/client.d.ts.map +1 -1
  577. package/dist/src/views/layouts/theme/header/user/auth/client.js +1 -1
  578. package/dist/src/views/layouts/theme/header/user/auth/{log-out-mutation-api.d.ts → log-out-mutation-api.server.d.ts} +1 -1
  579. package/dist/src/views/layouts/theme/header/user/auth/log-out-mutation-api.server.d.ts.map +1 -0
  580. package/dist/src/views/search/discover-view.d.ts +2 -0
  581. package/dist/src/views/search/discover-view.d.ts.map +1 -0
  582. package/dist/src/views/search/discover-view.js +1 -0
  583. package/dist/src/views/search/registry.d.ts +9 -0
  584. package/dist/src/views/search/registry.d.ts.map +1 -0
  585. package/dist/src/views/search/registry.js +1 -0
  586. package/dist/src/views/search/search-controls.d.ts +8 -0
  587. package/dist/src/views/search/search-controls.d.ts.map +1 -0
  588. package/dist/src/views/search/search-controls.js +1 -0
  589. package/dist/src/views/search/search-feed.d.ts +17 -0
  590. package/dist/src/views/search/search-feed.d.ts.map +1 -0
  591. package/dist/src/views/search/search-feed.js +1 -0
  592. package/dist/src/views/search/search-view.d.ts +4 -0
  593. package/dist/src/views/search/search-view.d.ts.map +1 -0
  594. package/dist/src/views/search/search-view.js +1 -0
  595. package/dist/src/views/search/types.d.ts +34 -0
  596. package/dist/src/views/search/types.d.ts.map +1 -0
  597. package/dist/src/views/search/types.js +1 -0
  598. package/dist/src/vitnode.config.d.ts +22 -18
  599. package/dist/src/vitnode.config.d.ts.map +1 -1
  600. package/dist/src/vitnode.config.js +1 -1
  601. package/dist/src/ws/manager.d.ts.map +1 -1
  602. package/dist/src/ws/manager.js +1 -1
  603. package/dist/tsconfig.build.tsbuildinfo +1 -0
  604. package/package.json +42 -40
  605. package/src/locales/en.json +258 -8
  606. package/src/locales/index.ts +15 -0
  607. package/src/routes/admin/core/advanced/cron/page.tsx +10 -1
  608. package/src/routes/admin/core/advanced/search/page.tsx +50 -0
  609. package/src/routes/admin/core/system/files/page.tsx +51 -0
  610. package/src/routes/admin/core/users/[id]/page.tsx +1 -1
  611. package/src/routes/admin/core/users/roles/page.tsx +13 -2
  612. package/src/routes/blank/test/page.tsx +1 -1
  613. package/src/routes/breadcrumb/admin/core/advanced/cron/page.tsx +5 -0
  614. package/src/routes/breadcrumb/admin/core/advanced/queue/page.tsx +5 -0
  615. package/src/routes/breadcrumb/admin/core/advanced/search/page.tsx +5 -0
  616. package/src/routes/breadcrumb/admin/core/page.tsx +5 -0
  617. package/src/routes/breadcrumb/admin/core/system/files/page.tsx +5 -0
  618. package/src/routes/breadcrumb/admin/core/system/integrations/page.tsx +5 -0
  619. package/src/routes/breadcrumb/admin/core/users/page.tsx +5 -0
  620. package/src/routes/breadcrumb/admin/core/users/roles/page.tsx +5 -0
  621. package/src/routes/breadcrumb/main/discover/page.tsx +14 -0
  622. package/src/routes/breadcrumb/main/page.tsx +1 -1
  623. package/src/routes/breadcrumb/main/search/page.tsx +11 -0
  624. package/src/routes/breadcrumb/main/settings/devices/page.tsx +17 -0
  625. package/src/routes/main/discover/page.tsx +41 -0
  626. package/src/routes/main/files/page.tsx +50 -0
  627. package/src/routes/main/search/page.tsx +43 -0
  628. package/src/routes/main/settings/devices/page.tsx +15 -0
  629. package/tsconfig.build.json +5 -0
  630. package/dist/scripts/shared/file-utils.test.d.ts +0 -2
  631. package/dist/scripts/shared/file-utils.test.d.ts.map +0 -1
  632. package/dist/src/api/lib/cache.test.d.ts +0 -2
  633. package/dist/src/api/lib/cache.test.d.ts.map +0 -1
  634. package/dist/src/api/lib/cache.test.js +0 -1
  635. package/dist/src/api/models/email.test.d.ts +0 -2
  636. package/dist/src/api/models/email.test.d.ts.map +0 -1
  637. package/dist/src/api/models/email.test.js +0 -1
  638. package/dist/src/api/models/queue.test.d.ts +0 -2
  639. package/dist/src/api/models/queue.test.d.ts.map +0 -1
  640. package/dist/src/api/models/queue.test.js +0 -1
  641. package/dist/src/components/form/fields/combobox.test.d.ts +0 -2
  642. package/dist/src/components/form/fields/combobox.test.d.ts.map +0 -1
  643. package/dist/src/components/form/fields/combobox.test.js +0 -1
  644. package/dist/src/lib/api/get-next-cron-run-date.test.d.ts +0 -2
  645. package/dist/src/lib/api/get-next-cron-run-date.test.d.ts.map +0 -1
  646. package/dist/src/lib/api/get-next-cron-run-date.test.js +0 -1
  647. package/dist/src/lib/api/get-queue-backoff-date.test.d.ts +0 -2
  648. package/dist/src/lib/api/get-queue-backoff-date.test.d.ts.map +0 -1
  649. package/dist/src/lib/api/get-queue-backoff-date.test.js +0 -1
  650. package/dist/src/lib/api/resolve-queue-task-outcome.test.d.ts +0 -2
  651. package/dist/src/lib/api/resolve-queue-task-outcome.test.d.ts.map +0 -1
  652. package/dist/src/lib/api/resolve-queue-task-outcome.test.js +0 -1
  653. package/dist/src/lib/api/should-cron-job-run.test.d.ts +0 -2
  654. package/dist/src/lib/api/should-cron-job-run.test.d.ts.map +0 -1
  655. package/dist/src/lib/api/should-cron-job-run.test.js +0 -1
  656. package/dist/src/lib/api/validate-cron-schedule.test.d.ts +0 -2
  657. package/dist/src/lib/api/validate-cron-schedule.test.d.ts.map +0 -1
  658. package/dist/src/lib/api/validate-cron-schedule.test.js +0 -1
  659. package/dist/src/lib/colors.test.d.ts +0 -2
  660. package/dist/src/lib/colors.test.d.ts.map +0 -1
  661. package/dist/src/lib/colors.test.js +0 -1
  662. package/dist/src/lib/fetcher/cookie-from-string-to-object.test.d.ts +0 -2
  663. package/dist/src/lib/fetcher/cookie-from-string-to-object.test.d.ts.map +0 -1
  664. package/dist/src/lib/fetcher/cookie-from-string-to-object.test.js +0 -1
  665. package/dist/src/lib/fetcher/helpers.test.d.ts +0 -2
  666. package/dist/src/lib/fetcher/helpers.test.d.ts.map +0 -1
  667. package/dist/src/lib/fetcher/helpers.test.js +0 -1
  668. package/dist/src/lib/helpers/auto-form.test.d.ts +0 -2
  669. package/dist/src/lib/helpers/auto-form.test.d.ts.map +0 -1
  670. package/dist/src/lib/helpers/auto-form.test.js +0 -1
  671. package/dist/src/lib/special-characters.test.d.ts +0 -2
  672. package/dist/src/lib/special-characters.test.d.ts.map +0 -1
  673. package/dist/src/lib/special-characters.test.js +0 -1
  674. package/dist/src/views/admin/views/core/advanced/cron/run-action/mutation-api.d.ts.map +0 -1
  675. package/dist/src/views/admin/views/core/dashboard/send-notification/mutation-api.d.ts.map +0 -1
  676. package/dist/src/views/admin/views/core/debug/actions/clear-cache/mutation-api.d.ts.map +0 -1
  677. package/dist/src/views/admin/views/core/staff/create/mutation-api.d.ts.map +0 -1
  678. package/dist/src/views/admin/views/core/staff/create/search.action.d.ts.map +0 -1
  679. package/dist/src/views/admin/views/core/staff/edit/mutation-api.d.ts.map +0 -1
  680. package/dist/src/views/admin/views/core/staff/table/actions/delete-action.d.ts.map +0 -1
  681. package/dist/src/views/admin/views/core/system/integrations/send-test-email/mutation-api.d.ts.map +0 -1
  682. package/dist/src/views/admin/views/core/users/actions/create/mutation-api.d.ts.map +0 -1
  683. package/dist/src/views/admin/views/core/users/actions/verify-email/mutation-api.d.ts.map +0 -1
  684. package/dist/src/views/admin/views/core/users/search-roles.action.d.ts.map +0 -1
  685. package/dist/src/views/admin/views/core/users/show/mutation-api.d.ts.map +0 -1
  686. package/dist/src/views/admin/views/core/users/show/roles/search-roles.action.d.ts.map +0 -1
  687. package/dist/src/views/admin/views/core/users/show/roles/update-roles.action.d.ts.map +0 -1
  688. package/dist/src/views/auth/password-reset/change-password-form/mutation-api.d.ts.map +0 -1
  689. package/dist/src/views/auth/password-reset/form/mutation-api.d.ts.map +0 -1
  690. package/dist/src/views/auth/sign-in/form/mutation-api.d.ts.map +0 -1
  691. package/dist/src/views/auth/sign-up/form/mutation-api.d.ts.map +0 -1
  692. package/dist/src/views/auth/sso/buttons/mutation-api.d.ts.map +0 -1
  693. package/dist/src/views/auth/sso/callback/client/mutation-api.d.ts.map +0 -1
  694. package/dist/src/views/layouts/theme/header/user/auth/log-out-mutation-api.d.ts.map +0 -1
  695. package/dist/tsconfig.tsbuildinfo +0 -1
  696. /package/dist/src/views/admin/views/core/advanced/cron/run-action/{mutation-api.js → mutation-api.server.js} +0 -0
  697. /package/dist/src/views/admin/views/core/dashboard/send-notification/{mutation-api.js → mutation-api.server.js} +0 -0
  698. /package/dist/src/views/admin/views/core/debug/actions/clear-cache/{mutation-api.js → mutation-api.server.js} +0 -0
  699. /package/dist/src/views/admin/views/core/staff/create/{mutation-api.js → mutation-api.server.js} +0 -0
  700. /package/dist/src/views/admin/views/core/staff/create/{search.action.js → search.action.server.js} +0 -0
  701. /package/dist/src/views/admin/views/core/staff/edit/{mutation-api.js → mutation-api.server.js} +0 -0
  702. /package/dist/src/views/admin/views/core/staff/table/actions/{delete-action.js → delete-action.server.js} +0 -0
  703. /package/dist/src/views/admin/views/core/system/integrations/send-test-email/{mutation-api.js → mutation-api.server.js} +0 -0
  704. /package/dist/src/views/admin/views/core/users/actions/create/{mutation-api.js → mutation-api.server.js} +0 -0
  705. /package/dist/src/views/admin/views/core/users/actions/verify-email/{mutation-api.js → mutation-api.server.js} +0 -0
  706. /package/dist/src/views/admin/views/core/users/{search-roles.action.js → search-roles.action.server.js} +0 -0
  707. /package/dist/src/views/admin/views/core/users/show/{mutation-api.js → mutation-api.server.js} +0 -0
  708. /package/dist/src/views/admin/views/core/users/show/roles/{search-roles.action.js → search-roles.action.server.js} +0 -0
  709. /package/dist/src/views/admin/views/core/users/show/roles/{update-roles.action.js → update-roles.action.server.js} +0 -0
  710. /package/dist/src/views/auth/password-reset/change-password-form/{mutation-api.js → mutation-api.server.js} +0 -0
  711. /package/dist/src/views/auth/password-reset/form/{mutation-api.js → mutation-api.server.js} +0 -0
  712. /package/dist/src/views/auth/sign-in/form/{mutation-api.js → mutation-api.server.js} +0 -0
  713. /package/dist/src/views/auth/sign-up/form/{mutation-api.js → mutation-api.server.js} +0 -0
  714. /package/dist/src/views/auth/sso/buttons/{mutation-api.js → mutation-api.server.js} +0 -0
  715. /package/dist/src/views/auth/sso/callback/client/{mutation-api.js → mutation-api.server.js} +0 -0
  716. /package/dist/src/views/layouts/theme/header/user/auth/{log-out-mutation-api.js → log-out-mutation-api.server.js} +0 -0
@@ -0,0 +1,34 @@
1
+ import { z } from "zod";
2
+ export declare const listDevicesRoute: import("../../../../api/lib/route").Route<"@vitnode/core", {
3
+ method: "get";
4
+ description: string;
5
+ path: "/devices";
6
+ responses: {
7
+ 200: {
8
+ content: {
9
+ "application/json": {
10
+ schema: z.ZodObject<{
11
+ devices: z.ZodArray<z.ZodObject<{
12
+ publicId: z.ZodString;
13
+ ipAddress: z.ZodString;
14
+ os: z.ZodString;
15
+ browser: z.ZodString;
16
+ deviceType: z.ZodEnum<{
17
+ mobile: "mobile";
18
+ desktop: "desktop";
19
+ tablet: "tablet";
20
+ }>;
21
+ lastSeen: z.ZodDate;
22
+ expiresAt: z.ZodDate;
23
+ isCurrent: z.ZodBoolean;
24
+ }, z.core.$strip>>;
25
+ }, z.core.$strip>;
26
+ };
27
+ };
28
+ description: string;
29
+ };
30
+ };
31
+ } & {
32
+ path: string;
33
+ }>;
34
+ //# sourceMappingURL=devices.route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devices.route.d.ts","sourceRoot":"","sources":["../../../../../../src/api/modules/users/routes/devices.route.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkF3B,CAAC"}
@@ -0,0 +1 @@
1
+ import{and,desc,eq,gt}from"drizzle-orm";import{getCookie}from"hono/cookie";import{HTTPException}from"hono/http-exception";import{z}from"zod";import{buildRoute}from"../../../lib/route.js";import{CONFIG_PLUGIN}from"../../../../config.js";import{core_sessions,core_sessions_known_devices}from"../../../../database/sessions.js";import{parseUserAgent}from"../../../../lib/api/parse-user-agent.js";export const listDevicesRoute=buildRoute({pluginId:CONFIG_PLUGIN.pluginId,route:{method:"get",description:"List the devices the current user is signed in on.",path:"/devices",responses:{200:{content:{"application/json":{schema:z.object({devices:z.array(z.object({publicId:z.string(),ipAddress:z.string(),os:z.string(),browser:z.string(),deviceType:z.enum(["desktop","tablet","mobile"]),lastSeen:z.date(),expiresAt:z.date(),isCurrent:z.boolean()}))})}},description:"List of the current user's devices"}}},handler:async c=>{const user=c.get("user");if(!user){throw new HTTPException(401,{message:"Unauthorized"})}const currentPublicId=getCookie(c,c.get("core").authorization.deviceCookieName);const rows=await c.get("db").select({publicId:core_sessions_known_devices.publicId,ipAddress:core_sessions_known_devices.ipAddress,userAgent:core_sessions_known_devices.userAgent,lastSeen:core_sessions_known_devices.lastSeen,expiresAt:core_sessions.expiresAt}).from(core_sessions).innerJoin(core_sessions_known_devices,eq(core_sessions.deviceId,core_sessions_known_devices.id)).where(and(eq(core_sessions.userId,user.id),gt(core_sessions.expiresAt,new Date))).orderBy(desc(core_sessions_known_devices.lastSeen));const byPublicId=new Map;for(const row of rows){const existing=byPublicId.get(row.publicId);if(!existing||row.expiresAt>existing.expiresAt){byPublicId.set(row.publicId,row)}}const devices=[...byPublicId.values()].map(({userAgent,publicId,...device})=>({...device,publicId,...parseUserAgent(userAgent),isCurrent:publicId===currentPublicId}));return c.json({devices})}});
@@ -0,0 +1,42 @@
1
+ import { z } from "@hono/zod-openapi";
2
+ export declare const revokeDeviceRoute: import("../../../../api/lib/route").Route<"@vitnode/core", {
3
+ method: "delete";
4
+ description: string;
5
+ path: "/devices/{publicId}";
6
+ request: {
7
+ params: z.ZodObject<{
8
+ publicId: z.ZodString;
9
+ }, z.core.$strip>;
10
+ };
11
+ responses: {
12
+ 200: {
13
+ description: string;
14
+ };
15
+ 400: {
16
+ content: {
17
+ "application/json": {
18
+ schema: z.ZodObject<{
19
+ error: z.ZodString;
20
+ }, z.core.$strip>;
21
+ };
22
+ };
23
+ description: string;
24
+ };
25
+ 401: {
26
+ description: string;
27
+ };
28
+ 404: {
29
+ content: {
30
+ "application/json": {
31
+ schema: z.ZodObject<{
32
+ error: z.ZodString;
33
+ }, z.core.$strip>;
34
+ };
35
+ };
36
+ description: string;
37
+ };
38
+ };
39
+ } & {
40
+ path: string;
41
+ }>;
42
+ //# sourceMappingURL=revoke-device.route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revoke-device.route.d.ts","sourceRoot":"","sources":["../../../../../../src/api/modules/users/routes/revoke-device.route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAgBtC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmF5B,CAAC"}
@@ -0,0 +1 @@
1
+ import{z}from"@hono/zod-openapi";import{and,eq}from"drizzle-orm";import{getCookie}from"hono/cookie";import{HTTPException}from"hono/http-exception";import{buildRoute}from"../../../lib/route.js";import{adminSessionCacheKey,sessionCacheKey}from"../../../models/session-cache.js";import{CONFIG_PLUGIN}from"../../../../config.js";import{core_sessions,core_sessions_known_devices}from"../../../../database/sessions.js";export const revokeDeviceRoute=buildRoute({pluginId:CONFIG_PLUGIN.pluginId,route:{method:"delete",description:"Sign out one of the current user's devices.",path:"/devices/{publicId}",request:{params:z.object({publicId:z.string().openapi({example:"a1b2c3"})})},responses:{200:{description:"Device signed out"},400:{content:{"application/json":{schema:z.object({error:z.string()})}},description:"Cannot revoke the current device"},401:{description:"Not signed in"},404:{content:{"application/json":{schema:z.object({error:z.string()})}},description:"Device not found"}}},handler:async c=>{const user=c.get("user");if(!user){throw new HTTPException(401,{message:"Unauthorized"})}const{publicId}=c.req.valid("param");const currentPublicId=getCookie(c,c.get("core").authorization.deviceCookieName);if(publicId===currentPublicId){return c.json({error:"Cannot revoke the current device"},400)}const db=c.get("db");const[device]=await db.select({id:core_sessions_known_devices.id}).from(core_sessions_known_devices).where(eq(core_sessions_known_devices.publicId,publicId));if(!device){return c.json({error:"Device not found"},404)}const where=and(eq(core_sessions.userId,user.id),eq(core_sessions.deviceId,device.id));const sessions=await db.select({token:core_sessions.token}).from(core_sessions).where(where);await db.delete(core_sessions).where(where);const cache=c.get("cache");await cache.deleteSystem(sessions.flatMap(({token})=>[sessionCacheKey(token,device.id),adminSessionCacheKey(token,device.id)]));return c.body(null,200)}});
@@ -228,7 +228,199 @@ export declare const usersModule: import("../../../api/lib/module").BuildModuleR
228
228
  };
229
229
  } & {
230
230
  path: string;
231
- }>], import("../../../api/lib/module").BuildModuleReturn<"@vitnode/core", "sso", [import("../../lib/route").Route<"@vitnode/core", {
231
+ }>, import("../../lib/route").Route<"@vitnode/core", {
232
+ method: "get";
233
+ description: string;
234
+ path: "/devices";
235
+ responses: {
236
+ 200: {
237
+ content: {
238
+ "application/json": {
239
+ schema: import("zod").ZodObject<{
240
+ devices: import("zod").ZodArray<import("zod").ZodObject<{
241
+ publicId: import("zod").ZodString;
242
+ ipAddress: import("zod").ZodString;
243
+ os: import("zod").ZodString;
244
+ browser: import("zod").ZodString;
245
+ deviceType: import("zod").ZodEnum<{
246
+ mobile: "mobile";
247
+ desktop: "desktop";
248
+ tablet: "tablet";
249
+ }>;
250
+ lastSeen: import("zod").ZodDate;
251
+ expiresAt: import("zod").ZodDate;
252
+ isCurrent: import("zod").ZodBoolean;
253
+ }, import("zod/v4/core").$strip>>;
254
+ }, import("zod/v4/core").$strip>;
255
+ };
256
+ };
257
+ description: string;
258
+ };
259
+ };
260
+ } & {
261
+ path: string;
262
+ }>, import("../../lib/route").Route<"@vitnode/core", {
263
+ method: "delete";
264
+ description: string;
265
+ path: "/devices/{publicId}";
266
+ request: {
267
+ params: import("zod").ZodObject<{
268
+ publicId: import("zod").ZodString;
269
+ }, import("zod/v4/core").$strip>;
270
+ };
271
+ responses: {
272
+ 200: {
273
+ description: string;
274
+ };
275
+ 400: {
276
+ content: {
277
+ "application/json": {
278
+ schema: import("zod").ZodObject<{
279
+ error: import("zod").ZodString;
280
+ }, import("zod/v4/core").$strip>;
281
+ };
282
+ };
283
+ description: string;
284
+ };
285
+ 401: {
286
+ description: string;
287
+ };
288
+ 404: {
289
+ content: {
290
+ "application/json": {
291
+ schema: import("zod").ZodObject<{
292
+ error: import("zod").ZodString;
293
+ }, import("zod/v4/core").$strip>;
294
+ };
295
+ };
296
+ description: string;
297
+ };
298
+ };
299
+ } & {
300
+ path: string;
301
+ }>], (import("../../../api/lib/module").BuildModuleReturn<"@vitnode/core", "files", [import("../../lib/route").Route<"@vitnode/core", {
302
+ method: "get";
303
+ description: string;
304
+ path: "/";
305
+ request: {
306
+ query: import("zod").ZodObject<{
307
+ cursor: import("zod").ZodOptional<import("zod").ZodString>;
308
+ first: import("zod").ZodOptional<import("zod").ZodString>;
309
+ last: import("zod").ZodOptional<import("zod").ZodString>;
310
+ order: import("zod").ZodOptional<import("zod").ZodEnum<{
311
+ asc: "asc";
312
+ desc: "desc";
313
+ }>>;
314
+ orderBy: import("zod").ZodOptional<import("zod").ZodEnum<{
315
+ name: "name";
316
+ createdAt: "createdAt";
317
+ size: "size";
318
+ }>>;
319
+ search: import("zod").ZodOptional<import("zod").ZodString>;
320
+ }, import("zod/v4/core").$strip>;
321
+ };
322
+ responses: {
323
+ 200: {
324
+ content: {
325
+ "application/json": {
326
+ schema: import("zod").ZodObject<{
327
+ edges: import("zod").ZodArray<import("zod").ZodObject<{
328
+ id: import("zod").ZodNumber;
329
+ name: import("zod").ZodString;
330
+ folder: import("zod").ZodString;
331
+ mimeType: import("zod").ZodNullable<import("zod").ZodString>;
332
+ size: import("zod").ZodNumber;
333
+ metadata: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
334
+ createdAt: import("zod").ZodDate;
335
+ dimensions: import("zod").ZodNullable<import("zod").ZodObject<{
336
+ width: import("zod").ZodNumber;
337
+ height: import("zod").ZodNumber;
338
+ }, import("zod/v4/core").$strip>>;
339
+ url: import("zod").ZodNullable<import("zod").ZodString>;
340
+ }, import("zod/v4/core").$strip>>;
341
+ pageInfo: import("zod").ZodObject<{
342
+ totalCount: import("zod").ZodNumber;
343
+ count: import("zod").ZodNumber;
344
+ hasNextPage: import("zod").ZodBoolean;
345
+ hasPreviousPage: import("zod").ZodBoolean;
346
+ startCursor: import("zod").ZodNullable<import("zod").ZodNumber>;
347
+ endCursor: import("zod").ZodNullable<import("zod").ZodNumber>;
348
+ }, import("zod/v4/core").$strip>;
349
+ }, import("zod/v4/core").$strip>;
350
+ };
351
+ };
352
+ description: string;
353
+ };
354
+ 401: {
355
+ description: string;
356
+ };
357
+ };
358
+ } & {
359
+ path: string;
360
+ }>, import("../../lib/route").Route<"@vitnode/core", {
361
+ method: "get";
362
+ description: string;
363
+ path: "/{id}/download";
364
+ request: {
365
+ params: import("zod").ZodObject<{
366
+ id: import("zod").ZodString;
367
+ }, import("zod/v4/core").$strip>;
368
+ };
369
+ responses: {
370
+ 200: {
371
+ content: {
372
+ "application/octet-stream": {
373
+ schema: import("zod").ZodString;
374
+ };
375
+ };
376
+ description: string;
377
+ };
378
+ 401: {
379
+ description: string;
380
+ };
381
+ 404: {
382
+ content: {
383
+ "application/json": {
384
+ schema: import("zod").ZodObject<{
385
+ error: import("zod").ZodString;
386
+ }, import("zod/v4/core").$strip>;
387
+ };
388
+ };
389
+ description: string;
390
+ };
391
+ };
392
+ } & {
393
+ path: string;
394
+ }>, import("../../lib/route").Route<"@vitnode/core", {
395
+ method: "delete";
396
+ description: string;
397
+ path: "/{id}";
398
+ request: {
399
+ params: import("zod").ZodObject<{
400
+ id: import("zod").ZodString;
401
+ }, import("zod/v4/core").$strip>;
402
+ };
403
+ responses: {
404
+ 200: {
405
+ description: string;
406
+ };
407
+ 401: {
408
+ description: string;
409
+ };
410
+ 404: {
411
+ content: {
412
+ "application/json": {
413
+ schema: import("zod").ZodObject<{
414
+ error: import("zod").ZodString;
415
+ }, import("zod/v4/core").$strip>;
416
+ };
417
+ };
418
+ description: string;
419
+ };
420
+ };
421
+ } & {
422
+ path: string;
423
+ }>], import("../../../api/lib/module").BaseBuildModuleReturn<"@vitnode/core", string, import("../../lib/route").Route<"@vitnode/core", import("@hono/zod-openapi").RouteConfig>[]>[]> | import("../../../api/lib/module").BuildModuleReturn<"@vitnode/core", "sso", [import("../../lib/route").Route<"@vitnode/core", {
232
424
  method: "get";
233
425
  description: string;
234
426
  path: "/{providerId}/callback";
@@ -282,5 +474,5 @@ export declare const usersModule: import("../../../api/lib/module").BuildModuleR
282
474
  };
283
475
  } & {
284
476
  path: string;
285
- }>], import("../../../api/lib/module").BaseBuildModuleReturn<"@vitnode/core", string, import("../../lib/route").Route<"@vitnode/core", import("@hono/zod-openapi").RouteConfig>[]>[]>[]>;
477
+ }>], import("../../../api/lib/module").BaseBuildModuleReturn<"@vitnode/core", string, import("../../lib/route").Route<"@vitnode/core", import("@hono/zod-openapi").RouteConfig>[]>[]>)[]>;
286
478
  //# sourceMappingURL=users.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"users.module.d.ts","sourceRoot":"","sources":["../../../../../src/api/modules/users/users.module.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iLActB,CAAC"}
1
+ {"version":3,"file":"users.module.d.ts","sourceRoot":"","sources":["../../../../../src/api/modules/users/users.module.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kLAgBtB,CAAC"}
@@ -1 +1 @@
1
- import{buildModule}from"../../lib/module.js";import{CONFIG_PLUGIN}from"../../../config.js";import{changePasswordRoute}from"./routes/change-password.route.js";import{permissionsRoute}from"./routes/permissions.route.js";import{resetPasswordRoute}from"./routes/reset-passowrd.route.js";import{sessionRoute}from"./routes/session.route.js";import{signInRoute}from"./routes/sign-in.route.js";import{signOutRoute}from"./routes/sign-out.route.js";import{signUpRoute}from"./routes/sign-up.route.js";import{testRoute}from"./routes/test.route.js";import{ssoUserModule}from"./sso/sso.module.js";export const usersModule=buildModule({pluginId:CONFIG_PLUGIN.pluginId,name:"users",routes:[sessionRoute,signInRoute,signOutRoute,signUpRoute,testRoute,resetPasswordRoute,changePasswordRoute,permissionsRoute],modules:[ssoUserModule]});
1
+ import{buildModule}from"../../lib/module.js";import{CONFIG_PLUGIN}from"../../../config.js";import{userFilesModule}from"./files/files.module.js";import{changePasswordRoute}from"./routes/change-password.route.js";import{listDevicesRoute}from"./routes/devices.route.js";import{permissionsRoute}from"./routes/permissions.route.js";import{resetPasswordRoute}from"./routes/reset-passowrd.route.js";import{revokeDeviceRoute}from"./routes/revoke-device.route.js";import{sessionRoute}from"./routes/session.route.js";import{signInRoute}from"./routes/sign-in.route.js";import{signOutRoute}from"./routes/sign-out.route.js";import{signUpRoute}from"./routes/sign-up.route.js";import{testRoute}from"./routes/test.route.js";import{ssoUserModule}from"./sso/sso.module.js";export const usersModule=buildModule({pluginId:CONFIG_PLUGIN.pluginId,name:"users",routes:[sessionRoute,signInRoute,signOutRoute,signUpRoute,testRoute,resetPasswordRoute,changePasswordRoute,permissionsRoute,listDevicesRoute,revokeDeviceRoute],modules:[ssoUserModule,userFilesModule]});
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/api/plugin.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,qBAAqB,6CA4ChC,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/api/plugin.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,qBAAqB,6CA2DhC,CAAC"}
@@ -1 +1 @@
1
- import{CONFIG_PLUGIN}from"../config.js";import{buildApiPlugin}from"./lib/plugin.js";import{adminModule}from"./modules/admin/admin.module.js";import{cronModule}from"./modules/cron/cron.module.js";import{middlewareModule}from"./modules/middleware/middleware.module.js";import{queueModule}from"./modules/queue/queue.module.js";import{usersModule}from"./modules/users/users.module.js";export const newBuildPluginApiCore=buildApiPlugin({pluginId:CONFIG_PLUGIN.pluginId,modules:[middlewareModule,usersModule,adminModule,cronModule,queueModule],permissionStaff:{moderator:{users:["can_edit"]},admin:{users:["can_view",{permission:"can_create",dependsOn:["can_view"]},{permission:"can_edit",dependsOn:["can_view"]},{permission:"can_edit_admin",dependsOn:["can_view"]}],roles:["can_manage"],debug:["can_view",{permission:"can_clear_cache",dependsOn:["can_view"]}],system:["can_view",{permission:"can_send_test_email",dependsOn:["can_view"]}],queue:["can_view"],staff_moderators:["can_view",{permission:"can_create",dependsOn:["can_view"]},{permission:"can_edit",dependsOn:["can_view"]},{permission:"can_delete",dependsOn:["can_view"]}],staff_admins:["can_view",{permission:"can_create",dependsOn:["can_view"]},{permission:"can_edit",dependsOn:["can_view"]},{permission:"can_delete",dependsOn:["can_view"]}]}}});
1
+ import{CONFIG_PLUGIN}from"../config.js";import{buildApiPlugin}from"./lib/plugin.js";import{adminModule}from"./modules/admin/admin.module.js";import{cronModule}from"./modules/cron/cron.module.js";import{middlewareModule}from"./modules/middleware/middleware.module.js";import{queueModule}from"./modules/queue/queue.module.js";import{searchModule}from"./modules/search/search.module.js";import{usersModule}from"./modules/users/users.module.js";export const newBuildPluginApiCore=buildApiPlugin({pluginId:CONFIG_PLUGIN.pluginId,modules:[middlewareModule,usersModule,adminModule,cronModule,queueModule,searchModule],permissionStaff:{moderator:{users:["can_edit"]},admin:{users:["can_view",{permission:"can_create",dependsOn:["can_view"]},{permission:"can_edit",dependsOn:["can_view"]},{permission:"can_edit_admin",dependsOn:["can_view"]}],roles:["can_view",{permission:"can_create",dependsOn:["can_view"]},{permission:"can_edit",dependsOn:["can_view"]},{permission:"can_edit_admin",dependsOn:["can_edit"]},{permission:"can_delete",dependsOn:["can_view"]},{permission:"can_delete_admin",dependsOn:["can_delete"]}],debug:["can_view",{permission:"can_clear_cache",dependsOn:["can_view"]}],system:["can_view",{permission:"can_send_test_email",dependsOn:["can_view"]},{permission:"can_test_storage",dependsOn:["can_view"]}],files:["can_view",{permission:"can_download",dependsOn:["can_view"]},{permission:"can_delete",dependsOn:["can_view"]}],queue:["can_view"],cron:["can_view",{permission:"can_run",dependsOn:["can_view"]}],staff_moderators:["can_view",{permission:"can_create",dependsOn:["can_view"]},{permission:"can_edit",dependsOn:["can_view"]},{permission:"can_delete",dependsOn:["can_view"]}],staff_admins:["can_view",{permission:"can_create",dependsOn:["can_view"]},{permission:"can_edit",dependsOn:["can_view"]},{permission:"can_delete",dependsOn:["can_view"]}]}}});
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ export declare const FilePreview: ({ mimeType, name, url, }: {
3
+ mimeType: null | string;
4
+ name: string;
5
+ url: null | string;
6
+ }) => React.JSX.Element;
7
+ //# sourceMappingURL=file-preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-preview.d.ts","sourceRoot":"","sources":["../../../../src/components/files/file-preview.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,eAAO,MAAM,WAAW,GAAI,0BAIzB;IACD,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,IAAI,GAAG,MAAM,CAAC;CACpB,sBAqBA,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx}from"react/jsx-runtime";import{FileIcon}from"lucide-react";import React from"react";export const FilePreview=({mimeType,name,url})=>{const[failed,setFailed]=React.useState(false);const isImage=!!url&&!failed&&(mimeType?.startsWith("image/")??false);if(!isImage){return _jsx("div",{className:"bg-muted text-muted-foreground flex size-10 items-center justify-center rounded-md",children:_jsx(FileIcon,{className:"size-4"})})}return _jsx("img",{alt:name,className:"bg-muted size-10 rounded-md object-cover",loading:"lazy",onError:()=>setFailed(true),src:url})};
@@ -0,0 +1,6 @@
1
+ export declare const MetadataCell: ({ emptyLabel, metadata, title, }: {
2
+ emptyLabel: string;
3
+ metadata: Record<string, unknown>;
4
+ title: string;
5
+ }) => import("react").JSX.Element;
6
+ //# sourceMappingURL=metadata-cell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-cell.d.ts","sourceRoot":"","sources":["../../../../src/components/files/metadata-cell.tsx"],"names":[],"mappings":"AAYA,eAAO,MAAM,YAAY,GAAI,kCAI1B;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;CACf,gCAwBA,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{BracesIcon}from"lucide-react";import{Badge}from"../ui/badge.js";import{Popover,PopoverContent,PopoverTitle,PopoverTrigger}from"../ui/popover.js";export const MetadataCell=({emptyLabel,metadata,title})=>{const keys=Object.keys(metadata??{});if(keys.length===0){return _jsx("span",{className:"text-muted-foreground",children:emptyLabel})}return _jsxs(Popover,{children:[_jsxs(PopoverTrigger,{nativeButton:false,render:_jsx(Badge,{className:"cursor-pointer gap-1",variant:"secondary"}),children:[_jsx(BracesIcon,{}),keys.length]}),_jsxs(PopoverContent,{className:"w-80",children:[_jsx(PopoverTitle,{children:title}),_jsx("pre",{className:"bg-muted mt-2 max-h-72 overflow-auto rounded-md p-3 text-xs",children:JSON.stringify(metadata,null,2)})]})]})};
@@ -3,7 +3,11 @@ import z from "zod";
3
3
  import type { routeMiddlewareSchema } from "../../api/modules/middleware/route";
4
4
  import { type InputParams } from "../../lib/helpers/auto-form";
5
5
  import { Button } from "../ui/button";
6
- type ItemAutoFormProps<T extends z.ZodObject<z.ZodRawShape> = z.ZodObject<z.ZodRawShape>, TName extends FieldPath<z.infer<T>> = FieldPath<z.infer<T>>> = {
6
+ interface ItemAutoFormSharedProps<T extends z.ZodObject<z.ZodRawShape>> {
7
+ hidden?: (values: z.input<T>) => boolean;
8
+ tab?: string;
9
+ }
10
+ type ItemAutoFormProps<T extends z.ZodObject<z.ZodRawShape> = z.ZodObject<z.ZodRawShape>, TName extends FieldPath<z.infer<T>> = FieldPath<z.infer<T>>> = ItemAutoFormSharedProps<T> & ({
7
11
  component: (props: ItemAutoFormComponentProps) => React.ReactNode;
8
12
  id: TName;
9
13
  } | {
@@ -11,7 +15,11 @@ type ItemAutoFormProps<T extends z.ZodObject<z.ZodRawShape> = z.ZodObject<z.ZodR
11
15
  description?: React.ReactNode;
12
16
  id: TName;
13
17
  label?: React.ReactNode;
14
- };
18
+ });
19
+ export interface AutoFormTab {
20
+ label: React.ReactNode;
21
+ value: string;
22
+ }
15
23
  export interface ItemAutoFormComponentProps {
16
24
  description?: React.ReactNode;
17
25
  field: ControllerRenderProps<FieldValues, string>;
@@ -33,13 +41,14 @@ export interface ItemAutoFormComponentProps {
33
41
  export type AutoFormOnSubmit<T extends z.ZodObject<z.ZodRawShape>, TContext = unknown> = (values: z.infer<T>, form: UseFormReturn<z.input<T>, TContext, z.output<T>>, options: {
34
42
  captchaToken: string;
35
43
  }) => Promise<void> | void;
36
- export declare function AutoForm<T extends z.ZodObject<z.ZodRawShape>, TContext = unknown>({ formSchema, mode, onSubmit: onSubmitProp, captcha, fields, submitButtonProps, children, ...props }: Omit<React.ComponentProps<"form">, "onSubmit"> & {
44
+ export declare function AutoForm<T extends z.ZodObject<z.ZodRawShape>, TContext = unknown>({ formSchema, mode, onSubmit: onSubmitProp, captcha, fields, tabs, submitButtonProps, children, ...props }: Omit<React.ComponentProps<"form">, "onSubmit"> & {
37
45
  captcha?: z.infer<typeof routeMiddlewareSchema>["captcha"];
38
46
  fields: ItemAutoFormProps<T>[];
39
47
  formSchema: T;
40
48
  mode?: Mode;
41
49
  onSubmit?: AutoFormOnSubmit<T, TContext>;
42
50
  submitButtonProps?: Omit<React.ComponentProps<typeof Button>, "isLoading" | "type">;
51
+ tabs?: AutoFormTab[];
43
52
  }): import("react").JSX.Element;
44
53
  export {};
45
54
  //# sourceMappingURL=auto-form.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-form.d.ts","sourceRoot":"","sources":["../../../../src/components/form/auto-form.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-form.d.ts","sourceRoot":"","sources":["../../../../src/components/form/auto-form.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{zodResolver}from"@hookform/resolvers/zod";import{useTranslations}from"next-intl";import{useForm}from"react-hook-form";import z from"zod";import{useCaptcha}from"../../hooks/use-captcha.js";import{getDefaults,getNestedParam,getZodInputParams}from"../../lib/helpers/auto-form.js";import{Button}from"../ui/button.js";import{DialogClose,DialogFooter,useDialog}from"../ui/dialog.js";import{Field}from"../ui/field.js";import{Form,FormField}from"../ui/form.js";export function AutoForm({formSchema,mode,onSubmit:onSubmitProp,captcha,fields,submitButtonProps,children,...props}){const{isReady,getToken:getTokenCaptcha,onReset:onResetCaptcha}=useCaptcha(captcha);const{setIsDirty}=useDialog();const t=useTranslations("core.global");const jsonSchema=z.toJSONSchema(formSchema);const inputParams=getZodInputParams(jsonSchema);const form=useForm({resolver:zodResolver(formSchema),defaultValues:getDefaults(jsonSchema),mode});const onSubmit=async values=>{const parsedValues=formSchema.safeParse(values);if(parsedValues.success){await onSubmitProp?.(parsedValues.data,form,{captchaToken:captcha?await getTokenCaptcha():""});if(captcha){onResetCaptcha()}}};const submitButton=_jsx(Button,{disabled:!form.formState.isValid||form.formState.isSubmitting||captcha&&!isReady,isLoading:form.formState.isSubmitting,...submitButtonProps,"aria-label":submitButtonProps?.["aria-label"]??t("submit"),type:"submit",children:submitButtonProps?.children??t("submit")});return _jsxs(Form,{form:form,onSubmit:onSubmit,...props,children:[fields.map(item=>{const params=getNestedParam(inputParams,item.id);if(!params)return null;if(!item.component&&(item.label||item.description)){return _jsxs("div",{children:[item.label&&_jsx("span",{className:"text-xl leading-none font-semibold tracking-tight",children:item.label}),item.description&&_jsx("div",{className:"text-muted-foreground text-sm",children:item.description})]},item.id)}if(!item.component)return null;return _jsx(FormField,{name:item.id,render:({field,fieldState})=>{return _jsx(Field,{"data-invalid":fieldState.invalid,orientation:"responsive",children:item.component({field,description:typeof params.description==="string"?params.description:"",itemParams:"itemParams"in params?params.itemParams:undefined,otherProps:{isOptional:!params.required,enum:Array.isArray(params.enum)?params.enum:undefined,maxLength:typeof params.maxLength==="number"?params.maxLength:undefined,maxItems:typeof params.maxItems==="number"?params.maxItems:undefined,minLength:typeof params.minLength==="number"?params.minLength:undefined,["aria-invalid"]:fieldState.invalid,minItems:typeof params.minItems==="number"?params.minItems:undefined,pattern:typeof params.pattern==="string"?params.pattern:undefined,type:typeof params.type==="string"?params.type:undefined}})})}},item.id)}),children,captcha&&_jsx("div",{id:"vitnode_captcha"}),setIsDirty?_jsxs(DialogFooter,{children:[_jsx(DialogClose,{render:_jsx(Button,{variant:"ghost",children:t("cancel")})}),submitButton]}):submitButton]})}
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{zodResolver}from"@hookform/resolvers/zod";import{useAnimate,useReducedMotion}from"motion/react";import{useTranslations}from"next-intl";import{useEffect}from"react";import{useForm}from"react-hook-form";import z from"zod";import{useCaptcha}from"../../hooks/use-captcha.js";import{getDefaults,getNestedParam,getZodInputParams}from"../../lib/helpers/auto-form.js";import{SHAKE_KEYFRAMES,SHAKE_TRANSITION}from"../../lib/motion.js";import{Button}from"../ui/button.js";import{DialogClose,DialogFooter,useDialog}from"../ui/dialog.js";import{Field}from"../ui/field.js";import{Form,FormField}from"../ui/form.js";import{Tabs,TabsContent,TabsList,TabsTrigger}from"../ui/tabs.js";function AutoFormField({invalid,submitCount,...props}){const[scope,animate]=useAnimate();const shouldReduceMotion=useReducedMotion();useEffect(()=>{if(!invalid||shouldReduceMotion||!scope.current)return;animate(scope.current,SHAKE_KEYFRAMES,SHAKE_TRANSITION)},[invalid,submitCount,shouldReduceMotion,animate,scope]);return _jsx(Field,{"data-invalid":invalid,ref:scope,...props})}export function AutoForm({formSchema,mode,onSubmit:onSubmitProp,captcha,fields,tabs,submitButtonProps,children,...props}){const{isReady,getToken:getTokenCaptcha,onReset:onResetCaptcha}=useCaptcha(captcha);const{setIsDirty}=useDialog();const t=useTranslations("core.global");const jsonSchema=z.toJSONSchema(formSchema);const inputParams=getZodInputParams(jsonSchema);const form=useForm({resolver:zodResolver(formSchema),defaultValues:getDefaults(jsonSchema),mode});const onSubmit=async values=>{const parsedValues=formSchema.safeParse(values);if(parsedValues.success){await onSubmitProp?.(parsedValues.data,form,{captchaToken:captcha?await getTokenCaptcha():""});if(captcha){onResetCaptcha()}}};const hasConditionalFields=fields.some(item=>typeof item.hidden==="function");const watchedValues=hasConditionalFields?form.watch():undefined;const isFieldVisible=item=>{if(!item.hidden||!watchedValues)return true;return!item.hidden(watchedValues)};const renderField=item=>{const params=getNestedParam(inputParams,item.id);if(!params)return null;if(!item.component&&(item.label||item.description)){return _jsxs("div",{children:[item.label&&_jsx("span",{className:"text-xl leading-none font-semibold tracking-tight",children:item.label}),item.description&&_jsx("div",{className:"text-muted-foreground text-sm",children:item.description})]},item.id)}if(!item.component)return null;const{component}=item;return _jsx(FormField,{name:item.id,render:({field,fieldState})=>{return _jsx(AutoFormField,{invalid:fieldState.invalid,orientation:"responsive",submitCount:form.formState.submitCount,children:component({field,description:typeof params.description==="string"?params.description:"",itemParams:"itemParams"in params?params.itemParams:undefined,otherProps:{isOptional:!params.required,enum:Array.isArray(params.enum)?params.enum:undefined,maxLength:typeof params.maxLength==="number"?params.maxLength:undefined,maxItems:typeof params.maxItems==="number"?params.maxItems:undefined,minLength:typeof params.minLength==="number"?params.minLength:undefined,["aria-invalid"]:fieldState.invalid,minItems:typeof params.minItems==="number"?params.minItems:undefined,pattern:typeof params.pattern==="string"?params.pattern:undefined,type:typeof params.type==="string"?params.type:undefined}})})}},item.id)};const submitButton=_jsx(Button,{disabled:!form.formState.isValid||form.formState.isSubmitting||captcha&&!isReady,isLoading:form.formState.isSubmitting,...submitButtonProps,"aria-label":submitButtonProps?.["aria-label"]??t("submit"),type:"submit",children:submitButtonProps?.children??t("submit")});return _jsxs(Form,{form:form,onSubmit:onSubmit,...props,children:[tabs?.length?_jsxs(Tabs,{defaultValue:tabs[0].value,children:[_jsx(TabsList,{children:tabs.map(tab=>_jsx(TabsTrigger,{value:tab.value,children:tab.label},tab.value))}),tabs.map(tab=>_jsx(TabsContent,{className:"mt-0 space-y-6",keepMounted:true,value:tab.value,children:fields.filter(item=>(item.tab??tabs[0].value)===tab.value).filter(isFieldVisible).map(renderField)},tab.value))]}):fields.filter(isFieldVisible).map(renderField),children,captcha&&_jsx("div",{id:"vitnode_captcha"}),setIsDirty?_jsxs(DialogFooter,{children:[_jsx(DialogClose,{render:_jsx(Button,{variant:"ghost",children:t("cancel")})}),submitButton]}):submitButton]})}
@@ -0,0 +1,5 @@
1
+ import type React from "react";
2
+ import { ColorPicker } from "../../../components/ui/color-picker";
3
+ import type { ItemAutoFormComponentProps } from "../auto-form";
4
+ export declare const AutoFormColor: ({ label, labelRight, description, otherProps: { isOptional }, field, itemParams, ...props }: ItemAutoFormComponentProps & Omit<React.ComponentProps<typeof ColorPicker>, "onChange" | "value">) => React.JSX.Element;
5
+ //# sourceMappingURL=color.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/fields/color.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAK/D,eAAO,MAAM,aAAa,GAAI,6FAS3B,0BAA0B,GAC3B,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,sBAsBrE,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{ColorPicker}from"../../ui/color-picker.js";import{FormControl,FormMessage}from"../../ui/form.js";import{AutoFormDesc}from"../common/desc.js";import{AutoFormLabel}from"../common/label.js";export const AutoFormColor=({label,labelRight,description,otherProps:{isOptional},field,itemParams,...props})=>{return _jsxs(_Fragment,{children:[label&&_jsx(AutoFormLabel,{isOptional:isOptional,labelRight:labelRight,children:label}),_jsx(FormControl,{children:_jsx(ColorPicker,{onBlur:field.onBlur,onChange:field.onChange,value:field.value??"",...props})}),description&&_jsx(AutoFormDesc,{children:description}),_jsx(FormMessage,{})]})};
@@ -0,0 +1,9 @@
1
+ import type React from "react";
2
+ import { Editor } from "../../../components/ui/editor";
3
+ import type { ItemAutoFormComponentProps } from "../auto-form";
4
+ type AutoFormEditorProps = ItemAutoFormComponentProps & Omit<React.ComponentProps<typeof Editor>, "onChange" | "value"> & {
5
+ multiLang?: boolean;
6
+ };
7
+ export declare const AutoFormEditor: ({ label, labelRight, description, otherProps: { isOptional }, field, itemParams, multiLang, ...props }: AutoFormEditorProps) => React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/fields/editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGhD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAM/D,KAAK,mBAAmB,GAAG,0BAA0B,GACnD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAgDJ,eAAO,MAAM,cAAc,GAAI,wGAU5B,mBAAmB,sBAmCrB,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Editor}from"../../ui/editor.js";import{FormControl,FormMessage}from"../../ui/form.js";import{AutoFormDesc}from"../common/desc.js";import{AutoFormLabel}from"../common/label.js";import{MultiLangSelect,useMultiLangField}from"./multi-lang.js";const MultiLangEditor=({label,labelRight,description,isOptional,field,...props})=>{const{languages,selected,setSelected,currentValue,setValue}=useMultiLangField(field);return _jsxs(_Fragment,{children:[_jsxs("div",{className:"flex items-center justify-between gap-2",children:[label&&_jsx(AutoFormLabel,{isOptional:isOptional,labelRight:labelRight,children:label}),languages.length>1&&_jsx(MultiLangSelect,{languages:languages,onSelect:setSelected,selected:selected})]}),_jsx(FormControl,{children:_jsx(Editor,{onBlur:field.onBlur,onChange:setValue,value:currentValue,...props},selected)}),description&&_jsx(AutoFormDesc,{children:description}),_jsx(FormMessage,{})]})};export const AutoFormEditor=({label,labelRight,description,otherProps:{isOptional},field,itemParams,multiLang,...props})=>{if(multiLang){return _jsx(MultiLangEditor,{description:description,field:field,isOptional:isOptional,label:label,labelRight:labelRight,...props})}return _jsxs(_Fragment,{children:[label&&_jsx(AutoFormLabel,{isOptional:isOptional,labelRight:labelRight,children:label}),_jsx(FormControl,{children:_jsx(Editor,{onBlur:field.onBlur,onChange:field.onChange,value:field.value??"",...props})}),description&&_jsx(AutoFormDesc,{children:description}),_jsx(FormMessage,{})]})};
@@ -1,4 +1,8 @@
1
1
  import type { ItemAutoFormComponentProps } from "../auto-form";
2
2
  import { Input } from "../../ui/input";
3
- export declare const AutoFormInput: ({ label, labelRight, description, otherProps: { isOptional, maxLength, minLength, pattern, type }, field, itemParams, children, ...props }: ItemAutoFormComponentProps & Omit<React.ComponentProps<typeof Input>, "value">) => import("react").JSX.Element;
3
+ type AutoFormInputProps = ItemAutoFormComponentProps & Omit<React.ComponentProps<typeof Input>, "value"> & {
4
+ multiLang?: boolean;
5
+ };
6
+ export declare const AutoFormInput: ({ label, labelRight, description, otherProps, field, itemParams, children, multiLang, ...props }: AutoFormInputProps) => import("react").JSX.Element;
7
+ export {};
4
8
  //# sourceMappingURL=input.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/fields/input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAIvC,eAAO,MAAM,aAAa,GAAI,4IAU3B,0BAA0B,GAC3B,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,EAAE,OAAO,CAAC,gCA0DlD,CAAC"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/fields/input.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAKvC,KAAK,kBAAkB,GAAG,0BAA0B,GAClD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAgEJ,eAAO,MAAM,aAAa,GAAI,kGAU3B,kBAAkB,gCA0EpB,CAAC"}
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{InputGroup,InputGroupInput}from"../../ui/input-group.js";import{FormControl,FormMessage}from"../../ui/form.js";import{Input}from"../../ui/input.js";import{AutoFormDesc}from"../common/desc.js";import{AutoFormLabel}from"../common/label.js";export const AutoFormInput=({label,labelRight,description,otherProps:{isOptional,maxLength,minLength,pattern,type},field,itemParams,children,...props})=>{return _jsxs(_Fragment,{children:[label&&_jsx(AutoFormLabel,{isOptional:isOptional,labelRight:labelRight,children:label}),children?_jsxs(InputGroup,{children:[_jsx(FormControl,{children:_jsx(InputGroupInput,{...field,maxLength:maxLength,minLength:minLength,onBlur:e=>{field.onBlur();props.onBlur?.(e)},onChange:e=>{field.onChange(e);props.onChange?.(e)},pattern:pattern,type:type??"text",value:field.value??"",...props})}),children]}):_jsx(FormControl,{children:_jsx(Input,{...field,maxLength:maxLength,minLength:minLength,onBlur:e=>{field.onBlur();props.onBlur?.(e)},onChange:e=>{field.onChange(e);props.onChange?.(e)},pattern:pattern,type:type??"text",value:field.value??"",...props})}),description&&_jsx(AutoFormDesc,{children:description}),_jsx(FormMessage,{})]})};
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{InputGroup,InputGroupAddon,InputGroupInput}from"../../ui/input-group.js";import{getMultiLangConstraints}from"../../../lib/helpers/multi-lang.js";import{FormControl,FormMessage}from"../../ui/form.js";import{Input}from"../../ui/input.js";import{AutoFormDesc}from"../common/desc.js";import{AutoFormLabel}from"../common/label.js";import{MultiLangSelect,useMultiLangField}from"./multi-lang.js";const MultiLangInput=({label,labelRight,description,isOptional,field,itemParams,pattern,type,...props})=>{const{languages,selected,setSelected,currentValue,setValue}=useMultiLangField(field);const{maxLength,minLength}=getMultiLangConstraints(itemParams);return _jsxs(_Fragment,{children:[label&&_jsx(AutoFormLabel,{isOptional:isOptional,labelRight:labelRight,children:label}),_jsx(FormControl,{children:_jsxs(InputGroup,{children:[_jsx(InputGroupInput,{...field,...props,maxLength:maxLength,minLength:minLength,onBlur:e=>{field.onBlur();props.onBlur?.(e)},onChange:e=>{setValue(e.target.value);props.onChange?.(e)},pattern:pattern,type:type??"text",value:currentValue}),languages.length>1&&_jsx(InputGroupAddon,{align:"inline-end",children:_jsx(MultiLangSelect,{languages:languages,onSelect:setSelected,selected:selected})})]})}),description&&_jsx(AutoFormDesc,{children:description}),_jsx(FormMessage,{})]})};export const AutoFormInput=({label,labelRight,description,otherProps,field,itemParams,children,multiLang,...props})=>{if(multiLang){return _jsx(MultiLangInput,{description:description,field:field,isOptional:otherProps.isOptional,itemParams:itemParams,label:label,labelRight:labelRight,...props})}const{isOptional,maxLength,minLength,pattern,type}=otherProps;return _jsxs(_Fragment,{children:[label&&_jsx(AutoFormLabel,{isOptional:isOptional,labelRight:labelRight,children:label}),children?_jsxs(InputGroup,{children:[_jsx(FormControl,{children:_jsx(InputGroupInput,{...field,maxLength:maxLength,minLength:minLength,onBlur:e=>{field.onBlur();props.onBlur?.(e)},onChange:e=>{field.onChange(e);props.onChange?.(e)},pattern:pattern,type:type??"text",value:field.value??"",...props})}),children]}):_jsx(FormControl,{children:_jsx(Input,{...field,maxLength:maxLength,minLength:minLength,onBlur:e=>{field.onBlur();props.onBlur?.(e)},onChange:e=>{field.onChange(e);props.onChange?.(e)},pattern:pattern,type:type??"text",value:field.value??"",...props})}),description&&_jsx(AutoFormDesc,{children:description}),_jsx(FormMessage,{})]})};
@@ -0,0 +1,18 @@
1
+ import type { ControllerRenderProps, FieldValues } from "react-hook-form";
2
+ import React from "react";
3
+ import type { LocaleConfig } from "../../../vitnode.config";
4
+ export { multiLangValueSchema } from "../../../lib/helpers/multi-lang";
5
+ export type { MultiLangValue, MultiLangValueItem, } from "../../../lib/helpers/multi-lang";
6
+ export declare const useMultiLangField: (field: ControllerRenderProps<FieldValues, string>) => {
7
+ languages: LocaleConfig[];
8
+ selected: string;
9
+ setSelected: React.Dispatch<React.SetStateAction<string>>;
10
+ currentValue: string;
11
+ setValue: (newValue: string) => void;
12
+ };
13
+ export declare const MultiLangSelect: ({ languages, onSelect, selected, }: {
14
+ languages: LocaleConfig[];
15
+ onSelect: (code: string) => void;
16
+ selected: string;
17
+ }) => React.JSX.Element;
18
+ //# sourceMappingURL=multi-lang.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-lang.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/fields/multi-lang.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI1E,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAYrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,YAAY,EACV,cAAc,EACd,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,eAAO,MAAM,iBAAiB,GAC5B,OAAO,qBAAqB,CAAC,WAAW,EAAE,MAAM,CAAC;;;;;yBAarB,MAAM;CAWnC,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,oCAI7B;IACD,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB,sBA4BA,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{LanguagesIcon}from"lucide-react";import{useLocale,useTranslations}from"next-intl";import React from"react";import{useLanguages}from"../../languages-provider.js";import{Select,SelectContent,SelectItem,SelectTrigger,SelectValue}from"../../ui/select.js";import{getLangValue,upsertLangValue}from"../../../lib/helpers/multi-lang.js";export{multiLangValueSchema}from"../../../lib/helpers/multi-lang.js";export const useMultiLangField=field=>{const languages=useLanguages();const locale=useLocale();const[selected,setSelected]=React.useState(()=>languages.find(language=>language.code===locale)?.code??languages[0]?.code??locale);const value=field.value;const setValue=newValue=>{field.onChange(upsertLangValue(value,selected,newValue))};return{languages,selected,setSelected,currentValue:getLangValue(value,selected),setValue}};export const MultiLangSelect=({languages,onSelect,selected})=>{const t=useTranslations("core.global");return _jsxs(Select,{items:languages.map(language=>({value:language.code,label:language.name})),onValueChange:value=>onSelect(value),value:selected,children:[_jsxs(SelectTrigger,{"aria-label":t("select_language"),className:"h-7 border-none bg-transparent px-2 shadow-none dark:bg-transparent",size:"sm",children:[_jsx(LanguagesIcon,{})," ",_jsx(SelectValue,{})]}),_jsx(SelectContent,{align:"end",children:languages.map(language=>_jsx(SelectItem,{value:language.code,children:language.name},language.code))})]})};
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { Input } from "../../../components/ui/input";
3
+ import type { ItemAutoFormComponentProps } from "../auto-form";
4
+ type AutoFormNullableNumberProps = ItemAutoFormComponentProps & Omit<React.ComponentProps<typeof Input>, "value"> & {
5
+ orLabel?: React.ReactNode;
6
+ toggleLabel: React.ReactNode;
7
+ unitLabel?: React.ReactNode;
8
+ };
9
+ export declare const AutoFormNullableNumber: ({ label, labelRight, description, field, otherProps: { isOptional }, itemParams, className, unitLabel, orLabel, toggleLabel, ...props }: AutoFormNullableNumberProps) => React.JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=nullable-number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nullable-number.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/fields/nullable-number.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG9C,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAK/D,KAAK,2BAA2B,GAAG,0BAA0B,GAC3D,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG;IAElD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAG1B,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;IAE7B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B,CAAC;AAyBJ,eAAO,MAAM,sBAAsB,GAAI,yIAapC,2BAA2B,sBA2E7B,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import React from"react";import{Checkbox}from"../../ui/checkbox.js";import{FormControl,FormMessage}from"../../ui/form.js";import{Input}from"../../ui/input.js";import{cn}from"../../../lib/utils.js";import{AutoFormDesc}from"../common/desc.js";import{AutoFormLabel}from"../common/label.js";export const AutoFormNullableNumber=({label,labelRight,description,field,otherProps:{isOptional},itemParams,className,unitLabel,orLabel,toggleLabel,...props})=>{const isToggled=field.value===null;const[text,setText]=React.useState(typeof field.value==="number"?String(field.value):"");const lastNumericRef=React.useRef(typeof field.value==="number"?field.value:0);return _jsxs(_Fragment,{children:[label&&_jsx(AutoFormLabel,{isOptional:isOptional,labelRight:labelRight,children:label}),_jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-2",children:[_jsx(FormControl,{children:_jsx(Input,{className:cn("w-40",className),disabled:isToggled,onChange:event=>{const raw=event.target.value;setText(raw);if(raw===""){lastNumericRef.current=0;field.onChange(0);return}const parsed=Number(raw);if(Number.isNaN(parsed))return;lastNumericRef.current=parsed;field.onChange(parsed)},type:"number",value:isToggled?"":text,...props})}),unitLabel&&_jsx("span",{className:"text-muted-foreground text-sm",children:unitLabel}),orLabel&&_jsx("span",{className:"text-muted-foreground text-sm",children:orLabel}),_jsxs("label",{className:"flex items-center gap-2 text-sm",children:[_jsx(Checkbox,{checked:isToggled,onCheckedChange:checked=>{if(checked){field.onChange(null);return}field.onChange(lastNumericRef.current);setText(String(lastNumericRef.current))}}),toggleLabel]})]}),description&&_jsx(AutoFormDesc,{children:description}),_jsx(FormMessage,{})]})};
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Field,FieldContent,FieldDescription,FieldLabel,FieldTitle}from"../../ui/field.js";import{FormControl,FormMessage}from"../../ui/form.js";import{RadioGroup,RadioGroupItem}from"../../ui/radio-group.js";import{AutoFormDesc}from"../common/desc.js";import{AutoFormLabel}from"../common/label.js";export const AutoFormRadioGroup=({label,labelRight,field,itemParams,description,otherProps:{enum:enumValues=[],isOptional},labels=[],variant="default",...props})=>{const values=enumValues.map(value=>{const item=labels.find(l=>l.value===value);return{value,label:item?.label??value,description:item?.description,disabled:item?.disabled}});return _jsxs(_Fragment,{children:[label&&_jsx(AutoFormLabel,{isOptional:isOptional,labelRight:labelRight,children:label}),description&&_jsx(AutoFormDesc,{children:description}),_jsx(FormControl,{children:_jsx(RadioGroup,{defaultValue:field.value,disabled:props.disabled,onValueChange:field.onChange,...props,children:values.map(({value,label,description,disabled})=>variant==="default"?_jsxs(Field,{"data-disabled":disabled,orientation:"horizontal",children:[_jsx(FormControl,{children:_jsx(RadioGroupItem,{disabled:disabled,id:`${field.name}-${value}`,value:value})}),_jsxs(FieldContent,{children:[_jsx(FieldLabel,{htmlFor:`${field.name}-${value}`,children:label}),description&&_jsx(FieldDescription,{children:description})]})]},`${field.name}-${value}`):_jsx(FieldLabel,{htmlFor:`${field.name}-${value}`,children:_jsxs(Field,{"data-disabled":disabled,orientation:"horizontal",children:[_jsxs(FieldContent,{children:[_jsx(FieldTitle,{children:label}),description&&_jsx(FieldDescription,{children:description})]}),_jsx(FormControl,{children:_jsx(RadioGroupItem,{disabled:disabled,id:`${field.name}-${value}`,value:value})})]})},`${field.name}-${value}`))})}),_jsx(FormMessage,{})]})};
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Field,FieldContent,FieldDescription,FieldLabel,FieldTitle}from"../../ui/field.js";import{FormControl,FormMessage}from"../../ui/form.js";import{RadioGroup,RadioGroupItem}from"../../ui/radio-group.js";import{AutoFormDesc}from"../common/desc.js";import{AutoFormLabel}from"../common/label.js";export const AutoFormRadioGroup=({label,labelRight,field,itemParams,description,otherProps:{enum:enumValues=[],isOptional},labels=[],variant="default",...props})=>{const values=enumValues.map(value=>{const item=labels.find(l=>l.value===value);return{value,label:item?.label??value,description:item?.description,disabled:item?.disabled}});return _jsxs(_Fragment,{children:[label&&_jsx(AutoFormLabel,{isOptional:isOptional,labelRight:labelRight,children:label}),description&&_jsx(AutoFormDesc,{children:description}),_jsx(FormControl,{children:_jsx(RadioGroup,{disabled:props.disabled,onValueChange:field.onChange,value:field.value??null,...props,children:values.map(({value,label,description,disabled})=>variant==="default"?_jsxs(Field,{"data-disabled":disabled,orientation:"horizontal",children:[_jsx(FormControl,{children:_jsx(RadioGroupItem,{disabled:disabled,id:`${field.name}-${value}`,value:value})}),_jsxs(FieldContent,{children:[_jsx(FieldLabel,{htmlFor:`${field.name}-${value}`,children:label}),description&&_jsx(FieldDescription,{children:description})]})]},`${field.name}-${value}`):_jsx(FieldLabel,{htmlFor:`${field.name}-${value}`,children:_jsxs(Field,{"data-disabled":disabled,orientation:"horizontal",children:[_jsxs(FieldContent,{children:[_jsx(FieldTitle,{children:label}),description&&_jsx(FieldDescription,{children:description})]}),_jsx(FormControl,{children:_jsx(RadioGroupItem,{disabled:disabled,id:`${field.name}-${value}`,value:value})})]})},`${field.name}-${value}`))})}),_jsx(FormMessage,{})]})};
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{useTranslations}from"next-intl";import{FormControl,FormMessage}from"../../ui/form.js";import{Select,SelectContent,SelectItem,SelectTrigger,SelectValue}from"../../ui/select.js";import{AutoFormDesc}from"../common/desc.js";import{AutoFormLabel}from"../common/label.js";export const AutoFormSelect=({label,field,itemParams,description,otherProps:{enum:enumValues=[],isOptional},placeholder,labelRight,labels=[],...props})=>{const t=useTranslations("core.global");const values=enumValues.map(value=>{const label=labels.find(l=>l.value===value)?.label;return{value,label:label??value}});return _jsxs(_Fragment,{children:[label&&_jsx(AutoFormLabel,{isOptional:isOptional,labelRight:labelRight,children:label}),_jsx(FormControl,{children:_jsxs(Select,{defaultValue:field.value,items:values,...props,onValueChange:(value,eventDetails)=>{field.onChange(value);props.onValueChange?.(value,eventDetails)},children:[_jsx(SelectTrigger,{onBlur:field.onBlur,children:_jsx(SelectValue,{placeholder:placeholder??t("select_option")})}),_jsx(SelectContent,{children:values.map(({value,label})=>_jsx(SelectItem,{value:value,children:label},value))})]})}),description&&_jsx(AutoFormDesc,{children:description}),_jsx(FormMessage,{})]})};
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{useTranslations}from"next-intl";import{FormControl,FormMessage}from"../../ui/form.js";import{Select,SelectContent,SelectItem,SelectTrigger,SelectValue}from"../../ui/select.js";import{AutoFormDesc}from"../common/desc.js";import{AutoFormLabel}from"../common/label.js";export const AutoFormSelect=({label,field,itemParams,description,otherProps:{enum:enumValues=[],isOptional},placeholder,labelRight,labels=[],...props})=>{const t=useTranslations("core.global");const values=enumValues.map(value=>{const label=labels.find(l=>l.value===value)?.label;return{value,label:label??value}});return _jsxs(_Fragment,{children:[label&&_jsx(AutoFormLabel,{isOptional:isOptional,labelRight:labelRight,children:label}),_jsx(FormControl,{children:_jsxs(Select,{items:values,value:field.value??null,...props,onValueChange:(value,eventDetails)=>{field.onChange(value);props.onValueChange?.(value,eventDetails)},children:[_jsx(SelectTrigger,{onBlur:field.onBlur,children:_jsx(SelectValue,{placeholder:placeholder??t("select_option")})}),_jsx(SelectContent,{children:values.map(({value,label})=>_jsx(SelectItem,{value:value,children:label},value))})]})}),description&&_jsx(AutoFormDesc,{children:description}),_jsx(FormMessage,{})]})};
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import type { LocaleConfig } from "../vitnode.config";
3
+ export declare const LanguagesProvider: ({ children, languages, }: {
4
+ children: React.ReactNode;
5
+ languages: LocaleConfig[];
6
+ }) => React.JSX.Element;
7
+ export declare const useLanguages: () => LocaleConfig[];
8
+ //# sourceMappingURL=languages-provider.d.ts.map