@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
@@ -11,4 +11,4 @@ export declare const mutationApi: (input: z.infer<typeof zodCreateUserAdminSchem
11
11
  };
12
12
  error?: undefined;
13
13
  }>;
14
- //# sourceMappingURL=mutation-api.d.ts.map
14
+ //# sourceMappingURL=mutation-api.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation-api.server.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/users/actions/create/mutation-api.server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAI7B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAK9F,eAAO,MAAM,WAAW,GACtB,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC;;;;;;;;;;EAmBhD,CAAC"}
@@ -1 +1 @@
1
- import{useTranslations}from"next-intl";import{toast}from"sonner";import{z}from"zod";import{useDialog}from"../../../../../../../components/ui/dialog.js";import{mutationApi}from"./mutation-api.js";export const useFormCreateUserAdmin=()=>{const t=useTranslations("admin.user.create");const tError=useTranslations("core.global.errors");const{setOpen,setIsDirty}=useDialog();const formSchema=z.object({name:z.string({message:tError("field_required")}).min(3,t("name.min_length")).max(32,t("name.max_length")).default(""),email:z.email({message:t("email.invalid")}).default(""),password:z.string({message:tError("field_required")}).min(8,t("password.invalid")).default("")});const onSubmit=async(values,form)=>{const mutation=await mutationApi(values);if(mutation.data){setIsDirty?.(false);setOpen?.(false);toast.success(t("success",{name:mutation.data.name}));return}const errorMessages={"Email already exists":{field:"email",message:t("email.exists")},"Name already exists":{field:"name",message:t("name.exists")}};const errorConfig=errorMessages[mutation.error];if(errorConfig){form.setError(errorConfig.field,{type:"manual",message:errorConfig.message},{shouldFocus:true});return}toast.error(tError("title"),{description:tError("internal_server_error")})};return{onSubmit,formSchema}};
1
+ import{useTranslations}from"next-intl";import{toast}from"sonner";import{z}from"zod";import{useDialog}from"../../../../../../../components/ui/dialog.js";import{mutationApi}from"./mutation-api.server.js";export const useFormCreateUserAdmin=()=>{const t=useTranslations("admin.user.create");const tError=useTranslations("core.global.errors");const{setOpen,setIsDirty}=useDialog();const formSchema=z.object({name:z.string({message:tError("field_required")}).min(3,t("name.min_length")).max(32,t("name.max_length")).default(""),email:z.email({message:t("email.invalid")}).default(""),password:z.string({message:tError("field_required")}).min(8,t("password.invalid")).default("")});const onSubmit=async(values,form)=>{const mutation=await mutationApi(values);if(mutation.data){setIsDirty?.(false);setOpen?.(false);toast.success(t("success",{name:mutation.data.name}));return}const errorMessages={"Email already exists":{field:"email",message:t("email.exists")},"Name already exists":{field:"name",message:t("name.exists")}};const errorConfig=errorMessages[mutation.error];if(errorConfig){form.setError(errorConfig.field,{type:"manual",message:errorConfig.message},{shouldFocus:true});return}toast.error(tError("title"),{description:tError("internal_server_error")})};return{onSubmit,formSchema}};
@@ -8,4 +8,4 @@ export declare const mutationApi: (id: number) => Promise<{
8
8
  };
9
9
  error?: undefined;
10
10
  }>;
