@manta-eu/react 0.1.10 → 0.2.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 (324) hide show
  1. package/dist/components/channel-icon/index.d.ts +1 -0
  2. package/dist/components/channel-icon/index.d.ts.map +1 -1
  3. package/dist/components/channel-icon/index.js +1 -1
  4. package/dist/components/channel-icon/index.js.map +1 -1
  5. package/dist/components/chat-view/ChatTurnErrorNotice.d.ts.map +1 -1
  6. package/dist/components/chat-view/ChatTurnErrorNotice.js +3 -1
  7. package/dist/components/chat-view/ChatTurnErrorNotice.js.map +1 -1
  8. package/dist/components/layouts/ConnectedCustomApp.d.ts +13 -0
  9. package/dist/components/layouts/ConnectedCustomApp.d.ts.map +1 -0
  10. package/dist/components/layouts/ConnectedCustomApp.js +37 -0
  11. package/dist/components/layouts/ConnectedCustomApp.js.map +1 -0
  12. package/dist/components/layouts/Sidebar.d.ts.map +1 -1
  13. package/dist/components/layouts/Sidebar.js +6 -3
  14. package/dist/components/layouts/Sidebar.js.map +1 -1
  15. package/dist/components/planning/ActioningView.d.ts +1 -2
  16. package/dist/components/planning/ActioningView.d.ts.map +1 -1
  17. package/dist/components/planning/ActioningView.js +19 -44
  18. package/dist/components/planning/ActioningView.js.map +1 -1
  19. package/dist/components/planning/ManualActionCard.d.ts +4 -0
  20. package/dist/components/planning/ManualActionCard.d.ts.map +1 -1
  21. package/dist/components/planning/ManualActionCard.js +7 -5
  22. package/dist/components/planning/ManualActionCard.js.map +1 -1
  23. package/dist/components/planning/ManualActionList.d.ts +4 -0
  24. package/dist/components/planning/ManualActionList.d.ts.map +1 -1
  25. package/dist/components/planning/ManualActionList.js +8 -2
  26. package/dist/components/planning/ManualActionList.js.map +1 -1
  27. package/dist/components/planning/actioning-view-utils.d.ts +9 -0
  28. package/dist/components/planning/actioning-view-utils.d.ts.map +1 -1
  29. package/dist/components/planning/actioning-view-utils.js +19 -1
  30. package/dist/components/planning/actioning-view-utils.js.map +1 -1
  31. package/dist/components/table-skeleton/index.d.ts +2 -0
  32. package/dist/components/table-skeleton/index.d.ts.map +1 -1
  33. package/dist/components/table-skeleton/index.js +2 -1
  34. package/dist/components/table-skeleton/index.js.map +1 -1
  35. package/dist/components/tooltip/index.d.ts +7 -0
  36. package/dist/components/tooltip/index.d.ts.map +1 -1
  37. package/dist/components/tooltip/index.js +10 -1
  38. package/dist/components/tooltip/index.js.map +1 -1
  39. package/dist/globals.css +19 -6
  40. package/dist/graph/createNodeRouter.js +3 -3
  41. package/dist/graph/createNodeRouter.js.map +1 -1
  42. package/dist/graph/entity-link.d.ts +14 -0
  43. package/dist/graph/entity-link.d.ts.map +1 -0
  44. package/dist/graph/entity-link.js +12 -0
  45. package/dist/graph/entity-link.js.map +1 -0
  46. package/dist/graph/graph-list-utils.d.ts +1 -0
  47. package/dist/graph/graph-list-utils.d.ts.map +1 -1
  48. package/dist/graph/graph-list-utils.js +1 -0
  49. package/dist/graph/graph-list-utils.js.map +1 -1
  50. package/dist/graph/graph-model.d.ts.map +1 -1
  51. package/dist/graph/graph-model.js +14 -5
  52. package/dist/graph/graph-model.js.map +1 -1
  53. package/dist/graph/nodes/BrandAssetAnalysisView.d.ts.map +1 -1
  54. package/dist/graph/nodes/BrandAssetAnalysisView.js +2 -1
  55. package/dist/graph/nodes/BrandAssetAnalysisView.js.map +1 -1
  56. package/dist/graph/nodes/BrandFontSuggestionView.d.ts +3 -0
  57. package/dist/graph/nodes/BrandFontSuggestionView.d.ts.map +1 -0
  58. package/dist/graph/nodes/{BrandFontFamilyView.js → BrandFontSuggestionView.js} +22 -13
  59. package/dist/graph/nodes/BrandFontSuggestionView.js.map +1 -0
  60. package/dist/graph/nodes/BrandGuidelinesView.js +1 -1
  61. package/dist/graph/nodes/BrandGuidelinesView.js.map +1 -1
  62. package/dist/graph/nodes/NodePropertyTable.d.ts +4 -2
  63. package/dist/graph/nodes/NodePropertyTable.d.ts.map +1 -1
  64. package/dist/graph/nodes/NodePropertyTable.js +12 -59
  65. package/dist/graph/nodes/NodePropertyTable.js.map +1 -1
  66. package/dist/graph/nodes/brand-font.d.ts +8 -0
  67. package/dist/graph/nodes/brand-font.d.ts.map +1 -1
  68. package/dist/graph/nodes/brand-font.js +6 -0
  69. package/dist/graph/nodes/brand-font.js.map +1 -1
  70. package/dist/graph/nodes/brand-shared.d.ts +0 -3
  71. package/dist/graph/nodes/brand-shared.d.ts.map +1 -1
  72. package/dist/graph/nodes/brand-shared.js +1 -4
  73. package/dist/graph/nodes/brand-shared.js.map +1 -1
  74. package/dist/graph/nodes/node-property-row.d.ts +30 -0
  75. package/dist/graph/nodes/node-property-row.d.ts.map +1 -0
  76. package/dist/graph/nodes/node-property-row.js +35 -0
  77. package/dist/graph/nodes/node-property-row.js.map +1 -0
  78. package/dist/graph/property-formatters.d.ts +1 -0
  79. package/dist/graph/property-formatters.d.ts.map +1 -1
  80. package/dist/graph/property-formatters.js +4 -1
  81. package/dist/graph/property-formatters.js.map +1 -1
  82. package/dist/graph/special-nodes/AttributeList.d.ts +27 -0
  83. package/dist/graph/special-nodes/AttributeList.d.ts.map +1 -0
  84. package/dist/graph/special-nodes/AttributeList.js +57 -0
  85. package/dist/graph/special-nodes/AttributeList.js.map +1 -0
  86. package/dist/graph/special-nodes/EntityPreview.d.ts +5 -0
  87. package/dist/graph/special-nodes/EntityPreview.d.ts.map +1 -0
  88. package/dist/graph/special-nodes/EntityPreview.js +19 -0
  89. package/dist/graph/special-nodes/EntityPreview.js.map +1 -0
  90. package/dist/graph/special-nodes/EntityValueChip.d.ts +11 -0
  91. package/dist/graph/special-nodes/EntityValueChip.d.ts.map +1 -0
  92. package/dist/graph/special-nodes/EntityValueChip.js +40 -0
  93. package/dist/graph/special-nodes/EntityValueChip.js.map +1 -0
  94. package/dist/graph/special-nodes/GenericView.d.ts +2 -1
  95. package/dist/graph/special-nodes/GenericView.d.ts.map +1 -1
  96. package/dist/graph/special-nodes/GenericView.js +23 -69
  97. package/dist/graph/special-nodes/GenericView.js.map +1 -1
  98. package/dist/graph/special-nodes/card-facts.d.ts +52 -0
  99. package/dist/graph/special-nodes/card-facts.d.ts.map +1 -0
  100. package/dist/graph/special-nodes/card-facts.js +189 -0
  101. package/dist/graph/special-nodes/card-facts.js.map +1 -0
  102. package/dist/graph/special-nodes/property-icons.d.ts +9 -0
  103. package/dist/graph/special-nodes/property-icons.d.ts.map +1 -0
  104. package/dist/graph/special-nodes/property-icons.js +39 -0
  105. package/dist/graph/special-nodes/property-icons.js.map +1 -0
  106. package/dist/graph/status-utils.d.ts +16 -0
  107. package/dist/graph/status-utils.d.ts.map +1 -1
  108. package/dist/graph/status-utils.js +35 -0
  109. package/dist/graph/status-utils.js.map +1 -1
  110. package/dist/graph/types.d.ts +5 -0
  111. package/dist/graph/types.d.ts.map +1 -1
  112. package/dist/hooks/use-approve-anyway.d.ts +12 -0
  113. package/dist/hooks/use-approve-anyway.d.ts.map +1 -0
  114. package/dist/hooks/use-approve-anyway.js +81 -0
  115. package/dist/hooks/use-approve-anyway.js.map +1 -0
  116. package/dist/hooks/use-connection-problems.d.ts.map +1 -1
  117. package/dist/hooks/useAuth.d.ts +2 -2
  118. package/dist/hooks/useAuth.d.ts.map +1 -1
  119. package/dist/hooks/useAuth.js +2 -2
  120. package/dist/hooks/useAuth.js.map +1 -1
  121. package/dist/hooks/useOnboardingState.js +1 -1
  122. package/dist/hooks/useOnboardingState.js.map +1 -1
  123. package/dist/hooks/useValidateActionPlan.d.ts.map +1 -1
  124. package/dist/ldo-ui.d.ts +2 -1
  125. package/dist/ldo-ui.d.ts.map +1 -1
  126. package/dist/ldo-ui.js +1 -0
  127. package/dist/ldo-ui.js.map +1 -1
  128. package/dist/lib/datastore-route-table.d.ts +2 -1
  129. package/dist/lib/datastore-route-table.d.ts.map +1 -1
  130. package/dist/lib/datastore-route-table.js +2 -1
  131. package/dist/lib/datastore-route-table.js.map +1 -1
  132. package/dist/lib/manual-actions.d.ts +2 -1
  133. package/dist/lib/manual-actions.d.ts.map +1 -1
  134. package/dist/lib/manual-actions.js +3 -2
  135. package/dist/lib/manual-actions.js.map +1 -1
  136. package/dist/providers/ActiveChatProvider.js +3 -1
  137. package/dist/providers/ActiveChatProvider.js.map +1 -1
  138. package/dist/providers/AuthContext.d.ts +2 -1
  139. package/dist/providers/AuthContext.d.ts.map +1 -1
  140. package/dist/providers/AuthContext.js.map +1 -1
  141. package/dist/providers/ChatManagerProvider.d.ts.map +1 -1
  142. package/dist/providers/ChatManagerProvider.js +22 -9
  143. package/dist/providers/ChatManagerProvider.js.map +1 -1
  144. package/dist/providers/chat-socket-auth.d.ts +7 -2
  145. package/dist/providers/chat-socket-auth.d.ts.map +1 -1
  146. package/dist/providers/chat-socket-auth.js +87 -16
  147. package/dist/providers/chat-socket-auth.js.map +1 -1
  148. package/dist/providers/index.d.ts.map +1 -1
  149. package/dist/providers/index.js +8 -1
  150. package/dist/providers/index.js.map +1 -1
  151. package/dist/routes/activity/detail/ActivityChanges.d.ts +2 -0
  152. package/dist/routes/activity/detail/ActivityChanges.d.ts.map +1 -1
  153. package/dist/routes/activity/detail/ActivityChanges.js +8 -7
  154. package/dist/routes/activity/detail/ActivityChanges.js.map +1 -1
  155. package/dist/routes/activity/detail/ActivityDetail.d.ts +1 -0
  156. package/dist/routes/activity/detail/ActivityDetail.d.ts.map +1 -1
  157. package/dist/routes/activity/detail/ActivityDetail.js +5 -4
  158. package/dist/routes/activity/detail/ActivityDetail.js.map +1 -1
  159. package/dist/routes/activity/detail/ActivityStepsRail.d.ts +1 -0
  160. package/dist/routes/activity/detail/ActivityStepsRail.d.ts.map +1 -1
  161. package/dist/routes/activity/detail/ActivityStepsRail.js +3 -2
  162. package/dist/routes/activity/detail/ActivityStepsRail.js.map +1 -1
  163. package/dist/routes/activity/detail/ActivityTimeline.js +2 -2
  164. package/dist/routes/activity/detail/ActivityTimeline.js.map +1 -1
  165. package/dist/routes/activity/detail/NoChangesMessage.d.ts +6 -0
  166. package/dist/routes/activity/detail/NoChangesMessage.d.ts.map +1 -0
  167. package/dist/routes/activity/detail/NoChangesMessage.js +10 -0
  168. package/dist/routes/activity/detail/NoChangesMessage.js.map +1 -0
  169. package/dist/routes/data-explorer/components/RawTriples.js +1 -1
  170. package/dist/routes/data-explorer/components/RawTriples.js.map +1 -1
  171. package/dist/routes/data-explorer/components/RecentTypes.js +1 -1
  172. package/dist/routes/data-explorer/components/RecentTypes.js.map +1 -1
  173. package/dist/routes/data-explorer/components/class-detail/Instances.js +1 -1
  174. package/dist/routes/data-explorer/components/class-detail/Instances.js.map +1 -1
  175. package/dist/routes/data-explorer/components/namespace-detail/NamespaceClassRow.js +1 -1
  176. package/dist/routes/data-explorer/components/namespace-detail/NamespaceClassRow.js.map +1 -1
  177. package/dist/routes/data-explorer/components/ontology-coverage/CoverageTermColumns.js +1 -1
  178. package/dist/routes/data-explorer/components/ontology-coverage/CoverageTermColumns.js.map +1 -1
  179. package/dist/routes/data-explorer/components/ontology-coverage/UnobservedRuleVocabulary.js +1 -1
  180. package/dist/routes/data-explorer/components/ontology-coverage/UnobservedRuleVocabulary.js.map +1 -1
  181. package/dist/routes/data-explorer/components/record-detail/ChatPreview.js +2 -2
  182. package/dist/routes/data-explorer/components/record-detail/ChatPreview.js.map +1 -1
  183. package/dist/routes/data-explorer/declared-namespaces.d.ts +3 -0
  184. package/dist/routes/data-explorer/declared-namespaces.d.ts.map +1 -1
  185. package/dist/routes/data-explorer/declared-namespaces.js +21 -13
  186. package/dist/routes/data-explorer/declared-namespaces.js.map +1 -1
  187. package/dist/routes/data-explorer/namespaces.d.ts +1 -0
  188. package/dist/routes/data-explorer/namespaces.d.ts.map +1 -1
  189. package/dist/routes/data-explorer/namespaces.js +7 -6
  190. package/dist/routes/data-explorer/namespaces.js.map +1 -1
  191. package/dist/routes/datastores/components/DeleteDatastoreDialog.d.ts +10 -0
  192. package/dist/routes/datastores/components/DeleteDatastoreDialog.d.ts.map +1 -0
  193. package/dist/routes/datastores/components/DeleteDatastoreDialog.js +20 -0
  194. package/dist/routes/datastores/components/DeleteDatastoreDialog.js.map +1 -0
  195. package/dist/routes/datastores/flatten.d.ts +1 -0
  196. package/dist/routes/datastores/flatten.d.ts.map +1 -1
  197. package/dist/routes/datastores/flatten.js +17 -0
  198. package/dist/routes/datastores/flatten.js.map +1 -1
  199. package/dist/routes/datastores/hooks/useDatastoreColumns.d.ts +3 -1
  200. package/dist/routes/datastores/hooks/useDatastoreColumns.d.ts.map +1 -1
  201. package/dist/routes/datastores/hooks/useDatastoreColumns.js +14 -6
  202. package/dist/routes/datastores/hooks/useDatastoreColumns.js.map +1 -1
  203. package/dist/routes/datastores/index.d.ts.map +1 -1
  204. package/dist/routes/datastores/index.js +31 -5
  205. package/dist/routes/datastores/index.js.map +1 -1
  206. package/dist/routes/integrations/components/ProviderGroup.js +2 -2
  207. package/dist/routes/integrations/components/ProviderGroup.js.map +1 -1
  208. package/dist/routes/integrations/components/connect-forms/DataConnectionConnectForm.d.ts.map +1 -1
  209. package/dist/routes/integrations/components/connect-forms/DataConnectionConnectForm.js +13 -6
  210. package/dist/routes/integrations/components/connect-forms/DataConnectionConnectForm.js.map +1 -1
  211. package/dist/routes/integrations/components/connect-forms/data-connection-fields.d.ts +3 -0
  212. package/dist/routes/integrations/components/connect-forms/data-connection-fields.d.ts.map +1 -1
  213. package/dist/routes/integrations/components/connect-forms/data-connection-fields.js +9 -2
  214. package/dist/routes/integrations/components/connect-forms/data-connection-fields.js.map +1 -1
  215. package/dist/routes/plans/components/ActionPlanPage.d.ts.map +1 -1
  216. package/dist/routes/plans/components/ActionPlanPage.js +4 -7
  217. package/dist/routes/plans/components/ActionPlanPage.js.map +1 -1
  218. package/dist/routes/plans/components/PlanDetailRouteContent.d.ts.map +1 -1
  219. package/dist/routes/plans/components/PlanDetailRouteContent.js +2 -1
  220. package/dist/routes/plans/components/PlanDetailRouteContent.js.map +1 -1
  221. package/package.json +12 -7
  222. package/src/app-subpaths.json +1 -0
  223. package/src/components/channel-icon/index.tsx +1 -1
  224. package/src/components/chat-view/ChatTurnErrorNotice.tsx +3 -1
  225. package/src/components/layouts/ConnectedCustomApp.tsx +63 -0
  226. package/src/components/layouts/Sidebar.tsx +9 -3
  227. package/src/components/planning/ActioningView.tsx +62 -70
  228. package/src/components/planning/ManualActionCard.tsx +66 -14
  229. package/src/components/planning/ManualActionList.tsx +30 -11
  230. package/src/components/planning/actioning-view-utils.ts +27 -1
  231. package/src/components/table-skeleton/index.tsx +7 -1
  232. package/src/components/tooltip/index.tsx +35 -2
  233. package/src/graph/createNodeRouter.tsx +3 -3
  234. package/src/graph/entity-link.tsx +20 -0
  235. package/src/graph/graph-list-utils.ts +2 -0
  236. package/src/graph/graph-model.ts +15 -6
  237. package/src/graph/nodes/BrandAssetAnalysisView.tsx +3 -1
  238. package/src/graph/nodes/{BrandFontFamilyView.tsx → BrandFontSuggestionView.tsx} +41 -27
  239. package/src/graph/nodes/BrandGuidelinesView.tsx +1 -1
  240. package/src/graph/nodes/NodePropertyTable.tsx +32 -143
  241. package/src/graph/nodes/brand-font.ts +17 -0
  242. package/src/graph/nodes/brand-shared.tsx +1 -4
  243. package/src/graph/nodes/node-property-row.tsx +154 -0
  244. package/src/graph/property-formatters.ts +5 -1
  245. package/src/graph/special-nodes/AttributeList.tsx +177 -0
  246. package/src/graph/special-nodes/EntityPreview.tsx +27 -0
  247. package/src/graph/special-nodes/EntityValueChip.tsx +85 -0
  248. package/src/graph/special-nodes/GenericView.tsx +49 -139
  249. package/src/graph/special-nodes/card-facts.ts +278 -0
  250. package/src/graph/special-nodes/property-icons.ts +59 -0
  251. package/src/graph/status-utils.ts +40 -0
  252. package/src/graph/types.ts +4 -0
  253. package/src/hooks/use-approve-anyway.ts +100 -0
  254. package/src/hooks/useAuth.ts +3 -3
  255. package/src/hooks/useOnboardingState.ts +1 -1
  256. package/src/ldo-ui.ts +8 -0
  257. package/src/lib/datastore-route-table.ts +4 -2
  258. package/src/lib/manual-actions.ts +3 -2
  259. package/src/providers/ActiveChatProvider.tsx +3 -1
  260. package/src/providers/AuthContext.ts +3 -1
  261. package/src/providers/ChatManagerProvider.tsx +19 -9
  262. package/src/providers/chat-socket-auth.ts +95 -16
  263. package/src/providers/index.tsx +16 -1
  264. package/src/routes/activity/detail/ActivityChanges.tsx +21 -5
  265. package/src/routes/activity/detail/ActivityDetail.tsx +24 -5
  266. package/src/routes/activity/detail/ActivityStepsRail.tsx +4 -2
  267. package/src/routes/activity/detail/ActivityTimeline.tsx +2 -2
  268. package/src/routes/activity/detail/NoChangesMessage.tsx +20 -0
  269. package/src/routes/data-explorer/components/RawTriples.tsx +1 -1
  270. package/src/routes/data-explorer/components/RecentTypes.tsx +1 -1
  271. package/src/routes/data-explorer/components/class-detail/Instances.tsx +1 -1
  272. package/src/routes/data-explorer/components/namespace-detail/NamespaceClassRow.tsx +1 -1
  273. package/src/routes/data-explorer/components/ontology-coverage/CoverageTermColumns.tsx +1 -1
  274. package/src/routes/data-explorer/components/ontology-coverage/UnobservedRuleVocabulary.tsx +1 -1
  275. package/src/routes/data-explorer/components/record-detail/ChatPreview.tsx +2 -2
  276. package/src/routes/data-explorer/declared-namespaces.ts +21 -13
  277. package/src/routes/data-explorer/namespaces.ts +7 -6
  278. package/src/routes/datastores/components/DeleteDatastoreDialog.tsx +78 -0
  279. package/src/routes/datastores/flatten.ts +15 -0
  280. package/src/routes/datastores/hooks/useDatastoreColumns.tsx +88 -49
  281. package/src/routes/datastores/index.tsx +41 -2
  282. package/src/routes/integrations/components/ProviderGroup.tsx +2 -2
  283. package/src/routes/integrations/components/connect-forms/DataConnectionConnectForm.tsx +38 -12
  284. package/src/routes/integrations/components/connect-forms/data-connection-fields.ts +11 -2
  285. package/src/routes/plans/components/ActionPlanPage.tsx +9 -8
  286. package/src/routes/plans/components/PlanDetailRouteContent.tsx +4 -3
  287. package/dist/components/planning/ExecutionActivityRow.d.ts +0 -9
  288. package/dist/components/planning/ExecutionActivityRow.d.ts.map +0 -1
  289. package/dist/components/planning/ExecutionActivityRow.js +0 -53
  290. package/dist/components/planning/ExecutionActivityRow.js.map +0 -1
  291. package/dist/components/planning/ExecutionSectionItem.d.ts +0 -20
  292. package/dist/components/planning/ExecutionSectionItem.d.ts.map +0 -1
  293. package/dist/components/planning/ExecutionSectionItem.js +0 -66
  294. package/dist/components/planning/ExecutionSectionItem.js.map +0 -1
  295. package/dist/components/planning/ExecutionSections.d.ts +0 -16
  296. package/dist/components/planning/ExecutionSections.d.ts.map +0 -1
  297. package/dist/components/planning/ExecutionSections.js +0 -32
  298. package/dist/components/planning/ExecutionSections.js.map +0 -1
  299. package/dist/components/planning/action-plan-icons.d.ts +0 -3
  300. package/dist/components/planning/action-plan-icons.d.ts.map +0 -1
  301. package/dist/components/planning/action-plan-icons.js +0 -25
  302. package/dist/components/planning/action-plan-icons.js.map +0 -1
  303. package/dist/components/planning/execution-section-model.d.ts +0 -24
  304. package/dist/components/planning/execution-section-model.d.ts.map +0 -1
  305. package/dist/components/planning/execution-section-model.js +0 -150
  306. package/dist/components/planning/execution-section-model.js.map +0 -1
  307. package/dist/graph/nodes/BrandFontFamilyView.d.ts +0 -3
  308. package/dist/graph/nodes/BrandFontFamilyView.d.ts.map +0 -1
  309. package/dist/graph/nodes/BrandFontFamilyView.js.map +0 -1
  310. package/dist/graph/nodes/BrandFontUploadButton.d.ts +0 -6
  311. package/dist/graph/nodes/BrandFontUploadButton.d.ts.map +0 -1
  312. package/dist/graph/nodes/BrandFontUploadButton.js +0 -69
  313. package/dist/graph/nodes/BrandFontUploadButton.js.map +0 -1
  314. package/dist/routes/data-explorer/components/TruncateTooltip.d.ts +0 -7
  315. package/dist/routes/data-explorer/components/TruncateTooltip.d.ts.map +0 -1
  316. package/dist/routes/data-explorer/components/TruncateTooltip.js +0 -9
  317. package/dist/routes/data-explorer/components/TruncateTooltip.js.map +0 -1
  318. package/src/components/planning/ExecutionActivityRow.tsx +0 -89
  319. package/src/components/planning/ExecutionSectionItem.tsx +0 -184
  320. package/src/components/planning/ExecutionSections.tsx +0 -97
  321. package/src/components/planning/action-plan-icons.tsx +0 -27
  322. package/src/components/planning/execution-section-model.ts +0 -190
  323. package/src/graph/nodes/BrandFontUploadButton.tsx +0 -95
  324. package/src/routes/data-explorer/components/TruncateTooltip.tsx +0 -25
