@modern-admin/web 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/dist/config/runtime-config.d.ts +31 -3
  2. package/dist/config/vite.d.ts +14 -0
  3. package/dist/config/vite.js +2 -2
  4. package/dist/lib/index.js +6 -2
  5. package/dist/lib/runtime-config.d.ts +31 -3
  6. package/dist/standalone/assets/{action-component-host-8DE4kuUJ.js → action-component-host-BhkBbvy5.js} +1 -2
  7. package/dist/standalone/assets/action-component-host-BhkBbvy5.js.br +0 -0
  8. package/dist/standalone/assets/action-component-host-BhkBbvy5.js.gz +0 -0
  9. package/dist/standalone/assets/{action-page-D6BbXzUo.js → action-page-cwWF8qzs.js} +1 -2
  10. package/dist/standalone/assets/action-page-cwWF8qzs.js.br +0 -0
  11. package/dist/standalone/assets/action-page-cwWF8qzs.js.gz +0 -0
  12. package/dist/standalone/assets/{ai-assistant-widget-BORa8_hT.js → ai-assistant-widget-DaFf7V1n.js} +1 -2
  13. package/dist/standalone/assets/ai-assistant-widget-DaFf7V1n.js.br +0 -0
  14. package/dist/standalone/assets/ai-assistant-widget-DaFf7V1n.js.gz +0 -0
  15. package/dist/standalone/assets/arrow-left-yVCaEJJu.js +1 -2
  16. package/dist/standalone/assets/audit-log-page-mc2OI-N8.js +1 -0
  17. package/dist/standalone/assets/audit-log-page-mc2OI-N8.js.br +0 -0
  18. package/dist/standalone/assets/audit-log-page-mc2OI-N8.js.gz +0 -0
  19. package/dist/standalone/assets/badge-CdW_Z0lB.js +1 -2
  20. package/dist/standalone/assets/bot-CuDPD_ZU.js +1 -2
  21. package/dist/standalone/assets/{cache-page-CBKj7WFq.js → cache-page-Ddt6pCFn.js} +1 -2
  22. package/dist/standalone/assets/cache-page-Ddt6pCFn.js.br +0 -0
  23. package/dist/standalone/assets/cache-page-Ddt6pCFn.js.gz +0 -0
  24. package/dist/standalone/assets/calendar-p3BEC7Ac.js +1 -0
  25. package/dist/standalone/assets/calendar-p3BEC7Ac.js.br +0 -0
  26. package/dist/standalone/assets/calendar-p3BEC7Ac.js.gz +0 -0
  27. package/dist/standalone/assets/card-BYbadRar.js +1 -2
  28. package/dist/standalone/assets/card-BYbadRar.js.br +0 -0
  29. package/dist/standalone/assets/card-BYbadRar.js.gz +0 -0
  30. package/dist/standalone/assets/chart-widget-DFq9o29S.js +1 -0
  31. package/dist/standalone/assets/chart-widget-DFq9o29S.js.br +0 -0
  32. package/dist/standalone/assets/chart-widget-DFq9o29S.js.gz +0 -0
  33. package/dist/standalone/assets/chevrons-up-down-y29_Sm-3.js +1 -2
  34. package/dist/standalone/assets/circle-alert-D1sKnXtO.js +1 -2
  35. package/dist/standalone/assets/clock-B9qbSr_k.js +1 -2
  36. package/dist/standalone/assets/{command-BAXXxf0P.js → command-Cv4kMka4.js} +1 -2
  37. package/dist/standalone/assets/command-Cv4kMka4.js.br +0 -0
  38. package/dist/standalone/assets/command-Cv4kMka4.js.gz +0 -0
  39. package/dist/standalone/assets/copy-5fb4qj-_.js +1 -2
  40. package/dist/standalone/assets/createLucideIcon-QE2kj6ru.js +1 -2
  41. package/dist/standalone/assets/createLucideIcon-QE2kj6ru.js.br +0 -0
  42. package/dist/standalone/assets/createLucideIcon-QE2kj6ru.js.gz +0 -0
  43. package/dist/standalone/assets/date-picker-BfxB3e8W.js +1 -0
  44. package/dist/standalone/assets/date-picker-BfxB3e8W.js.br +0 -0
  45. package/dist/standalone/assets/date-picker-BfxB3e8W.js.gz +0 -0
  46. package/dist/standalone/assets/dist-CiXwD0ML.js +1 -2
  47. package/dist/standalone/assets/dist-CiXwD0ML.js.br +0 -0
  48. package/dist/standalone/assets/dist-CiXwD0ML.js.gz +0 -0
  49. package/dist/standalone/assets/dist-DPxQeZn3.js +1 -2
  50. package/dist/standalone/assets/dist-DPxQeZn3.js.br +0 -0
  51. package/dist/standalone/assets/dist-DPxQeZn3.js.gz +0 -0
  52. package/dist/standalone/assets/{dist-COXu-_Zv.js → dist-DfV3IWyn.js} +1 -2
  53. package/dist/standalone/assets/dist-DfV3IWyn.js.br +0 -0
  54. package/dist/standalone/assets/dist-DfV3IWyn.js.gz +0 -0
  55. package/dist/standalone/assets/edit-page-VPFbqPNP.js +1 -0
  56. package/dist/standalone/assets/edit-page-VPFbqPNP.js.br +0 -0
  57. package/dist/standalone/assets/edit-page-VPFbqPNP.js.gz +0 -0
  58. package/dist/standalone/assets/ellipsis-BRmOlhsy.js +1 -2
  59. package/dist/standalone/assets/{empty-DMs98grx.js → empty-BR6YtCo2.js} +1 -2
  60. package/dist/standalone/assets/empty-BR6YtCo2.js.br +0 -0
  61. package/dist/standalone/assets/empty-BR6YtCo2.js.gz +0 -0
  62. package/dist/standalone/assets/file-text-MQF--yeB.js +1 -2
  63. package/dist/standalone/assets/floating-layer-BcTp2AMB.js +1 -2
  64. package/dist/standalone/assets/floating-layer-BcTp2AMB.js.br +0 -0
  65. package/dist/standalone/assets/floating-layer-BcTp2AMB.js.gz +0 -0
  66. package/dist/standalone/assets/global-search-dialog-B3nZbtR3.js +1 -0
  67. package/dist/standalone/assets/global-search-dialog-B3nZbtR3.js.br +0 -0
  68. package/dist/standalone/assets/global-search-dialog-B3nZbtR3.js.gz +0 -0
  69. package/dist/standalone/assets/{heavy-fields-LnhreUPp.js → heavy-fields-i9EcYH8r.js} +26 -27
  70. package/dist/standalone/assets/heavy-fields-i9EcYH8r.js.br +0 -0
  71. package/dist/standalone/assets/heavy-fields-i9EcYH8r.js.gz +0 -0
  72. package/dist/standalone/assets/{home-page-DiDOzuic.js → home-page-9caZ0Yg1.js} +3 -4
  73. package/dist/standalone/assets/home-page-9caZ0Yg1.js.br +0 -0
  74. package/dist/standalone/assets/home-page-9caZ0Yg1.js.gz +0 -0
  75. package/dist/standalone/assets/hooks-Djo7VZHf.js +185 -0
  76. package/dist/standalone/assets/hooks-Djo7VZHf.js.br +0 -0
  77. package/dist/standalone/assets/hooks-Djo7VZHf.js.gz +0 -0
  78. package/dist/standalone/assets/{icon-registry-s31CNk7M.js → icon-registry-BCvzitKu.js} +1 -2
  79. package/dist/standalone/assets/icon-registry-BCvzitKu.js.br +0 -0
  80. package/dist/standalone/assets/icon-registry-BCvzitKu.js.gz +0 -0
  81. package/dist/standalone/assets/index-SG_6EpY3.js +14 -0
  82. package/dist/standalone/assets/index-SG_6EpY3.js.br +0 -0
  83. package/dist/standalone/assets/index-SG_6EpY3.js.gz +0 -0
  84. package/dist/standalone/assets/info-ChwYoM77.js +1 -2
  85. package/dist/standalone/assets/{json-editor-BD0UhGOT.js → json-editor-TAtTB6fV.js} +1 -2
  86. package/dist/standalone/assets/json-editor-TAtTB6fV.js.br +0 -0
  87. package/dist/standalone/assets/json-editor-TAtTB6fV.js.gz +0 -0
  88. package/dist/standalone/assets/key-BzJFbNbz.js +1 -2
  89. package/dist/standalone/assets/key-round-oSqmVdkQ.js +1 -2
  90. package/dist/standalone/assets/minimize-2-iWv98HjE.js +1 -2
  91. package/dist/standalone/assets/palette-jgTV28yN.js +1 -2
  92. package/dist/standalone/assets/pencil-kFOObGrY.js +1 -2
  93. package/dist/standalone/assets/pipette-roLBCmPv.js +1 -2
  94. package/dist/standalone/assets/pipette-roLBCmPv.js.br +0 -0
  95. package/dist/standalone/assets/pipette-roLBCmPv.js.gz +0 -0
  96. package/dist/standalone/assets/plus-D7PHzena.js +1 -2
  97. package/dist/standalone/assets/property-renderer-KXwrRQgq.js +3 -0
  98. package/dist/standalone/assets/property-renderer-KXwrRQgq.js.br +0 -0
  99. package/dist/standalone/assets/property-renderer-KXwrRQgq.js.gz +0 -0
  100. package/dist/standalone/assets/reference-BibBrgjx.js +1 -0
  101. package/dist/standalone/assets/reference-BibBrgjx.js.br +0 -0
  102. package/dist/standalone/assets/reference-BibBrgjx.js.gz +0 -0
  103. package/dist/standalone/assets/refresh-cw-Cm9YiHGV.js +1 -2
  104. package/dist/standalone/assets/{revisions-button-Csueldv_.js → revisions-button-B6PmW0BY.js} +1 -2
  105. package/dist/standalone/assets/revisions-button-B6PmW0BY.js.br +0 -0
  106. package/dist/standalone/assets/revisions-button-B6PmW0BY.js.gz +0 -0
  107. package/dist/standalone/assets/richtext-render-DaiNQPjZ.js +1 -2
  108. package/dist/standalone/assets/richtext-render-DaiNQPjZ.js.br +0 -0
  109. package/dist/standalone/assets/richtext-render-DaiNQPjZ.js.gz +0 -0
  110. package/dist/standalone/assets/rotate-ccw-AB1VcvbK.js +1 -2
  111. package/dist/standalone/assets/save-BkkrgP5Q.js +1 -2
  112. package/dist/standalone/assets/schemas-ByMQmMCS.js +1 -2
  113. package/dist/standalone/assets/schemas-ByMQmMCS.js.br +0 -0
  114. package/dist/standalone/assets/schemas-ByMQmMCS.js.gz +0 -0
  115. package/dist/standalone/assets/{select-BOe2daO9.js → select-Bs49X1wg.js} +1 -2
  116. package/dist/standalone/assets/select-Bs49X1wg.js.br +0 -0
  117. package/dist/standalone/assets/select-Bs49X1wg.js.gz +0 -0
  118. package/dist/standalone/assets/send-Bzb_4uMT.js +1 -2
  119. package/dist/standalone/assets/settings-page-CSb9z_qM.js +1 -0
  120. package/dist/standalone/assets/settings-page-CSb9z_qM.js.br +0 -0
  121. package/dist/standalone/assets/settings-page-CSb9z_qM.js.gz +0 -0
  122. package/dist/standalone/assets/{show-page-CDgUXhsx.js → show-page-DsBH63Hr.js} +1 -2
  123. package/dist/standalone/assets/show-page-DsBH63Hr.js.br +0 -0
  124. package/dist/standalone/assets/show-page-DsBH63Hr.js.gz +0 -0
  125. package/dist/standalone/assets/sparkles-1tT0H4n4.js +1 -2
  126. package/dist/standalone/assets/square-pen-ZvVEwkzw.js +1 -2
  127. package/dist/standalone/assets/table-RI-lM4fw.js +1 -2
  128. package/dist/standalone/assets/table-RI-lM4fw.js.br +0 -0
  129. package/dist/standalone/assets/table-RI-lM4fw.js.gz +0 -0
  130. package/dist/standalone/assets/{tabs-Bj4gQaH2.js → tabs-XOuUmhl0.js} +1 -2
  131. package/dist/standalone/assets/tabs-XOuUmhl0.js.br +0 -0
  132. package/dist/standalone/assets/tabs-XOuUmhl0.js.gz +0 -0
  133. package/dist/standalone/assets/textarea-C2w7TG3h.js +1 -2
  134. package/dist/standalone/assets/trash-2-BIJVpWxv.js +1 -2
  135. package/dist/standalone/assets/triangle-alert-yljVpQCM.js +1 -2
  136. package/dist/standalone/assets/undo-2-CnH3ScKE.js +1 -2
  137. package/dist/standalone/assets/undo-2-CnH3ScKE.js.br +0 -0
  138. package/dist/standalone/assets/undo-2-CnH3ScKE.js.gz +0 -0
  139. package/dist/standalone/assets/upload-DrfB-4bU.js +1 -2
  140. package/dist/standalone/assets/upload-DrfB-4bU.js.br +0 -0
  141. package/dist/standalone/assets/upload-DrfB-4bU.js.gz +0 -0
  142. package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js +1 -2
  143. package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js.br +0 -0
  144. package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js.gz +0 -0
  145. package/dist/standalone/assets/{useQueries-DNUnShBb.js → useQueries-BIIIiVKJ.js} +1 -2
  146. package/dist/standalone/assets/useQueries-BIIIiVKJ.js.br +0 -0
  147. package/dist/standalone/assets/useQueries-BIIIiVKJ.js.gz +0 -0
  148. package/dist/standalone/assets/{user-directory-BvmDzxsG.js → user-directory-Cs4iA6fu.js} +2 -3
  149. package/dist/standalone/assets/user-directory-Cs4iA6fu.js.br +0 -0
  150. package/dist/standalone/assets/user-directory-Cs4iA6fu.js.gz +0 -0
  151. package/dist/standalone/assets/uuid-DLSnbsz2.js +1 -2
  152. package/dist/standalone/assets/wand-sparkles-DwseTI5T.js +1 -2
  153. package/dist/standalone/assets/wizard-create-page-px1E35D5.js +1 -0
  154. package/dist/standalone/assets/wizard-create-page-px1E35D5.js.br +0 -0
  155. package/dist/standalone/assets/wizard-create-page-px1E35D5.js.gz +0 -0
  156. package/dist/standalone/assets/x-c-gfVPJa.js +1 -2
  157. package/dist/standalone/assets/zap-BxPAEPtJ.js +1 -2
  158. package/dist/standalone/assets/zod-CL5c4fuD.js +1 -0
  159. package/dist/standalone/assets/zod-CL5c4fuD.js.br +0 -0
  160. package/dist/standalone/assets/zod-CL5c4fuD.js.gz +0 -0
  161. package/dist/standalone/index.html +6 -6
  162. package/dist/standalone/index.html.br +0 -0
  163. package/dist/standalone/index.html.gz +0 -0
  164. package/package.json +6 -5
  165. package/src/app.tsx +4 -0
  166. package/src/runtime-config.ts +31 -3
  167. package/src/vite.ts +16 -1
  168. package/dist/lib/app.d.ts.map +0 -1
  169. package/dist/lib/index.d.ts.map +0 -1
  170. package/dist/lib/index.js.map +0 -1
  171. package/dist/lib/mount.d.ts.map +0 -1
  172. package/dist/lib/runtime-config.d.ts.map +0 -1
  173. package/dist/standalone/assets/action-component-host-8DE4kuUJ.js.br +0 -0
  174. package/dist/standalone/assets/action-component-host-8DE4kuUJ.js.gz +0 -0
  175. package/dist/standalone/assets/action-component-host-8DE4kuUJ.js.map +0 -1
  176. package/dist/standalone/assets/action-page-D6BbXzUo.js.br +0 -0
  177. package/dist/standalone/assets/action-page-D6BbXzUo.js.gz +0 -0
  178. package/dist/standalone/assets/action-page-D6BbXzUo.js.map +0 -1
  179. package/dist/standalone/assets/ai-assistant-widget-BORa8_hT.js.br +0 -0
  180. package/dist/standalone/assets/ai-assistant-widget-BORa8_hT.js.gz +0 -0
  181. package/dist/standalone/assets/ai-assistant-widget-BORa8_hT.js.map +0 -1
  182. package/dist/standalone/assets/arrow-left-yVCaEJJu.js.map +0 -1
  183. package/dist/standalone/assets/audit-log-page-uHj9GWfi.js +0 -2
  184. package/dist/standalone/assets/audit-log-page-uHj9GWfi.js.br +0 -0
  185. package/dist/standalone/assets/audit-log-page-uHj9GWfi.js.gz +0 -0
  186. package/dist/standalone/assets/audit-log-page-uHj9GWfi.js.map +0 -1
  187. package/dist/standalone/assets/badge-CdW_Z0lB.js.map +0 -1
  188. package/dist/standalone/assets/bot-CuDPD_ZU.js.map +0 -1
  189. package/dist/standalone/assets/cache-page-CBKj7WFq.js.br +0 -0
  190. package/dist/standalone/assets/cache-page-CBKj7WFq.js.gz +0 -0
  191. package/dist/standalone/assets/cache-page-CBKj7WFq.js.map +0 -1
  192. package/dist/standalone/assets/calendar-BuLRvNBg.js +0 -2
  193. package/dist/standalone/assets/calendar-BuLRvNBg.js.br +0 -0
  194. package/dist/standalone/assets/calendar-BuLRvNBg.js.gz +0 -0
  195. package/dist/standalone/assets/calendar-BuLRvNBg.js.map +0 -1
  196. package/dist/standalone/assets/card-BYbadRar.js.map +0 -1
  197. package/dist/standalone/assets/chart-widget-Bfk_mvm2.js +0 -2
  198. package/dist/standalone/assets/chart-widget-Bfk_mvm2.js.br +0 -0
  199. package/dist/standalone/assets/chart-widget-Bfk_mvm2.js.gz +0 -0
  200. package/dist/standalone/assets/chart-widget-Bfk_mvm2.js.map +0 -1
  201. package/dist/standalone/assets/chevrons-up-down-y29_Sm-3.js.map +0 -1
  202. package/dist/standalone/assets/circle-alert-D1sKnXtO.js.map +0 -1
  203. package/dist/standalone/assets/clock-B9qbSr_k.js.map +0 -1
  204. package/dist/standalone/assets/command-BAXXxf0P.js.br +0 -0
  205. package/dist/standalone/assets/command-BAXXxf0P.js.gz +0 -0
  206. package/dist/standalone/assets/command-BAXXxf0P.js.map +0 -1
  207. package/dist/standalone/assets/copy-5fb4qj-_.js.map +0 -1
  208. package/dist/standalone/assets/createLucideIcon-QE2kj6ru.js.map +0 -1
  209. package/dist/standalone/assets/date-picker-Bxv-yrWf.js +0 -2
  210. package/dist/standalone/assets/date-picker-Bxv-yrWf.js.br +0 -0
  211. package/dist/standalone/assets/date-picker-Bxv-yrWf.js.gz +0 -0
  212. package/dist/standalone/assets/date-picker-Bxv-yrWf.js.map +0 -1
  213. package/dist/standalone/assets/dist-COXu-_Zv.js.br +0 -0
  214. package/dist/standalone/assets/dist-COXu-_Zv.js.gz +0 -0
  215. package/dist/standalone/assets/dist-COXu-_Zv.js.map +0 -1
  216. package/dist/standalone/assets/dist-CiXwD0ML.js.map +0 -1
  217. package/dist/standalone/assets/dist-DPxQeZn3.js.map +0 -1
  218. package/dist/standalone/assets/edit-page-Dm638D2J.js +0 -2
  219. package/dist/standalone/assets/edit-page-Dm638D2J.js.br +0 -0
  220. package/dist/standalone/assets/edit-page-Dm638D2J.js.gz +0 -0
  221. package/dist/standalone/assets/edit-page-Dm638D2J.js.map +0 -1
  222. package/dist/standalone/assets/ellipsis-BRmOlhsy.js.map +0 -1
  223. package/dist/standalone/assets/empty-DMs98grx.js.br +0 -0
  224. package/dist/standalone/assets/empty-DMs98grx.js.gz +0 -0
  225. package/dist/standalone/assets/empty-DMs98grx.js.map +0 -1
  226. package/dist/standalone/assets/file-text-MQF--yeB.js.map +0 -1
  227. package/dist/standalone/assets/floating-layer-BcTp2AMB.js.map +0 -1
  228. package/dist/standalone/assets/global-search-dialog-DxwxFDO5.js +0 -2
  229. package/dist/standalone/assets/global-search-dialog-DxwxFDO5.js.br +0 -0
  230. package/dist/standalone/assets/global-search-dialog-DxwxFDO5.js.gz +0 -0
  231. package/dist/standalone/assets/global-search-dialog-DxwxFDO5.js.map +0 -1
  232. package/dist/standalone/assets/heavy-fields-LnhreUPp.js.br +0 -0
  233. package/dist/standalone/assets/heavy-fields-LnhreUPp.js.gz +0 -0
  234. package/dist/standalone/assets/heavy-fields-LnhreUPp.js.map +0 -1
  235. package/dist/standalone/assets/home-page-DiDOzuic.js.br +0 -0
  236. package/dist/standalone/assets/home-page-DiDOzuic.js.gz +0 -0
  237. package/dist/standalone/assets/home-page-DiDOzuic.js.map +0 -1
  238. package/dist/standalone/assets/hooks-BiOfAnEq.js +0 -186
  239. package/dist/standalone/assets/hooks-BiOfAnEq.js.br +0 -0
  240. package/dist/standalone/assets/hooks-BiOfAnEq.js.gz +0 -0
  241. package/dist/standalone/assets/hooks-BiOfAnEq.js.map +0 -1
  242. package/dist/standalone/assets/icon-registry-s31CNk7M.js.br +0 -0
  243. package/dist/standalone/assets/icon-registry-s31CNk7M.js.gz +0 -0
  244. package/dist/standalone/assets/icon-registry-s31CNk7M.js.map +0 -1
  245. package/dist/standalone/assets/index-CASCzvYu.js +0 -15
  246. package/dist/standalone/assets/index-CASCzvYu.js.br +0 -0
  247. package/dist/standalone/assets/index-CASCzvYu.js.gz +0 -0
  248. package/dist/standalone/assets/index-CASCzvYu.js.map +0 -1
  249. package/dist/standalone/assets/info-ChwYoM77.js.map +0 -1
  250. package/dist/standalone/assets/json-editor-BD0UhGOT.js.br +0 -0
  251. package/dist/standalone/assets/json-editor-BD0UhGOT.js.gz +0 -0
  252. package/dist/standalone/assets/json-editor-BD0UhGOT.js.map +0 -1
  253. package/dist/standalone/assets/key-BzJFbNbz.js.map +0 -1
  254. package/dist/standalone/assets/key-round-oSqmVdkQ.js.map +0 -1
  255. package/dist/standalone/assets/minimize-2-iWv98HjE.js.map +0 -1
  256. package/dist/standalone/assets/palette-jgTV28yN.js.map +0 -1
  257. package/dist/standalone/assets/pencil-kFOObGrY.js.map +0 -1
  258. package/dist/standalone/assets/pipette-roLBCmPv.js.map +0 -1
  259. package/dist/standalone/assets/plus-D7PHzena.js.map +0 -1
  260. package/dist/standalone/assets/property-renderer-ClrVnSny.js +0 -4
  261. package/dist/standalone/assets/property-renderer-ClrVnSny.js.br +0 -0
  262. package/dist/standalone/assets/property-renderer-ClrVnSny.js.gz +0 -0
  263. package/dist/standalone/assets/property-renderer-ClrVnSny.js.map +0 -1
  264. package/dist/standalone/assets/reference-BMbhUBHD.js +0 -2
  265. package/dist/standalone/assets/reference-BMbhUBHD.js.br +0 -0
  266. package/dist/standalone/assets/reference-BMbhUBHD.js.gz +0 -0
  267. package/dist/standalone/assets/reference-BMbhUBHD.js.map +0 -1
  268. package/dist/standalone/assets/refresh-cw-Cm9YiHGV.js.map +0 -1
  269. package/dist/standalone/assets/revisions-button-Csueldv_.js.br +0 -0
  270. package/dist/standalone/assets/revisions-button-Csueldv_.js.gz +0 -0
  271. package/dist/standalone/assets/revisions-button-Csueldv_.js.map +0 -1
  272. package/dist/standalone/assets/richtext-render-DaiNQPjZ.js.map +0 -1
  273. package/dist/standalone/assets/rotate-ccw-AB1VcvbK.js.map +0 -1
  274. package/dist/standalone/assets/save-BkkrgP5Q.js.map +0 -1
  275. package/dist/standalone/assets/schemas-ByMQmMCS.js.map +0 -1
  276. package/dist/standalone/assets/select-BOe2daO9.js.br +0 -0
  277. package/dist/standalone/assets/select-BOe2daO9.js.gz +0 -0
  278. package/dist/standalone/assets/select-BOe2daO9.js.map +0 -1
  279. package/dist/standalone/assets/send-Bzb_4uMT.js.map +0 -1
  280. package/dist/standalone/assets/settings-page-BmphreWj.js +0 -2
  281. package/dist/standalone/assets/settings-page-BmphreWj.js.br +0 -0
  282. package/dist/standalone/assets/settings-page-BmphreWj.js.gz +0 -0
  283. package/dist/standalone/assets/settings-page-BmphreWj.js.map +0 -1
  284. package/dist/standalone/assets/show-page-CDgUXhsx.js.br +0 -0
  285. package/dist/standalone/assets/show-page-CDgUXhsx.js.gz +0 -0
  286. package/dist/standalone/assets/show-page-CDgUXhsx.js.map +0 -1
  287. package/dist/standalone/assets/sparkles-1tT0H4n4.js.map +0 -1
  288. package/dist/standalone/assets/square-pen-ZvVEwkzw.js.map +0 -1
  289. package/dist/standalone/assets/table-RI-lM4fw.js.map +0 -1
  290. package/dist/standalone/assets/tabs-Bj4gQaH2.js.br +0 -0
  291. package/dist/standalone/assets/tabs-Bj4gQaH2.js.gz +0 -0
  292. package/dist/standalone/assets/tabs-Bj4gQaH2.js.map +0 -1
  293. package/dist/standalone/assets/textarea-C2w7TG3h.js.map +0 -1
  294. package/dist/standalone/assets/trash-2-BIJVpWxv.js.map +0 -1
  295. package/dist/standalone/assets/triangle-alert-yljVpQCM.js.map +0 -1
  296. package/dist/standalone/assets/undo-2-CnH3ScKE.js.map +0 -1
  297. package/dist/standalone/assets/upload-DrfB-4bU.js.map +0 -1
  298. package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js.map +0 -1
  299. package/dist/standalone/assets/useQueries-DNUnShBb.js.br +0 -0
  300. package/dist/standalone/assets/useQueries-DNUnShBb.js.gz +0 -0
  301. package/dist/standalone/assets/useQueries-DNUnShBb.js.map +0 -1
  302. package/dist/standalone/assets/user-directory-BvmDzxsG.js.br +0 -0
  303. package/dist/standalone/assets/user-directory-BvmDzxsG.js.gz +0 -0
  304. package/dist/standalone/assets/user-directory-BvmDzxsG.js.map +0 -1
  305. package/dist/standalone/assets/uuid-DLSnbsz2.js.map +0 -1
  306. package/dist/standalone/assets/wand-sparkles-DwseTI5T.js.map +0 -1
  307. package/dist/standalone/assets/wizard-create-page-D4a8FnmI.js +0 -2
  308. package/dist/standalone/assets/wizard-create-page-D4a8FnmI.js.br +0 -0
  309. package/dist/standalone/assets/wizard-create-page-D4a8FnmI.js.gz +0 -0
  310. package/dist/standalone/assets/wizard-create-page-D4a8FnmI.js.map +0 -1
  311. package/dist/standalone/assets/x-c-gfVPJa.js.map +0 -1
  312. package/dist/standalone/assets/zap-BxPAEPtJ.js.map +0 -1
  313. package/dist/standalone/assets/zod-2-ubQvxh.js +0 -2
  314. package/dist/standalone/assets/zod-2-ubQvxh.js.br +0 -0
  315. package/dist/standalone/assets/zod-2-ubQvxh.js.gz +0 -0
  316. package/dist/standalone/assets/zod-2-ubQvxh.js.map +0 -1
