@solidxai/core-ui 0.1.19-beta.0 → 0.1.19-beta.1

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 (512) hide show
  1. package/README.md +19 -0
  2. package/dist/components/common/SolidPopupContainer.d.ts.map +1 -1
  3. package/dist/components/common/SolidPopupContainer.js +3 -2
  4. package/dist/components/common/SolidPopupContainer.js.map +1 -1
  5. package/dist/components/common/SolidPopupContainer.tsx +3 -2
  6. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.d.ts.map +1 -1
  7. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +4 -1
  8. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
  9. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +11 -5
  10. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  11. package/dist/components/core/chatter/SolidChatter.js +2 -1
  12. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  13. package/dist/components/core/chatter/SolidChatter.tsx +2 -0
  14. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +2 -0
  15. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
  16. package/dist/components/core/chatter/SolidChatterMessageBox.js +7 -4
  17. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  18. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +8 -3
  19. package/dist/components/core/chatter/SolidChatterMessageWidget.d.ts +5 -0
  20. package/dist/components/core/chatter/SolidChatterMessageWidget.d.ts.map +1 -0
  21. package/dist/components/core/chatter/SolidChatterMessageWidget.js +85 -0
  22. package/dist/components/core/chatter/SolidChatterMessageWidget.js.map +1 -0
  23. package/dist/components/core/chatter/SolidChatterMessageWidget.tsx +59 -0
  24. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  25. package/dist/components/core/common/SolidGlobalSearchElement.js +6 -5
  26. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  27. package/dist/components/core/common/SolidGlobalSearchElement.tsx +6 -5
  28. package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.d.ts +11 -0
  29. package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.d.ts.map +1 -0
  30. package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.js +102 -0
  31. package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.js.map +1 -0
  32. package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.tsx +129 -0
  33. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.d.ts +4 -0
  34. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.d.ts.map +1 -0
  35. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.js +29 -0
  36. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.js.map +1 -0
  37. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.module.css +226 -0
  38. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.tsx +57 -0
  39. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.d.ts +4 -0
  40. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.d.ts.map +1 -0
  41. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.js +33 -0
  42. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.js.map +1 -0
  43. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.tsx +47 -0
  44. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.d.ts +5 -0
  45. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.d.ts.map +1 -0
  46. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.js +59 -0
  47. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.js.map +1 -0
  48. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.tsx +82 -0
  49. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.d.ts +17 -0
  50. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.d.ts.map +1 -0
  51. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.js +258 -0
  52. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.js.map +1 -0
  53. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.tsx +286 -0
  54. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
  55. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +102 -62
  56. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
  57. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +116 -106
  58. package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.d.ts +6 -0
  59. package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.d.ts.map +1 -0
  60. package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.js +37 -0
  61. package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.js.map +1 -0
  62. package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.tsx +89 -0
  63. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.d.ts +3 -0
  64. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.d.ts.map +1 -0
  65. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.js +18 -0
  66. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.js.map +1 -0
  67. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.tsx +51 -0
  68. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.d.ts +10 -0
  69. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.d.ts.map +1 -0
  70. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.js +63 -0
  71. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.js.map +1 -0
  72. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.tsx +111 -0
  73. package/dist/components/core/field/FieldListViewData.d.ts.map +1 -1
  74. package/dist/components/core/field/FieldListViewData.js +29 -9
  75. package/dist/components/core/field/FieldListViewData.js.map +1 -1
  76. package/dist/components/core/field/FieldListViewData.tsx +7 -6
  77. package/dist/components/core/form/SolidFormView.d.ts +1 -0
  78. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  79. package/dist/components/core/form/SolidFormView.js +49 -48
  80. package/dist/components/core/form/SolidFormView.js.map +1 -1
  81. package/dist/components/core/form/SolidFormView.tsx +4 -3
  82. package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
  83. package/dist/components/core/form/fields/SolidPasswordField.js +13 -1
  84. package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
  85. package/dist/components/core/form/fields/SolidPasswordField.tsx +14 -3
  86. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  87. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  88. package/dist/components/core/kanban/KanbanBoard.js +2 -2
  89. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  90. package/dist/components/core/kanban/KanbanBoard.tsx +5 -1
  91. package/dist/components/core/kanban/KanbanCard.d.ts +3 -0
  92. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  93. package/dist/components/core/kanban/KanbanCard.js +5 -4
  94. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  95. package/dist/components/core/kanban/KanbanCard.tsx +31 -11
  96. package/dist/components/core/kanban/KanbanColumn.d.ts +5 -1
  97. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  98. package/dist/components/core/kanban/KanbanColumn.js +14 -3
  99. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  100. package/dist/components/core/kanban/KanbanColumn.tsx +43 -3
  101. package/dist/components/core/kanban/SolidKanbanView.d.ts +2 -0
  102. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  103. package/dist/components/core/kanban/SolidKanbanView.js +90 -52
  104. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  105. package/dist/components/core/kanban/SolidKanbanView.tsx +93 -13
  106. package/dist/components/core/list/SolidDataTable.d.ts +2 -1
  107. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  108. package/dist/components/core/list/SolidDataTable.js +2 -2
  109. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  110. package/dist/components/core/list/SolidDataTable.tsx +3 -0
  111. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  112. package/dist/components/core/list/SolidListView.js +114 -57
  113. package/dist/components/core/list/SolidListView.js.map +1 -1
  114. package/dist/components/core/list/SolidListView.tsx +71 -7
  115. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
  116. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +14 -0
  117. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
  118. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +13 -0
  119. package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.d.ts +3 -0
  120. package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.d.ts.map +1 -0
  121. package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.js +51 -0
  122. package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.js.map +1 -0
  123. package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.tsx +60 -0
  124. package/dist/components/core/list/widgets/SolidIconNameListViewWidget.d.ts +4 -0
  125. package/dist/components/core/list/widgets/SolidIconNameListViewWidget.d.ts.map +1 -0
  126. package/dist/components/core/list/widgets/SolidIconNameListViewWidget.js +24 -0
  127. package/dist/components/core/list/widgets/SolidIconNameListViewWidget.js.map +1 -0
  128. package/dist/components/core/list/widgets/SolidIconNameListViewWidget.tsx +32 -0
  129. package/dist/components/core/model/ModelListViewData.d.ts.map +1 -1
  130. package/dist/components/core/model/ModelListViewData.js +6 -23
  131. package/dist/components/core/model/ModelListViewData.js.map +1 -1
  132. package/dist/components/core/model/ModelListViewData.tsx +1 -48
  133. package/dist/components/core/solid-agent/AgentModelIndicator.d.ts +5 -0
  134. package/dist/components/core/solid-agent/AgentModelIndicator.d.ts.map +1 -0
  135. package/dist/components/core/solid-agent/AgentModelIndicator.js +14 -0
  136. package/dist/components/core/solid-agent/AgentModelIndicator.js.map +1 -0
  137. package/dist/components/core/solid-agent/AgentModelIndicator.tsx +40 -0
  138. package/dist/components/core/solid-agent/AgentSignIn.d.ts +12 -0
  139. package/dist/components/core/solid-agent/AgentSignIn.d.ts.map +1 -0
  140. package/dist/components/core/solid-agent/AgentSignIn.js +82 -0
  141. package/dist/components/core/solid-agent/AgentSignIn.js.map +1 -0
  142. package/dist/components/core/solid-agent/AgentSignIn.tsx +91 -0
  143. package/dist/components/core/solid-agent/SolidAgent.module.css +596 -0
  144. package/dist/components/core/solid-agent/SolidAgentChat.d.ts +30 -0
  145. package/dist/components/core/solid-agent/SolidAgentChat.d.ts.map +1 -0
  146. package/dist/components/core/solid-agent/SolidAgentChat.js +300 -0
  147. package/dist/components/core/solid-agent/SolidAgentChat.js.map +1 -0
  148. package/dist/components/core/solid-agent/SolidAgentChat.tsx +451 -0
  149. package/dist/components/core/solid-agent/SolidAgentEmbedded.d.ts +44 -0
  150. package/dist/components/core/solid-agent/SolidAgentEmbedded.d.ts.map +1 -0
  151. package/dist/components/core/solid-agent/SolidAgentEmbedded.js +46 -0
  152. package/dist/components/core/solid-agent/SolidAgentEmbedded.js.map +1 -0
  153. package/dist/components/core/solid-agent/SolidAgentEmbedded.tsx +87 -0
  154. package/dist/components/core/solid-agent/SolidAgentHost.d.ts +8 -0
  155. package/dist/components/core/solid-agent/SolidAgentHost.d.ts.map +1 -0
  156. package/dist/components/core/solid-agent/SolidAgentHost.js +152 -0
  157. package/dist/components/core/solid-agent/SolidAgentHost.js.map +1 -0
  158. package/dist/components/core/solid-agent/SolidAgentHost.tsx +164 -0
  159. package/dist/components/core/solid-agent/SolidAgentMarkdown.d.ts +16 -0
  160. package/dist/components/core/solid-agent/SolidAgentMarkdown.d.ts.map +1 -0
  161. package/dist/components/core/solid-agent/SolidAgentMarkdown.js +161 -0
  162. package/dist/components/core/solid-agent/SolidAgentMarkdown.js.map +1 -0
  163. package/dist/components/core/solid-agent/SolidAgentMarkdown.tsx +133 -0
  164. package/dist/components/core/solid-agent/SolidAgentMount.d.ts +3 -0
  165. package/dist/components/core/solid-agent/SolidAgentMount.d.ts.map +1 -0
  166. package/dist/components/core/solid-agent/SolidAgentMount.js +62 -0
  167. package/dist/components/core/solid-agent/SolidAgentMount.js.map +1 -0
  168. package/dist/components/core/solid-agent/SolidAgentMount.tsx +31 -0
  169. package/dist/components/core/solid-agent/SolidXAIIcon.d.ts +5 -0
  170. package/dist/components/core/solid-agent/SolidXAIIcon.d.ts.map +1 -0
  171. package/dist/components/core/solid-agent/SolidXAIIcon.js +7 -0
  172. package/dist/components/core/solid-agent/SolidXAIIcon.js.map +1 -0
  173. package/dist/components/core/solid-agent/SolidXAIIcon.tsx +6 -0
  174. package/dist/components/core/solid-agent/agentAttachments.d.ts +20 -0
  175. package/dist/components/core/solid-agent/agentAttachments.d.ts.map +1 -0
  176. package/dist/components/core/solid-agent/agentAttachments.js +184 -0
  177. package/dist/components/core/solid-agent/agentAttachments.js.map +1 -0
  178. package/dist/components/core/solid-agent/agentAttachments.ts +119 -0
  179. package/dist/components/core/solid-agent/agentEvents.d.ts +34 -0
  180. package/dist/components/core/solid-agent/agentEvents.d.ts.map +1 -0
  181. package/dist/components/core/solid-agent/agentEvents.js +282 -0
  182. package/dist/components/core/solid-agent/agentEvents.js.map +1 -0
  183. package/dist/components/core/solid-agent/agentEvents.ts +292 -0
  184. package/dist/components/core/solid-agent/agentFormat.d.ts +18 -0
  185. package/dist/components/core/solid-agent/agentFormat.d.ts.map +1 -0
  186. package/dist/components/core/solid-agent/agentFormat.js +179 -0
  187. package/dist/components/core/solid-agent/agentFormat.js.map +1 -0
  188. package/dist/components/core/solid-agent/agentFormat.ts +160 -0
  189. package/dist/components/core/solid-agent/client/agentAttachmentMedia.d.ts +9 -0
  190. package/dist/components/core/solid-agent/client/agentAttachmentMedia.d.ts.map +1 -0
  191. package/dist/components/core/solid-agent/client/agentAttachmentMedia.js +129 -0
  192. package/dist/components/core/solid-agent/client/agentAttachmentMedia.js.map +1 -0
  193. package/dist/components/core/solid-agent/client/agentAttachmentMedia.ts +69 -0
  194. package/dist/components/core/solid-agent/client/agentAuth.d.ts +63 -0
  195. package/dist/components/core/solid-agent/client/agentAuth.d.ts.map +1 -0
  196. package/dist/components/core/solid-agent/client/agentAuth.js +307 -0
  197. package/dist/components/core/solid-agent/client/agentAuth.js.map +1 -0
  198. package/dist/components/core/solid-agent/client/agentAuth.ts +222 -0
  199. package/dist/components/core/solid-agent/client/agentRest.d.ts +30 -0
  200. package/dist/components/core/solid-agent/client/agentRest.d.ts.map +1 -0
  201. package/dist/components/core/solid-agent/client/agentRest.js +178 -0
  202. package/dist/components/core/solid-agent/client/agentRest.js.map +1 -0
  203. package/dist/components/core/solid-agent/client/agentRest.ts +100 -0
  204. package/dist/components/core/solid-agent/client/agentRuntime.d.ts +48 -0
  205. package/dist/components/core/solid-agent/client/agentRuntime.d.ts.map +1 -0
  206. package/dist/components/core/solid-agent/client/agentRuntime.js +406 -0
  207. package/dist/components/core/solid-agent/client/agentRuntime.js.map +1 -0
  208. package/dist/components/core/solid-agent/client/agentRuntime.ts +226 -0
  209. package/dist/components/core/solid-agent/client/agentSocket.d.ts +46 -0
  210. package/dist/components/core/solid-agent/client/agentSocket.d.ts.map +1 -0
  211. package/dist/components/core/solid-agent/client/agentSocket.js +535 -0
  212. package/dist/components/core/solid-agent/client/agentSocket.js.map +1 -0
  213. package/dist/components/core/solid-agent/client/agentSocket.ts +276 -0
  214. package/dist/components/core/solid-agent/client/agentUrls.d.ts +11 -0
  215. package/dist/components/core/solid-agent/client/agentUrls.d.ts.map +1 -0
  216. package/dist/components/core/solid-agent/client/agentUrls.js +18 -0
  217. package/dist/components/core/solid-agent/client/agentUrls.js.map +1 -0
  218. package/dist/components/core/solid-agent/client/agentUrls.ts +19 -0
  219. package/dist/components/core/solid-agent/composer/AgentComposer.d.ts +21 -0
  220. package/dist/components/core/solid-agent/composer/AgentComposer.d.ts.map +1 -0
  221. package/dist/components/core/solid-agent/composer/AgentComposer.js +219 -0
  222. package/dist/components/core/solid-agent/composer/AgentComposer.js.map +1 -0
  223. package/dist/components/core/solid-agent/composer/AgentComposer.tsx +241 -0
  224. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.d.ts +8 -0
  225. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.d.ts.map +1 -0
  226. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.js +87 -0
  227. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.js.map +1 -0
  228. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.tsx +58 -0
  229. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.d.ts +20 -0
  230. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.d.ts.map +1 -0
  231. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.js +103 -0
  232. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.js.map +1 -0
  233. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.ts +60 -0
  234. package/dist/components/core/solid-agent/embed/agentEmbedSamples.d.ts +11 -0
  235. package/dist/components/core/solid-agent/embed/agentEmbedSamples.d.ts.map +1 -0
  236. package/dist/components/core/solid-agent/embed/agentEmbedSamples.js +21 -0
  237. package/dist/components/core/solid-agent/embed/agentEmbedSamples.js.map +1 -0
  238. package/dist/components/core/solid-agent/embed/agentEmbedSamples.ts +266 -0
  239. package/dist/components/core/solid-agent/processes/agentHubProcessApi.d.ts +15 -0
  240. package/dist/components/core/solid-agent/processes/agentHubProcessApi.d.ts.map +1 -0
  241. package/dist/components/core/solid-agent/processes/agentHubProcessApi.js +122 -0
  242. package/dist/components/core/solid-agent/processes/agentHubProcessApi.js.map +1 -0
  243. package/dist/components/core/solid-agent/processes/agentHubProcessApi.ts +64 -0
  244. package/dist/components/core/solid-agent/sdk/solidAgent.d.ts +39 -0
  245. package/dist/components/core/solid-agent/sdk/solidAgent.d.ts.map +1 -0
  246. package/dist/components/core/solid-agent/sdk/solidAgent.js +44 -0
  247. package/dist/components/core/solid-agent/sdk/solidAgent.js.map +1 -0
  248. package/dist/components/core/solid-agent/sdk/solidAgent.ts +56 -0
  249. package/dist/components/core/solid-agent/thread/AgentThread.d.ts +17 -0
  250. package/dist/components/core/solid-agent/thread/AgentThread.d.ts.map +1 -0
  251. package/dist/components/core/solid-agent/thread/AgentThread.js +166 -0
  252. package/dist/components/core/solid-agent/thread/AgentThread.js.map +1 -0
  253. package/dist/components/core/solid-agent/thread/AgentThread.tsx +248 -0
  254. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.d.ts +36 -0
  255. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.d.ts.map +1 -0
  256. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.js +148 -0
  257. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.js.map +1 -0
  258. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.tsx +116 -0
  259. package/dist/components/core/solid-agent/thread/inlineWidget.d.ts +8 -0
  260. package/dist/components/core/solid-agent/thread/inlineWidget.d.ts.map +1 -0
  261. package/dist/components/core/solid-agent/thread/inlineWidget.js +30 -0
  262. package/dist/components/core/solid-agent/thread/inlineWidget.js.map +1 -0
  263. package/dist/components/core/solid-agent/thread/inlineWidget.ts +27 -0
  264. package/dist/components/core/solid-agent/types.d.ts +155 -0
  265. package/dist/components/core/solid-agent/types.d.ts.map +1 -0
  266. package/dist/components/core/solid-agent/types.js +31 -0
  267. package/dist/components/core/solid-agent/types.js.map +1 -0
  268. package/dist/components/core/solid-agent/types.ts +148 -0
  269. package/dist/components/core/solid-agent/useAdminInputContext.d.ts +4 -0
  270. package/dist/components/core/solid-agent/useAdminInputContext.d.ts.map +1 -0
  271. package/dist/components/core/solid-agent/useAdminInputContext.js +49 -0
  272. package/dist/components/core/solid-agent/useAdminInputContext.js.map +1 -0
  273. package/dist/components/core/solid-agent/useAdminInputContext.ts +52 -0
  274. package/dist/components/core/solid-agent/useAgentAuth.d.ts +14 -0
  275. package/dist/components/core/solid-agent/useAgentAuth.d.ts.map +1 -0
  276. package/dist/components/core/solid-agent/useAgentAuth.js +88 -0
  277. package/dist/components/core/solid-agent/useAgentAuth.js.map +1 -0
  278. package/dist/components/core/solid-agent/useAgentAuth.ts +40 -0
  279. package/dist/components/core/solid-agent/useAgentAvailability.d.ts +19 -0
  280. package/dist/components/core/solid-agent/useAgentAvailability.d.ts.map +1 -0
  281. package/dist/components/core/solid-agent/useAgentAvailability.js +109 -0
  282. package/dist/components/core/solid-agent/useAgentAvailability.js.map +1 -0
  283. package/dist/components/core/solid-agent/useAgentAvailability.ts +80 -0
  284. package/dist/components/core/solid-agent/useAgentChat.d.ts +22 -0
  285. package/dist/components/core/solid-agent/useAgentChat.d.ts.map +1 -0
  286. package/dist/components/core/solid-agent/useAgentChat.js +45 -0
  287. package/dist/components/core/solid-agent/useAgentChat.js.map +1 -0
  288. package/dist/components/core/solid-agent/useAgentChat.ts +57 -0
  289. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.d.ts +7 -0
  290. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.d.ts.map +1 -0
  291. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.js +15 -0
  292. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.js.map +1 -0
  293. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.tsx +24 -0
  294. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.d.ts +7 -0
  295. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.d.ts.map +1 -0
  296. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.js +15 -0
  297. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.js.map +1 -0
  298. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.tsx +28 -0
  299. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.d.ts +4 -0
  300. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.d.ts.map +1 -0
  301. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.js +20 -0
  302. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.js.map +1 -0
  303. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.tsx +8 -0
  304. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.d.ts +7 -0
  305. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.d.ts.map +1 -0
  306. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.js +11 -0
  307. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.js.map +1 -0
  308. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.tsx +16 -0
  309. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.d.ts +7 -0
  310. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.d.ts.map +1 -0
  311. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.js +67 -0
  312. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.js.map +1 -0
  313. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.tsx +135 -0
  314. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.d.ts +7 -0
  315. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.d.ts.map +1 -0
  316. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.js +24 -0
  317. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.js.map +1 -0
  318. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.tsx +17 -0
  319. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.d.ts +8 -0
  320. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.d.ts.map +1 -0
  321. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.js +30 -0
  322. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.js.map +1 -0
  323. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.tsx +77 -0
  324. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.d.ts +7 -0
  325. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.d.ts.map +1 -0
  326. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.js +40 -0
  327. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.js.map +1 -0
  328. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.tsx +57 -0
  329. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.d.ts +4 -0
  330. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.d.ts.map +1 -0
  331. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.js +13 -0
  332. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.js.map +1 -0
  333. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.tsx +19 -0
  334. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.d.ts +7 -0
  335. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.d.ts.map +1 -0
  336. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.js +55 -0
  337. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.js.map +1 -0
  338. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.tsx +81 -0
  339. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.d.ts +4 -0
  340. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.d.ts.map +1 -0
  341. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.js +15 -0
  342. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.js.map +1 -0
  343. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.tsx +30 -0
  344. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.d.ts +4 -0
  345. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.d.ts.map +1 -0
  346. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.js +15 -0
  347. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.js.map +1 -0
  348. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.tsx +21 -0
  349. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.d.ts +7 -0
  350. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.d.ts.map +1 -0
  351. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.js +21 -0
  352. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.js.map +1 -0
  353. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.tsx +33 -0
  354. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.d.ts +4 -0
  355. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.d.ts.map +1 -0
  356. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.js +11 -0
  357. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.js.map +1 -0
  358. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.tsx +9 -0
  359. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.d.ts +15 -0
  360. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.d.ts.map +1 -0
  361. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.js +26 -0
  362. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.js.map +1 -0
  363. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.tsx +42 -0
  364. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.d.ts +7 -0
  365. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.d.ts.map +1 -0
  366. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.js +41 -0
  367. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.js.map +1 -0
  368. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.tsx +69 -0
  369. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.d.ts +7 -0
  370. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.d.ts.map +1 -0
  371. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.js +23 -0
  372. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.js.map +1 -0
  373. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.tsx +40 -0
  374. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.d.ts +4 -0
  375. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.d.ts.map +1 -0
  376. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.js +32 -0
  377. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.js.map +1 -0
  378. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.tsx +55 -0
  379. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.d.ts +7 -0
  380. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.d.ts.map +1 -0
  381. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.js +17 -0
  382. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.js.map +1 -0
  383. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.tsx +31 -0
  384. package/dist/components/core/solid-agent/widgets/chatWidgetUtils.d.ts +12 -0
  385. package/dist/components/core/solid-agent/widgets/chatWidgetUtils.d.ts.map +1 -0
  386. package/dist/components/core/solid-agent/widgets/chatWidgetUtils.js +17 -0
  387. package/dist/components/core/solid-agent/widgets/chatWidgetUtils.js.map +1 -0
  388. package/dist/components/core/solid-agent/widgets/chatWidgetUtils.ts +19 -0
  389. package/dist/components/core/solid-agent/widgets/solidChatWidgets.module.css +909 -0
  390. package/dist/components/core/solid-ai/SolidAiChat.js +1 -1
  391. package/dist/components/core/solid-ai/SolidAiChat.js.map +1 -1
  392. package/dist/components/core/solid-ai/SolidAiChat.tsx +2 -2
  393. package/dist/components/layout/AdminLayout.d.ts.map +1 -1
  394. package/dist/components/layout/AdminLayout.js +2 -1
  395. package/dist/components/layout/AdminLayout.js.map +1 -1
  396. package/dist/components/layout/AdminLayout.tsx +2 -0
  397. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
  398. package/dist/components/shad-cn-ui/SolidAutocomplete.js +2 -2
  399. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
  400. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +19 -15
  401. package/dist/components/shad-cn-ui/SolidDialog.d.ts +2 -1
  402. package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
  403. package/dist/components/shad-cn-ui/SolidDialog.js +2 -2
  404. package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
  405. package/dist/components/shad-cn-ui/SolidDialog.tsx +3 -0
  406. package/dist/components/shad-cn-ui/SolidIconPicker.d.ts +7 -0
  407. package/dist/components/shad-cn-ui/SolidIconPicker.d.ts.map +1 -0
  408. package/dist/components/shad-cn-ui/SolidIconPicker.js +43 -0
  409. package/dist/components/shad-cn-ui/SolidIconPicker.js.map +1 -0
  410. package/dist/components/shad-cn-ui/SolidIconPicker.tsx +73 -0
  411. package/dist/components/shad-cn-ui/index.d.ts +1 -0
  412. package/dist/components/shad-cn-ui/index.d.ts.map +1 -1
  413. package/dist/components/shad-cn-ui/index.js +1 -0
  414. package/dist/components/shad-cn-ui/index.js.map +1 -1
  415. package/dist/components/shad-cn-ui/index.ts +1 -0
  416. package/dist/constants/allowed-ai-models.d.ts +8 -0
  417. package/dist/constants/allowed-ai-models.d.ts.map +1 -0
  418. package/dist/constants/allowed-ai-models.js +33 -0
  419. package/dist/constants/allowed-ai-models.js.map +1 -0
  420. package/dist/constants/allowed-ai-models.ts +39 -0
  421. package/dist/helpers/hydrateRelationRules.d.ts.map +1 -1
  422. package/dist/helpers/hydrateRelationRules.js +3 -1
  423. package/dist/helpers/hydrateRelationRules.js.map +1 -1
  424. package/dist/helpers/hydrateRelationRules.ts +5 -1
  425. package/dist/helpers/registry.d.ts +4 -2
  426. package/dist/helpers/registry.d.ts.map +1 -1
  427. package/dist/helpers/registry.js +75 -12
  428. package/dist/helpers/registry.js.map +1 -1
  429. package/dist/helpers/registry.ts +73 -16
  430. package/dist/helpers/updatePasswordField.d.ts.map +1 -1
  431. package/dist/helpers/updatePasswordField.js +21 -15
  432. package/dist/helpers/updatePasswordField.js.map +1 -1
  433. package/dist/helpers/updatePasswordField.ts +6 -1
  434. package/dist/index.d.ts +21 -5
  435. package/dist/index.d.ts.map +1 -1
  436. package/dist/index.js +16 -3
  437. package/dist/index.js.map +1 -1
  438. package/dist/index.ts +34 -3
  439. package/dist/redux/api/fieldApi.js +1 -1
  440. package/dist/redux/api/fieldApi.js.map +1 -1
  441. package/dist/redux/api/fieldApi.ts +2 -2
  442. package/dist/redux/api/modelApi.d.ts +13 -13
  443. package/dist/redux/api/modelApi.d.ts.map +1 -1
  444. package/dist/redux/api/modelApi.js +15 -15
  445. package/dist/redux/api/modelApi.js.map +1 -1
  446. package/dist/redux/api/modelApi.ts +12 -15
  447. package/dist/redux/features/agentSlice.d.ts +34 -0
  448. package/dist/redux/features/agentSlice.d.ts.map +1 -0
  449. package/dist/redux/features/agentSlice.js +92 -0
  450. package/dist/redux/features/agentSlice.js.map +1 -0
  451. package/dist/redux/features/agentSlice.ts +119 -0
  452. package/dist/redux/store/defaultStoreConfig.d.ts +11 -10
  453. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  454. package/dist/redux/store/defaultStoreConfig.js +2 -0
  455. package/dist/redux/store/defaultStoreConfig.js.map +1 -1
  456. package/dist/redux/store/defaultStoreConfig.ts +2 -0
  457. package/dist/redux/store/solidEntityApiPool.d.ts.map +1 -1
  458. package/dist/redux/store/solidEntityApiPool.js +7 -0
  459. package/dist/redux/store/solidEntityApiPool.js.map +1 -1
  460. package/dist/redux/store/solidEntityApiPool.ts +6 -0
  461. package/dist/resources/globals.css +109 -1
  462. package/dist/resources/solid-custom.css +295 -0
  463. package/dist/resources/solid-tailwind-generated.css +1 -1
  464. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.css +47 -0
  465. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.d.ts +12 -0
  466. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.d.ts.map +1 -0
  467. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.js +80 -0
  468. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.js.map +1 -0
  469. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.tsx +123 -0
  470. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.css +110 -0
  471. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.d.ts +3 -0
  472. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.d.ts.map +1 -0
  473. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.js +702 -0
  474. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.js.map +1 -0
  475. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.tsx +630 -0
  476. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.css +303 -0
  477. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.d.ts +3 -0
  478. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.d.ts.map +1 -0
  479. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.js +330 -0
  480. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.js.map +1 -0
  481. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.tsx +460 -0
  482. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.css +125 -0
  483. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.d.ts +3 -0
  484. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.d.ts.map +1 -0
  485. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.js +295 -0
  486. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.js.map +1 -0
  487. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.tsx +275 -0
  488. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.js +11 -11
  489. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.js.map +1 -1
  490. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.tsx +15 -15
  491. package/dist/routes/pages/embed/AgentEmbedPage.d.ts +3 -0
  492. package/dist/routes/pages/embed/AgentEmbedPage.d.ts.map +1 -0
  493. package/dist/routes/pages/embed/AgentEmbedPage.js +170 -0
  494. package/dist/routes/pages/embed/AgentEmbedPage.js.map +1 -0
  495. package/dist/routes/pages/embed/AgentEmbedPage.module.css +195 -0
  496. package/dist/routes/pages/embed/AgentEmbedPage.tsx +169 -0
  497. package/dist/routes/solidRoutes.d.ts.map +1 -1
  498. package/dist/routes/solidRoutes.js +8 -0
  499. package/dist/routes/solidRoutes.js.map +1 -1
  500. package/dist/routes/solidRoutes.tsx +8 -0
  501. package/dist/types/extension-registry.d.ts +4 -0
  502. package/dist/types/extension-registry.d.ts.map +1 -1
  503. package/dist/types/extension-registry.js +7 -0
  504. package/dist/types/extension-registry.js.map +1 -1
  505. package/dist/types/extension-registry.ts +7 -0
  506. package/dist/types/index.d.ts +4 -0
  507. package/dist/types/list-row-action.d.ts +2 -0
  508. package/dist/types/list-row-action.d.ts.map +1 -1
  509. package/dist/types/list-row-action.js.map +1 -1
  510. package/dist/types/list-row-action.ts +3 -0
  511. package/dist/types/solid-core.d.ts +36 -0
  512. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DeleteModelRowAction.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx"],"names":[],"mappings":"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","sourcesContent":["import { closePopup } from \"../../../../../../redux/features/popupSlice\";\nimport { SolidListRowdataDynamicFunctionProps } from \"../../../../../../types/solid-core\";\nimport { useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../../../../redux/features/toastSlice\";\nimport { kebabCase } from \"lodash\";\nimport { createSolidEntityApi } from \"../../../../../../redux/api/solidEntityApi\";\nimport { ERROR_MESSAGES } from \"../../../../../../constants/error-messages\";\nimport { SolidButton, SolidCheckbox } from \"../../../../../shad-cn-ui\";\nimport { pingBackendAvailability } from \"../../../../../../helpers/waitForBackendAvailability\";\nimport { backendHealthMonitor } from \"../../../../../../helpers/backendHealthMonitor\";\n\nconst DELETE_MODEL_DIALOG_DISMISS_DELAY_MS = 3_000;\n\nconst DeleteModelRowAction = (event: SolidListRowdataDynamicFunctionProps) => {\n const [isConfirmed, setIsConfirmed] = useState(false);\n const [isApplying, setIsApplying] = useState(false);\n const dispatch = useDispatch();\n const entityApi = createSolidEntityApi(event.params.modelName);\n const {useDeleteSolidEntityMutation} = entityApi;\n const [deleteSolidSingleEntiry] = useDeleteSolidEntityMutation()\n\n const deleteModelHandler = async () => {\n if (isApplying) {\n return;\n }\n\n setIsApplying(true);\n try {\n const res: any = await deleteSolidSingleEntiry(event.rowData.id);\n \n // console.log('delete model res', res);\n if (res.error) {\n // handle backend or RTK error object\n const message =\n res.error?.data?.message ||\n res.error?.error ||\n ERROR_MESSAGES.ERROR_OCCURED;\n dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.DELETE_FAIELD, detail: message }));\n } else {\n dispatch(showToast({ severity: 'success', summary: ERROR_MESSAGES.MODEL_DELETE, detail: ERROR_MESSAGES.MODEL_DELETE_SUCCESSFULLY(event.rowData.singularName) }));\n await new Promise((resolve) => window.setTimeout(resolve, DELETE_MODEL_DIALOG_DISMISS_DELAY_MS));\n dispatch(closePopup());\n\n const isBackendAvailable = await pingBackendAvailability();\n if (isBackendAvailable) {\n backendHealthMonitor.reportSuccess();\n } else {\n backendHealthMonitor.reportFailure({\n status: \"FETCH_ERROR\",\n message: \"Unable to reach the server. Reconnecting...\",\n });\n }\n }\n } catch (err: any) {\n console.error(\"catch error\", err);\n dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail: ERROR_MESSAGES.NETWORK_OR_SERVER_ERROR }));\n } finally {\n setIsApplying(false);\n }\n }\n\n const rows = [\n { file: `${kebabCase(event.rowData.singularName)}.entity.ts`, description: 'The TypeORM entity definition for this model. Deleting it removes the model’s schema mapping', intervention: 'Automatic' },\n { file: `${kebabCase(event.rowData.singularName)}.create.dto.ts`, description: 'DTO defining the payload for creating a new record of this model', intervention: 'Automatic' },\n { file: `${kebabCase(event.rowData.singularName)}.update.dto.ts`, description: 'DTO defining the payload for updating an existing record of this model', intervention: 'Automatic' },\n { file: `${kebabCase(event.rowData.singularName)}.repository.ts`, description: 'Custom repository encapsulating database operations for this model', intervention: 'Automatic' },\n { file: `${kebabCase(event.rowData.singularName)}.service.ts`, description: 'Service layer containing business logic and interactions for this model', intervention: 'Automatic' },\n { file: `${kebabCase(event.rowData.singularName)}.controller.ts`, description: 'Controller exposing API endpoints related to this model', intervention: 'Automatic' },\n { file: `${kebabCase(event.rowData.singularName)}.module.ts`, description: 'Module declaration that wires together the controller, service, and repository. All imports and references to the deleted model are removed automatically', intervention: 'Automatic' },\n { file: `${kebabCase(event.rowData.singularName)}-metadata.json`, description: 'Remove references to this model in the model metadata, menu, action & view sections', intervention: 'Automatic' },\n { file: '-', description: 'Drop database table. Removes the database table from the DB, this is a very risky step. Best to review all relations to other models etc and then do this manually', intervention: 'Manual (X)', manual: true },\n ];\n\n\n\n return (\n <div className=\"solid-delete-model-popup\">\n <div className=\"solid-filter-dialog-head solid-delete-model-popup__head\">\n <div>\n <h3 className=\"solid-filter-dialog-title\">Delete Model</h3>\n <p className=\"solid-filter-dialog-subtitle m-0\">\n Review the impacted files carefully before applying this delete action.\n </p>\n </div>\n </div>\n <div className=\"solid-filter-dialog-sep\" />\n <div className=\"solid-filter-dialog-body solid-delete-model-popup__body\">\n <p className=\"solid-delete-model-popup__intro\">\n Deleting a model should be done carefully. The following files will be impacted as part of deleting this model.\n </p>\n\n <div className=\"solid-delete-model-popup__table-wrap\">\n <table className=\"solid-delete-model-popup__table\">\n <thead>\n <tr>\n <th>File Name</th>\n <th>Description</th>\n <th>Intervention</th>\n </tr>\n </thead>\n <tbody>\n {rows.map((row) => (\n <tr key={`${row.file}-${row.intervention}`}>\n <td className=\"solid-delete-model-popup__file\">{row.file}</td>\n <td>{row.description}</td>\n <td className={row.manual ? \"solid-delete-model-popup__intervention is-manual\" : \"solid-delete-model-popup__intervention\"}>\n {row.intervention}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n\n <div className=\"solid-delete-model-popup__confirm\">\n <SolidCheckbox\n id=\"delete-model-confirmation\"\n name=\"confirm\"\n checked={isConfirmed}\n onChange={() => setIsConfirmed(!isConfirmed)}\n label=\"I confirm that #9 (drop database table) will be done by me manually after the automatic steps above are applied.\"\n />\n </div>\n\n <div className=\"solid-delete-model-popup__actions\">\n <SolidButton size=\"small\" disabled={!isConfirmed || isApplying} loading={isApplying} autoFocus onClick={deleteModelHandler}>\n Apply\n </SolidButton>\n <SolidButton size=\"small\" variant=\"outline\" disabled={isApplying} onClick={() => dispatch(closePopup())}>\n Cancel\n </SolidButton>\n </div>\n </div>\n </div>\n )\n}\n\nexport default DeleteModelRowAction;\n"]}
