@modern-admin/web 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/dist/config/runtime-config.d.ts +3 -1
  2. package/dist/lib/index.js +2 -1
  3. package/dist/lib/runtime-config.d.ts +3 -1
  4. package/dist/standalone/assets/action-component-host-0e0dM9L5.js +1 -0
  5. package/dist/standalone/assets/action-component-host-0e0dM9L5.js.br +0 -0
  6. package/dist/standalone/assets/action-component-host-0e0dM9L5.js.gz +0 -0
  7. package/dist/standalone/assets/action-page-5XzBYNLF.js +1 -0
  8. package/dist/standalone/assets/action-page-5XzBYNLF.js.br +0 -0
  9. package/dist/standalone/assets/action-page-5XzBYNLF.js.gz +0 -0
  10. package/dist/standalone/assets/ai-assistant-widget-DqDDFhs9.js +1 -0
  11. package/dist/standalone/assets/ai-assistant-widget-DqDDFhs9.js.br +0 -0
  12. package/dist/standalone/assets/ai-assistant-widget-DqDDFhs9.js.gz +0 -0
  13. package/dist/standalone/assets/audit-log-page-DnkoR1aQ.js +1 -0
  14. package/dist/standalone/assets/audit-log-page-DnkoR1aQ.js.br +0 -0
  15. package/dist/standalone/assets/audit-log-page-DnkoR1aQ.js.gz +0 -0
  16. package/dist/standalone/assets/{badge-CdW_Z0lB.js → badge-DcnAfye2.js} +1 -1
  17. package/dist/standalone/assets/cache-page-CYUGYE_u.js +1 -0
  18. package/dist/standalone/assets/cache-page-CYUGYE_u.js.br +0 -0
  19. package/dist/standalone/assets/cache-page-CYUGYE_u.js.gz +0 -0
  20. package/dist/standalone/assets/{calendar-Dt13SKbK.js → calendar-BaUIrunI.js} +1 -1
  21. package/dist/standalone/assets/calendar-BaUIrunI.js.br +0 -0
  22. package/dist/standalone/assets/calendar-BaUIrunI.js.gz +0 -0
  23. package/dist/standalone/assets/{refresh-cw-Cm9YiHGV.js → calendar-Bw3WQyQo.js} +1 -1
  24. package/dist/standalone/assets/card-DqZLPLVL.js +1 -0
  25. package/dist/standalone/assets/card-DqZLPLVL.js.br +0 -0
  26. package/dist/standalone/assets/card-DqZLPLVL.js.gz +0 -0
  27. package/dist/standalone/assets/chart-widget-Dh0z7ZLN.js +1 -0
  28. package/dist/standalone/assets/chart-widget-Dh0z7ZLN.js.br +0 -0
  29. package/dist/standalone/assets/chart-widget-Dh0z7ZLN.js.gz +0 -0
  30. package/dist/standalone/assets/checkbox-XhVTY33A.js +1 -0
  31. package/dist/standalone/assets/checkbox-XhVTY33A.js.br +0 -0
  32. package/dist/standalone/assets/checkbox-XhVTY33A.js.gz +0 -0
  33. package/dist/standalone/assets/chevron-up-B4e3jYvH.js +1 -0
  34. package/dist/standalone/assets/{command-D25Gk8Ov.js → command-7GxjB9QE.js} +1 -1
  35. package/dist/standalone/assets/command-7GxjB9QE.js.br +0 -0
  36. package/dist/standalone/assets/command-7GxjB9QE.js.gz +0 -0
  37. package/dist/standalone/assets/date-picker-DyrUeaLe.js +1 -0
  38. package/dist/standalone/assets/date-picker-DyrUeaLe.js.br +0 -0
  39. package/dist/standalone/assets/date-picker-DyrUeaLe.js.gz +0 -0
  40. package/dist/standalone/assets/{dist-DPxQeZn3.js → dist-D81KaSgB.js} +1 -1
  41. package/dist/standalone/assets/dist-D81KaSgB.js.br +0 -0
  42. package/dist/standalone/assets/dist-D81KaSgB.js.gz +0 -0
  43. package/dist/standalone/assets/edit-page-BO3mMMB_.js +1 -0
  44. package/dist/standalone/assets/edit-page-BO3mMMB_.js.br +0 -0
  45. package/dist/standalone/assets/edit-page-BO3mMMB_.js.gz +0 -0
  46. package/dist/standalone/assets/external-link-DPtYlrBF.js +1 -0
  47. package/dist/standalone/assets/global-search-dialog-BpKe3XoO.js +1 -0
  48. package/dist/standalone/assets/global-search-dialog-BpKe3XoO.js.br +0 -0
  49. package/dist/standalone/assets/global-search-dialog-BpKe3XoO.js.gz +0 -0
  50. package/dist/standalone/assets/{heavy-fields-BMTsLOom.js → heavy-fields-i_qOELOD.js} +4 -4
  51. package/dist/standalone/assets/heavy-fields-i_qOELOD.js.br +0 -0
  52. package/dist/standalone/assets/heavy-fields-i_qOELOD.js.gz +0 -0
  53. package/dist/standalone/assets/home-page-Dono2RtE.js +60 -0
  54. package/dist/standalone/assets/home-page-Dono2RtE.js.br +0 -0
  55. package/dist/standalone/assets/home-page-Dono2RtE.js.gz +0 -0
  56. package/dist/standalone/assets/hooks-HtVL9mbu.js +185 -0
  57. package/dist/standalone/assets/hooks-HtVL9mbu.js.br +0 -0
  58. package/dist/standalone/assets/hooks-HtVL9mbu.js.gz +0 -0
  59. package/dist/standalone/assets/icon-registry-DylOf8oM.js +1 -0
  60. package/dist/standalone/assets/icon-registry-DylOf8oM.js.br +0 -0
  61. package/dist/standalone/assets/icon-registry-DylOf8oM.js.gz +0 -0
  62. package/dist/standalone/assets/index-CkApY4xA.css +2 -0
  63. package/dist/standalone/assets/index-CkApY4xA.css.br +0 -0
  64. package/dist/standalone/assets/index-CkApY4xA.css.gz +0 -0
  65. package/dist/standalone/assets/index-L9ueoHX-.js +14 -0
  66. package/dist/standalone/assets/index-L9ueoHX-.js.br +0 -0
  67. package/dist/standalone/assets/index-L9ueoHX-.js.gz +0 -0
  68. package/dist/standalone/assets/info-tooltip-BumrgJ7G.js +1 -0
  69. package/dist/standalone/assets/info-tooltip-BumrgJ7G.js.br +0 -0
  70. package/dist/standalone/assets/info-tooltip-BumrgJ7G.js.gz +0 -0
  71. package/dist/standalone/assets/json-editor-C2aKNlR8.js +1 -0
  72. package/dist/standalone/assets/json-editor-C2aKNlR8.js.br +0 -0
  73. package/dist/standalone/assets/json-editor-C2aKNlR8.js.gz +0 -0
  74. package/dist/standalone/assets/media-generation-form-BFB3tl5r.js +2 -0
  75. package/dist/standalone/assets/media-generation-form-BFB3tl5r.js.br +0 -0
  76. package/dist/standalone/assets/media-generation-form-BFB3tl5r.js.gz +0 -0
  77. package/dist/standalone/assets/pencil-BbAPAQYz.js +1 -0
  78. package/dist/standalone/assets/property-renderer-BAk-Zlha.js +3 -0
  79. package/dist/standalone/assets/property-renderer-BAk-Zlha.js.br +0 -0
  80. package/dist/standalone/assets/property-renderer-BAk-Zlha.js.gz +0 -0
  81. package/dist/standalone/assets/reference-Xn1fFn_F.js +1 -0
  82. package/dist/standalone/assets/reference-Xn1fFn_F.js.br +0 -0
  83. package/dist/standalone/assets/reference-Xn1fFn_F.js.gz +0 -0
  84. package/dist/standalone/assets/refresh-cw-ACqXtr0o.js +1 -0
  85. package/dist/standalone/assets/revisions-button-SnELGiJE.js +1 -0
  86. package/dist/standalone/assets/revisions-button-SnELGiJE.js.br +0 -0
  87. package/dist/standalone/assets/revisions-button-SnELGiJE.js.gz +0 -0
  88. package/dist/standalone/assets/schemas-cLTIShT8.js +64 -0
  89. package/dist/standalone/assets/schemas-cLTIShT8.js.br +0 -0
  90. package/dist/standalone/assets/schemas-cLTIShT8.js.gz +0 -0
  91. package/dist/standalone/assets/select-CwGlDDSq.js +1 -0
  92. package/dist/standalone/assets/select-CwGlDDSq.js.br +0 -0
  93. package/dist/standalone/assets/select-CwGlDDSq.js.gz +0 -0
  94. package/dist/standalone/assets/settings-page-BFRjqH0r.js +1 -0
  95. package/dist/standalone/assets/settings-page-BFRjqH0r.js.br +0 -0
  96. package/dist/standalone/assets/settings-page-BFRjqH0r.js.gz +0 -0
  97. package/dist/standalone/assets/show-page-FxsJstD7.js +1 -0
  98. package/dist/standalone/assets/show-page-FxsJstD7.js.br +0 -0
  99. package/dist/standalone/assets/show-page-FxsJstD7.js.gz +0 -0
  100. package/dist/standalone/assets/sliders-horizontal-Dj_6s0AP.js +1 -0
  101. package/dist/standalone/assets/sliders-horizontal-Dj_6s0AP.js.br +0 -0
  102. package/dist/standalone/assets/sliders-horizontal-Dj_6s0AP.js.gz +0 -0
  103. package/dist/standalone/assets/tabs-Dq48rs1Y.js +1 -0
  104. package/dist/standalone/assets/tabs-Dq48rs1Y.js.br +0 -0
  105. package/dist/standalone/assets/tabs-Dq48rs1Y.js.gz +0 -0
  106. package/dist/standalone/assets/trash-2-CaQpRZCu.js +1 -0
  107. package/dist/standalone/assets/upload-CsSC4L7B.js +1 -0
  108. package/dist/standalone/assets/use-dashboard-charts-BTNU1_Dc.js +1 -0
  109. package/dist/standalone/assets/use-dashboard-charts-BTNU1_Dc.js.br +0 -0
  110. package/dist/standalone/assets/use-dashboard-charts-BTNU1_Dc.js.gz +0 -0
  111. package/dist/standalone/assets/{useQueries-ClcMJqXb.js → useQueries-CmYB_BNM.js} +1 -1
  112. package/dist/standalone/assets/useQueries-CmYB_BNM.js.br +0 -0
  113. package/dist/standalone/assets/useQueries-CmYB_BNM.js.gz +0 -0
  114. package/dist/standalone/assets/{user-directory-DxioDri9.js → user-directory-Xtwqc7uj.js} +1 -1
  115. package/dist/standalone/assets/user-directory-Xtwqc7uj.js.br +0 -0
  116. package/dist/standalone/assets/user-directory-Xtwqc7uj.js.gz +0 -0
  117. package/dist/standalone/assets/wizard-create-page-CV7F66p-.js +1 -0
  118. package/dist/standalone/assets/wizard-create-page-CV7F66p-.js.br +0 -0
  119. package/dist/standalone/assets/wizard-create-page-CV7F66p-.js.gz +0 -0
  120. package/dist/standalone/assets/zod-BXxx0uhu.js +1 -0
  121. package/dist/standalone/assets/zod-BXxx0uhu.js.br +0 -0
  122. package/dist/standalone/assets/zod-BXxx0uhu.js.gz +0 -0
  123. package/dist/standalone/index.html +8 -9
  124. package/dist/standalone/index.html.br +0 -0
  125. package/dist/standalone/index.html.gz +0 -0
  126. package/package.json +5 -5
  127. package/src/app.tsx +1 -0
  128. package/src/runtime-config.ts +3 -1
  129. package/dist/standalone/assets/action-component-host-Cch_SQOc.js +0 -1
  130. package/dist/standalone/assets/action-component-host-Cch_SQOc.js.br +0 -0
  131. package/dist/standalone/assets/action-component-host-Cch_SQOc.js.gz +0 -0
  132. package/dist/standalone/assets/action-page-Cs9GeU9A.js +0 -1
  133. package/dist/standalone/assets/action-page-Cs9GeU9A.js.br +0 -0
  134. package/dist/standalone/assets/action-page-Cs9GeU9A.js.gz +0 -0
  135. package/dist/standalone/assets/ai-assistant-widget-DC9Li4zI.js +0 -1
  136. package/dist/standalone/assets/ai-assistant-widget-DC9Li4zI.js.br +0 -0
  137. package/dist/standalone/assets/ai-assistant-widget-DC9Li4zI.js.gz +0 -0
  138. package/dist/standalone/assets/audit-log-page-Bq4ywsHY.js +0 -1
  139. package/dist/standalone/assets/audit-log-page-Bq4ywsHY.js.br +0 -0
  140. package/dist/standalone/assets/audit-log-page-Bq4ywsHY.js.gz +0 -0
  141. package/dist/standalone/assets/cache-page-D6YyRm0a.js +0 -1
  142. package/dist/standalone/assets/cache-page-D6YyRm0a.js.br +0 -0
  143. package/dist/standalone/assets/cache-page-D6YyRm0a.js.gz +0 -0
  144. package/dist/standalone/assets/calendar-Dt13SKbK.js.br +0 -0
  145. package/dist/standalone/assets/calendar-Dt13SKbK.js.gz +0 -0
  146. package/dist/standalone/assets/card-BYbadRar.js +0 -1
  147. package/dist/standalone/assets/card-BYbadRar.js.br +0 -0
  148. package/dist/standalone/assets/card-BYbadRar.js.gz +0 -0
  149. package/dist/standalone/assets/chart-widget-BCr0m4cg.js +0 -1
  150. package/dist/standalone/assets/chart-widget-BCr0m4cg.js.br +0 -0
  151. package/dist/standalone/assets/chart-widget-BCr0m4cg.js.gz +0 -0
  152. package/dist/standalone/assets/circle-alert-D1sKnXtO.js +0 -1
  153. package/dist/standalone/assets/command-D25Gk8Ov.js.br +0 -0
  154. package/dist/standalone/assets/command-D25Gk8Ov.js.gz +0 -0
  155. package/dist/standalone/assets/date-picker-dWT-FYDM.js +0 -1
  156. package/dist/standalone/assets/date-picker-dWT-FYDM.js.br +0 -0
  157. package/dist/standalone/assets/date-picker-dWT-FYDM.js.gz +0 -0
  158. package/dist/standalone/assets/dist-B4BiJqz7.js +0 -1
  159. package/dist/standalone/assets/dist-B4BiJqz7.js.br +0 -0
  160. package/dist/standalone/assets/dist-B4BiJqz7.js.gz +0 -0
  161. package/dist/standalone/assets/dist-CiXwD0ML.js +0 -1
  162. package/dist/standalone/assets/dist-CiXwD0ML.js.br +0 -0
  163. package/dist/standalone/assets/dist-CiXwD0ML.js.gz +0 -0
  164. package/dist/standalone/assets/dist-DPxQeZn3.js.br +0 -0
  165. package/dist/standalone/assets/dist-DPxQeZn3.js.gz +0 -0
  166. package/dist/standalone/assets/edit-page-7gYT2IT5.js +0 -1
  167. package/dist/standalone/assets/edit-page-7gYT2IT5.js.br +0 -0
  168. package/dist/standalone/assets/edit-page-7gYT2IT5.js.gz +0 -0
  169. package/dist/standalone/assets/ellipsis-BRmOlhsy.js +0 -1
  170. package/dist/standalone/assets/empty-BUKxdeYB.js +0 -1
  171. package/dist/standalone/assets/empty-BUKxdeYB.js.br +0 -0
  172. package/dist/standalone/assets/empty-BUKxdeYB.js.gz +0 -0
  173. package/dist/standalone/assets/global-search-dialog--byVFtbc.js +0 -1
  174. package/dist/standalone/assets/global-search-dialog--byVFtbc.js.br +0 -0
  175. package/dist/standalone/assets/global-search-dialog--byVFtbc.js.gz +0 -0
  176. package/dist/standalone/assets/heavy-fields-BMTsLOom.js.br +0 -0
  177. package/dist/standalone/assets/heavy-fields-BMTsLOom.js.gz +0 -0
  178. package/dist/standalone/assets/home-page-DKd5Im5n.js +0 -60
  179. package/dist/standalone/assets/home-page-DKd5Im5n.js.br +0 -0
  180. package/dist/standalone/assets/home-page-DKd5Im5n.js.gz +0 -0
  181. package/dist/standalone/assets/hooks-DOvU3a-p.js +0 -185
  182. package/dist/standalone/assets/hooks-DOvU3a-p.js.br +0 -0
  183. package/dist/standalone/assets/hooks-DOvU3a-p.js.gz +0 -0
  184. package/dist/standalone/assets/icon-registry-CNZsLqJm.js +0 -1
  185. package/dist/standalone/assets/icon-registry-CNZsLqJm.js.br +0 -0
  186. package/dist/standalone/assets/icon-registry-CNZsLqJm.js.gz +0 -0
  187. package/dist/standalone/assets/index-Cz5ntgJ_.css +0 -2
  188. package/dist/standalone/assets/index-Cz5ntgJ_.css.br +0 -0
  189. package/dist/standalone/assets/index-Cz5ntgJ_.css.gz +0 -0
  190. package/dist/standalone/assets/index-D_weBQAa.js +0 -14
  191. package/dist/standalone/assets/index-D_weBQAa.js.br +0 -0
  192. package/dist/standalone/assets/index-D_weBQAa.js.gz +0 -0
  193. package/dist/standalone/assets/json-editor--WP9_q0O.js +0 -1
  194. package/dist/standalone/assets/json-editor--WP9_q0O.js.br +0 -0
  195. package/dist/standalone/assets/json-editor--WP9_q0O.js.gz +0 -0
  196. package/dist/standalone/assets/pencil-kFOObGrY.js +0 -1
  197. package/dist/standalone/assets/property-renderer-CqISwCnB.js +0 -3
  198. package/dist/standalone/assets/property-renderer-CqISwCnB.js.br +0 -0
  199. package/dist/standalone/assets/property-renderer-CqISwCnB.js.gz +0 -0
  200. package/dist/standalone/assets/reference-tHFrlwlu.js +0 -1
  201. package/dist/standalone/assets/reference-tHFrlwlu.js.br +0 -0
  202. package/dist/standalone/assets/reference-tHFrlwlu.js.gz +0 -0
  203. package/dist/standalone/assets/revisions-button-DUOp7SdS.js +0 -1
  204. package/dist/standalone/assets/revisions-button-DUOp7SdS.js.br +0 -0
  205. package/dist/standalone/assets/revisions-button-DUOp7SdS.js.gz +0 -0
  206. package/dist/standalone/assets/schemas-ByMQmMCS.js +0 -64
  207. package/dist/standalone/assets/schemas-ByMQmMCS.js.br +0 -0
  208. package/dist/standalone/assets/schemas-ByMQmMCS.js.gz +0 -0
  209. package/dist/standalone/assets/select-CNvBRk3J.js +0 -1
  210. package/dist/standalone/assets/select-CNvBRk3J.js.br +0 -0
  211. package/dist/standalone/assets/select-CNvBRk3J.js.gz +0 -0
  212. package/dist/standalone/assets/settings-page-SE19h-6J.js +0 -1
  213. package/dist/standalone/assets/settings-page-SE19h-6J.js.br +0 -0
  214. package/dist/standalone/assets/settings-page-SE19h-6J.js.gz +0 -0
  215. package/dist/standalone/assets/show-page-Bl5uqPGq.js +0 -1
  216. package/dist/standalone/assets/show-page-Bl5uqPGq.js.br +0 -0
  217. package/dist/standalone/assets/show-page-Bl5uqPGq.js.gz +0 -0
  218. package/dist/standalone/assets/sparkles-1tT0H4n4.js +0 -1
  219. package/dist/standalone/assets/tabs-bJ8DvO_f.js +0 -1
  220. package/dist/standalone/assets/tabs-bJ8DvO_f.js.br +0 -0
  221. package/dist/standalone/assets/tabs-bJ8DvO_f.js.gz +0 -0
  222. package/dist/standalone/assets/textarea-C2w7TG3h.js +0 -1
  223. package/dist/standalone/assets/trash-2-BIJVpWxv.js +0 -1
  224. package/dist/standalone/assets/upload-DrfB-4bU.js +0 -1
  225. package/dist/standalone/assets/upload-DrfB-4bU.js.br +0 -0
  226. package/dist/standalone/assets/upload-DrfB-4bU.js.gz +0 -0
  227. package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js +0 -1
  228. package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js.br +0 -0
  229. package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js.gz +0 -0
  230. package/dist/standalone/assets/useQueries-ClcMJqXb.js.br +0 -0
  231. package/dist/standalone/assets/useQueries-ClcMJqXb.js.gz +0 -0
  232. package/dist/standalone/assets/user-directory-DxioDri9.js.br +0 -0
  233. package/dist/standalone/assets/user-directory-DxioDri9.js.gz +0 -0
  234. package/dist/standalone/assets/uuid-DLSnbsz2.js +0 -1
  235. package/dist/standalone/assets/wizard-create-page-u_8xKlPY.js +0 -1
  236. package/dist/standalone/assets/wizard-create-page-u_8xKlPY.js.br +0 -0
  237. package/dist/standalone/assets/wizard-create-page-u_8xKlPY.js.gz +0 -0
  238. package/dist/standalone/assets/zap-BxPAEPtJ.js +0 -1
  239. package/dist/standalone/assets/zod-B9XvCD94.js +0 -1
  240. package/dist/standalone/assets/zod-B9XvCD94.js.br +0 -0
  241. package/dist/standalone/assets/zod-B9XvCD94.js.gz +0 -0
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * No build-time env vars: one bundle serves any deployment.
10
10
  */
