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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (716) hide show
  1. package/cli.mjs +2 -0
  2. package/dist/scripts/build.d.ts +2 -0
  3. package/dist/scripts/build.d.ts.map +1 -0
  4. package/dist/scripts/dev.d.ts +4 -0
  5. package/dist/scripts/dev.d.ts.map +1 -0
  6. package/dist/scripts/get-config.d.ts +7 -2
  7. package/dist/scripts/get-config.d.ts.map +1 -1
  8. package/dist/scripts/i18n-check.d.ts +2 -0
  9. package/dist/scripts/i18n-check.d.ts.map +1 -0
  10. package/dist/scripts/plugin.d.ts.map +1 -1
  11. package/dist/scripts/prepare-database.d.ts.map +1 -1
  12. package/dist/scripts/prepare-plugins-files.d.ts.map +1 -1
  13. package/dist/scripts/scripts.js +4 -2
  14. package/dist/scripts/shared/file-utils.d.ts +1 -0
  15. package/dist/scripts/shared/file-utils.d.ts.map +1 -1
  16. package/dist/src/api/adapters/events/local.d.ts +3 -0
  17. package/dist/src/api/adapters/events/local.d.ts.map +1 -0
  18. package/dist/src/api/adapters/events/local.js +1 -0
  19. package/dist/src/api/adapters/search/postgres.d.ts +3 -0
  20. package/dist/src/api/adapters/search/postgres.d.ts.map +1 -0
  21. package/dist/src/api/adapters/search/postgres.js +1 -0
  22. package/dist/src/api/adapters/storage/local.d.ts +6 -0
  23. package/dist/src/api/adapters/storage/local.d.ts.map +1 -0
  24. package/dist/src/api/adapters/storage/local.js +1 -0
  25. package/dist/src/api/config.d.ts.map +1 -1
  26. package/dist/src/api/config.js +1 -1
  27. package/dist/src/api/lib/check-staff-permission.d.ts.map +1 -1
  28. package/dist/src/api/lib/check-staff-permission.js +1 -1
  29. package/dist/src/api/lib/cron.d.ts +2 -0
  30. package/dist/src/api/lib/cron.d.ts.map +1 -1
  31. package/dist/src/api/lib/cron.js +1 -1
  32. package/dist/src/api/lib/events.d.ts +15 -0
  33. package/dist/src/api/lib/events.d.ts.map +1 -0
  34. package/dist/src/api/lib/events.js +1 -0
  35. package/dist/src/api/lib/module.d.ts +4 -1
  36. package/dist/src/api/lib/module.d.ts.map +1 -1
  37. package/dist/src/api/lib/module.js +1 -1
  38. package/dist/src/api/lib/permission-staff.d.ts +0 -4
  39. package/dist/src/api/lib/permission-staff.d.ts.map +1 -1
  40. package/dist/src/api/lib/plugin.d.ts +9 -1
  41. package/dist/src/api/lib/plugin.d.ts.map +1 -1
  42. package/dist/src/api/lib/plugin.js +1 -1
  43. package/dist/src/api/lib/route.d.ts +1 -1
  44. package/dist/src/api/lib/route.d.ts.map +1 -1
  45. package/dist/src/api/lib/route.js +1 -1
  46. package/dist/src/api/lib/save-language-words.d.ts +11 -0
  47. package/dist/src/api/lib/save-language-words.d.ts.map +1 -0
  48. package/dist/src/api/lib/save-language-words.js +1 -0
  49. package/dist/src/api/middlewares/global.middleware.d.ts +29 -5
  50. package/dist/src/api/middlewares/global.middleware.d.ts.map +1 -1
  51. package/dist/src/api/middlewares/global.middleware.js +1 -1
  52. package/dist/src/api/middlewares/plugin.middleware.d.ts +3 -0
  53. package/dist/src/api/middlewares/plugin.middleware.d.ts.map +1 -0
  54. package/dist/src/api/middlewares/plugin.middleware.js +1 -0
  55. package/dist/src/api/middlewares/rate-limiter.middleware.d.ts +4 -1
  56. package/dist/src/api/middlewares/rate-limiter.middleware.d.ts.map +1 -1
  57. package/dist/src/api/middlewares/rate-limiter.middleware.js +1 -1
  58. package/dist/src/api/models/device.d.ts.map +1 -1
  59. package/dist/src/api/models/device.js +1 -1
  60. package/dist/src/api/models/email.d.ts.map +1 -1
  61. package/dist/src/api/models/email.js +1 -1
  62. package/dist/src/api/models/events.d.ts +66 -0
  63. package/dist/src/api/models/events.d.ts.map +1 -0
  64. package/dist/src/api/models/events.js +1 -0
  65. package/dist/src/api/models/i18n.d.ts +15 -0
  66. package/dist/src/api/models/i18n.d.ts.map +1 -0
  67. package/dist/src/api/models/i18n.js +1 -0
  68. package/dist/src/api/models/search.d.ts +102 -0
  69. package/dist/src/api/models/search.d.ts.map +1 -0
  70. package/dist/src/api/models/search.js +1 -0
  71. package/dist/src/api/models/storage.d.ts +40 -0
  72. package/dist/src/api/models/storage.d.ts.map +1 -0
  73. package/dist/src/api/models/storage.js +1 -0
  74. package/dist/src/api/models/user/sign-up.d.ts +1 -1
  75. package/dist/src/api/models/user/sign-up.d.ts.map +1 -1
  76. package/dist/src/api/models/user/sign-up.js +1 -1
  77. package/dist/src/api/models/user.d.ts +1 -1
  78. package/dist/src/api/modules/admin/admin.module.d.ts +376 -2
  79. package/dist/src/api/modules/admin/admin.module.d.ts.map +1 -1
  80. package/dist/src/api/modules/admin/admin.module.js +1 -1
  81. package/dist/src/api/modules/admin/advanced/advanced.admin.module.d.ts +1 -1
  82. package/dist/src/api/modules/admin/advanced/cron/routes/get.route.d.ts.map +1 -1
  83. package/dist/src/api/modules/admin/advanced/cron/routes/get.route.js +1 -1
  84. package/dist/src/api/modules/admin/advanced/cron/routes/run.route.d.ts.map +1 -1
  85. package/dist/src/api/modules/admin/advanced/cron/routes/run.route.js +1 -1
  86. package/dist/src/api/modules/admin/advanced/queue/queue.admin.module.d.ts +1 -1
  87. package/dist/src/api/modules/admin/advanced/queue/routes/get.route.d.ts +1 -1
  88. package/dist/src/api/modules/admin/debug/debug.admin.module.d.ts +100 -1
  89. package/dist/src/api/modules/admin/debug/debug.admin.module.d.ts.map +1 -1
  90. package/dist/src/api/modules/admin/debug/debug.admin.module.js +1 -1
  91. package/dist/src/api/modules/admin/debug/routes/integrations.route.d.ts +6 -0
  92. package/dist/src/api/modules/admin/debug/routes/integrations.route.d.ts.map +1 -1
  93. package/dist/src/api/modules/admin/debug/routes/integrations.route.js +1 -1
  94. package/dist/src/api/modules/admin/debug/routes/logs.route.d.ts +1 -1
  95. package/dist/src/api/modules/admin/debug/routes/rebuild-search.route.d.ts +36 -0
  96. package/dist/src/api/modules/admin/debug/routes/rebuild-search.route.d.ts.map +1 -0
  97. package/dist/src/api/modules/admin/debug/routes/rebuild-search.route.js +1 -0
  98. package/dist/src/api/modules/admin/debug/routes/search-status.route.d.ts +32 -0
  99. package/dist/src/api/modules/admin/debug/routes/search-status.route.d.ts.map +1 -0
  100. package/dist/src/api/modules/admin/debug/routes/search-status.route.js +1 -0
  101. package/dist/src/api/modules/admin/debug/routes/test-storage-upload.route.d.ts +37 -0
  102. package/dist/src/api/modules/admin/debug/routes/test-storage-upload.route.d.ts.map +1 -0
  103. package/dist/src/api/modules/admin/debug/routes/test-storage-upload.route.js +1 -0
  104. package/dist/src/api/modules/admin/files/files.admin.module.d.ts +128 -0
  105. package/dist/src/api/modules/admin/files/files.admin.module.d.ts.map +1 -0
  106. package/dist/src/api/modules/admin/files/files.admin.module.js +1 -0
  107. package/dist/src/api/modules/admin/files/routes/delete.route.d.ts +29 -0
  108. package/dist/src/api/modules/admin/files/routes/delete.route.d.ts.map +1 -0
  109. package/dist/src/api/modules/admin/files/routes/delete.route.js +1 -0
  110. package/dist/src/api/modules/admin/files/routes/download.route.d.ts +34 -0
  111. package/dist/src/api/modules/admin/files/routes/download.route.d.ts.map +1 -0
  112. package/dist/src/api/modules/admin/files/routes/download.route.js +1 -0
  113. package/dist/src/api/modules/admin/files/routes/list.route.d.ts +72 -0
  114. package/dist/src/api/modules/admin/files/routes/list.route.d.ts.map +1 -0
  115. package/dist/src/api/modules/admin/files/routes/list.route.js +1 -0
  116. package/dist/src/api/modules/admin/roles/lib/assert-manage-admin-role.d.ts +6 -0
  117. package/dist/src/api/modules/admin/roles/lib/assert-manage-admin-role.d.ts.map +1 -0
  118. package/dist/src/api/modules/admin/roles/lib/assert-manage-admin-role.js +1 -0
  119. package/dist/src/api/modules/admin/roles/roles.admin.module.d.ts +149 -0
  120. package/dist/src/api/modules/admin/roles/roles.admin.module.d.ts.map +1 -1
  121. package/dist/src/api/modules/admin/roles/roles.admin.module.js +1 -1
  122. package/dist/src/api/modules/admin/roles/routes/create.route.d.ts +58 -0
  123. package/dist/src/api/modules/admin/roles/routes/create.route.d.ts.map +1 -0
  124. package/dist/src/api/modules/admin/roles/routes/create.route.js +1 -0
  125. package/dist/src/api/modules/admin/roles/routes/delete.route.d.ts +52 -0
  126. package/dist/src/api/modules/admin/roles/routes/delete.route.d.ts.map +1 -0
  127. package/dist/src/api/modules/admin/roles/routes/delete.route.js +1 -0
  128. package/dist/src/api/modules/admin/roles/routes/list.route.d.ts +4 -0
  129. package/dist/src/api/modules/admin/roles/routes/list.route.d.ts.map +1 -1
  130. package/dist/src/api/modules/admin/roles/routes/list.route.js +1 -1
  131. package/dist/src/api/modules/admin/roles/routes/show.route.d.ts +3 -0
  132. package/dist/src/api/modules/admin/roles/routes/show.route.d.ts.map +1 -1
  133. package/dist/src/api/modules/admin/roles/routes/show.route.js +1 -1
  134. package/dist/src/api/modules/admin/roles/routes/update.route.d.ts +66 -0
  135. package/dist/src/api/modules/admin/roles/routes/update.route.d.ts.map +1 -0
  136. package/dist/src/api/modules/admin/roles/routes/update.route.js +1 -0
  137. package/dist/src/api/modules/admin/staff/lib/resolve-staff-edges.d.ts +1 -3
  138. package/dist/src/api/modules/admin/staff/lib/resolve-staff-edges.d.ts.map +1 -1
  139. package/dist/src/api/modules/admin/staff/lib/resolve-staff-edges.js +1 -1
  140. package/dist/src/api/modules/admin/staff/routes/admins.route.js +1 -1
  141. package/dist/src/api/modules/admin/staff/routes/create.route.d.ts.map +1 -1
  142. package/dist/src/api/modules/admin/staff/routes/create.route.js +1 -1
  143. package/dist/src/api/modules/admin/staff/routes/moderators.route.js +1 -1
  144. package/dist/src/api/modules/admin/staff/routes/show-permissions.route.d.ts.map +1 -1
  145. package/dist/src/api/modules/admin/staff/routes/show-permissions.route.js +1 -1
  146. package/dist/src/api/modules/admin/staff/routes/update-permissions.route.js +1 -1
  147. package/dist/src/api/modules/admin/users/routes/update.route.d.ts.map +1 -1
  148. package/dist/src/api/modules/admin/users/routes/update.route.js +1 -1
  149. package/dist/src/api/modules/admin/users/routes/users.route.d.ts +1 -1
  150. package/dist/src/api/modules/cron/helpers/register-cron-jobs.d.ts +4 -0
  151. package/dist/src/api/modules/cron/helpers/register-cron-jobs.d.ts.map +1 -0
  152. package/dist/src/api/modules/cron/helpers/register-cron-jobs.js +1 -0
  153. package/dist/src/api/modules/search/routes/search.route.d.ts +91 -0
  154. package/dist/src/api/modules/search/routes/search.route.d.ts.map +1 -0
  155. package/dist/src/api/modules/search/routes/search.route.js +1 -0
  156. package/dist/src/api/modules/search/search.module.d.ts +68 -0
  157. package/dist/src/api/modules/search/search.module.d.ts.map +1 -0
  158. package/dist/src/api/modules/search/search.module.js +1 -0
  159. package/dist/src/api/modules/search/tasks/rebuild-index.task.d.ts +2 -0
  160. package/dist/src/api/modules/search/tasks/rebuild-index.task.d.ts.map +1 -0
  161. package/dist/src/api/modules/search/tasks/rebuild-index.task.js +1 -0
  162. package/dist/src/api/modules/users/files/files.module.d.ts +124 -0
  163. package/dist/src/api/modules/users/files/files.module.d.ts.map +1 -0
  164. package/dist/src/api/modules/users/files/files.module.js +1 -0
  165. package/dist/src/api/modules/users/files/routes/delete.route.d.ts +32 -0
  166. package/dist/src/api/modules/users/files/routes/delete.route.d.ts.map +1 -0
  167. package/dist/src/api/modules/users/files/routes/delete.route.js +1 -0
  168. package/dist/src/api/modules/users/files/routes/download.route.d.ts +37 -0
  169. package/dist/src/api/modules/users/files/routes/download.route.d.ts.map +1 -0
  170. package/dist/src/api/modules/users/files/routes/download.route.js +1 -0
  171. package/dist/src/api/modules/users/files/routes/list.route.d.ts +62 -0
  172. package/dist/src/api/modules/users/files/routes/list.route.d.ts.map +1 -0
  173. package/dist/src/api/modules/users/files/routes/list.route.js +1 -0
  174. package/dist/src/api/modules/users/routes/devices.route.d.ts +34 -0
  175. package/dist/src/api/modules/users/routes/devices.route.d.ts.map +1 -0
  176. package/dist/src/api/modules/users/routes/devices.route.js +1 -0
  177. package/dist/src/api/modules/users/routes/revoke-device.route.d.ts +42 -0
  178. package/dist/src/api/modules/users/routes/revoke-device.route.d.ts.map +1 -0
  179. package/dist/src/api/modules/users/routes/revoke-device.route.js +1 -0
  180. package/dist/src/api/modules/users/users.module.d.ts +194 -2
  181. package/dist/src/api/modules/users/users.module.d.ts.map +1 -1
  182. package/dist/src/api/modules/users/users.module.js +1 -1
  183. package/dist/src/api/plugin.d.ts.map +1 -1
  184. package/dist/src/api/plugin.js +1 -1
  185. package/dist/src/components/files/file-preview.d.ts +7 -0
  186. package/dist/src/components/files/file-preview.d.ts.map +1 -0
  187. package/dist/src/components/files/file-preview.js +1 -0
  188. package/dist/src/components/files/metadata-cell.d.ts +6 -0
  189. package/dist/src/components/files/metadata-cell.d.ts.map +1 -0
  190. package/dist/src/components/files/metadata-cell.js +1 -0
  191. package/dist/src/components/form/auto-form.d.ts +12 -3
  192. package/dist/src/components/form/auto-form.d.ts.map +1 -1
  193. package/dist/src/components/form/auto-form.js +1 -1
  194. package/dist/src/components/form/fields/color.d.ts +5 -0
  195. package/dist/src/components/form/fields/color.d.ts.map +1 -0
  196. package/dist/src/components/form/fields/color.js +1 -0
  197. package/dist/src/components/form/fields/editor.d.ts +9 -0
  198. package/dist/src/components/form/fields/editor.d.ts.map +1 -0
  199. package/dist/src/components/form/fields/editor.js +1 -0
  200. package/dist/src/components/form/fields/input.d.ts +5 -1
  201. package/dist/src/components/form/fields/input.d.ts.map +1 -1
  202. package/dist/src/components/form/fields/input.js +1 -1
  203. package/dist/src/components/form/fields/multi-lang.d.ts +18 -0
  204. package/dist/src/components/form/fields/multi-lang.d.ts.map +1 -0
  205. package/dist/src/components/form/fields/multi-lang.js +1 -0
  206. package/dist/src/components/form/fields/nullable-number.d.ts +11 -0
  207. package/dist/src/components/form/fields/nullable-number.d.ts.map +1 -0
  208. package/dist/src/components/form/fields/nullable-number.js +1 -0
  209. package/dist/src/components/form/fields/radio-group.js +1 -1
  210. package/dist/src/components/form/fields/select.js +1 -1
  211. package/dist/src/components/languages-provider.d.ts +8 -0
  212. package/dist/src/components/languages-provider.d.ts.map +1 -0
  213. package/dist/src/components/languages-provider.js +1 -0
  214. package/dist/src/components/table/content.d.ts.map +1 -1
  215. package/dist/src/components/table/content.js +1 -1
  216. package/dist/src/components/table/data-table.d.ts +21 -9
  217. package/dist/src/components/table/data-table.d.ts.map +1 -1
  218. package/dist/src/components/table/filters.d.ts.map +1 -1
  219. package/dist/src/components/table/filters.js +1 -1
  220. package/dist/src/components/table/order-table-head.d.ts +1 -1
  221. package/dist/src/components/table/order-table-head.d.ts.map +1 -1
  222. package/dist/src/components/ui/alert.d.ts +1 -1
  223. package/dist/src/components/ui/alert.d.ts.map +1 -1
  224. package/dist/src/components/ui/alert.js +1 -1
  225. package/dist/src/components/ui/attachment.d.ts +24 -0
  226. package/dist/src/components/ui/attachment.d.ts.map +1 -0
  227. package/dist/src/components/ui/attachment.js +1 -0
  228. package/dist/src/components/ui/carousel.d.ts.map +1 -1
  229. package/dist/src/components/ui/carousel.js +1 -1
  230. package/dist/src/components/ui/chart.d.ts +2 -1
  231. package/dist/src/components/ui/chart.d.ts.map +1 -1
  232. package/dist/src/components/ui/color-picker.d.ts +8 -0
  233. package/dist/src/components/ui/color-picker.d.ts.map +1 -0
  234. package/dist/src/components/ui/color-picker.js +1 -0
  235. package/dist/src/components/ui/dialog.js +1 -1
  236. package/dist/src/components/ui/editor.d.ts +4 -3
  237. package/dist/src/components/ui/editor.d.ts.map +1 -1
  238. package/dist/src/components/ui/editor.js +1 -1
  239. package/dist/src/components/user-format.d.ts +0 -1
  240. package/dist/src/components/user-format.d.ts.map +1 -1
  241. package/dist/src/config.js +1 -1
  242. package/dist/src/database/admins.d.ts +22 -5
  243. package/dist/src/database/admins.d.ts.map +1 -1
  244. package/dist/src/database/admins.js +1 -1
  245. package/dist/src/database/files.d.ts +193 -0
  246. package/dist/src/database/files.d.ts.map +1 -0
  247. package/dist/src/database/files.js +1 -0
  248. package/dist/src/database/moderators.d.ts +22 -5
  249. package/dist/src/database/moderators.d.ts.map +1 -1
  250. package/dist/src/database/moderators.js +1 -1
  251. package/dist/src/database/roles.d.ts +52 -1
  252. package/dist/src/database/roles.d.ts.map +1 -1
  253. package/dist/src/database/roles.js +1 -1
  254. package/dist/src/database/search.d.ts +314 -0
  255. package/dist/src/database/search.d.ts.map +1 -0
  256. package/dist/src/database/search.js +1 -0
  257. package/dist/src/globals.css +45 -0
  258. package/dist/src/lib/api/get-devices-api.d.ts +14 -0
  259. package/dist/src/lib/api/get-devices-api.d.ts.map +1 -0
  260. package/dist/src/lib/api/get-devices-api.js +1 -0
  261. package/dist/src/lib/api/get-queue-status.d.ts +11 -0
  262. package/dist/src/lib/api/get-queue-status.d.ts.map +1 -0
  263. package/dist/src/lib/api/get-queue-status.js +1 -0
  264. package/dist/src/lib/api/get-session-api.d.ts.map +1 -1
  265. package/dist/src/lib/api/get-session-api.js +1 -1
  266. package/dist/src/lib/api/is-cron-stale.d.ts +3 -0
  267. package/dist/src/lib/api/is-cron-stale.d.ts.map +1 -0
  268. package/dist/src/lib/api/is-cron-stale.js +1 -0
  269. package/dist/src/lib/api/parse-user-agent.d.ts +8 -0
  270. package/dist/src/lib/api/parse-user-agent.d.ts.map +1 -0
  271. package/dist/src/lib/api/parse-user-agent.js +1 -0
  272. package/dist/src/lib/api/upload.d.ts +15 -0
  273. package/dist/src/lib/api/upload.d.ts.map +1 -0
  274. package/dist/src/lib/api/upload.js +1 -0
  275. package/dist/src/lib/config.d.ts +4 -4
  276. package/dist/src/lib/config.d.ts.map +1 -1
  277. package/dist/src/lib/config.js +1 -1
  278. package/dist/src/lib/fetcher/core.d.ts +2 -1
  279. package/dist/src/lib/fetcher/core.d.ts.map +1 -1
  280. package/dist/src/lib/fetcher/core.js +1 -1
  281. package/dist/src/lib/fetcher/rate-limit.d.ts +10 -0
  282. package/dist/src/lib/fetcher/rate-limit.d.ts.map +1 -0
  283. package/dist/src/lib/fetcher/rate-limit.js +1 -0
  284. package/dist/src/lib/fetcher-client.d.ts +3 -1
  285. package/dist/src/lib/fetcher-client.d.ts.map +1 -1
  286. package/dist/src/lib/fetcher-client.js +1 -1
  287. package/dist/src/lib/format-bytes.d.ts +2 -0
  288. package/dist/src/lib/format-bytes.d.ts.map +1 -0
  289. package/dist/src/lib/format-bytes.js +1 -0
  290. package/dist/src/lib/helpers/multi-lang.d.ts +21 -0
  291. package/dist/src/lib/helpers/multi-lang.d.ts.map +1 -0
  292. package/dist/src/lib/helpers/multi-lang.js +1 -0
  293. package/dist/src/lib/i18n/deep-merge.d.ts +4 -0
  294. package/dist/src/lib/i18n/deep-merge.d.ts.map +1 -0
  295. package/dist/src/lib/i18n/deep-merge.js +1 -0
  296. package/dist/src/lib/i18n/load-messages.d.ts +9 -0
  297. package/dist/src/lib/i18n/load-messages.d.ts.map +1 -0
  298. package/dist/src/lib/i18n/load-messages.js +1 -0
  299. package/dist/src/lib/i18n/negotiate-locale.d.ts +2 -0
  300. package/dist/src/lib/i18n/negotiate-locale.d.ts.map +1 -0
  301. package/dist/src/lib/i18n/negotiate-locale.js +1 -0
  302. package/dist/src/lib/i18n/sources.d.ts +9 -0
  303. package/dist/src/lib/i18n/sources.d.ts.map +1 -0
  304. package/dist/src/lib/i18n/sources.js +1 -0
  305. package/dist/src/lib/i18n/types.d.ts +24 -0
  306. package/dist/src/lib/i18n/types.d.ts.map +1 -0
  307. package/dist/src/lib/i18n/types.js +1 -0
  308. package/dist/src/lib/motion.d.ts +8 -0
  309. package/dist/src/lib/motion.d.ts.map +1 -0
  310. package/dist/src/lib/motion.js +1 -0
  311. package/dist/src/lib/plugin.d.ts +2 -0
  312. package/dist/src/lib/plugin.d.ts.map +1 -1
  313. package/dist/src/lib/strip-html.d.ts +2 -0
  314. package/dist/src/lib/strip-html.d.ts.map +1 -0
  315. package/dist/src/lib/strip-html.js +1 -0
  316. package/dist/src/locales/en.json +897 -0
  317. package/dist/src/locales/index.d.ts +4 -0
  318. package/dist/src/locales/index.d.ts.map +1 -0
  319. package/dist/src/locales/index.js +1 -0
  320. package/dist/src/routes/admin/core/advanced/cron/page.d.ts.map +1 -1
  321. package/dist/src/routes/admin/core/advanced/cron/page.js +1 -1
  322. package/dist/src/routes/admin/core/advanced/search/page.d.ts +11 -0
  323. package/dist/src/routes/admin/core/advanced/search/page.d.ts.map +1 -0
  324. package/dist/src/routes/admin/core/advanced/search/page.js +1 -0
  325. package/dist/src/routes/admin/core/system/files/page.d.ts +11 -0
  326. package/dist/src/routes/admin/core/system/files/page.d.ts.map +1 -0
  327. package/dist/src/routes/admin/core/system/files/page.js +1 -0
  328. package/dist/src/routes/admin/core/users/[id]/page.js +1 -1
  329. package/dist/src/routes/admin/core/users/roles/page.d.ts.map +1 -1
  330. package/dist/src/routes/admin/core/users/roles/page.js +1 -1
  331. package/dist/src/routes/blank/test/page.js +1 -1
  332. package/dist/src/routes/breadcrumb/admin/core/advanced/cron/page.d.ts +2 -0
  333. package/dist/src/routes/breadcrumb/admin/core/advanced/cron/page.d.ts.map +1 -0
  334. package/dist/src/routes/breadcrumb/admin/core/advanced/cron/page.js +1 -0
  335. package/dist/src/routes/breadcrumb/admin/core/advanced/queue/page.d.ts +2 -0
  336. package/dist/src/routes/breadcrumb/admin/core/advanced/queue/page.d.ts.map +1 -0
  337. package/dist/src/routes/breadcrumb/admin/core/advanced/queue/page.js +1 -0
  338. package/dist/src/routes/breadcrumb/admin/core/advanced/search/page.d.ts +2 -0
  339. package/dist/src/routes/breadcrumb/admin/core/advanced/search/page.d.ts.map +1 -0
  340. package/dist/src/routes/breadcrumb/admin/core/advanced/search/page.js +1 -0
  341. package/dist/src/routes/breadcrumb/admin/core/page.d.ts +2 -0
  342. package/dist/src/routes/breadcrumb/admin/core/page.d.ts.map +1 -0
  343. package/dist/src/routes/breadcrumb/admin/core/page.js +1 -0
  344. package/dist/src/routes/breadcrumb/admin/core/system/files/page.d.ts +2 -0
  345. package/dist/src/routes/breadcrumb/admin/core/system/files/page.d.ts.map +1 -0
  346. package/dist/src/routes/breadcrumb/admin/core/system/files/page.js +1 -0
  347. package/dist/src/routes/breadcrumb/admin/core/system/integrations/page.d.ts +2 -0
  348. package/dist/src/routes/breadcrumb/admin/core/system/integrations/page.d.ts.map +1 -0
  349. package/dist/src/routes/breadcrumb/admin/core/system/integrations/page.js +1 -0
  350. package/dist/src/routes/breadcrumb/admin/core/users/page.d.ts +2 -0
  351. package/dist/src/routes/breadcrumb/admin/core/users/page.d.ts.map +1 -0
  352. package/dist/src/routes/breadcrumb/admin/core/users/page.js +1 -0
  353. package/dist/src/routes/breadcrumb/admin/core/users/roles/page.d.ts +2 -0
  354. package/dist/src/routes/breadcrumb/admin/core/users/roles/page.d.ts.map +1 -0
  355. package/dist/src/routes/breadcrumb/admin/core/users/roles/page.js +1 -0
  356. package/dist/src/routes/breadcrumb/main/discover/page.d.ts +2 -0
  357. package/dist/src/routes/breadcrumb/main/discover/page.d.ts.map +1 -0
  358. package/dist/src/routes/breadcrumb/main/discover/page.js +1 -0
  359. package/dist/src/routes/breadcrumb/main/search/page.d.ts +2 -0
  360. package/dist/src/routes/breadcrumb/main/search/page.d.ts.map +1 -0
  361. package/dist/src/routes/breadcrumb/main/search/page.js +1 -0
  362. package/dist/src/routes/breadcrumb/main/settings/devices/page.d.ts +2 -0
  363. package/dist/src/routes/breadcrumb/main/settings/devices/page.d.ts.map +1 -0
  364. package/dist/src/routes/breadcrumb/main/settings/devices/page.js +1 -0
  365. package/dist/src/routes/main/discover/page.d.ts +11 -0
  366. package/dist/src/routes/main/discover/page.d.ts.map +1 -0
  367. package/dist/src/routes/main/discover/page.js +1 -0
  368. package/dist/src/routes/main/files/page.d.ts +15 -0
  369. package/dist/src/routes/main/files/page.d.ts.map +1 -0
  370. package/dist/src/routes/main/files/page.js +1 -0
  371. package/dist/src/routes/main/search/page.d.ts +15 -0
  372. package/dist/src/routes/main/search/page.d.ts.map +1 -0
  373. package/dist/src/routes/main/search/page.js +1 -0
  374. package/dist/src/routes/main/settings/devices/page.d.ts +5 -0
  375. package/dist/src/routes/main/settings/devices/page.d.ts.map +1 -0
  376. package/dist/src/routes/main/settings/devices/page.js +1 -0
  377. package/dist/src/tiptap.css +28 -0
  378. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-advanced-search.d.ts +5 -0
  379. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-advanced-search.d.ts.map +1 -0
  380. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-advanced-search.js +1 -0
  381. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-roles-admin.d.ts +5 -0
  382. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-roles-admin.d.ts.map +1 -0
  383. package/dist/src/views/admin/layouts/breadcrumb/breadcrumb-roles-admin.js +1 -0
  384. package/dist/src/views/admin/layouts/sidebar/nav/get-admin-nav.d.ts.map +1 -1
  385. package/dist/src/views/admin/layouts/sidebar/nav/get-admin-nav.js +1 -1
  386. package/dist/src/views/admin/layouts/sidebar/sign-out.js +1 -1
  387. package/dist/src/views/admin/layouts/user-bar/client.js +1 -1
  388. package/dist/src/views/admin/views/core/advanced/cron/cron-table-view.d.ts.map +1 -1
  389. package/dist/src/views/admin/views/core/advanced/cron/cron-table-view.js +1 -1
  390. package/dist/src/views/admin/views/core/advanced/cron/run-action/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  391. package/dist/src/views/admin/views/core/advanced/cron/run-action/mutation-api.server.d.ts.map +1 -0
  392. package/dist/src/views/admin/views/core/advanced/cron/run-action/run-action.d.ts +1 -1
  393. package/dist/src/views/admin/views/core/advanced/cron/run-action/run-action.d.ts.map +1 -1
  394. package/dist/src/views/admin/views/core/advanced/cron/run-action/run-action.js +1 -1
  395. package/dist/src/views/admin/views/core/advanced/queue/queue-table-view.js +1 -1
  396. package/dist/src/views/admin/views/core/advanced/search/collection-status.d.ts +11 -0
  397. package/dist/src/views/admin/views/core/advanced/search/collection-status.d.ts.map +1 -0
  398. package/dist/src/views/admin/views/core/advanced/search/collection-status.js +1 -0
  399. package/dist/src/views/admin/views/core/advanced/search/collections-table.d.ts +6 -0
  400. package/dist/src/views/admin/views/core/advanced/search/collections-table.d.ts.map +1 -0
  401. package/dist/src/views/admin/views/core/advanced/search/collections-table.js +1 -0
  402. package/dist/src/views/admin/views/core/advanced/search/cron-warning.d.ts +3 -0
  403. package/dist/src/views/admin/views/core/advanced/search/cron-warning.d.ts.map +1 -0
  404. package/dist/src/views/admin/views/core/advanced/search/cron-warning.js +1 -0
  405. package/dist/src/views/admin/views/core/advanced/search/mutation-api.server.d.ts +10 -0
  406. package/dist/src/views/admin/views/core/advanced/search/mutation-api.server.d.ts.map +1 -0
  407. package/dist/src/views/admin/views/core/advanced/search/mutation-api.server.js +1 -0
  408. package/dist/src/views/admin/views/core/advanced/search/reindex-action.d.ts +6 -0
  409. package/dist/src/views/admin/views/core/advanced/search/reindex-action.d.ts.map +1 -0
  410. package/dist/src/views/admin/views/core/advanced/search/reindex-action.js +1 -0
  411. package/dist/src/views/admin/views/core/advanced/search/search-header-actions.d.ts +3 -0
  412. package/dist/src/views/admin/views/core/advanced/search/search-header-actions.d.ts.map +1 -0
  413. package/dist/src/views/admin/views/core/advanced/search/search-header-actions.js +1 -0
  414. package/dist/src/views/admin/views/core/advanced/search/search-view.d.ts +7 -0
  415. package/dist/src/views/admin/views/core/advanced/search/search-view.d.ts.map +1 -0
  416. package/dist/src/views/admin/views/core/advanced/search/search-view.js +1 -0
  417. package/dist/src/views/admin/views/core/dashboard/send-notification/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  418. package/dist/src/views/admin/views/core/dashboard/send-notification/mutation-api.server.d.ts.map +1 -0
  419. package/dist/src/views/admin/views/core/dashboard/send-notification/send-notification.js +1 -1
  420. package/dist/src/views/admin/views/core/debug/actions/clear-cache/clear-cache.js +1 -1
  421. package/dist/src/views/admin/views/core/debug/actions/clear-cache/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  422. package/dist/src/views/admin/views/core/debug/actions/clear-cache/mutation-api.server.d.ts.map +1 -0
  423. package/dist/src/views/admin/views/core/debug/system-logs/system-logs-view.d.ts.map +1 -1
  424. package/dist/src/views/admin/views/core/debug/system-logs/system-logs-view.js +1 -1
  425. package/dist/src/views/admin/views/core/staff/create/form.js +1 -1
  426. package/dist/src/views/admin/views/core/staff/create/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  427. package/dist/src/views/admin/views/core/staff/create/mutation-api.server.d.ts.map +1 -0
  428. package/dist/src/views/admin/views/core/staff/create/{search.action.d.ts → search.action.server.d.ts} +1 -1
  429. package/dist/src/views/admin/views/core/staff/create/search.action.server.d.ts.map +1 -0
  430. package/dist/src/views/admin/views/core/staff/edit/form.js +1 -1
  431. package/dist/src/views/admin/views/core/staff/edit/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  432. package/dist/src/views/admin/views/core/staff/edit/mutation-api.server.d.ts.map +1 -0
  433. package/dist/src/views/admin/views/core/staff/table/actions/{delete-action.d.ts → delete-action.server.d.ts} +1 -1
  434. package/dist/src/views/admin/views/core/staff/table/actions/delete-action.server.d.ts.map +1 -0
  435. package/dist/src/views/admin/views/core/staff/table/actions/staff-row-actions.js +1 -1
  436. package/dist/src/views/admin/views/core/staff/table/staff-table.d.ts.map +1 -1
  437. package/dist/src/views/admin/views/core/staff/table/staff-table.js +1 -1
  438. package/dist/src/views/admin/views/core/system/files/actions/delete-action.server.d.ts +9 -0
  439. package/dist/src/views/admin/views/core/system/files/actions/delete-action.server.d.ts.map +1 -0
  440. package/dist/src/views/admin/views/core/system/files/actions/delete-action.server.js +1 -0
  441. package/dist/src/views/admin/views/core/system/files/actions/file-row-actions.d.ts +8 -0
  442. package/dist/src/views/admin/views/core/system/files/actions/file-row-actions.d.ts.map +1 -0
  443. package/dist/src/views/admin/views/core/system/files/actions/file-row-actions.js +1 -0
  444. package/dist/src/views/admin/views/core/system/files/files-table-view.d.ts +5 -0
  445. package/dist/src/views/admin/views/core/system/files/files-table-view.d.ts.map +1 -0
  446. package/dist/src/views/admin/views/core/system/files/files-table-view.js +1 -0
  447. package/dist/src/views/admin/views/core/system/integrations/integration-card.d.ts.map +1 -1
  448. package/dist/src/views/admin/views/core/system/integrations/integration-card.js +1 -1
  449. package/dist/src/views/admin/views/core/system/integrations/integrations-view.d.ts.map +1 -1
  450. package/dist/src/views/admin/views/core/system/integrations/integrations-view.js +1 -1
  451. package/dist/src/views/admin/views/core/system/integrations/send-test-email/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  452. package/dist/src/views/admin/views/core/system/integrations/send-test-email/mutation-api.server.d.ts.map +1 -0
  453. package/dist/src/views/admin/views/core/system/integrations/send-test-email/use-form.js +1 -1
  454. package/dist/src/views/admin/views/core/system/integrations/test-storage/content.d.ts +3 -0
  455. package/dist/src/views/admin/views/core/system/integrations/test-storage/content.d.ts.map +1 -0
  456. package/dist/src/views/admin/views/core/system/integrations/test-storage/content.js +1 -0
  457. package/dist/src/views/admin/views/core/system/integrations/test-storage/test-storage.d.ts +3 -0
  458. package/dist/src/views/admin/views/core/system/integrations/test-storage/test-storage.d.ts.map +1 -0
  459. package/dist/src/views/admin/views/core/system/integrations/test-storage/test-storage.js +1 -0
  460. package/dist/src/views/admin/views/core/test.d.ts.map +1 -1
  461. package/dist/src/views/admin/views/core/test.js +1 -1
  462. package/dist/src/views/admin/views/core/users/actions/create/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  463. package/dist/src/views/admin/views/core/users/actions/create/mutation-api.server.d.ts.map +1 -0
  464. package/dist/src/views/admin/views/core/users/actions/create/use-form.js +1 -1
  465. package/dist/src/views/admin/views/core/users/actions/verify-email/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  466. package/dist/src/views/admin/views/core/users/actions/verify-email/mutation-api.server.d.ts.map +1 -0
  467. package/dist/src/views/admin/views/core/users/actions/verify-email/verify-email.js +1 -1
  468. package/dist/src/views/admin/views/core/users/roles/actions/actions.d.ts +3 -0
  469. package/dist/src/views/admin/views/core/users/roles/actions/actions.d.ts.map +1 -0
  470. package/dist/src/views/admin/views/core/users/roles/actions/actions.js +1 -0
  471. package/dist/src/views/admin/views/core/users/roles/actions/create-edit/create-edit.d.ts +15 -0
  472. package/dist/src/views/admin/views/core/users/roles/actions/create-edit/create-edit.d.ts.map +1 -0
  473. package/dist/src/views/admin/views/core/users/roles/actions/create-edit/create-edit.js +1 -0
  474. package/dist/src/views/admin/views/core/users/roles/actions/create-edit/mutation-api.server.d.ts +11 -0
  475. package/dist/src/views/admin/views/core/users/roles/actions/create-edit/mutation-api.server.d.ts.map +1 -0
  476. package/dist/src/views/admin/views/core/users/roles/actions/create-edit/mutation-api.server.js +1 -0
  477. package/dist/src/views/admin/views/core/users/roles/roles-admin-view.d.ts.map +1 -1
  478. package/dist/src/views/admin/views/core/users/roles/roles-admin-view.js +1 -1
  479. package/dist/src/views/admin/views/core/users/roles/table/actions/delete-action.d.ts +13 -0
  480. package/dist/src/views/admin/views/core/users/roles/table/actions/delete-action.d.ts.map +1 -0
  481. package/dist/src/views/admin/views/core/users/roles/table/actions/delete-action.js +1 -0
  482. package/dist/src/views/admin/views/core/users/roles/table/actions/delete-role.action.server.d.ts +9 -0
  483. package/dist/src/views/admin/views/core/users/roles/table/actions/delete-role.action.server.d.ts.map +1 -0
  484. package/dist/src/views/admin/views/core/users/roles/table/actions/delete-role.action.server.js +1 -0
  485. package/dist/src/views/admin/views/core/users/roles/table/actions/edit-action.d.ts +7 -0
  486. package/dist/src/views/admin/views/core/users/roles/table/actions/edit-action.d.ts.map +1 -0
  487. package/dist/src/views/admin/views/core/users/roles/table/actions/edit-action.js +1 -0
  488. package/dist/src/views/admin/views/core/users/roles/table/actions/row-actions.d.ts +22 -0
  489. package/dist/src/views/admin/views/core/users/roles/table/actions/row-actions.d.ts.map +1 -0
  490. package/dist/src/views/admin/views/core/users/roles/table/actions/row-actions.js +1 -0
  491. package/dist/src/views/admin/views/core/users/roles/table/actions/search-roles.action.server.d.ts +10 -0
  492. package/dist/src/views/admin/views/core/users/roles/table/actions/search-roles.action.server.d.ts.map +1 -0
  493. package/dist/src/views/admin/views/core/users/roles/table/actions/search-roles.action.server.js +1 -0
  494. package/dist/src/views/admin/views/core/users/{search-roles.action.d.ts → search-roles.action.server.d.ts} +1 -1
  495. package/dist/src/views/admin/views/core/users/search-roles.action.server.d.ts.map +1 -0
  496. package/dist/src/views/admin/views/core/users/show/edit-field.js +1 -1
  497. package/dist/src/views/admin/views/core/users/show/edit-name-code.js +1 -1
  498. package/dist/src/views/admin/views/core/users/show/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  499. package/dist/src/views/admin/views/core/users/show/mutation-api.server.d.ts.map +1 -0
  500. package/dist/src/views/admin/views/core/users/show/roles/edit-roles.d.ts +1 -1
  501. package/dist/src/views/admin/views/core/users/show/roles/edit-roles.d.ts.map +1 -1
  502. package/dist/src/views/admin/views/core/users/show/roles/edit-roles.js +1 -1
  503. package/dist/src/views/admin/views/core/users/show/roles/roles.d.ts +1 -1
  504. package/dist/src/views/admin/views/core/users/show/roles/roles.d.ts.map +1 -1
  505. package/dist/src/views/admin/views/core/users/show/roles/{search-roles.action.d.ts → search-roles.action.server.d.ts} +1 -1
  506. package/dist/src/views/admin/views/core/users/show/roles/search-roles.action.server.d.ts.map +1 -0
  507. package/dist/src/views/admin/views/core/users/show/roles/{update-roles.action.d.ts → update-roles.action.server.d.ts} +1 -1
  508. package/dist/src/views/admin/views/core/users/show/roles/update-roles.action.server.d.ts.map +1 -0
  509. package/dist/src/views/admin/views/core/users/show/show-user-admin-view.d.ts.map +1 -1
  510. package/dist/src/views/admin/views/core/users/show/show-user-admin-view.js +1 -1
  511. package/dist/src/views/admin/views/core/users/show/tabs.d.ts +5 -0
  512. package/dist/src/views/admin/views/core/users/show/tabs.d.ts.map +1 -0
  513. package/dist/src/views/admin/views/core/users/show/tabs.js +1 -0
  514. package/dist/src/views/admin/views/core/users/users-admin-view.d.ts.map +1 -1
  515. package/dist/src/views/admin/views/core/users/users-admin-view.js +1 -1
  516. package/dist/src/views/auth/password-reset/change-password-form/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  517. package/dist/src/views/auth/password-reset/change-password-form/mutation-api.server.d.ts.map +1 -0
  518. package/dist/src/views/auth/password-reset/change-password-form/use-form.js +1 -1
  519. package/dist/src/views/auth/password-reset/form/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  520. package/dist/src/views/auth/password-reset/form/mutation-api.server.d.ts.map +1 -0
  521. package/dist/src/views/auth/password-reset/form/use-form.js +1 -1
  522. package/dist/src/views/auth/settings/devices/device-item.d.ts +5 -0
  523. package/dist/src/views/auth/settings/devices/device-item.d.ts.map +1 -0
  524. package/dist/src/views/auth/settings/devices/device-item.js +1 -0
  525. package/dist/src/views/auth/settings/devices/devices.d.ts +2 -0
  526. package/dist/src/views/auth/settings/devices/devices.d.ts.map +1 -0
  527. package/dist/src/views/auth/settings/devices/devices.js +1 -0
  528. package/dist/src/views/auth/settings/devices/revoke-action.server.d.ts +9 -0
  529. package/dist/src/views/auth/settings/devices/revoke-action.server.d.ts.map +1 -0
  530. package/dist/src/views/auth/settings/devices/revoke-action.server.js +1 -0
  531. package/dist/src/views/auth/settings/devices/revoke-device-button.d.ts +5 -0
  532. package/dist/src/views/auth/settings/devices/revoke-device-button.d.ts.map +1 -0
  533. package/dist/src/views/auth/settings/devices/revoke-device-button.js +1 -0
  534. package/dist/src/views/auth/settings/nav.d.ts.map +1 -1
  535. package/dist/src/views/auth/settings/nav.js +1 -1
  536. package/dist/src/views/auth/settings/shell.d.ts.map +1 -1
  537. package/dist/src/views/auth/settings/shell.js +1 -1
  538. package/dist/src/views/auth/sign-in/form/form.d.ts.map +1 -1
  539. package/dist/src/views/auth/sign-in/form/form.js +1 -1
  540. package/dist/src/views/auth/sign-in/form/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  541. package/dist/src/views/auth/sign-in/form/mutation-api.server.d.ts.map +1 -0
  542. package/dist/src/views/auth/sign-in/form/use-form.js +1 -1
  543. package/dist/src/views/auth/sign-up/form/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  544. package/dist/src/views/auth/sign-up/form/mutation-api.server.d.ts.map +1 -0
  545. package/dist/src/views/auth/sign-up/form/use-form.d.ts +2 -2
  546. package/dist/src/views/auth/sign-up/form/use-form.d.ts.map +1 -1
  547. package/dist/src/views/auth/sign-up/form/use-form.js +1 -1
  548. package/dist/src/views/auth/sso/buttons/client.js +1 -1
  549. package/dist/src/views/auth/sso/buttons/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  550. package/dist/src/views/auth/sso/buttons/mutation-api.server.d.ts.map +1 -0
  551. package/dist/src/views/auth/sso/callback/client/client.js +1 -1
  552. package/dist/src/views/auth/sso/callback/client/{mutation-api.d.ts → mutation-api.server.d.ts} +1 -1
  553. package/dist/src/views/auth/sso/callback/client/mutation-api.server.d.ts.map +1 -0
  554. package/dist/src/views/error/error-view.d.ts +1 -1
  555. package/dist/src/views/error/error-view.d.ts.map +1 -1
  556. package/dist/src/views/files/actions/delete-action.server.d.ts +9 -0
  557. package/dist/src/views/files/actions/delete-action.server.d.ts.map +1 -0
  558. package/dist/src/views/files/actions/delete-action.server.js +1 -0
  559. package/dist/src/views/files/actions/file-row-actions.d.ts +6 -0
  560. package/dist/src/views/files/actions/file-row-actions.d.ts.map +1 -0
  561. package/dist/src/views/files/actions/file-row-actions.js +1 -0
  562. package/dist/src/views/files/my-files-table-view.d.ts +5 -0
  563. package/dist/src/views/files/my-files-table-view.d.ts.map +1 -0
  564. package/dist/src/views/files/my-files-table-view.js +1 -0
  565. package/dist/src/views/layouts/provider.d.ts +6 -2
  566. package/dist/src/views/layouts/provider.d.ts.map +1 -1
  567. package/dist/src/views/layouts/provider.js +1 -1
  568. package/dist/src/views/layouts/rate-limit-listener.d.ts +2 -0
  569. package/dist/src/views/layouts/rate-limit-listener.d.ts.map +1 -0
  570. package/dist/src/views/layouts/rate-limit-listener.js +1 -0
  571. package/dist/src/views/layouts/root-layout.d.ts.map +1 -1
  572. package/dist/src/views/layouts/root-layout.js +1 -1
  573. package/dist/src/views/layouts/theme/header/header.d.ts +1 -1
  574. package/dist/src/views/layouts/theme/header/header.d.ts.map +1 -1
  575. package/dist/src/views/layouts/theme/header/header.js +1 -1
  576. package/dist/src/views/layouts/theme/header/user/auth/client.d.ts.map +1 -1
  577. package/dist/src/views/layouts/theme/header/user/auth/client.js +1 -1
  578. package/dist/src/views/layouts/theme/header/user/auth/{log-out-mutation-api.d.ts → log-out-mutation-api.server.d.ts} +1 -1
  579. package/dist/src/views/layouts/theme/header/user/auth/log-out-mutation-api.server.d.ts.map +1 -0
  580. package/dist/src/views/search/discover-view.d.ts +2 -0
  581. package/dist/src/views/search/discover-view.d.ts.map +1 -0
  582. package/dist/src/views/search/discover-view.js +1 -0
  583. package/dist/src/views/search/registry.d.ts +9 -0
  584. package/dist/src/views/search/registry.d.ts.map +1 -0
  585. package/dist/src/views/search/registry.js +1 -0
  586. package/dist/src/views/search/search-controls.d.ts +8 -0
  587. package/dist/src/views/search/search-controls.d.ts.map +1 -0
  588. package/dist/src/views/search/search-controls.js +1 -0
  589. package/dist/src/views/search/search-feed.d.ts +17 -0
  590. package/dist/src/views/search/search-feed.d.ts.map +1 -0
  591. package/dist/src/views/search/search-feed.js +1 -0
  592. package/dist/src/views/search/search-view.d.ts +4 -0
  593. package/dist/src/views/search/search-view.d.ts.map +1 -0
  594. package/dist/src/views/search/search-view.js +1 -0
  595. package/dist/src/views/search/types.d.ts +34 -0
  596. package/dist/src/views/search/types.d.ts.map +1 -0
  597. package/dist/src/views/search/types.js +1 -0
  598. package/dist/src/vitnode.config.d.ts +22 -18
  599. package/dist/src/vitnode.config.d.ts.map +1 -1
  600. package/dist/src/vitnode.config.js +1 -1
  601. package/dist/src/ws/manager.d.ts.map +1 -1
  602. package/dist/src/ws/manager.js +1 -1
  603. package/dist/tsconfig.build.tsbuildinfo +1 -0
  604. package/package.json +42 -40
  605. package/src/locales/en.json +258 -8
  606. package/src/locales/index.ts +15 -0
  607. package/src/routes/admin/core/advanced/cron/page.tsx +10 -1
  608. package/src/routes/admin/core/advanced/search/page.tsx +50 -0
  609. package/src/routes/admin/core/system/files/page.tsx +51 -0
  610. package/src/routes/admin/core/users/[id]/page.tsx +1 -1
  611. package/src/routes/admin/core/users/roles/page.tsx +13 -2
  612. package/src/routes/blank/test/page.tsx +1 -1
  613. package/src/routes/breadcrumb/admin/core/advanced/cron/page.tsx +5 -0
  614. package/src/routes/breadcrumb/admin/core/advanced/queue/page.tsx +5 -0
  615. package/src/routes/breadcrumb/admin/core/advanced/search/page.tsx +5 -0
  616. package/src/routes/breadcrumb/admin/core/page.tsx +5 -0
  617. package/src/routes/breadcrumb/admin/core/system/files/page.tsx +5 -0
  618. package/src/routes/breadcrumb/admin/core/system/integrations/page.tsx +5 -0
  619. package/src/routes/breadcrumb/admin/core/users/page.tsx +5 -0
  620. package/src/routes/breadcrumb/admin/core/users/roles/page.tsx +5 -0
  621. package/src/routes/breadcrumb/main/discover/page.tsx +14 -0
  622. package/src/routes/breadcrumb/main/page.tsx +1 -1
  623. package/src/routes/breadcrumb/main/search/page.tsx +11 -0
  624. package/src/routes/breadcrumb/main/settings/devices/page.tsx +17 -0
  625. package/src/routes/main/discover/page.tsx +41 -0
  626. package/src/routes/main/files/page.tsx +50 -0
  627. package/src/routes/main/search/page.tsx +43 -0
  628. package/src/routes/main/settings/devices/page.tsx +15 -0
  629. package/tsconfig.build.json +5 -0
  630. package/dist/scripts/shared/file-utils.test.d.ts +0 -2
  631. package/dist/scripts/shared/file-utils.test.d.ts.map +0 -1
  632. package/dist/src/api/lib/cache.test.d.ts +0 -2
  633. package/dist/src/api/lib/cache.test.d.ts.map +0 -1
  634. package/dist/src/api/lib/cache.test.js +0 -1
  635. package/dist/src/api/models/email.test.d.ts +0 -2
  636. package/dist/src/api/models/email.test.d.ts.map +0 -1
  637. package/dist/src/api/models/email.test.js +0 -1
  638. package/dist/src/api/models/queue.test.d.ts +0 -2
  639. package/dist/src/api/models/queue.test.d.ts.map +0 -1
  640. package/dist/src/api/models/queue.test.js +0 -1
  641. package/dist/src/components/form/fields/combobox.test.d.ts +0 -2
  642. package/dist/src/components/form/fields/combobox.test.d.ts.map +0 -1
  643. package/dist/src/components/form/fields/combobox.test.js +0 -1
  644. package/dist/src/lib/api/get-next-cron-run-date.test.d.ts +0 -2
  645. package/dist/src/lib/api/get-next-cron-run-date.test.d.ts.map +0 -1
  646. package/dist/src/lib/api/get-next-cron-run-date.test.js +0 -1
  647. package/dist/src/lib/api/get-queue-backoff-date.test.d.ts +0 -2
  648. package/dist/src/lib/api/get-queue-backoff-date.test.d.ts.map +0 -1
  649. package/dist/src/lib/api/get-queue-backoff-date.test.js +0 -1
  650. package/dist/src/lib/api/resolve-queue-task-outcome.test.d.ts +0 -2
  651. package/dist/src/lib/api/resolve-queue-task-outcome.test.d.ts.map +0 -1
  652. package/dist/src/lib/api/resolve-queue-task-outcome.test.js +0 -1
  653. package/dist/src/lib/api/should-cron-job-run.test.d.ts +0 -2
  654. package/dist/src/lib/api/should-cron-job-run.test.d.ts.map +0 -1
  655. package/dist/src/lib/api/should-cron-job-run.test.js +0 -1
  656. package/dist/src/lib/api/validate-cron-schedule.test.d.ts +0 -2
  657. package/dist/src/lib/api/validate-cron-schedule.test.d.ts.map +0 -1
  658. package/dist/src/lib/api/validate-cron-schedule.test.js +0 -1
  659. package/dist/src/lib/colors.test.d.ts +0 -2
  660. package/dist/src/lib/colors.test.d.ts.map +0 -1
  661. package/dist/src/lib/colors.test.js +0 -1
  662. package/dist/src/lib/fetcher/cookie-from-string-to-object.test.d.ts +0 -2
  663. package/dist/src/lib/fetcher/cookie-from-string-to-object.test.d.ts.map +0 -1
  664. package/dist/src/lib/fetcher/cookie-from-string-to-object.test.js +0 -1
  665. package/dist/src/lib/fetcher/helpers.test.d.ts +0 -2
  666. package/dist/src/lib/fetcher/helpers.test.d.ts.map +0 -1
  667. package/dist/src/lib/fetcher/helpers.test.js +0 -1
  668. package/dist/src/lib/helpers/auto-form.test.d.ts +0 -2
  669. package/dist/src/lib/helpers/auto-form.test.d.ts.map +0 -1
  670. package/dist/src/lib/helpers/auto-form.test.js +0 -1
  671. package/dist/src/lib/special-characters.test.d.ts +0 -2
  672. package/dist/src/lib/special-characters.test.d.ts.map +0 -1
  673. package/dist/src/lib/special-characters.test.js +0 -1
  674. package/dist/src/views/admin/views/core/advanced/cron/run-action/mutation-api.d.ts.map +0 -1
  675. package/dist/src/views/admin/views/core/dashboard/send-notification/mutation-api.d.ts.map +0 -1
  676. package/dist/src/views/admin/views/core/debug/actions/clear-cache/mutation-api.d.ts.map +0 -1
  677. package/dist/src/views/admin/views/core/staff/create/mutation-api.d.ts.map +0 -1
  678. package/dist/src/views/admin/views/core/staff/create/search.action.d.ts.map +0 -1
  679. package/dist/src/views/admin/views/core/staff/edit/mutation-api.d.ts.map +0 -1
  680. package/dist/src/views/admin/views/core/staff/table/actions/delete-action.d.ts.map +0 -1
  681. package/dist/src/views/admin/views/core/system/integrations/send-test-email/mutation-api.d.ts.map +0 -1
  682. package/dist/src/views/admin/views/core/users/actions/create/mutation-api.d.ts.map +0 -1
  683. package/dist/src/views/admin/views/core/users/actions/verify-email/mutation-api.d.ts.map +0 -1
  684. package/dist/src/views/admin/views/core/users/search-roles.action.d.ts.map +0 -1
  685. package/dist/src/views/admin/views/core/users/show/mutation-api.d.ts.map +0 -1
  686. package/dist/src/views/admin/views/core/users/show/roles/search-roles.action.d.ts.map +0 -1
  687. package/dist/src/views/admin/views/core/users/show/roles/update-roles.action.d.ts.map +0 -1
  688. package/dist/src/views/auth/password-reset/change-password-form/mutation-api.d.ts.map +0 -1
  689. package/dist/src/views/auth/password-reset/form/mutation-api.d.ts.map +0 -1
  690. package/dist/src/views/auth/sign-in/form/mutation-api.d.ts.map +0 -1
  691. package/dist/src/views/auth/sign-up/form/mutation-api.d.ts.map +0 -1
  692. package/dist/src/views/auth/sso/buttons/mutation-api.d.ts.map +0 -1
  693. package/dist/src/views/auth/sso/callback/client/mutation-api.d.ts.map +0 -1
  694. package/dist/src/views/layouts/theme/header/user/auth/log-out-mutation-api.d.ts.map +0 -1
  695. package/dist/tsconfig.tsbuildinfo +0 -1
  696. /package/dist/src/views/admin/views/core/advanced/cron/run-action/{mutation-api.js → mutation-api.server.js} +0 -0
  697. /package/dist/src/views/admin/views/core/dashboard/send-notification/{mutation-api.js → mutation-api.server.js} +0 -0
  698. /package/dist/src/views/admin/views/core/debug/actions/clear-cache/{mutation-api.js → mutation-api.server.js} +0 -0
  699. /package/dist/src/views/admin/views/core/staff/create/{mutation-api.js → mutation-api.server.js} +0 -0
  700. /package/dist/src/views/admin/views/core/staff/create/{search.action.js → search.action.server.js} +0 -0
  701. /package/dist/src/views/admin/views/core/staff/edit/{mutation-api.js → mutation-api.server.js} +0 -0
  702. /package/dist/src/views/admin/views/core/staff/table/actions/{delete-action.js → delete-action.server.js} +0 -0
  703. /package/dist/src/views/admin/views/core/system/integrations/send-test-email/{mutation-api.js → mutation-api.server.js} +0 -0
  704. /package/dist/src/views/admin/views/core/users/actions/create/{mutation-api.js → mutation-api.server.js} +0 -0
  705. /package/dist/src/views/admin/views/core/users/actions/verify-email/{mutation-api.js → mutation-api.server.js} +0 -0
  706. /package/dist/src/views/admin/views/core/users/{search-roles.action.js → search-roles.action.server.js} +0 -0
  707. /package/dist/src/views/admin/views/core/users/show/{mutation-api.js → mutation-api.server.js} +0 -0
  708. /package/dist/src/views/admin/views/core/users/show/roles/{search-roles.action.js → search-roles.action.server.js} +0 -0
  709. /package/dist/src/views/admin/views/core/users/show/roles/{update-roles.action.js → update-roles.action.server.js} +0 -0
  710. /package/dist/src/views/auth/password-reset/change-password-form/{mutation-api.js → mutation-api.server.js} +0 -0
  711. /package/dist/src/views/auth/password-reset/form/{mutation-api.js → mutation-api.server.js} +0 -0
  712. /package/dist/src/views/auth/sign-in/form/{mutation-api.js → mutation-api.server.js} +0 -0
  713. /package/dist/src/views/auth/sign-up/form/{mutation-api.js → mutation-api.server.js} +0 -0
  714. /package/dist/src/views/auth/sso/buttons/{mutation-api.js → mutation-api.server.js} +0 -0
  715. /package/dist/src/views/auth/sso/callback/client/{mutation-api.js → mutation-api.server.js} +0 -0
  716. /package/dist/src/views/layouts/theme/header/user/auth/{log-out-mutation-api.js → log-out-mutation-api.server.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron-warning.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/advanced/search/cron-warning.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,eAAO,MAAM,WAAW,gCA0BvB,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{TriangleAlertIcon,XIcon}from"lucide-react";import{useTranslations}from"next-intl";import React from"react";import{Alert,AlertAction,AlertDescription,AlertTitle}from"../../../../../../components/ui/alert.js";import{Button}from"../../../../../../components/ui/button.js";export const CronWarning=()=>{const t=useTranslations("core.search");const[dismissed,setDismissed]=React.useState(false);if(dismissed){return null}return _jsxs(Alert,{variant:"warning",children:[_jsx(TriangleAlertIcon,{}),_jsx(AlertTitle,{children:t("admin.cron.title")}),_jsx(AlertDescription,{children:t("admin.cron.desc")}),_jsx(AlertAction,{children:_jsx(Button,{"aria-label":t("admin.cron.dismiss"),className:"text-muted-foreground hover:text-foreground size-7",onClick:()=>setDismissed(true),size:"icon",variant:"ghost",children:_jsx(XIcon,{})})})]})};
@@ -0,0 +1,10 @@
1
+ export declare const rebuildSearchIndexMutation: (itemType?: string) => Promise<{
2
+ error: string;
3
+ data?: undefined;
4
+ } | {
5
+ data: {
6
+ queued: boolean;
7
+ };
8
+ error?: undefined;
9
+ }>;
10
+ //# 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/advanced/search/mutation-api.server.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,0BAA0B,GAAU,WAAW,MAAM;;;;;;;;EAgBjE,CAAC"}
@@ -0,0 +1 @@
1
+ "use server";import{debugAdminModule}from"../../../../../../api/modules/admin/debug/debug.admin.module.js";import{fetcher}from"../../../../../../lib/fetcher.js";export const rebuildSearchIndexMutation=async itemType=>{const res=await fetcher(debugAdminModule,{prefixPath:"/admin",path:"/search/rebuild",method:"post",module:"debug",args:{body:itemType?{itemType}:{}}});if(!res.ok){return{error:await res.text()}}return{data:await res.json()}};
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ export declare const ReindexCollectionAction: ({ itemType, label, }: {
3
+ itemType: string;
4
+ label: string;
5
+ }) => React.JSX.Element;
6
+ //# sourceMappingURL=reindex-action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reindex-action.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/advanced/search/reindex-action.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,eAAO,MAAM,uBAAuB,GAAI,sBAGrC;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,sBAgCA,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{RefreshCwIcon}from"lucide-react";import{useTranslations}from"next-intl";import React from"react";import{toast}from"sonner";import{Button}from"../../../../../../components/ui/button.js";import{useRouter}from"../../../../../../lib/navigation.js";import{cn}from"../../../../../../lib/utils.js";import{rebuildSearchIndexMutation}from"./mutation-api.server.js";export const ReindexCollectionAction=({itemType,label})=>{const t=useTranslations("core.search");const router=useRouter();const[isPending,startTransition]=React.useTransition();const onClick=()=>{startTransition(async()=>{const result=await rebuildSearchIndexMutation(itemType);if(result.error){toast.error(t("admin.rebuildError"));return}toast.success(t("admin.reindexQueued",{collection:label}));router.refresh()})};return _jsxs(Button,{className:"text-muted-foreground hover:text-foreground",disabled:isPending,onClick:onClick,size:"sm",variant:"ghost",children:[_jsx(RefreshCwIcon,{className:cn(isPending&&"animate-spin")}),t("admin.reindex")]})};
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ export declare const SearchHeaderActions: () => React.JSX.Element;
3
+ //# sourceMappingURL=search-header-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-header-actions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/advanced/search/search-header-actions.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,eAAO,MAAM,mBAAmB,yBA0B/B,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{RefreshCwIcon}from"lucide-react";import{useTranslations}from"next-intl";import React from"react";import{toast}from"sonner";import{Button}from"../../../../../../components/ui/button.js";import{useRouter}from"../../../../../../lib/navigation.js";import{cn}from"../../../../../../lib/utils.js";import{rebuildSearchIndexMutation}from"./mutation-api.server.js";export const SearchHeaderActions=()=>{const t=useTranslations("core.search");const router=useRouter();const[isPending,startTransition]=React.useTransition();const rebuild=()=>{startTransition(async()=>{const result=await rebuildSearchIndexMutation();if(result.error){toast.error(t("admin.rebuildError"));return}toast.success(t("admin.rebuildQueued"));router.refresh()})};return _jsxs(Button,{disabled:isPending,onClick:rebuild,children:[_jsx(RefreshCwIcon,{className:cn(isPending&&"animate-spin")}),isPending?t("admin.rebuilding"):t("admin.rebuild")]})};
@@ -0,0 +1,7 @@
1
+ export declare const SearchAdminView: ({ searchParams, }: {
2
+ searchParams: Promise<{
3
+ search?: string;
4
+ }>;
5
+ }) => Promise<import("react").JSX.Element>;
6
+ export declare const SearchAdminViewSkeleton: () => import("react").JSX.Element;
7
+ //# sourceMappingURL=search-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-view.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/advanced/search/search-view.tsx"],"names":[],"mappings":"AAqEA,eAAO,MAAM,eAAe,GAAU,mBAEnC;IACD,YAAY,EAAE,OAAO,CAAC;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5C,yCAsEA,CAAC;AAEF,eAAO,MAAM,uBAAuB,mCAanC,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{ClockIcon,DatabaseIcon,LayersIcon,ShieldCheckIcon,ShieldXIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{debugAdminModule}from"../../../../../../api/modules/admin/debug/debug.admin.module.js";import{DateFormat}from"../../../../../../components/date-format.js";import{DataTableSkeleton}from"../../../../../../components/table/data-table.js";import{Card,CardContent}from"../../../../../../components/ui/card.js";import{Skeleton}from"../../../../../../components/ui/skeleton.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{cn}from"../../../../../../lib/utils.js";import{CollectionsTable}from"./collections-table.js";import{CronWarning}from"./cron-warning.js";const getStatus=async()=>{const res=await fetcher(debugAdminModule,{prefixPath:"/admin",path:"/search/status",method:"get",module:"debug"});return res.json()};const StatCard=({accent,icon,label,sublabel,value})=>_jsx(Card,{children:_jsxs(CardContent,{className:"flex flex-col gap-4",children:[_jsxs("div",{className:"flex items-center gap-2.5",children:[_jsx("span",{className:cn("flex size-8 shrink-0 items-center justify-center rounded-lg [&>svg]:size-4",accent),children:icon}),_jsx("span",{className:"text-muted-foreground text-sm font-medium",children:label})]}),_jsxs("div",{className:"flex flex-col gap-1",children:[_jsx("div",{className:"text-foreground text-2xl font-bold text-balance",children:value}),_jsx("div",{className:"text-muted-foreground text-sm",children:sublabel})]})]})});export const SearchAdminView=async({searchParams})=>{const[t,data,query]=await Promise.all([getTranslations("core.search"),getStatus(),searchParams]);return _jsxs("div",{className:"flex flex-col gap-6",children:[!data.hasCronAdapter&&_jsx(CronWarning,{}),_jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 xl:grid-cols-4",children:[_jsx(StatCard,{accent:data.healthy?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400":"bg-destructive/10 text-destructive",icon:data.healthy?_jsx(ShieldCheckIcon,{}):_jsx(ShieldXIcon,{}),label:t("admin.stats.status"),sublabel:t(data.healthy?"admin.stats.statusHealthy":"admin.stats.statusUnhealthy"),value:t(data.healthy?"admin.healthy":"admin.unhealthy")}),_jsx(StatCard,{accent:"bg-primary/10 text-primary",icon:_jsx(DatabaseIcon,{}),label:t("admin.stats.engine"),sublabel:t("admin.stats.engineDesc"),value:_jsx("span",{className:"capitalize",children:data.engine})}),_jsx(StatCard,{accent:"bg-muted text-muted-foreground",icon:_jsx(LayersIcon,{}),label:t("admin.stats.indexed"),sublabel:t("admin.stats.indexedDesc",{count:data.collections.length}),value:_jsx("span",{className:"tabular-nums",children:data.total})}),_jsx(StatCard,{accent:"bg-muted text-muted-foreground",icon:_jsx(ClockIcon,{}),label:t("admin.stats.lastIndexed"),sublabel:data.lastIndexedAt?_jsx(DateFormat,{date:data.lastIndexedAt,showFullDate:true}):t("admin.stats.lastIndexedNever"),value:data.lastIndexedAt?_jsx(DateFormat,{date:data.lastIndexedAt}):t("admin.never")})]}),_jsx(CollectionsTable,{collections:data.collections,search:query.search})]})};export const SearchAdminViewSkeleton=()=>_jsxs("div",{className:"flex flex-col gap-6",children:[_jsx("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 xl:grid-cols-4",children:["status","engine","indexed","last-indexed"].map(key=>_jsx(Skeleton,{className:"h-32 w-full rounded-xl"},key))}),_jsx(Card,{children:_jsx(CardContent,{children:_jsx(DataTableSkeleton,{columns:5})})})]});
@@ -3,4 +3,4 @@ import type { zodSendNotificationSchema } from "../../../../../../api/modules/ad
3
3
  export declare const sendNotificationMutation: (body: z.infer<typeof zodSendNotificationSchema>) => 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/admin/views/core/dashboard/send-notification/mutation-api.server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAKhG,eAAO,MAAM,wBAAwB,GACnC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC;;cAchD,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{SendIcon}from"lucide-react";import React from"react";import{toast}from"sonner";import{Button}from"../../../../../../components/ui/button.js";import{Input}from"../../../../../../components/ui/input.js";import{sendNotificationMutation}from"./mutation-api.js";export const SendNotificationAction=({defaultUserId})=>{const[userId,setUserId]=React.useState(String(defaultUserId));const[title,setTitle]=React.useState("Hello from the admin 👋");const[isPending,startTransition]=React.useTransition();const onSend=()=>{startTransition(async()=>{const res=await sendNotificationMutation({title,type:"info",userId:Number(userId)});if(res?.error){toast.error("Failed to send notification",{description:res.error});return}toast.success("Notification sent")})};return _jsxs("div",{className:"flex flex-wrap items-end gap-2",children:[_jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[_jsx("span",{className:"text-muted-foreground",children:"User ID"}),_jsx(Input,{className:"w-24",onChange:event=>setUserId(event.target.value),type:"number",value:userId})]}),_jsxs("label",{className:"flex flex-1 flex-col gap-1 text-sm",children:[_jsx("span",{className:"text-muted-foreground",children:"Title"}),_jsx(Input,{onChange:event=>setTitle(event.target.value),value:title})]}),_jsxs(Button,{disabled:isPending||!title.trim()||!userId,onClick:onSend,children:[_jsx(SendIcon,{}),"Send notification"]})]})};
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{SendIcon}from"lucide-react";import React from"react";import{toast}from"sonner";import{Button}from"../../../../../../components/ui/button.js";import{Input}from"../../../../../../components/ui/input.js";import{sendNotificationMutation}from"./mutation-api.server.js";export const SendNotificationAction=({defaultUserId})=>{const[userId,setUserId]=React.useState(String(defaultUserId));const[title,setTitle]=React.useState("Hello from the admin 👋");const[isPending,startTransition]=React.useTransition();const onSend=()=>{startTransition(async()=>{const res=await sendNotificationMutation({title,type:"info",userId:Number(userId)});if(res?.error){toast.error("Failed to send notification",{description:res.error});return}toast.success("Notification sent")})};return _jsxs("div",{className:"flex flex-wrap items-end gap-2",children:[_jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[_jsx("span",{className:"text-muted-foreground",children:"User ID"}),_jsx(Input,{className:"w-24",onChange:event=>setUserId(event.target.value),type:"number",value:userId})]}),_jsxs("label",{className:"flex flex-1 flex-col gap-1 text-sm",children:[_jsx("span",{className:"text-muted-foreground",children:"Title"}),_jsx(Input,{onChange:event=>setTitle(event.target.value),value:title})]}),_jsxs(Button,{disabled:isPending||!title.trim()||!userId,onClick:onSend,children:[_jsx(SendIcon,{}),"Send notification"]})]})};
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{BrushCleaningIcon}from"lucide-react";import{useTranslations}from"next-intl";import{toast}from"sonner";import{ConfirmActionAlertDialog}from"../../../../../../../components/confirm-action/confirm-action-alert-dialog.js";import{Button}from"../../../../../../../components/ui/button.js";import{clearCacheMutation}from"./mutation-api.js";export const ClearCacheAction=()=>{const t=useTranslations("admin.debug.actions.clear_cache");const tErrors=useTranslations("core.global.errors");return _jsx(ConfirmActionAlertDialog,{description:t("desc"),onSubmit:async({onClose})=>{try{await clearCacheMutation()}catch{toast.error(tErrors("title"),{description:tErrors("internal_server_error")});return}onClose();toast.success(t("success"))},textSubmit:t("confirm"),title:t("title"),children:_jsxs(Button,{children:[_jsx(BrushCleaningIcon,{}),t("label")]})})};
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{BrushCleaningIcon}from"lucide-react";import{useTranslations}from"next-intl";import{toast}from"sonner";import{ConfirmActionAlertDialog}from"../../../../../../../components/confirm-action/confirm-action-alert-dialog.js";import{Button}from"../../../../../../../components/ui/button.js";import{clearCacheMutation}from"./mutation-api.server.js";export const ClearCacheAction=()=>{const t=useTranslations("admin.debug.actions.clear_cache");const tErrors=useTranslations("core.global.errors");return _jsx(ConfirmActionAlertDialog,{description:t("desc"),onSubmit:async({onClose})=>{try{await clearCacheMutation()}catch{toast.error(tErrors("title"),{description:tErrors("internal_server_error")});return}onClose();toast.success(t("success"))},textSubmit:t("confirm"),title:t("title"),children:_jsxs(Button,{children:[_jsx(BrushCleaningIcon,{}),t("label")]})})};
@@ -1,2 +1,2 @@
1
1
  export declare const clearCacheMutation: () => Promise<void>;