1
+ {"version":3,"file":"DeleteModelRowAction.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx"],"names":[],"mappings":"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","sourcesContent":["import { closePopup } from \"../../../../../../redux/features/popupSlice\";\nimport { SolidListRowdataDynamicFunctionProps } from \"../../../../../../types/solid-core\";\nimport { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../../../../redux/features/toastSlice\";\nimport { useApplyDeleteModelMutation, usePreviewDeleteModelMutation } from \"../../../../../../redux/api/modelApi\";\nimport { ERROR_MESSAGES } from \"../../../../../../constants/error-messages\";\nimport { SolidButton, SolidCheckbox, SolidSpinner } from \"../../../../../shad-cn-ui\";\nimport { pingBackendAvailability } from \"../../../../../../helpers/waitForBackendAvailability\";\nimport { backendHealthMonitor } from \"../../../../../../helpers/backendHealthMonitor\";\nimport { Check, Copy } from \"lucide-react\";\n\ntype DeleteChange = { category: string; description: string; count: number; items: string[] };\ntype DeletePreview = { model: { id: number; singularName: string; displayName: string }; planHash: string; changes: DeleteChange[] };\n\nconst displayInventoryItem = (item: string) => {\n if (!item.startsWith(\"/\")) return item;\n const sourceIndex = item.lastIndexOf(\"/src/\");\n if (sourceIndex >= 0) return item.slice(sourceIndex + 1);\n return item.split(\"/\").slice(-2).join(\"/\");\n};\n\nconst DeleteModelRowAction = (event: SolidListRowdataDynamicFunctionProps) => {\n const dispatch = useDispatch();\n const [preview, setPreview] = useState<DeletePreview | null>(null);\n const [previewError, setPreviewError] = useState<string | null>(null);\n const [isConfirmed, setIsConfirmed] = useState(false);\n const [copiedDdl, setCopiedDdl] = useState(false);\n const [loadPreview, { isLoading: isLoadingPreview }] = usePreviewDeleteModelMutation();\n const [applyDelete, { isLoading: isApplying }] = useApplyDeleteModelMutation();\n\n const refreshPreview = async () => {\n setPreview(null);\n setPreviewError(null);\n setIsConfirmed(false);\n try {\n const result = await loadPreview(event.rowData.id).unwrap();\n setPreview(result as DeletePreview);\n } catch (error: any) {\n setPreviewError(error?.data?.message || error?.error || ERROR_MESSAGES.ERROR_OCCURED);\n }\n };\n\n useEffect(() => { void refreshPreview(); }, [event.rowData.id]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const automaticChanges = preview?.changes.filter(change => change.category !== 'Manual follow-up' && change.count > 0) ?? [];\n const automaticItemCount = automaticChanges.reduce((total, change) => total + change.count, 0);\n const manualFollowUp = preview?.changes.find(change => change.category === 'Manual follow-up');\n const tableName = manualFollowUp?.items[0]?.replace(/ database table$/, '') ?? '';\n const quotedTableName = tableName.split('.').map(part => `\"${part.replace(/\"/g, '\"\"')}\"`).join('.');\n const dropTableStatement = tableName ? `DROP TABLE IF EXISTS ${quotedTableName};` : '';\n\n const copyDropStatement = async () => {\n if (!dropTableStatement) return;\n try {\n await navigator.clipboard.writeText(dropTableStatement);\n setCopiedDdl(true);\n window.setTimeout(() => setCopiedDdl(false), 1800);\n } catch {\n setPreviewError('Unable to copy the DROP TABLE statement. Select and copy it manually.');\n }\n };\n\n const deleteModelHandler = async () => {\n if (!preview || !isConfirmed || isApplying) return;\n try {\n await applyDelete({ id: event.rowData.id, planHash: preview.planHash }).unwrap();\n dispatch(showToast({ severity: 'success', summary: ERROR_MESSAGES.MODEL_DELETE, detail: ERROR_MESSAGES.MODEL_DELETE_SUCCESSFULLY(event.rowData.singularName) }));\n dispatch(closePopup());\n const isBackendAvailable = await pingBackendAvailability();\n if (isBackendAvailable) backendHealthMonitor.reportSuccess();\n else backendHealthMonitor.reportFailure({ status: \"FETCH_ERROR\", message: \"Unable to reach the server. Reconnecting...\" });\n } catch (error: any) {\n const updatedPreview = error?.data?.preview as DeletePreview | undefined;\n if (updatedPreview) {\n setPreview(updatedPreview);\n setIsConfirmed(false);\n setPreviewError('The inventory changed since it was reviewed. Please review the updated changes and confirm again.');\n } else {\n setPreviewError(error?.data?.message || error?.error || ERROR_MESSAGES.NETWORK_OR_SERVER_ERROR);\n }\n }\n };\n\n return (\n <div className=\"solid-delete-model-popup\">\n <div className=\"solid-filter-dialog-head solid-delete-model-popup__head\">\n <div>\n <h3 className=\"solid-filter-dialog-title\">Delete {event.rowData.displayName || event.rowData.singularName}</h3>\n <p className=\"solid-filter-dialog-subtitle m-0\">Review the automatic cleanup before deleting this model.</p>\n </div>\n </div>\n <div className=\"solid-filter-dialog-sep\" />\n <div className=\"solid-filter-dialog-body solid-delete-model-popup__body\">\n {isLoadingPreview && <div className=\"flex justify-center p-4\"><SolidSpinner /></div>}\n {previewError && <div role=\"alert\" className=\"text-sm text-destructive mb-3\">{previewError}</div>}\n {preview && (\n <>\n <div className=\"solid-delete-model-popup__summary\" aria-label=\"Deletion impact summary\">\n <div><strong>{automaticItemCount}</strong><span>automatic changes</span></div>\n <div><strong>{automaticChanges.length}</strong><span>areas affected</span></div>\n </div>\n <div className=\"solid-delete-model-popup__inventory\" aria-label=\"Automatic deletion changes\">\n {automaticChanges.map((change, index) => (\n <details className=\"solid-delete-model-popup__change\" key={`${change.category}-${index}`}>\n <summary>\n <span className=\"solid-delete-model-popup__change-name\">{change.category}</span>\n <span className=\"solid-delete-model-popup__change-description\">{change.description}</span>\n <span className=\"solid-delete-model-popup__count\">{change.count}</span>\n </summary>\n {change.items.length > 0 && (\n <ul className=\"solid-delete-model-popup__items\">\n {change.items.map((item, itemIndex) => <li key={`${item}-${itemIndex}`} title={item}>{displayInventoryItem(item)}</li>)}\n </ul>\n )}\n </details>\n ))}\n {automaticChanges.length === 0 && <p className=\"solid-delete-model-popup__empty\">No related automatic cleanup was found.</p>}\n </div>\n {manualFollowUp && manualFollowUp.count > 0 && (\n <aside className=\"solid-delete-model-popup__manual\">\n <strong>Manual follow-up</strong>\n <span>{manualFollowUp.description}</span>\n {dropTableStatement && <div className=\"solid-delete-model-popup__ddl\">\n <code>{dropTableStatement}</code>\n <button type=\"button\" className=\"solid-delete-model-popup__copy-ddl\" onClick={copyDropStatement} aria-label={copiedDdl ? 'DDL copied' : 'Copy DROP TABLE statement'} title={copiedDdl ? 'Copied' : 'Copy SQL'}>\n {copiedDdl ? <Check size={13} /> : <Copy size={13} />}\n </button>\n </div>}\n </aside>\n )}\n </>\n )}\n </div>\n <div className=\"solid-filter-dialog-sep\" />\n <div className=\"solid-delete-model-popup__footer\">\n {preview && <div className=\"solid-delete-model-popup__confirm\">\n <SolidCheckbox id=\"delete-model-confirmation\" name=\"confirm\" checked={isConfirmed} onChange={() => setIsConfirmed(!isConfirmed)} label=\"I reviewed the automatic changes above and understand the database table drop is a separate manual step.\" />\n </div>}\n <div className=\"solid-delete-model-popup__actions\">\n <SolidButton size=\"small\" variant=\"destructive\" disabled={!preview || !isConfirmed || isApplying || isLoadingPreview} loading={isApplying} autoFocus onClick={deleteModelHandler}>Delete model</SolidButton>\n <SolidButton size=\"small\" variant=\"outline\" disabled={isApplying} onClick={() => dispatch(closePopup())}>Cancel</SolidButton>\n </div>\n </div>\n </div>\n );\n};\n\nexport default DeleteModelRowAction;\n"]}
@@ -1,139 +1,149 @@
1
1
  import { closePopup } from "../../../../../../redux/features/popupSlice";