11
- import type { MetadataTranslations } from '@modern-admin/react';
11
+ import type { AdminAuthPaths, MetadataTranslations } from '@modern-admin/react';
12
12
  export interface ModernAdminBrand {
13
13
  /** Shown in the sidebar header and login screen. */
14
14
  title?: string;
@@ -81,6 +81,8 @@ export interface ModernAdminRuntimeConfig {
81
81
  * elsewhere; pass *without* a trailing slash.
82
82
  */
83
83
  authBasePath?: string;
84
+ /** Per-route auth overrides for backends whose provider uses different URLs. */
85
+ authPaths?: Partial<AdminAuthPaths>;
84
86
  /**
85
87
  * URL prefix where the SPA is mounted (e.g. `/admin`). Injected
86
88
  * automatically by `ModernAdminStaticUiMiddleware` from its `path` option
package/dist/lib/index.js CHANGED
@@ -25,7 +25,8 @@ function l({ config: e, components: s }) {
25
25
  credentials: e.credentials ?? "include",
26
26
  headers: e.headers,
27
27
  persistDemoSession: e.persistDemoSession,
28
- authBasePath: e.authBasePath
28
+ authBasePath: e.authBasePath,
29
+ authPaths: e.authPaths
29
30
  },
30
31
  children: /* @__PURE__ */ o(n, {
31
32
  loginHint: e.loginHint,
@@ -1,4 +1,4 @@
1
- import { MetadataTranslations } from '@modern-admin/react';
1
+ import { AdminAuthPaths, MetadataTranslations } from '@modern-admin/react';
2
2
  export interface ModernAdminBrand {
3
3
  /** Shown in the sidebar header and login screen. */
4
4
  title?: string;
@@ -71,6 +71,8 @@ export interface ModernAdminRuntimeConfig {
71
71
  * elsewhere; pass *without* a trailing slash.
72
72
  */
73
73
  authBasePath?: string;
74
+ /** Per-route auth overrides for backends whose provider uses different URLs. */
75
+ authPaths?: Partial<AdminAuthPaths>;
74
76
  /**
75
77
  * URL prefix where the SPA is mounted (e.g. `/admin`). Injected
76
78
  * automatically by `ModernAdminStaticUiMiddleware` from its `path` option
@@ -0,0 +1 @@
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{L as r,N as i,T as a,_ as o,b as s,g as c,h as l,n as u}from"./hooks-HtVL9mbu.js";import{t as d}from"./media-generation-form-BFB3tl5r.js";import{Ft as f,v as p}from"./index-L9ueoHX-.js";var m=e(t(),1);function h(e,t){t&&e[t.type===`error`?`error`:t.type===`warning`?`warning`:t.type===`info`?`info`:`success`]({message:t.message})}var g=n();function _({title:e,hint:t}){return(0,g.jsxs)(`div`,{role:`alert`,className:`flex items-start gap-3 rounded-lg border border-destructive/50 bg-destructive/10 p-4 dark:bg-destructive/15`,children:[(0,g.jsx)(f,{className:`mt-0.5 size-5 shrink-0 text-destructive`}),(0,g.jsxs)(`div`,{className:`space-y-1 text-sm`,children:[(0,g.jsx)(`p`,{className:`font-semibold text-destructive`,children:e}),t&&(0,g.jsx)(`p`,{className:`text-destructive/90`,children:t})]})]})}function v({resourceId:e,actionName:t,recordId:n,recordIds:f,onClose:v,onSuccess:y}){let b=a(e),{components:x}=r(),{t:S}=i(),C=p(),w=b?.actions?.find(e=>e.name===t),T=w?.component??null,E=T===`modern-admin:media-generation`?d:T?x?.get(T):void 0,D=u(e,t,{...n===void 0?{}:{recordId:n},...f===void 0?{}:{recordIds:f},enabled:!!w&&!!E}),O=s(e,n),k=c(e),A=o(e),j=l(e),M=k.isPending||A.isPending||j.isPending,N=m.useCallback(async(e={})=>{let r=n?await k.mutateAsync({recordId:n,actionName:t,payload:e}):f?.length?await j.mutateAsync({actionName:t,ids:f,payload:e}):await A.mutateAsync({actionName:t,payload:e});return h(C,r.notice),y?.(),r},[n,f,t,k,j,A,C,y]);if(!b)return(0,g.jsx)(`p`,{className:`text-muted-foreground`,children:S(`common:loading`)});if(!w)return(0,g.jsx)(_,{title:S(`action:notFound`,{action:t})});if(!T||!E)return(0,g.jsx)(_,{title:S(`action:componentMissing`,{component:T??t}),hint:S(`action:componentMissingHint`)});if(D.isError)return(0,g.jsx)(_,{title:S(`action:loadFailed`),hint:D.error instanceof Error?D.error.message:void 0});let P={action:w,resource:b,resourceId:e,...n===void 0?{}:{recordId:n},...f===void 0?{}:{recordIds:f},...O.data?.record?{record:O.data.record}:{},...D.data?.records?{records:D.data.records}:{},...D.data?{data:D.data}:{},loading:D.isLoading||!!n&&O.isLoading,invoke:N,submitting:M,close:v};return(0,g.jsx)(E,{...P})}export{h as n,v as t};
@@ -0,0 +1 @@
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{a as r,i,n as a,t as o}from"./card-DqZLPLVL.js";import{t as s}from"./arrow-left-yVCaEJJu.js";import{c}from"./dist-D81KaSgB.js";import{N as l,T as u,b as d}from"./hooks-HtVL9mbu.js";import{t as f}from"./action-component-host-0e0dM9L5.js";import{a as p,h as m,l as h,u as g}from"./index-L9ueoHX-.js";var _=e(t(),1),v=n();function y({resourceId:e,actionName:t,recordId:n,recordIds:y}){let b=u(e),x=d(e,n),{t:S}=l(),C=m(),w=b?.actions?.find(e=>e.name===t),T=w?p(w):t,E=_.useCallback(()=>{C(n?{name:`show`,resourceId:e,recordId:n}:{name:`list`,resourceId:e})},[C,e,n]),D=x.data?.record?.title||n;return(0,v.jsxs)(`div`,{className:`space-y-2 sm:space-y-4`,children:[(0,v.jsx)(h,{items:[g(S(`common:home`)),{label:b?.name??e,to:{name:`list`,resourceId:e}},...n?[{label:D??n,to:{name:`show`,resourceId:e,recordId:n}}]:[],{label:T}]}),(0,v.jsxs)(o,{children:[(0,v.jsxs)(i,{className:`flex flex-row items-center justify-between gap-3`,children:[(0,v.jsx)(r,{className:`truncate`,children:T}),(0,v.jsxs)(c,{variant:`outline`,size:`sm`,onClick:E,className:`shrink-0`,children:[(0,v.jsx)(s,{className:`size-4`}),(0,v.jsx)(`span`,{className:`hidden sm:inline`,children:S(`common:back`)})]})]}),(0,v.jsx)(a,{children:(0,v.jsx)(f,{resourceId:e,actionName:t,...n===void 0?{}:{recordId:n},...y===void 0?{}:{recordIds:y},onClose:E})})]})]})}export{y as ResourceActionPage};
@@ -0,0 +1 @@
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{n as r,t as ee}from"./card-DqZLPLVL.js";import{t as i}from"./bot-CuDPD_ZU.js";import{n as a,t as te}from"./send-Bzb_4uMT.js";import{t as ne}from"./plus-D7PHzena.js";import{t as o}from"./x-c-gfVPJa.js";import{c as s}from"./dist-D81KaSgB.js";import{n as c}from"./checkbox-XhVTY33A.js";import{I as l,J as u,N as d,R as f,d as p,z as m}from"./hooks-HtVL9mbu.js";import{t as h}from"./badge-DcnAfye2.js";import{t as re}from"./richtext-render-DaiNQPjZ.js";import{x as g}from"./schemas-cLTIShT8.js";import{n as ie}from"./media-generation-form-BFB3tl5r.js";import{n as ae}from"./use-dashboard-charts-BTNU1_Dc.js";import{$ as oe,A as se,J as ce,K as le,M as ue,N as de,P as fe,W as pe,X as me,Y as he,_t as ge,f as _e,h as ve,ht as ye,j as be,k as xe,m as Se,nt as Ce,q as _,st as v,tt as y,v as b,wt as x}from"./index-L9ueoHX-.js";var S=e(t(),1),C=n(),w=()=>g(),T=5,E=(e,t)=>{let n=(Array.isArray(e.input?.messages)?e.input.messages:[]).map((t,n)=>({id:`${e.id}-input-${n}`,role:t.role,content:t.content}));if(e.output){let r=String(e.output.text??``).trim();n.push({id:`task-${e.id}`,role:`assistant`,content:r||t,citations:Array.isArray(e.output.citations)?e.output.citations:void 0})}return n};function D(){let e=l(),t=u(),n=b(),g=ve(),D=_e(),O=Se(),{locale:k,t:A}=d(),[j,M]=S.useState(!1),[N,P]=S.useState(``),[F,I]=S.useState([]),[L,R]=S.useState(()=>w()),[z,B]=S.useState(null),[V,H]=S.useState([]),U=p().aiAssistant,W=m({queryKey:[`modern-admin`,`ai-assistant`,`settings`],queryFn:()=>e.getAiAssistantSettings(),enabled:U}),G=f({mutationFn:async t=>{let n=typeof window<`u`?window.location.pathname:void 0;return n&&O&&(n===O?n=`/`:n.startsWith(`${O}/`)&&(n=n.slice(O.length))),e.sendAiAssistantChat(t.messages,t.requestId,k,t.conversationId,n?{pathname:n}:void 0)},onSuccess:e=>{B(e.taskId),t.invalidateQueries({queryKey:[`modern-admin`,`ai-assistant`,`chats`]})},onError:e=>{n.error({message:e instanceof Error?e.message:String(e)})}}),K=m({queryKey:[`modern-admin`,`ai-assistant`,`chats`],queryFn:()=>e.listAiAssistantChats(),enabled:U&&j&&W.data?.configured===!0}),q=m({queryKey:[`modern-admin`,`ai-assistant`,`task`,z],queryFn:()=>e.getAiAssistantTask(z),enabled:!!z,refetchInterval:e=>{let t=e.state.data?.status;return t===`pending`||t===`running`?1200:!1}});S.useEffect(()=>{let e=q.data;if(!(!e||!z)){if(e.status===`succeeded`&&e.output!=null){I(t=>{if(t.some(t=>t.id===`task-${e.id}`))return t;let n=String(e.output?.text??``).trim();return[...t,{id:`task-${e.id}`,role:`assistant`,content:n||A(`aiAssistant:noText`),citations:Array.isArray(e.output?.citations)?e.output.citations:void 0}]}),B(null),t.invalidateQueries({queryKey:[`modern-admin`,`ai-assistant`,`chats`]});let n=Array.isArray(e.output?.uiActions)?e.output.uiActions:[];for(let e of n){if(e.kind===`refresh`&&e.target===`dashboard`){ae();continue}if(e.kind===`navigate`){M(!1),g(e.route);continue}e.kind===`open-media-generation`&&(M(!1),D.open({className:`sm:max-w-4xl`,render:()=>(0,C.jsxs)(`div`,{className:`space-y-4`,children:[(0,C.jsxs)(y,{children:[(0,C.jsx)(Ce,{children:A(`mediaGeneration:studio.title`)}),(0,C.jsx)(oe,{children:A(`mediaGeneration:studio.description`)})]}),(0,C.jsx)(ie,{initialPrompt:e.prompt,mediaTypes:[e.mediaType??`image`]})]})}))}return}(e.status===`failed`||e.status===`cancelled`)&&(n.error({message:e.error??A(`aiAssistant:taskFailed`)}),B(null))}},[z,D,g,n,t,q.data,A]);let J=S.useCallback(e=>{let t={id:w(),role:`user`,content:e},n=[...F,t];I(n),G.mutate({requestId:t.id,conversationId:L,messages:n.map(e=>({role:e.role,content:e.content}))})},[G,L,F]),we=S.useCallback(()=>{R(w()),I([]),P(``),H([]),B(null)},[]),Te=S.useCallback(async t=>{try{let n=await e.getAiAssistantTask(t.taskId);R(t.conversationId),I(E(n,A(`aiAssistant:noText`))),H([]),P(``),B(n.status===`pending`||n.status===`running`?n.id:null)}catch(e){n.error({message:e instanceof Error?e.message:String(e)})}},[e,n,A]);if(S.useEffect(()=>{if(z!==null||G.isPending)return;let e=V[0];e&&(H(e=>e.slice(1)),J(e.content))},[z,G.isPending,V,J]),!U||W.isLoading||W.error||!W.data?.enabled||!W.data.canChat)return null;let Y=G.isPending||z!=null,X=V.length>=T,Z=()=>{let e=N.trim();if(e){if(Y){if(X)return;H(t=>[...t,{id:w(),content:e}]),P(``);return}P(``),J(e)}},Q=W.data.configured,Ee=Y||q.data?.status===`running`||q.data?.status===`pending`,$=typeof q.data?.progress==`number`?q.data.progress:null,De=N.trim().length===0||Y&&X;return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`div`,{className:`fixed bottom-4 right-4 z-40`,children:(0,C.jsxs)(s,{onClick:()=>M(!0),"aria-label":A(`aiAssistant:fab.label`),className:`group h-10 min-w-10 max-w-10 rounded-full pl-3 pr-3 shadow-lg justify-end gap-0 overflow-hidden opacity-70 hover:opacity-100 transition-[max-width,padding-left,opacity] duration-200 ease-in-out hover:max-w-36 hover:pl-4`,children:[(0,C.jsx)(`span`,{className:`max-w-0 overflow-hidden whitespace-nowrap text-sm font-medium transition-[max-width,padding-right] duration-200 ease-in-out group-hover:max-w-[5rem] group-hover:pr-2`,children:A(`aiAssistant:fab.short`)}),(0,C.jsx)(a,{className:`size-4 shrink-0`})]})}),(0,C.jsx)(xe,{open:j,onOpenChange:M,children:(0,C.jsxs)(be,{hideCloseButton:!0,className:`flex w-full flex-col gap-0 sm:max-w-xl`,children:[(0,C.jsx)(de,{className:`border-b border-border pb-4`,children:(0,C.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,C.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,C.jsxs)(fe,{className:`flex items-center gap-2`,children:[(0,C.jsx)(i,{className:`size-5`}),A(`aiAssistant:title`)]}),(0,C.jsx)(ue,{children:A(`aiAssistant:description`)})]}),(0,C.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5`,children:[Q&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(pe,{children:[(0,C.jsx)(me,{asChild:!0,children:(0,C.jsx)(s,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":A(`aiAssistant:history`),children:(0,C.jsx)(ge,{className:`size-4`})})}),(0,C.jsxs)(le,{align:`end`,className:`w-72`,children:[(0,C.jsx)(ce,{children:A(`aiAssistant:history`)}),(0,C.jsx)(he,{}),K.isLoading&&(0,C.jsx)(_,{disabled:!0,children:A(`common:loading`)}),!K.isLoading&&(K.data?.length??0)===0&&(0,C.jsx)(_,{disabled:!0,children:A(`aiAssistant:history.empty`)}),K.data?.map(e=>(0,C.jsxs)(_,{className:`flex-col items-start gap-0 py-2`,onSelect:()=>{Te(e)},children:[(0,C.jsx)(`span`,{className:`line-clamp-1 w-full text-sm font-medium`,children:e.title}),(0,C.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:new Intl.DateTimeFormat(k,{dateStyle:`short`,timeStyle:`short`}).format(new Date(e.updatedAt))})]},e.conversationId))]})]}),(0,C.jsx)(s,{type:`button`,variant:`ghost`,size:`icon`,onClick:we,"aria-label":A(`aiAssistant:newChat`),children:(0,C.jsx)(ne,{className:`size-4`})})]}),(0,C.jsx)(se,{asChild:!0,children:(0,C.jsx)(s,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":A(`common:close`),children:(0,C.jsx)(o,{className:`size-4`})})})]})]})}),Q?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(v,{className:`flex-1 px-4 py-4`,children:(0,C.jsxs)(`div`,{className:`space-y-3`,children:[F.length===0&&(0,C.jsx)(ee,{children:(0,C.jsxs)(r,{className:`space-y-2 p-4 text-sm text-muted-foreground`,children:[(0,C.jsx)(`div`,{className:`font-medium text-foreground`,children:A(`aiAssistant:tryAsking`)}),(0,C.jsxs)(`div`,{children:[`- `,A(`aiAssistant:tryAsking.example1`)]}),(0,C.jsxs)(`div`,{children:[`- `,A(`aiAssistant:tryAsking.example2`)]}),(0,C.jsxs)(`div`,{children:[`- `,A(`aiAssistant:tryAsking.example3`)]})]})}),F.map(e=>(0,C.jsx)(`div`,{className:e.role===`user`?`flex justify-end`:`flex justify-start`,children:(0,C.jsxs)(`div`,{className:e.role===`user`?`max-w-[85%] rounded-2xl bg-primary px-4 py-3 text-sm text-primary-foreground`:`max-w-[85%] rounded-2xl border border-border bg-card px-4 py-3 text-sm`,children:[e.role===`assistant`?(0,C.jsx)(re,{value:e.content,format:`markdown`,className:`text-sm [&_pre]:overflow-x-auto [&_pre]:text-xs`}):(0,C.jsx)(`div`,{className:`whitespace-pre-wrap`,children:e.content}),e.citations&&e.citations.length>0&&(0,C.jsx)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:e.citations.slice(0,6).map((e,t)=>{let n=`${e.resourceId}${e.recordId?`#${e.recordId}`:``}`,r=`${e.resourceId}-${e.recordId??`resource`}-${t}`;return e.recordId?(0,C.jsx)(`button`,{type:`button`,className:`cursor-pointer`,onClick:()=>{M(!1),g({name:`show`,resourceId:e.resourceId,recordId:e.recordId})},children:(0,C.jsx)(h,{variant:`outline`,children:n})},r):(0,C.jsx)(`button`,{type:`button`,className:`cursor-pointer`,onClick:()=>{M(!1),g({name:`list`,resourceId:e.resourceId})},children:(0,C.jsx)(h,{variant:`outline`,children:n})},r)})})]})},e.id)),Ee&&(0,C.jsx)(`div`,{className:`flex justify-start`,children:(0,C.jsxs)(`div`,{className:`inline-flex items-center gap-2 rounded-2xl border border-border bg-card px-4 py-3 text-sm text-muted-foreground`,children:[(0,C.jsx)(x,{className:`size-4 animate-spin`}),$==null?A(`aiAssistant:thinking`):A(`aiAssistant:thinkingProgress`,{progress:$})]})})]})}),(0,C.jsxs)(`div`,{className:`border-t border-border bg-background/95 px-3 py-2`,children:[V.length>0&&(0,C.jsx)(`div`,{className:`mb-2 space-y-1`,children:V.map((e,t)=>(0,C.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md bg-muted/50 px-2 py-1 text-sm`,children:[(0,C.jsxs)(`span`,{className:`shrink-0 tabular-nums text-xs text-muted-foreground`,children:[`(`,t+1,`)`]}),(0,C.jsx)(`span`,{className:`flex-1 truncate`,title:e.content,children:e.content}),(0,C.jsx)(s,{type:`button`,variant:`ghost`,size:`icon`,className:`size-6 shrink-0`,onClick:()=>H(t=>t.filter(t=>t.id!==e.id)),"aria-label":A(`aiAssistant:queue.cancel`),children:(0,C.jsx)(o,{className:`size-3.5`})})]},e.id))}),(0,C.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),Z()},children:[(0,C.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,C.jsx)(c,{value:N,onChange:e=>P(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),Z())},rows:1,placeholder:A(`aiAssistant:input.placeholder`),"aria-label":A(`aiAssistant:input.placeholder`),className:`flex-1 max-h-[10rem] min-h-0 resize-none border-0 bg-transparent px-1 py-2 text-sm shadow-none outline-none [field-sizing:content] focus-visible:ring-0 focus-visible:ring-offset-0`}),(0,C.jsx)(s,{type:`submit`,disabled:De,"aria-label":A(`aiAssistant:send`),className:`size-8 shrink-0 rounded-full p-0`,children:(0,C.jsx)(te,{className:`size-4`})})]}),(0,C.jsx)(`p`,{className:`px-1 pb-1 text-xs text-muted-foreground`,children:A(`aiAssistant:input.hint`)})]})]})]}):(0,C.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-4 px-4 text-center`,children:[(0,C.jsxs)(`div`,{className:`space-y-2`,children:[(0,C.jsx)(`div`,{className:`text-lg font-semibold`,children:A(`aiAssistant:notConfigured.title`)}),(0,C.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:A(`aiAssistant:notConfigured.description`)})]}),W.data.canManage&&(0,C.jsxs)(s,{variant:`outline`,onClick:()=>{M(!1),g({name:`settings`,section:`ai-assistant`})},children:[(0,C.jsx)(ye,{className:`size-4`}),A(`aiAssistant:notConfigured.openSettings`)]})]})]})})]})}export{D as AiAssistantWidget};
@@ -0,0 +1 @@
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r}from"./floating-layer-BcTp2AMB.js";import{a as i,i as a,n as o,t as s}from"./card-DqZLPLVL.js";import{n as c,r as l,t as u}from"./key-BzJFbNbz.js";import{t as d}from"./chevron-up-B4e3jYvH.js";import{t as f}from"./external-link-DPtYlrBF.js";import{t as p}from"./file-text-MQF--yeB.js";import{t as m}from"./key-round-oSqmVdkQ.js";import{t as h}from"./pencil-BbAPAQYz.js";import{t as g}from"./trash-2-CaQpRZCu.js";import{t as _}from"./x-c-gfVPJa.js";import{a as v,c as y,i as b,l as x,n as S,o as C,r as w,s as T,t as E}from"./calendar-BaUIrunI.js";import{c as D}from"./dist-D81KaSgB.js";import{E as O,N as k,T as A,b as j,p as M,x as N}from"./hooks-HtVL9mbu.js";import{a as P,i as F,n as I,o as L,t as R}from"./select-CwGlDDSq.js";import{a as ee,i as te,n as ne}from"./useQueries-CmYB_BNM.js";import{a as z,i as re,n as ie,r as ae,t as B}from"./user-directory-Xtwqc7uj.js";import{Rt as oe,St as se,dt as V,ot as H,p as U,wt as ce}from"./index-L9ueoHX-.js";var W=e(t(),1),G=n(),K=`yyyy-MM-dd`,q=`MMM d, yyyy`;function J(e){if(!e)return;let t=e.length<=10?b(e,K,new Date):S(e);return T(t)?t:void 0}function Y({from:e,to:t,onChange:n,disabled:i,className:a,labels:o={},locale:s}){let c=o.placeholder??`Select date range`,u=o.apply??`Apply`,d=o.clear??`Clear`,[f,p]=W.useState(!1),[m,h]=W.useState(()=>{let n=J(e),r=J(t);return n&&r?{from:n,to:r}:void 0});W.useEffect(()=>{let n=J(e),r=J(t);h(n??r?{from:n,to:r}:void 0)},[e,t]);let[g,b]=W.useState(()=>typeof window<`u`&&window.innerWidth>=640?2:1);W.useEffect(()=>{let e=window.matchMedia(`(min-width: 640px)`),t=e=>b(e.matches?2:1);return b(e.matches?2:1),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let[x,S]=W.useState(()=>{let t=J(e);return C(t??new Date)}),[T,O]=W.useState(()=>{let n=J(e),r=J(t),i=C(n??new Date);return r&&!w(i,r)?C(r):y(i,1)}),k=n=>{if(n){let n=J(e),r=J(t);h(n&&r?{from:n,to:r}:void 0);let i=C(n??new Date),a=r&&!w(i,r)?C(r):y(i,1);S(i),O(a)}else{let n=J(e),r=J(t);h(n??r?{from:n,to:r}:void 0)}p(n)},A=e=>{S(e),!w(e,T)&&e>T&&O(y(e,1))},j=e=>{O(e),!w(e,x)&&e<x&&S(y(e,-1))},M=e=>{h(e)},N=()=>{m?.from&&n(v(m.from,K),m.to?v(m.to,K):``),p(!1)},P=()=>{h(void 0),n(``,``),p(!1)},F=e=>{e.stopPropagation(),h(void 0),n(``,``)},I=J(e),L=J(t),R=!!(e||t),z=R?[I?v(I,q,{locale:s}):`…`,L?v(L,q,{locale:s}):`…`].join(` – `):null;return(0,G.jsxs)(ne,{open:f,onOpenChange:k,children:[(0,G.jsx)(ee,{asChild:!0,children:(0,G.jsxs)(D,{type:`button`,variant:`outline`,disabled:i,className:r(`h-9 w-full justify-start gap-2 px-3 font-normal`,!R&&`text-muted-foreground`,a),children:[(0,G.jsx)(l,{className:`size-4 shrink-0 opacity-60`}),(0,G.jsx)(`span`,{className:`flex-1 truncate text-left text-sm`,children:z??c}),R&&(0,G.jsx)(`span`,{role:`button`,tabIndex:0,"aria-label":d,onClick:F,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&F(e)},className:`ml-1 rounded-sm p-0.5 opacity-50 hover:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,children:(0,G.jsx)(_,{className:`size-3.5`})})]})}),(0,G.jsxs)(te,{className:`w-auto p-0`,align:`start`,children:[g===2?(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row`,children:[(0,G.jsx)(E,{mode:`range`,locale:s,selected:m,onSelect:M,numberOfMonths:1,month:x,onMonthChange:A,endMonth:T,autoFocus:!0}),(0,G.jsx)(E,{mode:`range`,locale:s,selected:m,onSelect:M,numberOfMonths:1,month:T,onMonthChange:j,startMonth:x})]}):(0,G.jsx)(E,{mode:`range`,locale:s,selected:m,onSelect:M,numberOfMonths:1,defaultMonth:m?.from??m?.to??void 0,autoFocus:!0}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between border-t border-border px-3 py-2`,children:[(0,G.jsx)(D,{variant:`ghost`,size:`sm`,onClick:P,children:d}),(0,G.jsx)(D,{size:`sm`,onClick:N,disabled:!m?.from,children:u})]})]})]})}Y.displayName=`DateRangeInput`;var X=`__all__`,le=[`new`,`edit`,`delete`,`bulkDelete`,`login`,`apiKey.create`,`apiKey.update`,`apiKey.delete`],Z={__auth__:`audit:virtualResource.auth`,__api_keys__:`audit:virtualResource.apiKeys`},ue={Icon:p,iconClass:`text-muted-foreground`,bgClass:`bg-muted`,titleKey:``},Q={new:{Icon:c,iconClass:`text-blue-600 dark:text-blue-300`,bgClass:`bg-blue-100 dark:bg-blue-950/40`,titleKey:`audit:action.new`},edit:{Icon:h,iconClass:`text-emerald-600 dark:text-emerald-300`,bgClass:`bg-emerald-100 dark:bg-emerald-950/40`,titleKey:`audit:action.edit`},delete:{Icon:g,iconClass:`text-rose-600 dark:text-rose-300`,bgClass:`bg-rose-100 dark:bg-rose-950/40`,titleKey:`audit:action.delete`},bulkDelete:{Icon:g,iconClass:`text-rose-600 dark:text-rose-300`,bgClass:`bg-rose-100 dark:bg-rose-950/40`,titleKey:`audit:action.bulkDelete`},login:{Icon:se,iconClass:`text-violet-600 dark:text-violet-300`,bgClass:`bg-violet-100 dark:bg-violet-950/40`,titleKey:`audit:action.login`},"apiKey.create":{Icon:u,iconClass:`text-amber-600 dark:text-amber-300`,bgClass:`bg-amber-100 dark:bg-amber-950/40`,titleKey:`audit:action.apiKeyCreate`},"apiKey.update":{Icon:m,iconClass:`text-amber-600 dark:text-amber-300`,bgClass:`bg-amber-100 dark:bg-amber-950/40`,titleKey:`audit:action.apiKeyUpdate`},"apiKey.delete":{Icon:g,iconClass:`text-rose-600 dark:text-rose-300`,bgClass:`bg-rose-100 dark:bg-rose-950/40`,titleKey:`audit:action.apiKeyDelete`}};function de(e){let t=W.useMemo(()=>new Intl.RelativeTimeFormat(e,{numeric:`auto`}),[e]),n=W.useMemo(()=>new Intl.DateTimeFormat(e,{dateStyle:`medium`,timeStyle:`short`}),[e]);return W.useCallback((e,r)=>{let i=Math.round((r-e)/1e3);return i<45?t.format(-Math.max(i,0),`second`):i<3600?t.format(-Math.round(i/60),`minute`):i<86400?t.format(-Math.round(i/3600),`hour`):i<604800?t.format(-Math.round(i/86400),`day`):n.format(new Date(e))},[n,t])}var fe=e=>{let t=e.split(/\s+|[._@-]/).filter(Boolean);return t.length===0?`?`:t.length===1?t[0].slice(0,2).toUpperCase():(t[0][0]+t[1][0]).toUpperCase()},$=25;function pe(){let{t:e,locale:t}=k(),n=O(),[r,c]=W.useState({}),l=M(r,$),u=W.useMemo(()=>(l.data?.pages??[]).flatMap(e=>e.events.slice(0,$)),[l.data]),d=W.useMemo(()=>Array.from(new Set(u.map(e=>e.userId).filter(e=>!!e))),[u]),f=ie(d),p=W.useMemo(()=>{let e={};for(let t of n)e[t.id]=t;return e},[n]),m=n.some(e=>e.id===B),h=de(t),g=W.useCallback(e=>new Intl.DateTimeFormat(t,{dateStyle:`medium`,timeStyle:`short`}).format(new Date(e)),[t]),_=W.useMemo(()=>Date.now(),[u]),v=W.useRef(null),{hasNextPage:y,isFetchingNextPage:b,fetchNextPage:S}=l;W.useEffect(()=>{let e=v.current;if(!e)return;let t=new IntersectionObserver(e=>{e[0]?.isIntersecting&&y&&!b&&S()},{rootMargin:`200px`});return t.observe(e),()=>t.disconnect()},[y,b,S]);let C=e=>{c(t=>({...t,...e}))};return(0,G.jsxs)(`div`,{className:`space-y-2 sm:space-y-4`,children:[(0,G.jsxs)(s,{children:[(0,G.jsx)(a,{children:(0,G.jsx)(i,{children:e(`audit:title`)})}),(0,G.jsxs)(o,{className:`grid gap-3 sm:grid-cols-2 md:grid-cols-4`,children:[(0,G.jsxs)(R,{value:r.resourceId??X,onValueChange:e=>C({resourceId:e===X?void 0:e}),children:[(0,G.jsx)(P,{"aria-label":e(`audit:resource`),children:(0,G.jsx)(L,{})}),(0,G.jsxs)(I,{children:[(0,G.jsx)(F,{value:X,children:e(`audit:allResources`)}),Object.entries(Z).map(([t,n])=>(0,G.jsx)(F,{value:t,children:e(n)},t)),n.map(e=>(0,G.jsxs)(F,{value:e.id,children:[e.name,e.name!==e.id&&(0,G.jsxs)(`span`,{className:`ml-1.5 text-xs text-muted-foreground`,children:[`(`,e.id,`)`]})]},e.id))]})]}),(0,G.jsxs)(R,{value:r.actions?.[0]??X,onValueChange:e=>C({actions:e===X?void 0:[e]}),children:[(0,G.jsx)(P,{"aria-label":e(`audit:action`),children:(0,G.jsx)(L,{})}),(0,G.jsxs)(I,{children:[(0,G.jsx)(F,{value:X,children:e(`audit:allActions`)}),le.map(t=>{let n=Q[t];return(0,G.jsx)(F,{value:t,children:n?.titleKey?e(n.titleKey):t},t)})]})]}),(0,G.jsx)(V,{value:r.recordId??``,placeholder:e(`audit:recordId`),onChange:e=>C({recordId:e.target.value||void 0})}),(0,G.jsx)(V,{value:r.userId??``,placeholder:e(`audit:userId`),onChange:e=>C({userId:e.target.value||void 0})}),(0,G.jsx)(Y,{from:r.from,to:r.to,onChange:(e,t)=>C({from:e||void 0,to:t||void 0}),className:`sm:col-span-2 md:col-span-4`,locale:x(t),labels:{placeholder:e(`audit:dateRangePlaceholder`),apply:e(`common:apply`),clear:e(`common:clear`)}})]})]}),(0,G.jsx)(s,{children:(0,G.jsxs)(o,{children:[l.isLoading?(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(H,{className:`h-20 w-full`}),(0,G.jsx)(H,{className:`h-20 w-full`}),(0,G.jsx)(H,{className:`h-20 w-full`})]}):l.isError?(0,G.jsx)(`div`,{className:`rounded-md border border-destructive/50 bg-destructive/10 p-4 text-sm text-destructive`,children:e(`audit:loadError`)}):u.length===0?(0,G.jsx)(`div`,{className:`rounded-md border border-dashed border-border p-6 text-center text-sm text-muted-foreground`,children:e(`audit:noEvents`)}):(0,G.jsx)(`ol`,{className:`space-y-3`,children:u.map((e,t)=>(0,G.jsx)(me,{entry:e,resource:p[e.resourceId],user:e.userId?f.get(e.userId)??null:null,userResourceId:m?B:void 0,now:_,formatRelative:h,formatAbsolute:g},e.id??`${e.at}:${t}`))}),(0,G.jsx)(`div`,{ref:v,className:`h-1`,"aria-hidden":!0}),l.isFetchingNextPage&&(0,G.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,G.jsx)(ce,{className:`size-5 animate-spin text-muted-foreground`})})]})})]})}function me({entry:e,resource:t,user:n,userResourceId:i,now:a,formatRelative:o,formatAbsolute:s}){let{t:c}=k(),[l,u]=W.useState(!1),p=Q[e.action]??ue,m=p.Icon,h=p.titleKey?c(p.titleKey):e.action,g=e.userId??c(`history:unknownUser`),_=ae(n,g),v=c(`audit:by`,{user:`\0`}).split(`\0`),y=v[0]??``,b=v[1]??``,x=Z[e.resourceId],S=x?c(x):t?.name??e.resourceId,C=e.action===`edit`&&!!e.recordId;return(0,G.jsx)(`li`,{className:`rounded-lg border border-border bg-card p-4 shadow-sm`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(`span`,{className:r(`flex size-10 shrink-0 items-center justify-center rounded-full`,p.bgClass),children:(0,G.jsx)(m,{className:r(`size-5`,p.iconClass)})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`p`,{className:`truncate text-sm font-semibold`,children:h}),(0,G.jsxs)(`div`,{className:`mt-0.5 flex flex-wrap items-center gap-x-2 gap-y-0.5 text-xs text-muted-foreground`,children:[(0,G.jsx)(`span`,{className:`font-medium`,children:S}),e.recordId&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{"aria-hidden":!0,children:`·`}),t?(0,G.jsxs)(U,{to:{name:`show`,resourceId:e.resourceId,recordId:e.recordId},className:`inline-flex items-center gap-1 rounded bg-muted px-1.5 py-0.5 text-[11px] text-foreground hover:underline`,title:e.recordId,children:[(0,G.jsx)(`span`,{className:`truncate max-w-[12rem]`,children:e.recordTitle??`#${e.recordId}`}),(0,G.jsx)(f,{className:`size-3 shrink-0`})]}):e.recordTitle?(0,G.jsx)(`span`,{className:`truncate max-w-[12rem] rounded bg-muted px-1.5 py-0.5 text-[11px] text-foreground`,title:e.recordId,children:e.recordTitle}):null]}),!e.recordId&&e.recordIds?.length?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{"aria-hidden":!0,children:`·`}),(0,G.jsxs)(`span`,{children:[e.recordIds.length,` `,c(`audit:records`)]})]}):null]}),(0,G.jsxs)(`p`,{className:`mt-1 flex items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,G.jsx)(`span`,{"aria-hidden":!0,className:`inline-flex size-5 shrink-0 items-center justify-center rounded-full bg-primary/10 text-[10px] font-semibold text-primary`,children:fe(_)}),(0,G.jsxs)(`span`,{className:`truncate`,children:[y,i&&e.userId?(0,G.jsx)(U,{to:{name:`show`,resourceId:i,recordId:e.userId},className:`font-medium text-foreground hover:underline`,children:_}):_,b]})]})]}),(0,G.jsx)(`time`,{className:`shrink-0 text-xs text-muted-foreground`,dateTime:new Date(e.at).toISOString(),title:s(e.at),children:o(e.at,a)})]}),C&&(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsxs)(D,{variant:`ghost`,size:`sm`,className:`-ml-2 h-7 px-2 text-xs`,onClick:()=>u(e=>!e),"aria-expanded":l,children:[l?(0,G.jsx)(d,{className:`size-3.5`}):(0,G.jsx)(oe,{className:`size-3.5`}),c(l?`audit:hideChanges`:`audit:viewChanges`)]}),l&&(0,G.jsx)(`div`,{className:`mt-2`,children:(0,G.jsx)(he,{resourceId:e.resourceId,recordId:e.recordId,atMs:e.at})})]})]})]})})}function he({resourceId:e,recordId:t,atMs:n}){let{t:r}=k(),i=A(e),a=N(e,t,{limit:50}),o=j(e,t),s=W.useMemo(()=>{let e={};for(let t of i?.properties??[])e[t.path]=t.label;return e},[i]);if(a.isLoading)return(0,G.jsx)(H,{className:`h-16 w-full`});if(a.isError)return(0,G.jsx)(`div`,{className:`rounded-md border border-destructive/50 bg-destructive/10 p-3 text-xs text-destructive`,children:r(`audit:loadDiffError`)});let c=_e(a.data?.revisions??[],n);if(!c)return(0,G.jsx)(`div`,{className:`rounded-md border border-dashed border-border p-3 text-xs text-muted-foreground`,children:r(`audit:noDiff`)});let l=re(c.snapshotBefore??{},c.snapshot).map(e=>({...e,label:s[e.path]})),u=o.data?.record?.title;return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[u&&u!==t&&(0,G.jsx)(`p`,{className:`truncate text-xs text-muted-foreground`,title:u,children:u}),(0,G.jsx)(z,{fields:l,labels:{added:r(`diff:added`),changed:r(`diff:changed`),removed:r(`diff:removed`),before:r(`diff:before`),after:r(`diff:after`),noChanges:r(`diff:noChanges`)}})]})}var ge=6e4,_e=(e,t)=>{let n=null,r=1/0;for(let i of e){let e=new Date(i.createdAt).getTime();if(Number.isNaN(e))continue;let a=Math.abs(e-t);a<r&&a<=ge&&(r=a,n=i)}return n};export{pe as AuditLogPage};
@@ -1 +1 @@
1
- import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r}from"./floating-layer-BcTp2AMB.js";import{c as i}from"./dist-DPxQeZn3.js";var a=e(t(),1),o=n(),s=i(`inline-flex items-center rounded-full border border-border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`,{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground hover:bg-primary/80`,secondary:`border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80`,destructive:`border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80`,outline:`text-foreground`,success:`border-transparent bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-300`}},defaultVariants:{variant:`default`}}),c=a.forwardRef(({className:e,variant:t,...n},i)=>(0,o.jsx)(`span`,{ref:i,className:r(s({variant:t}),e),...n}));c.displayName=`Badge`;export{c as t};
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r}from"./floating-layer-BcTp2AMB.js";import{u as i}from"./dist-D81KaSgB.js";var a=e(t(),1),o=n(),s=i(`inline-flex items-center rounded-full border border-border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`,{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground hover:bg-primary/80`,secondary:`border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80`,destructive:`border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80`,outline:`text-foreground`,success:`border-transparent bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-300`}},defaultVariants:{variant:`default`}}),c=a.forwardRef(({className:e,variant:t,...n},i)=>(0,o.jsx)(`span`,{ref:i,className:r(s({variant:t}),e),...n}));c.displayName=`Badge`;export{c as t};
@@ -0,0 +1 @@
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{a as r,i,n as a,r as o,t as s}from"./card-DqZLPLVL.js";import{t as c}from"./rotate-ccw-AB1VcvbK.js";import{t as l}from"./trash-2-CaQpRZCu.js";import{c as u}from"./dist-D81KaSgB.js";import{E as d,N as f,m as p,o as m,w as h}from"./hooks-HtVL9mbu.js";import{a as g,i as _,n as v,o as y,r as b,t as x}from"./select-CwGlDDSq.js";import{t as S}from"./badge-DcnAfye2.js";import{a as C,i as w,n as T,o as E,r as D,t as O}from"./table-RI-lM4fw.js";import{ot as k,v as A}from"./index-L9ueoHX-.js";var j=e(t(),1),M=n(),N=e=>e.reduce((e,t)=>e+t,0);function P(){let{t:e,locale:t}=f(),n=A(),P=d(),I=m(),L=p(),R=h(),[z,B]=j.useState(P[0]?.id??``);j.useEffect(()=>{!z&&P[0]&&B(P[0].id)},[z,P]);let V=I.data?.entries??[],H=N(V.map(e=>e.hits)),U=H+N(V.map(e=>e.misses)),W=U>0?H/U*100:0,G=N(V.map(e=>e.computes)),K=N(V.map(e=>e.computeMs)),q=N(V.map(e=>e.readErrors+e.writeErrors+e.invalidationErrors)),J=j.useMemo(()=>new Intl.NumberFormat(t),[t]);return I.isLoading?(0,M.jsxs)(`div`,{className:`flex flex-col gap-3 pb-4 sm:gap-4 sm:pb-6`,children:[(0,M.jsx)(k,{className:`h-24 w-full`}),(0,M.jsx)(k,{className:`h-72 w-full`})]}):I.isError?(0,M.jsxs)(s,{children:[(0,M.jsx)(i,{children:(0,M.jsx)(r,{children:e(`cache:load.error`)})}),(0,M.jsx)(a,{children:(0,M.jsxs)(u,{variant:`outline`,onClick:()=>void I.refetch(),children:[(0,M.jsx)(c,{"data-icon":`inline-start`}),e(`cache:load.retry`)]})})]}):(0,M.jsxs)(`div`,{className:`flex flex-col gap-3 pb-4 sm:gap-4 sm:pb-6`,children:[(0,M.jsxs)(s,{children:[(0,M.jsxs)(i,{className:`sm:flex-row sm:items-start sm:justify-between`,children:[(0,M.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,M.jsx)(r,{children:e(`cache:title`)}),(0,M.jsx)(o,{children:e(`cache:description`)})]}),(0,M.jsxs)(u,{variant:`outline`,size:`sm`,disabled:R.isPending,onClick:()=>{n.promise(R.mutateAsync(),{loading:{key:`cache:reset.loading`},success:{key:`cache:reset.success`},error:{key:`cache:reset.error`}})},children:[(0,M.jsx)(c,{"data-icon":`inline-start`}),e(`cache:reset.action`)]})]}),(0,M.jsxs)(a,{className:`grid grid-cols-2 gap-3 lg:grid-cols-4`,children:[(0,M.jsx)(F,{label:e(`cache:metric.hitRate`),value:`${W.toFixed(1)}%`}),(0,M.jsx)(F,{label:e(`cache:metric.requests`),value:J.format(U)}),(0,M.jsx)(F,{label:e(`cache:metric.avgCompute`),value:G>0?e(`cache:unit.ms`).replace(`{value}`,J.format(Math.round(K/G))):`—`}),(0,M.jsx)(F,{label:e(`cache:metric.errors`),value:J.format(q)})]})]}),(I.data?.dirtyTags.length??0)>0&&(0,M.jsxs)(s,{children:[(0,M.jsxs)(i,{children:[(0,M.jsx)(r,{children:e(`cache:quarantine.title`)}),(0,M.jsx)(o,{children:e(`cache:quarantine.description`)})]}),(0,M.jsx)(a,{className:`flex flex-wrap gap-2`,children:I.data?.dirtyTags.map(e=>(0,M.jsx)(S,{variant:`destructive`,children:e},e))})]}),(0,M.jsxs)(s,{children:[(0,M.jsxs)(i,{children:[(0,M.jsx)(r,{children:e(`cache:invalidate.title`)}),(0,M.jsx)(o,{children:e(`cache:invalidate.description`)})]}),(0,M.jsxs)(a,{className:`flex flex-col gap-2 sm:flex-row`,children:[(0,M.jsxs)(x,{value:z,onValueChange:B,children:[(0,M.jsx)(g,{"aria-label":e(`cache:invalidate.resource`),className:`sm:max-w-sm`,children:(0,M.jsx)(y,{placeholder:e(`cache:invalidate.resource`)})}),(0,M.jsx)(v,{children:(0,M.jsx)(b,{children:P.map(e=>(0,M.jsx)(_,{value:e.id,children:e.name},e.id))})})]}),(0,M.jsxs)(u,{variant:`outline-destructive`,disabled:!z||L.isPending,onClick:()=>{z&&n.promise(L.mutateAsync(z),{loading:{key:`cache:invalidate.loading`},success:{key:`cache:invalidate.success`},error:{key:`cache:invalidate.error`}})},children:[(0,M.jsx)(l,{"data-icon":`inline-start`}),e(`cache:invalidate.action`)]})]})]}),(0,M.jsxs)(s,{children:[(0,M.jsxs)(i,{children:[(0,M.jsx)(r,{children:e(`cache:table.title`)}),(0,M.jsx)(o,{children:e(`cache:instance`).replace(`{id}`,I.data?.instanceId??`—`)})]}),(0,M.jsx)(a,{children:(0,M.jsxs)(O,{children:[(0,M.jsx)(C,{children:(0,M.jsxs)(E,{children:[(0,M.jsx)(w,{children:e(`cache:table.namespace`)}),(0,M.jsx)(w,{children:e(`cache:table.resource`)}),(0,M.jsx)(w,{children:e(`cache:table.hits`)}),(0,M.jsx)(w,{children:e(`cache:table.misses`)}),(0,M.jsx)(w,{children:e(`cache:table.computes`)}),(0,M.jsx)(w,{children:e(`cache:table.coalesced`)}),(0,M.jsx)(w,{children:e(`cache:table.errors`)})]})}),(0,M.jsxs)(T,{children:[V.length===0&&(0,M.jsx)(E,{children:(0,M.jsx)(D,{colSpan:7,className:`py-8 text-center text-muted-foreground`,children:e(`cache:table.empty`)})}),V.map(e=>(0,M.jsxs)(E,{children:[(0,M.jsx)(D,{children:(0,M.jsx)(S,{variant:`outline`,children:e.namespace})}),(0,M.jsx)(D,{children:e.resourceId??`—`}),(0,M.jsx)(D,{children:J.format(e.hits)}),(0,M.jsx)(D,{children:J.format(e.misses)}),(0,M.jsx)(D,{children:J.format(e.computes)}),(0,M.jsx)(D,{children:J.format(e.coalesced)}),(0,M.jsx)(D,{children:J.format(e.readErrors+e.writeErrors+e.invalidationErrors)})]},`${e.namespace}:${e.resourceId??`*`}`))]})]})})]})]})}function F({label:e,value:t}){return(0,M.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-md border border-border p-3`,children:[(0,M.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e}),(0,M.jsx)(`span`,{className:`text-xl font-semibold tabular-nums`,children:t})]})}export{P as CachePage};