2
- //# sourceMappingURL=mutation-api.d.ts.map
2
+ //# 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/debug/actions/clear-cache/mutation-api.server.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,qBAW9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"system-logs-view.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/debug/system-logs/system-logs-view.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,iBAAiB,GAC5B,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;EAcrD,CAAC;AAEF,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+DA,CAAC"}
1
+ {"version":3,"file":"system-logs-view.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/debug/system-logs/system-logs-view.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,iBAAiB,GAC5B,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;EAcrD,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,mBAElC;IACD,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;CACtE,yCAgEA,CAAC"}
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{getTranslations}from"next-intl/server";import{debugAdminModule}from"../../../../../../api/modules/admin/debug/debug.admin.module.js";import{DateFormat}from"../../../../../../components/date-format.js";import{DataTable}from"../../../../../../components/table/data-table.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{MoreActionSystemLogs}from"./actions/more/more.js";import{BadgeStatus}from"./badges/badge-status.js";import{BadgeTypeLog}from"./badges/badge-type-log.js";export const getSystemLogsData=async query=>{const res=await fetcher(debugAdminModule,{prefixPath:"/admin",path:"/logs",method:"get",module:"debug",args:{query},withPagination:true});return await res.json()};export const SystemLogsView=async({searchParams})=>{const[t,query]=await Promise.all([getTranslations("admin.debug.logs"),searchParams]);const data=await getSystemLogsData(query);return _jsx(DataTable,{columns:[{id:"pluginId",label:t("plugin"),className:"w-48"},{id:"type",label:t("type"),cell:({row})=>_jsx(BadgeTypeLog,{type:row.type})},{id:"statusCode",label:t("status_code"),className:"w-26",cell:({row})=>_jsx(BadgeStatus,{statusCode:row.statusCode})},{id:"createdAt",label:t("created_at"),cell:({row})=>_jsx(DateFormat,{date:row.createdAt})},{id:"content",label:t("content"),cell:({row})=>{const CHARACTERS=50;const content=row.content;const isLong=content.length>CHARACTERS;const displayContent=isLong?`${content.slice(0,CHARACTERS)}...`:content;return _jsx("span",{children:displayContent})}},{id:"actions",label:"",cell:({row})=>_jsx(MoreActionSystemLogs,{...row})}],edges:data.edges.map(edge=>({...edge})),id:"system-logs-table",order:{columns:["createdAt","pluginId","type"],defaultOrder:{column:"createdAt",order:"desc"}},pageInfo:data.pageInfo})};
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{getTranslations}from"next-intl/server";import{debugAdminModule}from"../../../../../../api/modules/admin/debug/debug.admin.module.js";import{DateFormat}from"../../../../../../components/date-format.js";import{DataTable}from"../../../../../../components/table/data-table.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{MoreActionSystemLogs}from"./actions/more/more.js";import{BadgeStatus}from"./badges/badge-status.js";import{BadgeTypeLog}from"./badges/badge-type-log.js";export const getSystemLogsData=async query=>{const res=await fetcher(debugAdminModule,{prefixPath:"/admin",path:"/logs",method:"get",module:"debug",args:{query},withPagination:true});return await res.json()};export const SystemLogsView=async({searchParams})=>{const[t,query]=await Promise.all([getTranslations("admin.debug.logs"),searchParams]);const data=await getSystemLogsData(query);return _jsx(DataTable,{columns:[{accessorKey:"pluginId",header:t("plugin"),className:"w-48"},{accessorKey:"type",header:t("type"),cell:({row})=>_jsx(BadgeTypeLog,{type:row.type})},{accessorKey:"statusCode",header:t("status_code"),className:"w-26",cell:({row})=>_jsx(BadgeStatus,{statusCode:row.statusCode})},{accessorKey:"createdAt",header:t("created_at"),cell:({row})=>_jsx(DateFormat,{date:row.createdAt})},{accessorKey:"content",header:t("content"),cell:({row})=>{const CHARACTERS=50;const content=row.content;const isLong=content.length>CHARACTERS;const displayContent=isLong?`${content.slice(0,CHARACTERS)}...`:content;return _jsx("span",{children:displayContent})}},{id:"actions",header:"",align:"right",cell:({row})=>_jsx(MoreActionSystemLogs,{...row})}],edges:data.edges.map(edge=>({...edge})),id:"system-logs-table",order:{columns:["createdAt","pluginId","type"],defaultOrder:{column:"createdAt",order:"desc"}},pageInfo:data.pageInfo})};
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{ChevronsUpDownIcon,ShieldIcon,UserIcon}from"lucide-react";import{useLocale,useTranslations}from"next-intl";import React from"react";import{toast}from"sonner";import{useDebouncedCallback}from"use-debounce";import{Avatar}from"../../../../../../components/avatar.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{useRouter}from"../../../../../../lib/navigation.js";import{searchRolesForUser}from"../../users/show/roles/search-roles.action.js";import{SelectableCard}from"../selectable-card.js";import{createStaffEntry}from"./mutation-api.js";import{searchUsersForStaff}from"./search.action.js";const roleName=(role,locale)=>role.name.find(item=>item.languageCode===locale)?.name??role.name[0]?.name??"";function EntityPicker({search,getKey,renderItem,placeholder,onSelect,trigger}){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{setOptions(await search(value))}catch(error){console.error(error);setOptions([])}finally{setIsSearching(false)}},[search]);const debouncedSearch=useDebouncedCallback(runSearch,400);return _jsxs(Popover,{onOpenChange:next=>{setOpen(next);if(next){setOptions([]);void runSearch("")}},open:open,children:[_jsxs(PopoverTrigger,{render:_jsx(Button,{className:"w-full justify-start font-normal",variant:"outline"}),children:[trigger,_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:placeholder}),_jsx(CommandList,{children:isSearching&&options.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:options.map(item=>_jsx(CommandItem,{onSelect:()=>{onSelect(item);setOpen(false)},value:getKey(item),children:renderItem(item)},getKey(item)))})]})})]})})]})}export const CreateStaffPermissionsForm=({type})=>{const t=useTranslations("admin.staff.create");const locale=useLocale();const router=useRouter();const[target,setTarget]=React.useState("role");const[role,setRole]=React.useState(null);const[user,setUser]=React.useState(null);const[isLoading,setIsLoading]=React.useState(false);const onSubmit=async()=>{let payload=null;if(target==="role"){if(role)payload={roleId:role.id}}else{if(user)payload={userId:user.id}}if(!payload)return;setIsLoading(true);const result=await createStaffEntry({type,...payload});if(result.error){setIsLoading(false);toast.error(result.error.status===409?t("already_exists"):t("error"));return}toast.success(t("success"));router.push(`/admin/core/staff/${type==="admin"?"admins":"moderators"}/edit/${result.data?.id}`)};const canSubmit=target==="role"?Boolean(role):Boolean(user);return _jsxs("div",{className:"max-w-2xl space-y-6",children:[_jsxs("div",{className:"space-y-3",children:[_jsx("h2",{className:"text-muted-foreground text-xs font-semibold tracking-wide uppercase",children:t("assign_to")}),_jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[_jsx(SelectableCard,{description:t("tabs.role_desc"),icon:_jsx("span",{className:"bg-primary/10 text-primary flex size-10 shrink-0 items-center justify-center rounded-lg",children:_jsx(ShieldIcon,{className:"size-5"})}),onSelect:()=>setTarget("role"),selected:target==="role",title:t("tabs.role")}),_jsx(SelectableCard,{description:t("tabs.user_desc"),icon:_jsx("span",{className:"bg-muted text-muted-foreground flex size-10 shrink-0 items-center justify-center rounded-lg",children:_jsx(UserIcon,{className:"size-5"})}),onSelect:()=>setTarget("user"),selected:target==="user",title:t("tabs.user")})]})]}),_jsx("div",{className:"space-y-2",children:target==="role"?_jsx(EntityPicker,{getKey:item=>String(item.id),onSelect:setRole,placeholder:t("select_role"),renderItem:item=>_jsx("span",{className:"truncate font-medium",style:item.color?{color:item.color}:undefined,children:roleName(item,locale)}),search:searchRolesForUser,trigger:role?_jsx("span",{className:"truncate font-medium",style:role.color?{color:role.color}:undefined,children:roleName(role,locale)}):_jsx("span",{className:"text-muted-foreground",children:t("select_role")})}):_jsx(EntityPicker,{getKey:item=>String(item.id),onSelect:setUser,placeholder:t("search_user"),renderItem:item=>_jsxs("div",{className:"flex items-center gap-2",children:[_jsx(Avatar,{size:24,user:item}),_jsx("span",{className:"font-medium",children:item.name}),_jsxs("span",{className:"text-muted-foreground text-sm",children:["@",item.nameCode]})]}),search:searchUsersForStaff,trigger:user?_jsxs("span",{className:"flex items-center gap-2",children:[_jsx(Avatar,{size:20,user:user}),user.name]}):_jsx("span",{className:"text-muted-foreground",children:t("search_user")})})}),_jsx("div",{className:"flex justify-end",children:_jsx(Button,{disabled:!canSubmit,isLoading:isLoading,onClick:onSubmit,children:t("submit")})})]})};
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{ChevronsUpDownIcon,ShieldIcon,UserIcon}from"lucide-react";import{useLocale,useTranslations}from"next-intl";import React from"react";import{toast}from"sonner";import{useDebouncedCallback}from"use-debounce";import{Avatar}from"../../../../../../components/avatar.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{useRouter}from"../../../../../../lib/navigation.js";import{searchRolesForUser}from"../../users/show/roles/search-roles.action.server.js";import{SelectableCard}from"../selectable-card.js";import{createStaffEntry}from"./mutation-api.server.js";import{searchUsersForStaff}from"./search.action.server.js";const roleName=(role,locale)=>role.name.find(item=>item.languageCode===locale)?.name??role.name[0]?.name??"";function EntityPicker({search,getKey,renderItem,placeholder,onSelect,trigger}){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{setOptions(await search(value))}catch(error){console.error(error);setOptions([])}finally{setIsSearching(false)}},[search]);const debouncedSearch=useDebouncedCallback(runSearch,400);return _jsxs(Popover,{onOpenChange:next=>{setOpen(next);if(next){setOptions([]);void runSearch("")}},open:open,children:[_jsxs(PopoverTrigger,{render:_jsx(Button,{className:"w-full justify-start font-normal",variant:"outline"}),children:[trigger,_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:placeholder}),_jsx(CommandList,{children:isSearching&&options.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:options.map(item=>_jsx(CommandItem,{onSelect:()=>{onSelect(item);setOpen(false)},value:getKey(item),children:renderItem(item)},getKey(item)))})]})})]})})]})}export const CreateStaffPermissionsForm=({type})=>{const t=useTranslations("admin.staff.create");const locale=useLocale();const router=useRouter();const[target,setTarget]=React.useState("role");const[role,setRole]=React.useState(null);const[user,setUser]=React.useState(null);const[isLoading,setIsLoading]=React.useState(false);const onSubmit=async()=>{let payload=null;if(target==="role"){if(role)payload={roleId:role.id}}else{if(user)payload={userId:user.id}}if(!payload)return;setIsLoading(true);const result=await createStaffEntry({type,...payload});if(result.error){setIsLoading(false);toast.error(result.error.status===409?t("already_exists"):t("error"));return}toast.success(t("success"));router.push(`/admin/core/staff/${type==="admin"?"admins":"moderators"}/edit/${result.data?.id}`)};const canSubmit=target==="role"?Boolean(role):Boolean(user);return _jsxs("div",{className:"max-w-2xl space-y-6",children:[_jsxs("div",{className:"space-y-3",children:[_jsx("h2",{className:"text-muted-foreground text-xs font-semibold tracking-wide uppercase",children:t("assign_to")}),_jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[_jsx(SelectableCard,{description:t("tabs.role_desc"),icon:_jsx("span",{className:"bg-primary/10 text-primary flex size-10 shrink-0 items-center justify-center rounded-lg",children:_jsx(ShieldIcon,{className:"size-5"})}),onSelect:()=>setTarget("role"),selected:target==="role",title:t("tabs.role")}),_jsx(SelectableCard,{description:t("tabs.user_desc"),icon:_jsx("span",{className:"bg-muted text-muted-foreground flex size-10 shrink-0 items-center justify-center rounded-lg",children:_jsx(UserIcon,{className:"size-5"})}),onSelect:()=>setTarget("user"),selected:target==="user",title:t("tabs.user")})]})]}),_jsx("div",{className:"space-y-2",children:target==="role"?_jsx(EntityPicker,{getKey:item=>String(item.id),onSelect:setRole,placeholder:t("select_role"),renderItem:item=>_jsx("span",{className:"truncate font-medium",style:item.color?{color:item.color}:undefined,children:roleName(item,locale)}),search:searchRolesForUser,trigger:role?_jsx("span",{className:"truncate font-medium",style:role.color?{color:role.color}:undefined,children:roleName(role,locale)}):_jsx("span",{className:"text-muted-foreground",children:t("select_role")})}):_jsx(EntityPicker,{getKey:item=>String(item.id),onSelect:setUser,placeholder:t("search_user"),renderItem:item=>_jsxs("div",{className:"flex items-center gap-2",children:[_jsx(Avatar,{size:24,user:item}),_jsx("span",{className:"font-medium",children:item.name}),_jsxs("span",{className:"text-muted-foreground text-sm",children:["@",item.nameCode]})]}),search:searchUsersForStaff,trigger:user?_jsxs("span",{className:"flex items-center gap-2",children:[_jsx(Avatar,{size:20,user:user}),user.name]}):_jsx("span",{className:"text-muted-foreground",children:t("search_user")})})}),_jsx("div",{className:"flex justify-end",children:_jsx(Button,{disabled:!canSubmit,isLoading:isLoading,onClick:onSubmit,children:t("submit")})})]})};
@@ -11,4 +11,4 @@ export declare const createStaffEntry: ({ type, roleId, userId, }: {
11
11
  status: number;
12
12
  };
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/staff/create/mutation-api.server.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAKtE,eAAO,MAAM,gBAAgB,GAAU,2BAIpC;IACD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,KAAG,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAkBhE,CAAC"}
@@ -5,4 +5,4 @@ export interface StaffUserOption {
5
5
  nameCode: string;
6
6
  }
7
7
  export declare const searchUsersForStaff: (search: string) => Promise<StaffUserOption[]>;
8
- //# sourceMappingURL=search.action.d.ts.map
8
+ //# sourceMappingURL=search.action.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.action.server.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/staff/create/search.action.server.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,MAAM,KACb,OAAO,CAAC,eAAe,EAAE,CAuB3B,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{CheckIcon,ChevronRightIcon,LockIcon,SearchIcon,ShieldCheckIcon,SparklesIcon}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{Switch}from"../../../../../../components/ui/switch.js";import{useRouter}from"../../../../../../lib/navigation.js";import{cn}from"../../../../../../lib/utils.js";import{SelectableCard}from"../selectable-card.js";import{updateStaffPermissions}from"./mutation-api.js";const listHref=type=>type==="admin"?"/admin/core/staff/admins":"/admin/core/staff/moderators";const countGranted=(permissions,checked)=>permissions.reduce((total,item)=>total+(checked.has(item.key)?1:0),0);const CountBadge=({granted,total})=>{const isFull=total>0&&granted===total;return _jsxs("span",{className:cn("rounded-md px-1.5 py-0.5 text-xs font-medium tabular-nums",isFull?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400":"bg-muted text-muted-foreground"),children:[granted,"/",total]})};const PermissionRow=({permission,checked,labelByKey,onToggle,t})=>{const isChecked=checked.has(permission.key);const locked=!permission.dependsOn.every(dependency=>checked.has(dependency));const requires=permission.dependsOn.map(dependency=>labelByKey.get(dependency)??dependency).join(", ");return _jsxs("label",{className:cn("flex items-center gap-3 px-4 py-3 transition-colors",!locked&&"hover:bg-muted/40"),children:[_jsx("span",{className:cn("flex size-5 shrink-0 items-center justify-center rounded-md transition-colors",locked?"bg-muted text-muted-foreground":isChecked?"bg-primary text-primary-foreground":"border-input border"),children:locked?_jsx(LockIcon,{className:"size-3"}):isChecked?_jsx(CheckIcon,{className:"size-3.5"}):null}),_jsxs("div",{className:"min-w-0 flex-1",children:[_jsx("p",{className:cn("text-sm leading-none",locked&&"text-muted-foreground"),children:permission.label}),locked?_jsx("p",{className:"text-muted-foreground mt-1 text-xs",children:t("requires",{permission:requires})}):null]}),_jsx(Switch,{checked:isChecked,disabled:locked,onCheckedChange:value=>onToggle(permission.key,value)})]})};const ModuleSection=({module,checked,labelByKey,open,onOpenChange,onToggle,onToggleModule,t})=>{const granted=countGranted(module.permissions,checked);const total=module.permissions.length;const isFull=total>0&&granted===total;return _jsxs("div",{className:"bg-card overflow-hidden rounded-xl border",children:[_jsxs("div",{className:"flex items-center gap-2 p-3 sm:gap-3 sm:px-4",children:[_jsxs("button",{"aria-expanded":open,className:"flex min-w-0 flex-1 items-center gap-3 text-left outline-none",onClick:()=>onOpenChange(!open),type:"button",children:[_jsx(ChevronRightIcon,{className:cn("text-muted-foreground size-4 shrink-0 transition-transform",open&&"rotate-90")}),_jsx("span",{className:"truncate text-sm font-semibold sm:text-base",children:module.label})]}),_jsx(CountBadge,{granted:granted,total:total}),_jsx(Switch,{checked:isFull,onCheckedChange:value=>onToggleModule(module,value)})]}),open?_jsx("div",{className:"divide-y border-t",children:module.permissions.map(permission=>_jsx(PermissionRow,{checked:checked,labelByKey:labelByKey,onToggle:onToggle,permission:permission,t:t},permission.key))}):null]})};export const EditStaffPermissionsForm=({type,id,plugins,unrestricted:defaultUnrestricted})=>{const t=useTranslations("admin.staff.edit");const router=useRouter();const[mode,setMode]=React.useState(defaultUnrestricted?"unrestricted":"restricted");const[checked,setChecked]=React.useState(()=>new Set(plugins.flatMap(plugin=>plugin.modules.flatMap(module=>module.permissions.filter(permission=>permission.checked).map(permission=>permission.key)))));const[isLoading,setIsLoading]=React.useState(false);const[query,setQuery]=React.useState("");const[selectedPluginId,setSelectedPluginId]=React.useState(()=>plugins[0]?.pluginId??"");const[openModules,setOpenModules]=React.useState(()=>new Set);const allItems=React.useMemo(()=>plugins.flatMap(plugin=>plugin.modules.flatMap(module=>module.permissions)),[plugins]);const labelByKey=React.useMemo(()=>{const map=new Map;for(const item of allItems)map.set(item.key,item.label);return map},[allItems]);const dependentsByKey=React.useMemo(()=>{const map=new Map;for(const item of allItems){for(const dependency of item.dependsOn){map.set(dependency,[...map.get(dependency)??[],item.key])}}return map},[allItems]);const filteredPlugins=React.useMemo(()=>{const value=query.trim().toLowerCase();if(!value)return plugins;return plugins.filter(plugin=>plugin.label.toLowerCase().includes(value)||plugin.pluginId.toLowerCase().includes(value))},[plugins,query]);const selectedPlugin=filteredPlugins.find(plugin=>plugin.pluginId===selectedPluginId)??filteredPlugins[0];const toggle=(key,value)=>{setChecked(prev=>{const next=new Set(prev);if(value){next.add(key);return next}const stack=[key];while(stack.length>0){const current=stack.pop();if(current===undefined)break;next.delete(current);for(const dependent of dependentsByKey.get(current)??[]){if(next.has(dependent))stack.push(dependent)}}return next})};const setKeysChecked=(keys,value)=>{setChecked(prev=>{const next=new Set(prev);for(const key of keys){if(value){next.add(key)}else{next.delete(key)}}return next})};const setPluginChecked=(plugin,value)=>{setKeysChecked(plugin.modules.flatMap(module=>module.permissions.map(permission=>permission.key)),value)};const setModuleChecked=(module,value)=>{setKeysChecked(module.permissions.map(permission=>permission.key),value)};const onSubmit=async()=>{const unrestricted=mode==="unrestricted";setIsLoading(true);const permissions=unrestricted?[]:allItems.filter(item=>checked.has(item.key)&&item.dependsOn.every(dependency=>checked.has(dependency))).map(({plugin,module,permission})=>({plugin,module,permission}));const result=await updateStaffPermissions({type,id,unrestricted,permissions});if(result.error){setIsLoading(false);toast.error(t("error"));return}toast.success(t("success"));router.push(listHref(type))};return _jsxs("div",{className:"space-y-6",children:[_jsxs("div",{className:"space-y-3",children:[_jsx("h2",{className:"text-muted-foreground text-xs font-semibold tracking-wide uppercase",children:t("mode.label")}),_jsxs("div",{className:"grid gap-3 md:grid-cols-2",children:[_jsx(SelectableCard,{description:t("mode.unrestricted.desc"),icon:_jsx("span",{className:"flex size-10 shrink-0 items-center justify-center rounded-lg bg-amber-500/10 text-amber-500",children:_jsx(SparklesIcon,{className:"size-5"})}),onSelect:()=>setMode("unrestricted"),selected:mode==="unrestricted",title:t("mode.unrestricted.label")}),_jsx(SelectableCard,{description:t("mode.restricted.desc"),icon:_jsx("span",{className:"bg-primary/10 text-primary flex size-10 shrink-0 items-center justify-center rounded-lg",children:_jsx(ShieldCheckIcon,{className:"size-5"})}),onSelect:()=>setMode("restricted"),selected:mode==="restricted",title:t("mode.restricted.label")})]})]}),mode==="restricted"&&(plugins.length===0?_jsx("p",{className:"text-muted-foreground",children:t("no_permissions")}):_jsxs("div",{className:"flex flex-col gap-4 lg:flex-row",children:[_jsxs("aside",{className:"flex flex-col gap-3 lg:sticky lg:top-4 lg:w-72 lg:shrink-0 lg:self-start",children:[_jsxs("div",{className:"relative",children:[_jsx(SearchIcon,{className:"text-muted-foreground pointer-events-none absolute inset-s-2.5 top-1/2 size-4 -translate-y-1/2"}),_jsx(Input,{className:"ps-8",onChange:event=>setQuery(event.target.value),placeholder:t("search_plugins"),value:query})]}),_jsx("div",{className:"flex flex-col gap-1",children:filteredPlugins.map(plugin=>{const isSelected=plugin.pluginId===selectedPlugin?.pluginId;const total=plugin.modules.reduce((sum,module)=>sum+module.permissions.length,0);const granted=plugin.modules.reduce((sum,module)=>sum+countGranted(module.permissions,checked),0);return _jsxs("button",{className:cn("flex w-full items-center gap-3 rounded-lg border p-2.5 text-left transition-colors outline-none",isSelected?"border-primary/40 bg-primary/4":"hover:bg-muted/50 border-transparent"),onClick:()=>setSelectedPluginId(plugin.pluginId),type:"button",children:[_jsx("span",{className:cn("flex size-9 shrink-0 items-center justify-center rounded-md text-sm font-semibold uppercase",isSelected?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground"),children:plugin.label.charAt(0)}),_jsxs("div",{className:"min-w-0 flex-1",children:[_jsx("p",{className:"truncate text-sm font-medium",children:plugin.label}),_jsx("p",{className:"text-muted-foreground text-xs",children:t("granted",{granted,total})})]})]},plugin.pluginId)})})]}),_jsx("div",{className:"min-w-0 flex-1 space-y-3",children:selectedPlugin?_jsxs(_Fragment,{children:[_jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[_jsxs("div",{className:"min-w-0",children:[_jsx("p",{className:"truncate text-base font-semibold",children:selectedPlugin.label}),_jsx("p",{className:"text-muted-foreground truncate text-sm",children:selectedPlugin.pluginId})]}),_jsxs("div",{className:"text-muted-foreground flex items-center gap-1 text-sm",children:[_jsx("button",{className:"hover:text-foreground font-medium transition-colors",onClick:()=>setPluginChecked(selectedPlugin,true),type:"button",children:t("select_all")}),_jsx("span",{"aria-hidden":true,children:"·"}),_jsx("button",{className:"hover:text-foreground font-medium transition-colors",onClick:()=>setPluginChecked(selectedPlugin,false),type:"button",children:t("clear_all")})]})]}),selectedPlugin.modules.map(module=>{const moduleKey=`${selectedPlugin.pluginId}:${module.module}`;return _jsx(ModuleSection,{checked:checked,labelByKey:labelByKey,module:module,onOpenChange:value=>setOpenModules(prev=>{const next=new Set(prev);if(value){next.add(moduleKey)}else{next.delete(moduleKey)}return next}),onToggle:toggle,onToggleModule:setModuleChecked,open:openModules.has(moduleKey),t:t},moduleKey)})]}):_jsx("p",{className:"text-muted-foreground py-8 text-center text-sm",children:t("search_empty")})})]})),_jsx("div",{className:"flex justify-end",children:_jsx(Button,{isLoading:isLoading,onClick:onSubmit,children:t("save")})})]})};
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{CheckIcon,ChevronRightIcon,LockIcon,SearchIcon,ShieldCheckIcon,SparklesIcon}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{Switch}from"../../../../../../components/ui/switch.js";import{useRouter}from"../../../../../../lib/navigation.js";import{cn}from"../../../../../../lib/utils.js";import{SelectableCard}from"../selectable-card.js";import{updateStaffPermissions}from"./mutation-api.server.js";const listHref=type=>type==="admin"?"/admin/core/staff/admins":"/admin/core/staff/moderators";const countGranted=(permissions,checked)=>permissions.reduce((total,item)=>total+(checked.has(item.key)?1:0),0);const CountBadge=({granted,total})=>{const isFull=total>0&&granted===total;return _jsxs("span",{className:cn("rounded-md px-1.5 py-0.5 text-xs font-medium tabular-nums",isFull?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400":"bg-muted text-muted-foreground"),children:[granted,"/",total]})};const PermissionRow=({permission,checked,labelByKey,onToggle,t})=>{const isChecked=checked.has(permission.key);const locked=!permission.dependsOn.every(dependency=>checked.has(dependency));const requires=permission.dependsOn.map(dependency=>labelByKey.get(dependency)??dependency).join(", ");return _jsxs("label",{className:cn("flex items-center gap-3 px-4 py-3 transition-colors",!locked&&"hover:bg-muted/40"),children:[_jsx("span",{className:cn("flex size-5 shrink-0 items-center justify-center rounded-md transition-colors",locked?"bg-muted text-muted-foreground":isChecked?"bg-primary text-primary-foreground":"border-input border"),children:locked?_jsx(LockIcon,{className:"size-3"}):isChecked?_jsx(CheckIcon,{className:"size-3.5"}):null}),_jsxs("div",{className:"min-w-0 flex-1",children:[_jsx("p",{className:cn("text-sm leading-none",locked&&"text-muted-foreground"),children:permission.label}),locked?_jsx("p",{className:"text-muted-foreground mt-1 text-xs",children:t("requires",{permission:requires})}):null]}),_jsx(Switch,{checked:isChecked,disabled:locked,onCheckedChange:value=>onToggle(permission.key,value)})]})};const ModuleSection=({module,checked,labelByKey,open,onOpenChange,onToggle,onToggleModule,t})=>{const granted=countGranted(module.permissions,checked);const total=module.permissions.length;const isFull=total>0&&granted===total;return _jsxs("div",{className:"bg-card overflow-hidden rounded-xl border",children:[_jsxs("div",{className:"flex items-center gap-2 p-3 sm:gap-3 sm:px-4",children:[_jsxs("button",{"aria-expanded":open,className:"flex min-w-0 flex-1 items-center gap-3 text-left outline-none",onClick:()=>onOpenChange(!open),type:"button",children:[_jsx(ChevronRightIcon,{className:cn("text-muted-foreground size-4 shrink-0 transition-transform",open&&"rotate-90")}),_jsx("span",{className:"truncate text-sm font-semibold sm:text-base",children:module.label})]}),_jsx(CountBadge,{granted:granted,total:total}),_jsx(Switch,{checked:isFull,onCheckedChange:value=>onToggleModule(module,value)})]}),open?_jsx("div",{className:"divide-y border-t",children:module.permissions.map(permission=>_jsx(PermissionRow,{checked:checked,labelByKey:labelByKey,onToggle:onToggle,permission:permission,t:t},permission.key))}):null]})};export const EditStaffPermissionsForm=({type,id,plugins,unrestricted:defaultUnrestricted})=>{const t=useTranslations("admin.staff.edit");const router=useRouter();const[mode,setMode]=React.useState(defaultUnrestricted?"unrestricted":"restricted");const[checked,setChecked]=React.useState(()=>new Set(plugins.flatMap(plugin=>plugin.modules.flatMap(module=>module.permissions.filter(permission=>permission.checked).map(permission=>permission.key)))));const[isLoading,setIsLoading]=React.useState(false);const[query,setQuery]=React.useState("");const[selectedPluginId,setSelectedPluginId]=React.useState(()=>plugins[0]?.pluginId??"");const[openModules,setOpenModules]=React.useState(()=>new Set);const allItems=React.useMemo(()=>plugins.flatMap(plugin=>plugin.modules.flatMap(module=>module.permissions)),[plugins]);const labelByKey=React.useMemo(()=>{const map=new Map;for(const item of allItems)map.set(item.key,item.label);return map},[allItems]);const dependentsByKey=React.useMemo(()=>{const map=new Map;for(const item of allItems){for(const dependency of item.dependsOn){map.set(dependency,[...map.get(dependency)??[],item.key])}}return map},[allItems]);const filteredPlugins=React.useMemo(()=>{const value=query.trim().toLowerCase();if(!value)return plugins;return plugins.filter(plugin=>plugin.label.toLowerCase().includes(value)||plugin.pluginId.toLowerCase().includes(value))},[plugins,query]);const selectedPlugin=filteredPlugins.find(plugin=>plugin.pluginId===selectedPluginId)??filteredPlugins[0];const toggle=(key,value)=>{setChecked(prev=>{const next=new Set(prev);if(value){next.add(key);return next}const stack=[key];while(stack.length>0){const current=stack.pop();if(current===undefined)break;next.delete(current);for(const dependent of dependentsByKey.get(current)??[]){if(next.has(dependent))stack.push(dependent)}}return next})};const setKeysChecked=(keys,value)=>{setChecked(prev=>{const next=new Set(prev);for(const key of keys){if(value){next.add(key)}else{next.delete(key)}}return next})};const setPluginChecked=(plugin,value)=>{setKeysChecked(plugin.modules.flatMap(module=>module.permissions.map(permission=>permission.key)),value)};const setModuleChecked=(module,value)=>{setKeysChecked(module.permissions.map(permission=>permission.key),value)};const onSubmit=async()=>{const unrestricted=mode==="unrestricted";setIsLoading(true);const permissions=unrestricted?[]:allItems.filter(item=>checked.has(item.key)&&item.dependsOn.every(dependency=>checked.has(dependency))).map(({plugin,module,permission})=>({plugin,module,permission}));const result=await updateStaffPermissions({type,id,unrestricted,permissions});if(result.error){setIsLoading(false);toast.error(t("error"));return}toast.success(t("success"));router.push(listHref(type))};return _jsxs("div",{className:"space-y-6",children:[_jsxs("div",{className:"space-y-3",children:[_jsx("h2",{className:"text-muted-foreground text-xs font-semibold tracking-wide uppercase",children:t("mode.label")}),_jsxs("div",{className:"grid gap-3 md:grid-cols-2",children:[_jsx(SelectableCard,{description:t("mode.unrestricted.desc"),icon:_jsx("span",{className:"flex size-10 shrink-0 items-center justify-center rounded-lg bg-amber-500/10 text-amber-500",children:_jsx(SparklesIcon,{className:"size-5"})}),onSelect:()=>setMode("unrestricted"),selected:mode==="unrestricted",title:t("mode.unrestricted.label")}),_jsx(SelectableCard,{description:t("mode.restricted.desc"),icon:_jsx("span",{className:"bg-primary/10 text-primary flex size-10 shrink-0 items-center justify-center rounded-lg",children:_jsx(ShieldCheckIcon,{className:"size-5"})}),onSelect:()=>setMode("restricted"),selected:mode==="restricted",title:t("mode.restricted.label")})]})]}),mode==="restricted"&&(plugins.length===0?_jsx("p",{className:"text-muted-foreground",children:t("no_permissions")}):_jsxs("div",{className:"flex flex-col gap-4 lg:flex-row",children:[_jsxs("aside",{className:"flex flex-col gap-3 lg:sticky lg:top-4 lg:w-72 lg:shrink-0 lg:self-start",children:[_jsxs("div",{className:"relative",children:[_jsx(SearchIcon,{className:"text-muted-foreground pointer-events-none absolute inset-s-2.5 top-1/2 size-4 -translate-y-1/2"}),_jsx(Input,{className:"ps-8",onChange:event=>setQuery(event.target.value),placeholder:t("search_plugins"),value:query})]}),_jsx("div",{className:"flex flex-col gap-1",children:filteredPlugins.map(plugin=>{const isSelected=plugin.pluginId===selectedPlugin?.pluginId;const total=plugin.modules.reduce((sum,module)=>sum+module.permissions.length,0);const granted=plugin.modules.reduce((sum,module)=>sum+countGranted(module.permissions,checked),0);return _jsxs("button",{className:cn("flex w-full items-center gap-3 rounded-lg border p-2.5 text-left transition-colors outline-none",isSelected?"border-primary/40 bg-primary/4":"hover:bg-muted/50 border-transparent"),onClick:()=>setSelectedPluginId(plugin.pluginId),type:"button",children:[_jsx("span",{className:cn("flex size-9 shrink-0 items-center justify-center rounded-md text-sm font-semibold uppercase",isSelected?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground"),children:plugin.label.charAt(0)}),_jsxs("div",{className:"min-w-0 flex-1",children:[_jsx("p",{className:"truncate text-sm font-medium",children:plugin.label}),_jsx("p",{className:"text-muted-foreground text-xs",children:t("granted",{granted,total})})]})]},plugin.pluginId)})})]}),_jsx("div",{className:"min-w-0 flex-1 space-y-3",children:selectedPlugin?_jsxs(_Fragment,{children:[_jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[_jsxs("div",{className:"min-w-0",children:[_jsx("p",{className:"truncate text-base font-semibold",children:selectedPlugin.label}),_jsx("p",{className:"text-muted-foreground truncate text-sm",children:selectedPlugin.pluginId})]}),_jsxs("div",{className:"text-muted-foreground flex items-center gap-1 text-sm",children:[_jsx("button",{className:"hover:text-foreground font-medium transition-colors",onClick:()=>setPluginChecked(selectedPlugin,true),type:"button",children:t("select_all")}),_jsx("span",{"aria-hidden":true,children:"·"}),_jsx("button",{className:"hover:text-foreground font-medium transition-colors",onClick:()=>setPluginChecked(selectedPlugin,false),type:"button",children:t("clear_all")})]})]}),selectedPlugin.modules.map(module=>{const moduleKey=`${selectedPlugin.pluginId}:${module.module}`;return _jsx(ModuleSection,{checked:checked,labelByKey:labelByKey,module:module,onOpenChange:value=>setOpenModules(prev=>{const next=new Set(prev);if(value){next.add(moduleKey)}else{next.delete(moduleKey)}return next}),onToggle:toggle,onToggleModule:setModuleChecked,open:openModules.has(moduleKey),t:t},moduleKey)})]}):_jsx("p",{className:"text-muted-foreground py-8 text-center text-sm",children:t("search_empty")})})]})),_jsx("div",{className:"flex justify-end",children:_jsx(Button,{isLoading:isLoading,onClick:onSubmit,children:t("save")})})]})};
@@ -10,4 +10,4 @@ export declare const updateStaffPermissions: ({ type, id, unrestricted, permissi
10
10
  status: number;
11
11
  };
12
12
  }>;