2
2
  import { SolidListRowdataDynamicFunctionProps } from "../../../../../../types/solid-core";
3
- import { useState } from "react";
3
+ import { useEffect, useState } from "react";
4
4
  import { useDispatch } from "react-redux";
5
5
  import { showToast } from "../../../../../../redux/features/toastSlice";
6
- import { kebabCase } from "lodash";
7
- import { createSolidEntityApi } from "../../../../../../redux/api/solidEntityApi";
6
+ import { useApplyDeleteModelMutation, usePreviewDeleteModelMutation } from "../../../../../../redux/api/modelApi";
8
7
  import { ERROR_MESSAGES } from "../../../../../../constants/error-messages";
9
- import { SolidButton, SolidCheckbox } from "../../../../../shad-cn-ui";
8
+ import { SolidButton, SolidCheckbox, SolidSpinner } from "../../../../../shad-cn-ui";
10
9
  import { pingBackendAvailability } from "../../../../../../helpers/waitForBackendAvailability";
11
10
  import { backendHealthMonitor } from "../../../../../../helpers/backendHealthMonitor";
11
+ import { Check, Copy } from "lucide-react";
12
12
 
13
- const DELETE_MODEL_DIALOG_DISMISS_DELAY_MS = 3_000;
13
+ type DeleteChange = { category: string; description: string; count: number; items: string[] };
14
+ type DeletePreview = { model: { id: number; singularName: string; displayName: string }; planHash: string; changes: DeleteChange[] };
15
+
16
+ const displayInventoryItem = (item: string) => {
17
+ if (!item.startsWith("/")) return item;
18
+ const sourceIndex = item.lastIndexOf("/src/");
19
+ if (sourceIndex >= 0) return item.slice(sourceIndex + 1);
20
+ return item.split("/").slice(-2).join("/");
21
+ };
14
22
 
