@manta-eu/react 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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/datastore-management/tree.d.ts +1 -1
  6. package/dist/components/datastore-management/tree.d.ts.map +1 -1
  7. package/dist/components/datastore-management/tree.js +5 -5
  8. package/dist/components/datastore-management/tree.js.map +1 -1
  9. package/dist/components/explain-fact/ExplainFact.js +3 -3
  10. package/dist/components/explain-fact/ExplainFact.js.map +1 -1
  11. package/dist/components/planning/ActioningView.d.ts +1 -2
  12. package/dist/components/planning/ActioningView.d.ts.map +1 -1
  13. package/dist/components/planning/ActioningView.js +19 -44
  14. package/dist/components/planning/ActioningView.js.map +1 -1
  15. package/dist/components/planning/ManualActionCard.d.ts +4 -0
  16. package/dist/components/planning/ManualActionCard.d.ts.map +1 -1
  17. package/dist/components/planning/ManualActionCard.js +7 -5
  18. package/dist/components/planning/ManualActionCard.js.map +1 -1
  19. package/dist/components/planning/ManualActionList.d.ts +4 -0
  20. package/dist/components/planning/ManualActionList.d.ts.map +1 -1
  21. package/dist/components/planning/ManualActionList.js +8 -2
  22. package/dist/components/planning/ManualActionList.js.map +1 -1
  23. package/dist/components/planning/actioning-view-utils.d.ts +9 -0
  24. package/dist/components/planning/actioning-view-utils.d.ts.map +1 -1
  25. package/dist/components/planning/actioning-view-utils.js +19 -1
  26. package/dist/components/planning/actioning-view-utils.js.map +1 -1
  27. package/dist/components/planning/plan-detail-utils.d.ts.map +1 -1
  28. package/dist/components/planning/plan-detail-utils.js +2 -0
  29. package/dist/components/planning/plan-detail-utils.js.map +1 -1
  30. package/dist/components/tool-invocation-card/ListRulesResultDisplay.d.ts +2 -2
  31. package/dist/components/tool-invocation-card/ListRulesResultDisplay.d.ts.map +1 -1
  32. package/dist/components/tool-invocation-card/ToolOutputRenderer.d.ts.map +1 -1
  33. package/dist/components/tool-invocation-card/ToolOutputRenderer.js +7 -4
  34. package/dist/components/tool-invocation-card/ToolOutputRenderer.js.map +1 -1
  35. package/dist/components/tool-invocation-card/types.d.ts +5 -5
  36. package/dist/components/tool-invocation-card/types.d.ts.map +1 -1
  37. package/dist/components/tool-invocation-card/types.js +5 -5
  38. package/dist/components/tool-invocation-card/types.js.map +1 -1
  39. package/dist/components/tooltip/index.d.ts +7 -0
  40. package/dist/components/tooltip/index.d.ts.map +1 -1
  41. package/dist/components/tooltip/index.js +10 -1
  42. package/dist/components/tooltip/index.js.map +1 -1
  43. package/dist/explain-fact/rule-presentation.js +2 -2
  44. package/dist/explain-fact/rule-presentation.js.map +1 -1
  45. package/dist/explain-fact/tree-model.js +2 -2
  46. package/dist/explain-fact/tree-model.js.map +1 -1
  47. package/dist/globals.css +19 -6
  48. package/dist/graph/entity-link.d.ts +14 -0
  49. package/dist/graph/entity-link.d.ts.map +1 -0
  50. package/dist/graph/entity-link.js +12 -0
  51. package/dist/graph/entity-link.js.map +1 -0
  52. package/dist/graph/graph-list-utils.d.ts +1 -0
  53. package/dist/graph/graph-list-utils.d.ts.map +1 -1
  54. package/dist/graph/graph-list-utils.js +1 -0
  55. package/dist/graph/graph-list-utils.js.map +1 -1
  56. package/dist/graph/graph-model.d.ts.map +1 -1
  57. package/dist/graph/graph-model.js +14 -5
  58. package/dist/graph/graph-model.js.map +1 -1
  59. package/dist/graph/nodes/BrandAssetAnalysisView.d.ts.map +1 -1
  60. package/dist/graph/nodes/BrandAssetAnalysisView.js +2 -1
  61. package/dist/graph/nodes/BrandAssetAnalysisView.js.map +1 -1
  62. package/dist/graph/nodes/BrandFontSuggestionView.d.ts.map +1 -1
  63. package/dist/graph/nodes/BrandFontSuggestionView.js +2 -1
  64. package/dist/graph/nodes/BrandFontSuggestionView.js.map +1 -1
  65. package/dist/graph/nodes/BrandGuidelinesView.js +1 -1
  66. package/dist/graph/nodes/BrandGuidelinesView.js.map +1 -1
  67. package/dist/graph/nodes/NodePropertyTable.d.ts +4 -2
  68. package/dist/graph/nodes/NodePropertyTable.d.ts.map +1 -1
  69. package/dist/graph/nodes/NodePropertyTable.js +12 -59
  70. package/dist/graph/nodes/NodePropertyTable.js.map +1 -1
  71. package/dist/graph/nodes/node-property-row.d.ts +30 -0
  72. package/dist/graph/nodes/node-property-row.d.ts.map +1 -0
  73. package/dist/graph/nodes/node-property-row.js +35 -0
  74. package/dist/graph/nodes/node-property-row.js.map +1 -0
  75. package/dist/graph/property-formatters.d.ts +1 -0
  76. package/dist/graph/property-formatters.d.ts.map +1 -1
  77. package/dist/graph/property-formatters.js +4 -1
  78. package/dist/graph/property-formatters.js.map +1 -1
  79. package/dist/graph/special-nodes/AttributeList.d.ts +27 -0
  80. package/dist/graph/special-nodes/AttributeList.d.ts.map +1 -0
  81. package/dist/graph/special-nodes/AttributeList.js +57 -0
  82. package/dist/graph/special-nodes/AttributeList.js.map +1 -0
  83. package/dist/graph/special-nodes/EntityPreview.d.ts +5 -0
  84. package/dist/graph/special-nodes/EntityPreview.d.ts.map +1 -0
  85. package/dist/graph/special-nodes/EntityPreview.js +19 -0
  86. package/dist/graph/special-nodes/EntityPreview.js.map +1 -0
  87. package/dist/graph/special-nodes/EntityValueChip.d.ts +11 -0
  88. package/dist/graph/special-nodes/EntityValueChip.d.ts.map +1 -0
  89. package/dist/graph/special-nodes/EntityValueChip.js +40 -0
  90. package/dist/graph/special-nodes/EntityValueChip.js.map +1 -0
  91. package/dist/graph/special-nodes/GenericView.d.ts +2 -1
  92. package/dist/graph/special-nodes/GenericView.d.ts.map +1 -1
  93. package/dist/graph/special-nodes/GenericView.js +23 -69
  94. package/dist/graph/special-nodes/GenericView.js.map +1 -1
  95. package/dist/graph/special-nodes/card-facts.d.ts +52 -0
  96. package/dist/graph/special-nodes/card-facts.d.ts.map +1 -0
  97. package/dist/graph/special-nodes/card-facts.js +189 -0
  98. package/dist/graph/special-nodes/card-facts.js.map +1 -0
  99. package/dist/graph/special-nodes/property-icons.d.ts +9 -0
  100. package/dist/graph/special-nodes/property-icons.d.ts.map +1 -0
  101. package/dist/graph/special-nodes/property-icons.js +39 -0
  102. package/dist/graph/special-nodes/property-icons.js.map +1 -0
  103. package/dist/graph/status-utils.d.ts +16 -0
  104. package/dist/graph/status-utils.d.ts.map +1 -1
  105. package/dist/graph/status-utils.js +35 -0
  106. package/dist/graph/status-utils.js.map +1 -1
  107. package/dist/graph/types.d.ts +5 -0
  108. package/dist/graph/types.d.ts.map +1 -1
  109. package/dist/hooks/use-approve-anyway.d.ts +12 -0
  110. package/dist/hooks/use-approve-anyway.d.ts.map +1 -0
  111. package/dist/hooks/use-approve-anyway.js +81 -0
  112. package/dist/hooks/use-approve-anyway.js.map +1 -0
  113. package/dist/hooks/use-connection-problems.d.ts.map +1 -1
  114. package/dist/hooks/useValidateActionPlan.d.ts.map +1 -1
  115. package/dist/ldo-ui.d.ts +2 -1
  116. package/dist/ldo-ui.d.ts.map +1 -1
  117. package/dist/ldo-ui.js +1 -0
  118. package/dist/ldo-ui.js.map +1 -1
  119. package/dist/lib/find-latest-staged-rule.js +1 -1
  120. package/dist/lib/find-latest-staged-rule.js.map +1 -1
  121. package/dist/lib/manual-actions.d.ts +2 -1
  122. package/dist/lib/manual-actions.d.ts.map +1 -1
  123. package/dist/lib/manual-actions.js +3 -2
  124. package/dist/lib/manual-actions.js.map +1 -1
  125. package/dist/lib/tool-icons.js +6 -6
  126. package/dist/lib/tool-icons.js.map +1 -1
  127. package/dist/lib/tool-names.d.ts.map +1 -1
  128. package/dist/lib/tool-names.js +0 -1
  129. package/dist/lib/tool-names.js.map +1 -1
  130. package/dist/ontology/skolem.js +2 -2
  131. package/dist/ontology/skolem.js.map +1 -1
  132. package/dist/providers/ActiveChatProvider.js +3 -1
  133. package/dist/providers/ActiveChatProvider.js.map +1 -1
  134. package/dist/providers/ChatManagerProvider.d.ts.map +1 -1
  135. package/dist/providers/ChatManagerProvider.js +3 -1
  136. package/dist/providers/ChatManagerProvider.js.map +1 -1
  137. package/dist/providers/KnowledgeGraphStateProvider.js +1 -1
  138. package/dist/providers/KnowledgeGraphStateProvider.js.map +1 -1
  139. package/dist/providers/chat-socket-auth.d.ts +7 -2
  140. package/dist/providers/chat-socket-auth.d.ts.map +1 -1
  141. package/dist/providers/chat-socket-auth.js +87 -16
  142. package/dist/providers/chat-socket-auth.js.map +1 -1
  143. package/dist/providers/index.d.ts.map +1 -1
  144. package/dist/providers/index.js +8 -1
  145. package/dist/providers/index.js.map +1 -1
  146. package/dist/routes/activity/detail/ActivityChanges.d.ts +2 -0
  147. package/dist/routes/activity/detail/ActivityChanges.d.ts.map +1 -1
  148. package/dist/routes/activity/detail/ActivityChanges.js +8 -7
  149. package/dist/routes/activity/detail/ActivityChanges.js.map +1 -1
  150. package/dist/routes/activity/detail/ActivityDetail.d.ts +1 -0
  151. package/dist/routes/activity/detail/ActivityDetail.d.ts.map +1 -1
  152. package/dist/routes/activity/detail/ActivityDetail.js +5 -4
  153. package/dist/routes/activity/detail/ActivityDetail.js.map +1 -1
  154. package/dist/routes/activity/detail/ActivityStepsRail.d.ts +1 -0
  155. package/dist/routes/activity/detail/ActivityStepsRail.d.ts.map +1 -1
  156. package/dist/routes/activity/detail/ActivityStepsRail.js +3 -2
  157. package/dist/routes/activity/detail/ActivityStepsRail.js.map +1 -1
  158. package/dist/routes/activity/detail/ActivityTimeline.js +2 -2
  159. package/dist/routes/activity/detail/ActivityTimeline.js.map +1 -1
  160. package/dist/routes/activity/detail/NoChangesMessage.d.ts +6 -0
  161. package/dist/routes/activity/detail/NoChangesMessage.d.ts.map +1 -0
  162. package/dist/routes/activity/detail/NoChangesMessage.js +10 -0
  163. package/dist/routes/activity/detail/NoChangesMessage.js.map +1 -0
  164. package/dist/routes/data-explorer/class-properties.js +2 -2
  165. package/dist/routes/data-explorer/class-properties.js.map +1 -1
  166. package/dist/routes/data-explorer/classes.js +2 -2
  167. package/dist/routes/data-explorer/classes.js.map +1 -1
  168. package/dist/routes/data-explorer/components/RawTriples.js +1 -1
  169. package/dist/routes/data-explorer/components/RawTriples.js.map +1 -1
  170. package/dist/routes/data-explorer/components/RecentTypes.js +1 -1
  171. package/dist/routes/data-explorer/components/RecentTypes.js.map +1 -1
  172. package/dist/routes/data-explorer/components/class-detail/Instances.js +1 -1
  173. package/dist/routes/data-explorer/components/class-detail/Instances.js.map +1 -1
  174. package/dist/routes/data-explorer/components/namespace-detail/NamespaceClassRow.js +1 -1
  175. package/dist/routes/data-explorer/components/namespace-detail/NamespaceClassRow.js.map +1 -1
  176. package/dist/routes/data-explorer/components/ontology-coverage/CoverageTermColumns.js +1 -1
  177. package/dist/routes/data-explorer/components/ontology-coverage/CoverageTermColumns.js.map +1 -1
  178. package/dist/routes/data-explorer/components/ontology-coverage/UnobservedRuleVocabulary.js +1 -1
  179. package/dist/routes/data-explorer/components/ontology-coverage/UnobservedRuleVocabulary.js.map +1 -1
  180. package/dist/routes/data-explorer/components/record-detail/ChatPreview.js +2 -2
  181. package/dist/routes/data-explorer/components/record-detail/ChatPreview.js.map +1 -1
  182. package/dist/routes/data-explorer/recents.js +1 -1
  183. package/dist/routes/data-explorer/recents.js.map +1 -1
  184. package/dist/routes/data-explorer/shapes.js +2 -2
  185. package/dist/routes/data-explorer/shapes.js.map +1 -1
  186. package/dist/routes/integrations/components/connect-forms/CanvaConnectForm.d.ts +3 -0
  187. package/dist/routes/integrations/components/connect-forms/CanvaConnectForm.d.ts.map +1 -0
  188. package/dist/routes/integrations/components/connect-forms/CanvaConnectForm.js +12 -0
  189. package/dist/routes/integrations/components/connect-forms/CanvaConnectForm.js.map +1 -0
  190. package/dist/routes/integrations/components/connect-forms/DataConnectionConnectForm.d.ts.map +1 -1
  191. package/dist/routes/integrations/components/connect-forms/DataConnectionConnectForm.js +13 -6
  192. package/dist/routes/integrations/components/connect-forms/DataConnectionConnectForm.js.map +1 -1
  193. package/dist/routes/integrations/components/connect-forms/data-connection-fields.d.ts +3 -0
  194. package/dist/routes/integrations/components/connect-forms/data-connection-fields.d.ts.map +1 -1
  195. package/dist/routes/integrations/components/connect-forms/data-connection-fields.js +9 -2
  196. package/dist/routes/integrations/components/connect-forms/data-connection-fields.js.map +1 -1
  197. package/dist/routes/integrations/connect-forms.d.ts +1 -0
  198. package/dist/routes/integrations/connect-forms.d.ts.map +1 -1
  199. package/dist/routes/integrations/connect-forms.js +1 -0
  200. package/dist/routes/integrations/connect-forms.js.map +1 -1
  201. package/dist/routes/integrations/connection-view.d.ts.map +1 -1
  202. package/dist/routes/integrations/connection-view.js +1 -0
  203. package/dist/routes/integrations/connection-view.js.map +1 -1
  204. package/dist/routes/integrations/types.d.ts +2 -1
  205. package/dist/routes/integrations/types.d.ts.map +1 -1
  206. package/dist/routes/integrations/types.js +1 -0
  207. package/dist/routes/integrations/types.js.map +1 -1
  208. package/dist/routes/plans/components/ActionPlanPage.d.ts.map +1 -1
  209. package/dist/routes/plans/components/ActionPlanPage.js +4 -7
  210. package/dist/routes/plans/components/ActionPlanPage.js.map +1 -1
  211. package/dist/routes/plans/components/PlanDetailRouteContent.d.ts.map +1 -1
  212. package/dist/routes/plans/components/PlanDetailRouteContent.js +2 -1
  213. package/dist/routes/plans/components/PlanDetailRouteContent.js.map +1 -1
  214. package/dist/routes/rules/hooks/useRuleFactsPreview.js +4 -4
  215. package/dist/routes/rules/hooks/useRuleFactsPreview.js.map +1 -1
  216. package/dist/shacl/form-appearance.d.ts +1 -1
  217. package/dist/shacl/form-appearance.d.ts.map +1 -1
  218. package/dist/shacl/form-appearance.js +1 -1
  219. package/dist/shacl/form-appearance.js.map +1 -1
  220. package/dist/shared/graph-derived-queries.js +2 -2
  221. package/dist/shared/graph-derived-queries.js.map +1 -1
  222. package/package.json +12 -7
  223. package/src/app-subpaths.json +1 -0
  224. package/src/components/channel-icon/index.tsx +1 -1
  225. package/src/components/datastore-management/tree.ts +5 -5
  226. package/src/components/explain-fact/ExplainFact.tsx +3 -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/planning/plan-detail-utils.tsx +2 -0
  232. package/src/components/tool-invocation-card/ListRulesResultDisplay.tsx +2 -2
  233. package/src/components/tool-invocation-card/ToolOutputRenderer.tsx +10 -8
  234. package/src/components/tool-invocation-card/types.ts +8 -8
  235. package/src/components/tooltip/index.tsx +35 -2
  236. package/src/explain-fact/rule-presentation.ts +2 -2
  237. package/src/explain-fact/tree-model.ts +2 -2
  238. package/src/graph/entity-link.tsx +20 -0
  239. package/src/graph/graph-list-utils.ts +2 -0
  240. package/src/graph/graph-model.ts +15 -6
  241. package/src/graph/nodes/BrandAssetAnalysisView.tsx +3 -1
  242. package/src/graph/nodes/BrandFontSuggestionView.tsx +7 -1
  243. package/src/graph/nodes/BrandGuidelinesView.tsx +1 -1
  244. package/src/graph/nodes/NodePropertyTable.tsx +32 -143
  245. package/src/graph/nodes/node-property-row.tsx +154 -0
  246. package/src/graph/property-formatters.ts +5 -1
  247. package/src/graph/special-nodes/AttributeList.tsx +177 -0
  248. package/src/graph/special-nodes/EntityPreview.tsx +27 -0
  249. package/src/graph/special-nodes/EntityValueChip.tsx +85 -0
  250. package/src/graph/special-nodes/GenericView.tsx +49 -139
  251. package/src/graph/special-nodes/card-facts.ts +278 -0
  252. package/src/graph/special-nodes/property-icons.ts +59 -0
  253. package/src/graph/status-utils.ts +40 -0
  254. package/src/graph/types.ts +4 -0
  255. package/src/hooks/use-approve-anyway.ts +100 -0
  256. package/src/ldo-ui.ts +8 -0
  257. package/src/lib/find-latest-staged-rule.ts +1 -1
  258. package/src/lib/manual-actions.ts +3 -2
  259. package/src/lib/tool-icons.ts +6 -6
  260. package/src/lib/tool-names.ts +0 -1
  261. package/src/ontology/skolem.ts +2 -2
  262. package/src/providers/ActiveChatProvider.tsx +3 -1
  263. package/src/providers/ChatManagerProvider.tsx +3 -1
  264. package/src/providers/KnowledgeGraphStateProvider.tsx +1 -1
  265. package/src/providers/chat-socket-auth.ts +95 -16
  266. package/src/providers/index.tsx +16 -1
  267. package/src/routes/activity/detail/ActivityChanges.tsx +21 -5
  268. package/src/routes/activity/detail/ActivityDetail.tsx +24 -5
  269. package/src/routes/activity/detail/ActivityStepsRail.tsx +4 -2
  270. package/src/routes/activity/detail/ActivityTimeline.tsx +2 -2
  271. package/src/routes/activity/detail/NoChangesMessage.tsx +20 -0
  272. package/src/routes/data-explorer/class-properties.ts +2 -2
  273. package/src/routes/data-explorer/classes.ts +2 -2
  274. package/src/routes/data-explorer/components/RawTriples.tsx +1 -1
  275. package/src/routes/data-explorer/components/RecentTypes.tsx +1 -1
  276. package/src/routes/data-explorer/components/class-detail/Instances.tsx +1 -1
  277. package/src/routes/data-explorer/components/namespace-detail/NamespaceClassRow.tsx +1 -1
  278. package/src/routes/data-explorer/components/ontology-coverage/CoverageTermColumns.tsx +1 -1
  279. package/src/routes/data-explorer/components/ontology-coverage/UnobservedRuleVocabulary.tsx +1 -1
  280. package/src/routes/data-explorer/components/record-detail/ChatPreview.tsx +2 -2
  281. package/src/routes/data-explorer/recents.ts +1 -1
  282. package/src/routes/data-explorer/shapes.ts +2 -2
  283. package/src/routes/datastores/flatten.ts +1 -1
  284. package/src/routes/integrations/components/connect-forms/CanvaConnectForm.tsx +26 -0
  285. package/src/routes/integrations/components/connect-forms/DataConnectionConnectForm.tsx +38 -12
  286. package/src/routes/integrations/components/connect-forms/data-connection-fields.ts +11 -2
  287. package/src/routes/integrations/connect-forms.ts +1 -0
  288. package/src/routes/integrations/connection-view.ts +1 -0
  289. package/src/routes/integrations/types.ts +2 -0
  290. package/src/routes/plans/components/ActionPlanPage.tsx +9 -8
  291. package/src/routes/plans/components/PlanDetailRouteContent.tsx +4 -3
  292. package/src/routes/rules/hooks/useRuleFactsPreview.ts +4 -4
  293. package/src/shacl/form-appearance.ts +1 -1
  294. package/src/shared/graph-derived-queries.ts +2 -2
  295. package/dist/components/planning/ExecutionActivityRow.d.ts +0 -9
  296. package/dist/components/planning/ExecutionActivityRow.d.ts.map +0 -1
  297. package/dist/components/planning/ExecutionActivityRow.js +0 -53
  298. package/dist/components/planning/ExecutionActivityRow.js.map +0 -1
  299. package/dist/components/planning/ExecutionSectionItem.d.ts +0 -20
  300. package/dist/components/planning/ExecutionSectionItem.d.ts.map +0 -1
  301. package/dist/components/planning/ExecutionSectionItem.js +0 -66
  302. package/dist/components/planning/ExecutionSectionItem.js.map +0 -1
  303. package/dist/components/planning/ExecutionSections.d.ts +0 -16
  304. package/dist/components/planning/ExecutionSections.d.ts.map +0 -1
  305. package/dist/components/planning/ExecutionSections.js +0 -32
  306. package/dist/components/planning/ExecutionSections.js.map +0 -1
  307. package/dist/components/planning/action-plan-icons.d.ts +0 -3
  308. package/dist/components/planning/action-plan-icons.d.ts.map +0 -1
  309. package/dist/components/planning/action-plan-icons.js +0 -25
  310. package/dist/components/planning/action-plan-icons.js.map +0 -1
  311. package/dist/components/planning/execution-section-model.d.ts +0 -24
  312. package/dist/components/planning/execution-section-model.d.ts.map +0 -1
  313. package/dist/components/planning/execution-section-model.js +0 -150
  314. package/dist/components/planning/execution-section-model.js.map +0 -1
  315. package/dist/routes/data-explorer/components/TruncateTooltip.d.ts +0 -7
  316. package/dist/routes/data-explorer/components/TruncateTooltip.d.ts.map +0 -1
  317. package/dist/routes/data-explorer/components/TruncateTooltip.js +0 -9
  318. package/dist/routes/data-explorer/components/TruncateTooltip.js.map +0 -1
  319. package/src/components/planning/ExecutionActivityRow.tsx +0 -89
  320. package/src/components/planning/ExecutionSectionItem.tsx +0 -184
  321. package/src/components/planning/ExecutionSections.tsx +0 -97
  322. package/src/components/planning/action-plan-icons.tsx +0 -27
  323. package/src/components/planning/execution-section-model.ts +0 -190
  324. package/src/routes/data-explorer/components/TruncateTooltip.tsx +0 -25