11
- //# sourceMappingURL=mutation-api.d.ts.map
11
+ //# sourceMappingURL=mutation-api.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation-api.server.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/users/actions/verify-email/mutation-api.server.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,GAAU,IAAI,MAAM;;;;;;;;;EAkB3C,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{CheckIcon}from"lucide-react";import{useTranslations}from"next-intl";import{useActionState}from"react";import{toast}from"sonner";import{Button}from"../../../../../../../components/ui/button.js";import{TooltipWithContent}from"../../../../../../../components/ui/tooltip.js";import{mutationApi}from"./mutation-api.js";export const VerifyEmailUserAdmin=({id,emailVerified,iconOnly=false})=>{const t=useTranslations("admin.user.verify_email");const tError=useTranslations("core.global.errors");const[_,formAction,isPending]=useActionState(async()=>{const mutation=await mutationApi(id);if(mutation?.error){toast.error(tError("title"),{description:tError("internal_server_error")});return}toast.success(t("success"),{description:mutation.data?.name})},null);if(emailVerified){return null}return _jsx("form",{action:formAction,children:iconOnly?_jsx(TooltipWithContent,{text:t("label"),children:_jsx(Button,{"aria-label":t("label"),isLoading:isPending,size:"icon",type:"submit",children:_jsx(CheckIcon,{})})}):_jsxs(Button,{isLoading:isPending,type:"submit",children:[_jsx(CheckIcon,{}),t("label")]})})};
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{CheckIcon}from"lucide-react";import{useTranslations}from"next-intl";import{useActionState}from"react";import{toast}from"sonner";import{Button}from"../../../../../../../components/ui/button.js";import{TooltipWithContent}from"../../../../../../../components/ui/tooltip.js";import{mutationApi}from"./mutation-api.server.js";export const VerifyEmailUserAdmin=({id,emailVerified,iconOnly=false})=>{const t=useTranslations("admin.user.verify_email");const tError=useTranslations("core.global.errors");const[_,formAction,isPending]=useActionState(async()=>{const mutation=await mutationApi(id);if(mutation?.error){toast.error(tError("title"),{description:tError("internal_server_error")});return}toast.success(t("success"),{description:mutation.data?.name})},null);if(emailVerified){return null}return _jsx("form",{action:formAction,children:iconOnly?_jsx(TooltipWithContent,{text:t("label"),children:_jsx(Button,{"aria-label":t("label"),isLoading:isPending,size:"icon",type:"submit",children:_jsx(CheckIcon,{})})}):_jsxs(Button,{isLoading:isPending,type:"submit",children:[_jsx(CheckIcon,{}),t("label")]})})};
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ export declare const ActionsRolesAdmin: () => React.JSX.Element;
3
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/users/roles/actions/actions.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAmB1B,eAAO,MAAM,iBAAiB,yBAsB7B,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{PlusIcon}from"lucide-react";import{useTranslations}from"next-intl";import dynamic from"next/dynamic";import React from"react";import{Button}from"../../../../../../../components/ui/button.js";import{Dialog,DialogContent,DialogDescription,DialogHeader,DialogTitle,DialogTrigger}from"../../../../../../../components/ui/dialog.js";import{Loader}from"../../../../../../../components/ui/loader.js";const CreateEditRoleAdmin=dynamic(async()=>import("./create-edit/create-edit.js").then(mod=>({default:mod.CreateEditRoleAdmin})));export const ActionsRolesAdmin=()=>{const t=useTranslations("admin.role.create");return _jsxs(Dialog,{children:[_jsxs(DialogTrigger,{render:_jsx(Button,{}),children:[_jsx(PlusIcon,{}),t("title")]}),_jsxs(DialogContent,{children:[_jsxs(DialogHeader,{children:[_jsx(DialogTitle,{children:t("title")}),_jsx(DialogDescription,{children:t("desc")})]}),_jsx(React.Suspense,{fallback:_jsx(Loader,{}),children:_jsx(CreateEditRoleAdmin,{})})]})]})};
@@ -0,0 +1,15 @@
1
+ export interface RoleData {
2
+ allowUploadFiles: boolean;
3
+ color: null | string;
4
+ id: number;
5
+ maxStorageForSubmit: null | number;
6
+ name: {
7
+ languageCode: string;
8
+ name: string;
9
+ }[];
10
+ totalMaxStorage: null | number;
11
+ }
12
+ export declare const CreateEditRoleAdmin: ({ data }: {
13
+ data?: RoleData;
14
+ }) => import("react").JSX.Element;
15
+ //# sourceMappingURL=create-edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-edit.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/views/admin/views/core/users/roles/actions/create-edit/create-edit.tsx"],"names":[],"mappings":"AAeA,MAAM,WAAW,QAAQ;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB,EAAE,IAAI,GAAG,MAAM,CAAC;IACnC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/C,eAAe,EAAE,IAAI,GAAG,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,mBAAmB,GAAI,UAAU;IAAE,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,gCA6HhE,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{useTranslations}from"next-intl";import{toast}from"sonner";import{z}from"zod";import{AutoForm}from"../../../../../../../../components/form/auto-form.js";import{AutoFormColor}from"../../../../../../../../components/form/fields/color.js";import{AutoFormInput}from"../../../../../../../../components/form/fields/input.js";import{AutoFormNullableNumber}from"../../../../../../../../components/form/fields/nullable-number.js";import{AutoFormSwitch}from"../../../../../../../../components/form/fields/switch.js";import{useDialog}from"../../../../../../../../components/ui/dialog.js";import{multiLangValueSchema}from"../../../../../../../../lib/helpers/multi-lang.js";import{usePathname,useRouter}from"../../../../../../../../lib/navigation.js";import{createRole,editRole}from"./mutation-api.server.js";export const CreateEditRoleAdmin=({data})=>{const t=useTranslations("admin.role");const tCore=useTranslations("core.global.errors");const{setOpen}=useDialog();const{push}=useRouter();const pathname=usePathname();const formSchema=z.object({name:multiLangValueSchema({minLength:1,maxLength:255}).min(1).default(data?.name.map(item=>({languageCode:item.languageCode,value:item.name}))??[]),color:z.string().max(50).default(data?.color??""),allowUploadFiles:z.boolean().default(data?.allowUploadFiles??false),totalMaxStorage:z.number().int().min(0).nullable().default(data?.totalMaxStorage??null),maxStorageForSubmit:z.number().int().min(0).nullable().default(data?.maxStorageForSubmit??null).describe(t("form.upload.max_storage_for_submit_desc"))});const onSubmit=async values=>{const mutation=data?.id?await editRole({id:data.id,...values}):await createRole(values);if(mutation?.error){toast.error(tCore("title"),{description:tCore("internal_server_error")});return}toast.success(t(data?"edit.success":"create.success"));setOpen?.(false);push(pathname)};return _jsx(AutoForm,{fields:[{id:"name",tab:"general",component:props=>_jsx(AutoFormInput,{label:t("form.name"),multiLang:true,...props})},{id:"color",tab:"general",component:props=>_jsx(AutoFormColor,{allowRemoveColor:true,label:t("form.color"),...props})},{id:"allowUploadFiles",tab:"content",component:props=>_jsx(AutoFormSwitch,{label:t("form.upload.allow"),...props})},{id:"totalMaxStorage",tab:"content",hidden:values=>!values.allowUploadFiles,component:props=>_jsx(AutoFormNullableNumber,{label:t("form.upload.total_max_storage"),min:0,orLabel:t("form.upload.or"),toggleLabel:t("form.upload.unlimited"),unitLabel:t("form.upload.in_unit"),...props})},{id:"maxStorageForSubmit",tab:"content",hidden:values=>!values.allowUploadFiles,component:props=>_jsx(AutoFormNullableNumber,{label:t("form.upload.max_storage_for_submit"),min:0,orLabel:t("form.upload.or"),toggleLabel:t("form.upload.unlimited"),unitLabel:t("form.upload.in_unit"),...props})}],formSchema:formSchema,onSubmit:onSubmit,submitButtonProps:{children:t(`${data?"edit":"create"}.submit`)},tabs:[{value:"general",label:t("tabs.general")},{value:"content",label:t("tabs.content")}]})};
@@ -0,0 +1,11 @@
1
+ import type { z } from "zod";
2
+ import type { zodCreateRoleAdminSchema } from "../../../../../../../../api/modules/admin/roles/routes/create.route";
3
+ export declare const createRole: (body: z.infer<typeof zodCreateRoleAdminSchema>) => Promise<{
4
+ error: string;
5
+ } | undefined>;
6
+ export declare const editRole: ({ id, ...body }: z.infer<typeof zodCreateRoleAdminSchema> & {
7
+ id: number;
8
+ }) => Promise<{
9
+ error: string;
10
+ } | undefined>;
11
+ //# sourceMappingURL=mutation-api.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation-api.server.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/views/admin/views/core/users/roles/actions/create-edit/mutation-api.server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAI7B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAK9F,eAAO,MAAM,UAAU,GACrB,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC;;cAgB/C,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAU,iBAG5B,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;;cAgB3D,CAAC"}
@@ -0,0 +1 @@
1
+ "use server";import{revalidatePath}from"next/cache";import{adminModule}from"../../../../../../../../api/modules/admin/admin.module.js";import{fetcher}from"../../../../../../../../lib/fetcher.js";export const createRole=async body=>{const res=await fetcher(adminModule,{path:"/create",method:"post",module:"admin/roles",args:{body}});if(res.status!==201){return{error:await res.text()}}revalidatePath("/[locale]/admin","layout")};export const editRole=async({id,...body})=>{const res=await fetcher(adminModule,{path:"/{id}",method:"patch",module:"admin/roles",args:{params:{id:id.toString()},body}});if(res.status!==200){return{error:await res.text()}}revalidatePath("/[locale]/admin","layout")};
@@ -1 +1 @@
1
- {"version":3,"file":"roles-admin-view.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/users/roles/roles-admin-view.tsx"],"names":[],"mappings":"AAYA,eAAO,MAAM,cAAc,GAAU,mBAElC;IACD,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;CACtE,yCAwEA,CAAC"}
1
+ {"version":3,"file":"roles-admin-view.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/users/roles/roles-admin-view.tsx"],"names":[],"mappings":"AAcA,eAAO,MAAM,cAAc,GAAU,mBAElC;IACD,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;CACtE,yCA+EA,CAAC"}
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{ExternalLink,ShieldIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{notFound}from"next/navigation";import{adminModule}from"../../../../../../api/modules/admin/admin.module.js";import{DateFormat}from"../../../../../../components/date-format.js";import{RoleFormat}from"../../../../../../components/role-format.js";import{DataTable}from"../../../../../../components/table/data-table.js";import{TooltipWithContent}from"../../../../../../components/ui/tooltip.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{Link}from"../../../../../../lib/navigation.js";export const RolesAdminView=async({searchParams})=>{const t=await getTranslations("admin.role.list");const query=await searchParams;const res=await fetcher(adminModule,{path:"/list",method:"get",module:"admin/roles",args:{query},withPagination:true});if(res.status!==200){return notFound()}const data=await res.json();return _jsx(DataTable,{columns:[{id:"name",label:t("role"),cell:({row})=>_jsx(RoleFormat,{role:row})},{id:"usersCount",label:t("usersCount"),cell:({row})=>{if(row.usersCount===0){return _jsx("span",{className:"text-muted-foreground",children:"0"})}return _jsx(TooltipWithContent,{text:t("openUsersTooltip"),children:_jsxs(Link,{className:"text-primary inline-flex items-center gap-2",href:`/admin/core/users?roleId=${row.id}`,children:[row.usersCount," ",_jsx(ExternalLink,{className:"size-4"})]})})}},{id:"updatedAt",label:t("updatedAt"),cell:({row})=>_jsx(DateFormat,{date:row.createdAt})}],customNoResults:{title:t("noResults.title"),description:t("noResults.description"),icon:_jsx(ShieldIcon,{})},edges:data.edges,id:"roles-table",order:{columns:["updatedAt"],defaultOrder:{column:"updatedAt",order:"desc"}},pageInfo:data.pageInfo,search:true,searchPlaceholder:t("searchPlaceholder")})};
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{ExternalLink,ShieldIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{notFound}from"next/navigation";import{adminModule}from"../../../../../../api/modules/admin/admin.module.js";import{DateFormat}from"../../../../../../components/date-format.js";import{RoleFormat}from"../../../../../../components/role-format.js";import{DataTable}from"../../../../../../components/table/data-table.js";import{TooltipWithContent}from"../../../../../../components/ui/tooltip.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{Link}from"../../../../../../lib/navigation.js";import{RowActions}from"./table/actions/row-actions.js";export const RolesAdminView=async({searchParams})=>{const t=await getTranslations("admin.role.list");const query=await searchParams;const res=await fetcher(adminModule,{path:"/list",method:"get",module:"admin/roles",args:{query},withPagination:true});if(res.status!==200){return notFound()}const data=await res.json();return _jsx(DataTable,{columns:[{accessorKey:"name",header:t("role"),cell:({row})=>_jsx(RoleFormat,{role:row})},{accessorKey:"usersCount",header:t("usersCount"),cell:({row})=>{if(row.usersCount===0){return _jsx("span",{className:"text-muted-foreground",children:"0"})}return _jsx(TooltipWithContent,{text:t("openUsersTooltip"),children:_jsxs(Link,{className:"text-primary inline-flex items-center gap-2",href:`/admin/core/users?roleId=${row.id}`,children:[row.usersCount," ",_jsx(ExternalLink,{className:"size-4"})]})})}},{accessorKey:"updatedAt",header:t("updatedAt"),cell:({row})=>_jsx(DateFormat,{date:row.updatedAt})},{id:"actions",header:"",align:"right",className:"w-20",cell:({row})=>_jsx(RowActions,{data:row})}],customNoResults:{title:t("noResults.title"),description:t("noResults.description"),icon:_jsx(ShieldIcon,{})},edges:data.edges,id:"roles-table",order:{columns:["updatedAt"],defaultOrder:{column:"updatedAt",order:"desc"}},pageInfo:data.pageInfo,search:true,searchPlaceholder:t("searchPlaceholder")})};
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ export declare const DeleteAction: ({ data, }: {
3
+ data: {
4
+ color: null | string;
5
+ id: number;
6
+ name: {
7
+ languageCode: string;
8
+ name: string;
9
+ }[];
10
+ usersCount: number;
11
+ };
12
+ }) => React.JSX.Element;
13
+ //# sourceMappingURL=delete-action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-action.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/views/admin/views/core/users/roles/table/actions/delete-action.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AA0J1B,eAAO,MAAM,YAAY,GAAI,WAE1B;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC;QACrB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC/C,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,sBA4FA,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{CheckIcon,ChevronsUpDownIcon,Trash2Icon}from"lucide-react";import{useLocale,useTranslations}from"next-intl";import React from"react";import{toast}from"sonner";import{useDebouncedCallback}from"use-debounce";import{AlertDialog,AlertDialogCancel,AlertDialogContent,AlertDialogDescription,AlertDialogFooter,AlertDialogHeader,AlertDialogTitle,AlertDialogTrigger}from"../../../../../../../../components/ui/alert-dialog.js";import{Button}from"../../../../../../../../components/ui/button.js";import{Command,CommandEmpty,CommandGroup,CommandInput,CommandItem,CommandList}from"../../../../../../../../components/ui/command.js";import{Popover,PopoverContent,PopoverTrigger}from"../../../../../../../../components/ui/popover.js";import{Spinner}from"../../../../../../../../components/ui/spinner.js";import{TooltipWithContent}from"../../../../../../../../components/ui/tooltip.js";import{cn}from"../../../../../../../../lib/utils.js";import{deleteRole}from"./delete-role.action.server.js";import{searchRolesForMove}from"./search-roles.action.server.js";const useRoleName=()=>{const locale=useLocale();return role=>role.name.find(item=>item.languageCode===locale)?.name??role.name[0]?.name??""};const RoleName=({role})=>{const resolveName=useRoleName();return _jsx("span",{className:"truncate font-medium",style:role.color?{color:role.color}:undefined,children:resolveName(role)})};const MoveRolePicker=({excludeId,onSelect,value})=>{const t=useTranslations("core.global");const tRole=useTranslations("admin.role.delete");const[open,setOpen]=React.useState(false);const[options,setOptions]=React.useState([]);const[isSearching,setIsSearching]=React.useState(false);const runSearch=React.useCallback(async search=>{setIsSearching(true);try{setOptions(await searchRolesForMove(search))}finally{setIsSearching(false)}},[]);const debouncedSearch=useDebouncedCallback(runSearch,400);const handleOpenChange=next=>{setOpen(next);if(next){setOptions([]);void runSearch("")}};const visibleOptions=options.filter(option=>option.id!==excludeId);return _jsxs(Popover,{onOpenChange:handleOpenChange,open:open,children:[_jsxs(PopoverTrigger,{render:_jsx(Button,{className:"w-full justify-start font-normal",variant:"outline"}),children:[value?_jsx(RoleName,{role:value}):_jsx("span",{className:"text-muted-foreground",children:tRole("selectRole")}),_jsx(ChevronsUpDownIcon,{className:"ms-auto opacity-50"})]}),_jsx(PopoverContent,{align:"start",className:"w-(--anchor-width) min-w-56 p-0",children:_jsxs(Command,{shouldFilter:false,children:[_jsx(CommandInput,{onValueChange:debouncedSearch,placeholder:t("search_placeholder")}),_jsx(CommandList,{children:isSearching&&visibleOptions.length===0?_jsx("div",{className:"flex items-center justify-center py-6",children:_jsx(Spinner,{})}):_jsxs(_Fragment,{children:[_jsx(CommandEmpty,{children:t("results_not_found")}),_jsx(CommandGroup,{children:visibleOptions.map(role=>_jsxs(CommandItem,{onSelect:()=>{onSelect(role);setOpen(false)},value:String(role.id),children:[_jsx(CheckIcon,{className:cn("size-4 shrink-0",value?.id===role.id?"opacity-100":"opacity-0")}),_jsx(RoleName,{role:role})]},role.id))})]})})]})})]})};export const DeleteAction=({data})=>{const t=useTranslations("admin.role.delete");const tError=useTranslations("core.global.errors");const resolveName=useRoleName();const[open,setOpen]=React.useState(false);const[target,setTarget]=React.useState(null);const[isPending,startTransition]=React.useTransition();const hasUsers=data.usersCount>0;const roleName=resolveName(data);const canSubmit=!hasUsers||target!=null;const onConfirm=()=>{if(!canSubmit){return}startTransition(async()=>{const result=await deleteRole({id:data.id,moveToRoleId:hasUsers?target?.id:undefined});if(result.error){toast.error(tError("title"),{description:tError("internal_server_error")});return}toast.success(t("success"),{description:hasUsers&&target?t("successDescMoved",{count:data.usersCount,name:resolveName(target)}):t("successDesc")});setOpen(false)})};return _jsxs(AlertDialog,{onOpenChange:setOpen,open:open,children:[_jsx(TooltipWithContent,{text:t("title"),children:_jsx(AlertDialogTrigger,{render:_jsx(Button,{"aria-label":t("title"),size:"icon",variant:"destructive"}),children:_jsx(Trash2Icon,{})})}),_jsxs(AlertDialogContent,{children:[_jsxs(AlertDialogHeader,{children:[_jsx(AlertDialogTitle,{children:t("title")}),_jsx(AlertDialogDescription,{children:hasUsers?t("descWithUsers",{count:data.usersCount,name:roleName}):t("desc",{name:roleName})})]}),hasUsers&&_jsxs("div",{className:"flex flex-col gap-2",children:[_jsx("span",{className:"text-sm font-medium",children:t("moveToLabel")}),_jsx(MoveRolePicker,{excludeId:data.id,onSelect:setTarget,value:target})]}),_jsxs(AlertDialogFooter,{children:[_jsx(AlertDialogCancel,{children:t("cancel")}),_jsx(Button,{disabled:!canSubmit,isLoading:isPending,onClick:onConfirm,type:"button",variant:"destructive",children:t("confirm")})]})]})]})};
@@ -0,0 +1,9 @@
1
+ export declare const deleteRole: ({ id, moveToRoleId, }: {
2
+ id: number;
3
+ moveToRoleId?: number;
4
+ }) => Promise<{
5
+ error?: {
6
+ status: number;
7
+ };
8
+ }>;
9
+ //# sourceMappingURL=delete-role.action.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-role.action.server.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/views/admin/views/core/users/roles/table/actions/delete-role.action.server.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,UAAU,GAAU,uBAG9B;IACD,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KAAG,OAAO,CAAC;IAAE,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAqBzC,CAAC"}
@@ -0,0 +1 @@
1
+ "use server";import{revalidatePath}from"next/cache";import{adminModule}from"../../../../../../../../api/modules/admin/admin.module.js";import{fetcher}from"../../../../../../../../lib/fetcher.js";export const deleteRole=async({id,moveToRoleId})=>{const res=await fetcher(adminModule,{path:"/{id}",method:"delete",module:"admin/roles",args:{params:{id:String(id)},query:moveToRoleId!==undefined?{moveToRoleId:String(moveToRoleId)}:{}}});if(res.status!==200){return{error:{status:res.status}}}revalidatePath("/[locale]/admin","layout");return{}};
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ declare const CreateEditRoleAdmin: React.ComponentType<{
3
+ data?: import("../../actions/create-edit/create-edit").RoleData;
4
+ }>;
5
+ export declare const EditAction: (props: Required<React.ComponentProps<typeof CreateEditRoleAdmin>>) => React.JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=edit-action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-action.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/views/admin/views/core/users/roles/table/actions/edit-action.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAkB1B,QAAA,MAAM,mBAAmB;;EAIxB,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,OAAO,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,CAAC,sBAkClE,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{PencilIcon}from"lucide-react";import{useTranslations}from"next-intl";import dynamic from"next/dynamic";import React from"react";import{Button}from"../../../../../../../../components/ui/button.js";import{Dialog,DialogContent,DialogHeader,DialogTitle,DialogTrigger}from"../../../../../../../../components/ui/dialog.js";import{Loader}from"../../../../../../../../components/ui/loader.js";import{Tooltip,TooltipContent,TooltipProvider,TooltipTrigger}from"../../../../../../../../components/ui/tooltip.js";const CreateEditRoleAdmin=dynamic(async()=>import("../../actions/create-edit/create-edit.js").then(mod=>({default:mod.CreateEditRoleAdmin})));export const EditAction=props=>{const t=useTranslations("admin.role.edit");return _jsxs(Dialog,{children:[_jsx(TooltipProvider,{children:_jsxs(Tooltip,{children:[_jsx(TooltipTrigger,{render:_jsx(DialogTrigger,{render:_jsx(Button,{"aria-label":t("title"),size:"icon",variant:"ghost"}),children:_jsx(PencilIcon,{})})}),_jsx(TooltipContent,{children:t("title")})]})}),_jsxs(DialogContent,{children:[_jsx(DialogHeader,{children:_jsx(DialogTitle,{children:t("title")})}),_jsx(React.Suspense,{fallback:_jsx(Loader,{}),children:_jsx(CreateEditRoleAdmin,{...props})})]})]})};
@@ -0,0 +1,22 @@
1
+ interface RoleRowData {
2
+ allowUploadFiles: boolean;
3
+ color: null | string;
4
+ default: boolean;
5
+ grantsAdmin: boolean;
6
+ guest: boolean;
7
+ id: number;
8
+ maxStorageForSubmit: null | number;
9
+ name: {
10
+ languageCode: string;
11
+ name: string;
12
+ }[];
13
+ protected: boolean;
14
+ root: boolean;
15
+ totalMaxStorage: null | number;
16
+ usersCount: number;
17
+ }
18
+ export declare const RowActions: ({ data }: {
19
+ data: RoleRowData;
20
+ }) => import("react").JSX.Element | null;
21
+ export {};
22
+ //# sourceMappingURL=row-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-actions.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/views/admin/views/core/users/roles/table/actions/row-actions.tsx"],"names":[],"mappings":"AAQA,UAAU,WAAW;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB,EAAE,IAAI,GAAG,MAAM,CAAC;IACnC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,eAAe,EAAE,IAAI,GAAG,MAAM,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,GAAI,UAAU;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,uCA2CzD,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useAdminStaffPermission}from"../../../../../../../../components/staff-permission/provider.js";import{CONFIG_PLUGIN}from"../../../../../../../../config.js";import{DeleteAction}from"./delete-action.js";import{EditAction}from"./edit-action.js";export const RowActions=({data})=>{const canEdit=useAdminStaffPermission({plugin:CONFIG_PLUGIN.pluginId,module:"roles",permission:"can_edit"});const canEditAdmin=useAdminStaffPermission({plugin:CONFIG_PLUGIN.pluginId,module:"roles",permission:"can_edit_admin"});const canDelete=useAdminStaffPermission({plugin:CONFIG_PLUGIN.pluginId,module:"roles",permission:"can_delete"});const canDeleteAdmin=useAdminStaffPermission({plugin:CONFIG_PLUGIN.pluginId,module:"roles",permission:"can_delete_admin"});const isSystem=data.protected||data.default||data.root||data.guest;const showEdit=canEdit&&(!data.grantsAdmin||canEditAdmin);const showDelete=canDelete&&!isSystem&&(!data.grantsAdmin||canDeleteAdmin);if(!showEdit&&!showDelete){return null}return _jsxs("div",{className:"flex items-center justify-end gap-1",children:[showEdit&&_jsx(EditAction,{data:data}),showDelete&&_jsx(DeleteAction,{data:data})]})};
@@ -0,0 +1,10 @@
1
+ export interface RoleOption {
2
+ color: null | string;
3
+ id: number;
4
+ name: {
5
+ languageCode: string;
6
+ name: string;
7
+ }[];
8
+ }
9
+ export declare const searchRolesForMove: (search: string) => Promise<RoleOption[]>;
10
+ //# sourceMappingURL=search-roles.action.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-roles.action.server.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/views/admin/views/core/users/roles/table/actions/search-roles.action.server.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAChD;AAID,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,MAAM,KACb,OAAO,CAAC,UAAU,EAAE,CAwBtB,CAAC"}
@@ -0,0 +1 @@
1
+ "use server";import{adminModule}from"../../../../../../../../api/modules/admin/admin.module.js";import{fetcher}from"../../../../../../../../lib/fetcher.js";export const searchRolesForMove=async search=>{const res=await fetcher(adminModule,{path:"/list",method:"get",module:"admin/roles",args:{query:{search,first:"20"}},withPagination:true});if(res.status!==200){return[]}const data=await res.json();return data.edges.filter(role=>!role.guest).map(role=>({id:role.id,color:role.color,name:role.name}))};
@@ -1,3 +1,3 @@
1
1
  import type { FilterOption } from "../../../../../components/table/filters";
2
2
  export declare const searchRolesAdmin: (search: string) => Promise<FilterOption[]>;
3
- //# sourceMappingURL=search-roles.action.d.ts.map
3
+ //# sourceMappingURL=search-roles.action.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-roles.action.server.d.ts","sourceRoot":"","sources":["../../../../../../../src/views/admin/views/core/users/search-roles.action.server.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM/D,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,MAAM,KACb,OAAO,CAAC,YAAY,EAAE,CAsBxB,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{CheckIcon,MailIcon,PencilIcon,XIcon}from"lucide-react";import{useTranslations}from"next-intl";import React from"react";import{toast}from"sonner";import{Button}from"../../../../../../components/ui/button.js";import{Input}from"../../../../../../components/ui/input.js";import{TooltipWithContent}from"../../../../../../components/ui/tooltip.js";import{mutationApi}from"./mutation-api.js";export const EditUserField=({id,field,value,label,type="text",as:Tag="span",valueClassName,showUnverified=false,canEdit=true})=>{const t=useTranslations("admin.user");const tGlobal=useTranslations("core.global");const tError=useTranslations("core.global.errors");const[isEditing,setIsEditing]=React.useState(false);const[draft,setDraft]=React.useState(value);const[isPending,startTransition]=React.useTransition();const openEditor=()=>{setDraft(value);setIsEditing(true)};const onSave=()=>{const next=draft.trim();if(!next||next===value){setIsEditing(false);return}startTransition(async()=>{const mutation=await mutationApi(id,{[field]:next});if("error"in mutation){toast.error(tError("title"),{description:mutation.error.status===409?t(field==="email"?"create.email.exists":"create.name.exists"):tError("internal_server_error")});return}toast.success(t("show.updateSuccess"));setIsEditing(false)})};if(isEditing){return _jsxs("form",{className:"flex items-center gap-2",onSubmit:e=>{e.preventDefault();onSave()},children:[_jsx(Input,{"aria-label":label,autoFocus:true,className:"flex-1",disabled:isPending,minLength:type==="email"?undefined:3,name:field,onChange:e=>{setDraft(e.target.value)},onKeyDown:e=>{if(e.key==="Escape"){setIsEditing(false)}},required:true,type:type,value:draft}),_jsx(Button,{"aria-label":tGlobal("save"),isLoading:isPending,size:"icon-sm",type:"submit",children:_jsx(CheckIcon,{})}),_jsx(Button,{"aria-label":tGlobal("cancel"),disabled:isPending,onClick:()=>{setIsEditing(false)},size:"icon-sm",type:"button",variant:"ghost",children:_jsx(XIcon,{})})]})}return _jsxs("div",{className:"flex items-center justify-between gap-2",children:[_jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[_jsx(Tag,{className:valueClassName,children:value}),showUnverified&&_jsx(TooltipWithContent,{text:t("show.emailNotVerified"),children:_jsx(MailIcon,{className:"text-destructive size-5 shrink-0"})})]}),canEdit&&_jsx(Button,{"aria-label":label,onClick:openEditor,size:"icon-sm",variant:"secondary",children:_jsx(PencilIcon,{})})]})};
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{CheckIcon,MailIcon,PencilIcon,XIcon}from"lucide-react";import{useTranslations}from"next-intl";import React from"react";import{toast}from"sonner";import{Button}from"../../../../../../components/ui/button.js";import{Input}from"../../../../../../components/ui/input.js";import{TooltipWithContent}from"../../../../../../components/ui/tooltip.js";import{mutationApi}from"./mutation-api.server.js";export const EditUserField=({id,field,value,label,type="text",as:Tag="span",valueClassName,showUnverified=false,canEdit=true})=>{const t=useTranslations("admin.user");const tGlobal=useTranslations("core.global");const tError=useTranslations("core.global.errors");const[isEditing,setIsEditing]=React.useState(false);const[draft,setDraft]=React.useState(value);const[isPending,startTransition]=React.useTransition();const openEditor=()=>{setDraft(value);setIsEditing(true)};const onSave=()=>{const next=draft.trim();if(!next||next===value){setIsEditing(false);return}startTransition(async()=>{const mutation=await mutationApi(id,{[field]:next});if("error"in mutation){toast.error(tError("title"),{description:mutation.error.status===409?t(field==="email"?"create.email.exists":"create.name.exists"):tError("internal_server_error")});return}toast.success(t("show.updateSuccess"));setIsEditing(false)})};if(isEditing){return _jsxs("form",{className:"flex items-center gap-2",onSubmit:e=>{e.preventDefault();onSave()},children:[_jsx(Input,{"aria-label":label,autoFocus:true,className:"flex-1",disabled:isPending,minLength:type==="email"?undefined:3,name:field,onChange:e=>{setDraft(e.target.value)},onKeyDown:e=>{if(e.key==="Escape"){setIsEditing(false)}},required:true,type:type,value:draft}),_jsx(Button,{"aria-label":tGlobal("save"),isLoading:isPending,size:"icon-sm",type:"submit",children:_jsx(CheckIcon,{})}),_jsx(Button,{"aria-label":tGlobal("cancel"),disabled:isPending,onClick:()=>{setIsEditing(false)},size:"icon-sm",type:"button",variant:"ghost",children:_jsx(XIcon,{})})]})}return _jsxs("div",{className:"flex items-center justify-between gap-2",children:[_jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[_jsx(Tag,{className:valueClassName,children:value}),showUnverified&&_jsx(TooltipWithContent,{text:t("show.emailNotVerified"),children:_jsx(MailIcon,{className:"text-destructive size-5 shrink-0"})})]}),canEdit&&_jsx(Button,{"aria-label":label,onClick:openEditor,size:"icon-sm",variant:"secondary",children:_jsx(PencilIcon,{})})]})};
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{LinkIcon,PencilIcon,TriangleAlertIcon}from"lucide-react";import{useTranslations}from"next-intl";import{toast}from"sonner";import{z}from"zod";import{AutoForm}from"../../../../../../components/form/auto-form.js";import{AutoFormInput}from"../../../../../../components/form/fields/input.js";import{Alert,AlertDescription,AlertTitle}from"../../../../../../components/ui/alert.js";import{Button}from"../../../../../../components/ui/button.js";import{Dialog,DialogContent,DialogDescription,DialogHeader,DialogTitle,DialogTrigger,useDialog}from"../../../../../../components/ui/dialog.js";import{mutationApi}from"./mutation-api.js";export const EditNameCode=({id,nameCode})=>{const t=useTranslations("admin.user.show");return _jsxs(Dialog,{children:[_jsx(DialogTrigger,{render:_jsx(Button,{"aria-label":t("editNameCode"),size:"icon-xs",variant:"ghost"}),children:_jsx(PencilIcon,{})}),_jsxs(DialogContent,{children:[_jsxs(DialogHeader,{children:[_jsxs(DialogTitle,{className:"flex items-center gap-2",children:[_jsx(LinkIcon,{className:"size-5"}),t("editNameCode")]}),_jsx(DialogDescription,{children:t("editNameCodeDesc")})]}),_jsxs(Alert,{variant:"destructive",children:[_jsx(TriangleAlertIcon,{}),_jsx(AlertTitle,{children:t("editNameCodeWarningTitle")}),_jsx(AlertDescription,{children:t("editNameCodeWarning")})]}),_jsx(FormEditNameCode,{id:id,nameCode:nameCode})]})]})};const FormEditNameCode=({id,nameCode})=>{const t=useTranslations("admin.user.show");const tError=useTranslations("core.global.errors");const{setOpen,setIsDirty}=useDialog();const formSchema=z.object({newNameCode:z.string({message:tError("field_required")}).min(3,tError("field_min_length",{min:3})).max(255).regex(/^[a-zA-Z0-9-]+$/,t("nameCodeInvalid")).refine(value=>value!==nameCode,t("nameCodeSame")).default(""),currentNameCode:z.string({message:tError("field_required")}).refine(value=>value===nameCode,t("nameCodeConfirmMismatch")).default("")});const onSubmit=async(values,form)=>{const mutation=await mutationApi(id,{nameCode:values.newNameCode});if("data"in mutation){setIsDirty?.(false);setOpen?.(false);toast.success(t("updateSuccess"));return}if(mutation.error.status===409){form.setError("newNameCode",{type:"manual",message:t("nameCodeExists")},{shouldFocus:true});return}toast.error(tError("title"),{description:tError("internal_server_error")})};return _jsx(AutoForm,{fields:[{id:"currentNameCode",component:props=>_jsx(AutoFormInput,{autoComplete:"off",label:t.rich("confirmNameCode",{bold:chunks=>_jsx("span",{className:"font-semibold",children:chunks}),nameCode:()=>_jsx("code",{className:"font-mono",children:nameCode})}),...props})},{id:"newNameCode",component:props=>_jsx(AutoFormInput,{label:t("newNameCode"),...props})}],formSchema:formSchema,mode:"all",onSubmit:onSubmit,submitButtonProps:{children:t("saveNameCode"),variant:"destructive"}})};
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{LinkIcon,PencilIcon,TriangleAlertIcon}from"lucide-react";import{useTranslations}from"next-intl";import{toast}from"sonner";import{z}from"zod";import{AutoForm}from"../../../../../../components/form/auto-form.js";import{AutoFormInput}from"../../../../../../components/form/fields/input.js";import{Alert,AlertDescription,AlertTitle}from"../../../../../../components/ui/alert.js";import{Button}from"../../../../../../components/ui/button.js";import{Dialog,DialogContent,DialogDescription,DialogHeader,DialogTitle,DialogTrigger,useDialog}from"../../../../../../components/ui/dialog.js";import{mutationApi}from"./mutation-api.server.js";export const EditNameCode=({id,nameCode})=>{const t=useTranslations("admin.user.show");return _jsxs(Dialog,{children:[_jsx(DialogTrigger,{render:_jsx(Button,{"aria-label":t("editNameCode"),size:"icon-xs",variant:"ghost"}),children:_jsx(PencilIcon,{})}),_jsxs(DialogContent,{children:[_jsxs(DialogHeader,{children:[_jsxs(DialogTitle,{className:"flex items-center gap-2",children:[_jsx(LinkIcon,{className:"size-5"}),t("editNameCode")]}),_jsx(DialogDescription,{children:t("editNameCodeDesc")})]}),_jsxs(Alert,{variant:"destructive",children:[_jsx(TriangleAlertIcon,{}),_jsx(AlertTitle,{children:t("editNameCodeWarningTitle")}),_jsx(AlertDescription,{children:t("editNameCodeWarning")})]}),_jsx(FormEditNameCode,{id:id,nameCode:nameCode})]})]})};const FormEditNameCode=({id,nameCode})=>{const t=useTranslations("admin.user.show");const tError=useTranslations("core.global.errors");const{setOpen,setIsDirty}=useDialog();const formSchema=z.object({newNameCode:z.string({message:tError("field_required")}).min(3,tError("field_min_length",{min:3})).max(255).regex(/^[a-zA-Z0-9-]+$/,t("nameCodeInvalid")).refine(value=>value!==nameCode,t("nameCodeSame")).default(""),currentNameCode:z.string({message:tError("field_required")}).refine(value=>value===nameCode,t("nameCodeConfirmMismatch")).default("")});const onSubmit=async(values,form)=>{const mutation=await mutationApi(id,{nameCode:values.newNameCode});if("data"in mutation){setIsDirty?.(false);setOpen?.(false);toast.success(t("updateSuccess"));return}if(mutation.error.status===409){form.setError("newNameCode",{type:"manual",message:t("nameCodeExists")},{shouldFocus:true});return}toast.error(tError("title"),{description:tError("internal_server_error")})};return _jsx(AutoForm,{fields:[{id:"currentNameCode",component:props=>_jsx(AutoFormInput,{autoComplete:"off",label:t.rich("confirmNameCode",{bold:chunks=>_jsx("span",{className:"font-semibold",children:chunks}),nameCode:()=>_jsx("code",{className:"font-mono",children:nameCode})}),...props})},{id:"newNameCode",component:props=>_jsx(AutoFormInput,{label:t("newNameCode"),...props})}],formSchema:formSchema,mode:"all",onSubmit:onSubmit,submitButtonProps:{children:t("saveNameCode"),variant:"destructive"}})};
@@ -16,4 +16,4 @@ export declare const mutationApi: (id: number, input: {
16
16
  nameCode?: string;
17
17
  }) => Promise<MutationResult>;