15
23
  const DeleteModelRowAction = (event: SolidListRowdataDynamicFunctionProps) => {
16
- const [isConfirmed, setIsConfirmed] = useState(false);
17
- const [isApplying, setIsApplying] = useState(false);
18
24
  const dispatch = useDispatch();
19
- const entityApi = createSolidEntityApi(event.params.modelName);
20
- const {useDeleteSolidEntityMutation} = entityApi;
21
- const [deleteSolidSingleEntiry] = useDeleteSolidEntityMutation()
25
+ const [preview, setPreview] = useState<DeletePreview | null>(null);
26
+ const [previewError, setPreviewError] = useState<string | null>(null);
27
+ const [isConfirmed, setIsConfirmed] = useState(false);
28
+ const [copiedDdl, setCopiedDdl] = useState(false);
29
+ const [loadPreview, { isLoading: isLoadingPreview }] = usePreviewDeleteModelMutation();
30
+ const [applyDelete, { isLoading: isApplying }] = useApplyDeleteModelMutation();
22
31
 
23
- const deleteModelHandler = async () => {
24
- if (isApplying) {
25
- return;
32
+ const refreshPreview = async () => {
33
+ setPreview(null);
34
+ setPreviewError(null);
35
+ setIsConfirmed(false);
36
+ try {
37
+ const result = await loadPreview(event.rowData.id).unwrap();
38
+ setPreview(result as DeletePreview);
39
+ } catch (error: any) {
40
+ setPreviewError(error?.data?.message || error?.error || ERROR_MESSAGES.ERROR_OCCURED);
26
41
  }
42
+ };
43
+
44
+ useEffect(() => { void refreshPreview(); }, [event.rowData.id]); // eslint-disable-line react-hooks/exhaustive-deps
27
45
 
28
- setIsApplying(true);
46
+ const automaticChanges = preview?.changes.filter(change => change.category !== 'Manual follow-up' && change.count > 0) ?? [];
47
+ const automaticItemCount = automaticChanges.reduce((total, change) => total + change.count, 0);
48
+ const manualFollowUp = preview?.changes.find(change => change.category === 'Manual follow-up');
49
+ const tableName = manualFollowUp?.items[0]?.replace(/ database table$/, '') ?? '';
50
+ const quotedTableName = tableName.split('.').map(part => `"${part.replace(/"/g, '""')}"`).join('.');
51
+ const dropTableStatement = tableName ? `DROP TABLE IF EXISTS ${quotedTableName};` : '';
52
+
53
+ const copyDropStatement = async () => {
54
+ if (!dropTableStatement) return;
29
55
  try {
30
- const res: any = await deleteSolidSingleEntiry(event.rowData.id);
31
-
32
- // console.log('delete model res', res);
33
- if (res.error) {
34
- // handle backend or RTK error object
35
- const message =
36
- res.error?.data?.message ||
37
- res.error?.error ||
38
- ERROR_MESSAGES.ERROR_OCCURED;
39
- dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.DELETE_FAIELD, detail: message }));
40
- } else {
41
- dispatch(showToast({ severity: 'success', summary: ERROR_MESSAGES.MODEL_DELETE, detail: ERROR_MESSAGES.MODEL_DELETE_SUCCESSFULLY(event.rowData.singularName) }));
42
- await new Promise((resolve) => window.setTimeout(resolve, DELETE_MODEL_DIALOG_DISMISS_DELAY_MS));
43
- dispatch(closePopup());
56
+ await navigator.clipboard.writeText(dropTableStatement);
57
+ setCopiedDdl(true);
58
+ window.setTimeout(() => setCopiedDdl(false), 1800);
59
+ } catch {
60
+ setPreviewError('Unable to copy the DROP TABLE statement. Select and copy it manually.');
61
+ }
62
+ };
44
63
 
45
- const isBackendAvailable = await pingBackendAvailability();
46
- if (isBackendAvailable) {
47
- backendHealthMonitor.reportSuccess();
48
- } else {
49
- backendHealthMonitor.reportFailure({
50
- status: "FETCH_ERROR",
51
- message: "Unable to reach the server. Reconnecting...",
52
- });
53
- }
64
+ const deleteModelHandler = async () => {
65
+ if (!preview || !isConfirmed || isApplying) return;
66
+ try {
67
+ await applyDelete({ id: event.rowData.id, planHash: preview.planHash }).unwrap();
68
+ dispatch(showToast({ severity: 'success', summary: ERROR_MESSAGES.MODEL_DELETE, detail: ERROR_MESSAGES.MODEL_DELETE_SUCCESSFULLY(event.rowData.singularName) }));
69
+ dispatch(closePopup());
70
+ const isBackendAvailable = await pingBackendAvailability();
71
+ if (isBackendAvailable) backendHealthMonitor.reportSuccess();
72
+ else backendHealthMonitor.reportFailure({ status: "FETCH_ERROR", message: "Unable to reach the server. Reconnecting..." });
73
+ } catch (error: any) {
74
+ const updatedPreview = error?.data?.preview as DeletePreview | undefined;
75
+ if (updatedPreview) {
76
+ setPreview(updatedPreview);
77
+ setIsConfirmed(false);
78
+ setPreviewError('The inventory changed since it was reviewed. Please review the updated changes and confirm again.');
79
+ } else {
80
+ setPreviewError(error?.data?.message || error?.error || ERROR_MESSAGES.NETWORK_OR_SERVER_ERROR);
54
81
  }
55
- } catch (err: any) {
56
- console.error("catch error", err);
57
- dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail: ERROR_MESSAGES.NETWORK_OR_SERVER_ERROR }));
58
- } finally {
59
- setIsApplying(false);
60
82
  }