@@ -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;
@@ -28,8 +28,18 @@ export interface ModernAdminRuntimeConfig {
28
28
  headers?: Record<string, string>;
29
29
  /** Helper line shown on the login screen — e.g. demo credentials. */
30
30
  loginHint?: string;
31
- /** Initial UI locale code. Falls back to the persisted choice / 'en'. */
31
+ /**
32
+ * Locale the UI starts in when the visitor has no persisted choice, or
33
+ * when their persisted choice is not in `locales`. A previous, still-valid
34
+ * choice wins — use `forceLocale` to override that too.
35
+ */
32
36
  defaultLocale?: string;
37
+ /**
38
+ * Pin the UI to one locale: the persisted choice is ignored and the header
39
+ * switcher collapses. Unlike `locales: ['ru']`, the other bundles stay
40
+ * loaded and keep serving `fallbackLocale` for any missing key.
41
+ */
42
+ forceLocale?: string;
33
43
  /** Locale used when a translation is missing. Defaults to 'en'. */
34
44
  fallbackLocale?: string;
35
45
  /**
@@ -43,7 +53,23 @@ export interface ModernAdminRuntimeConfig {
43
53
  locales?: string[];
44
54
  /** Optional per-resource / per-property metadata translations. */
45
55
  metadataTranslations?: MetadataTranslations;
46
- /** Branding overrides (title, logo). */
56
+ /**
57
+ * Overrides for the framework's own UI strings, merged over the built-in
58
+ * dictionaries per locale. This is the supported way to rename the product,
59
+ * reword a built-in label, or ship a translation fix without a release:
60
+ *
61
+ * ```json
62
+ * { "ru": { "common:appName": "Acme", "auth:tagline": "…" } }
63
+ * ```
64
+ *
65
+ * Keys use the flat `namespace:key` form of the bundled locales.
66
+ * `metadataTranslations` is the separate, resource-metadata equivalent.
67
+ */
68
+ translations?: Record<string, Record<string, string>>;
69
+ /**
70
+ * Branding overrides applied to the sidebar header, the loading splash,
71
+ * and both marks on the login screen.
72
+ */
47
73
  brand?: ModernAdminBrand;
48
74
  /** Persist the demo session credentials in localStorage. */
49
75
  persistDemoSession?: boolean;
@@ -55,6 +81,8 @@ export interface ModernAdminRuntimeConfig {
55
81
  * elsewhere; pass *without* a trailing slash.
56
82
  */
57
83
  authBasePath?: string;
84
+ /** Per-route auth overrides for backends whose provider uses different URLs. */
85
+ authPaths?: Partial<AdminAuthPaths>;
58
86
  /**
59
87
  * URL prefix where the SPA is mounted (e.g. `/admin`). Injected
60
88
  * automatically by `ModernAdminStaticUiMiddleware` from its `path` option
@@ -48,6 +48,20 @@ export interface AdminAppConfigOptions {
48
48
  devConfig?: ModernAdminRuntimeConfig;
49
49
  /** Directory the standalone build writes to. Rarely worth changing. */
50
50
  outDir?: string;
51
+ /**
52
+ * Production source maps. Defaults to `false`.
53
+ *
54
+ * `true` emits `.map` files next to every chunk. The static-UI middleware
55
+ * serves them publicly with `immutable` caching, so anything in them —
56
+ * including the full source of proprietary components in a custom bundle —
57
+ * is readable by anyone who can reach the panel. They also dominate the
58
+ * tarball: the stock standalone build is ~17MB, of which ~13MB is maps.
59
+ *
60
+ * `'hidden'` writes the maps but omits the `//# sourceMappingURL` comment,
61
+ * which is the right setting for uploading them to an error tracker
62
+ * without exposing them to browsers.
63
+ */
64
+ sourcemap?: boolean | 'hidden';
51
65
  /** Extra plugins, appended after the built-in ones. */
52
66
  plugins?: PluginOption[];
53
67
  }
@@ -152,7 +152,7 @@ function buildProxy(target, paths) {
152
152
  * `--mode` flag is required.
153
153
  */
154
154
  export function defineAdminAppConfig(options = {}) {
155
- const { apiProxy, apiProxyPath = ['/admin/api', '/socket.io'], devConfig, outDir = STANDALONE_OUT_DIR, plugins: extraPlugins = [], } = options;
155
+ const { apiProxy, apiProxyPath = ['/admin/api', '/socket.io'], devConfig, outDir = STANDALONE_OUT_DIR, sourcemap = false, plugins: extraPlugins = [], } = options;
156
156
  return ({ command }) => {
157
157
  const shared = [react(), tailwindcss()];
158
158
  if (command === 'build') {
@@ -165,7 +165,7 @@ export function defineAdminAppConfig(options = {}) {
165
165
  build: {
166
166
  outDir,
167
167
  emptyOutDir: true,
168
- sourcemap: true,
168
+ sourcemap,
169
169
  },
170
170
  };
171
171
  }
package/dist/lib/index.js CHANGED
@@ -14,8 +14,10 @@ function l({ config: e, components: s }) {
14
14
  return /* @__PURE__ */ o(r, {
15
15
  locales: c,
16
16
  defaultLocale: e.defaultLocale,
17
+ forceLocale: e.forceLocale,
17
18
  fallbackLocale: e.fallbackLocale,
18
19
  metadataTranslations: e.metadataTranslations,
20
+ translations: e.translations,
19
21
  children: /* @__PURE__ */ o(i, {
20
22
  components: s,
21
23
  clientOptions: {
@@ -23,12 +25,14 @@ function l({ config: e, components: s }) {
23
25
  credentials: e.credentials ?? "include",
24
26
  headers: e.headers,
25
27
  persistDemoSession: e.persistDemoSession,
26
- authBasePath: e.authBasePath
28
+ authBasePath: e.authBasePath,
29
+ authPaths: e.authPaths
27
30
  },
28
31
  children: /* @__PURE__ */ o(n, {
29
32
  loginHint: e.loginHint,
30
33
  basePath: e.basePath,
31
- showSidebarResourceIds: e.showSidebarResourceIds
34
+ showSidebarResourceIds: e.showSidebarResourceIds,
35
+ brand: e.brand
32
36
  })
33
37
  })
34
38
  });
@@ -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;
@@ -18,8 +18,18 @@ export interface ModernAdminRuntimeConfig {
18
18
  headers?: Record<string, string>;
19
19
  /** Helper line shown on the login screen — e.g. demo credentials. */
20
20
  loginHint?: string;
21
- /** Initial UI locale code. Falls back to the persisted choice / 'en'. */
21
+ /**
22
+ * Locale the UI starts in when the visitor has no persisted choice, or
23
+ * when their persisted choice is not in `locales`. A previous, still-valid
24
+ * choice wins — use `forceLocale` to override that too.
25
+ */
22
26
  defaultLocale?: string;
27
+ /**
28
+ * Pin the UI to one locale: the persisted choice is ignored and the header
29
+ * switcher collapses. Unlike `locales: ['ru']`, the other bundles stay
30
+ * loaded and keep serving `fallbackLocale` for any missing key.
31
+ */
32
+ forceLocale?: string;
23
33
  /** Locale used when a translation is missing. Defaults to 'en'. */
24
34
  fallbackLocale?: string;
25
35
  /**
@@ -33,7 +43,23 @@ export interface ModernAdminRuntimeConfig {
33
43
  locales?: string[];
34
44
  /** Optional per-resource / per-property metadata translations. */
35
45
  metadataTranslations?: MetadataTranslations;
36
- /** Branding overrides (title, logo). */
46
+ /**
47
+ * Overrides for the framework's own UI strings, merged over the built-in
48
+ * dictionaries per locale. This is the supported way to rename the product,
49
+ * reword a built-in label, or ship a translation fix without a release:
50
+ *
51
+ * ```json
52
+ * { "ru": { "common:appName": "Acme", "auth:tagline": "…" } }
53
+ * ```
54
+ *
55
+ * Keys use the flat `namespace:key` form of the bundled locales.
56
+ * `metadataTranslations` is the separate, resource-metadata equivalent.
57
+ */
58
+ translations?: Record<string, Record<string, string>>;
59
+ /**
60
+ * Branding overrides applied to the sidebar header, the loading splash,
61
+ * and both marks on the login screen.
62
+ */
37
63
  brand?: ModernAdminBrand;
38
64
  /** Persist the demo session credentials in localStorage. */
39
65
  persistDemoSession?: boolean;
@@ -45,6 +71,8 @@ export interface ModernAdminRuntimeConfig {
45
71
  * elsewhere; pass *without* a trailing slash.
46
72
  */
47
73
  authBasePath?: string;
74
+ /** Per-route auth overrides for backends whose provider uses different URLs. */
75
+ authPaths?: Partial<AdminAuthPaths>;
48
76
  /**
49
77
  * URL prefix where the SPA is mounted (e.g. `/admin`). Injected
50
78
  * automatically by `ModernAdminStaticUiMiddleware` from its `path` option
@@ -1,2 +1 @@
1
- import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r,v as i}from"./floating-layer-BcTp2AMB.js";import{t as a}from"./circle-alert-D1sKnXtO.js";import"./ellipsis-BRmOlhsy.js";import{t as o}from"./zap-BxPAEPtJ.js";import{o as s}from"./dist-DPxQeZn3.js";import{L as c,N as l,T as u,_ as d,b as f,g as p,h as m,n as h}from"./hooks-BiOfAnEq.js";import{F as g,I as _,L as v,M as y,N as b,P as x,R as S,_t as C,i as w,j as T,k as E,l as D,wt as O,z as k}from"./index-CASCzvYu.js";var A=e(t(),1),j=n(),M=A.forwardRef((e,t)=>(0,j.jsx)(`nav`,{ref:t,"aria-label":`breadcrumb`,...e}));M.displayName=`Breadcrumb`;var N=A.forwardRef(({className:e,...t},n)=>(0,j.jsx)(`ol`,{ref:n,className:r(`flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5`,e),...t}));N.displayName=`BreadcrumbList`;var P=A.forwardRef(({className:e,...t},n)=>(0,j.jsx)(`li`,{ref:n,className:r(`inline-flex items-center gap-1.5`,e),...t}));P.displayName=`BreadcrumbItem`;var F=A.forwardRef(({asChild:e,className:t,...n},a)=>(0,j.jsx)(e?i:`a`,{ref:a,className:r(`transition-colors hover:text-foreground`,t),...n}));F.displayName=`BreadcrumbLink`;var I=A.forwardRef(({className:e,...t},n)=>(0,j.jsx)(`span`,{ref:n,role:`link`,"aria-disabled":`true`,"aria-current":`page`,className:r(`font-normal text-foreground`,e),...t}));I.displayName=`BreadcrumbPage`;var L=({children:e,className:t,...n})=>(0,j.jsx)(`li`,{role:`presentation`,"aria-hidden":`true`,className:r(`[&>svg]:size-3.5`,t),...n,children:e??(0,j.jsx)(O,{})});L.displayName=`BreadcrumbSeparator`;function R({items:e,className:t}){return e.length===0?null:(0,j.jsx)(M,{className:t,children:(0,j.jsx)(N,{children:e.map((t,n)=>{let r=n===e.length-1,i=(0,j.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[t.icon,(0,j.jsx)(`span`,{className:`truncate max-w-[8rem] sm:max-w-[16rem]`,children:t.label})]});return(0,j.jsxs)(A.Fragment,{children:[(0,j.jsx)(P,{children:r||!t.to?(0,j.jsx)(I,{children:i}):(0,j.jsx)(F,{asChild:!0,children:(0,j.jsx)(w,{to:t.to,children:i})})}),!r&&(0,j.jsx)(L,{})]},`${n}-${t.label}`)})})})}function z(e){return{label:e,to:{name:`home`},icon:(0,j.jsx)(C,{className:`size-3.5`})}}var B=(e,t)=>!t?.recordActions||t.recordActions.includes(e),V=(e,t)=>{if(!t?.recordActions)return e;let n=new Set(t.recordActions);return e.filter(e=>n.has(e.name))},H=e=>typeof e.custom?.label==`string`?e.custom.label:e.name,U=e=>{let t=[],n=new Map,r=(e,t,i)=>{if(i>=t.length)return e;let a=t[i],o=t.slice(0,i+1).map(e=>e.name).join(`>`),s=n.get(o);return s||(s={key:o,group:a,items:[]},n.set(o,s),e.push({kind:`group`,group:s})),r(s.items,t,i+1)};for(let n of e){let e=n.nesting??[];(e.length>0?r(t,e,0):t).push({kind:`action`,action:n})}return t},W=(e,t)=>e.map(e=>e.kind===`action`?(0,j.jsxs)(y,{onSelect:()=>t(e.action),children:[(0,j.jsx)(o,{className:`size-4`}),` `,H(e.action)]},e.action.name):(0,j.jsxs)(_,{children:[(0,j.jsx)(S,{children:e.group.group.name}),(0,j.jsx)(x,{children:(0,j.jsx)(v,{children:W(e.group.items,t)})})]},e.group.key));function G({actions:e,onAction:t}){let n=A.useMemo(()=>U(e),[e]);return n.length===0?null:(0,j.jsx)(j.Fragment,{children:W(n,t)})}function K({actions:e,onAction:t,t:n,trigger:r,menuLabel:i,align:a=`end`}){return A.useMemo(()=>U(e),[e]).length===0?null:(0,j.jsxs)(E,{children:[(0,j.jsx)(k,{asChild:!0,children:r??(0,j.jsxs)(s,{variant:`outline`,size:`sm`,children:[(0,j.jsx)(o,{className:`size-4`}),n(`common:actions`)]})}),(0,j.jsxs)(T,{align:a,children:[(0,j.jsx)(b,{children:i??n(`common:actions`)}),(0,j.jsx)(g,{}),(0,j.jsx)(G,{actions:e,onAction:t})]})]})}function q(e,t){t&&e[t.type===`error`?`error`:t.type===`warning`?`warning`:t.type===`info`?`info`:`success`]({message:t.message})}function J({title:e,hint:t}){return(0,j.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,j.jsx)(a,{className:`mt-0.5 size-5 shrink-0 text-destructive`}),(0,j.jsxs)(`div`,{className:`space-y-1 text-sm`,children:[(0,j.jsx)(`p`,{className:`font-semibold text-destructive`,children:e}),t&&(0,j.jsx)(`p`,{className:`text-destructive/90`,children:t})]})]})}function Y({resourceId:e,actionName:t,recordId:n,recordIds:r,onClose:i,onSuccess:a}){let o=u(e),{components:s}=c(),{t:g}=l(),_=D(),v=o?.actions?.find(e=>e.name===t),y=v?.component??null,b=y?s?.get(y):void 0,x=h(e,t,{...n===void 0?{}:{recordId:n},...r===void 0?{}:{recordIds:r},enabled:!!v&&!!b}),S=f(e,n),C=p(e),w=d(e),T=m(e),E=C.isPending||w.isPending||T.isPending,O=A.useCallback(async(e={})=>{let i=n?await C.mutateAsync({recordId:n,actionName:t,payload:e}):r?.length?await T.mutateAsync({actionName:t,ids:r,payload:e}):await w.mutateAsync({actionName:t,payload:e});return q(_,i.notice),a?.(),i},[n,r,t,C,T,w,_,a]);if(!o)return(0,j.jsx)(`p`,{className:`text-muted-foreground`,children:g(`common:loading`)});if(!v)return(0,j.jsx)(J,{title:g(`action:notFound`,{action:t})});if(!y||!b)return(0,j.jsx)(J,{title:g(`action:componentMissing`,{component:y??t}),hint:g(`action:componentMissingHint`)});if(x.isError)return(0,j.jsx)(J,{title:g(`action:loadFailed`),hint:x.error instanceof Error?x.error.message:void 0});let k={action:v,resource:o,resourceId:e,...n===void 0?{}:{recordId:n},...r===void 0?{}:{recordIds:r},...S.data?.record?{record:S.data.record}:{},...x.data?.records?{records:x.data.records}:{},...x.data?{data:x.data}:{},loading:x.isLoading||!!n&&S.isLoading,invoke:O,submitting:E,close:i};return(0,j.jsx)(b,{...k})}export{H as a,R as c,G as i,z as l,q as n,B as o,K as r,V as s,Y as t};
2
- //# sourceMappingURL=action-component-host-8DE4kuUJ.js.map
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r,v as i}from"./floating-layer-BcTp2AMB.js";import{t as a}from"./circle-alert-D1sKnXtO.js";import"./ellipsis-BRmOlhsy.js";import{t as o}from"./zap-BxPAEPtJ.js";import{o as s}from"./dist-DPxQeZn3.js";import{L as c,N as l,T as u,_ as d,b as f,g as p,h as m,n as h}from"./hooks-Djo7VZHf.js";import{F as g,I as _,L as v,M as y,N as b,P as x,R as S,_t as C,i as w,j as T,k as E,l as D,wt as O,z as k}from"./index-SG_6EpY3.js";var A=e(t(),1),j=n(),M=A.forwardRef((e,t)=>(0,j.jsx)(`nav`,{ref:t,"aria-label":`breadcrumb`,...e}));M.displayName=`Breadcrumb`;var N=A.forwardRef(({className:e,...t},n)=>(0,j.jsx)(`ol`,{ref:n,className:r(`flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5`,e),...t}));N.displayName=`BreadcrumbList`;var P=A.forwardRef(({className:e,...t},n)=>(0,j.jsx)(`li`,{ref:n,className:r(`inline-flex items-center gap-1.5`,e),...t}));P.displayName=`BreadcrumbItem`;var F=A.forwardRef(({asChild:e,className:t,...n},a)=>(0,j.jsx)(e?i:`a`,{ref:a,className:r(`transition-colors hover:text-foreground`,t),...n}));F.displayName=`BreadcrumbLink`;var I=A.forwardRef(({className:e,...t},n)=>(0,j.jsx)(`span`,{ref:n,role:`link`,"aria-disabled":`true`,"aria-current":`page`,className:r(`font-normal text-foreground`,e),...t}));I.displayName=`BreadcrumbPage`;var L=({children:e,className:t,...n})=>(0,j.jsx)(`li`,{role:`presentation`,"aria-hidden":`true`,className:r(`[&>svg]:size-3.5`,t),...n,children:e??(0,j.jsx)(O,{})});L.displayName=`BreadcrumbSeparator`;function R({items:e,className:t}){return e.length===0?null:(0,j.jsx)(M,{className:t,children:(0,j.jsx)(N,{children:e.map((t,n)=>{let r=n===e.length-1,i=(0,j.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[t.icon,(0,j.jsx)(`span`,{className:`truncate max-w-[8rem] sm:max-w-[16rem]`,children:t.label})]});return(0,j.jsxs)(A.Fragment,{children:[(0,j.jsx)(P,{children:r||!t.to?(0,j.jsx)(I,{children:i}):(0,j.jsx)(F,{asChild:!0,children:(0,j.jsx)(w,{to:t.to,children:i})})}),!r&&(0,j.jsx)(L,{})]},`${n}-${t.label}`)})})})}function z(e){return{label:e,to:{name:`home`},icon:(0,j.jsx)(C,{className:`size-3.5`})}}var B=(e,t)=>!t?.recordActions||t.recordActions.includes(e),V=(e,t)=>{if(!t?.recordActions)return e;let n=new Set(t.recordActions);return e.filter(e=>n.has(e.name))},H=e=>typeof e.custom?.label==`string`?e.custom.label:e.name,U=e=>{let t=[],n=new Map,r=(e,t,i)=>{if(i>=t.length)return e;let a=t[i],o=t.slice(0,i+1).map(e=>e.name).join(`>`),s=n.get(o);return s||(s={key:o,group:a,items:[]},n.set(o,s),e.push({kind:`group`,group:s})),r(s.items,t,i+1)};for(let n of e){let e=n.nesting??[];(e.length>0?r(t,e,0):t).push({kind:`action`,action:n})}return t},W=(e,t)=>e.map(e=>e.kind===`action`?(0,j.jsxs)(y,{onSelect:()=>t(e.action),children:[(0,j.jsx)(o,{className:`size-4`}),` `,H(e.action)]},e.action.name):(0,j.jsxs)(_,{children:[(0,j.jsx)(S,{children:e.group.group.name}),(0,j.jsx)(x,{children:(0,j.jsx)(v,{children:W(e.group.items,t)})})]},e.group.key));function G({actions:e,onAction:t}){let n=A.useMemo(()=>U(e),[e]);return n.length===0?null:(0,j.jsx)(j.Fragment,{children:W(n,t)})}function K({actions:e,onAction:t,t:n,trigger:r,menuLabel:i,align:a=`end`}){return A.useMemo(()=>U(e),[e]).length===0?null:(0,j.jsxs)(E,{children:[(0,j.jsx)(k,{asChild:!0,children:r??(0,j.jsxs)(s,{variant:`outline`,size:`sm`,children:[(0,j.jsx)(o,{className:`size-4`}),n(`common:actions`)]})}),(0,j.jsxs)(T,{align:a,children:[(0,j.jsx)(b,{children:i??n(`common:actions`)}),(0,j.jsx)(g,{}),(0,j.jsx)(G,{actions:e,onAction:t})]})]})}function q(e,t){t&&e[t.type===`error`?`error`:t.type===`warning`?`warning`:t.type===`info`?`info`:`success`]({message:t.message})}function J({title:e,hint:t}){return(0,j.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,j.jsx)(a,{className:`mt-0.5 size-5 shrink-0 text-destructive`}),(0,j.jsxs)(`div`,{className:`space-y-1 text-sm`,children:[(0,j.jsx)(`p`,{className:`font-semibold text-destructive`,children:e}),t&&(0,j.jsx)(`p`,{className:`text-destructive/90`,children:t})]})]})}function Y({resourceId:e,actionName:t,recordId:n,recordIds:r,onClose:i,onSuccess:a}){let o=u(e),{components:s}=c(),{t:g}=l(),_=D(),v=o?.actions?.find(e=>e.name===t),y=v?.component??null,b=y?s?.get(y):void 0,x=h(e,t,{...n===void 0?{}:{recordId:n},...r===void 0?{}:{recordIds:r},enabled:!!v&&!!b}),S=f(e,n),C=p(e),w=d(e),T=m(e),E=C.isPending||w.isPending||T.isPending,O=A.useCallback(async(e={})=>{let i=n?await C.mutateAsync({recordId:n,actionName:t,payload:e}):r?.length?await T.mutateAsync({actionName:t,ids:r,payload:e}):await w.mutateAsync({actionName:t,payload:e});return q(_,i.notice),a?.(),i},[n,r,t,C,T,w,_,a]);if(!o)return(0,j.jsx)(`p`,{className:`text-muted-foreground`,children:g(`common:loading`)});if(!v)return(0,j.jsx)(J,{title:g(`action:notFound`,{action:t})});if(!y||!b)return(0,j.jsx)(J,{title:g(`action:componentMissing`,{component:y??t}),hint:g(`action:componentMissingHint`)});if(x.isError)return(0,j.jsx)(J,{title:g(`action:loadFailed`),hint:x.error instanceof Error?x.error.message:void 0});let k={action:v,resource:o,resourceId:e,...n===void 0?{}:{recordId:n},...r===void 0?{}:{recordIds:r},...S.data?.record?{record:S.data.record}:{},...x.data?.records?{records:x.data.records}:{},...x.data?{data:x.data}:{},loading:x.isLoading||!!n&&S.isLoading,invoke:O,submitting:E,close:i};return(0,j.jsx)(b,{...k})}export{H as a,R as c,G as i,z as l,q as n,B as o,K as r,V as s,Y as t};
@@ -1,2 +1 @@
1
- import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{t as r}from"./arrow-left-yVCaEJJu.js";import{o as i}from"./dist-DPxQeZn3.js";import{N as a,T as o,b as s}from"./hooks-BiOfAnEq.js";import{a as c,c as l,l as u,t as d}from"./action-component-host-8DE4kuUJ.js";import{a as f,i as p,n as m,t as h}from"./card-BYbadRar.js";import{o as g}from"./index-CASCzvYu.js";var _=e(t(),1),v=n();function y({resourceId:e,actionName:t,recordId:n,recordIds:y}){let b=o(e),x=s(e,n),{t:S}=a(),C=g(),w=b?.actions?.find(e=>e.name===t),T=w?c(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)(l,{items:[u(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)(h,{children:[(0,v.jsxs)(p,{className:`flex flex-row items-center justify-between gap-3`,children:[(0,v.jsx)(f,{className:`truncate`,children:T}),(0,v.jsxs)(i,{variant:`outline`,size:`sm`,onClick:E,className:`shrink-0`,children:[(0,v.jsx)(r,{className:`size-4`}),(0,v.jsx)(`span`,{className:`hidden sm:inline`,children:S(`common:back`)})]})]}),(0,v.jsx)(m,{children:(0,v.jsx)(d,{resourceId:e,actionName:t,...n===void 0?{}:{recordId:n},...y===void 0?{}:{recordIds:y},onClose:E})})]})]})}export{y as ResourceActionPage};
2
- //# sourceMappingURL=action-page-D6BbXzUo.js.map
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{t as r}from"./arrow-left-yVCaEJJu.js";import{o as i}from"./dist-DPxQeZn3.js";import{N as a,T as o,b as s}from"./hooks-Djo7VZHf.js";import{a as c,c as l,l as u,t as d}from"./action-component-host-BhkBbvy5.js";import{a as f,i as p,n as m,t as h}from"./card-BYbadRar.js";import{o as g}from"./index-SG_6EpY3.js";var _=e(t(),1),v=n();function y({resourceId:e,actionName:t,recordId:n,recordIds:y}){let b=o(e),x=s(e,n),{t:S}=a(),C=g(),w=b?.actions?.find(e=>e.name===t),T=w?c(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)(l,{items:[u(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)(h,{children:[(0,v.jsxs)(p,{className:`flex flex-row items-center justify-between gap-3`,children:[(0,v.jsx)(f,{className:`truncate`,children:T}),(0,v.jsxs)(i,{variant:`outline`,size:`sm`,onClick:E,className:`shrink-0`,children:[(0,v.jsx)(r,{className:`size-4`}),(0,v.jsx)(`span`,{className:`hidden sm:inline`,children:S(`common:back`)})]})]}),(0,v.jsx)(m,{children:(0,v.jsx)(d,{resourceId:e,actionName:t,...n===void 0?{}:{recordId:n},...y===void 0?{}:{recordIds:y},onClose:E})})]})]})}export{y as ResourceActionPage};
@@ -1,2 +1 @@
1
- import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{t as r}from"./bot-CuDPD_ZU.js";import{n as ee,t as te}from"./send-Bzb_4uMT.js";import{t as i}from"./plus-D7PHzena.js";import{t as a}from"./x-c-gfVPJa.js";import{o}from"./dist-DPxQeZn3.js";import{t as s}from"./textarea-C2w7TG3h.js";import{I as c,J as l,N as u,R as d,d as f,z as p}from"./hooks-BiOfAnEq.js";import{t as m}from"./badge-CdW_Z0lB.js";import{n as h,t as g}from"./card-BYbadRar.js";import{t as ne}from"./richtext-render-DaiNQPjZ.js";import{t as _}from"./uuid-DLSnbsz2.js";import{n as re}from"./use-dashboard-charts-D7-ctwCE.js";import{F as ie,M as v,N as ae,X as oe,_ as se,a as ce,at as le,g as ue,h as y,j as de,k as b,l as x,m as S,mt as fe,o as pe,st as me,v as he,y as ge,z as _e}from"./index-CASCzvYu.js";var C=e(t(),1),w=n(),T=()=>_(),E=5,D=(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 O(){let e=c(),t=l(),n=x(),_=pe(),O=ce(),{locale:k,t:A}=u(),[j,M]=C.useState(!1),[N,P]=C.useState(``),[F,I]=C.useState([]),[L,R]=C.useState(()=>T()),[z,B]=C.useState(null),[V,H]=C.useState([]),U=f().aiAssistant,W=p({queryKey:[`modern-admin`,`ai-assistant`,`settings`],queryFn:()=>e.getAiAssistantSettings(),enabled:U}),G=d({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=p({queryKey:[`modern-admin`,`ai-assistant`,`chats`],queryFn:()=>e.listAiAssistantChats(),enabled:U&&j&&W.data?.configured===!0}),q=p({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}});C.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`){re();continue}e.kind===`navigate`&&(M(!1),_(e.route))}return}(e.status===`failed`||e.status===`cancelled`)&&(n.error({message:e.error??A(`aiAssistant:taskFailed`)}),B(null))}},[z,_,n,t,q.data,A]);let J=C.useCallback(e=>{let t={id:T(),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]),ve=C.useCallback(()=>{R(T()),I([]),P(``),H([]),B(null)},[]),ye=C.useCallback(async t=>{try{let n=await e.getAiAssistantTask(t.taskId);R(t.conversationId),I(D(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(C.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>=E,Z=()=>{let e=N.trim();if(e){if(Y){if(X)return;H(t=>[...t,{id:T(),content:e}]),P(``);return}P(``),J(e)}},Q=W.data.configured,be=Y||q.data?.status===`running`||q.data?.status===`pending`,$=typeof q.data?.progress==`number`?q.data.progress:null,xe=N.trim().length===0||Y&&X;return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`div`,{className:`fixed bottom-4 right-4 z-40`,children:(0,w.jsxs)(o,{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,w.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,w.jsx)(ee,{className:`size-4 shrink-0`})]})}),(0,w.jsx)(S,{open:j,onOpenChange:M,children:(0,w.jsxs)(ue,{hideCloseButton:!0,className:`flex w-full flex-col gap-0 sm:max-w-xl`,children:[(0,w.jsx)(he,{className:`border-b border-border pb-4`,children:(0,w.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,w.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,w.jsxs)(ge,{className:`flex items-center gap-2`,children:[(0,w.jsx)(r,{className:`size-5`}),A(`aiAssistant:title`)]}),(0,w.jsx)(se,{children:A(`aiAssistant:description`)})]}),(0,w.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5`,children:[Q&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(b,{children:[(0,w.jsx)(_e,{asChild:!0,children:(0,w.jsx)(o,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":A(`aiAssistant:history`),children:(0,w.jsx)(me,{className:`size-4`})})}),(0,w.jsxs)(de,{align:`end`,className:`w-72`,children:[(0,w.jsx)(ae,{children:A(`aiAssistant:history`)}),(0,w.jsx)(ie,{}),K.isLoading&&(0,w.jsx)(v,{disabled:!0,children:A(`common:loading`)}),!K.isLoading&&(K.data?.length??0)===0&&(0,w.jsx)(v,{disabled:!0,children:A(`aiAssistant:history.empty`)}),K.data?.map(e=>(0,w.jsxs)(v,{className:`flex-col items-start gap-0 py-2`,onSelect:()=>{ye(e)},children:[(0,w.jsx)(`span`,{className:`line-clamp-1 w-full text-sm font-medium`,children:e.title}),(0,w.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,w.jsx)(o,{type:`button`,variant:`ghost`,size:`icon`,onClick:ve,"aria-label":A(`aiAssistant:newChat`),children:(0,w.jsx)(i,{className:`size-4`})})]}),(0,w.jsx)(y,{asChild:!0,children:(0,w.jsx)(o,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":A(`common:close`),children:(0,w.jsx)(a,{className:`size-4`})})})]})]})}),Q?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(oe,{className:`flex-1 px-4 py-4`,children:(0,w.jsxs)(`div`,{className:`space-y-3`,children:[F.length===0&&(0,w.jsx)(g,{children:(0,w.jsxs)(h,{className:`space-y-2 p-4 text-sm text-muted-foreground`,children:[(0,w.jsx)(`div`,{className:`font-medium text-foreground`,children:A(`aiAssistant:tryAsking`)}),(0,w.jsxs)(`div`,{children:[`- `,A(`aiAssistant:tryAsking.example1`)]}),(0,w.jsxs)(`div`,{children:[`- `,A(`aiAssistant:tryAsking.example2`)]}),(0,w.jsxs)(`div`,{children:[`- `,A(`aiAssistant:tryAsking.example3`)]})]})}),F.map(e=>(0,w.jsx)(`div`,{className:e.role===`user`?`flex justify-end`:`flex justify-start`,children:(0,w.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,w.jsx)(ne,{value:e.content,format:`markdown`,className:`text-sm [&_pre]:overflow-x-auto [&_pre]:text-xs`}):(0,w.jsx)(`div`,{className:`whitespace-pre-wrap`,children:e.content}),e.citations&&e.citations.length>0&&(0,w.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,w.jsx)(`button`,{type:`button`,className:`cursor-pointer`,onClick:()=>{M(!1),_({name:`show`,resourceId:e.resourceId,recordId:e.recordId})},children:(0,w.jsx)(m,{variant:`outline`,children:n})},r):(0,w.jsx)(`button`,{type:`button`,className:`cursor-pointer`,onClick:()=>{M(!1),_({name:`list`,resourceId:e.resourceId})},children:(0,w.jsx)(m,{variant:`outline`,children:n})},r)})})]})},e.id)),be&&(0,w.jsx)(`div`,{className:`flex justify-start`,children:(0,w.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,w.jsx)(fe,{className:`size-4 animate-spin`}),$==null?A(`aiAssistant:thinking`):A(`aiAssistant:thinkingProgress`,{progress:$})]})})]})}),(0,w.jsxs)(`div`,{className:`border-t border-border bg-background/95 px-3 py-2`,children:[V.length>0&&(0,w.jsx)(`div`,{className:`mb-2 space-y-1`,children:V.map((e,t)=>(0,w.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md bg-muted/50 px-2 py-1 text-sm`,children:[(0,w.jsxs)(`span`,{className:`shrink-0 tabular-nums text-xs text-muted-foreground`,children:[`(`,t+1,`)`]}),(0,w.jsx)(`span`,{className:`flex-1 truncate`,title:e.content,children:e.content}),(0,w.jsx)(o,{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,w.jsx)(a,{className:`size-3.5`})})]},e.id))}),(0,w.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),Z()},children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,w.jsx)(s,{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,w.jsx)(o,{type:`submit`,disabled:xe,"aria-label":A(`aiAssistant:send`),className:`size-8 shrink-0 rounded-full p-0`,children:(0,w.jsx)(te,{className:`size-4`})})]}),(0,w.jsx)(`p`,{className:`px-1 pb-1 text-xs text-muted-foreground`,children:A(`aiAssistant:input.hint`)})]})]})]}):(0,w.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-4 px-4 text-center`,children:[(0,w.jsxs)(`div`,{className:`space-y-2`,children:[(0,w.jsx)(`div`,{className:`text-lg font-semibold`,children:A(`aiAssistant:notConfigured.title`)}),(0,w.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:A(`aiAssistant:notConfigured.description`)})]}),W.data.canManage&&(0,w.jsxs)(o,{variant:`outline`,onClick:()=>{M(!1),_({name:`settings`,section:`ai-assistant`})},children:[(0,w.jsx)(le,{className:`size-4`}),A(`aiAssistant:notConfigured.openSettings`)]})]})]})})]})}export{O as AiAssistantWidget};
2
- //# sourceMappingURL=ai-assistant-widget-BORa8_hT.js.map
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{t as r}from"./bot-CuDPD_ZU.js";import{n as ee,t as te}from"./send-Bzb_4uMT.js";import{t as i}from"./plus-D7PHzena.js";import{t as a}from"./x-c-gfVPJa.js";import{o}from"./dist-DPxQeZn3.js";import{t as s}from"./textarea-C2w7TG3h.js";import{I as c,J as l,N as u,R as d,d as f,z as p}from"./hooks-Djo7VZHf.js";import{t as m}from"./badge-CdW_Z0lB.js";import{n as h,t as g}from"./card-BYbadRar.js";import{t as ne}from"./richtext-render-DaiNQPjZ.js";import{t as _}from"./uuid-DLSnbsz2.js";import{n as re}from"./use-dashboard-charts-D7-ctwCE.js";import{F as ie,M as v,N as ae,X as oe,_ as se,a as ce,at as le,g as ue,h as y,j as de,k as b,l as x,m as S,mt as fe,o as pe,st as me,v as he,y as ge,z as _e}from"./index-SG_6EpY3.js";var C=e(t(),1),w=n(),T=()=>_(),E=5,D=(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 O(){let e=c(),t=l(),n=x(),_=pe(),O=ce(),{locale:k,t:A}=u(),[j,M]=C.useState(!1),[N,P]=C.useState(``),[F,I]=C.useState([]),[L,R]=C.useState(()=>T()),[z,B]=C.useState(null),[V,H]=C.useState([]),U=f().aiAssistant,W=p({queryKey:[`modern-admin`,`ai-assistant`,`settings`],queryFn:()=>e.getAiAssistantSettings(),enabled:U}),G=d({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=p({queryKey:[`modern-admin`,`ai-assistant`,`chats`],queryFn:()=>e.listAiAssistantChats(),enabled:U&&j&&W.data?.configured===!0}),q=p({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}});C.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`){re();continue}e.kind===`navigate`&&(M(!1),_(e.route))}return}(e.status===`failed`||e.status===`cancelled`)&&(n.error({message:e.error??A(`aiAssistant:taskFailed`)}),B(null))}},[z,_,n,t,q.data,A]);let J=C.useCallback(e=>{let t={id:T(),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]),ve=C.useCallback(()=>{R(T()),I([]),P(``),H([]),B(null)},[]),ye=C.useCallback(async t=>{try{let n=await e.getAiAssistantTask(t.taskId);R(t.conversationId),I(D(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(C.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>=E,Z=()=>{let e=N.trim();if(e){if(Y){if(X)return;H(t=>[...t,{id:T(),content:e}]),P(``);return}P(``),J(e)}},Q=W.data.configured,be=Y||q.data?.status===`running`||q.data?.status===`pending`,$=typeof q.data?.progress==`number`?q.data.progress:null,xe=N.trim().length===0||Y&&X;return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`div`,{className:`fixed bottom-4 right-4 z-40`,children:(0,w.jsxs)(o,{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,w.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,w.jsx)(ee,{className:`size-4 shrink-0`})]})}),(0,w.jsx)(S,{open:j,onOpenChange:M,children:(0,w.jsxs)(ue,{hideCloseButton:!0,className:`flex w-full flex-col gap-0 sm:max-w-xl`,children:[(0,w.jsx)(he,{className:`border-b border-border pb-4`,children:(0,w.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,w.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,w.jsxs)(ge,{className:`flex items-center gap-2`,children:[(0,w.jsx)(r,{className:`size-5`}),A(`aiAssistant:title`)]}),(0,w.jsx)(se,{children:A(`aiAssistant:description`)})]}),(0,w.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5`,children:[Q&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(b,{children:[(0,w.jsx)(_e,{asChild:!0,children:(0,w.jsx)(o,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":A(`aiAssistant:history`),children:(0,w.jsx)(me,{className:`size-4`})})}),(0,w.jsxs)(de,{align:`end`,className:`w-72`,children:[(0,w.jsx)(ae,{children:A(`aiAssistant:history`)}),(0,w.jsx)(ie,{}),K.isLoading&&(0,w.jsx)(v,{disabled:!0,children:A(`common:loading`)}),!K.isLoading&&(K.data?.length??0)===0&&(0,w.jsx)(v,{disabled:!0,children:A(`aiAssistant:history.empty`)}),K.data?.map(e=>(0,w.jsxs)(v,{className:`flex-col items-start gap-0 py-2`,onSelect:()=>{ye(e)},children:[(0,w.jsx)(`span`,{className:`line-clamp-1 w-full text-sm font-medium`,children:e.title}),(0,w.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,w.jsx)(o,{type:`button`,variant:`ghost`,size:`icon`,onClick:ve,"aria-label":A(`aiAssistant:newChat`),children:(0,w.jsx)(i,{className:`size-4`})})]}),(0,w.jsx)(y,{asChild:!0,children:(0,w.jsx)(o,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":A(`common:close`),children:(0,w.jsx)(a,{className:`size-4`})})})]})]})}),Q?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(oe,{className:`flex-1 px-4 py-4`,children:(0,w.jsxs)(`div`,{className:`space-y-3`,children:[F.length===0&&(0,w.jsx)(g,{children:(0,w.jsxs)(h,{className:`space-y-2 p-4 text-sm text-muted-foreground`,children:[(0,w.jsx)(`div`,{className:`font-medium text-foreground`,children:A(`aiAssistant:tryAsking`)}),(0,w.jsxs)(`div`,{children:[`- `,A(`aiAssistant:tryAsking.example1`)]}),(0,w.jsxs)(`div`,{children:[`- `,A(`aiAssistant:tryAsking.example2`)]}),(0,w.jsxs)(`div`,{children:[`- `,A(`aiAssistant:tryAsking.example3`)]})]})}),F.map(e=>(0,w.jsx)(`div`,{className:e.role===`user`?`flex justify-end`:`flex justify-start`,children:(0,w.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,w.jsx)(ne,{value:e.content,format:`markdown`,className:`text-sm [&_pre]:overflow-x-auto [&_pre]:text-xs`}):(0,w.jsx)(`div`,{className:`whitespace-pre-wrap`,children:e.content}),e.citations&&e.citations.length>0&&(0,w.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,w.jsx)(`button`,{type:`button`,className:`cursor-pointer`,onClick:()=>{M(!1),_({name:`show`,resourceId:e.resourceId,recordId:e.recordId})},children:(0,w.jsx)(m,{variant:`outline`,children:n})},r):(0,w.jsx)(`button`,{type:`button`,className:`cursor-pointer`,onClick:()=>{M(!1),_({name:`list`,resourceId:e.resourceId})},children:(0,w.jsx)(m,{variant:`outline`,children:n})},r)})})]})},e.id)),be&&(0,w.jsx)(`div`,{className:`flex justify-start`,children:(0,w.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,w.jsx)(fe,{className:`size-4 animate-spin`}),$==null?A(`aiAssistant:thinking`):A(`aiAssistant:thinkingProgress`,{progress:$})]})})]})}),(0,w.jsxs)(`div`,{className:`border-t border-border bg-background/95 px-3 py-2`,children:[V.length>0&&(0,w.jsx)(`div`,{className:`mb-2 space-y-1`,children:V.map((e,t)=>(0,w.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md bg-muted/50 px-2 py-1 text-sm`,children:[(0,w.jsxs)(`span`,{className:`shrink-0 tabular-nums text-xs text-muted-foreground`,children:[`(`,t+1,`)`]}),(0,w.jsx)(`span`,{className:`flex-1 truncate`,title:e.content,children:e.content}),(0,w.jsx)(o,{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,w.jsx)(a,{className:`size-3.5`})})]},e.id))}),(0,w.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),Z()},children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,w.jsx)(s,{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,w.jsx)(o,{type:`submit`,disabled:xe,"aria-label":A(`aiAssistant:send`),className:`size-8 shrink-0 rounded-full p-0`,children:(0,w.jsx)(te,{className:`size-4`})})]}),(0,w.jsx)(`p`,{className:`px-1 pb-1 text-xs text-muted-foreground`,children:A(`aiAssistant:input.hint`)})]})]})]}):(0,w.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-4 px-4 text-center`,children:[(0,w.jsxs)(`div`,{className:`space-y-2`,children:[(0,w.jsx)(`div`,{className:`text-lg font-semibold`,children:A(`aiAssistant:notConfigured.title`)}),(0,w.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:A(`aiAssistant:notConfigured.description`)})]}),W.data.canManage&&(0,w.jsxs)(o,{variant:`outline`,onClick:()=>{M(!1),_({name:`settings`,section:`ai-assistant`})},children:[(0,w.jsx)(le,{className:`size-4`}),A(`aiAssistant:notConfigured.openSettings`)]})]})]})})]})}export{O as AiAssistantWidget};
@@ -1,2 +1 @@
1
- import{t as e}from"./createLucideIcon-QE2kj6ru.js";var t=e(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]);export{t};
2
- //# sourceMappingURL=arrow-left-yVCaEJJu.js.map
1
+ import{t as e}from"./createLucideIcon-QE2kj6ru.js";var t=e(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]);export{t};
@@ -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{n as i,r as a,t as o}from"./key-BzJFbNbz.js";import{n as s,t as c}from"./trash-2-BIJVpWxv.js";import{n as l,t as u}from"./pencil-kFOObGrY.js";import{t as d}from"./file-text-MQF--yeB.js";import{t as f}from"./key-round-oSqmVdkQ.js";import{t as p}from"./x-c-gfVPJa.js";import{a as m,c as h,i as g,l as _,n as v,o as y,r as b,s as x,t as S}from"./calendar-p3BEC7Ac.js";import{o as C}from"./dist-DPxQeZn3.js";import{E as w,N as T,T as E,b as D,p as O,x as k}from"./hooks-Djo7VZHf.js";import{a as A,i as j,n as M,o as N,t as P}from"./select-Bs49X1wg.js";import{a as ee,i as te,n as ne}from"./useQueries-BIIIiVKJ.js";import{a as F,i as I,n as L,t as R}from"./card-BYbadRar.js";import{a as z,i as re,n as ie,r as ae,t as B}from"./user-directory-Cs4iA6fu.js";import{Et as oe,Y as V,ft as se,i as H,mt as ce,nt as U}from"./index-SG_6EpY3.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?g(e,K,new Date):v(e);return x(t)?t:void 0}function Y({from:e,to:t,onChange:n,disabled:i,className:o,labels:s={},locale:c}){let l=s.placeholder??`Select date range`,u=s.apply??`Apply`,d=s.clear??`Clear`,[f,g]=W.useState(!1),[_,v]=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);v(n??r?{from:n,to:r}:void 0)},[e,t]);let[x,w]=W.useState(()=>typeof window<`u`&&window.innerWidth>=640?2:1);W.useEffect(()=>{let e=window.matchMedia(`(min-width: 640px)`),t=e=>w(e.matches?2:1);return w(e.matches?2:1),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let[T,E]=W.useState(()=>{let t=J(e);return y(t??new Date)}),[D,O]=W.useState(()=>{let n=J(e),r=J(t),i=y(n??new Date);return r&&!b(i,r)?y(r):h(i,1)}),k=n=>{if(n){let n=J(e),r=J(t);v(n&&r?{from:n,to:r}:void 0);let i=y(n??new Date),a=r&&!b(i,r)?y(r):h(i,1);E(i),O(a)}else{let n=J(e),r=J(t);v(n??r?{from:n,to:r}:void 0)}g(n)},A=e=>{E(e),!b(e,D)&&e>D&&O(h(e,1))},j=e=>{O(e),!b(e,T)&&e<T&&E(h(e,-1))},M=e=>{v(e)},N=()=>{_?.from&&n(m(_.from,K),_.to?m(_.to,K):``),g(!1)},P=()=>{v(void 0),n(``,``),g(!1)},F=e=>{e.stopPropagation(),v(void 0),n(``,``)},I=J(e),L=J(t),R=!!(e||t),z=R?[I?m(I,q,{locale:c}):`…`,L?m(L,q,{locale:c}):`…`].join(` – `):null;return(0,G.jsxs)(ne,{open:f,onOpenChange:k,children:[(0,G.jsx)(ee,{asChild:!0,children:(0,G.jsxs)(C,{type:`button`,variant:`outline`,disabled:i,className:r(`h-9 w-full justify-start gap-2 px-3 font-normal`,!R&&`text-muted-foreground`,o),children:[(0,G.jsx)(a,{className:`size-4 shrink-0 opacity-60`}),(0,G.jsx)(`span`,{className:`flex-1 truncate text-left text-sm`,children:z??l}),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)(p,{className:`size-3.5`})})]})}),(0,G.jsxs)(te,{className:`w-auto p-0`,align:`start`,children:[x===2?(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row`,children:[(0,G.jsx)(S,{mode:`range`,locale:c,selected:_,onSelect:M,numberOfMonths:1,month:T,onMonthChange:A,endMonth:D,autoFocus:!0}),(0,G.jsx)(S,{mode:`range`,locale:c,selected:_,onSelect:M,numberOfMonths:1,month:D,onMonthChange:j,startMonth:T})]}):(0,G.jsx)(S,{mode:`range`,locale:c,selected:_,onSelect:M,numberOfMonths:1,defaultMonth:_?.from??_?.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)(C,{variant:`ghost`,size:`sm`,onClick:P,children:d}),(0,G.jsx)(C,{size:`sm`,onClick:N,disabled:!_?.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:d,iconClass:`text-muted-foreground`,bgClass:`bg-muted`,titleKey:``},Q={new:{Icon:i,iconClass:`text-blue-600 dark:text-blue-300`,bgClass:`bg-blue-100 dark:bg-blue-950/40`,titleKey:`audit:action.new`},edit:{Icon:u,iconClass:`text-emerald-600 dark:text-emerald-300`,bgClass:`bg-emerald-100 dark:bg-emerald-950/40`,titleKey:`audit:action.edit`},delete:{Icon:c,iconClass:`text-rose-600 dark:text-rose-300`,bgClass:`bg-rose-100 dark:bg-rose-950/40`,titleKey:`audit:action.delete`},bulkDelete:{Icon:c,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:o,iconClass:`text-amber-600 dark:text-amber-300`,bgClass:`bg-amber-100 dark:bg-amber-950/40`,titleKey:`audit:action.apiKeyCreate`},"apiKey.update":{Icon:f,iconClass:`text-amber-600 dark:text-amber-300`,bgClass:`bg-amber-100 dark:bg-amber-950/40`,titleKey:`audit:action.apiKeyUpdate`},"apiKey.delete":{Icon:c,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}=T(),n=w(),[r,i]=W.useState({}),a=O(r,$),o=W.useMemo(()=>(a.data?.pages??[]).flatMap(e=>e.events.slice(0,$)),[a.data]),s=W.useMemo(()=>Array.from(new Set(o.map(e=>e.userId).filter(e=>!!e))),[o]),c=ie(s),l=W.useMemo(()=>{let e={};for(let t of n)e[t.id]=t;return e},[n]),u=n.some(e=>e.id===B),d=de(t),f=W.useCallback(e=>new Intl.DateTimeFormat(t,{dateStyle:`medium`,timeStyle:`short`}).format(new Date(e)),[t]),p=W.useMemo(()=>Date.now(),[o]),m=W.useRef(null),{hasNextPage:h,isFetchingNextPage:g,fetchNextPage:v}=a;W.useEffect(()=>{let e=m.current;if(!e)return;let t=new IntersectionObserver(e=>{e[0]?.isIntersecting&&h&&!g&&v()},{rootMargin:`200px`});return t.observe(e),()=>t.disconnect()},[h,g,v]);let y=e=>{i(t=>({...t,...e}))};return(0,G.jsxs)(`div`,{className:`space-y-2 sm:space-y-4`,children:[(0,G.jsxs)(R,{children:[(0,G.jsx)(I,{children:(0,G.jsx)(F,{children:e(`audit:title`)})}),(0,G.jsxs)(L,{className:`grid gap-3 sm:grid-cols-2 md:grid-cols-4`,children:[(0,G.jsxs)(P,{value:r.resourceId??X,onValueChange:e=>y({resourceId:e===X?void 0:e}),children:[(0,G.jsx)(A,{"aria-label":e(`audit:resource`),children:(0,G.jsx)(N,{})}),(0,G.jsxs)(M,{children:[(0,G.jsx)(j,{value:X,children:e(`audit:allResources`)}),Object.entries(Z).map(([t,n])=>(0,G.jsx)(j,{value:t,children:e(n)},t)),n.map(e=>(0,G.jsxs)(j,{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)(P,{value:r.actions?.[0]??X,onValueChange:e=>y({actions:e===X?void 0:[e]}),children:[(0,G.jsx)(A,{"aria-label":e(`audit:action`),children:(0,G.jsx)(N,{})}),(0,G.jsxs)(M,{children:[(0,G.jsx)(j,{value:X,children:e(`audit:allActions`)}),le.map(t=>{let n=Q[t];return(0,G.jsx)(j,{value:t,children:n?.titleKey?e(n.titleKey):t},t)})]})]}),(0,G.jsx)(U,{value:r.recordId??``,placeholder:e(`audit:recordId`),onChange:e=>y({recordId:e.target.value||void 0})}),(0,G.jsx)(U,{value:r.userId??``,placeholder:e(`audit:userId`),onChange:e=>y({userId:e.target.value||void 0})}),(0,G.jsx)(Y,{from:r.from,to:r.to,onChange:(e,t)=>y({from:e||void 0,to:t||void 0}),className:`sm:col-span-2 md:col-span-4`,locale:_(t),labels:{placeholder:e(`audit:dateRangePlaceholder`),apply:e(`common:apply`),clear:e(`common:clear`)}})]})]}),(0,G.jsx)(R,{children:(0,G.jsxs)(L,{children:[a.isLoading?(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(V,{className:`h-20 w-full`}),(0,G.jsx)(V,{className:`h-20 w-full`}),(0,G.jsx)(V,{className:`h-20 w-full`})]}):a.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`)}):o.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:o.map((e,t)=>(0,G.jsx)(me,{entry:e,resource:l[e.resourceId],user:e.userId?c.get(e.userId)??null:null,userResourceId:u?B:void 0,now:p,formatRelative:d,formatAbsolute:f},e.id??`${e.at}:${t}`))}),(0,G.jsx)(`div`,{ref:m,className:`h-1`,"aria-hidden":!0}),a.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:c}){let{t:u}=T(),[d,f]=W.useState(!1),p=Q[e.action]??ue,m=p.Icon,h=p.titleKey?u(p.titleKey):e.action,g=e.userId??u(`history:unknownUser`),_=ae(n,g),v=u(`audit:by`,{user:`\0`}).split(`\0`),y=v[0]??``,b=v[1]??``,x=Z[e.resourceId],S=x?u(x):t?.name??e.resourceId,w=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)(H,{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)(l,{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,` `,u(`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)(H,{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:c(e.at),children:o(e.at,a)})]}),w&&(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsxs)(C,{variant:`ghost`,size:`sm`,className:`-ml-2 h-7 px-2 text-xs`,onClick:()=>f(e=>!e),"aria-expanded":d,children:[d?(0,G.jsx)(s,{className:`size-3.5`}):(0,G.jsx)(oe,{className:`size-3.5`}),u(d?`audit:hideChanges`:`audit:viewChanges`)]}),d&&(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}=T(),i=E(e),a=k(e,t,{limit:50}),o=D(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)(V,{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,2 +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};
2
- //# sourceMappingURL=badge-CdW_Z0lB.js.map
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,2 +1 @@
1
- import{t as e}from"./createLucideIcon-QE2kj6ru.js";var t=e(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]);export{t};
2
- //# sourceMappingURL=bot-CuDPD_ZU.js.map
1
+ import{t as e}from"./createLucideIcon-QE2kj6ru.js";var t=e(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]);export{t};
@@ -1,2 +1 @@
1
- import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{t as r}from"./trash-2-BIJVpWxv.js";import{t as i}from"./rotate-ccw-AB1VcvbK.js";import{o as a}from"./dist-DPxQeZn3.js";import{E as o,N as s,m as c,o as l,w as u}from"./hooks-BiOfAnEq.js";import{a as d,i as f,n as p,o as m,r as h,t as g}from"./select-BOe2daO9.js";import{t as _}from"./badge-CdW_Z0lB.js";import{a as v,i as y,n as b,r as x,t as S}from"./card-BYbadRar.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{Y as k,l as A}from"./index-CASCzvYu.js";var j=e(t(),1),M=n(),N=e=>e.reduce((e,t)=>e+t,0);function P(){let{t:e,locale:t}=s(),n=A(),P=o(),I=l(),L=c(),R=u(),[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)(y,{children:(0,M.jsx)(v,{children:e(`cache:load.error`)})}),(0,M.jsx)(b,{children:(0,M.jsxs)(a,{variant:`outline`,onClick:()=>void I.refetch(),children:[(0,M.jsx)(i,{"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)(y,{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)(v,{children:e(`cache:title`)}),(0,M.jsx)(x,{children:e(`cache:description`)})]}),(0,M.jsxs)(a,{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)(i,{"data-icon":`inline-start`}),e(`cache:reset.action`)]})]}),(0,M.jsxs)(b,{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)(y,{children:[(0,M.jsx)(v,{children:e(`cache:quarantine.title`)}),(0,M.jsx)(x,{children:e(`cache:quarantine.description`)})]}),(0,M.jsx)(b,{className:`flex flex-wrap gap-2`,children:I.data?.dirtyTags.map(e=>(0,M.jsx)(_,{variant:`destructive`,children:e},e))})]}),(0,M.jsxs)(S,{children:[(0,M.jsxs)(y,{children:[(0,M.jsx)(v,{children:e(`cache:invalidate.title`)}),(0,M.jsx)(x,{children:e(`cache:invalidate.description`)})]}),(0,M.jsxs)(b,{className:`flex flex-col gap-2 sm:flex-row`,children:[(0,M.jsxs)(g,{value:z,onValueChange:B,children:[(0,M.jsx)(d,{"aria-label":e(`cache:invalidate.resource`),className:`sm:max-w-sm`,children:(0,M.jsx)(m,{placeholder:e(`cache:invalidate.resource`)})}),(0,M.jsx)(p,{children:(0,M.jsx)(h,{children:P.map(e=>(0,M.jsx)(f,{value:e.id,children:e.name},e.id))})})]}),(0,M.jsxs)(a,{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)(r,{"data-icon":`inline-start`}),e(`cache:invalidate.action`)]})]})]}),(0,M.jsxs)(S,{children:[(0,M.jsxs)(y,{children:[(0,M.jsx)(v,{children:e(`cache:table.title`)}),(0,M.jsx)(x,{children:e(`cache:instance`).replace(`{id}`,I.data?.instanceId??`—`)})]}),(0,M.jsx)(b,{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)(_,{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};
2
- //# sourceMappingURL=cache-page-CBKj7WFq.js.map
1
+ import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{t as r}from"./trash-2-BIJVpWxv.js";import{t as i}from"./rotate-ccw-AB1VcvbK.js";import{o as a}from"./dist-DPxQeZn3.js";import{E as o,N as s,m as c,o as l,w as u}from"./hooks-Djo7VZHf.js";import{a as d,i as f,n as p,o as m,r as h,t as g}from"./select-Bs49X1wg.js";import{t as _}from"./badge-CdW_Z0lB.js";import{a as v,i as y,n as b,r as x,t as S}from"./card-BYbadRar.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{Y as k,l as A}from"./index-SG_6EpY3.js";var j=e(t(),1),M=n(),N=e=>e.reduce((e,t)=>e+t,0);function P(){let{t:e,locale:t}=s(),n=A(),P=o(),I=l(),L=c(),R=u(),[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)(y,{children:(0,M.jsx)(v,{children:e(`cache:load.error`)})}),(0,M.jsx)(b,{children:(0,M.jsxs)(a,{variant:`outline`,onClick:()=>void I.refetch(),children:[(0,M.jsx)(i,{"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)(y,{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)(v,{children:e(`cache:title`)}),(0,M.jsx)(x,{children:e(`cache:description`)})]}),(0,M.jsxs)(a,{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)(i,{"data-icon":`inline-start`}),e(`cache:reset.action`)]})]}),(0,M.jsxs)(b,{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)(y,{children:[(0,M.jsx)(v,{children:e(`cache:quarantine.title`)}),(0,M.jsx)(x,{children:e(`cache:quarantine.description`)})]}),(0,M.jsx)(b,{className:`flex flex-wrap gap-2`,children:I.data?.dirtyTags.map(e=>(0,M.jsx)(_,{variant:`destructive`,children:e},e))})]}),(0,M.jsxs)(S,{children:[(0,M.jsxs)(y,{children:[(0,M.jsx)(v,{children:e(`cache:invalidate.title`)}),(0,M.jsx)(x,{children:e(`cache:invalidate.description`)})]}),(0,M.jsxs)(b,{className:`flex flex-col gap-2 sm:flex-row`,children:[(0,M.jsxs)(g,{value:z,onValueChange:B,children:[(0,M.jsx)(d,{"aria-label":e(`cache:invalidate.resource`),className:`sm:max-w-sm`,children:(0,M.jsx)(m,{placeholder:e(`cache:invalidate.resource`)})}),(0,M.jsx)(p,{children:(0,M.jsx)(h,{children:P.map(e=>(0,M.jsx)(f,{value:e.id,children:e.name},e.id))})})]}),(0,M.jsxs)(a,{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)(r,{"data-icon":`inline-start`}),e(`cache:invalidate.action`)]})]})]}),(0,M.jsxs)(S,{children:[(0,M.jsxs)(y,{children:[(0,M.jsx)(v,{children:e(`cache:table.title`)}),(0,M.jsx)(x,{children:e(`cache:instance`).replace(`{id}`,I.data?.instanceId??`—`)})]}),(0,M.jsx)(b,{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)(_,{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};