@manta-eu/react 0.1.7 → 0.1.9

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 (231) hide show
  1. package/README.md +2 -0
  2. package/dist/components/chart/AreaChart.d.ts.map +1 -1
  3. package/dist/components/chart/AreaChart.js +4 -6
  4. package/dist/components/chart/BarChart.d.ts.map +1 -1
  5. package/dist/components/chart/BarChart.js +5 -6
  6. package/dist/components/chart/ComposedChart.d.ts.map +1 -1
  7. package/dist/components/chart/ComposedChart.js +15 -7
  8. package/dist/components/chart/LineChart.d.ts.map +1 -1
  9. package/dist/components/chart/LineChart.js +4 -6
  10. package/dist/components/chart/annotations.d.ts +4 -0
  11. package/dist/components/chart/annotations.d.ts.map +1 -1
  12. package/dist/components/chart/annotations.js +10 -2
  13. package/dist/components/chart/chart-schemas.d.ts +1960 -54
  14. package/dist/components/chart/chart-schemas.d.ts.map +1 -1
  15. package/dist/components/chart/chart-schemas.js +137 -15
  16. package/dist/components/chart/series.d.ts +28 -0
  17. package/dist/components/chart/series.d.ts.map +1 -0
  18. package/dist/components/chart/series.js +61 -0
  19. package/dist/components/chart/stacks.d.ts +9 -0
  20. package/dist/components/chart/stacks.d.ts.map +1 -0
  21. package/dist/components/chart/stacks.js +11 -0
  22. package/dist/components/chat-view/ChatHeaders.d.ts.map +1 -1
  23. package/dist/components/chat-view/ChatHeaders.js +2 -2
  24. package/dist/components/layouts/Sidebar.d.ts.map +1 -1
  25. package/dist/components/layouts/Sidebar.js +14 -3
  26. package/dist/components/planning/ActioningView.d.ts +1 -0
  27. package/dist/components/planning/ActioningView.d.ts.map +1 -1
  28. package/dist/components/planning/ActioningView.js +15 -52
  29. package/dist/components/planning/ExecutionSectionItem.d.ts +6 -4
  30. package/dist/components/planning/ExecutionSectionItem.d.ts.map +1 -1
  31. package/dist/components/planning/ExecutionSectionItem.js +2 -2
  32. package/dist/components/planning/ExecutionSections.d.ts +6 -4
  33. package/dist/components/planning/ExecutionSections.d.ts.map +1 -1
  34. package/dist/components/planning/ExecutionSections.js +2 -2
  35. package/dist/components/planning/ManualActionCard.d.ts +14 -8
  36. package/dist/components/planning/ManualActionCard.d.ts.map +1 -1
  37. package/dist/components/planning/ManualActionCard.js +44 -24
  38. package/dist/components/planning/ManualActionList.d.ts +22 -0
  39. package/dist/components/planning/ManualActionList.d.ts.map +1 -0
  40. package/dist/components/planning/ManualActionList.js +35 -0
  41. package/dist/components/planning/manual-action-targets.d.ts +4 -0
  42. package/dist/components/planning/manual-action-targets.d.ts.map +1 -0
  43. package/dist/components/planning/manual-action-targets.js +19 -0
  44. package/dist/components/select/index.d.ts.map +1 -1
  45. package/dist/components/select/index.js +4 -1
  46. package/dist/components/sidebar/index.d.ts +2 -0
  47. package/dist/components/sidebar/index.d.ts.map +1 -1
  48. package/dist/components/sidebar/index.js +1 -0
  49. package/dist/components/sidebar/nav-user.d.ts +1 -1
  50. package/dist/components/sidebar/nav-user.d.ts.map +1 -1
  51. package/dist/components/sidebar/nav-user.js +3 -3
  52. package/dist/components/sidebar/user-avatar.d.ts +7 -0
  53. package/dist/components/sidebar/user-avatar.d.ts.map +1 -0
  54. package/dist/components/sidebar/user-avatar.js +9 -0
  55. package/dist/globals.css +6 -13
  56. package/dist/hooks/use-connection-problems.d.ts.map +1 -1
  57. package/dist/hooks/use-manual-actions.d.ts +13 -3
  58. package/dist/hooks/use-manual-actions.d.ts.map +1 -1
  59. package/dist/hooks/use-manual-actions.js +16 -10
  60. package/dist/hooks/useAuth.d.ts +1 -0
  61. package/dist/hooks/useAuth.d.ts.map +1 -1
  62. package/dist/hooks/useAuth.js +7 -1
  63. package/dist/hooks/useConversations.d.ts +1 -0
  64. package/dist/hooks/useConversations.d.ts.map +1 -1
  65. package/dist/hooks/useResolveManualAction.d.ts +14 -0
  66. package/dist/hooks/useResolveManualAction.d.ts.map +1 -0
  67. package/dist/hooks/useResolveManualAction.js +47 -0
  68. package/dist/hooks/useValidateActionPlan.d.ts.map +1 -1
  69. package/dist/ldo-ui.d.ts +2 -1
  70. package/dist/ldo-ui.d.ts.map +1 -1
  71. package/dist/ldo-ui.js +2 -1
  72. package/dist/lib/build-config.d.ts +2 -0
  73. package/dist/lib/build-config.d.ts.map +1 -1
  74. package/dist/lib/build-config.js +2 -0
  75. package/dist/lib/chat-types.d.ts +1 -0
  76. package/dist/lib/chat-types.d.ts.map +1 -1
  77. package/dist/lib/datastore-route-table.d.ts +2 -0
  78. package/dist/lib/datastore-route-table.d.ts.map +1 -1
  79. package/dist/lib/datastore-route-table.js +3 -1
  80. package/dist/lib/datastore-routes.d.ts +7 -1
  81. package/dist/lib/datastore-routes.d.ts.map +1 -1
  82. package/dist/lib/datastore-routes.js +7 -2
  83. package/dist/lib/decode-chart-entities.d.ts.map +1 -1
  84. package/dist/lib/decode-chart-entities.js +5 -1
  85. package/dist/lib/manual-actions.d.ts +1 -0
  86. package/dist/lib/manual-actions.d.ts.map +1 -1
  87. package/dist/lib/manual-actions.js +4 -1
  88. package/dist/lib/structured-data/types.d.ts +7 -2
  89. package/dist/lib/structured-data/types.d.ts.map +1 -1
  90. package/dist/providers/ChatManagerProvider.d.ts.map +1 -1
  91. package/dist/providers/ChatManagerProvider.js +18 -16
  92. package/dist/providers/NavExtrasProvider.d.ts +23 -0
  93. package/dist/providers/NavExtrasProvider.d.ts.map +1 -0
  94. package/dist/providers/NavExtrasProvider.js +10 -0
  95. package/dist/providers/index.d.ts +1 -0
  96. package/dist/providers/index.d.ts.map +1 -1
  97. package/dist/providers/index.js +1 -0
  98. package/dist/routes/explain/ExplainEmpty.d.ts.map +1 -1
  99. package/dist/routes/explain/ExplainEmpty.js +2 -1
  100. package/dist/routes/integrations/catalog-shape.d.ts +2 -1
  101. package/dist/routes/integrations/catalog-shape.d.ts.map +1 -1
  102. package/dist/routes/integrations/components/AddIntegrationModal.d.ts.map +1 -1
  103. package/dist/routes/integrations/components/AddIntegrationModal.js +1 -1
  104. package/dist/routes/integrations/components/MantaSyncPluginDownload.d.ts +13 -0
  105. package/dist/routes/integrations/components/MantaSyncPluginDownload.d.ts.map +1 -0
  106. package/dist/routes/integrations/components/MantaSyncPluginDownload.js +23 -0
  107. package/dist/routes/integrations/components/connect-forms/ConnectFormHeader.d.ts +1 -1
  108. package/dist/routes/integrations/components/connect-forms/ConnectFormHeader.d.ts.map +1 -1
  109. package/dist/routes/integrations/components/connect-forms/ConnectWizardShell.d.ts +1 -1
  110. package/dist/routes/integrations/components/connect-forms/ConnectWizardShell.d.ts.map +1 -1
  111. package/dist/routes/integrations/components/connect-forms/ConnectionStringInput.d.ts +11 -0
  112. package/dist/routes/integrations/components/connect-forms/ConnectionStringInput.d.ts.map +1 -0
  113. package/dist/routes/integrations/components/connect-forms/ConnectionStringInput.js +49 -0
  114. package/dist/routes/integrations/components/connect-forms/DashConnectForm.d.ts +7 -0
  115. package/dist/routes/integrations/components/connect-forms/DashConnectForm.d.ts.map +1 -0
  116. package/dist/routes/integrations/components/connect-forms/DashConnectForm.js +87 -0
  117. package/dist/routes/integrations/components/connect-forms/DataConnectionConnectForm.d.ts +20 -0
  118. package/dist/routes/integrations/components/connect-forms/DataConnectionConnectForm.d.ts.map +1 -0
  119. package/dist/routes/integrations/components/connect-forms/DataConnectionConnectForm.js +144 -0
  120. package/dist/routes/integrations/components/connect-forms/DataConnectionFieldInputs.d.ts +8 -0
  121. package/dist/routes/integrations/components/connect-forms/DataConnectionFieldInputs.d.ts.map +1 -0
  122. package/dist/routes/integrations/components/connect-forms/DataConnectionFieldInputs.js +44 -0
  123. package/dist/routes/integrations/components/connect-forms/FigmaConnectForm.d.ts +3 -0
  124. package/dist/routes/integrations/components/connect-forms/FigmaConnectForm.d.ts.map +1 -0
  125. package/dist/routes/integrations/components/connect-forms/FigmaConnectForm.js +20 -0
  126. package/dist/routes/integrations/components/connect-forms/GmailConnectForm.d.ts +3 -0
  127. package/dist/routes/integrations/components/connect-forms/GmailConnectForm.d.ts.map +1 -0
  128. package/dist/routes/integrations/components/connect-forms/GmailConnectForm.js +11 -0
  129. package/dist/routes/integrations/components/connect-forms/GoogleAdsConnectForm.d.ts +3 -0
  130. package/dist/routes/integrations/components/connect-forms/GoogleAdsConnectForm.d.ts.map +1 -0
  131. package/dist/routes/integrations/components/connect-forms/GoogleAdsConnectForm.js +37 -0
  132. package/dist/routes/integrations/components/connect-forms/GoogleAnalyticsConnectForm.d.ts +3 -0
  133. package/dist/routes/integrations/components/connect-forms/GoogleAnalyticsConnectForm.d.ts.map +1 -0
  134. package/dist/routes/integrations/components/connect-forms/GoogleAnalyticsConnectForm.js +37 -0
  135. package/dist/routes/integrations/components/connect-forms/ImportStartedNotice.d.ts +21 -0
  136. package/dist/routes/integrations/components/connect-forms/ImportStartedNotice.d.ts.map +1 -0
  137. package/dist/routes/integrations/components/connect-forms/ImportStartedNotice.js +25 -0
  138. package/dist/routes/integrations/components/connect-forms/InferalCredentialConnectForm.d.ts +45 -0
  139. package/dist/routes/integrations/components/connect-forms/InferalCredentialConnectForm.d.ts.map +1 -0
  140. package/dist/routes/integrations/components/connect-forms/InferalCredentialConnectForm.js +188 -0
  141. package/dist/routes/integrations/components/connect-forms/KlaviyoConnectForm.d.ts +6 -0
  142. package/dist/routes/integrations/components/connect-forms/KlaviyoConnectForm.d.ts.map +1 -0
  143. package/dist/routes/integrations/components/connect-forms/KlaviyoConnectForm.js +68 -0
  144. package/dist/routes/integrations/components/connect-forms/LinkedinConnectForm.d.ts +10 -0
  145. package/dist/routes/integrations/components/connect-forms/LinkedinConnectForm.d.ts.map +1 -0
  146. package/dist/routes/integrations/components/connect-forms/LinkedinConnectForm.js +124 -0
  147. package/dist/routes/integrations/components/connect-forms/MetaAdsConnectForm.d.ts +14 -0
  148. package/dist/routes/integrations/components/connect-forms/MetaAdsConnectForm.d.ts.map +1 -0
  149. package/dist/routes/integrations/components/connect-forms/MetaAdsConnectForm.js +183 -0
  150. package/dist/routes/integrations/components/connect-forms/OAuthConnectLink.d.ts +10 -0
  151. package/dist/routes/integrations/components/connect-forms/OAuthConnectLink.d.ts.map +1 -0
  152. package/dist/routes/integrations/components/connect-forms/OAuthConnectLink.js +17 -0
  153. package/dist/routes/integrations/components/connect-forms/OAuthSetupConnectForm.d.ts +45 -0
  154. package/dist/routes/integrations/components/connect-forms/OAuthSetupConnectForm.d.ts.map +1 -0
  155. package/dist/routes/integrations/components/connect-forms/OAuthSetupConnectForm.js +136 -0
  156. package/dist/routes/integrations/components/connect-forms/OAuthSingleAccountConnectForm.d.ts +23 -0
  157. package/dist/routes/integrations/components/connect-forms/OAuthSingleAccountConnectForm.d.ts.map +1 -0
  158. package/dist/routes/integrations/components/connect-forms/OAuthSingleAccountConnectForm.js +63 -0
  159. package/dist/routes/integrations/components/connect-forms/ShopifyConnectForm.d.ts +3 -0
  160. package/dist/routes/integrations/components/connect-forms/ShopifyConnectForm.d.ts.map +1 -0
  161. package/dist/routes/integrations/components/connect-forms/ShopifyConnectForm.js +14 -0
  162. package/dist/routes/integrations/components/connect-forms/SlackConnectForm.d.ts +3 -0
  163. package/dist/routes/integrations/components/connect-forms/SlackConnectForm.d.ts.map +1 -0
  164. package/dist/routes/integrations/components/connect-forms/SlackConnectForm.js +10 -0
  165. package/dist/routes/integrations/components/connect-forms/TriplewhaleConnectForm.d.ts +5 -0
  166. package/dist/routes/integrations/components/connect-forms/TriplewhaleConnectForm.d.ts.map +1 -0
  167. package/dist/routes/integrations/components/connect-forms/TriplewhaleConnectForm.js +35 -0
  168. package/dist/routes/integrations/components/connect-forms/WoocommerceConnectForm.d.ts +5 -0
  169. package/dist/routes/integrations/components/connect-forms/WoocommerceConnectForm.d.ts.map +1 -0
  170. package/dist/routes/integrations/components/connect-forms/WoocommerceConnectForm.js +47 -0
  171. package/dist/routes/integrations/components/connect-forms/connection-string-fields.d.ts +13 -0
  172. package/dist/routes/integrations/components/connect-forms/connection-string-fields.d.ts.map +1 -0
  173. package/dist/routes/integrations/components/connect-forms/connection-string-fields.js +110 -0
  174. package/dist/routes/integrations/components/connect-forms/dash-folder-tree.d.ts +6 -0
  175. package/dist/routes/integrations/components/connect-forms/dash-folder-tree.d.ts.map +1 -0
  176. package/dist/routes/integrations/components/connect-forms/dash-folder-tree.js +14 -0
  177. package/dist/routes/integrations/components/connect-forms/data-connection-fields.d.ts +35 -0
  178. package/dist/routes/integrations/components/connect-forms/data-connection-fields.d.ts.map +1 -0
  179. package/dist/routes/integrations/components/connect-forms/data-connection-fields.js +88 -0
  180. package/dist/routes/integrations/components/connect-forms/google-ads-account-tree.d.ts +11 -0
  181. package/dist/routes/integrations/components/connect-forms/google-ads-account-tree.d.ts.map +1 -0
  182. package/dist/routes/integrations/components/connect-forms/google-ads-account-tree.js +36 -0
  183. package/dist/routes/integrations/components/connect-forms/google-analytics-property-tree.d.ts +6 -0
  184. package/dist/routes/integrations/components/connect-forms/google-analytics-property-tree.d.ts.map +1 -0
  185. package/dist/routes/integrations/components/connect-forms/google-analytics-property-tree.js +34 -0
  186. package/dist/routes/integrations/components/connect-forms/oauth-setup-phase.d.ts +12 -0
  187. package/dist/routes/integrations/components/connect-forms/oauth-setup-phase.d.ts.map +1 -0
  188. package/dist/routes/integrations/components/connect-forms/oauth-setup-phase.js +33 -0
  189. package/dist/routes/integrations/components/connect-forms/setup-account-unavailable-reason.d.ts +3 -0
  190. package/dist/routes/integrations/components/connect-forms/setup-account-unavailable-reason.d.ts.map +1 -0
  191. package/dist/routes/integrations/components/connect-forms/setup-account-unavailable-reason.js +8 -0
  192. package/dist/routes/integrations/components/connect-forms/types.d.ts +5 -1
  193. package/dist/routes/integrations/components/connect-forms/types.d.ts.map +1 -1
  194. package/dist/routes/integrations/components/connect-forms/useConnectWizard.d.ts +19 -0
  195. package/dist/routes/integrations/components/connect-forms/useConnectWizard.d.ts.map +1 -0
  196. package/dist/routes/integrations/components/connect-forms/useConnectWizard.js +28 -0
  197. package/dist/routes/integrations/components/connect-forms/useConnectedExternalIds.d.ts +4 -0
  198. package/dist/routes/integrations/components/connect-forms/useConnectedExternalIds.d.ts.map +1 -0
  199. package/dist/routes/integrations/components/connect-forms/useConnectedExternalIds.js +17 -0
  200. package/dist/routes/integrations/components/connect-forms/useWindowFocusPoll.d.ts +7 -0
  201. package/dist/routes/integrations/components/connect-forms/useWindowFocusPoll.d.ts.map +1 -0
  202. package/dist/routes/integrations/components/connect-forms/useWindowFocusPoll.js +18 -0
  203. package/dist/routes/integrations/connect-forms.d.ts +16 -0
  204. package/dist/routes/integrations/connect-forms.d.ts.map +1 -0
  205. package/dist/routes/integrations/connect-forms.js +14 -0
  206. package/dist/routes/integrations/filter-connected-providers.d.ts +3 -0
  207. package/dist/routes/integrations/filter-connected-providers.d.ts.map +1 -0
  208. package/dist/routes/integrations/filter-connected-providers.js +15 -0
  209. package/dist/routes/integrations/overview.d.ts +3 -0
  210. package/dist/routes/integrations/overview.d.ts.map +1 -0
  211. package/dist/routes/integrations/overview.js +2 -0
  212. package/dist/routes/integrations/use-connected-account-entities.d.ts +10 -0
  213. package/dist/routes/integrations/use-connected-account-entities.d.ts.map +1 -0
  214. package/dist/routes/integrations/use-connected-account-entities.js +29 -0
  215. package/dist/routes/memories/components/EmptyStates.d.ts.map +1 -1
  216. package/dist/routes/memories/components/EmptyStates.js +2 -1
  217. package/dist/routes/plans/components/ActionPlanPage.d.ts +1 -0
  218. package/dist/routes/plans/components/ActionPlanPage.d.ts.map +1 -1
  219. package/dist/routes/plans/components/ActionPlanPage.js +9 -5
  220. package/dist/routes/plans/components/actionPlansTableConfig.d.ts +12 -12
  221. package/dist/rules/datalog-ast/DatalogBodyFormulaComponent.d.ts.map +1 -1
  222. package/dist/rules/datalog-ast/DatalogBodyFormulaComponent.js +4 -1
  223. package/dist/rules/rule-narrative-aggregates.d.ts +1 -0
  224. package/dist/rules/rule-narrative-aggregates.d.ts.map +1 -1
  225. package/dist/rules/rule-narrative-aggregates.js +20 -0
  226. package/dist/rules/rule-narrative-context.d.ts.map +1 -1
  227. package/dist/rules/rule-narrative-context.js +3 -9
  228. package/dist/rules/rule-narrative-format.d.ts +1 -1
  229. package/dist/rules/rule-narrative.d.ts.map +1 -1
  230. package/dist/rules/rule-narrative.js +22 -7
  231. package/package.json +47 -8