61
- }
62
-
63
- const rows = [
64
- { file: `${kebabCase(event.rowData.singularName)}.entity.ts`, description: 'The TypeORM entity definition for this model. Deleting it removes the model’s schema mapping', intervention: 'Automatic' },
65
- { file: `${kebabCase(event.rowData.singularName)}.create.dto.ts`, description: 'DTO defining the payload for creating a new record of this model', intervention: 'Automatic' },
66
- { file: `${kebabCase(event.rowData.singularName)}.update.dto.ts`, description: 'DTO defining the payload for updating an existing record of this model', intervention: 'Automatic' },
67
- { file: `${kebabCase(event.rowData.singularName)}.repository.ts`, description: 'Custom repository encapsulating database operations for this model', intervention: 'Automatic' },
68
- { file: `${kebabCase(event.rowData.singularName)}.service.ts`, description: 'Service layer containing business logic and interactions for this model', intervention: 'Automatic' },
69
- { file: `${kebabCase(event.rowData.singularName)}.controller.ts`, description: 'Controller exposing API endpoints related to this model', intervention: 'Automatic' },
70
- { file: `${kebabCase(event.rowData.singularName)}.module.ts`, description: 'Module declaration that wires together the controller, service, and repository. All imports and references to the deleted model are removed automatically', intervention: 'Automatic' },
71
- { file: `${kebabCase(event.rowData.singularName)}-metadata.json`, description: 'Remove references to this model in the model metadata, menu, action & view sections', intervention: 'Automatic' },
72
- { file: '-', description: 'Drop database table. Removes the database table from the DB, this is a very risky step. Best to review all relations to other models etc and then do this manually', intervention: 'Manual (X)', manual: true },
73
- ];
74
-
75
-
83
+ };
76
84
 