@@ -1,4 +1,4 @@
1
- import { ontologyGraphIri, shaclGraphIri } from "@manta-eu/client/shared/rdf-namespaces";
1
+ import { ontologyGraphIri, shaclGraph } from "@manta-eu/client/shared/rdf-namespaces";
2
2
  import { isPresent } from "@manta-eu/lib/present";
3
3
  import { DataFactory, type RDF } from "ldkit/rdf";
4
4
  import { SELECT } from "ldkit/sparql";
@@ -33,7 +33,7 @@ const classesQuery = `${prefixes}${SELECT.DISTINCT`?class ?label ?comment`.WHERE
33
33
  }
34
34
  }
35
35
  UNION {
36
- GRAPH ${df.namedNode(shaclGraphIri)} { ?shapeInShaclGraph sh:targetClass ?class }
36
+ GRAPH ${df.namedNode(shaclGraph)} { ?shapeInShaclGraph sh:targetClass ?class }
37
37
  }
38
38
  OPTIONAL { GRAPH ${df.namedNode(ontologyGraphIri)} { ?class rdfs:label ?label } }
39
39
  OPTIONAL { GRAPH ${df.namedNode(ontologyGraphIri)} { ?class rdfs:comment ?comment } }
@@ -7,8 +7,8 @@ import type { ReactNode } from "react";
7
7
  import { Link } from "react-router";
8
8
  import { useTriples } from "../triples";
9
9
  import { turtleForSubject } from "../turtle";
10
- import { TruncateTooltip } from "./TruncateTooltip";
11
10
  import { Skeleton } from "#components/skeleton/index";
11
+ import { TruncateTooltip } from "#components/tooltip/index";
12
12
  import { decodeSkolem, isBlankNode, useInstanceLabel } from "#ldo-ui";
13
13
  import { cn } from "#lib/utils";
14
14
 
@@ -16,8 +16,8 @@ import { Breadcrumbs } from "./Breadcrumbs";
16
16
  import { DetailHeader, TypeBadge } from "./DetailHeader";
17
17
  import { ModifiedAgo } from "./ModifiedAgo";
18
18
  import { EntityName, LinkList, LinkRow, LoadingRows, StatusText } from "./RawTriples";
19
- import { TruncateTooltip } from "./TruncateTooltip";
20
19
  import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "#components/collapsible/index";
20
+ import { TruncateTooltip } from "#components/tooltip/index";
21
21
  import { cn } from "#lib/utils";
22
22
 
23
23
  type RecentInstanceRowsProps = { recentType: RecentType };
@@ -7,7 +7,7 @@ import { LoadMoreButton } from "../LoadMoreButton";
7
7
  import { ModifiedAgo } from "../ModifiedAgo";
8
8
  import { entityNameClass, EntityName, LinkList, LinkRow, LoadingRows, StatusText } from "../RawTriples";
9
9
  import { SegmentBuilder } from "../SegmentBuilder";
10
- import { TruncateTooltip } from "../TruncateTooltip";
10
+ import { TruncateTooltip } from "#components/tooltip/index";
11
11
  import { encodeBlankKey, useBlankInstances } from "#routes/data-explorer/blank-record";
12
12
  import { useFilteredCount, useFilteredInstances } from "#routes/data-explorer/filter-hooks";
13
13
  import { classAnchor, hasActiveConditions, type SegmentFilter } from "#routes/data-explorer/filter-query";
@@ -1,7 +1,7 @@
1
1
  import { humanCount } from "@manta-eu/lib/humanize";
2
2
  import { classPath } from "../../namespaces";
3
3
  import { entityNameClass, LinkRow } from "../RawTriples";
4
- import { TruncateTooltip } from "../TruncateTooltip";
4
+ import { TruncateTooltip } from "#components/tooltip/index";
5
5
  import type { ExplorerClass } from "#routes/data-explorer/classes";
6
6
 
7
7
  type NamespaceClassRowProps = { entry: ExplorerClass; count?: number };
@@ -4,10 +4,10 @@ import { useMemo } from "react";
4
4
  import { Link } from "react-router";
5
5
  import { classRef, namespaceLabel } from "../../namespaces";
6
6
  import { NamespaceSwatch } from "../NamespaceSwatch";
7
- import { TruncateTooltip } from "../TruncateTooltip";
8
7
  import { MissingValue } from "./MissingValue";
9
8
  import { RuleReferencesCell } from "./RuleReferencesCell";
10
9
  import { Badge } from "#components/badge/index";
10
+ import { TruncateTooltip } from "#components/tooltip/index";
11
11
  import { sectionLabelClass } from "#ldo-ui";
12
12
  import { cn } from "#lib/utils";
13
13
  import type { CoverageTerm } from "#routes/data-explorer/coverage";
@@ -6,13 +6,13 @@ import { useEffect, useMemo, useState } from "react";
6
6
  import { Link } from "react-router";
7
7
  import { classRef, namespaceLabel } from "../../namespaces";
8
8
  import { NamespaceSwatch } from "../NamespaceSwatch";
9
- import { TruncateTooltip } from "../TruncateTooltip";
10
9
  import { RuleReferencesCell } from "./RuleReferencesCell";
11
10
  import { Badge } from "#components/badge/index";
12
11
  import { EmptyState } from "#components/empty-state/index";
13
12
  import { SearchInput } from "#components/input/index";
14
13
  import { PaginationBlock } from "#components/pagination/index";
15
14
  import { createTableConfig, DataTable } from "#components/table/index";
15
+ import { TruncateTooltip } from "#components/tooltip/index";
16
16
  import { shouldClampPageIndex, useFittedPagination } from "#hooks/useFittedPagination";
17
17
  import { sectionLabelClass } from "#ldo-ui";
18
18
  import { cn } from "#lib/utils";
@@ -90,14 +90,14 @@ export function ChatPreview(props: ChatPreviewProps) {
90
90
 
91
91
  if (!node) return <StatusText>Nothing to preview.</StatusText>;
92
92
 
93
- const EntityView = getEntityView(node.data.type, node.data.actionShape) ?? GenericView;
93
+ const EntityView = getEntityView(node.data.type, node.data.actionShape);
94
94
 
95
95
  return (
96
96
  <div className="flex flex-col gap-6">
97
97
  <section>
98
98
  <h3 className={cn(sectionLabelClass, "mb-1.5 text-muted-foreground")}>Chat rendering</h3>
99
99
  <div className="max-w-md">
100
- <EntityView data={node.data} />
100
+ {EntityView ? <EntityView data={node.data} /> : <GenericView data={node.data} defaultExpanded />}
101
101
  </div>
102
102
  </section>
103
103
 
@@ -19,7 +19,7 @@ const df = new DataFactory();
19
19
 
20
20
  export const recentTypesLimit = 10;
21
21
 
22
- // STR() ordering because sources mix xsd:date and xsd:dateTime, which RDFox will not compare as temporals
22
+ // STR() ordering because sources mix xsd:date and xsd:dateTime, which the datastore will not compare as temporals
23
23
  const recentlyModifiedTypesSubquery = SELECT`?type (MAX(STR(?modified)) AS ?lastModified)`.WHERE`