13
- //# sourceMappingURL=mutation-api.d.ts.map
13
+ //# 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/staff/edit/mutation-api.server.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAKpC,eAAO,MAAM,sBAAsB,GAAU,0CAK1C;IACD,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;CACvB,KAAG,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAkBtD,CAAC"}
@@ -8,4 +8,4 @@ export declare const deleteStaffEntry: ({ type, id, }: {
8
8
  status: number;
9
9
  };
10
10
  }>;
11
- //# sourceMappingURL=delete-action.d.ts.map
11
+ //# sourceMappingURL=delete-action.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-action.server.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/staff/table/actions/delete-action.server.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAKtE,eAAO,MAAM,gBAAgB,GAAU,eAGpC;IACD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,mBAAmB,CAAC;CAC3B,KAAG,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAiBtD,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{LockIcon,PencilIcon,Trash2Icon}from"lucide-react";import{useTranslations}from"next-intl";import{toast}from"sonner";import{ConfirmActionAlertDialog}from"../../../../../../../components/confirm-action/confirm-action-alert-dialog.js";import{Button}from"../../../../../../../components/ui/button.js";import{TooltipWithContent}from"../../../../../../../components/ui/tooltip.js";import{Link}from"../../../../../../../lib/navigation.js";import{deleteStaffEntry}from"./delete-action.js";export const StaffRowActions=({type,id,protected:isProtected,self,canEdit,canDelete})=>{const t=useTranslations("admin.staff");const tGlobal=useTranslations("core.global");if(isProtected||self){return _jsx("div",{className:"flex justify-end",children:_jsx(TooltipWithContent,{text:isProtected?t("protected"):t("self"),children:_jsx("span",{className:"text-muted-foreground inline-flex p-2",children:_jsx(LockIcon,{className:"size-4"})})})})}if(!canEdit&&!canDelete){return null}const editHref=`/admin/core/staff/${type==="admin"?"admins":"moderators"}/edit/${id}`;return _jsxs("div",{className:"flex items-center justify-end gap-1",children:[canEdit&&_jsx(Button,{"aria-label":t("table.edit"),nativeButton:false,render:_jsx(Link,{href:editHref}),size:"icon-sm",variant:"ghost",children:_jsx(PencilIcon,{})}),canDelete&&_jsx(ConfirmActionAlertDialog,{description:t("delete.desc"),onSubmit:async({onClose})=>{const result=await deleteStaffEntry({type,id});if(result.error){toast.error(tGlobal("errors.title"),{description:tGlobal("errors.internal_server_error")});return}toast.success(t("delete.success"));onClose()},textSubmit:t("delete.confirm"),title:t("delete.title"),children:_jsx(Button,{"aria-label":t("delete.title"),size:"icon-sm",variant:"destructive",children:_jsx(Trash2Icon,{})})})]})};
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{LockIcon,PencilIcon,Trash2Icon}from"lucide-react";import{useTranslations}from"next-intl";import{toast}from"sonner";import{ConfirmActionAlertDialog}from"../../../../../../../components/confirm-action/confirm-action-alert-dialog.js";import{Button}from"../../../../../../../components/ui/button.js";import{TooltipWithContent}from"../../../../../../../components/ui/tooltip.js";import{Link}from"../../../../../../../lib/navigation.js";import{deleteStaffEntry}from"./delete-action.server.js";export const StaffRowActions=({type,id,protected:isProtected,self,canEdit,canDelete})=>{const t=useTranslations("admin.staff");const tGlobal=useTranslations("core.global");if(isProtected||self){return _jsx("div",{className:"flex justify-end",children:_jsx(TooltipWithContent,{text:isProtected?t("protected"):t("self"),children:_jsx("span",{className:"text-muted-foreground inline-flex p-2",children:_jsx(LockIcon,{className:"size-4"})})})})}if(!canEdit&&!canDelete){return null}const editHref=`/admin/core/staff/${type==="admin"?"admins":"moderators"}/edit/${id}`;return _jsxs("div",{className:"flex items-center justify-end gap-1",children:[canEdit&&_jsx(Button,{"aria-label":t("table.edit"),nativeButton:false,render:_jsx(Link,{href:editHref}),size:"icon-sm",variant:"ghost",children:_jsx(PencilIcon,{})}),canDelete&&_jsx(ConfirmActionAlertDialog,{description:t("delete.desc"),onSubmit:async({onClose})=>{const result=await deleteStaffEntry({type,id});if(result.error){toast.error(tGlobal("errors.title"),{description:tGlobal("errors.internal_server_error")});return}toast.success(t("delete.success"));onClose()},textSubmit:t("delete.confirm"),title:t("delete.title"),children:_jsx(Button,{"aria-label":t("delete.title"),size:"icon-sm",variant:"destructive",children:_jsx(Trash2Icon,{})})})]})};
@@ -1 +1 @@
1
- {"version":3,"file":"staff-table.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/staff/table/staff-table.tsx"],"names":[],"mappings":"AAgBA,UAAU,oBAAoB;IAC5B,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;IACrE,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;CAC/B;AAED,eAAO,MAAM,eAAe,GAAU,yBAGnC,oBAAoB,yCA8GtB,CAAC"}
1
+ {"version":3,"file":"staff-table.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/staff/table/staff-table.tsx"],"names":[],"mappings":"AAgBA,UAAU,oBAAoB;IAC5B,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;IACrE,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;CAC/B;AAED,eAAO,MAAM,eAAe,GAAU,yBAGnC,oBAAoB,yCA+GtB,CAAC"}
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{ShieldUserIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{notFound}from"next/navigation";import{adminModule}from"../../../../../../api/modules/admin/admin.module.js";import{staffPermissionModuleByType}from"../../../../../../api/modules/admin/staff/lib/schema.js";import{DateFormat}from"../../../../../../components/date-format.js";import{RoleFormat}from"../../../../../../components/role-format.js";import{DataTable}from"../../../../../../components/table/data-table.js";import{Badge}from"../../../../../../components/ui/badge.js";import{checkAdminPermissionApi}from"../../../../../../lib/api/get-session-admin-api.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{StaffRowActions}from"./actions/staff-row-actions.js";import{StaffUserFormat}from"./staff-user-format.js";export const StaffTableAdmin=async({type,searchParams})=>{const staffType=type==="admins"?"admin":"moderator";const permissionModule=staffPermissionModuleByType[staffType];const[t,tType,canEdit,canDelete]=await Promise.all([getTranslations("admin.staff.table"),getTranslations(`admin.staff.${type}`),checkAdminPermissionApi({module:permissionModule,permission:"can_edit"}),checkAdminPermissionApi({module:permissionModule,permission:"can_delete"})]);const query=await searchParams;const res=type==="moderators"?await fetcher(adminModule,{path:"/moderators",method:"get",module:"admin/staff",args:{query},withPagination:true}):await fetcher(adminModule,{path:"/admins",method:"get",module:"admin/staff",args:{query},withPagination:true});if(res.status!==200){return notFound()}const data=await res.json();return _jsx(DataTable,{columns:[{id:"role",label:t("role"),cell:({row})=>row.role?_jsx(RoleFormat,{role:row.role}):_jsx("span",{className:"text-muted-foreground",children:"—"})},{id:"user",label:t("user"),cell:({row})=>row.user?_jsx(StaffUserFormat,{user:row.user}):_jsx("span",{className:"text-muted-foreground",children:"—"})},{id:"unrestricted",label:t("permissions"),cell:({row})=>row.unrestricted?_jsx(Badge,{children:t("unrestricted")}):_jsx(Badge,{variant:"secondary",children:t("restricted")})},{id:"updatedAt",label:t("updatedAt"),cell:({row})=>_jsx(DateFormat,{date:row.updatedAt})},{id:"actions",label:"",className:"w-10",cell:({row})=>_jsx(StaffRowActions,{canDelete:canDelete,canEdit:canEdit,id:row.id,protected:row.protected,self:row.self,type:staffType})}],customNoResults:{title:tType("noResults.title"),description:tType("noResults.description"),icon:_jsx(ShieldUserIcon,{})},edges:data.edges,id:`staff-${type}-table`,order:{columns:["updatedAt"],defaultOrder:{column:"updatedAt",order:"desc"}},pageInfo:data.pageInfo})};
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{ShieldUserIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{notFound}from"next/navigation";import{adminModule}from"../../../../../../api/modules/admin/admin.module.js";import{staffPermissionModuleByType}from"../../../../../../api/modules/admin/staff/lib/schema.js";import{DateFormat}from"../../../../../../components/date-format.js";import{RoleFormat}from"../../../../../../components/role-format.js";import{DataTable}from"../../../../../../components/table/data-table.js";import{Badge}from"../../../../../../components/ui/badge.js";import{checkAdminPermissionApi}from"../../../../../../lib/api/get-session-admin-api.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{StaffRowActions}from"./actions/staff-row-actions.js";import{StaffUserFormat}from"./staff-user-format.js";export const StaffTableAdmin=async({type,searchParams})=>{const staffType=type==="admins"?"admin":"moderator";const permissionModule=staffPermissionModuleByType[staffType];const[t,tType,canEdit,canDelete]=await Promise.all([getTranslations("admin.staff.table"),getTranslations(`admin.staff.${type}`),checkAdminPermissionApi({module:permissionModule,permission:"can_edit"}),checkAdminPermissionApi({module:permissionModule,permission:"can_delete"})]);const query=await searchParams;const res=type==="moderators"?await fetcher(adminModule,{path:"/moderators",method:"get",module:"admin/staff",args:{query},withPagination:true}):await fetcher(adminModule,{path:"/admins",method:"get",module:"admin/staff",args:{query},withPagination:true});if(res.status!==200){return notFound()}const data=await res.json();return _jsx(DataTable,{columns:[{accessorKey:"role",header:t("role"),cell:({row})=>row.role?_jsx(RoleFormat,{role:row.role}):_jsx("span",{className:"text-muted-foreground",children:"—"})},{accessorKey:"user",header:t("user"),cell:({row})=>row.user?_jsx(StaffUserFormat,{user:row.user}):_jsx("span",{className:"text-muted-foreground",children:"—"})},{accessorKey:"unrestricted",header:t("permissions"),cell:({row})=>row.unrestricted?_jsx(Badge,{children:t("unrestricted")}):_jsx(Badge,{variant:"secondary",children:t("restricted")})},{accessorKey:"updatedAt",header:t("updatedAt"),cell:({row})=>_jsx(DateFormat,{date:row.updatedAt})},{id:"actions",header:"",align:"right",className:"w-10",cell:({row})=>_jsx(StaffRowActions,{canDelete:canDelete,canEdit:canEdit,id:row.id,protected:row.protected,self:row.self,type:staffType})}],customNoResults:{title:tType("noResults.title"),description:tType("noResults.description"),icon:_jsx(ShieldUserIcon,{})},edges:data.edges,id:`staff-${type}-table`,order:{columns:["updatedAt"],defaultOrder:{column:"updatedAt",order:"desc"}},pageInfo:data.pageInfo})};
@@ -0,0 +1,9 @@
1
+ export declare const deleteFileAction: ({ id, }: {
2
+ id: number;
3
+ }) => Promise<{
4
+ data?: true;
5
+ error?: {
6
+ status: number;
7
+ };
8
+ }>;
9
+ //# sourceMappingURL=delete-action.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-action.server.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/system/files/actions/delete-action.server.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,gBAAgB,GAAU,SAEpC;IACD,EAAE,EAAE,MAAM,CAAC;CACZ,KAAG,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAkBtD,CAAC"}
@@ -0,0 +1 @@
1
+ "use server";import{revalidatePath}from"next/cache";import{filesAdminModule}from"../../../../../../../api/modules/admin/files/files.admin.module.js";import{fetcher}from"../../../../../../../lib/fetcher.js";export const deleteFileAction=async({id})=>{const res=await fetcher(filesAdminModule,{path:"/{id}",method:"delete",module:"files",prefixPath:"/admin",args:{params:{id:String(id)}}});if(res.status!==200){return{error:{status:res.status}}}revalidatePath("/[locale]/admin","layout");return{data:true}};
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ export declare const FileRowActions: ({ canDelete, canDownload, id, name, }: {
3
+ canDelete: boolean;
4
+ canDownload: boolean;
5
+ id: number;
6
+ name: string;
7
+ }) => React.JSX.Element | null;
8
+ //# sourceMappingURL=file-row-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-row-actions.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/system/files/actions/file-row-actions.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,eAAO,MAAM,cAAc,GAAI,uCAK5B;IACD,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,6BA6FA,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{DownloadIcon,LoaderCircleIcon,Trash2Icon}from"lucide-react";import{useTranslations}from"next-intl";import React from"react";import{toast}from"sonner";import{ConfirmActionAlertDialog}from"../../../../../../../components/confirm-action/confirm-action-alert-dialog.js";import{Button}from"../../../../../../../components/ui/button.js";import{TooltipWithContent}from"../../../../../../../components/ui/tooltip.js";import{CONFIG_PLUGIN}from"../../../../../../../config.js";import{clientModule,fetcherClient}from"../../../../../../../lib/fetcher-client.js";import{deleteFileAction}from"./delete-action.server.js";export const FileRowActions=({canDelete,canDownload,id,name})=>{const t=useTranslations("admin.system.files");const tGlobal=useTranslations("core.global.errors");const[isDownloading,setIsDownloading]=React.useState(false);const handleDownload=async()=>{setIsDownloading(true);try{const res=await fetcherClient(clientModule(CONFIG_PLUGIN.pluginId),{prefixPath:"/admin",module:"files",path:"/{id}/download",method:"get",args:{params:{id:String(id)}},options:{credentials:"include"}});if(!res.ok)throw new Error(await res.text());const blob=await res.blob();const objectUrl=URL.createObjectURL(blob);const anchor=document.createElement("a");anchor.href=objectUrl;anchor.download=name;document.body.append(anchor);anchor.click();anchor.remove();URL.revokeObjectURL(objectUrl)}catch{toast.error(tGlobal("title"),{description:t("download.error")})}finally{setIsDownloading(false)}};if(!canDownload&&!canDelete){return null}return _jsxs("div",{className:"flex items-center justify-end gap-1",children:[canDownload&&_jsx(TooltipWithContent,{text:t("actions.download"),children:_jsx(Button,{"aria-label":t("actions.download"),disabled:isDownloading,onClick:handleDownload,size:"icon-sm",variant:"ghost",children:isDownloading?_jsx(LoaderCircleIcon,{className:"animate-spin"}):_jsx(DownloadIcon,{})})}),canDelete&&_jsx(ConfirmActionAlertDialog,{description:t("delete.desc"),onSubmit:async({onClose})=>{const result=await deleteFileAction({id});if(result.error){toast.error(tGlobal("title"),{description:tGlobal("internal_server_error")});return}toast.success(t("delete.success"));onClose()},textSubmit:t("delete.confirm"),title:t("delete.title"),children:_jsx(Button,{"aria-label":t("actions.delete"),size:"icon-sm",variant:"destructive",children:_jsx(Trash2Icon,{})})})]})};
@@ -0,0 +1,5 @@
1
+ import { type SearchParamsDataTable } from "../../../../../../components/table/data-table";
2
+ export declare const FilesTableView: ({ searchParams, }: {
3
+ searchParams: Promise<SearchParamsDataTable>;
4
+ }) => Promise<import("react").JSX.Element>;
5
+ //# sourceMappingURL=files-table-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files-table-view.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/system/files/files-table-view.tsx"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,+BAA+B,CAAC;AAQvC,eAAO,MAAM,cAAc,GAAU,mBAElC;IACD,YAAY,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC9C,yCAsIA,CAAC"}
@@ -0,0 +1 @@
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{FileIcon,FolderIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{notFound}from"next/navigation";import{filesAdminModule}from"../../../../../../api/modules/admin/files/files.admin.module.js";import{DateFormat}from"../../../../../../components/date-format.js";import{FilePreview}from"../../../../../../components/files/file-preview.js";import{MetadataCell}from"../../../../../../components/files/metadata-cell.js";import{DataTable}from"../../../../../../components/table/data-table.js";import{UserFormat}from"../../../../../../components/user-format.js";import{checkAdminPermissionApi}from"../../../../../../lib/api/get-session-admin-api.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{formatBytes}from"../../../../../../lib/format-bytes.js";import{FileRowActions}from"./actions/file-row-actions.js";export const FilesTableView=async({searchParams})=>{const query=await searchParams;const[t,canDownload,canDelete,res]=await Promise.all([getTranslations("admin.system.files"),checkAdminPermissionApi({module:"files",permission:"can_download"}),checkAdminPermissionApi({module:"files",permission:"can_delete"}),fetcher(filesAdminModule,{path:"/",method:"get",module:"files",prefixPath:"/admin",args:{query},withPagination:true})]);if(res.status!==200){return notFound()}const data=await res.json();return _jsx(DataTable,{columns:[{accessorKey:"url",header:t("list.preview"),className:"w-16",cell:({row})=>_jsx(FilePreview,{mimeType:row.mimeType,name:row.name,url:row.url})},{accessorKey:"name",header:t("list.name"),cell:({row})=>_jsxs("div",{className:"flex max-w-xs flex-col",children:[_jsx("span",{className:"truncate",children:row.name}),_jsx("p",{className:"text-muted-foreground truncate text-sm",children:row.mimeType??row.folder})]})},{accessorKey:"folder",header:t("list.folder"),cell:({row})=>_jsxs("div",{className:"text-muted-foreground flex items-center gap-2",children:[_jsx(FolderIcon,{className:"size-4 shrink-0"}),_jsx("span",{className:"truncate",children:row.folder})]})},{accessorKey:"size",header:t("list.size"),cell:({row})=>formatBytes(row.size)},{accessorKey:"dimensions",header:t("list.dimensions"),cell:({row})=>row.dimensions?`${row.dimensions.width}x${row.dimensions.height}`:_jsx("span",{className:"text-muted-foreground",children:"—"})},{accessorKey:"user",header:t("list.uploadedBy"),cell:({row})=>row.user?_jsx(UserFormat,{format:true,user:row.user}):_jsx("span",{className:"text-muted-foreground",children:t("anonymous")})},{accessorKey:"metadata",header:t("list.metadata"),cell:({row})=>_jsx(MetadataCell,{emptyLabel:t("metadata.empty"),metadata:row.metadata,title:t("metadata.title")})},{accessorKey:"createdAt",header:t("list.createdAt"),cell:({row})=>_jsx(DateFormat,{date:row.createdAt})},{id:"actions",header:"",align:"right",className:"w-10",cell:({row})=>canDownload||canDelete?_jsx(FileRowActions,{canDelete:canDelete,canDownload:canDownload,id:row.id,name:row.name}):null}],customNoResults:{title:t("noResults.title"),description:t("noResults.description"),icon:_jsx(FileIcon,{})},edges:data.edges,id:"files-table",order:{columns:["name","size","createdAt"],defaultOrder:{column:"createdAt",order:"desc"}},pageInfo:data.pageInfo,search:true})};
@@ -1 +1 @@
1
- {"version":3,"file":"integration-card.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/system/integrations/integration-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAejE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAElE,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,eAAe,GAAI,uFAU7B,oBAAoB,gCA8EtB,CAAC"}
1
+ {"version":3,"file":"integration-card.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/system/integrations/integration-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAejE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAElE,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,eAAe,GAAI,uFAU7B,oBAAoB,gCAuFtB,CAAC"}
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{ArrowUpRightIcon}from"lucide-react";import{Badge}from"../../../../../../components/ui/badge.js";import{buttonVariants}from"../../../../../../components/ui/button.js";import{Card,CardAction,CardContent,CardDescription,CardFooter,CardHeader,CardTitle}from"../../../../../../components/ui/card.js";import{cn}from"../../../../../../lib/utils.js";export const IntegrationCard=({action,description,href,Icon,meta,readMoreLabel,status,statusLabel,title})=>{const isActive=status==="active";const isWarning=status==="warning";return _jsxs(Card,{className:cn("gap-4 transition-colors",status==="inactive"&&"ring-destructive/30 bg-destructive/[0.03]",isWarning&&"bg-amber-500/[0.04] ring-amber-500/40"),"data-status":status,children:[_jsxs(CardHeader,{children:[_jsxs("div",{className:"flex items-center gap-3",children:[_jsx("div",{className:cn("flex size-9 shrink-0 items-center justify-center rounded-lg",isActive&&"bg-primary/10 text-primary",isWarning&&"bg-amber-500/10 text-amber-600 dark:text-amber-400",status==="inactive"&&"bg-destructive/10 text-destructive"),children:_jsx(Icon,{className:"size-5"})}),_jsx(CardTitle,{className:"flex-1",children:title})]}),_jsx(CardAction,{children:_jsxs(Badge,{className:cn(isActive&&"bg-green-500/10 text-green-700 dark:bg-green-500/15 dark:text-green-400",isWarning&&"bg-amber-500/10 text-amber-700 dark:bg-amber-500/15 dark:text-amber-400"),variant:status==="inactive"?"destructive":"secondary",children:[_jsx("span",{"aria-hidden":true,className:cn("size-1.5 rounded-full bg-current",isActive&&"animate-pulse")}),statusLabel]})})]}),_jsxs(CardContent,{children:[_jsx(CardDescription,{children:description}),meta?_jsx("div",{className:"text-muted-foreground mt-3 text-xs",children:meta}):null]}),_jsxs(CardFooter,{className:cn("mt-auto items-center gap-2",action?"justify-between":"justify-end"),children:[action,_jsxs("a",{className:cn(buttonVariants({size:"sm",variant:"link"}),"text-muted-foreground hover:text-foreground gap-1"),href:href,rel:"noopener noreferrer",target:"_blank",children:[readMoreLabel,_jsx(ArrowUpRightIcon,{})]})]})]})};
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{ArrowUpRightIcon}from"lucide-react";import{Badge}from"../../../../../../components/ui/badge.js";import{buttonVariants}from"../../../../../../components/ui/button.js";import{Card,CardAction,CardContent,CardDescription,CardFooter,CardHeader,CardTitle}from"../../../../../../components/ui/card.js";import{cn}from"../../../../../../lib/utils.js";export const IntegrationCard=({action,description,href,Icon,meta,readMoreLabel,status,statusLabel,title})=>{const isActive=status==="active";const isWarning=status==="warning";return _jsxs(Card,{className:cn("gap-0 p-0 transition-colors",status==="inactive"&&"ring-destructive/30",isWarning&&"ring-amber-500/40"),"data-status":status,children:[_jsxs("div",{className:cn("bg-card flex flex-1 flex-col gap-4 p-6",status==="inactive"&&"bg-destructive/3",isWarning&&"bg-amber-500/4"),children:[_jsxs(CardHeader,{className:"p-0",children:[_jsxs("div",{className:"flex items-center gap-3",children:[_jsx("div",{className:cn("flex size-9 shrink-0 items-center justify-center rounded-lg",isActive&&"bg-primary/10 text-primary",isWarning&&"bg-amber-500/10 text-amber-600 dark:text-amber-400",status==="inactive"&&"bg-destructive/10 text-destructive"),children:_jsx(Icon,{className:"size-5"})}),_jsx(CardTitle,{className:"flex-1",children:title})]}),_jsx(CardAction,{children:_jsxs(Badge,{className:cn(isActive&&"bg-green-500/10 text-green-700 dark:bg-green-500/15 dark:text-green-400",isWarning&&"bg-amber-500/10 text-amber-700 dark:bg-amber-500/15 dark:text-amber-400"),variant:status==="inactive"?"destructive":"secondary",children:[_jsx("span",{"aria-hidden":true,className:cn("size-1.5 rounded-full bg-current",isActive&&"animate-pulse")}),statusLabel]})})]}),_jsxs(CardContent,{className:"p-0",children:[_jsx(CardDescription,{children:description}),meta?_jsx("div",{className:"text-muted-foreground mt-3 text-xs",children:meta}):null]})]}),_jsxs(CardFooter,{className:cn("bg-muted items-center gap-2 px-6 py-4",action?"justify-between":"justify-end"),children:[action,_jsxs("a",{className:cn(buttonVariants({size:"sm",variant:"link"}),"text-muted-foreground hover:text-foreground gap-1"),href:href,rel:"noopener noreferrer",target:"_blank",children:[readMoreLabel,_jsx(ArrowUpRightIcon,{})]})]})]})};
@@ -1 +1 @@
1
- {"version":3,"file":"integrations-view.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/system/integrations/integrations-view.tsx"],"names":[],"mappings":"AAyCA,eAAO,MAAM,gBAAgB,4CA8H5B,CAAC;AAEF,eAAO,MAAM,wBAAwB,mCAMpC,CAAC"}
1
+ {"version":3,"file":"integrations-view.d.ts","sourceRoot":"","sources":["../../../../../../../../src/views/admin/views/core/system/integrations/integrations-view.tsx"],"names":[],"mappings":"AA4CA,eAAO,MAAM,gBAAgB,4CA6J5B,CAAC;AAEF,eAAO,MAAM,wBAAwB,mCAQpC,CAAC"}
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{ClockIcon,DatabaseIcon,ListTodoIcon,MailIcon,RadioTowerIcon,ShieldCheckIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{debugAdminModule}from"../../../../../../api/modules/admin/debug/debug.admin.module.js";import{Skeleton}from"../../../../../../components/ui/skeleton.js";import{checkAdminPermissionApi}from"../../../../../../lib/api/get-session-admin-api.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{IntegrationCard}from"./integration-card.js";import{SendTestEmailAction}from"./send-test-email/send-test-email.js";const DOCS_URLS={captcha:"https://vitnode.com/docs/dev/captcha",cron:"https://vitnode.com/docs/dev/cron",email:"https://vitnode.com/docs/dev/email",queue:"https://vitnode.com/docs/dev/advanced/queue",redis:"https://vitnode.com/docs/dev/advanced/redis",websocket:"https://vitnode.com/docs/dev/websocket"};const getIntegrationsData=async()=>{const res=await fetcher(debugAdminModule,{prefixPath:"/admin",path:"/integrations",method:"get",module:"debug"});return await res.json()};const toStatus=active=>active?"active":"inactive";export const IntegrationsView=async()=>{const[t,data,canSendTestEmail]=await Promise.all([getTranslations("admin.system.integrations"),getIntegrationsData(),checkAdminPermissionApi({module:"system",permission:"can_send_test_email"})]);const statusLabel=status=>t(`status.${status}`);const redisStatus=data.redis.active?"active":data.redis.configuredButDown?"warning":"inactive";const cronStatus=!data.cron.active?"inactive":data.cron.secure?"active":"warning";return _jsxs("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:[_jsx(IntegrationCard,{description:t("websocket.desc"),href:DOCS_URLS.websocket,Icon:RadioTowerIcon,readMoreLabel:t("read_more"),status:toStatus(data.websocket.active),statusLabel:statusLabel(toStatus(data.websocket.active)),title:t("websocket.title")}),_jsx(IntegrationCard,{description:t("redis.desc"),href:DOCS_URLS.redis,Icon:DatabaseIcon,meta:data.redis.configuredButDown?_jsx("span",{className:"text-amber-600 dark:text-amber-400",children:t("redis.down")}):null,readMoreLabel:t("read_more"),status:redisStatus,statusLabel:statusLabel(redisStatus),title:t("redis.title")}),_jsx(IntegrationCard,{action:data.email.active&&canSendTestEmail?_jsx(SendTestEmailAction,{}):undefined,description:t("email.desc"),href:DOCS_URLS.email,Icon:MailIcon,readMoreLabel:t("read_more"),status:toStatus(data.email.active),statusLabel:statusLabel(toStatus(data.email.active)),title:t("email.title")}),_jsx(IntegrationCard,{description:t("cron.desc"),href:DOCS_URLS.cron,Icon:ClockIcon,meta:!data.cron.active?_jsx("span",{children:t("cron.not_configured")}):!data.cron.secure?_jsx("span",{className:"text-amber-600 dark:text-amber-400",children:t("cron.insecure")}):_jsx("span",{children:t("cron.jobs",{count:data.cron.jobs})}),readMoreLabel:t("read_more"),status:cronStatus,statusLabel:statusLabel(cronStatus),title:t("cron.title")}),_jsx(IntegrationCard,{description:t("queue.desc"),href:DOCS_URLS.queue,Icon:ListTodoIcon,meta:_jsxs("span",{children:[t("queue.tasks",{count:data.queue.tasks})," ·"," ",t("queue.queued",{pending:data.queue.pending,processing:data.queue.processing})]}),readMoreLabel:t("read_more"),status:toStatus(data.queue.active),statusLabel:statusLabel(toStatus(data.queue.active)),title:t("queue.title")}),_jsx(IntegrationCard,{description:t("captcha.desc"),href:DOCS_URLS.captcha,Icon:ShieldCheckIcon,meta:data.captcha.active&&data.captcha.type?_jsx("span",{children:t(`captcha.type.${data.captcha.type}`)}):null,readMoreLabel:t("read_more"),status:toStatus(data.captcha.active),statusLabel:statusLabel(toStatus(data.captcha.active)),title:t("captcha.title")})]})};export const IntegrationsViewSkeleton=()=>_jsx("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:["websocket","redis","email","cron","queue","captcha"].map(id=>_jsx(Skeleton,{className:"h-32 w-full rounded-xl"},id))});
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{ClockIcon,DatabaseIcon,HardDriveIcon,ListTodoIcon,MailIcon,RadioTowerIcon,ShieldCheckIcon}from"lucide-react";import{getTranslations}from"next-intl/server";import{debugAdminModule}from"../../../../../../api/modules/admin/debug/debug.admin.module.js";import{Skeleton}from"../../../../../../components/ui/skeleton.js";import{checkAdminPermissionApi}from"../../../../../../lib/api/get-session-admin-api.js";import{fetcher}from"../../../../../../lib/fetcher.js";import{IntegrationCard}from"./integration-card.js";import{SendTestEmailAction}from"./send-test-email/send-test-email.js";import{TestStorageAction}from"./test-storage/test-storage.js";const DOCS_URLS={captcha:"https://vitnode.com/docs/dev/captcha",cron:"https://vitnode.com/docs/dev/cron",email:"https://vitnode.com/docs/dev/email",queue:"https://vitnode.com/docs/dev/advanced/queue",redis:"https://vitnode.com/docs/dev/advanced/redis",storage:"https://vitnode.com/docs/dev/storage",websocket:"https://vitnode.com/docs/dev/websocket"};const getIntegrationsData=async()=>{const res=await fetcher(debugAdminModule,{prefixPath:"/admin",path:"/integrations",method:"get",module:"debug"});return await res.json()};const toStatus=active=>active?"active":"inactive";export const IntegrationsView=async()=>{const[t,data,canSendTestEmail,canTestStorage]=await Promise.all([getTranslations("admin.system.integrations"),getIntegrationsData(),checkAdminPermissionApi({module:"system",permission:"can_send_test_email"}),checkAdminPermissionApi({module:"system",permission:"can_test_storage"})]);const statusLabel=status=>t(`status.${status}`);const redisStatus=data.redis.active?"active":data.redis.configuredButDown?"warning":"inactive";const cronStatus=!data.cron.active?"inactive":data.cron.stale||!data.cron.secure?"warning":"active";return _jsxs("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:[_jsx(IntegrationCard,{description:t("websocket.desc"),href:DOCS_URLS.websocket,Icon:RadioTowerIcon,readMoreLabel:t("read_more"),status:toStatus(data.websocket.active),statusLabel:statusLabel(toStatus(data.websocket.active)),title:t("websocket.title")}),_jsx(IntegrationCard,{description:t("redis.desc"),href:DOCS_URLS.redis,Icon:DatabaseIcon,meta:data.redis.configuredButDown?_jsx("span",{className:"text-amber-600 dark:text-amber-400",children:t("redis.down")}):null,readMoreLabel:t("read_more"),status:redisStatus,statusLabel:statusLabel(redisStatus),title:t("redis.title")}),_jsx(IntegrationCard,{action:data.email.active&&canSendTestEmail?_jsx(SendTestEmailAction,{}):undefined,description:t("email.desc"),href:DOCS_URLS.email,Icon:MailIcon,readMoreLabel:t("read_more"),status:toStatus(data.email.active),statusLabel:statusLabel(toStatus(data.email.active)),title:t("email.title")}),_jsx(IntegrationCard,{action:data.storage.active&&canTestStorage?_jsx(TestStorageAction,{}):undefined,description:t("storage.desc"),href:DOCS_URLS.storage,Icon:HardDriveIcon,readMoreLabel:t("read_more"),status:toStatus(data.storage.active),statusLabel:statusLabel(toStatus(data.storage.active)),title:t("storage.title")}),_jsx(IntegrationCard,{description:t("cron.desc"),href:DOCS_URLS.cron,Icon:ClockIcon,meta:!data.cron.active?_jsx("span",{children:t("cron.not_configured")}):data.cron.stale?_jsx("span",{className:"text-amber-600 dark:text-amber-400",children:t("cron.stale")}):!data.cron.secure?_jsx("span",{className:"text-amber-600 dark:text-amber-400",children:t("cron.insecure")}):_jsx("span",{children:t("cron.jobs",{count:data.cron.jobs})}),readMoreLabel:t("read_more"),status:cronStatus,statusLabel:statusLabel(cronStatus),title:t("cron.title")}),_jsx(IntegrationCard,{description:t("queue.desc"),href:DOCS_URLS.queue,Icon:ListTodoIcon,meta:_jsxs(_Fragment,{children:[_jsxs("span",{children:[t("queue.tasks",{count:data.queue.tasks})," ·"," ",t("queue.queued",{pending:data.queue.pending,processing:data.queue.processing})]}),data.queue.cronStale?_jsx("span",{className:"text-destructive mt-1 block",children:t("queue.cron_stale")}):null]}),readMoreLabel:t("read_more"),status:toStatus(data.queue.active),statusLabel:statusLabel(toStatus(data.queue.active)),title:t("queue.title")}),_jsx(IntegrationCard,{description:t("captcha.desc"),href:DOCS_URLS.captcha,Icon:ShieldCheckIcon,meta:data.captcha.active&&data.captcha.type?_jsx("span",{children:t(`captcha.type.${data.captcha.type}`)}):null,readMoreLabel:t("read_more"),status:toStatus(data.captcha.active),statusLabel:statusLabel(toStatus(data.captcha.active)),title:t("captcha.title")})]})};export const IntegrationsViewSkeleton=()=>_jsx("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:["websocket","redis","email","storage","cron","queue","captcha"].map(id=>_jsx(Skeleton,{className:"h-32 w-full rounded-xl"},id))});
@@ -9,4 +9,4 @@ export declare const sendTestEmailMutation: (body: z.infer<typeof zodSendTestEma
9
9
  };
10
10
  error?: undefined;
11
11
  }>;
12
- //# sourceMappingURL=mutation-api.d.ts.map
12
+ //# 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/system/integrations/send-test-email/mutation-api.server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AAKrG,eAAO,MAAM,qBAAqB,GAChC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC;;;;;;;;EAiB7C,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{sendTestEmailMutation}from"./mutation-api.js";export const useFormSendTestEmail=()=>{const t=useTranslations("admin.system.integrations.email.test");const tError=useTranslations("core.global.errors");const{setOpen,setIsDirty}=useDialog();const formSchema=z.object({to:z.email({message:t("to.invalid")}).default(""),subject:z.string({message:tError("field_required")}).min(1,tError("field_required")).max(200).default(t("subject.default")),content:z.string({message:tError("field_required")}).min(1,tError("field_required")).max(5e3).default(t("content.default"))});const onSubmit=async values=>{const mutation=await sendTestEmailMutation(values);if(mutation.data){setIsDirty?.(false);setOpen?.(false);toast.success(t("success"));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{sendTestEmailMutation}from"./mutation-api.server.js";export const useFormSendTestEmail=()=>{const t=useTranslations("admin.system.integrations.email.test");const tError=useTranslations("core.global.errors");const{setOpen,setIsDirty}=useDialog();const formSchema=z.object({to:z.email({message:t("to.invalid")}).default(""),subject:z.string({message:tError("field_required")}).min(1,tError("field_required")).max(200).default(t("subject.default")),content:z.string({message:tError("field_required")}).min(1,tError("field_required")).max(5e3).default(t("content.default"))});const onSubmit=async values=>{const mutation=await sendTestEmailMutation(values);if(mutation.data){setIsDirty?.(false);setOpen?.(false);toast.success(t("success"));return}toast.error(tError("title"),{description:tError("internal_server_error")})};return{onSubmit,formSchema}};
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ export declare const ContentTestStorage: () => React.JSX.Element;
3
+ //# sourceMappingURL=content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/system/integrations/test-storage/content.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,MAAM,OAAO,CAAC;AAmB1B,eAAO,MAAM,kBAAkB,yBA4G9B,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useMutation}from"@tanstack/react-query";import{HardDriveIcon,ImageIcon,LoaderCircleIcon,XIcon}from"lucide-react";import{useTranslations}from"next-intl";import React from"react";import{toast}from"sonner";import{Alert,AlertDescription,AlertTitle}from"../../../../../../../components/ui/alert.js";import{Attachment,AttachmentAction,AttachmentActions,AttachmentContent,AttachmentDescription,AttachmentMedia,AttachmentTitle,AttachmentTrigger}from"../../../../../../../components/ui/attachment.js";import{CONFIG_PLUGIN}from"../../../../../../../config.js";import{clientModule,fetcherClient}from"../../../../../../../lib/fetcher-client.js";export const ContentTestStorage=()=>{const t=useTranslations("admin.system.integrations.storage.test");const tError=useTranslations("core.global.errors");const[fileName,setFileName]=React.useState();const inputRef=React.useRef(null);const upload=useMutation({mutationFn:async file=>{const formData=new FormData;formData.append("file",file);const res=await fetcherClient(clientModule(CONFIG_PLUGIN.pluginId),{prefixPath:"/admin",module:"debug",path:"/test-storage-upload",method:"post",formData,options:{credentials:"include"}});if(!res.ok)throw new Error(await res.text());return await res.json()},onError:()=>toast.error(tError("title"),{description:tError("internal_server_error")}),onSuccess:()=>toast.success(t("upload.success"))});const state=upload.isError?"error":upload.isPending?"uploading":upload.data?"done":"idle";const description=state==="uploading"?t("upload.pending"):state==="error"?t("upload.error"):state==="done"?t("upload.done"):t("upload.desc");const reset=()=>{upload.reset();setFileName(undefined);if(inputRef.current)inputRef.current.value=""};return _jsxs("div",{className:"flex flex-col gap-4",children:[_jsxs(Alert,{children:[_jsx(HardDriveIcon,{}),_jsx(AlertTitle,{children:t("info.title")}),_jsx(AlertDescription,{children:t("info.desc")})]}),_jsx("input",{accept:"image/*",className:"hidden",onChange:event=>{const file=event.target.files?.[0];if(file){setFileName(file.name);upload.mutate(file)}event.target.value=""},ref:inputRef,type:"file"}),_jsxs(Attachment,{className:"w-full",state:state,children:[_jsx(AttachmentMedia,{variant:upload.data?"image":"icon",children:upload.data?_jsx("img",{alt:fileName??t("upload.label"),src:upload.data.url}):upload.isPending?_jsx(LoaderCircleIcon,{className:"animate-spin","data-slot":"spinner"}):_jsx(ImageIcon,{})}),_jsxs(AttachmentContent,{children:[_jsx(AttachmentTitle,{children:fileName??t("upload.label")}),_jsx(AttachmentDescription,{children:description})]}),upload.data?_jsx(AttachmentActions,{children:_jsx(AttachmentAction,{onClick:reset,type:"button",children:_jsx(XIcon,{})})}):_jsx(AttachmentTrigger,{disabled:upload.isPending,onClick:()=>inputRef.current?.click()})]})]})};
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ export declare const TestStorageAction: () => React.JSX.Element;
3
+ //# sourceMappingURL=test-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-storage.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/views/admin/views/core/system/integrations/test-storage/test-storage.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAmB1B,eAAO,MAAM,iBAAiB,yBAyB7B,CAAC"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{HardDriveIcon}from"lucide-react";import{useTranslations}from"next-intl";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 ContentTestStorage=React.lazy(async()=>import("./content.js").then(module=>({default:module.ContentTestStorage})));export const TestStorageAction=()=>{const t=useTranslations("admin.system.integrations.storage.test");return _jsxs(Dialog,{children:[_jsxs(DialogTrigger,{render:_jsx(Button,{size:"sm",variant:"outline"}),children:[_jsx(HardDriveIcon,{}),t("label")]}),_jsxs(DialogContent,{children:[_jsxs(DialogHeader,{children:[_jsxs(DialogTitle,{className:"flex items-center gap-2",children:[_jsx(HardDriveIcon,{className:"size-5"}),t("title")]}),_jsx(DialogDescription,{children:t("desc")})]}),_jsx(React.Suspense,{fallback:_jsx(Loader,{}),children:_jsx(ContentTestStorage,{})})]})]})};
@@ -1 +1 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../../../src/views/admin/views/core/test.tsx"],"names":[],"mappings":"AAmBA,eAAO,MAAM,QAAQ,mCAkQpB,CAAC"}
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../../../src/views/admin/views/core/test.tsx"],"names":[],"mappings":"AAoBA,eAAO,MAAM,QAAQ,mCA6QpB,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{SearchIcon}from"lucide-react";import{z}from"zod";import{AutoForm}from"../../../../components/form/auto-form.js";import{AutoFormArray}from"../../../../components/form/fields/array.js";import{AutoFormCheckbox}from"../../../../components/form/fields/checkbox.js";import{AutoFormCombobox}from"../../../../components/form/fields/combobox.js";import{AutoFormInput}from"../../../../components/form/fields/input.js";import{AutoFormRadioGroup}from"../../../../components/form/fields/radio-group.js";import{AutoFormSelect}from"../../../../components/form/fields/select.js";import{AutoFormSwitch}from"../../../../components/form/fields/switch.js";import{AutoFormTextarea}from"../../../../components/form/fields/textarea.js";import{Card}from"../../../../components/ui/card.js";import{Editor}from"../../../../components/ui/editor.js";import{EditorContent}from"../../../../components/ui/editor-content.js";import{InputGroupAddon,InputGroupText}from"../../../../components/ui/input-group.js";export const TestView=()=>{const formSchema=z.object({provider:z.string().min(1,{message:"Provider is required"}).describe("This is the provider for your application. It should be a valid provider name."),features:z.array(z.object({name:z.string().min(1,{message:"Feature name is required"}),enabled:z.boolean().default(true)})).describe("List the features available for this provider."),provider2:z.string().describe("This is the provider for your application. It should be a valid provider name.").default("test"),client_secret:z.string().min(1,{message:"Client Secret is required"}).describe("This is the client secret for your application. It should be kept secret and not shared with anyone."),client_secret2:z.string().min(1,{message:"Client Secret is required"}).describe("This is the client secret for your application. It should be kept secret and not shared with anyone."),terms:z.boolean().refine(val=>val,{message:"You must accept the terms and conditions"}).describe("By checking this box, you agree to the terms and conditions."),options:z.enum(["option1","option2","option3"]).default("option1"),options_long:z.enum(["option1","option2","option3"]).default("option2"),switch:z.boolean().default(false).describe("elo"),type:z.enum(["option-one","option-two"]).default("option-one"),custom_color:z.string().default("#000000").describe("Pick your favorite color.")});return _jsx("div",{className:"p-4",children:_jsxs(Card,{className:"p-6",children:[_jsx(Editor,{value:"<p>Hello World! 🌎️</p>"}),_jsx(EditorContent,{content:"<h2>Test header v2</h2><p>Hello World! 🌎️das d alfjnasjf kas djksa fkja sfj AFKJ afj AFJKNAJSKGNSAKFLMSAKLDNASFJNKJnjkdasnfjnas fjknsa fjknsafkjn askjfnkajsgnasjkfnskjanf kjans fjknasjkf naskjf naskjnf kjasn kfjans fjkas kfjnas jknfkasjn fkajsnf jnasfjkangaskjfnajsdnlaskmcdasjfnjskafnsajknfcksajdnasjkfnjkasn cfjksanfjckasnjcnaskjcnaksjcnaksjcnakjcnasjkn</p>"}),_jsx(AutoForm,{fields:[{id:"provider",component:props=>_jsx(AutoFormInput,{description:"This is the provider for your application. It should be a valid provider name.",label:"Provider",...props})},{id:"features",component:props=>_jsx(AutoFormArray,{...props,fields:[{id:"name",className:"flex-1",component:subProps=>_jsx(AutoFormInput,{...subProps,label:"Feature Name"})},{id:"enabled",component:subProps=>_jsx(AutoFormCheckbox,{...subProps,label:"Enabled"})}],label:"Features"})},{id:"provider2",component:props=>_jsx(AutoFormInput,{label:"Provider 2",...props,children:_jsx(InputGroupAddon,{children:_jsx(SearchIcon,{})})})},{id:"client_secret",component:props=>_jsx(AutoFormTextarea,{description:"This is the client secret for your application. It should be kept\n secret and not shared with anyone.",label:"Client Secret",...props})},{id:"client_secret2",component:props=>_jsx(AutoFormTextarea,{description:"This is the client secret for your application. It should be kept\n secret and not shared with anyone.",label:"Client Secret",...props,children:_jsx(InputGroupAddon,{align:"block-end",children:_jsxs(InputGroupText,{className:"tabular-nums",children:[props.field.value?.toString().length??0," of 500 characters"]})})})},{id:"terms",component:props=>_jsx(AutoFormCheckbox,{description:"By checking this box, you agree to the terms and conditions.",label:"I agree to the terms and conditions",...props})},{id:"options",component:props=>_jsx(AutoFormRadioGroup,{...props,description:"By checking this box, you agree to the terms and conditions.",label:"I agree to the terms and conditions",labels:[{value:"option1",label:"Option 1",description:"This is the description for option 1"},{value:"option2",label:"Option 2"},{value:"option3",label:"Option 3",description:"This is the description for option 3",disabled:true}],variant:"blocks"})},{id:"options_long",component:props=>_jsx(AutoFormSelect,{...props,description:"By checking this box, you agree to the terms and conditions.",label:"I agree to the terms and conditions",labels:[{value:"option1",label:"Option 1 with a very long label that should be truncated"},{value:"option2",label:"Option 2"},{value:"option3",label:"Option 3"}],placeholder:"Select an option from the list"})},{id:"switch",component:props=>_jsx(AutoFormSwitch,{...props,description:"By checking this box, you agree to the terms and conditions.",label:"I agree to the terms and conditions"})},{id:"type",component:props=>_jsx(AutoFormCombobox,{...props,description:"By checking this box, you agree to the terms and conditions.",fetchData:async({search})=>{await new Promise(resolve=>setTimeout(resolve,1e3));return[{value:"option-one",label:"Option One"},{value:"option-two",label:"Option Two"}].filter(option=>option.label.toLowerCase().includes(search.toLowerCase()))},id:"test-combobox",label:"Type"})},{id:"custom_color",component:props=>_jsxs("div",{className:"flex w-full flex-col gap-3",children:[_jsx("div",{className:"text-sm leading-none font-medium",children:"Custom Color Picker"}),_jsx("input",{...props.field,className:"h-10 w-24 cursor-pointer rounded-md border p-1",type:"color",value:props.field.value??"#000000"}),props.description&&_jsx("div",{className:"text-muted-foreground text-sm",children:props.description})]})}],formSchema:formSchema,onSubmit:async values=>{console.log("Form submitted",values);await new Promise(resolve=>setTimeout(resolve,3e3))}})]})})};
1
+ "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{SearchIcon}from"lucide-react";import{z}from"zod";import{AutoForm}from"../../../../components/form/auto-form.js";import{AutoFormArray}from"../../../../components/form/fields/array.js";import{AutoFormCheckbox}from"../../../../components/form/fields/checkbox.js";import{AutoFormCombobox}from"../../../../components/form/fields/combobox.js";import{AutoFormEditor}from"../../../../components/form/fields/editor.js";import{AutoFormInput}from"../../../../components/form/fields/input.js";import{AutoFormRadioGroup}from"../../../../components/form/fields/radio-group.js";import{AutoFormSelect}from"../../../../components/form/fields/select.js";import{AutoFormSwitch}from"../../../../components/form/fields/switch.js";import{AutoFormTextarea}from"../../../../components/form/fields/textarea.js";import{Card}from"../../../../components/ui/card.js";import{Editor}from"../../../../components/ui/editor.js";import{EditorContent}from"../../../../components/ui/editor-content.js";import{InputGroupAddon,InputGroupText}from"../../../../components/ui/input-group.js";export const TestView=()=>{const formSchema=z.object({editor:z.string().describe("This is the editor for your application.").default("<p>Hello World! 🌎️</p>"),provider:z.string().min(1,{message:"Provider is required"}).describe("This is the provider for your application. It should be a valid provider name."),features:z.array(z.object({name:z.string().min(1,{message:"Feature name is required"}),enabled:z.boolean().default(true)})).describe("List the features available for this provider."),provider2:z.string().describe("This is the provider for your application. It should be a valid provider name.").default("test"),client_secret:z.string().min(1,{message:"Client Secret is required"}).describe("This is the client secret for your application. It should be kept secret and not shared with anyone."),client_secret2:z.string().min(1,{message:"Client Secret is required"}).describe("This is the client secret for your application. It should be kept secret and not shared with anyone."),terms:z.boolean().refine(val=>val,{message:"You must accept the terms and conditions"}).describe("By checking this box, you agree to the terms and conditions."),options:z.enum(["option1","option2","option3"]).default("option1"),options_long:z.enum(["option1","option2","option3"]).default("option2"),switch:z.boolean().default(false).describe("elo"),type:z.enum(["option-one","option-two"]).default("option-one"),custom_color:z.string().default("#000000").describe("Pick your favorite color.")});return _jsx("div",{className:"p-4",children:_jsxs(Card,{className:"p-6",children:[_jsx(Editor,{value:"<p>Hello World! 🌎️</p>"}),_jsx(EditorContent,{content:"<h2>Test header v2</h2><p>Hello World! 🌎️das d alfjnasjf kas djksa fkja sfj AFKJ afj AFJKNAJSKGNSAKFLMSAKLDNASFJNKJnjkdasnfjnas fjknsa fjknsafkjn askjfnkajsgnasjkfnskjanf kjans fjknasjkf naskjf naskjnf kjasn kfjans fjkas kfjnas jknfkasjn fkajsnf jnasfjkangaskjfnajsdnlaskmcdasjfnjskafnsajknfcksajdnasjkfnjkasn cfjksanfjckasnjcnaskjcnaksjcnaksjcnakjcnasjkn</p>"}),_jsx(AutoForm,{fields:[{id:"editor",component:props=>_jsx(AutoFormEditor,{...props,label:"Editor",multiLang:true})},{id:"provider",component:props=>_jsx(AutoFormInput,{description:"This is the provider for your application. It should be a valid provider name.",label:"Provider",multiLang:true,...props})},{id:"features",component:props=>_jsx(AutoFormArray,{...props,fields:[{id:"name",className:"flex-1",component:subProps=>_jsx(AutoFormInput,{...subProps,label:"Feature Name"})},{id:"enabled",component:subProps=>_jsx(AutoFormCheckbox,{...subProps,label:"Enabled"})}],label:"Features"})},{id:"provider2",component:props=>_jsx(AutoFormInput,{label:"Provider 2",...props,children:_jsx(InputGroupAddon,{children:_jsx(SearchIcon,{})})})},{id:"client_secret",component:props=>_jsx(AutoFormTextarea,{description:"This is the client secret for your application. It should be kept\n secret and not shared with anyone.",label:"Client Secret",...props})},{id:"client_secret2",component:props=>_jsx(AutoFormTextarea,{description:"This is the client secret for your application. It should be kept\n secret and not shared with anyone.",label:"Client Secret",...props,children:_jsx(InputGroupAddon,{align:"block-end",children:_jsxs(InputGroupText,{className:"tabular-nums",children:[props.field.value?.toString().length??0," of 500 characters"]})})})},{id:"terms",component:props=>_jsx(AutoFormCheckbox,{description:"By checking this box, you agree to the terms and conditions.",label:"I agree to the terms and conditions",...props})},{id:"options",component:props=>_jsx(AutoFormRadioGroup,{...props,description:"By checking this box, you agree to the terms and conditions.",label:"I agree to the terms and conditions",labels:[{value:"option1",label:"Option 1",description:"This is the description for option 1"},{value:"option2",label:"Option 2"},{value:"option3",label:"Option 3",description:"This is the description for option 3",disabled:true}],variant:"blocks"})},{id:"options_long",component:props=>_jsx(AutoFormSelect,{...props,description:"By checking this box, you agree to the terms and conditions.",label:"I agree to the terms and conditions",labels:[{value:"option1",label:"Option 1 with a very long label that should be truncated"},{value:"option2",label:"Option 2"},{value:"option3",label:"Option 3"}],placeholder:"Select an option from the list"})},{id:"switch",component:props=>_jsx(AutoFormSwitch,{...props,description:"By checking this box, you agree to the terms and conditions.",label:"I agree to the terms and conditions"})},{id:"type",component:props=>_jsx(AutoFormCombobox,{...props,description:"By checking this box, you agree to the terms and conditions.",fetchData:async({search})=>{await new Promise(resolve=>setTimeout(resolve,1e3));return[{value:"option-one",label:"Option One"},{value:"option-two",label:"Option Two"}].filter(option=>option.label.toLowerCase().includes(search.toLowerCase()))},id:"test-combobox",label:"Type"})},{id:"custom_color",component:props=>_jsxs("div",{className:"flex w-full flex-col gap-3",children:[_jsx("div",{className:"text-sm leading-none font-medium",children:"Custom Color Picker"}),_jsx("input",{...props.field,className:"h-10 w-24 cursor-pointer rounded-md border p-1",type:"color",value:props.field.value??"#000000"}),props.description&&_jsx("div",{className:"text-muted-foreground text-sm",children:props.description})]})}],formSchema:formSchema,onSubmit:async values=>{console.log("Form submitted",values);await new Promise(resolve=>setTimeout(resolve,3e3))}})]})})};