77
85
  return (
78
86
  <div className="solid-delete-model-popup">
79
87
  <div className="solid-filter-dialog-head solid-delete-model-popup__head">
80
88
  <div>
81
- <h3 className="solid-filter-dialog-title">Delete Model</h3>
82
- <p className="solid-filter-dialog-subtitle m-0">
83
- Review the impacted files carefully before applying this delete action.
84
- </p>
89
+ <h3 className="solid-filter-dialog-title">Delete {event.rowData.displayName || event.rowData.singularName}</h3>
90
+ <p className="solid-filter-dialog-subtitle m-0">Review the automatic cleanup before deleting this model.</p>
85
91
  </div>
86
92
  </div>
87
93
  <div className="solid-filter-dialog-sep" />
88
94
  <div className="solid-filter-dialog-body solid-delete-model-popup__body">
89
- <p className="solid-delete-model-popup__intro">
90
- Deleting a model should be done carefully. The following files will be impacted as part of deleting this model.
91
- </p>
92
-
93
- <div className="solid-delete-model-popup__table-wrap">
94
- <table className="solid-delete-model-popup__table">
95
- <thead>
96
- <tr>
97
- <th>File Name</th>
98
- <th>Description</th>
99
- <th>Intervention</th>
100
- </tr>
101
- </thead>
102
- <tbody>
103
- {rows.map((row) => (
104
- <tr key={`${row.file}-${row.intervention}`}>
105
- <td className="solid-delete-model-popup__file">{row.file}</td>
106
- <td>{row.description}</td>
107
- <td className={row.manual ? "solid-delete-model-popup__intervention is-manual" : "solid-delete-model-popup__intervention"}>
108
- {row.intervention}
109
- </td>
110
- </tr>
111
- ))}
112
- </tbody>
113
- </table>
114
- </div>
115
-
116
- <div className="solid-delete-model-popup__confirm">
117
- <SolidCheckbox
118
- id="delete-model-confirmation"
119
- name="confirm"
120
- checked={isConfirmed}
121
- onChange={() => setIsConfirmed(!isConfirmed)}
122
- label="I confirm that #9 (drop database table) will be done by me manually after the automatic steps above are applied."
123
- />
124
- </div>
125
-
95
+ {isLoadingPreview && <div className="flex justify-center p-4"><SolidSpinner /></div>}
96
+ {previewError && <div role="alert" className="text-sm text-destructive mb-3">{previewError}</div>}
97
+ {preview && (
98
+ <>
99
+ <div className="solid-delete-model-popup__summary" aria-label="Deletion impact summary">
100
+ <div><strong>{automaticItemCount}</strong><span>automatic changes</span></div>
101
+ <div><strong>{automaticChanges.length}</strong><span>areas affected</span></div>
102
+ </div>
103
+ <div className="solid-delete-model-popup__inventory" aria-label="Automatic deletion changes">
104
+ {automaticChanges.map((change, index) => (
105
+ <details className="solid-delete-model-popup__change" key={`${change.category}-${index}`}>
106
+ <summary>
107
+ <span className="solid-delete-model-popup__change-name">{change.category}</span>
108
+ <span className="solid-delete-model-popup__change-description">{change.description}</span>
109
+ <span className="solid-delete-model-popup__count">{change.count}</span>
110
+ </summary>
111
+ {change.items.length > 0 && (
112
+ <ul className="solid-delete-model-popup__items">
113
+ {change.items.map((item, itemIndex) => <li key={`${item}-${itemIndex}`} title={item}>{displayInventoryItem(item)}</li>)}
114
+ </ul>
115
+ )}
116
+ </details>
117
+ ))}
118
+ {automaticChanges.length === 0 && <p className="solid-delete-model-popup__empty">No related automatic cleanup was found.</p>}
119
+ </div>
120
+ {manualFollowUp && manualFollowUp.count > 0 && (
121
+ <aside className="solid-delete-model-popup__manual">
122
+ <strong>Manual follow-up</strong>
123
+ <span>{manualFollowUp.description}</span>
124
+ {dropTableStatement && <div className="solid-delete-model-popup__ddl">
125
+ <code>{dropTableStatement}</code>
126
+ <button type="button" className="solid-delete-model-popup__copy-ddl" onClick={copyDropStatement} aria-label={copiedDdl ? 'DDL copied' : 'Copy DROP TABLE statement'} title={copiedDdl ? 'Copied' : 'Copy SQL'}>
127
+ {copiedDdl ? <Check size={13} /> : <Copy size={13} />}
128
+ </button>
129
+ </div>}
130
+ </aside>
131
+ )}
132
+ </>
133
+ )}
134
+ </div>
135
+ <div className="solid-filter-dialog-sep" />
136
+ <div className="solid-delete-model-popup__footer">
137
+ {preview && <div className="solid-delete-model-popup__confirm">
138
+ <SolidCheckbox id="delete-model-confirmation" name="confirm" checked={isConfirmed} onChange={() => setIsConfirmed(!isConfirmed)} label="I reviewed the automatic changes above and understand the database table drop is a separate manual step." />
139
+ </div>}
126
140
  <div className="solid-delete-model-popup__actions">
127
- <SolidButton size="small" disabled={!isConfirmed || isApplying} loading={isApplying} autoFocus onClick={deleteModelHandler}>
128
- Apply
129
- </SolidButton>
130
- <SolidButton size="small" variant="outline" disabled={isApplying} onClick={() => dispatch(closePopup())}>
131
- Cancel
132
- </SolidButton>
141
+ <SolidButton size="small" variant="destructive" disabled={!preview || !isConfirmed || isApplying || isLoadingPreview} loading={isApplying} autoFocus onClick={deleteModelHandler}>Delete model</SolidButton>
142
+ <SolidButton size="small" variant="outline" disabled={isApplying} onClick={() => dispatch(closePopup())}>Cancel</SolidButton>
133
143
  </div>
134
144
  </div>
135
145
  </div>
136
- )
137
- }
146
+ );
147
+ };
138
148
 
139
149
  export default DeleteModelRowAction;