@@ -1 +1 @@
1
- {"version":3,"file":"ActionPlanPage.d.ts","sourceRoot":"","sources":["../../../../src/routes/plans/components/ActionPlanPage.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAqD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,OAAO,EAAgC,KAAK,oBAAoB,EAAE,KAAK,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAahH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,SAAS,CAAC;IAC1D,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CAqLxD"}
1
+ {"version":3,"file":"ActionPlanPage.d.ts","sourceRoot":"","sources":["../../../../src/routes/plans/components/ActionPlanPage.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAqD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,OAAO,EAAgC,KAAK,oBAAoB,EAAE,KAAK,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAahH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,SAAS,CAAC;IAC1D,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CA6LxD"}
@@ -18,7 +18,7 @@ import { useActionPlanExecution } from "#hooks/useActionPlanExecution";
18
18
  import { useActionPlanDiff } from "#ldo-ui";
19
19
  import { useMantaClient } from "#providers/index";
20
20
  export function ActionPlanPage(props) {
21
- const { planName, listHref = "/", LinkComponent = "a", renderLayout = renderDefaultActionPlanFrame, initialMode = "planning", datastoreId, userId, } = props;
21
+ const { planName, listHref = "/", LinkComponent = "a", renderLayout = renderDefaultActionPlanFrame, initialMode = "planning", datastoreId, userId, hideRunControls = false, } = props;
22
22
  const planGraphIri = useMemo(() => buildPlanIri(planName), [planName]);
23
23
  const viewRef = useRef(null);
24
24
  const { mantaBaseUrl } = useMantaClient();
@@ -48,13 +48,13 @@ export function ActionPlanPage(props) {
48
48
  }
49
49
  }, [executionControl]);
50
50
  useEffect(() => {
51
- if (initialMode === "actioning") {
51
+ if (!hideRunControls && initialMode === "actioning") {
52
52
  setPageMode("actioning");
53
53
  setExecutePromptNonce((prev) => prev + 1);
54
54
  return;
55
55
  }
56
56
  setPageMode("planning");
57
- }, [initialMode, planGraphIri]);
57
+ }, [hideRunControls, initialMode, planGraphIri]);
58
58
  useEffect(() => {
59
59
  const shouldShowExecution = (plan?.state ?? GQLActionPlanState.Draft) !== GQLActionPlanState.Draft;
60
60
  if (shouldShowExecution) {
@@ -67,7 +67,11 @@ export function ActionPlanPage(props) {
67
67
  const isRunning = planState === GQLActionPlanState.Running;
68
68
  const isTerminal = isTerminalActionPlanState(planState);
69
69
  const showPlanningSurface = !plan || (isDraft && pageMode === "planning");
70
- const header = (_jsxs("div", { className: "flex w-full items-center justify-between", children: [_jsxs("h1", { className: "flex items-center gap-2 typography-caption-medium", children: [_jsx(Zap, { className: "size-6" }), _jsx(LinkComponent, { href: listHref, to: listHref, className: "text-muted-foreground transition-colors hover:text-default-foreground", children: "Action Plans" }), _jsx("span", { className: "text-disabled-foreground", children: "/" }), _jsx("span", { className: "typography-small-medium", children: planLabel })] }), _jsxs("div", { className: "ml-2 flex shrink-0 items-center gap-2", children: [plan?.hasCurrentFacts && isDraft && pageMode === "planning" && (_jsx(Button, { onClick: openExecutionPrompt, variant: "primary", size: "base", icon: Zap, label: "Execute plan", rounded: "md", className: "text-nowrap" })), plan && isRunning && showPlanningSurface && (_jsx(Button, { onClick: () => viewRef.current?.cancel(), variant: "tertiary", size: "base", icon: CircleStop, label: "Cancel", rounded: "md", className: "text-nowrap" })), plan?.hasCurrentFacts && isTerminal && (_jsx(Button, { onClick: () => setIsRerunDialogOpen(true), variant: "primary", size: "base", icon: RotateCcw, label: "Re-run", rounded: "md", className: "text-nowrap" }))] })] }));
71
- const body = (_jsxs(_Fragment, { children: [isLoading && (_jsx("div", { className: "flex min-h-96 items-center justify-center", children: _jsx(Loader, { className: "size-8 text-muted-foreground" }) })), !isLoading && (error || !plan) && (_jsxs("div", { className: "flex min-h-96 flex-col items-center justify-center gap-4", children: [_jsx("p", { className: "text-muted-foreground", children: error ?? "Action plan not found." }), _jsx(LinkComponent, { href: listHref, to: listHref, className: "typography-small text-muted-foreground underline transition-colors hover:text-default-foreground", children: "Back to Action Plans" })] })), !isLoading && plan && showPlanningSurface && (_jsx(ConnectedPlanDetailView, { ref: viewRef, plan: plan, graphDocument: graphDocument, isLoading: isLoading, error: error, hideTopBar: true, hideChanges: true, onExecute: plan.hasCurrentFacts ? openExecutionPrompt : undefined, rulesSlot: _jsx(ActionPlanRulesSection, { planGraphIri: planGraphIri, LinkComponent: LinkComponent }) })), !isLoading && plan && !showPlanningSurface && (_jsx(ActioningView, { planGraphIri: planGraphIri, diff: diff, isLoading: isLoading || isDiffLoading, mantaChatBaseUrl: mantaBaseUrl, executionControl: executionControl, executePromptNonce: executePromptNonce, datastoreId: datastoreId, userId: userId })), _jsx(ExecutePlanDialog, { action: "rerun", onConfirm: handleConfirmRerun, open: isRerunDialogOpen, onOpenChange: setIsRerunDialogOpen, trigger: null })] }));
70
+ const showExecutePlan = !hideRunControls && Boolean(plan?.hasCurrentFacts) && isDraft && pageMode === "planning";
71
+ const showCancelRun = !hideRunControls && Boolean(plan) && isRunning && showPlanningSurface;
72
+ const showRerunPlan = !hideRunControls && Boolean(plan?.hasCurrentFacts) && isTerminal;
73
+ const openExecution = !hideRunControls && plan?.hasCurrentFacts ? openExecutionPrompt : undefined;
74
+ const header = (_jsxs("div", { className: "flex w-full items-center justify-between", children: [_jsxs("h1", { className: "flex items-center gap-2 typography-caption-medium", children: [_jsx(Zap, { className: "size-6" }), _jsx(LinkComponent, { href: listHref, to: listHref, className: "text-muted-foreground transition-colors hover:text-default-foreground", children: "Action Plans" }), _jsx("span", { className: "text-disabled-foreground", children: "/" }), _jsx("span", { className: "typography-small-medium", children: planLabel })] }), _jsxs("div", { className: "ml-2 flex shrink-0 items-center gap-2", children: [showExecutePlan && (_jsx(Button, { onClick: openExecutionPrompt, variant: "primary", size: "base", icon: Zap, label: "Execute plan", rounded: "md", className: "text-nowrap" })), showCancelRun && (_jsx(Button, { onClick: () => viewRef.current?.cancel(), variant: "tertiary", size: "base", icon: CircleStop, label: "Cancel", rounded: "md", className: "text-nowrap" })), showRerunPlan && (_jsx(Button, { onClick: () => setIsRerunDialogOpen(true), variant: "primary", size: "base", icon: RotateCcw, label: "Re-run", rounded: "md", className: "text-nowrap" }))] })] }));
75
+ const body = (_jsxs(_Fragment, { children: [isLoading && (_jsx("div", { className: "flex min-h-96 items-center justify-center", children: _jsx(Loader, { className: "size-8 text-muted-foreground" }) })), !isLoading && (error || !plan) && (_jsxs("div", { className: "flex min-h-96 flex-col items-center justify-center gap-4", children: [_jsx("p", { className: "text-muted-foreground", children: error ?? "Action plan not found." }), _jsx(LinkComponent, { href: listHref, to: listHref, className: "typography-small text-muted-foreground underline transition-colors hover:text-default-foreground", children: "Back to Action Plans" })] })), !isLoading && plan && showPlanningSurface && (_jsx(ConnectedPlanDetailView, { ref: viewRef, plan: plan, graphDocument: graphDocument, isLoading: isLoading, error: error, hideTopBar: true, hideChanges: true, onExecute: openExecution, rulesSlot: _jsx(ActionPlanRulesSection, { planGraphIri: planGraphIri, LinkComponent: LinkComponent }) })), !isLoading && plan && !showPlanningSurface && (_jsx(ActioningView, { planGraphIri: planGraphIri, diff: diff, isLoading: isLoading || isDiffLoading, mantaChatBaseUrl: mantaBaseUrl, executionControl: executionControl, executePromptNonce: executePromptNonce, datastoreId: datastoreId, userId: userId, hideRunControls: hideRunControls })), !hideRunControls && (_jsx(ExecutePlanDialog, { action: "rerun", onConfirm: handleConfirmRerun, open: isRerunDialogOpen, onOpenChange: setIsRerunDialogOpen, trigger: null }))] }));
72
76
  return _jsx(_Fragment, { children: renderLayout({ header, body }) });
73
77
  }
@@ -27,9 +27,9 @@ export declare const statusFilterOptions: {
27
27
  dotClass: string;
28
28
  }[];
29
29
  export declare const defaultColumnOrder: ("name" | "type" | "actions" | "state" | "updatedAt" | "lastRunAt" | "pendingApprovals")[];
30
- export declare const parseAsStatusFilter: Omit<import("nuqs").SingleParserBuilder<"RUNNING" | "FAILED" | "TIMED_OUT" | "COMPLETED" | "ALL" | "READY">, "parseServerSide"> & {
31
- readonly defaultValue: NonNullable<"RUNNING" | "FAILED" | "TIMED_OUT" | "COMPLETED" | "ALL" | "READY">;
32
- parseServerSide(value: string | string[] | undefined): NonNullable<"RUNNING" | "FAILED" | "TIMED_OUT" | "COMPLETED" | "ALL" | "READY">;
30
+ export declare const parseAsStatusFilter: Omit<import("nuqs").SingleParserBuilder<"COMPLETED" | "FAILED" | "RUNNING" | "TIMED_OUT" | "ALL" | "READY">, "parseServerSide"> & {
31
+ readonly defaultValue: NonNullable<"COMPLETED" | "FAILED" | "RUNNING" | "TIMED_OUT" | "ALL" | "READY">;
32
+ parseServerSide(value: string | string[] | undefined): NonNullable<"COMPLETED" | "FAILED" | "RUNNING" | "TIMED_OUT" | "ALL" | "READY">;
33
33
  };
34
34
  export declare const availabilityFilterOptions: readonly [{
35
35
  readonly id: "CURRENT";
@@ -42,9 +42,9 @@ export declare const availabilityFilterOptions: readonly [{
42
42
  readonly label: "All plans";
43
43
  }];
44
44
  export type AvailabilityFilter = (typeof availabilityFilterOptions)[number]["id"];
45
- export declare const parseAsAvailabilityFilter: Omit<import("nuqs").SingleParserBuilder<"CURRENT" | "PAST_RUNS_ONLY" | "ALL">, "parseServerSide"> & {
46
- readonly defaultValue: NonNullable<"CURRENT" | "PAST_RUNS_ONLY" | "ALL">;
47
- parseServerSide(value: string | string[] | undefined): NonNullable<"CURRENT" | "PAST_RUNS_ONLY" | "ALL">;
45
+ export declare const parseAsAvailabilityFilter: Omit<import("nuqs").SingleParserBuilder<"ALL" | "CURRENT" | "PAST_RUNS_ONLY">, "parseServerSide"> & {
46
+ readonly defaultValue: NonNullable<"ALL" | "CURRENT" | "PAST_RUNS_ONLY">;
47
+ parseServerSide(value: string | string[] | undefined): NonNullable<"ALL" | "CURRENT" | "PAST_RUNS_ONLY">;
48
48
  };
49
49
  export declare function planFiltersForSelection(statusFilter: StatusFilter, availability: AvailabilityFilter): {
50
50
  states: GQLActionPlanState[] | undefined;
@@ -73,9 +73,9 @@ export declare const typeFilterOptions: readonly [{
73
73
  readonly label: "None";
74
74
  }];
75
75
  export type TypeFilter = (typeof typeFilterOptions)[number]["id"];
76
- export declare const parseAsTypeFilter: Omit<import("nuqs").SingleParserBuilder<("META" | "SNAPCHAT" | "SHOPIFY" | "NONE" | "GOOGLE" | "LINKEDIN" | "WOOCOMMERCE")[]>, "parseServerSide"> & {
77
- readonly defaultValue: ("META" | "SNAPCHAT" | "SHOPIFY" | "NONE" | "GOOGLE" | "LINKEDIN" | "WOOCOMMERCE")[];
78
- parseServerSide(value: string | string[] | undefined): ("META" | "SNAPCHAT" | "SHOPIFY" | "NONE" | "GOOGLE" | "LINKEDIN" | "WOOCOMMERCE")[];
76
+ export declare const parseAsTypeFilter: Omit<import("nuqs").SingleParserBuilder<("META" | "SNAPCHAT" | "SHOPIFY" | "LINKEDIN" | "WOOCOMMERCE" | "GOOGLE" | "NONE")[]>, "parseServerSide"> & {
77
+ readonly defaultValue: ("META" | "SNAPCHAT" | "SHOPIFY" | "LINKEDIN" | "WOOCOMMERCE" | "GOOGLE" | "NONE")[];
78
+ parseServerSide(value: string | string[] | undefined): ("META" | "SNAPCHAT" | "SHOPIFY" | "LINKEDIN" | "WOOCOMMERCE" | "GOOGLE" | "NONE")[];
79
79
  };
80
80
  export declare const approvalFilterOptions: readonly [{
81
81
  readonly id: "ALL";
@@ -88,9 +88,9 @@ export declare const approvalFilterOptions: readonly [{
88
88
  readonly label: "No pending approvals";
89
89
  }];
90
90
  export type ApprovalFilter = (typeof approvalFilterOptions)[number]["id"];
91
- export declare const parseAsApprovalFilter: Omit<import("nuqs").SingleParserBuilder<"NEEDS_APPROVAL" | "NO_PENDING" | "ALL">, "parseServerSide"> & {
92
- readonly defaultValue: NonNullable<"NEEDS_APPROVAL" | "NO_PENDING" | "ALL">;
93
- parseServerSide(value: string | string[] | undefined): NonNullable<"NEEDS_APPROVAL" | "NO_PENDING" | "ALL">;
91
+ export declare const parseAsApprovalFilter: Omit<import("nuqs").SingleParserBuilder<"ALL" | "NEEDS_APPROVAL" | "NO_PENDING">, "parseServerSide"> & {
92
+ readonly defaultValue: NonNullable<"ALL" | "NEEDS_APPROVAL" | "NO_PENDING">;
93
+ parseServerSide(value: string | string[] | undefined): NonNullable<"ALL" | "NEEDS_APPROVAL" | "NO_PENDING">;
94
94
  };
95
95
  export declare const parseAsPlanSearch: Omit<import("nuqs").SingleParserBuilder<string>, "parseServerSide"> & {
96
96
  readonly defaultValue: string;
@@ -1 +1 @@
1
- {"version":3,"file":"DatalogBodyFormulaComponent.d.ts","sourceRoot":"","sources":["../../../src/rules/datalog-ast/DatalogBodyFormulaComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAIV,kBAAkB,EAInB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG1D,KAAK,gCAAgC,GAAG;IACtC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACpD,CAAC;AAsBF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,gCAAgC,2CAgIlF"}
1
+ {"version":3,"file":"DatalogBodyFormulaComponent.d.ts","sourceRoot":"","sources":["../../../src/rules/datalog-ast/DatalogBodyFormulaComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAIV,kBAAkB,EAInB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG1D,KAAK,gCAAgC,GAAG;IACtC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACpD,CAAC;AA8BF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,gCAAgC,2CAgIlF"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { isPresent } from "@manta-eu/lib/present";
3
3
  import { Minus } from "lucide-react";
4
4
  import { match, P } from "ts-pattern";
@@ -11,6 +11,9 @@ function renderAggregateExpression(binding, variableColors, hoverState, onVariab
11
11
  return "*";
12
12
  }
13
13
  const first = renderExpressionWithVariables(binding.expression, variableColors, hoverState, onVariableHover);
14
+ if (binding.percentile !== undefined) {
15
+ return (_jsxs(_Fragment, { children: [first, _jsxs("span", { className: "text-orange-100 font-mono", children: ["; PERCENTILE=\"", binding.percentile, "\""] })] }));
16
+ }
14
17
  if (!binding.secondExpression)
15
18
  return first;
16
19
  return (_jsxs(_Fragment, { children: [first, _jsx("span", { className: "text-orange-100 font-mono", children: ", " }), renderExpressionWithVariables(binding.secondExpression, variableColors, hoverState, onVariableHover)] }));
@@ -1,4 +1,5 @@
1
1
  import type { AggregateBinding, DatalogExpression } from "@manta-eu/datalog-parser";
2
2
  import { type NarrativeSegment } from "./rule-narrative-format.js";
3
+ export declare function percentileLabel(percentile: string): string;
3
4
  export declare function aggregateBindingSegments(binding: AggregateBinding, expressionSegments: (expression: DatalogExpression) => NarrativeSegment[]): NarrativeSegment[];
4
5
  //# sourceMappingURL=rule-narrative-aggregates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rule-narrative-aggregates.d.ts","sourceRoot":"","sources":["../../src/rules/rule-narrative-aggregates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAEhB,iBAAiB,EAGlB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE1F,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EACzB,kBAAkB,EAAE,CAAC,UAAU,EAAE,iBAAiB,KAAK,gBAAgB,EAAE,GACxE,gBAAgB,EAAE,CAyDpB"}
1
+ {"version":3,"file":"rule-narrative-aggregates.d.ts","sourceRoot":"","sources":["../../src/rules/rule-narrative-aggregates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAEhB,iBAAiB,EAIlB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAK1F,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAK1D;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EACzB,kBAAkB,EAAE,CAAC,UAAU,EAAE,iBAAiB,KAAK,gBAAgB,EAAE,GACxE,gBAAgB,EAAE,CAsEpB"}
@@ -1,5 +1,14 @@
1
1
  import { match, P } from "ts-pattern";
2
2
  import { codeSegment, textSegment } from "./rule-narrative-format.js";
3
+ const ordinalSuffixes = { one: "st", two: "nd", few: "rd", other: "th" };
4
+ const ordinalRules = new Intl.PluralRules("en-US", { type: "ordinal" });
5
+ export function percentileLabel(percentile) {
6
+ const percent = Number((Number(percentile) * 100).toPrecision(12));
7
+ if (!Number.isInteger(percent))
8
+ return `${percent}th percentile`;
9
+ const category = ordinalRules.select(percent);
10
+ return `${percent}${category in ordinalSuffixes ? ordinalSuffixes[category] : "th"} percentile`;
11
+ }
3
12
  export function aggregateBindingSegments(binding, expressionSegments) {
4
13
  const operand = (expression) => {
5
14
  if (expression === "*")
@@ -24,6 +33,7 @@ export function aggregateBindingSegments(binding, expressionSegments) {
24
33
  textSegment(` is ${order} (ties choose the ${tieOrder} result)`),
25
34
  ...(binding.distinct ? [textSegment(" (ignoring duplicate pairs)")] : []),
26
35
  ];
36
+ const percentile = (binding, phrase) => unary(binding, `${phrase}${percentileLabel(binding.percentile)} of `);
27
37
  return match(binding)
28
38
  .returnType()
29
39
  .with({ function: P.optional(undefined) }, (binding) => expressionSegments(binding.expression))
@@ -39,6 +49,16 @@ export function aggregateBindingSegments(binding, expressionSegments) {
39
49
  ...unary(binding, binding.distinct ? "the " : "the values of "),
40
50
  textSegment(" multiplied together"),
41
51
  ])
52
+ .with({ function: "VAR_POP" }, (binding) => unary(binding, "the population variance of "))
53
+ .with({ function: "VAR_SAMP" }, (binding) => unary(binding, "the sample variance of "))
54
+ .with({ function: "STDDEV_POP" }, (binding) => unary(binding, "the population standard deviation of "))
55
+ .with({ function: "STDDEV_SAMP" }, (binding) => unary(binding, "the sample standard deviation of "))
56
+ .with({ function: "MODE" }, (binding) => [
57
+ ...unary(binding, "the most common of "),
58
+ textSegment(" (ties choose the lowest value)"),
59
+ ])
60
+ .with({ function: "PERCENTILE_CONT" }, (binding) => percentile(binding, "the interpolated "))
61
+ .with({ function: "PERCENTILE_DISC" }, (binding) => percentile(binding, "the nearest value to the "))
42
62
  .with({ function: "COUNT_MIN" }, (binding) => countExtreme(binding, "lowest"))
43
63
  .with({ function: "COUNT_MAX" }, (binding) => countExtreme(binding, "highest"))
44
64
  .with({ function: "MIN_ARGMIN" }, (binding) => selection(binding, "lowest", "lowest"))
@@ -1 +1 @@
1
- {"version":3,"file":"rule-narrative-context.d.ts","sourceRoot":"","sources":["../../src/rules/rule-narrative-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,yBAAyB,CAAC;AAE/E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,gBAAgB,CAyDzE"}
1
+ {"version":3,"file":"rule-narrative-context.d.ts","sourceRoot":"","sources":["../../src/rules/rule-narrative-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,yBAAyB,CAAC;AAE/E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,gBAAgB,CAmDzE"}
@@ -1,10 +1,10 @@
1
- import { classAssertionFromAtom, isDatalogAtom, isVariableTerm, propertyAssertionFromAtom, variableNamesFromAtom, } from "@manta-eu/datalog-parser";
1
+ import { classAssertionFromAtom, isDatalogAtom, isVariableTerm, mintedVariableNames as ruleMintedVariableNames, propertyAssertionFromAtom, variableNamesFromAtom, } from "@manta-eu/datalog-parser";
2
2
  import { isOwlNothing } from "@manta-eu/rdf-lib/namespaces";
3
3
  import { match } from "ts-pattern";
4
4
  export function buildNarrativeContext(rule) {
5
5
  const entityVariableNames = new Set();
6
6
  const outputVariableNames = new Set();
7
- const skolemVariableNames = new Set();
7
+ const mintedVariableNames = ruleMintedVariableNames(rule);
8
8
  const variableLabels = new Map();
9
9
  const setLabel = (name, label) => {
10
10
  if (!variableLabels.has(name))
@@ -34,12 +34,6 @@ export function buildNarrativeContext(rule) {
34
34
  .with({ type: "triple" }, (triple) => {
35
35
  if (isVariableTerm(triple.subject))
36
36
  entityVariableNames.add(triple.subject.name);
37
- })
38
- .with({ type: "skolem" }, (skolem) => {
39
- const lastArg = skolem.args[skolem.args.length - 1];
40
- if (lastArg?.type === "term" && isVariableTerm(lastArg.term)) {
41
- skolemVariableNames.add(lastArg.term.name);
42
- }
43
37
  })
44
38
  .with({ type: "negation" }, (negation) => negation.formulas.forEach(visit))
45
39
  .with({ type: "aggregate" }, (aggregate) => aggregate.atoms.forEach(visit))
@@ -53,7 +47,7 @@ export function buildNarrativeContext(rule) {
53
47
  return {
54
48
  showEntityVariables: entityVariableNames.size > 1,
55
49
  outputVariableNames,
56
- skolemVariableNames,
50
+ mintedVariableNames,
57
51
  variableLabels,
58
52
  };
59
53
  }
@@ -51,7 +51,7 @@ export type VariableLabel = {
51
51
  export type NarrativeContext = {
52
52
  showEntityVariables: boolean;
53
53
  outputVariableNames: ReadonlySet<string>;
54
- skolemVariableNames: ReadonlySet<string>;
54
+ mintedVariableNames: ReadonlySet<string>;
55
55
  variableLabels: ReadonlyMap<string, VariableLabel>;
56
56
  };
57
57
  export declare const narrativeDatalogTextOptions: {
@@ -1 +1 @@
1
- {"version":3,"file":"rule-narrative.d.ts","sourceRoot":"","sources":["../../src/rules/rule-narrative.ts"],"names":[],"mappings":"AAAA,OAAO,EAgBL,KAAK,WAAW,EAMjB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EASL,KAAK,iBAAiB,EAEtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,WAAW,CAAC;IACjB,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,cAAc,EAAE,kBAAkB,EAAE,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACvC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,cAAc,CAGrE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,kBAAkB,EAAE,CAa1E"}
1
+ {"version":3,"file":"rule-narrative.d.ts","sourceRoot":"","sources":["../../src/rules/rule-narrative.ts"],"names":[],"mappings":"AAAA,OAAO,EAkBL,KAAK,WAAW,EAMjB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EASL,KAAK,iBAAiB,EAEtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,WAAW,CAAC;IACjB,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,cAAc,EAAE,kBAAkB,EAAE,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACvC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,cAAc,CAGrE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,kBAAkB,EAAE,CAa1E"}
@@ -1,4 +1,4 @@
1
- import { atomToDatalogText, classAssertionFromAtom, expressionToDatalogText, isDatalogAtom, isIriTerm, isVariableTerm, propertyAssertionFromAtom, simpleComparisonFromFilter, termToDatalogText, } from "@manta-eu/datalog-parser";
1
+ import { atomToDatalogText, classAssertionFromAtom, expressionToDatalogText, isDatalogAtom, isIriTerm, isVariableTerm, propertyAssertionFromAtom, simpleComparisonFromFilter, termToDatalogText, variableNamesFromExpression, } from "@manta-eu/datalog-parser";
2
2
  import { isPresent } from "@manta-eu/lib/present";
3
3
  import { isActionPlanGraphIri, isOwlNothing } from "@manta-eu/rdf-lib/namespaces";
4
4
  import { match, P } from "ts-pattern";
@@ -175,6 +175,9 @@ function buildBodyRow(formula, primary, merged, renderer) {
175
175
  .with({ type: "negation" }, (negation) => buildNegationRow(negation, renderer))
176
176
  .with({ type: "aggregate" }, (aggregate) => buildAggregateRow(aggregate, renderer))
177
177
  .with({ type: "bind" }, (bind) => {
178
+ if (renderer.context.mintedVariableNames.has(bind.variable)) {
179
+ return createEntityRow(bind.variable, mintInputs(bind.expression), renderer);
180
+ }
178
181
  const row = {
179
182
  segments: [
180
183
  textSegment("Calculate "),
@@ -191,11 +194,7 @@ function buildBodyRow(formula, primary, merged, renderer) {
191
194
  const lastArg = skolem.args[skolem.args.length - 1];
192
195
  const inputs = skolem.args.slice(0, -1);
193
196
  if (lastArg?.type === "term" && isVariableTerm(lastArg.term)) {
194
- const segments = [textSegment("Create entity "), variableSegment(lastArg.term.name)];
195
- if (isPresent(inputs)) {
196
- segments.push(textSegment(" from "), ...renderer.expressionListSegments(inputs));
197
- }
198
- return { muted: true, segments };
197
+ return createEntityRow(lastArg.term.name, inputs, renderer);
199
198
  }
200
199
  return {
201
200
  muted: true,
@@ -206,6 +205,22 @@ function buildBodyRow(formula, primary, merged, renderer) {
206
205
  })
207
206
  .exhaustive();
208
207
  }
208
+ function createEntityRow(variableName, inputs, renderer) {
209
+ const segments = [textSegment("Create entity "), variableSegment(variableName)];
210
+ if (isPresent(inputs)) {
211
+ segments.push(textSegment(" from "), ...renderer.expressionListSegments(inputs));
212
+ }
213
+ return { muted: true, segments };
214
+ }
215
+ // An IRI(...) is named by the variables it reads; its namespace and label text read as noise.
216
+ function mintInputs(expression) {
217
+ if (expression.type === "function" && expression.name === "SKOLEM")
218
+ return expression.args;
219
+ return [...new Set(variableNamesFromExpression(expression))].map((name) => ({
220
+ type: "term",
221
+ term: { type: "variable", name },
222
+ }));
223
+ }
209
224
  function normalizeNarrativeAtom(atom) {
210
225
  const classAssertion = classAssertionFromAtom(atom);
211
226
  if (classAssertion)
@@ -366,7 +381,7 @@ function generalAtomRow(general) {
366
381
  function classHeadSegments(assertion, renderer) {
367
382
  const classSegment = labeledEntitySegment(assertion.className, "class");
368
383
  const { instance } = assertion;
369
- if (isVariableTerm(instance) && renderer.context.skolemVariableNames.has(instance.name)) {
384
+ if (isVariableTerm(instance) && renderer.context.mintedVariableNames.has(instance.name)) {
370
385
  return [
371
386
  textSegment("Create a new "),
372
387
  classSegment,
package/package.json CHANGED
@@ -1,7 +1,16 @@
1
1
  {
2
2
  "name": "@manta-eu/react",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "The Manta design system, knowledge-graph UI and agent components",
5
+ "homepage": "https://developers.manta.eu",
6
+ "keywords": [
7
+ "manta",
8
+ "knowledge-graph",
9
+ "react",
10
+ "design-system",
11
+ "agents",
12
+ "chat"
13
+ ],
5
14
  "license": "MIT",
6
15
  "type": "module",
7
16
  "exports": {
@@ -225,6 +234,16 @@
225
234
  "types": "./dist/components/planning/ExecutionProgressBar.d.ts",
226
235
  "import": "./dist/components/planning/ExecutionProgressBar.js"
227
236
  },
237
+ "./components/planning/ManualActionCard": {
238
+ "manta-source": "./src/components/planning/ManualActionCard.tsx",
239
+ "types": "./dist/components/planning/ManualActionCard.d.ts",
240
+ "import": "./dist/components/planning/ManualActionCard.js"
241
+ },
242
+ "./components/planning/ManualActionList": {
243
+ "manta-source": "./src/components/planning/ManualActionList.tsx",
244
+ "types": "./dist/components/planning/ManualActionList.d.ts",
245
+ "import": "./dist/components/planning/ManualActionList.js"
246
+ },
228
247
  "./components/planning/plan-detail-utils": {
229
248
  "manta-source": "./src/components/planning/plan-detail-utils.tsx",
230
249
  "types": "./dist/components/planning/plan-detail-utils.d.ts",
@@ -327,6 +346,11 @@
327
346
  "types": "./dist/hooks/useActionPlanExecution.d.ts",
328
347
  "import": "./dist/hooks/useActionPlanExecution.js"
329
348
  },
349
+ "./hooks/useResolveManualAction": {
350
+ "manta-source": "./src/hooks/useResolveManualAction.ts",
351
+ "types": "./dist/hooks/useResolveManualAction.d.ts",
352
+ "import": "./dist/hooks/useResolveManualAction.js"
353
+ },
330
354
  "./hooks/useActionPlans": {
331
355
  "manta-source": "./src/hooks/useActionPlans.ts",
332
356
  "types": "./dist/hooks/useActionPlans.d.ts",
@@ -547,6 +571,11 @@
547
571
  "types": "./dist/providers/AssistantNameProvider.d.ts",
548
572
  "import": "./dist/providers/AssistantNameProvider.js"
549
573
  },
574
+ "./providers/NavExtrasProvider": {
575
+ "manta-source": "./src/providers/NavExtrasProvider.tsx",
576
+ "types": "./dist/providers/NavExtrasProvider.d.ts",
577
+ "import": "./dist/providers/NavExtrasProvider.js"
578
+ },
550
579
  "./providers/AuthContext": {
551
580
  "manta-source": "./src/providers/AuthContext.ts",
552
581
  "types": "./dist/providers/AuthContext.d.ts",
@@ -757,11 +786,21 @@
757
786
  "types": "./dist/routes/integrations/components/connect-forms/types.d.ts",
758
787
  "import": "./dist/routes/integrations/components/connect-forms/types.js"
759
788
  },
789
+ "./routes/integrations/connect-forms": {
790
+ "manta-source": "./src/routes/integrations/connect-forms.ts",
791
+ "types": "./dist/routes/integrations/connect-forms.d.ts",
792
+ "import": "./dist/routes/integrations/connect-forms.js"
793
+ },
760
794
  "./routes/integrations/connection-view": {
761
795
  "manta-source": "./src/routes/integrations/connection-view.ts",
762
796
  "types": "./dist/routes/integrations/connection-view.d.ts",
763
797
  "import": "./dist/routes/integrations/connection-view.js"
764
798
  },
799
+ "./routes/integrations/overview": {
800
+ "manta-source": "./src/routes/integrations/overview.ts",
801
+ "types": "./dist/routes/integrations/overview.d.ts",
802
+ "import": "./dist/routes/integrations/overview.js"
803
+ },
765
804
  "./routes/integrations/types": {
766
805
  "manta-source": "./src/routes/integrations/types.ts",
767
806
  "types": "./dist/routes/integrations/types.d.ts",
@@ -1068,7 +1107,7 @@
1068
1107
  "mime": "^4.1.0",
1069
1108
  "motion": "^12.23.5",
1070
1109
  "mustache": "^4.2.0",
1071
- "nuqs": "^2.8.9",
1110
+ "nuqs": "^2.9.0",
1072
1111
  "p-limit": "^7.3.0",
1073
1112
  "posthog-js": "^1.434.18",
1074
1113
  "ramda": "^0.32.0",
@@ -1087,12 +1126,12 @@
1087
1126
  "usehooks-ts": "^3.1.1",
1088
1127
  "zod": "^4.5.0",
1089
1128
  "zustand": "^5.0.2",
1090
- "@manta-eu/datalog-parser": "0.1.7",
1091
- "@manta-eu/ldo": "0.1.7",
1092
- "@manta-eu/lib": "0.1.7",
1093
- "@manta-eu/auth": "0.1.7",
1094
- "@manta-eu/client": "0.1.7",
1095
- "@manta-eu/rdf-lib": "0.1.7"
1129
+ "@manta-eu/auth": "0.1.9",
1130
+ "@manta-eu/client": "0.1.9",
1131
+ "@manta-eu/ldo": "0.1.9",
1132
+ "@manta-eu/rdf-lib": "0.1.9",
1133
+ "@manta-eu/datalog-parser": "0.1.9",
1134
+ "@manta-eu/lib": "0.1.9"
1096
1135
  },
1097
1136
  "peerDependencies": {
1098
1137
  "@ulb-darmstadt/shacl-form": "^2.1.1-rc1",