@@ -1 +1 @@
1
- {"version":3,"file":"PlanDetailRouteContent.js","sourceRoot":"","sources":["../../../../src/routes/plans/components/PlanDetailRouteContent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlanDetailRouteContent.js","sourceRoot":"","sources":["../../../../src/routes/plans/components/PlanDetailRouteContent.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manta-eu/react",
3
- "version": "0.1.10",
3
+ "version": "0.2.1",
4
4
  "description": "The Manta design system, knowledge-graph UI and agent components",
5
5
  "homepage": "https://developers.manta.eu",
6
6
  "keywords": [
@@ -451,6 +451,11 @@
451
451
  "types": "./dist/lib/find-latest-staged-rule.d.ts",
452
452
  "import": "./dist/lib/find-latest-staged-rule.js"
453
453
  },
454
+ "./lib/format-date": {
455
+ "manta-source": "./src/lib/format-date.ts",
456
+ "types": "./dist/lib/format-date.d.ts",
457
+ "import": "./dist/lib/format-date.js"
458
+ },
454
459
  "./lib/iri-labels": {
455
460
  "manta-source": "./src/lib/iri-labels.ts",
456
461
  "types": "./dist/lib/iri-labels.d.ts",
@@ -1129,12 +1134,12 @@
1129
1134
  "usehooks-ts": "^3.1.1",
1130
1135
  "zod": "^4.5.0",
1131
1136
  "zustand": "^5.0.2",
1132
- "@manta-eu/auth": "0.1.10",
1133
- "@manta-eu/client": "0.1.10",
1134
- "@manta-eu/datalog-parser": "0.1.10",
1135
- "@manta-eu/ldo": "0.1.10",
1136
- "@manta-eu/lib": "0.1.10",
1137
- "@manta-eu/rdf-lib": "0.1.10"
1137
+ "@manta-eu/datalog-parser": "0.2.1",
1138
+ "@manta-eu/auth": "0.2.1",
1139
+ "@manta-eu/lib": "0.2.1",
1140
+ "@manta-eu/ldo": "0.2.1",
1141
+ "@manta-eu/rdf-lib": "0.2.1",
1142
+ "@manta-eu/client": "0.2.1"
1138
1143
  },
1139
1144
  "peerDependencies": {
1140
1145
  "@ulb-darmstadt/shacl-form": "^2.1.1-rc1",
@@ -61,6 +61,7 @@
61
61
  "./lib/decode-chart-entities",
62
62
  "./lib/find-latest-showcase",
63
63
  "./lib/find-latest-staged-rule",
64
+ "./lib/format-date",
64
65
  "./lib/message-grouping",
65
66
  "./lib/streamdown-plugins",
66
67
  "./lib/structured-data",
@@ -8,7 +8,7 @@ import { cn } from "#style";
8
8
 
9
9
  export type Channel = "META" | "GOOGLE_ADS" | "SNAPCHAT" | "SHOPIFY" | "MANTA";
10
10
 
11
- const channelDisplayName: Record<Channel, string> = {
11
+ export const channelDisplayName: Record<Channel, string> = {
12
12
  META: "Meta",
13
13
  GOOGLE_ADS: "Google Ads",
14
14
  SNAPCHAT: "Snapchat",
@@ -28,7 +28,9 @@ function resolveErrorAction(
28
28
  run: actions.onStartNewChat,
29
29
  }))
30
30
  .with(chatTurnErrorMessages.messageNotSaved, () => undefined)
31
- .with(chatTurnErrorMessages.unexpected, () => ({
31
+ .with(chatTurnErrorMessages.customAppPersonAllowance, chatTurnErrorMessages.customAppAllowance, () => undefined)
32
+ .with(chatTurnErrorMessages.customAppUserRemoved, chatTurnErrorMessages.customAppDeleted, () => undefined)
33
+ .with(chatTurnErrorMessages.unexpected, chatTurnErrorMessages.customAppTurnLimit, () => ({
32
34
  label: "Try again",
33
35
  run: actions.onRetry,
34
36
  }))
@@ -0,0 +1,63 @@
1
+ import {
2
+ useConnectedCustomAppsQuery,
3
+ useDisconnectCustomAppMutation,
4
+ type GQLConnectedCustomAppsQuery,
5
+ } from "@manta-eu/client";
6
+ import { useQueryClient } from "@tanstack/react-query";
7
+ import { ClientError } from "graphql-request";
8
+ import { Unlink } from "lucide-react";
9
+ import { toast } from "sonner";
10
+ import { DeleteConfirmationDialog } from "./DeleteConfirmationDialog";
11
+ import { DropdownItem } from "#components/dropdown/index";
12
+ import { useMantaClient } from "#providers/MantaClientProvider";
13
+
14
+ export type ConnectedCustomApp = GQLConnectedCustomAppsQuery["connectedCustomApps"][number];
15
+
16
+ type ConnectedCustomAppMenuItemProps = { onSelect: (app: ConnectedCustomApp) => void };
17
+
18
+ // Rendered into the profile menu, which Radix mounts on open, so only opening the menu asks; most people have none.
19
+ export function ConnectedCustomAppMenuItem(props: ConnectedCustomAppMenuItemProps) {
20
+ const { onSelect } = props;
21
+ const { mantaClient } = useMantaClient();
22
+ const { data } = useConnectedCustomAppsQuery(mantaClient, undefined, { staleTime: 60_000 });
23
+ const app = data?.connectedCustomApps[0];
24
+ if (app === undefined) return null;
25
+ return (
26
+ <DropdownItem className="flex flex-row items-center gap-1.5 typography-caption h-11" onSelect={() => onSelect(app)}>
27
+ <Unlink className="size-5" />
28
+ <span className="typography-caption">Disconnect {app.name}…</span>
29
+ </DropdownItem>
30
+ );
31
+ }
32
+
33
+ type DisconnectCustomAppDialogProps = { app: ConnectedCustomApp; onClose: () => void };
34
+
35
+ export function DisconnectCustomAppDialog(props: DisconnectCustomAppDialogProps) {
36
+ const { app, onClose } = props;
37
+ const { mantaClient } = useMantaClient();
38
+ const queryClient = useQueryClient();
39
+ const disconnect = useDisconnectCustomAppMutation(mantaClient, {
40
+ onSuccess: async () => {
41
+ toast.success(`${app.name} is disconnected`);
42
+ await queryClient.invalidateQueries({ queryKey: ["ConnectedCustomApps"] });
43
+ onClose();
44
+ },
45
+ onError: (error) => {
46
+ const fallback = `Could not disconnect ${app.name}`;
47
+ toast.error(error instanceof ClientError ? (error.response.errors?.[0]?.message ?? fallback) : fallback);
48
+ },
49
+ });
50
+ return (
51
+ <DeleteConfirmationDialog
52
+ title={`Disconnect ${app.name}?`}
53
+ description={`${app.name} set up your Manta account and can still act as you. Disconnecting stops that. Your account, chats and memories stay.`}
54
+ open
55
+ onOpenChange={(open) => !open && onClose()}
56
+ onConfirm={() => disconnect.mutate({ clientId: app.clientId })}
57
+ onCancel={onClose}
58
+ isDeleting={disconnect.isPending}
59
+ confirmLabel="Disconnect"
60
+ confirmingLabel="Disconnecting..."
61
+ />
62
+ );
63
+ }
@@ -28,6 +28,7 @@ import { ConnectionBadge } from "../ConnectionBadge";
28
28
  import { ManageDatastoresMenuItem } from "../datastore-management/ManageDatastoresMenuItem";
29
29
  import { ThemeSelectorDropdown } from "../theme-selector-dropdown";
30
30
  import { AnimatedChatTitle } from "./AnimatedChatTitle";
31
+ import { type ConnectedCustomApp, ConnectedCustomAppMenuItem, DisconnectCustomAppDialog } from "./ConnectedCustomApp";
31
32
  import { ConnectedDatastorePicker } from "./ConnectedDatastorePicker";
32
33
  import { DeleteConfirmationDialog } from "./DeleteConfirmationDialog";
33
34
  import { Button } from "#components/button/index";
@@ -60,9 +61,9 @@ import { useAbsoluteNavigate } from "#providers/ActiveDatastoreProvider";
60
61
  import { AuthContext } from "#providers/AuthContext";
61
62
  import { useChatManagerConnection } from "#providers/ChatManagerProvider";
62
63
  import { useCommandContext } from "#providers/commands/CommandContext";
63
- import { useNavExtras } from "#providers/NavExtrasProvider";
64
64
  import { useKnowledgeGraphState } from "#providers/KnowledgeGraphStateContext";
65
65
  import { useMantaClient } from "#providers/MantaClientProvider";
66
+ import { useNavExtras } from "#providers/NavExtrasProvider";
66
67
 
67
68
  // Not a Keycloak Organization, so an operator without an explicit pick still resolves to this.
68
69
  const realmDatastoreId = currentRealm;
@@ -104,7 +105,8 @@ export function Sidebar(props: SidebarProps) {
104
105
 
105
106
  const authContext = use(AuthContext);
106
107
  const canManageTeam = authContext?.canManageTeam ?? false;
107
- const canManageExternalApps = authContext?.canManageExternalApps ?? false;
108
+ const canManageCustomApps = authContext?.canManageCustomApps ?? false;
109
+ const canDisconnectCustomApps = authContext?.canDisconnectCustomApps ?? false;
108
110
  const canManageStreams = authContext?.canManageStreams ?? isOperator ?? false;
109
111
 
110
112
  const { state: sidebarState, isMobile, toggleSidebar, setOpenMobile } = useSidebar();
@@ -249,6 +251,7 @@ export function Sidebar(props: SidebarProps) {
249
251
  }, [absoluteNavigate]);
250
252
 
251
253
  const [isChatHistoryOpen, setIsChatHistoryOpen] = useState(false);
254
+ const [disconnecting, setDisconnecting] = useState<ConnectedCustomApp | undefined>();
252
255
  const historyCloseTimer = useRef<ReturnType<typeof setTimeout> | null>(null);
253
256
 
254
257
  const openHistory = useCallback(() => {
@@ -482,7 +485,7 @@ export function Sidebar(props: SidebarProps) {
482
485
  <span className="typography-caption">Team Members</span>
483
486
  </DropdownItem>
484
487
  )}
485
- {canManageExternalApps && (
488
+ {canManageCustomApps && (
486
489
  <DropdownItem
487
490
  className="flex flex-row items-center gap-1.5 typography-caption h-11"
488
491
  onSelect={() => (pendingMenuNavigateRef.current = "/custom-apps")}
@@ -491,6 +494,7 @@ export function Sidebar(props: SidebarProps) {
491
494
  <span className="typography-caption">Custom apps</span>
492
495
  </DropdownItem>
493
496
  )}
497
+ {canDisconnectCustomApps && <ConnectedCustomAppMenuItem onSelect={setDisconnecting} />}
494
498
  </DropdownGroup>
495
499
  </NavUser>
496
500
  ) : (
@@ -506,6 +510,8 @@ export function Sidebar(props: SidebarProps) {
506
510
  )}
507
511
  </SidebarFooter>
508
512
 
513
+ {disconnecting && <DisconnectCustomAppDialog app={disconnecting} onClose={() => setDisconnecting(undefined)} />}
514
+
509
515
  {conversationToDelete && (
510
516
  <DeleteConfirmationDialog
511
517
  title="Delete Conversation"
@@ -1,29 +1,35 @@
1
- import { GQLActionPlanState, type GQLActionPlanDiffResponse } from "@manta-eu/client";
1
+ import { GQLActionPlanState } from "@manta-eu/client";
2
2
  import { extractPlanName } from "@manta-eu/client/shared/agent-mode";
3
3
  import { isPresent } from "@manta-eu/lib/present";
4
- import { useCallback, useEffect, useMemo, useState, type ReactNode } from "react";
4
+ import { useCallback, useEffect, useState, type ReactNode } from "react";
5
5
  import { toast } from "sonner";
6
- import { deriveExecutionStatus, deriveIsDryRun, isStalePlanCompletion } from "./actioning-view-utils";
7
- import type { EntityTypeEntry } from "./ActionPlanDetailView";
6
+ import {
7
+ deriveExecutionStatus,
8
+ deriveIsDryRun,
9
+ deriveRunSurface,
10
+ isStalePlanCompletion,
11
+ parseTimestampMs,
12
+ } from "./actioning-view-utils";
8
13
  import { DryRunCompleteBanner } from "./DryRunCompleteBanner";
9
- import { parseTimestampMs } from "./execution-section-model";
10
- import { ExecutionSections } from "./ExecutionSections";
11
14
  import { ExecutionTopBar } from "./ExecutionTopBar";
12
15
  import { FailedBanner } from "./FailedBanner";
13
16
  import { useManualActionTargets } from "./manual-action-targets";
17
+ import { ManualActionListView } from "./ManualActionList";
14
18
  import { SummaryBar } from "./SummaryBar";
15
19
  import { UnavailablePlanNotice } from "./UnavailablePlanNotice";
16
20
  import { Loader } from "#components/loader/index";
21
+ import { useApprovableAnalyses, useApproveAnyway } from "#hooks/use-approve-anyway";
17
22
  import { useActionPlanDetail } from "#hooks/useActionPlanDetail";
18
23
  import { useActionPlanExecution, type UseActionPlanExecutionResult } from "#hooks/useActionPlanExecution";
19
24
  import { useResolveManualAction } from "#hooks/useResolveManualAction";
20
- import { useActionPlanDiff, useActionPlanExecutionProvenance, useManualActions } from "#ldo-ui";
25
+ import { useActionPlanExecutionProvenance, useManualActions } from "#ldo-ui";
21
26
  import { getPendingManualActions } from "#lib/manual-actions";
22
27
  import { cn } from "#lib/utils";
28
+ import { ActivityDetail } from "#routes/activity/detail/ActivityDetail";
29
+ import { NoChangesMessage } from "#routes/activity/detail/NoChangesMessage";
23
30
 
24
31
  type ActioningViewProps = {
25
32
  planGraphIri: string;
26
- diff: GQLActionPlanDiffResponse | null;
27
33
  isLoading: boolean;
28
34
  mantaChatBaseUrl: URL;
29
35
  executionControl?: UseActionPlanExecutionResult;
@@ -34,12 +40,12 @@ type ActioningViewProps = {
34
40
  hideRunControls?: boolean;
35
41
  chatIri?: string;
36
42
  completedChangesSlot?: ReactNode;
43
+ showActivityLinks?: boolean;
37
44
  };
38
45
 
39
46
  export function ActioningView(props: ActioningViewProps) {
40
47
  const {
41
48
  planGraphIri,
42
- diff,
43
49
  isLoading,
44
50
  executionControl,
45
51
  executePromptNonce,
@@ -49,6 +55,7 @@ export function ActioningView(props: ActioningViewProps) {
49
55
  hideRunControls = false,
50
56
  chatIri,
51
57
  completedChangesSlot,
58
+ showActivityLinks = true,
52
59
  } = props;
53
60
  const planName = extractPlanName(planGraphIri);
54
61
  const [isExecuteDialogOpen, setIsExecuteDialogOpen] = useState(false);
@@ -66,15 +73,12 @@ export function ActioningView(props: ActioningViewProps) {
66
73
  const { plan } = useActionPlanDetail(planGraphIri);
67
74
  const hasCurrentFacts = plan?.hasCurrentFacts ?? false;
68
75
 
69
- const { data: fetchedDiff } = useActionPlanDiff({ planGraphIri, enabled: !!planGraphIri });
70
- const { data: provenance } = useActionPlanExecutionProvenance({
76
+ const { data: provenance, isLoading: isProvenanceLoading } = useActionPlanExecutionProvenance({
71
77
  planGraphIri,
72
78
  enabled: !!planGraphIri,
73
79
  refetchIntervalMs: isTriggered ? 2000 : 5000,
74
80
  });
75
81
 
76
- const ldoDiff = diff ?? fetchedDiff;
77
-
78
82
  const baseIsRunning =
79
83
  !provenance?.planErrorMessage &&
80
84
  !provenance?.planEndedAtTime &&
@@ -102,8 +106,7 @@ export function ActioningView(props: ActioningViewProps) {
102
106
  });
103
107
  const planStartedAtMs = stale ? triggeredAtMs : (parseTimestampMs(provenance?.planStartedAtTime) ?? triggeredAtMs);
104
108
  const planEndedAtMs = stale ? null : parseTimestampMs(provenance?.planEndedAtTime);
105
- const isExecutionActive = executionStatus === "running" || executionStatus === "needs-approval";
106
- const activeStartedAtMs = isExecutionActive ? planStartedAtMs : null;
109
+ const runIri = stale ? null : (provenance?.planActivityIri ?? null);
107
110
 
108
111
  const manualActionResolver = useResolveManualAction({ planGraphIri, userId, datastoreId });
109
112
 
@@ -130,38 +133,15 @@ export function ActioningView(props: ActioningViewProps) {
130
133
  const onRerun = canRunPlan ? handleConfirmRerun : undefined;
131
134
 
132
135
  const manualActionEntities = useManualActionTargets(manualActions);
133
-
134
- const entityTypes: EntityTypeEntry[] = useMemo(() => {
135
- if (!ldoDiff) return [];
136
- return ldoDiff.byTypes.map((entry) => ({
137
- typeIri: entry.typeIri,
138
- typeName: entry.typeName,
139
- addedCount: entry.addedCount,
140
- updatedCount: entry.updatedCount,
141
- description: null,
142
- estimatedTime: null,
143
- }));
144
- }, [ldoDiff]);
145
-
146
- const effectiveEntityTypes: EntityTypeEntry[] = useMemo(() => {
147
- if (isPresent(entityTypes)) return entityTypes;
148
- const byType = new Map<string, EntityTypeEntry>();
149
- for (const ma of manualActions) {
150
- if (!byType.has(ma.typeIri)) {
151
- byType.set(ma.typeIri, {
152
- typeIri: ma.typeIri,
153
- typeName: ma.typeName,
154
- addedCount: 0,
155
- updatedCount: 0,
156
- description: null,
157
- estimatedTime: null,
158
- });
159
- }
160
- }
161
- return Array.from(byType.values());
162
- }, [entityTypes, manualActions]);
163
-
164
- const completedChanges = executionStatus === "completed" ? completedChangesSlot : null;
136
+ const approvableAnalyses = useApprovableAnalyses(manualActions);
137
+ const approveAnyway = useApproveAnyway(planGraphIri);
138
+
139
+ const runSurface = deriveRunSurface({
140
+ executionStatus,
141
+ runIri,
142
+ hasCompletedChangesSlot: isPresent(completedChangesSlot),
143
+ isLoading: isLoading || isProvenanceLoading,
144
+ });
165
145
 
166
146
  return (
167
147
  <div className={cn("flex flex-col", !hideTopBar && "h-full bg-background")}>
@@ -189,15 +169,7 @@ export function ActioningView(props: ActioningViewProps) {
189
169
  <UnavailablePlanNotice hasExecutionHistory={plan.hasExecutionHistory} />
190
170
  )}
191
171
 
192
- {executionStatus === "failed" && (provenance?.planErrorMessage || triggerError) && (
193
- <FailedBanner message={provenance?.planErrorMessage ?? triggerError ?? "Execution failed"} />
194
- )}
195
-
196
- {isLoading && !isPresent(effectiveEntityTypes) && (
197
- <div className="flex items-center justify-center py-12">
198
- <Loader className="size-6" />
199
- </div>
200
- )}
172
+ {isPresent(triggerError) && !isPresent(runIri) && <FailedBanner message={triggerError} />}
201
173
 
202
174
  {plan && (
203
175
  <SummaryBar
@@ -208,20 +180,40 @@ export function ActioningView(props: ActioningViewProps) {
208
180
  />
209
181
  )}
210
182
 
211
- {completedChanges ??
212
- (isPresent(effectiveEntityTypes) && (
213
- <ExecutionSections
214
- entityTypes={effectiveEntityTypes}
215
- provenance={provenance ?? null}
216
- manualActions={manualActions}
217
- manualActionEntities={manualActionEntities}
218
- activeStartedAtMs={activeStartedAtMs}
219
- onManualActionResolve={manualActionResolver.resolve}
220
- resolvingManualAction={manualActionResolver.resolving}
221
- canResolveManualAction={manualActionResolver.canResolve}
222
- manualActionDisabledReason={manualActionResolver.disabledReason}
223
- />
224
- ))}
183
+ {isPresent(manualActions) && (
184
+ <ManualActionListView
185
+ actions={manualActions}
186
+ targetsBySubject={manualActionEntities}
187
+ onResolve={(action, resolution) => manualActionResolver.resolve(action.subjectIri, resolution)}
188
+ resolving={manualActionResolver.resolving}
189
+ canResolve={manualActionResolver.canResolve}
190
+ disabledReason={manualActionResolver.disabledReason}
191
+ approvableAnalyses={approvableAnalyses}
192
+ onApproveAnyway={approveAnyway.approve}
193
+ approvingAnyway={approveAnyway.approving}
194
+ approvedAnyway={approveAnyway.approved}
195
+ />
196
+ )}
197
+
198
+ {runSurface === "completed-changes" && completedChangesSlot}
199
+
200
+ {runSurface === "run" && isPresent(runIri) && (
201
+ <div className="flex max-h-[60vh] flex-col">
202
+ <ActivityDetail key={runIri} activityIri={runIri} variant="embedded" showLinks={showActivityLinks} />
203
+ </div>
204
+ )}
205
+
206
+ {runSurface === "starting-run" && (
207
+ <div className="rounded-xl border border-muted-border bg-card p-5">
208
+ <NoChangesMessage running />
209
+ </div>
210
+ )}
211
+
212
+ {runSurface === "loading" && (
213
+ <div className="flex items-center justify-center py-12">
214
+ <Loader className="size-6" />
215
+ </div>
216
+ )}
225
217
  </div>
226
218
  </div>
227
219
  </div>
@@ -1,6 +1,7 @@
1
1
  import { isPresent } from "@manta-eu/lib/present";
2
2
  import { addAll } from "@manta-eu/lib/set";
3
- import { CircleCheck, Clock, Hand, MessageSquareWarning, RotateCcw, type LucideIcon } from "lucide-react";
3
+ import { BadgeCheck, CircleCheck, Clock, Hand, MessageSquareWarning, RotateCcw, type LucideIcon } from "lucide-react";
4
+ import { Fragment } from "react";
4
5
  import { match } from "ts-pattern";
5
6
  import { Badge, type BadgeVariant } from "#components/badge/index";
6
7
  import { Button } from "#components/button/index";
@@ -30,10 +31,25 @@ export type ManualActionCardProps = {
30
31
  onResolve: (resolution: ManualActionResolution) => void;
31
32
  canResolve?: boolean;
32
33
  disabledReason?: string;
34
+ /** Offered when the action is about something a person can approve despite the checks, such as a creative. */
35
+ onApproveAnyway?: () => void;
36
+ approvingAnyway?: boolean;
37
+ approvedAnyway?: boolean;
33
38
  };
34
39
 
35
40
  export function ManualActionCard(props: ManualActionCardProps) {
36
- const { manualAction, entities = [], description, resolving, onResolve, canResolve = true, disabledReason } = props;
41
+ const {
42
+ manualAction,
43
+ entities = [],
44
+ description,
45
+ resolving,
46
+ onResolve,
47
+ canResolve = true,
48
+ disabledReason,
49
+ onApproveAnyway,
50
+ approvingAnyway = false,
51
+ approvedAnyway = false,
52
+ } = props;
37
53
 
38
54
  const instruction = description ?? manualAction.description ?? null;
39
55
  const title = manualAction.label ?? instruction ?? buildManualActionTitle(manualAction);
@@ -67,6 +83,9 @@ export function ManualActionCard(props: ManualActionCardProps) {
67
83
  onResolve={onResolve}
68
84
  canResolve={canResolve}
69
85
  disabledReason={disabledReason}
86
+ onApproveAnyway={onApproveAnyway}
87
+ approvingAnyway={approvingAnyway}
88
+ approvedAnyway={approvedAnyway}
70
89
  />
71
90
  )}
72
91
 
@@ -274,28 +293,61 @@ type CardFooterProps = {
274
293
  onResolve: (resolution: ManualActionResolution) => void;
275
294
  canResolve: boolean;
276
295
  disabledReason?: string;
296
+ onApproveAnyway?: () => void;
297
+ approvingAnyway: boolean;
298
+ approvedAnyway: boolean;
277
299
  };
278
300
 
279
301
  function CardFooter(props: CardFooterProps) {
280
- const { isResolving, resolvingChoice, retryable, defaultResolution, onResolve, canResolve, disabledReason } = props;
302
+ const {
303
+ isResolving,
304
+ resolvingChoice,
305
+ retryable,
306
+ defaultResolution,
307
+ onResolve,
308
+ canResolve,
309
+ disabledReason,
310
+ onApproveAnyway,
311
+ approvingAnyway,
312
+ approvedAnyway,
313
+ } = props;
281
314
  const choices = resolutionChoices(retryable, defaultResolution);
315
+ const busy = isResolving || approvingAnyway || approvedAnyway;
282
316
 
283
317
  return (
284
318
  <div className="flex items-center bg-muted px-3 py-3">
285
319
  <DisabledActionTooltip reason={canResolve ? undefined : disabledReason}>
286
320
  <div className="flex flex-wrap items-center gap-2">
287
321
  {choices.map((choice, index) => (
288
- <Button
289
- key={choice}
290
- size="sm"
291
- rounded="lg"
292
- variant={index === 0 ? "primary" : "tertiary"}
293
- icon={choiceIcons[choice]}
294
- label={choiceLabels[choice]}
295
- disabled={!canResolve || isResolving}
296
- isLoading={isResolving && resolvingChoice === choice}
297
- onClick={() => onResolve(choice)}
298
- />
322
+ <Fragment key={choice}>
323
+ {choice === "REJECTED" && approvedAnyway && (
324
+ <span className="typography-tiny text-muted-foreground">
325
+ Approved. This review closes when the plan next runs.
326
+ </span>
327
+ )}
328
+ {choice === "REJECTED" && onApproveAnyway && !approvedAnyway && (
329
+ <Button
330
+ size="sm"
331
+ rounded="lg"
332
+ variant="secondary"
333
+ icon={BadgeCheck}
334
+ label="Approve anyway"
335
+ disabled={!canResolve || busy}
336
+ isLoading={approvingAnyway}
337
+ onClick={onApproveAnyway}
338
+ />
339
+ )}
340
+ <Button
341
+ size="sm"
342
+ rounded="lg"
343
+ variant={index === 0 ? "primary" : "tertiary"}
344
+ icon={choiceIcons[choice]}
345
+ label={choiceLabels[choice]}
346
+ disabled={!canResolve || busy}
347
+ isLoading={isResolving && resolvingChoice === choice}
348
+ onClick={() => onResolve(choice)}
349
+ />
350
+ </Fragment>
299
351
  ))}
300
352
  </div>
301
353
  </DisabledActionTooltip>
@@ -8,6 +8,7 @@ import {
8
8
  type ManualActionResolution,
9
9
  type ManualActionResolving,
10
10
  } from "#hooks/use-manual-actions";
11
+ import { approvalReviewKey } from "#lib/manual-actions";
11
12
 
12
13
  export type ManualActionListViewProps = {
13
14
  actions: ManualAction[];
@@ -19,6 +20,10 @@ export type ManualActionListViewProps = {
19
20
  isLoading?: boolean;
20
21
  failed?: boolean;
21
22
  emptyFallback?: ReactNode;
23
+ approvableAnalyses?: Map<string, string>;
24
+ onApproveAnyway?: (analysisIri: string, reviewKey: string) => void;
25
+ approvingAnyway?: ReadonlySet<string>;
26
+ approvedAnyway?: ReadonlySet<string>;
22
27
  };
23
28
 
24
29
  const skeletonShapes = [
@@ -38,6 +43,10 @@ export function ManualActionListView(props: ManualActionListViewProps) {
38
43
  isLoading = false,
39
44
  failed = false,
40
45
  emptyFallback,
46
+ approvableAnalyses,
47
+ onApproveAnyway,
48
+ approvingAnyway,
49
+ approvedAnyway,
41
50
  } = props;
42
51
 
43
52
  if (isLoading) {
@@ -75,17 +84,27 @@ export function ManualActionListView(props: ManualActionListViewProps) {
75
84
 
76
85
  return (
77
86
  <div className="flex flex-col">
78
- {actions.map((action) => (
79
- <ManualActionCard
80
- key={action.subjectIri}
81
- manualAction={action}
82
- entities={targetsBySubject?.get(action.subjectIri) ?? []}
83
- resolving={resolving}
84
- onResolve={(resolution) => onResolve(action, resolution)}
85
- canResolve={canResolve}
86
- disabledReason={disabledReason}
87
- />
88
- ))}
87
+ {actions.map((action) => {
88
+ const analysisIri = approvableAnalyses?.get(action.subjectIri);
89
+ return (
90
+ <ManualActionCard
91
+ key={action.subjectIri}
92
+ manualAction={action}
93
+ entities={targetsBySubject?.get(action.subjectIri) ?? []}
94
+ resolving={resolving}
95
+ onResolve={(resolution) => onResolve(action, resolution)}
96
+ canResolve={canResolve}
97
+ disabledReason={disabledReason}
98
+ onApproveAnyway={
99
+ isPresent(analysisIri) && onApproveAnyway
100
+ ? () => onApproveAnyway(analysisIri, approvalReviewKey(action))
101
+ : undefined
102
+ }
103
+ approvingAnyway={isPresent(analysisIri) && (approvingAnyway?.has(analysisIri) ?? false)}
104
+ approvedAnyway={approvedAnyway?.has(approvalReviewKey(action)) ?? false}
105
+ />
106
+ );
107
+ })}
89
108
  </div>
90
109
  );
91
110
  }