24
24
  ?dated schema:dateModified ?modified .
25
25
  ?dated a ?type .
@@ -1,4 +1,4 @@
1
- import { ontologyGraphIri, shaclGraphIri } from "@manta-eu/client/shared/rdf-namespaces";
1
+ import { ontologyGraphIri, shaclGraph } from "@manta-eu/client/shared/rdf-namespaces";
2
2
  import { isPresent } from "@manta-eu/lib/present";
3
3
  import { DataFactory, type RDF } from "ldkit/rdf";
4
4
  import { SELECT } from "ldkit/sparql";
@@ -62,7 +62,7 @@ export function groupShapeConstraints(rows: ShapeConstraintRow[]): ClassShape[]
62
62
 
63
63
  function shapeDetailsQuery(classIri: string): string {
64
64
  return `${prefixes}${SELECT.DISTINCT`?shape ?path ?constraint ?value ?listValue`.WHERE`
65
- VALUES ?shapeGraph { ${df.namedNode(ontologyGraphIri)} ${df.namedNode(shaclGraphIri)} }
65
+ VALUES ?shapeGraph { ${df.namedNode(ontologyGraphIri)} ${df.namedNode(shaclGraph)} }
66
66
  GRAPH ?shapeGraph {
67
67
  ?shape sh:targetClass ${df.namedNode(safeIri(classIri))} ; sh:property ?propertyShape .
68
68
  ?propertyShape sh:path ?path ; ?constraint ?value .
@@ -22,7 +22,7 @@ export type DatastoreRow = {
22
22
  // Org roots carry their own datastore but are also the container the rest hang off.
23
23
  isOrganization: boolean;
24
24
  mirrored?: boolean;
25
- // Real in RDFox, but no Keycloak node behind it, so it can only be selected.
25
+ // Real in the datastore, but no Keycloak node behind it, so it can only be selected.
26
26
  isRealmDefault?: boolean;
27
27
  isUnlinked?: boolean;
28
28
  };
@@ -0,0 +1,26 @@
1
+ import { GQLIntegration } from "@manta-eu/client";
2
+ import { OAuthSingleAccountConnectForm } from "./OAuthSingleAccountConnectForm";
3
+ import type { ConnectFormProps } from "./types";
4
+
5
+ const canvaPermissions = [
6
+ "Read your designs, the folders they live in, and your uploaded assets.",
7
+ "Export your designs so their pages can be analyzed.",
8
+ "Read your brand templates and the comments on your designs.",
9
+ ];
10
+
11
+ export function CanvaConnectForm(props: ConnectFormProps) {
12
+ return (
13
+ <OAuthSingleAccountConnectForm
14
+ {...props}
15
+ integration={GQLIntegration.Canva}
16
+ startHref="/oauth/canva/start"
17
+ ctaLabel="Continue with Canva"
18
+ stepTitle="Connect your Canva account"
19
+ stepDescription="Manta will take you to Canva to ask for permission, then bring you back here."
20
+ supportingInfo="You'll be taken to Canva to approve access. You can revoke it any time from your Canva account settings."
21
+ permissions={canvaPermissions}
22
+ waitingLabel="Waiting for you to finish connecting to Canva…"
23
+ connectedToastLabel="Canva connected"
24
+ />
25
+ );
26
+ }
@@ -23,6 +23,8 @@ import {
23
23
  nameSchema,
24
24
  pickSettings,
25
25
  settingsSchema,
26
+ sourceKey,
27
+ sourceSchema,
26
28
  storedValues,
27
29
  type ConnectorField,
28
30
  type DataConnectionValues,
@@ -39,22 +41,41 @@ export type StoredConnection = StoredDataConnection & { id: string };
39
41
 
40
42
  type Step = StepConfig<DataConnectionValues>;
41
43
 
42
- function nameStep(providerName: string): Step {
44
+ const newSourceHint =
45
+ "Optional. Lowercase letters and digits. Left blank, Manta reuses the name of an earlier connection to this database, or takes one from the connection name. It can't change later.";
46
+ const editingSourceHint = "Set when the connection was created. It can't change.";
47
+
48
+ function nameStep(providerName: string, editing: boolean): Step {
43
49
  return {
44
50
  id: "name",
45
51
  title: "Name this connection",
46
52
  description: `Used to identify this ${providerName} database in Manta.`,
47
- schema: z.object({ [nameKey]: nameSchema }),
53
+ schema: z.object({ [nameKey]: nameSchema, [sourceKey]: sourceSchema }),
48
54
  continueLabel: "Continue",
49
55
  render: (form) => (
50
- <Input
51
- id={inputId(nameKey)}
52
- label="Name"
53
- placeholder="Warehouse"
54
- autoComplete="off"
55
- error={form.formState.errors[nameKey]?.message?.toString()}
56
- {...form.register(nameKey)}
57
- />
56
+ <div className="grid gap-4">
57
+ <Input
58
+ id={inputId(nameKey)}
59
+ label="Name"
60
+ placeholder="Warehouse"
61
+ autoComplete="off"
62
+ error={form.formState.errors[nameKey]?.message?.toString()}
63
+ {...form.register(nameKey)}
64
+ />
65
+
66
+ {(!editing || isPresent(form.getValues(sourceKey))) && (
67
+ <Input
68
+ id={inputId(sourceKey)}
69
+ label="Source name"
70
+ placeholder="warehouse"
71
+ autoComplete="off"
72
+ disabled={editing}
73
+ helperText={editing ? editingSourceHint : newSourceHint}
74
+ error={form.formState.errors[sourceKey]?.message?.toString()}
75
+ {...form.register(sourceKey)}
76
+ />
77
+ )}
78
+ </div>
58
79
  ),
59
80
  };
60
81
  }
@@ -117,7 +138,7 @@ export function createSteps(
117
138
  const required = fields.filter((field) => field.required);
118
139
  const optional = fields.filter((field) => !field.required);
119
140
  const steps = [
120
- nameStep(providerName),
141
+ nameStep(providerName, editing),
121
142
  connectionStep({ providerName, connectorType, stepFields: required, allFields: fields, editing }),
122
143
  ...(isPresent(optional) ? [optionalStep(optional, editing)] : []),
123
144
  ];
@@ -160,7 +181,12 @@ function DataConnectionWizard(props: DataConnectionWizardProps) {
160
181
 
161
182
  async function create(values: DataConnectionValues) {
162
183
  await createMutation.mutateAsync({
163
- input: { name: values[nameKey], connectorType, settings: pickSettings(values, fields) },
184
+ input: {
185
+ name: values[nameKey],
186
+ connectorType,
187
+ sourceName: values[sourceKey] || undefined,
188
+ settings: pickSettings(values, fields),
189
+ },
164
190
  });
165
191
  toast.success(`${provider.name} added`, { description: "Manta is testing the connection." });
166
192
  }
@@ -5,12 +5,19 @@ import { z } from "zod";
5
5
  export type ConnectorField = GQLDataConnectorTypesQuery["dataConnectorTypes"][number]["fields"][number];
6
6
 
7
7
  export const nameKey = "connectionName";
8
+ export const sourceKey = "sourceName";
8
9
 
9
10
  // The setting keys come from the connector descriptor at runtime, so the value type is an index signature.
10
11
  export type DataConnectionValues = { [nameKey]: string; [setting: string]: string };
11
12
 
12
13
  export const nameSchema = z.string().trim().min(1, "Name is required").max(64, "64 characters or fewer");
13
14
 
15
+ export const sourceSchema = z
16
+ .string()
17
+ .trim()
18
+ .regex(/^([a-z][a-z0-9]*)?$/, "Use lowercase letters and digits, starting with a letter")
19
+ .optional();
20
+
14
21
  const valuePatterns: Partial<Record<GQLDataConnectorFieldType, { pattern: RegExp; message: string }>> = {
15
22
  [GQLDataConnectorFieldType.Integer]: { pattern: /^-?\d+$/, message: "Enter a whole number" },
16
23
  [GQLDataConnectorFieldType.Decimal]: { pattern: /^-?\d+(\.\d+)?$/, message: "Enter a number" },
@@ -40,7 +47,7 @@ export function settingsSchema(fields: readonly ConnectorField[]) {
40
47
 
41
48
  // The fields come at runtime, so the built schema has no static output type to infer.
42
49
  export function formSchema(fields: readonly ConnectorField[]): z.ZodType<DataConnectionValues, DataConnectionValues> {
43
- return settingsSchema(fields).extend({ [nameKey]: nameSchema }) as unknown as z.ZodType<
50
+ return settingsSchema(fields).extend({ [nameKey]: nameSchema, [sourceKey]: sourceSchema }) as unknown as z.ZodType<
44
51
  DataConnectionValues,
45
52
  DataConnectionValues
46
53
  >;
@@ -55,13 +62,14 @@ export function pickSettings(values: DataConnectionValues, fields: readonly Conn
55
62
  }
56
63
 
57
64
  export function blankValues(fields: readonly ConnectorField[]): DataConnectionValues {
58
- return { ...Object.fromEntries(fields.map((field) => [field.key, ""])), [nameKey]: "" };
65
+ return { ...Object.fromEntries(fields.map((field) => [field.key, ""])), [nameKey]: "", [sourceKey]: "" };
59
66
  }
60
67
 
61
68
  export type DataConnectionSetting = { key: string; value: string };
62
69
 
63
70
  export type StoredDataConnection = {
64
71
  name: string;
72
+ sourceName?: string | null;
65
73
  settings: readonly DataConnectionSetting[];
66
74
  candidateSettings?: readonly DataConnectionSetting[] | null;
67
75
  error?: string | null;
@@ -83,6 +91,7 @@ export function storedValues(stored: StoredDataConnection, fields: readonly Conn
83
91
  return {
84
92
  ...Object.fromEntries(fields.map((field) => [field.key, field.secret ? "" : (storedByKey.get(field.key) ?? "")])),
85
93
  [nameKey]: stored.name,
94
+ [sourceKey]: stored.sourceName ?? "",
86
95
  };
87
96
  }
88
97
 
@@ -6,6 +6,7 @@ export {
6
6
  type StoredConnection,
7
7
  } from "./components/connect-forms/DataConnectionConnectForm";
8
8
  export type { DataConnectionSetting, StoredDataConnection } from "./components/connect-forms/data-connection-fields";
9
+ export { CanvaConnectForm } from "./components/connect-forms/CanvaConnectForm";
9
10
  export { FigmaConnectForm } from "./components/connect-forms/FigmaConnectForm";
10
11
  export { GmailConnectForm } from "./components/connect-forms/GmailConnectForm";
11
12
  export { GoogleAdsConnectForm } from "./components/connect-forms/GoogleAdsConnectForm";
@@ -36,6 +36,7 @@ export type ConnectionView = {
36
36
  // Fallback nouns shown until the ontology carries rdfs:labels for these classes (MNT-503).
37
37
  // https://linear.app/manta-eu/issue/MNT-503/add-rdfslabel-to-provider-entity-classes-in-the-ontology
38
38
  const oauthAccountNoun = {
39
+ [GQLIntegration.Canva]: "User",
39
40
  [GQLIntegration.Dash]: "Account",
40
41
  [GQLIntegration.Figma]: "User",
41
42
  [GQLIntegration.Slack]: "Workspace",
@@ -11,6 +11,7 @@ import type { ComponentType, SVGProps } from "react";
11
11
  import type { ConnectionView } from "./connection-view";
12
12
 
13
13
  export const gmailProviderId = "GMAIL";
14
+ export const canvaProviderId = "CANVA";
14
15
  export const figmaProviderId = "FIGMA";
15
16
  export const dashProviderId = "DASH";
16
17
  export const dataConnectionProviderIds = {
@@ -29,6 +30,7 @@ export type DataConnectorType = keyof typeof dataConnectionProviderIds;
29
30
  export type ProviderId =
30
31
  | `${GQLInferalIntegrationProvider}`
31
32
  | typeof gmailProviderId
33
+ | typeof canvaProviderId
32
34
  | typeof figmaProviderId
33
35
  | typeof dashProviderId
34
36
  | (typeof dataConnectionProviderIds)[DataConnectorType];
@@ -17,8 +17,8 @@ import { ExecutePlanDialog } from "#components/planning/ExecutePlanDialog";
17
17
  import { isTerminalActionPlanState } from "#components/planning/plan-detail-utils";
18
18
  import { useActionPlanDetail } from "#hooks/useActionPlanDetail";
19
19
  import { useActionPlanExecution } from "#hooks/useActionPlanExecution";
20
- import { useActionPlanDiff } from "#ldo-ui";
21
20
  import { useMantaClient } from "#providers/index";
21
+ import { KnowledgeGraphStateProvider } from "#providers/KnowledgeGraphStateProvider";
22
22
 
23
23
  export type ActionPlanPageProps = {
24
24
  planName: string;
@@ -46,10 +46,6 @@ export function ActionPlanPage(props: ActionPlanPageProps) {
46
46
  const viewRef = useRef<ConnectedPlanDetailViewHandle>(null);
47
47
  const { mantaBaseUrl } = useMantaClient();
48
48
  const { plan, graphDocument, isLoading, error } = useActionPlanDetail(planGraphIri);
49
- const { data: diff = null, isLoading: isDiffLoading } = useActionPlanDiff({
50
- planGraphIri,
51
- enabled: !!planGraphIri,
52
- });
53
49
  const [pageMode, setPageMode] = useState<ActionPlanPageMode>(initialMode);
54
50
  const [executePromptNonce, setExecutePromptNonce] = useState(0);
55
51
  const [isRerunDialogOpen, setIsRerunDialogOpen] = useState(false);
@@ -196,11 +192,11 @@ export function ActionPlanPage(props: ActionPlanPageProps) {
196
192
  {!isLoading && plan && !showPlanningSurface && (
197
193
  <ActioningView
198
194
  planGraphIri={planGraphIri}
199
- diff={diff}
200
- isLoading={isLoading || isDiffLoading}
195
+ isLoading={isLoading}
201
196
  mantaChatBaseUrl={mantaBaseUrl}
202
197
  executionControl={executionControl}
203
198
  executePromptNonce={executePromptNonce}
199
+ showActivityLinks={false}
204
200
  datastoreId={datastoreId}
205
201
  userId={userId}
206
202
  hideRunControls={hideRunControls}
@@ -219,5 +215,10 @@ export function ActionPlanPage(props: ActionPlanPageProps) {
219
215
  </>
220
216
  );
221
217
 
222
- return <>{renderLayout({ header, body })}</>;
218
+ // An exported entry point owns its graph refresh, like EmbeddedChat; hosts may mount it outside one.
219
+ return (
220
+ <KnowledgeGraphStateProvider datastoreId={datastoreId}>
221
+ {renderLayout({ header, body })}
222
+ </KnowledgeGraphStateProvider>
223
+ );
223
224
  }
@@ -152,6 +152,7 @@ export function PlanDetailRouteContent(props: PlanDetailRouteContentProps) {
152
152
  plan.hasCurrentFacts && isTerminalActionPlanState(effectivePlanState) ? handleOpenRerun : undefined;
153
153
  const activeViewMode = viewMode === "visual" && !graphDocument?.size ? "overview" : viewMode;
154
154
  const showExecutionSurface = shouldShowActioningSurface && activeViewMode === "overview";
155
+ const rulesSection = <ActionPlanRulesSection planGraphIri={planGraphIri} LinkComponent={Link} />;
155
156
 
156
157
  return (
157
158
  <div className="flex min-h-0 flex-1 flex-col overflow-y-auto overflow-x-hidden">
@@ -183,13 +184,12 @@ export function PlanDetailRouteContent(props: PlanDetailRouteContentProps) {
183
184
  onExecute={detailExecuteAction}
184
185
  onCancel={detailCancelAction}
185
186
  onRerun={detailRerunAction}
186
- rulesSlot={<ActionPlanRulesSection planGraphIri={planGraphIri} LinkComponent={Link} />}
187
+ rulesSlot={showExecutionSurface ? undefined : rulesSection}
187
188
  onRunClick={(activityIri) => navigate(buildActivityHref(activityIri))}
188
189
  />
189
190
  {showExecutionSurface && (
190
191
  <ActioningView
191
192
  planGraphIri={planGraphIri}
192
- diff={null}
193
193
  isLoading={false}
194
194
  mantaChatBaseUrl={mantaBaseUrl}
195
195
  executionControl={executionControl}
@@ -201,7 +201,7 @@ export function PlanDetailRouteContent(props: PlanDetailRouteContentProps) {
201
201
  planGraphIri={planGraphIri}
202
202
  emptyFallback={
203
203
  isPresent(latestRunIri) ? (
204
- <div className="h-[60vh]">
204
+ <div className="flex max-h-[60vh] flex-col">
205
205
  <ActivityDetail
206
206
  activityIri={latestRunIri}
207
207
  variant="embedded"
@@ -214,6 +214,7 @@ export function PlanDetailRouteContent(props: PlanDetailRouteContentProps) {
214
214
  }
215
215
  />
216
216
  )}
217
+ {showExecutionSurface && <div className="mx-auto w-full max-w-7xl px-8 py-6">{rulesSection}</div>}
217
218
  </div>
218
219
  );
219
220
  }
@@ -1,5 +1,5 @@
1
1
  import { useSparqlQueryQuery } from "@manta-eu/client";
2
- import { formatIriForRdfox, compactUri, namespaces } from "@manta-eu/client/shared/rdf-namespaces";
2
+ import { formatIriForSparql, compactUri, namespaces } from "@manta-eu/client/shared/rdf-namespaces";
3
3
  import { isJsonLdNode } from "@manta-eu/client/types/jsonld";
4
4
  import { parseDatalogRule, datalogBodyToSparqlSelect } from "@manta-eu/datalog-parser";
5
5
  import type { DatalogAtom, SparqlSelectResult } from "@manta-eu/datalog-parser";
@@ -241,20 +241,20 @@ function generateTriplePattern(atom: DatalogAtom): string | null {
241
241
  .with("property", () => {
242
242
  if (!isPropertyAtom(atom)) return null;
243
243
  const subject = atom.arguments[0]?.value || "?s";
244
- const predicate = formatIriForRdfox(atom.predicate.value || "");
244
+ const predicate = formatIriForSparql(atom.predicate.value || "");
245
245
  const object = atom.arguments[1]?.value || "?o";
246
246
  return `${subject} ${predicate} ${object}`;
247
247
  })
248
248
  .with("class", () => {
249
249
  if (!isClassAtom(atom)) return null;
250
250
  const subject = atom.arguments[0]?.value || "?s";
251
- const classIRI = formatIriForRdfox(atom.predicate.value || "");
251
+ const classIRI = formatIriForSparql(atom.predicate.value || "");
252
252
  return `${subject} a ${classIRI}`;
253
253
  })
254
254
  .with("triple", () => {
255
255
  if (!isTripleAtom(atom)) return null;
256
256
  const subject = atom.subject.value || "?s";
257
- const predicate = formatIriForRdfox(atom.predicate.value || "");
257
+ const predicate = formatIriForSparql(atom.predicate.value || "");
258
258
  const object = atom.object.value || "?o";
259
259
  return `${subject} ${predicate} ${object}`;
260
260
  })
@@ -168,7 +168,7 @@ function propertyPathsByBlankNode(turtle: string): Map<string, string> {
168
168
  return paths;
169
169
  }
170
170
 
171
- /** RDFox emits `sh:property` in arbitrary order, reshuffling fields on every open; reorder by path local name. */
171
+ /** The datastore emits `sh:property` in arbitrary order, so fields move on every open; reorder by path local name. */
172
172
  export function sortShapeProperties(turtle: string): string {
173
173
  const paths = propertyPathsByBlankNode(turtle);
174
174
  const localName = (node: string) => {
@@ -8,7 +8,7 @@ import {
8
8
  useConversationStartersQuery,
9
9
  useCoverageRulesQuery,
10
10
  useCurrentFactValueQuery,
11
- useExplainRdFoxFactQuery,
11
+ useExplainFactQuery,
12
12
  useGetActionPlansSummaryQuery,
13
13
  useMemoriesQuery,
14
14
  useMemorySchemasQuery,
@@ -34,7 +34,7 @@ export const graphDerivedQueries: QueryWithGetKey[] = [
34
34
  useConversationStartersQuery,
35
35
  useCoverageRulesQuery,
36
36
  useCurrentFactValueQuery,
37
- useExplainRdFoxFactQuery,
37
+ useExplainFactQuery,
38
38
  useGetActionPlansSummaryQuery,
39
39
  useMemoriesQuery,
40
40
  useMemorySchemasQuery,
@@ -1,9 +0,0 @@
1
- import { type ResolvedManualActionStatus } from "./execution-section-model.js";
2
- import type { ExecutionProvenanceActivity } from "#ldo-ui";
3
- type ExecutionActivityRowProps = {
4
- activity: ExecutionProvenanceActivity;
5
- manualActionStatus?: ResolvedManualActionStatus | null;
6
- };
7
- export declare function ExecutionActivityRow(props: ExecutionActivityRowProps): import("react/jsx-runtime").JSX.Element;
8
- export {};
9
- //# sourceMappingURL=ExecutionActivityRow.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExecutionActivityRow.d.ts","sourceRoot":"","sources":["../../../src/components/planning/ExecutionActivityRow.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC9F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAG3D,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,EAAE,2BAA2B,CAAC;IACtC,kBAAkB,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;CACxD,CAAC;AAeF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,2CA4BpE"}
@@ -1,53 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { humanDuration } from "@manta-eu/lib/humanize";
3
- import { AlertCircle, Check, ClockFading, Loader2, X } from "lucide-react";
4
- import { useEffect, useState } from "react";
5
- import { match } from "ts-pattern";
6
- import { parseTimestampMs } from "./execution-section-model.js";
7
- import { cn } from "#lib/utils";
8
- function resolveIconState(activity, manualActionStatus) {
9
- if (activity.errorMessage)
10
- return "error";
11
- if (manualActionStatus === "REJECTED")
12
- return "rejected";
13
- if (manualActionStatus === "COMPLETED" || !!activity.endedAtTime)
14
- return "completed";
15
- if (activity.startedAtTime)
16
- return "running";
17
- return "pending";
18
- }
19
- export function ExecutionActivityRow(props) {
20
- const { activity, manualActionStatus = null } = props;
21
- const iconState = resolveIconState(activity, manualActionStatus);
22
- const hasError = iconState === "error";
23
- const isPending = iconState === "pending";
24
- return (_jsxs("div", { className: cn("flex items-center justify-between pl-5 pr-3 py-2", hasError && "bg-error/10"), children: [_jsxs("div", { className: "flex items-center gap-3 min-w-0", children: [match(iconState)
25
- .with("error", () => _jsx(AlertCircle, { className: "size-4 shrink-0 text-error-foreground" }))
26
- .with("rejected", () => _jsx(X, { className: "size-4 shrink-0 text-error-foreground" }))
27
- .with("completed", () => _jsx(Check, { className: "size-4 shrink-0 text-success-foreground" }))
28
- .with("running", () => _jsx(Loader2, { className: "size-4 shrink-0 text-muted-foreground animate-spin" }))
29
- .with("pending", () => _jsx(ClockFading, { className: "size-4 shrink-0 text-muted-foreground/40" }))
30
- .exhaustive(), _jsx("span", { className: cn("text-[12px] font-mono leading-[18px] truncate", hasError ? "text-error-foreground" : isPending ? "text-muted-foreground" : "text-default-foreground"), children: activity.errorMessage ?? activity.entityLabel })] }), _jsx(ActivityElapsed, { activity: activity, hasError: hasError, isPending: isPending })] }));
31
- }
32
- function ActivityElapsed(props) {
33
- const { activity, hasError, isPending } = props;
34
- const isRunning = !!activity.startedAtTime && !activity.endedAtTime;
35
- const [now, setNow] = useState(() => Date.now());
36
- useEffect(() => {
37
- if (!isRunning)
38
- return;
39
- const id = setInterval(() => setNow(Date.now()), 1000);
40
- return () => clearInterval(id);
41
- }, [isRunning]);
42
- if (!activity.startedAtTime) {
43
- return _jsx("span", { className: "text-[12px] font-mono leading-[18px] shrink-0 ml-3 text-muted-foreground", children: "-" });
44
- }
45
- const start = parseTimestampMs(activity.startedAtTime);
46
- if (start === null) {
47
- return _jsx("span", { className: "text-[12px] font-mono leading-[18px] shrink-0 ml-3 text-muted-foreground", children: "-" });
48
- }
49
- const end = parseTimestampMs(activity.endedAtTime) ?? now;
50
- const label = humanDuration({ start, end, largest: 2 }) || "0 seconds";
51
- return (_jsx("span", { className: cn("text-[12px] font-mono leading-[18px] shrink-0 ml-3", hasError ? "text-error-foreground" : isPending ? "text-muted-foreground" : "text-default-foreground"), children: label }));
52
- }
53
- //# sourceMappingURL=ExecutionActivityRow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExecutionActivityRow.js","sourceRoot":"","sources":["../../../src/components/planning/ExecutionActivityRow.tsx"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import type { EntityTypeEntry } from "./ActionPlanDetailView.js";
2
- import { type SectionStatus } from "./execution-section-model.js";
3
- import { type ManualActionTarget } from "./ManualActionCard.js";
4
- import type { ExecutionProvenanceActivity, ManualAction, ManualActionResolution, ManualActionResolving } from "#ldo-ui";
5
- export type ExecutionSectionItemProps = {
6
- entry: EntityTypeEntry;
7
- activities: ExecutionProvenanceActivity[];
8
- status: SectionStatus;
9
- fallbackStartedAtMs?: number | null;
10
- isExpanded: boolean;
11
- onToggle: () => void;
12
- manualActions?: ManualAction[];
13
- manualActionEntities?: Map<string, ManualActionTarget[]>;
14
- onManualActionResolve?: (subjectIri: string, resolution: ManualActionResolution) => void;
15
- resolvingManualAction?: ManualActionResolving;
16
- canResolveManualAction?: boolean;
17
- manualActionDisabledReason?: string;
18
- };
19
- export declare function ExecutionSectionItem(props: ExecutionSectionItemProps): import("react/jsx-runtime").JSX.Element;
20
- //# sourceMappingURL=ExecutionSectionItem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExecutionSectionItem.d.ts","sourceRoot":"","sources":["../../../src/components/planning/ExecutionSectionItem.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAoD,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEjH,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,2BAA2B,EAAE,YAAY,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAIxH,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,eAAe,CAAC;IACvB,UAAU,EAAE,2BAA2B,EAAE,CAAC;IAC1C,MAAM,EAAE,aAAa,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACzD,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACzF,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,2CAwFpE"}