@@ -0,0 +1,6 @@
1
+ type Props = {
2
+ selectedRecords?: any[];
3
+ };
4
+ export default function MqMessageSelectedRecordsSummaryHeaderAction({ selectedRecords }: Props): import("react/jsx-runtime").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=MqMessageSelectedRecordsSummaryHeaderAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MqMessageSelectedRecordsSummaryHeaderAction.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.tsx"],"names":[],"mappings":"AAoBA,KAAK,KAAK,GAAG;IAAE,eAAe,CAAC,EAAE,GAAG,EAAE,CAAA;CAAE,CAAC;AAEzC,MAAM,CAAC,OAAO,UAAU,2CAA2C,CAAC,EAAE,eAAoB,EAAE,EAAE,KAAK,2CAkElG"}
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useMemo } from "react";
3
+ import { useDispatch } from "react-redux";
4
+ import { closePopup } from "../../../../../redux/features/popupSlice";
5
+ import { SolidDialogBody, SolidDialogClose, SolidDialogHeader, SolidDialogSeparator, SolidDialogTitle, } from "../../../../shad-cn-ui";
6
+ var STAGES = ["pending", "scheduled", "started", "retry", "retrying", "failed", "succeeded"];
7
+ var formatDuration = function (milliseconds) {
8
+ if (milliseconds === null || !Number.isFinite(milliseconds))
9
+ return "—";
10
+ if (milliseconds < 1000)
11
+ return "".concat(Math.round(milliseconds), " ms");
12
+ if (milliseconds < 60000)
13
+ return "".concat((milliseconds / 1000).toFixed(2), " s");
14
+ return "".concat((milliseconds / 60000).toFixed(2), " min");
15
+ };
16
+ export default function MqMessageSelectedRecordsSummaryHeaderAction(_a) {
17
+ var _b = _a.selectedRecords, selectedRecords = _b === void 0 ? [] : _b;
18
+ var dispatch = useDispatch();
19
+ var stageSummaries = useMemo(function () { return STAGES.map(function (stage) {
20
+ var records = selectedRecords.filter(function (record) { return (record === null || record === void 0 ? void 0 : record.stage) === stage; });
21
+ var durations = records
22
+ .map(function (record) { return Number(record === null || record === void 0 ? void 0 : record.elapsedMillis); })
23
+ .filter(function (duration) { return Number.isFinite(duration) && duration >= 0; });
24
+ var average = durations.length
25
+ ? durations.reduce(function (total, duration) { return total + duration; }, 0) / durations.length
26
+ : null;
27
+ return { stage: stage, count: records.length, average: average, measuredCount: durations.length };
28
+ }); }, [selectedRecords]);
29
+ var totalMeasured = stageSummaries.reduce(function (total, summary) { return total + summary.measuredCount; }, 0);
30
+ var totalDuration = stageSummaries.reduce(function (total, summary) { var _a; return total + ((_a = summary.average) !== null && _a !== void 0 ? _a : 0) * summary.measuredCount; }, 0);
31
+ var averageDuration = totalMeasured ? totalDuration / totalMeasured : null;
32
+ return (_jsxs(_Fragment, { children: [_jsxs(SolidDialogHeader, { children: [_jsx(SolidDialogTitle, { children: "Selected queue messages" }), _jsx(SolidDialogClose, { "aria-label": "Close", onClick: function () { return dispatch(closePopup()); } })] }), _jsx(SolidDialogSeparator, {}), _jsx(SolidDialogBody, { children: _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-2 gap-3", children: [_jsxs("div", { className: "rounded-lg border p-4", children: [_jsx("div", { className: "text-sm text-muted-foreground", children: "Selected messages" }), _jsx("div", { className: "mt-1 text-2xl font-semibold", children: selectedRecords.length })] }), _jsxs("div", { className: "rounded-lg border p-4", children: [_jsx("div", { className: "text-sm text-muted-foreground", children: "Average execution time" }), _jsx("div", { className: "mt-1 text-2xl font-semibold", children: formatDuration(averageDuration) })] })] }), _jsx("div", { className: "overflow-x-auto rounded-lg border", children: _jsxs("table", { className: "w-full text-left text-sm", children: [_jsx("thead", { className: "bg-muted/50", children: _jsxs("tr", { children: [_jsx("th", { className: "px-4 py-3 font-medium", children: "Status" }), _jsx("th", { className: "px-4 py-3 text-right font-medium", children: "Count" }), _jsx("th", { className: "px-4 py-3 text-right font-medium", children: "Avg. execution time" })] }) }), _jsx("tbody", { children: stageSummaries.map(function (_a) {
33
+ var stage = _a.stage, count = _a.count, average = _a.average;
34
+ return (_jsxs("tr", { className: "border-t", children: [_jsx("th", { scope: "row", className: "px-4 py-3 font-medium capitalize", children: stage }), _jsx("td", { className: "px-4 py-3 text-right tabular-nums", children: count }), _jsx("td", { className: "px-4 py-3 text-right tabular-nums", children: formatDuration(average) })] }, stage));
35
+ }) })] }) }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Average execution time uses selected messages with an elapsed time recorded." })] }) })] }));
36
+ }
37
+ //# sourceMappingURL=MqMessageSelectedRecordsSummaryHeaderAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MqMessageSelectedRecordsSummaryHeaderAction.js","sourceRoot":"","sources":["../../../../../../src/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useMemo } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { closePopup } from \"../../../../../redux/features/popupSlice\";\nimport {\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n} from \"../../../../shad-cn-ui\";\n\nconst STAGES = [\"pending\", \"scheduled\", \"started\", \"retry\", \"retrying\", \"failed\", \"succeeded\"];\n\nconst formatDuration = (milliseconds: number | null) => {\n if (milliseconds === null || !Number.isFinite(milliseconds)) return \"—\";\n if (milliseconds < 1000) return `${Math.round(milliseconds)} ms`;\n if (milliseconds < 60_000) return `${(milliseconds / 1000).toFixed(2)} s`;\n return `${(milliseconds / 60_000).toFixed(2)} min`;\n};\n\ntype Props = { selectedRecords?: any[] };\n\nexport default function MqMessageSelectedRecordsSummaryHeaderAction({ selectedRecords = [] }: Props) {\n const dispatch = useDispatch();\n const stageSummaries = useMemo(() => STAGES.map((stage) => {\n const records = selectedRecords.filter((record) => record?.stage === stage);\n const durations = records\n .map((record) => Number(record?.elapsedMillis))\n .filter((duration) => Number.isFinite(duration) && duration >= 0);\n const average = durations.length\n ? durations.reduce((total, duration) => total + duration, 0) / durations.length\n : null;\n return { stage, count: records.length, average, measuredCount: durations.length };\n }), [selectedRecords]);\n\n const totalMeasured = stageSummaries.reduce((total, summary) => total + summary.measuredCount, 0);\n const totalDuration = stageSummaries.reduce(\n (total, summary) => total + (summary.average ?? 0) * summary.measuredCount,\n 0,\n );\n const averageDuration = totalMeasured ? totalDuration / totalMeasured : null;\n\n return (\n <>\n <SolidDialogHeader>\n <SolidDialogTitle>Selected queue messages</SolidDialogTitle>\n <SolidDialogClose aria-label=\"Close\" onClick={() => dispatch(closePopup())} />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody>\n <div className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-3\">\n <div className=\"rounded-lg border p-4\">\n <div className=\"text-sm text-muted-foreground\">Selected messages</div>\n <div className=\"mt-1 text-2xl font-semibold\">{selectedRecords.length}</div>\n </div>\n <div className=\"rounded-lg border p-4\">\n <div className=\"text-sm text-muted-foreground\">Average execution time</div>\n <div className=\"mt-1 text-2xl font-semibold\">{formatDuration(averageDuration)}</div>\n </div>\n </div>\n <div className=\"overflow-x-auto rounded-lg border\">\n <table className=\"w-full text-left text-sm\">\n <thead className=\"bg-muted/50\">\n <tr>\n <th className=\"px-4 py-3 font-medium\">Status</th>\n <th className=\"px-4 py-3 text-right font-medium\">Count</th>\n <th className=\"px-4 py-3 text-right font-medium\">Avg. execution time</th>\n </tr>\n </thead>\n <tbody>\n {stageSummaries.map(({ stage, count, average }) => (\n <tr key={stage} className=\"border-t\">\n <th scope=\"row\" className=\"px-4 py-3 font-medium capitalize\">{stage}</th>\n <td className=\"px-4 py-3 text-right tabular-nums\">{count}</td>\n <td className=\"px-4 py-3 text-right tabular-nums\">{formatDuration(average)}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n <p className=\"text-xs text-muted-foreground\">\n Average execution time uses selected messages with an elapsed time recorded.\n </p>\n </div>\n </SolidDialogBody>\n </>\n );\n}\n"]}
@@ -0,0 +1,89 @@
1
+ import { useMemo } from "react";
2
+ import { useDispatch } from "react-redux";
3
+ import { closePopup } from "../../../../../redux/features/popupSlice";
4
+ import {
5
+ SolidDialogBody,
6
+ SolidDialogClose,
7
+ SolidDialogHeader,
8
+ SolidDialogSeparator,
9
+ SolidDialogTitle,
10
+ } from "../../../../shad-cn-ui";
11
+
12
+ const STAGES = ["pending", "scheduled", "started", "retry", "retrying", "failed", "succeeded"];
13
+
14
+ const formatDuration = (milliseconds: number | null) => {
15
+ if (milliseconds === null || !Number.isFinite(milliseconds)) return "—";
16
+ if (milliseconds < 1000) return `${Math.round(milliseconds)} ms`;
17
+ if (milliseconds < 60_000) return `${(milliseconds / 1000).toFixed(2)} s`;
18
+ return `${(milliseconds / 60_000).toFixed(2)} min`;
19
+ };
20
+
21
+ type Props = { selectedRecords?: any[] };
22
+
23
+ export default function MqMessageSelectedRecordsSummaryHeaderAction({ selectedRecords = [] }: Props) {
24
+ const dispatch = useDispatch();
25
+ const stageSummaries = useMemo(() => STAGES.map((stage) => {
26
+ const records = selectedRecords.filter((record) => record?.stage === stage);
27
+ const durations = records
28
+ .map((record) => Number(record?.elapsedMillis))
29
+ .filter((duration) => Number.isFinite(duration) && duration >= 0);
30
+ const average = durations.length
31
+ ? durations.reduce((total, duration) => total + duration, 0) / durations.length
32
+ : null;
33
+ return { stage, count: records.length, average, measuredCount: durations.length };
34
+ }), [selectedRecords]);
35
+
36
+ const totalMeasured = stageSummaries.reduce((total, summary) => total + summary.measuredCount, 0);
37
+ const totalDuration = stageSummaries.reduce(
38
+ (total, summary) => total + (summary.average ?? 0) * summary.measuredCount,
39
+ 0,
40
+ );
41
+ const averageDuration = totalMeasured ? totalDuration / totalMeasured : null;
42
+
43
+ return (
44
+ <>
45
+ <SolidDialogHeader>
46
+ <SolidDialogTitle>Selected queue messages</SolidDialogTitle>
47
+ <SolidDialogClose aria-label="Close" onClick={() => dispatch(closePopup())} />
48
+ </SolidDialogHeader>
49
+ <SolidDialogSeparator />
50
+ <SolidDialogBody>
51
+ <div className="space-y-4">
52
+ <div className="grid grid-cols-2 gap-3">
53
+ <div className="rounded-lg border p-4">
54
+ <div className="text-sm text-muted-foreground">Selected messages</div>
55
+ <div className="mt-1 text-2xl font-semibold">{selectedRecords.length}</div>
56
+ </div>
57
+ <div className="rounded-lg border p-4">
58
+ <div className="text-sm text-muted-foreground">Average execution time</div>
59
+ <div className="mt-1 text-2xl font-semibold">{formatDuration(averageDuration)}</div>
60
+ </div>
61
+ </div>
62
+ <div className="overflow-x-auto rounded-lg border">
63
+ <table className="w-full text-left text-sm">
64
+ <thead className="bg-muted/50">
65
+ <tr>
66
+ <th className="px-4 py-3 font-medium">Status</th>
67
+ <th className="px-4 py-3 text-right font-medium">Count</th>
68
+ <th className="px-4 py-3 text-right font-medium">Avg. execution time</th>
69
+ </tr>
70
+ </thead>
71
+ <tbody>
72
+ {stageSummaries.map(({ stage, count, average }) => (
73
+ <tr key={stage} className="border-t">
74
+ <th scope="row" className="px-4 py-3 font-medium capitalize">{stage}</th>
75
+ <td className="px-4 py-3 text-right tabular-nums">{count}</td>
76
+ <td className="px-4 py-3 text-right tabular-nums">{formatDuration(average)}</td>
77
+ </tr>
78
+ ))}
79
+ </tbody>
80
+ </table>
81
+ </div>
82
+ <p className="text-xs text-muted-foreground">
83
+ Average execution time uses selected messages with an elapsed time recorded.
84
+ </p>
85
+ </div>
86
+ </SolidDialogBody>
87
+ </>
88
+ );
89
+ }
@@ -0,0 +1,3 @@
1
+ import type { SolidKanbanCardActionProps } from "../../../../../../types/list-row-action";
2
+ export default function MqMessageDetailsKanbanCardAction({ rowData, closePopup: popupClose, }: SolidKanbanCardActionProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=MqMessageDetailsKanbanCardAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MqMessageDetailsKanbanCardAction.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAkB1F,MAAM,CAAC,OAAO,UAAU,gCAAgC,CAAC,EACvD,OAAO,EACP,UAAU,EAAE,UAAU,GACvB,EAAE,0BAA0B,2CA4B5B"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useDispatch } from "react-redux";
3
+ import { closePopup } from "../../../../../../redux/features/popupSlice";
4
+ import { SolidButton, SolidDialogBody, SolidDialogClose, SolidDialogFooter, SolidDialogHeader, SolidDialogSeparator, SolidDialogTitle, } from "../../../../../shad-cn-ui";
5
+ var display = function (value) {
6
+ if (value === null || value === undefined || value === "")
7
+ return "—";
8
+ if (typeof value === "object")
9
+ return JSON.stringify(value);
10
+ return String(value);
11
+ };
12
+ export default function MqMessageDetailsKanbanCardAction(_a) {
13
+ var rowData = _a.rowData, popupClose = _a.closePopup;
14
+ var dispatch = useDispatch();
15
+ var close = function () { var _a; return (_a = popupClose === null || popupClose === void 0 ? void 0 : popupClose()) !== null && _a !== void 0 ? _a : dispatch(closePopup()); };
16
+ return (_jsxs(_Fragment, { children: [_jsxs(SolidDialogHeader, { children: [_jsx(SolidDialogTitle, { children: "Queue message details" }), _jsx(SolidDialogClose, { "aria-label": "Close" })] }), _jsx(SolidDialogSeparator, {}), _jsx(SolidDialogBody, { children: _jsxs("dl", { className: "grid grid-cols-[auto_1fr] gap-x-4 gap-y-2 text-sm", children: [_jsx("dt", { children: "Message ID" }), _jsx("dd", { className: "min-w-0 break-all", children: display(rowData === null || rowData === void 0 ? void 0 : rowData.messageId) }), _jsx("dt", { children: "Broker" }), _jsx("dd", { children: display(rowData === null || rowData === void 0 ? void 0 : rowData.messageBroker) }), _jsx("dt", { children: "Type" }), _jsx("dd", { children: display(rowData === null || rowData === void 0 ? void 0 : rowData.messageType) }), _jsx("dt", { children: "Stage" }), _jsx("dd", { children: display(rowData === null || rowData === void 0 ? void 0 : rowData.stage) }), _jsx("dt", { children: "Retries" }), _jsx("dd", { children: display(rowData === null || rowData === void 0 ? void 0 : rowData.retryCount) }), _jsx("dt", { children: "Started" }), _jsx("dd", { children: display(rowData === null || rowData === void 0 ? void 0 : rowData.startedAt) }), _jsx("dt", { children: "Finished" }), _jsx("dd", { children: display(rowData === null || rowData === void 0 ? void 0 : rowData.finishedAt) }), _jsx("dt", { children: "Error" }), _jsx("dd", { className: "min-w-0 whitespace-pre-wrap break-words", children: display(rowData === null || rowData === void 0 ? void 0 : rowData.error) })] }) }), _jsx(SolidDialogFooter, { children: _jsx(SolidButton, { type: "button", variant: "outline", onClick: close, children: "Close" }) })] }));
17
+ }
18
+ //# sourceMappingURL=MqMessageDetailsKanbanCardAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MqMessageDetailsKanbanCardAction.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AACzE,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAEnC,IAAM,OAAO,GAAG,UAAC,KAAc;IAC7B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IACtE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gCAAgC,CAAC,EAG5B;QAF3B,OAAO,aAAA,EACK,UAAU,gBAAA;IAEtB,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,KAAK,GAAG,sBAAM,OAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,EAAI,mCAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA,EAAA,CAAC;IAE7D,OAAO,CACL,8BACE,MAAC,iBAAiB,eAChB,KAAC,gBAAgB,wCAAyC,EAC1D,KAAC,gBAAgB,kBAAY,OAAO,GAAG,IACrB,EACpB,KAAC,oBAAoB,KAAG,EACxB,KAAC,eAAe,cACd,cAAI,SAAS,EAAC,mDAAmD,aAC/D,sCAAmB,EAAA,aAAI,SAAS,EAAC,mBAAmB,YAAE,OAAO,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAC,GAAM,EACvF,kCAAe,EAAA,uBAAK,OAAO,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAC,GAAM,EACzD,gCAAa,EAAA,uBAAK,OAAO,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAC,GAAM,EACrD,iCAAc,EAAA,uBAAK,OAAO,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,GAAM,EAChD,mCAAgB,EAAA,uBAAK,OAAO,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC,GAAM,EACvD,mCAAgB,EAAA,uBAAK,OAAO,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAC,GAAM,EACtD,oCAAiB,EAAA,uBAAK,OAAO,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC,GAAM,EACxD,iCAAc,EAAA,aAAI,SAAS,EAAC,yCAAyC,YAAE,OAAO,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,GAAM,IACjG,GACW,EAClB,KAAC,iBAAiB,cAChB,KAAC,WAAW,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,KAAK,sBAAqB,GAC9D,IACnB,CACJ,CAAC;AACJ,CAAC","sourcesContent":["import { useDispatch } from \"react-redux\";\nimport type { SolidKanbanCardActionProps } from \"../../../../../../types/list-row-action\";\nimport { closePopup } from \"../../../../../../redux/features/popupSlice\";\nimport {\n SolidButton,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n} from \"../../../../../shad-cn-ui\";\n\nconst display = (value: unknown): string => {\n if (value === null || value === undefined || value === \"\") return \"—\";\n if (typeof value === \"object\") return JSON.stringify(value);\n return String(value);\n};\n\nexport default function MqMessageDetailsKanbanCardAction({\n rowData,\n closePopup: popupClose,\n}: SolidKanbanCardActionProps) {\n const dispatch = useDispatch();\n const close = () => popupClose?.() ?? dispatch(closePopup());\n\n return (\n <>\n <SolidDialogHeader>\n <SolidDialogTitle>Queue message details</SolidDialogTitle>\n <SolidDialogClose aria-label=\"Close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody>\n <dl className=\"grid grid-cols-[auto_1fr] gap-x-4 gap-y-2 text-sm\">\n <dt>Message ID</dt><dd className=\"min-w-0 break-all\">{display(rowData?.messageId)}</dd>\n <dt>Broker</dt><dd>{display(rowData?.messageBroker)}</dd>\n <dt>Type</dt><dd>{display(rowData?.messageType)}</dd>\n <dt>Stage</dt><dd>{display(rowData?.stage)}</dd>\n <dt>Retries</dt><dd>{display(rowData?.retryCount)}</dd>\n <dt>Started</dt><dd>{display(rowData?.startedAt)}</dd>\n <dt>Finished</dt><dd>{display(rowData?.finishedAt)}</dd>\n <dt>Error</dt><dd className=\"min-w-0 whitespace-pre-wrap break-words\">{display(rowData?.error)}</dd>\n </dl>\n </SolidDialogBody>\n <SolidDialogFooter>\n <SolidButton type=\"button\" variant=\"outline\" onClick={close}>Close</SolidButton>\n </SolidDialogFooter>\n </>\n );\n}\n"]}
@@ -0,0 +1,51 @@
1
+ import { useDispatch } from "react-redux";
2
+ import type { SolidKanbanCardActionProps } from "../../../../../../types/list-row-action";
3
+ import { closePopup } from "../../../../../../redux/features/popupSlice";
4
+ import {
5
+ SolidButton,
6
+ SolidDialogBody,
7
+ SolidDialogClose,
8
+ SolidDialogFooter,
9
+ SolidDialogHeader,
10
+ SolidDialogSeparator,
11
+ SolidDialogTitle,
12
+ } from "../../../../../shad-cn-ui";
13
+
14
+ const display = (value: unknown): string => {
15
+ if (value === null || value === undefined || value === "") return "—";
16
+ if (typeof value === "object") return JSON.stringify(value);
17
+ return String(value);
18
+ };
19
+
20
+ export default function MqMessageDetailsKanbanCardAction({
21
+ rowData,
22
+ closePopup: popupClose,
23
+ }: SolidKanbanCardActionProps) {
24
+ const dispatch = useDispatch();
25
+ const close = () => popupClose?.() ?? dispatch(closePopup());
26
+
27
+ return (
28
+ <>
29
+ <SolidDialogHeader>
30
+ <SolidDialogTitle>Queue message details</SolidDialogTitle>
31
+ <SolidDialogClose aria-label="Close" />
32
+ </SolidDialogHeader>
33
+ <SolidDialogSeparator />
34
+ <SolidDialogBody>
35
+ <dl className="grid grid-cols-[auto_1fr] gap-x-4 gap-y-2 text-sm">
36
+ <dt>Message ID</dt><dd className="min-w-0 break-all">{display(rowData?.messageId)}</dd>
37
+ <dt>Broker</dt><dd>{display(rowData?.messageBroker)}</dd>
38
+ <dt>Type</dt><dd>{display(rowData?.messageType)}</dd>
39
+ <dt>Stage</dt><dd>{display(rowData?.stage)}</dd>
40
+ <dt>Retries</dt><dd>{display(rowData?.retryCount)}</dd>
41
+ <dt>Started</dt><dd>{display(rowData?.startedAt)}</dd>
42
+ <dt>Finished</dt><dd>{display(rowData?.finishedAt)}</dd>
43
+ <dt>Error</dt><dd className="min-w-0 whitespace-pre-wrap break-words">{display(rowData?.error)}</dd>
44
+ </dl>
45
+ </SolidDialogBody>
46
+ <SolidDialogFooter>
47
+ <SolidButton type="button" variant="outline" onClick={close}>Close</SolidButton>
48
+ </SolidDialogFooter>
49
+ </>
50
+ );
51
+ }
@@ -0,0 +1,10 @@
1
+ type HeaderActionContext = {
2
+ params?: {
3
+ moduleName?: string;
4
+ modelName?: string;
5
+ };
6
+ closePopup?: () => void;
7
+ };
8
+ export default function MqMessageKanbanQuickFilterHeaderAction({ params, closePopup: popupClose, }: HeaderActionContext): import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=MqMessageKanbanQuickFilterHeaderAction.d.ts.map