18
18
  export {};
19
- //# sourceMappingURL=mutation-api.d.ts.map
19
+ //# sourceMappingURL=mutation-api.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation-api.server.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/users/show/mutation-api.server.ts"],"names":[],"mappings":"AAOA,KAAK,cAAc,GACf;IAAE,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACvE;IAAE,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAElC,eAAO,MAAM,WAAW,GACtB,IAAI,MAAM,EACV,OAAO;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,KAC1D,OAAO,CAAC,cAAc,CAmBxB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import type { Role } from "./search-roles.action";
2
+ import type { Role } from "./search-roles.action.server";
3
3
  export declare const EditRoles: ({ id, primaryRole, secondaryRoles, }: {
4
4
  id: number;
5
5
  primaryRole: Role;
@@ -1 +1 @@
1
- {"version":3,"file":"edit-roles.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/users/show/roles/edit-roles.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgC1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AA6SlD,eAAO,MAAM,SAAS,GAAI,sCAIvB;IACD,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,IAAI,CAAC;IAClB,cAAc,EAAE,IAAI,EAAE,CAAC;CACxB,sBA8BA,CAAC"}
1
+ {"version":3,"file":"edit-roles.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/users/show/roles/edit-roles.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgC1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AA6SzD,eAAO,MAAM,SAAS,GAAI,sCAIvB;IACD,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,IAAI,CAAC;IAClB,cAAc,EAAE,IAAI,EAAE,CAAC;CACxB,sBA8BA,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{CheckIcon,ChevronsUpDownIcon,PencilIcon,PlusIcon,UsersIcon,XIcon}from"lucide-react";import{useLocale,useTranslations}from"next-intl";import React from"react";import{toast}from"sonner";import{useDebouncedCallback}from"use-debounce";import{Badge}from"../../../../../../../components/ui/badge.js";import{Button}from"../../../../../../../components/ui/button.js";import{Command,CommandEmpty,CommandGroup,CommandInput,CommandItem,CommandList}from"../../../../../../../components/ui/command.js";import{Dialog,DialogContent,DialogDescription,DialogFooter,DialogHeader,DialogTitle,DialogTrigger,useDialog}from"../../../../../../../components/ui/dialog.js";import{Popover,PopoverContent,PopoverTrigger}from"../../../../../../../components/ui/popover.js";import{Spinner}from"../../../../../../../components/ui/spinner.js";import{cn}from"../../../../../../../lib/utils.js";import{searchRolesForUser}from"./search-roles.action.js";import{updateUserRoles}from"./update-roles.action.js";const RoleName=({role})=>{const locale=useLocale();const name=role.name.find(item=>item.languageCode===locale)?.name??role.name[0]?.name??"";return _jsx("span",{className:"truncate font-medium",style:role.color?{color:role.color}:undefined,children:name})};const RolePicker=({excludeIds=[],onRegister,onSelect,selectedIds,single=false,triggerContent,triggerRender})=>{const t=useTranslations("core.global");const[open,setOpen]=React.useState(false);const[options,setOptions]=React.useState([]);const[isSearching,setIsSearching]=React.useState(false);const runSearch=React.useCallback(async value=>{setIsSearching(true);try{const results=await searchRolesForUser(value);setOptions(results);onRegister(results)}finally{setIsSearching(false)}},[onRegister]);const debouncedSearch=useDebouncedCallback(runSearch,400);const handleOpenChange=next=>{setOpen(next);if(next){setOptions([]);void runSearch("")}};const selectedSet=new Set(selectedIds);const excludeSet=new Set(excludeIds);const visibleOptions=options.filter(option=>!excludeSet.has(option.id));return _jsxs(Popover,{onOpenChange:handleOpenChange,open:open,children:[_jsx(PopoverTrigger,{render:triggerRender,children:triggerContent}),_jsx(PopoverContent,{align:"start",className:"w-(--anchor-width) min-w-56 p-0",children:_jsxs(Command,{shouldFilter:false,children:[_jsx(CommandInput,{onValueChange:debouncedSearch,placeholder:t("search_placeholder")}),_jsx(CommandList,{children:isSearching&&visibleOptions.length===0?_jsx("div",{className:"flex items-center justify-center py-6",children:_jsx(Spinner,{})}):_jsxs(_Fragment,{children:[_jsx(CommandEmpty,{children:t("results_not_found")}),_jsx(CommandGroup,{children:visibleOptions.map(role=>{const isSelected=selectedSet.has(role.id);return _jsxs(CommandItem,{onSelect:()=>{onSelect(role);if(single){setOpen(false)}},value:String(role.id),children:[_jsx(CheckIcon,{className:cn("size-4 shrink-0",isSelected?"opacity-100":"opacity-0")}),_jsx(RoleName,{role:role})]},role.id)})})]})})]})})]})};const FormEditRoles=({id,primaryRole,secondaryRoles})=>{const t=useTranslations("admin.user.show");const tError=useTranslations("core.global.errors");const{setIsDirty,setOpen}=useDialog();const[isPending,startTransition]=React.useTransition();const initialSecondaryIds=secondaryRoles.map(role=>role.id);const[primaryId,setPrimaryId]=React.useState(primaryRole.id);const[secondaryIds,setSecondaryIds]=React.useState(initialSecondaryIds);const[knownRoles,setKnownRoles]=React.useState(()=>new Map([primaryRole,...secondaryRoles].map(role=>[role.id,role])));const registerRoles=React.useCallback(roles=>{setKnownRoles(prev=>{const next=new Map(prev);for(const role of roles){next.set(role.id,role)}return next})},[]);const markDirty=(nextPrimary,nextSecondary)=>{const isDirty=nextPrimary!==primaryRole.id||nextSecondary.length!==initialSecondaryIds.length||nextSecondary.some(id=>!initialSecondaryIds.includes(id));setIsDirty?.(isDirty)};const selectPrimary=role=>{setPrimaryId(role.id);const nextSecondary=secondaryIds.filter(id=>id!==role.id);setSecondaryIds(nextSecondary);markDirty(role.id,nextSecondary)};const toggleSecondary=role=>{const nextSecondary=secondaryIds.includes(role.id)?secondaryIds.filter(id=>id!==role.id):[...secondaryIds,role.id];setSecondaryIds(nextSecondary);markDirty(primaryId,nextSecondary)};const removeSecondary=id=>{const nextSecondary=secondaryIds.filter(item=>item!==id);setSecondaryIds(nextSecondary);markDirty(primaryId,nextSecondary)};const onSubmit=()=>{startTransition(async()=>{const result=await updateUserRoles(id,{roleId:primaryId,secondaryRoleIds:secondaryIds});if("error"in result){toast.error(tError("title"),{description:tError("internal_server_error")});return}setIsDirty?.(false);setOpen?.(false);toast.success(t("updateSuccess"))})};const primary=knownRoles.get(primaryId);return _jsxs(_Fragment,{children:[_jsxs("div",{className:"flex flex-col gap-2",children:[_jsx("span",{className:"text-sm font-medium",children:t("primaryRole")}),_jsx(RolePicker,{onRegister:registerRoles,onSelect:selectPrimary,selectedIds:[primaryId],single:true,triggerContent:_jsxs(_Fragment,{children:[primary?_jsx(RoleName,{role:primary}):_jsx("span",{className:"text-muted-foreground",children:t("selectRole")}),_jsx(ChevronsUpDownIcon,{className:"ms-auto opacity-50"})]}),triggerRender:_jsx(Button,{className:"w-full justify-start font-normal",variant:"outline"})})]}),_jsxs("div",{className:"flex flex-col gap-2",children:[_jsx("span",{className:"text-sm font-medium",children:t("secondaryRoles")}),secondaryIds.length>0&&_jsx("div",{className:"flex flex-wrap gap-1.5",children:secondaryIds.map(id=>{const role=knownRoles.get(id);if(!role)return null;return _jsxs(Badge,{className:"gap-1 pe-1",variant:"secondary",children:[_jsx(RoleName,{role:role}),_jsx(Button,{"aria-label":t("removeRole"),className:"size-4",onClick:()=>{removeSecondary(id)},size:"icon-xs",type:"button",variant:"ghost",children:_jsx(XIcon,{})})]},id)})}),_jsx(RolePicker,{excludeIds:[primaryId],onRegister:registerRoles,onSelect:toggleSecondary,selectedIds:secondaryIds,triggerContent:_jsxs(_Fragment,{children:[_jsx(PlusIcon,{}),t("addSecondaryRole")]}),triggerRender:_jsx(Button,{className:"w-fit border-dashed",size:"sm",variant:"outline"})})]}),_jsx(DialogFooter,{children:_jsx(Button,{isLoading:isPending,onClick:onSubmit,type:"button",children:t("saveRoles")})})]})};export const EditRoles=({id,primaryRole,secondaryRoles})=>{const t=useTranslations("admin.user.show");return _jsxs(Dialog,{children:[_jsx(DialogTrigger,{render:_jsx(Button,{"aria-label":t("editRoles"),size:"icon-sm",variant:"ghost"}),children:_jsx(PencilIcon,{})}),_jsxs(DialogContent,{children:[_jsxs(DialogHeader,{children:[_jsxs(DialogTitle,{className:"flex items-center gap-2",children:[_jsx(UsersIcon,{className:"size-5"}),t("editRoles")]}),_jsx(DialogDescription,{children:t("editRolesDesc")})]}),_jsx(FormEditRoles,{id:id,primaryRole:primaryRole,secondaryRoles:secondaryRoles})]})]})};
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{CheckIcon,ChevronsUpDownIcon,PencilIcon,PlusIcon,UsersIcon,XIcon}from"lucide-react";import{useLocale,useTranslations}from"next-intl";import React from"react";import{toast}from"sonner";import{useDebouncedCallback}from"use-debounce";import{Badge}from"../../../../../../../components/ui/badge.js";import{Button}from"../../../../../../../components/ui/button.js";import{Command,CommandEmpty,CommandGroup,CommandInput,CommandItem,CommandList}from"../../../../../../../components/ui/command.js";import{Dialog,DialogContent,DialogDescription,DialogFooter,DialogHeader,DialogTitle,DialogTrigger,useDialog}from"../../../../../../../components/ui/dialog.js";import{Popover,PopoverContent,PopoverTrigger}from"../../../../../../../components/ui/popover.js";import{Spinner}from"../../../../../../../components/ui/spinner.js";import{cn}from"../../../../../../../lib/utils.js";import{searchRolesForUser}from"./search-roles.action.server.js";import{updateUserRoles}from"./update-roles.action.server.js";const RoleName=({role})=>{const locale=useLocale();const name=role.name.find(item=>item.languageCode===locale)?.name??role.name[0]?.name??"";return _jsx("span",{className:"truncate font-medium",style:role.color?{color:role.color}:undefined,children:name})};const RolePicker=({excludeIds=[],onRegister,onSelect,selectedIds,single=false,triggerContent,triggerRender})=>{const t=useTranslations("core.global");const[open,setOpen]=React.useState(false);const[options,setOptions]=React.useState([]);const[isSearching,setIsSearching]=React.useState(false);const runSearch=React.useCallback(async value=>{setIsSearching(true);try{const results=await searchRolesForUser(value);setOptions(results);onRegister(results)}finally{setIsSearching(false)}},[onRegister]);const debouncedSearch=useDebouncedCallback(runSearch,400);const handleOpenChange=next=>{setOpen(next);if(next){setOptions([]);void runSearch("")}};const selectedSet=new Set(selectedIds);const excludeSet=new Set(excludeIds);const visibleOptions=options.filter(option=>!excludeSet.has(option.id));return _jsxs(Popover,{onOpenChange:handleOpenChange,open:open,children:[_jsx(PopoverTrigger,{render:triggerRender,children:triggerContent}),_jsx(PopoverContent,{align:"start",className:"w-(--anchor-width) min-w-56 p-0",children:_jsxs(Command,{shouldFilter:false,children:[_jsx(CommandInput,{onValueChange:debouncedSearch,placeholder:t("search_placeholder")}),_jsx(CommandList,{children:isSearching&&visibleOptions.length===0?_jsx("div",{className:"flex items-center justify-center py-6",children:_jsx(Spinner,{})}):_jsxs(_Fragment,{children:[_jsx(CommandEmpty,{children:t("results_not_found")}),_jsx(CommandGroup,{children:visibleOptions.map(role=>{const isSelected=selectedSet.has(role.id);return _jsxs(CommandItem,{onSelect:()=>{onSelect(role);if(single){setOpen(false)}},value:String(role.id),children:[_jsx(CheckIcon,{className:cn("size-4 shrink-0",isSelected?"opacity-100":"opacity-0")}),_jsx(RoleName,{role:role})]},role.id)})})]})})]})})]})};const FormEditRoles=({id,primaryRole,secondaryRoles})=>{const t=useTranslations("admin.user.show");const tError=useTranslations("core.global.errors");const{setIsDirty,setOpen}=useDialog();const[isPending,startTransition]=React.useTransition();const initialSecondaryIds=secondaryRoles.map(role=>role.id);const[primaryId,setPrimaryId]=React.useState(primaryRole.id);const[secondaryIds,setSecondaryIds]=React.useState(initialSecondaryIds);const[knownRoles,setKnownRoles]=React.useState(()=>new Map([primaryRole,...secondaryRoles].map(role=>[role.id,role])));const registerRoles=React.useCallback(roles=>{setKnownRoles(prev=>{const next=new Map(prev);for(const role of roles){next.set(role.id,role)}return next})},[]);const markDirty=(nextPrimary,nextSecondary)=>{const isDirty=nextPrimary!==primaryRole.id||nextSecondary.length!==initialSecondaryIds.length||nextSecondary.some(id=>!initialSecondaryIds.includes(id));setIsDirty?.(isDirty)};const selectPrimary=role=>{setPrimaryId(role.id);const nextSecondary=secondaryIds.filter(id=>id!==role.id);setSecondaryIds(nextSecondary);markDirty(role.id,nextSecondary)};const toggleSecondary=role=>{const nextSecondary=secondaryIds.includes(role.id)?secondaryIds.filter(id=>id!==role.id):[...secondaryIds,role.id];setSecondaryIds(nextSecondary);markDirty(primaryId,nextSecondary)};const removeSecondary=id=>{const nextSecondary=secondaryIds.filter(item=>item!==id);setSecondaryIds(nextSecondary);markDirty(primaryId,nextSecondary)};const onSubmit=()=>{startTransition(async()=>{const result=await updateUserRoles(id,{roleId:primaryId,secondaryRoleIds:secondaryIds});if("error"in result){toast.error(tError("title"),{description:tError("internal_server_error")});return}setIsDirty?.(false);setOpen?.(false);toast.success(t("updateSuccess"))})};const primary=knownRoles.get(primaryId);return _jsxs(_Fragment,{children:[_jsxs("div",{className:"flex flex-col gap-2",children:[_jsx("span",{className:"text-sm font-medium",children:t("primaryRole")}),_jsx(RolePicker,{onRegister:registerRoles,onSelect:selectPrimary,selectedIds:[primaryId],single:true,triggerContent:_jsxs(_Fragment,{children:[primary?_jsx(RoleName,{role:primary}):_jsx("span",{className:"text-muted-foreground",children:t("selectRole")}),_jsx(ChevronsUpDownIcon,{className:"ms-auto opacity-50"})]}),triggerRender:_jsx(Button,{className:"w-full justify-start font-normal",variant:"outline"})})]}),_jsxs("div",{className:"flex flex-col gap-2",children:[_jsx("span",{className:"text-sm font-medium",children:t("secondaryRoles")}),secondaryIds.length>0&&_jsx("div",{className:"flex flex-wrap gap-1.5",children:secondaryIds.map(id=>{const role=knownRoles.get(id);if(!role)return null;return _jsxs(Badge,{className:"gap-1 pe-1",variant:"secondary",children:[_jsx(RoleName,{role:role}),_jsx(Button,{"aria-label":t("removeRole"),className:"size-4",onClick:()=>{removeSecondary(id)},size:"icon-xs",type:"button",variant:"ghost",children:_jsx(XIcon,{})})]},id)})}),_jsx(RolePicker,{excludeIds:[primaryId],onRegister:registerRoles,onSelect:toggleSecondary,selectedIds:secondaryIds,triggerContent:_jsxs(_Fragment,{children:[_jsx(PlusIcon,{}),t("addSecondaryRole")]}),triggerRender:_jsx(Button,{className:"w-fit border-dashed",size:"sm",variant:"outline"})})]}),_jsx(DialogFooter,{children:_jsx(Button,{isLoading:isPending,onClick:onSubmit,type:"button",children:t("saveRoles")})})]})};export const EditRoles=({id,primaryRole,secondaryRoles})=>{const t=useTranslations("admin.user.show");return _jsxs(Dialog,{children:[_jsx(DialogTrigger,{render:_jsx(Button,{"aria-label":t("editRoles"),size:"icon-sm",variant:"ghost"}),children:_jsx(PencilIcon,{})}),_jsxs(DialogContent,{children:[_jsxs(DialogHeader,{children:[_jsxs(DialogTitle,{className:"flex items-center gap-2",children:[_jsx(UsersIcon,{className:"size-5"}),t("editRoles")]}),_jsx(DialogDescription,{children:t("editRolesDesc")})]}),_jsx(FormEditRoles,{id:id,primaryRole:primaryRole,secondaryRoles:secondaryRoles})]})]})};
@@ -1,4 +1,4 @@
1
- import type { Role } from "./search-roles.action";
1
+ import type { Role } from "./search-roles.action.server";
2
2
  export declare const RolesUserAdmin: ({ id, role, secondaryRoles, canEdit, }: {
3
3
  canEdit?: boolean;
4
4
  id: number;
@@ -1 +1 @@
1
- {"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/users/show/roles/roles.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAIlD,eAAO,MAAM,cAAc,GAAU,wCAKlC;IACD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,cAAc,EAAE,IAAI,EAAE,CAAC;CACxB,yCA4CA,CAAC"}
1
+ {"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/users/show/roles/roles.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAIzD,eAAO,MAAM,cAAc,GAAU,wCAKlC;IACD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,cAAc,EAAE,IAAI,EAAE,CAAC;CACxB,yCA4CA,CAAC"}
@@ -7,4 +7,4 @@ export interface Role {
7
7
  }[];
8
8
  }
9
9
  export declare const searchRolesForUser: (search: string) => Promise<Role[]>;
10
- //# sourceMappingURL=search-roles.action.d.ts.map
10
+ //# sourceMappingURL=search-roles.action.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-roles.action.server.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/users/show/roles/search-roles.action.server.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAChD;AAED,eAAO,MAAM,kBAAkB,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,EAAE,CAwBvE,CAAC"}
@@ -10,4 +10,4 @@ export declare const updateUserRoles: (id: number, input: {
10
10
  secondaryRoleIds: number[];
11
11
  }) => Promise<UpdateRolesResult>;
12
12
  export {};
13
- //# sourceMappingURL=update-roles.action.d.ts.map
13
+ //# sourceMappingURL=update-roles.action.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-roles.action.server.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/users/show/roles/update-roles.action.server.ts"],"names":[],"mappings":"AAOA,KAAK,iBAAiB,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAExE,eAAO,MAAM,eAAe,GAC1B,IAAI,MAAM,EACV,OAAO;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAAE,KACpD,OAAO,CAAC,iBAAiB,CAkB3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"show-user-admin-view.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/users/show/show-user-admin-view.tsx"],"names":[],"mappings":"AAoBA,eAAO,MAAM,iBAAiB,GAAU,QAAQ;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,yCA8H7D,CAAC"}
1
+ {"version":3,"file":"show-user-admin-view.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/users/show/show-user-admin-view.tsx"],"names":[],"mappings":"AAsBA,eAAO,MAAM,iBAAiB,GAAU,QAAQ;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,yCA0I7D,CAAC"}
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{ExternalLinkIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{notFound}from"next/navigation";import{hasStaffPermission}from"../../../../../../api/lib/staff-permission.js";import{adminModule}from"../../../../../../api/modules/admin/admin.module.js";import{Avatar}from"../../../../../../components/avatar.js";import{DateFormat}from"../../../../../../components/date-format.js";import{Button}from"../../../../../../components/ui/button.js";import{Card,CardContent}from"../../../../../../components/ui/card.js";import{CONFIG_PLUGIN}from"../../../../../../config.js";import{getSessionAdminApi}from"../../../../../../lib/api/get-session-admin-api.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{Link}from"../../../../../../lib/navigation.js";import{EditImageButton}from"./edit-buttons.js";import{EditUserField}from"./edit-field.js";import{EditNameCode}from"./edit-name-code.js";import{RolesUserAdmin}from"./roles/roles.js";export const ShowUserAdminView=async({id})=>{const t=await getTranslations("admin.user.show");const res=await fetcher(adminModule,{path:"/{id}",method:"get",module:"admin/users",args:{params:{id}}});if(res.status!==200){notFound()}const user=await res.json();const session=await getSessionAdminApi();const canEdit=!!session&&hasStaffPermission(session.permissions,{plugin:CONFIG_PLUGIN.pluginId,module:"users",permission:"can_edit"})&&(user.isAdmin?hasStaffPermission(session.permissions,{plugin:CONFIG_PLUGIN.pluginId,module:"users",permission:"can_edit_admin"}):true);return _jsxs("div",{className:"mx-auto flex w-full max-w-lg flex-col gap-4",children:[_jsxs(Card,{className:"w-full overflow-hidden pt-0",children:[_jsxs("div",{className:"from-primary/30 to-primary/5 relative h-44 w-full bg-linear-to-br",children:[_jsx("span",{className:"sr-only",children:t("coverPlaceholder")}),canEdit&&_jsx("div",{className:"absolute inset-e-3 top-3",children:_jsx(EditImageButton,{label:t("editCover")})})]}),_jsxs(CardContent,{className:"flex flex-col",children:[_jsx("div",{className:"-mt-16 mb-4 flex justify-center",children:_jsxs("div",{className:"relative",children:[_jsx(Avatar,{className:"border-card size-32 border-4",size:128,user:user}),canEdit&&_jsx("div",{className:"absolute inset-e-0 bottom-0 translate-y-1/4",children:_jsx(EditImageButton,{label:t("editAvatar")})})]})}),_jsx(EditUserField,{as:"h2",canEdit:canEdit,field:"name",id:user.id,label:t("editName"),showUnverified:!user.emailVerified,value:user.name,valueClassName:"text-foreground truncate text-2xl font-bold"}),_jsxs("div",{className:"flex items-center gap-1",children:[_jsxs("span",{className:"text-muted-foreground truncate text-sm",children:["@",user.nameCode]}),canEdit&&_jsx(EditNameCode,{id:user.id,nameCode:user.nameCode})]}),_jsx("div",{className:"mt-3",children:_jsx(EditUserField,{canEdit:canEdit,field:"email",id:user.id,label:t("editEmail"),type:"email",value:user.email,valueClassName:"text-foreground truncate font-medium"})}),_jsxs("p",{className:"text-muted-foreground mt-1 text-sm",children:[t("joined")," ",_jsx(DateFormat,{date:user.createdAt})]}),_jsx("div",{className:"mt-6",children:_jsxs(Button,{className:"w-full",nativeButton:false,render:_jsx(Link,{href:`/profile/${user.nameCode}`,target:"_blank"}),variant:"ghost",children:[t("goToProfile")," ",_jsx(ExternalLinkIcon,{})]})})]})]}),_jsx(RolesUserAdmin,{canEdit:canEdit,id:user.id,role:user.role,secondaryRoles:user.secondaryRoles})]})};
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{ExternalLinkIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{notFound}from"next/navigation";import{hasStaffPermission}from"../../../../../../api/lib/staff-permission.js";import{adminModule}from"../../../../../../api/modules/admin/admin.module.js";import{Avatar}from"../../../../../../components/avatar.js";import{DateFormat}from"../../../../../../components/date-format.js";import{Button}from"../../../../../../components/ui/button.js";import{Card,CardContent}from"../../../../../../components/ui/card.js";import{CONFIG_PLUGIN}from"../../../../../../config.js";import{getSessionAdminApi}from"../../../../../../lib/api/get-session-admin-api.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{Link}from"../../../../../../lib/navigation.js";import{SearchFeed}from"../../../../../search/search-feed.js";import{EditImageButton}from"./edit-buttons.js";import{EditUserField}from"./edit-field.js";import{EditNameCode}from"./edit-name-code.js";import{RolesUserAdmin}from"./roles/roles.js";import{UserAdminTabs}from"./tabs.js";export const ShowUserAdminView=async({id})=>{const t=await getTranslations("admin.user.show");const res=await fetcher(adminModule,{path:"/{id}",method:"get",module:"admin/users",args:{params:{id}}});if(res.status!==200){notFound()}const user=await res.json();const session=await getSessionAdminApi();const canEdit=!!session&&hasStaffPermission(session.permissions,{plugin:CONFIG_PLUGIN.pluginId,module:"users",permission:"can_edit"})&&(user.isAdmin?hasStaffPermission(session.permissions,{plugin:CONFIG_PLUGIN.pluginId,module:"users",permission:"can_edit_admin"}):true);return _jsx(UserAdminTabs,{overview:_jsxs("div",{className:"flex w-full flex-col gap-4",children:[_jsxs(Card,{className:"w-full overflow-hidden pt-0",children:[_jsxs("div",{className:"from-primary/30 to-primary/5 relative h-44 w-full bg-linear-to-br",children:[_jsx("span",{className:"sr-only",children:t("coverPlaceholder")}),canEdit&&_jsx("div",{className:"absolute inset-e-3 top-3",children:_jsx(EditImageButton,{label:t("editCover")})})]}),_jsxs(CardContent,{className:"flex flex-col",children:[_jsx("div",{className:"-mt-16 mb-4 flex justify-center",children:_jsxs("div",{className:"relative",children:[_jsx(Avatar,{className:"border-card size-32 border-4",size:128,user:user}),canEdit&&_jsx("div",{className:"absolute inset-e-0 bottom-0 translate-y-1/4",children:_jsx(EditImageButton,{label:t("editAvatar")})})]})}),_jsx(EditUserField,{as:"h2",canEdit:canEdit,field:"name",id:user.id,label:t("editName"),showUnverified:!user.emailVerified,value:user.name,valueClassName:"text-foreground truncate text-2xl font-bold"}),_jsxs("div",{className:"flex items-center gap-1",children:[_jsxs("span",{className:"text-muted-foreground truncate text-sm",children:["@",user.nameCode]}),canEdit&&_jsx(EditNameCode,{id:user.id,nameCode:user.nameCode})]}),_jsx("div",{className:"mt-3",children:_jsx(EditUserField,{canEdit:canEdit,field:"email",id:user.id,label:t("editEmail"),type:"email",value:user.email,valueClassName:"text-foreground truncate font-medium"})}),_jsxs("p",{className:"text-muted-foreground mt-1 text-sm",children:[t("joined")," ",_jsx(DateFormat,{date:user.createdAt})]}),_jsx("div",{className:"mt-6",children:_jsxs(Button,{className:"w-full",nativeButton:false,render:_jsx(Link,{href:`/profile/${user.nameCode}`,target:"_blank"}),variant:"ghost",children:[t("goToProfile")," ",_jsx(ExternalLinkIcon,{})]})})]})]}),_jsx(RolesUserAdmin,{canEdit:canEdit,id:user.id,role:user.role,secondaryRoles:user.secondaryRoles})]}),timeline:_jsx(SearchFeed,{params:{authorId:String(user.id),sort:"newest"},variant:"timeline"})})};
@@ -0,0 +1,5 @@
1
+ export declare const UserAdminTabs: ({ overview, timeline, }: {
2
+ overview: React.ReactNode;
3
+ timeline: React.ReactNode;
4
+ }) => import("react").JSX.Element;
5
+ //# sourceMappingURL=tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/users/show/tabs.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa,GAAI,yBAG3B;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,gCAcA,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useTranslations}from"next-intl";import{Tabs,TabsContent,TabsList,TabsTrigger}from"../../../../../../components/ui/tabs.js";export const UserAdminTabs=({overview,timeline})=>{const t=useTranslations("core.search");return _jsxs(Tabs,{className:"mx-auto w-full max-w-lg gap-4",defaultValue:"overview",children:[_jsxs(TabsList,{className:"w-full",children:[_jsx(TabsTrigger,{value:"overview",children:t("userTab.overview")}),_jsx(TabsTrigger,{value:"timeline",children:t("userTab.timeline")})]}),_jsx(TabsContent,{value:"overview",children:overview}),_jsx(TabsContent,{value:"timeline",children:timeline})]})};
@@ -1 +1 @@
1
- {"version":3,"file":"users-admin-view.d.ts","sourceRoot":"","sources":["../../../../../../../src/views/admin/views/core/users/users-admin-view.tsx"],"names":[],"mappings":"AAcA,eAAO,MAAM,cAAc,GAAU,mBAElC;IACD,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;CACtE,yCA+GA,CAAC"}
1
+ {"version":3,"file":"users-admin-view.d.ts","sourceRoot":"","sources":["../../../../../../../src/views/admin/views/core/users/users-admin-view.tsx"],"names":[],"mappings":"AAcA,eAAO,MAAM,cAAc,GAAU,mBAElC;IACD,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;CACtE,yCAgHA,CAAC"}
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{MailIcon,UserSearchIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{adminModule}from"../../../../../api/modules/admin/admin.module.js";import{Avatar}from"../../../../../components/avatar.js";import{DateFormat}from"../../../../../components/date-format.js";import{RoleFormat}from"../../../../../components/role-format.js";import{DataTable}from"../../../../../components/table/data-table.js";import{TooltipWithContent}from"../../../../../components/ui/tooltip.js";import{fetcher}from"../../../../../lib/fetcher.js";import{UsersAdminActions}from"./actions.js";import{searchRolesAdmin}from"./search-roles.action.js";export const UsersAdminView=async({searchParams})=>{const t=await getTranslations("admin.user.list");const query=await searchParams;const res=await fetcher(adminModule,{path:"/list",method:"get",module:"admin/users",args:{query},withPagination:true});const data=await res.json();return _jsx(DataTable,{columns:[{id:"name",label:t("user"),cell:({row})=>_jsxs("div",{className:"flex items-center gap-3",children:[_jsx(Avatar,{size:32,user:row}),_jsxs("div",{className:"flex flex-col",children:[_jsx("span",{className:"font-medium",children:row.name}),_jsxs("span",{className:"text-muted-foreground text-sm",children:["@",row.nameCode]})]})]})},{id:"email",label:t("email"),cell:({row})=>{if(row.emailVerified){return _jsx("span",{children:row.email})}return _jsxs("div",{className:"flex items-center gap-2",children:[_jsx(TooltipWithContent,{text:t("emailNotVerified"),children:_jsx(MailIcon,{className:"text-destructive size-4"})}),_jsx("span",{className:"text-muted-foreground italic",children:row.email})]})}},{id:"roleId",label:t("roles"),cell:({row})=>_jsxs("div",{className:"flex flex-col items-start gap-1",children:[_jsx(RoleFormat,{role:row.role}),row.secondaryRoles.length>0&&_jsxs("div",{className:"text-muted-foreground flex flex-wrap items-center gap-x-2 gap-y-0.5 text-sm",children:[row.secondaryRoles.slice(0,3).map(role=>_jsx(RoleFormat,{role:role},role.id)),row.secondaryRoles.length>3&&_jsxs("span",{children:["+",row.secondaryRoles.length-3]})]})]})},{id:"createdAt",label:t("createdAt"),cell:({row})=>_jsx(DateFormat,{date:row.createdAt})},{id:"actions",label:"",className:"w-10",cell:({row})=>_jsx(UsersAdminActions,{...row})}],customNoResults:{title:t("noResults.title"),description:t("noResults.description"),icon:_jsx(UserSearchIcon,{})},edges:data.edges,filters:[{id:"roleId",label:t("roles"),onSearch:searchRolesAdmin}],id:"users-table",order:{columns:["createdAt","name"],defaultOrder:{column:"createdAt",order:"desc"}},pageInfo:data.pageInfo,search:true,searchPlaceholder:t("searchPlaceholder")})};
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{MailIcon,UserSearchIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{adminModule}from"../../../../../api/modules/admin/admin.module.js";import{Avatar}from"../../../../../components/avatar.js";import{DateFormat}from"../../../../../components/date-format.js";import{RoleFormat}from"../../../../../components/role-format.js";import{DataTable}from"../../../../../components/table/data-table.js";import{TooltipWithContent}from"../../../../../components/ui/tooltip.js";import{fetcher}from"../../../../../lib/fetcher.js";import{UsersAdminActions}from"./actions.js";import{searchRolesAdmin}from"./search-roles.action.server.js";export const UsersAdminView=async({searchParams})=>{const t=await getTranslations("admin.user.list");const query=await searchParams;const res=await fetcher(adminModule,{path:"/list",method:"get",module:"admin/users",args:{query},withPagination:true});const data=await res.json();return _jsx(DataTable,{columns:[{accessorKey:"name",header:t("user"),cell:({row})=>_jsxs("div",{className:"flex items-center gap-3",children:[_jsx(Avatar,{size:32,user:row}),_jsxs("div",{className:"flex flex-col",children:[_jsx("span",{className:"font-medium",children:row.name}),_jsxs("span",{className:"text-muted-foreground text-sm",children:["@",row.nameCode]})]})]})},{accessorKey:"email",header:t("email"),cell:({row})=>{if(row.emailVerified){return _jsx("span",{children:row.email})}return _jsxs("div",{className:"flex items-center gap-2",children:[_jsx(TooltipWithContent,{text:t("emailNotVerified"),children:_jsx(MailIcon,{className:"text-destructive size-4"})}),_jsx("span",{className:"text-muted-foreground italic",children:row.email})]})}},{accessorKey:"roleId",header:t("roles"),cell:({row})=>_jsxs("div",{className:"flex flex-col items-start gap-1",children:[_jsx(RoleFormat,{role:row.role}),row.secondaryRoles.length>0&&_jsxs("div",{className:"text-muted-foreground flex flex-wrap items-center gap-x-2 gap-y-0.5 text-sm",children:[row.secondaryRoles.slice(0,3).map(role=>_jsx(RoleFormat,{role:role},role.id)),row.secondaryRoles.length>3&&_jsxs("span",{children:["+",row.secondaryRoles.length-3]})]})]})},{accessorKey:"createdAt",header:t("createdAt"),cell:({row})=>_jsx(DateFormat,{date:row.createdAt})},{id:"actions",header:"",align:"right",className:"w-10",cell:({row})=>_jsx(UsersAdminActions,{...row})}],customNoResults:{title:t("noResults.title"),description:t("noResults.description"),icon:_jsx(UserSearchIcon,{})},edges:data.edges,filters:[{id:"roleId",label:t("roles"),onSearch:searchRolesAdmin}],id:"users-table",order:{columns:["createdAt","name"],defaultOrder:{column:"createdAt",order:"desc"}},pageInfo:data.pageInfo,search:true,searchPlaceholder:t("searchPlaceholder")})};
@@ -3,4 +3,4 @@ import type { zodChangePasswordSchema } from "../../../../api/modules/users/rout
3
3
  export declare const mutationApi: ({ password, token, userId, }: z.infer<typeof zodChangePasswordSchema>) => Promise<{
4
4
  error: string;
5
5
  } | undefined>;
6
- //# sourceMappingURL=mutation-api.d.ts.map
6
+ //# sourceMappingURL=mutation-api.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation-api.server.d.ts","sourceRoot":"","sources":["../../../../../../src/views/auth/password-reset/change-password-form/mutation-api.server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAKhG,eAAO,MAAM,WAAW,GAAU,8BAI/B,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC;;cAazC,CAAC"}
@@ -1 +1 @@
1
- import{useTranslations}from"next-intl";import{toast}from"sonner";import z from"zod";import{useRouter}from"../../../../lib/navigation.js";import{usePasswordZodSchema}from"../../sign-up/form/use-form.js";import{mutationApi}from"./mutation-api.js";export const useForm=({token,userId})=>{const t=useTranslations("core.auth.change_password");const tError=useTranslations("core.global.errors");const passwordSchema=usePasswordZodSchema();const{replace}=useRouter();const formSchema=z.object({password:passwordSchema});const onSubmit=async data=>{const mutation=await mutationApi({password:data.password,token,userId:+userId});if(mutation?.error){toast.error(tError("title"),{description:tError("internal_server_error")});return}toast.success(t("success.title"),{description:t("success.desc")});replace("/login")};return{formSchema,onSubmit}};
1
+ import{useTranslations}from"next-intl";import{toast}from"sonner";import z from"zod";import{useRouter}from"../../../../lib/navigation.js";import{usePasswordZodSchema}from"../../sign-up/form/use-form.js";import{mutationApi}from"./mutation-api.server.js";export const useForm=({token,userId})=>{const t=useTranslations("core.auth.change_password");const tError=useTranslations("core.global.errors");const passwordSchema=usePasswordZodSchema();const{replace}=useRouter();const formSchema=z.object({password:passwordSchema});const onSubmit=async data=>{const mutation=await mutationApi({password:data.password,token,userId:+userId});if(mutation?.error){toast.error(tError("title"),{description:tError("internal_server_error")});return}toast.success(t("success.title"),{description:t("success.desc")});replace("/login")};return{formSchema,onSubmit}};
@@ -4,4 +4,4 @@ export declare const mutationApi: ({ email, captchaToken, }: {
4
4
  }) => Promise<{
5
5
  error: string;
6
6
  } | undefined>;
7
- //# sourceMappingURL=mutation-api.d.ts.map
7
+ //# sourceMappingURL=mutation-api.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation-api.server.d.ts","sourceRoot":"","sources":["../../../../../../src/views/auth/password-reset/form/mutation-api.server.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,GAAU,0BAG/B;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;;cAcA,CAAC"}
@@ -1 +1 @@
1
- import{useTranslations}from"next-intl";import React from"react";import{toast}from"sonner";import z from"zod";import{mutationApi}from"./mutation-api.js";export const useForm=()=>{const t=useTranslations("core.auth.sign_up");const tError=useTranslations("core.global.errors");const[sentEmail,setSentEmail]=React.useState("");const formSchema=z.object({email:z.email({message:t("email.invalid")}).default("")});const onSubmit=async(data,_form,{captchaToken})=>{const mutation=await mutationApi({email:data.email,captchaToken});if(mutation?.error){toast.error(tError("title"),{description:tError("internal_server_error")});return}setSentEmail(data.email)};return{formSchema,onSubmit,sentEmail}};
1
+ import{useTranslations}from"next-intl";import React from"react";import{toast}from"sonner";import z from"zod";import{mutationApi}from"./mutation-api.server.js";export const useForm=()=>{const t=useTranslations("core.auth.sign_up");const tError=useTranslations("core.global.errors");const[sentEmail,setSentEmail]=React.useState("");const formSchema=z.object({email:z.email({message:t("email.invalid")}).default("")});const onSubmit=async(data,_form,{captchaToken})=>{const mutation=await mutationApi({email:data.email,captchaToken});if(mutation?.error){toast.error(tError("title"),{description:tError("internal_server_error")});return}setSentEmail(data.email)};return{formSchema,onSubmit,sentEmail}};
@@ -0,0 +1,5 @@
1
+ import type { DevicesApi } from "../../../../lib/api/get-devices-api";
2
+ type Device = DevicesApi["devices"][number];
3
+ export declare const DeviceItem: ({ browser, deviceType, expiresAt, ipAddress, isCurrent, lastSeen, os, publicId, }: Device) => Promise<import("react").JSX.Element>;
4
+ export {};
5
+ //# sourceMappingURL=device-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-item.d.ts","sourceRoot":"","sources":["../../../../../../src/views/auth/settings/devices/device-item.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAQ5D,KAAK,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAQ5C,eAAO,MAAM,UAAU,GAAU,mFAS9B,MAAM,yCA6CR,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{MonitorIcon,SmartphoneIcon,TabletIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{DateFormat}from"../../../../components/date-format.js";import{Badge}from"../../../../components/ui/badge.js";import{Separator}from"../../../../components/ui/separator.js";import{RevokeDeviceButton}from"./revoke-device-button.js";const icons={desktop:MonitorIcon,mobile:SmartphoneIcon,tablet:TabletIcon};export const DeviceItem=async({browser,deviceType,expiresAt,ipAddress,isCurrent,lastSeen,os,publicId})=>{const t=await getTranslations("core.auth.settings.devices");const Icon=icons[deviceType];const details=[{label:t("browser"),value:browser},{label:t("ip_address"),value:ipAddress},{label:t("session_expires"),value:_jsx(DateFormat,{date:expiresAt,showFullDate:true})}];return _jsxs("div",{className:"rounded-lg border p-4 sm:p-6",children:[_jsxs("div",{className:"flex items-start gap-4",children:[_jsx("div",{className:"bg-primary text-primary-foreground flex size-10 shrink-0 items-center justify-center rounded-md",children:_jsx(Icon,{className:"size-5"})}),_jsxs("div",{className:"min-w-0 flex-1 space-y-1",children:[_jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[_jsx("span",{className:"font-semibold",children:os}),isCurrent&&_jsx(Badge,{children:t("current_device")})]}),_jsxs("p",{className:"text-muted-foreground text-sm",children:[t("last_active"),": ",_jsx(DateFormat,{date:lastSeen})]})]}),!isCurrent&&_jsx(RevokeDeviceButton,{os:os,publicId:publicId})]}),_jsx(Separator,{className:"my-4"}),_jsx("dl",{className:"grid gap-2 text-sm",children:details.map(({label,value})=>_jsxs("div",{className:"grid gap-1 sm:grid-cols-[10rem_1fr]",children:[_jsx("dt",{className:"text-muted-foreground",children:label}),_jsx("dd",{className:"min-w-0 wrap-break-word",children:value})]},label))})]})};
@@ -0,0 +1,2 @@
1
+ export declare const DevicesSettings: () => Promise<import("react").JSX.Element>;
2
+ //# sourceMappingURL=devices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../../../../../src/views/auth/settings/devices/devices.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,eAAe,4CAmB3B,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{getTranslations}from"next-intl/server";import{HeaderContent}from"../../../../components/ui/header-content.js";import{getDevicesApi}from"../../../../lib/api/get-devices-api.js";import{DeviceItem}from"./device-item.js";export const DevicesSettings=async()=>{const t=await getTranslations("core.auth.settings.devices");const{devices}=await getDevicesApi();return _jsxs(_Fragment,{children:[_jsx(HeaderContent,{desc:t("desc"),h2:t("title")}),devices.length===0?_jsx("p",{className:"text-muted-foreground text-sm",children:t("empty")}):_jsx("div",{className:"space-y-4",children:devices.map(device=>_jsx(DeviceItem,{...device},device.publicId))})]})};
@@ -0,0 +1,9 @@
1
+ export declare const revokeDeviceAction: ({ publicId, }: {
2
+ publicId: string;
3
+ }) => Promise<{
4
+ data?: true;
5
+ error?: {
6
+ status: number;
7
+ };
8
+ }>;
9
+ //# sourceMappingURL=revoke-action.server.d.ts.map