@manta-eu/react 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (512) hide show
  1. package/README.md +100 -37
  2. package/dist/components/breadcrumbs/index.d.ts +26 -0
  3. package/dist/components/breadcrumbs/index.d.ts.map +1 -0
  4. package/dist/components/breadcrumbs/index.js +36 -0
  5. package/dist/components/channel-icon/index.d.ts +1 -2
  6. package/dist/components/channel-icon/index.d.ts.map +1 -1
  7. package/dist/components/channel-icon/index.js +0 -4
  8. package/dist/components/chip/index.d.ts +14 -0
  9. package/dist/components/chip/index.d.ts.map +1 -0
  10. package/dist/components/chip/index.js +8 -0
  11. package/dist/components/editable-text/index.d.ts +13 -0
  12. package/dist/components/editable-text/index.d.ts.map +1 -0
  13. package/dist/components/editable-text/index.js +61 -0
  14. package/dist/components/explain-fact/ExplainFact.d.ts +16 -0
  15. package/dist/components/explain-fact/ExplainFact.d.ts.map +1 -0
  16. package/dist/components/{rdfox-explain/RDFoxExplain.js → explain-fact/ExplainFact.js} +12 -12
  17. package/dist/components/explain-fact/OutdatedFactNotice.d.ts.map +1 -0
  18. package/dist/components/input/index.d.ts +2 -0
  19. package/dist/components/input/index.d.ts.map +1 -1
  20. package/dist/components/input/index.js +2 -0
  21. package/dist/components/input/input-numeric.d.ts +19 -0
  22. package/dist/components/input/input-numeric.d.ts.map +1 -0
  23. package/dist/components/input/input-numeric.js +85 -0
  24. package/dist/components/input/input-tags.d.ts +17 -0
  25. package/dist/components/input/input-tags.d.ts.map +1 -0
  26. package/dist/components/input/input-tags.js +46 -0
  27. package/dist/components/multi-select/index.d.ts +32 -0
  28. package/dist/components/multi-select/index.d.ts.map +1 -0
  29. package/dist/components/multi-select/index.js +33 -0
  30. package/dist/components/multi-select/toggle-value.d.ts +2 -0
  31. package/dist/components/multi-select/toggle-value.d.ts.map +1 -0
  32. package/dist/components/multi-select/toggle-value.js +3 -0
  33. package/dist/components/plan-row/index.d.ts +2 -1
  34. package/dist/components/plan-row/index.d.ts.map +1 -1
  35. package/dist/components/plan-row/index.js +2 -14
  36. package/dist/components/sidebar/index.d.ts +4 -1
  37. package/dist/components/sidebar/index.d.ts.map +1 -1
  38. package/dist/components/sidebar/index.js +2 -2
  39. package/dist/components/skeleton/index.js +1 -1
  40. package/dist/components/tool-invocation-card/ExplainFactResultDisplay.d.ts +9 -0
  41. package/dist/components/tool-invocation-card/ExplainFactResultDisplay.d.ts.map +1 -0
  42. package/dist/components/tool-invocation-card/{ExplainRDFoxResultDisplay.js → ExplainFactResultDisplay.js} +3 -3
  43. package/dist/components/tool-invocation-card/ToolOutputRenderer.js +2 -2
  44. package/dist/components/tool-invocation-card/types.d.ts +4 -4
  45. package/dist/components/tool-invocation-card/types.d.ts.map +1 -1
  46. package/dist/components/tool-invocation-card/types.js +2 -2
  47. package/dist/components/tree-multi-select/index.d.ts +1 -1
  48. package/dist/components/tree-multi-select/index.d.ts.map +1 -1
  49. package/dist/components/tree-multi-select/index.js +1 -1
  50. package/dist/components/tree-multi-select/tree-multi-select-rows.d.ts +2 -1
  51. package/dist/components/tree-multi-select/tree-multi-select-rows.d.ts.map +1 -1
  52. package/dist/components/tree-multi-select/tree-multi-select-rows.js +21 -31
  53. package/dist/components/tree-multi-select/tree-multi-select.d.ts +2 -0
  54. package/dist/components/tree-multi-select/tree-multi-select.d.ts.map +1 -1
  55. package/dist/components/tree-multi-select/tree-multi-select.js +21 -8
  56. package/dist/explain-fact/DatalogCode.d.ts.map +1 -0
  57. package/dist/explain-fact/EntityChip.d.ts.map +1 -0
  58. package/dist/explain-fact/EntityChip.js +17 -0
  59. package/dist/explain-fact/ExplainCompactView.d.ts.map +1 -0
  60. package/dist/explain-fact/ExplainFactState.d.ts +7 -0
  61. package/dist/explain-fact/ExplainFactState.d.ts.map +1 -0
  62. package/dist/{rdfox-explain/RDFoxExplainState.js → explain-fact/ExplainFactState.js} +1 -1
  63. package/dist/explain-fact/ExplainFullView.d.ts.map +1 -0
  64. package/dist/explain-fact/ExplainStates.d.ts.map +1 -0
  65. package/dist/explain-fact/ExplainTag.d.ts.map +1 -0
  66. package/dist/explain-fact/FactNotice.d.ts +7 -0
  67. package/dist/explain-fact/FactNotice.d.ts.map +1 -0
  68. package/dist/explain-fact/FactNotice.js +25 -0
  69. package/dist/explain-fact/FactValue.d.ts.map +1 -0
  70. package/dist/explain-fact/NumDot.d.ts.map +1 -0
  71. package/dist/explain-fact/PanelLabel.d.ts.map +1 -0
  72. package/dist/explain-fact/ProofSubjectHeader.d.ts.map +1 -0
  73. package/dist/explain-fact/ProvenanceBadge.d.ts.map +1 -0
  74. package/dist/{rdfox-explain → explain-fact}/ProvenanceBadge.js +2 -1
  75. package/dist/explain-fact/RuleVariableTypes.d.ts.map +1 -0
  76. package/dist/explain-fact/SubstitutedFactNotice.d.ts.map +1 -0
  77. package/dist/explain-fact/ValuePill.d.ts.map +1 -0
  78. package/dist/explain-fact/conclusion/ConclusionCard.d.ts.map +1 -0
  79. package/dist/explain-fact/conclusion/ConclusionSubtitle.d.ts.map +1 -0
  80. package/dist/{rdfox-explain → explain-fact}/conclusion/ConclusionSubtitle.js +3 -1
  81. package/dist/explain-fact/conclusion/index.d.ts.map +1 -0
  82. package/dist/explain-fact/explain-styles.d.ts.map +1 -0
  83. package/dist/explain-fact/fact-token.d.ts.map +1 -0
  84. package/dist/explain-fact/formula-hues.d.ts.map +1 -0
  85. package/dist/{rdfox-explain → explain-fact}/index.d.ts +2 -3
  86. package/dist/explain-fact/index.d.ts.map +1 -0
  87. package/dist/{rdfox-explain → explain-fact}/index.js +2 -3
  88. package/dist/explain-fact/inspector/ExplainInspector.d.ts.map +1 -0
  89. package/dist/explain-fact/inspector/ExplainInspector.js +20 -0
  90. package/dist/explain-fact/inspector/InspectorBindings.d.ts.map +1 -0
  91. package/dist/explain-fact/inspector/InspectorFact.d.ts.map +1 -0
  92. package/dist/explain-fact/inspector/InspectorHeader.d.ts.map +1 -0
  93. package/dist/{rdfox-explain → explain-fact}/inspector/InspectorRule.d.ts +3 -0
  94. package/dist/explain-fact/inspector/InspectorRule.d.ts.map +1 -0
  95. package/dist/{rdfox-explain → explain-fact}/inspector/InspectorRule.js +4 -5
  96. package/dist/explain-fact/inspector/SupportsSection.d.ts.map +1 -0
  97. package/dist/{rdfox-explain → explain-fact}/inspector/SupportsSection.js +2 -1
  98. package/dist/explain-fact/inspector/index.d.ts.map +1 -0
  99. package/dist/explain-fact/proof-tree/ProofFactLabel.d.ts.map +1 -0
  100. package/dist/explain-fact/proof-tree/ProofRowBadge.d.ts.map +1 -0
  101. package/dist/explain-fact/proof-tree/ProofRowContent.d.ts.map +1 -0
  102. package/dist/explain-fact/proof-tree/ProofRowValue.d.ts.map +1 -0
  103. package/dist/explain-fact/proof-tree/ProofTree.d.ts.map +1 -0
  104. package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTree.js +1 -1
  105. package/dist/explain-fact/proof-tree/ProofTreeFormulaFooter.d.ts.map +1 -0
  106. package/dist/explain-fact/proof-tree/ProofTreeNode.d.ts.map +1 -0
  107. package/dist/explain-fact/proof-tree/SupportsTag.d.ts.map +1 -0
  108. package/dist/explain-fact/proof-tree/SupportsTag.js +6 -0
  109. package/dist/explain-fact/proof-tree/index.d.ts.map +1 -0
  110. package/dist/explain-fact/proof-tree/proof-tree-navigation.d.ts.map +1 -0
  111. package/dist/explain-fact/proof-tree/proof-tree-root-view.d.ts.map +1 -0
  112. package/dist/explain-fact/proof-tree/visible-premises.d.ts.map +1 -0
  113. package/dist/explain-fact/rule-presentation.d.ts.map +1 -0
  114. package/dist/{rdfox-explain → explain-fact}/tree-model.d.ts +18 -9
  115. package/dist/explain-fact/tree-model.d.ts.map +1 -0
  116. package/dist/{rdfox-explain → explain-fact}/tree-model.js +19 -10
  117. package/dist/explain-fact/use-fact-measure.d.ts.map +1 -0
  118. package/dist/globals.css +383 -108
  119. package/dist/graph/nodes/AdMockupCard.js +1 -1
  120. package/dist/graph/nodes/CreativeMediaCard.js +1 -1
  121. package/dist/graph/nodes/EntityCardShell.js +1 -1
  122. package/dist/hooks/use-conversation-starters.d.ts +1 -1
  123. package/dist/hooks/useValidateActionPlan.d.ts.map +1 -1
  124. package/dist/index.d.ts +3 -0
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +3 -0
  127. package/dist/ldo-ui.d.ts +1 -1
  128. package/dist/ldo-ui.d.ts.map +1 -1
  129. package/dist/ldo-ui.js +1 -1
  130. package/dist/lib/datastore-route-paths.d.ts +2 -2
  131. package/dist/lib/datastore-route-paths.d.ts.map +1 -1
  132. package/dist/lib/datastore-route-paths.js +2 -2
  133. package/dist/lib/datastore-route-table.d.ts +36 -0
  134. package/dist/lib/datastore-route-table.d.ts.map +1 -0
  135. package/dist/lib/datastore-route-table.js +43 -0
  136. package/dist/lib/datastore-routes.d.ts +1 -1
  137. package/dist/lib/datastore-routes.d.ts.map +1 -1
  138. package/dist/lib/datastore-routes.js +1 -1
  139. package/dist/lib/spa-routes.d.ts +3 -0
  140. package/dist/lib/spa-routes.d.ts.map +1 -0
  141. package/dist/lib/spa-routes.js +5 -0
  142. package/dist/routes/data-explorer/components/Breadcrumbs.d.ts.map +1 -1
  143. package/dist/routes/data-explorer/components/Breadcrumbs.js +5 -5
  144. package/dist/routes/datastores/components/DatastoreFormDialog.d.ts +18 -0
  145. package/dist/routes/datastores/components/DatastoreFormDialog.d.ts.map +1 -0
  146. package/dist/routes/datastores/components/DatastoreFormDialog.js +27 -0
  147. package/dist/routes/datastores/components/DatastoreTableSkeleton.d.ts +2 -0
  148. package/dist/routes/datastores/components/DatastoreTableSkeleton.d.ts.map +1 -0
  149. package/dist/routes/datastores/components/DatastoreTableSkeleton.js +7 -0
  150. package/dist/routes/datastores/components/DatastoresToolbar.d.ts +18 -0
  151. package/dist/routes/datastores/components/DatastoresToolbar.d.ts.map +1 -0
  152. package/dist/routes/datastores/components/DatastoresToolbar.js +29 -0
  153. package/dist/routes/datastores/components/LinkUnlinkedDatastoreDialog.d.ts +14 -0
  154. package/dist/routes/datastores/components/LinkUnlinkedDatastoreDialog.d.ts.map +1 -0
  155. package/dist/routes/datastores/components/LinkUnlinkedDatastoreDialog.js +83 -0
  156. package/dist/routes/datastores/components/RenameDatastoreGroupDialog.d.ts +9 -0
  157. package/dist/routes/datastores/components/RenameDatastoreGroupDialog.d.ts.map +1 -0
  158. package/dist/routes/datastores/components/RenameDatastoreGroupDialog.js +21 -0
  159. package/dist/routes/datastores/components/StatusBadge.d.ts +21 -0
  160. package/dist/routes/datastores/components/StatusBadge.d.ts.map +1 -0
  161. package/dist/routes/datastores/components/StatusBadge.js +49 -0
  162. package/dist/routes/datastores/components/UnlinkedDatastoresPanel.d.ts +20 -0
  163. package/dist/routes/datastores/components/UnlinkedDatastoresPanel.d.ts.map +1 -0
  164. package/dist/routes/datastores/components/UnlinkedDatastoresPanel.js +13 -0
  165. package/dist/routes/datastores/flatten.d.ts +33 -0
  166. package/dist/routes/datastores/flatten.d.ts.map +1 -0
  167. package/dist/routes/datastores/flatten.js +86 -0
  168. package/dist/routes/datastores/hooks/useDatastoreColumns.d.ts +47 -0
  169. package/dist/routes/datastores/hooks/useDatastoreColumns.d.ts.map +1 -0
  170. package/dist/routes/datastores/hooks/useDatastoreColumns.js +165 -0
  171. package/dist/routes/datastores/hooks/useDatastoreTable.d.ts +14 -0
  172. package/dist/routes/datastores/hooks/useDatastoreTable.d.ts.map +1 -0
  173. package/dist/routes/datastores/hooks/useDatastoreTable.js +45 -0
  174. package/dist/routes/datastores/index.d.ts +2 -0
  175. package/dist/routes/datastores/index.d.ts.map +1 -0
  176. package/dist/routes/datastores/index.js +467 -0
  177. package/dist/routes/explain/ExplainEmpty.d.ts +2 -0
  178. package/dist/routes/explain/ExplainEmpty.d.ts.map +1 -0
  179. package/dist/routes/explain/ExplainEmpty.js +8 -0
  180. package/dist/routes/explain/index.d.ts +2 -0
  181. package/dist/routes/explain/index.d.ts.map +1 -0
  182. package/dist/routes/explain/index.js +16 -0
  183. package/dist/routes/explain/url-params.d.ts +9 -0
  184. package/dist/routes/explain/url-params.d.ts.map +1 -0
  185. package/dist/routes/explain/url-params.js +21 -0
  186. package/dist/routes/integrations/components/ConnectionRow.d.ts.map +1 -1
  187. package/dist/routes/integrations/components/ConnectionRow.js +1 -1
  188. package/dist/routes/integrations/connection-view.d.ts.map +1 -1
  189. package/dist/routes/integrations/connection-view.js +17 -1
  190. package/dist/routes/integrations/types.d.ts +2 -1
  191. package/dist/routes/integrations/types.d.ts.map +1 -1
  192. package/dist/routes/memories/components/ChangeScopeDialog.d.ts +12 -0
  193. package/dist/routes/memories/components/ChangeScopeDialog.d.ts.map +1 -0
  194. package/dist/routes/memories/components/ChangeScopeDialog.js +89 -0
  195. package/dist/routes/memories/components/ConflictMemoryCard.d.ts +13 -0
  196. package/dist/routes/memories/components/ConflictMemoryCard.d.ts.map +1 -0
  197. package/dist/routes/memories/components/ConflictMemoryCard.js +43 -0
  198. package/dist/routes/memories/components/ConflictTimeoutFooter.d.ts +7 -0
  199. package/dist/routes/memories/components/ConflictTimeoutFooter.d.ts.map +1 -0
  200. package/dist/routes/memories/components/ConflictTimeoutFooter.js +6 -0
  201. package/dist/routes/memories/components/ConsolidationReviewDialog.d.ts +61 -0
  202. package/dist/routes/memories/components/ConsolidationReviewDialog.d.ts.map +1 -0
  203. package/dist/routes/memories/components/ConsolidationReviewDialog.js +121 -0
  204. package/dist/routes/memories/components/EmptyStates.d.ts +18 -0
  205. package/dist/routes/memories/components/EmptyStates.d.ts.map +1 -0
  206. package/dist/routes/memories/components/EmptyStates.js +22 -0
  207. package/dist/routes/memories/components/ImportanceSlider.d.ts +11 -0
  208. package/dist/routes/memories/components/ImportanceSlider.d.ts.map +1 -0
  209. package/dist/routes/memories/components/ImportanceSlider.js +31 -0
  210. package/dist/routes/memories/components/LiveContextTab.d.ts +6 -0
  211. package/dist/routes/memories/components/LiveContextTab.d.ts.map +1 -0
  212. package/dist/routes/memories/components/LiveContextTab.js +37 -0
  213. package/dist/routes/memories/components/LoadingSkeleton.d.ts +2 -0
  214. package/dist/routes/memories/components/LoadingSkeleton.d.ts.map +1 -0
  215. package/dist/routes/memories/components/LoadingSkeleton.js +7 -0
  216. package/dist/routes/memories/components/MemoriesFilters.d.ts +31 -0
  217. package/dist/routes/memories/components/MemoriesFilters.d.ts.map +1 -0
  218. package/dist/routes/memories/components/MemoriesFilters.js +88 -0
  219. package/dist/routes/memories/components/MemoriesPanel.d.ts +6 -0
  220. package/dist/routes/memories/components/MemoriesPanel.d.ts.map +1 -0
  221. package/dist/routes/memories/components/MemoriesPanel.js +99 -0
  222. package/dist/routes/memories/components/MemoriesTabPanel.d.ts +30 -0
  223. package/dist/routes/memories/components/MemoriesTabPanel.d.ts.map +1 -0
  224. package/dist/routes/memories/components/MemoriesTabPanel.js +11 -0
  225. package/dist/routes/memories/components/MemoryActions.d.ts +12 -0
  226. package/dist/routes/memories/components/MemoryActions.d.ts.map +1 -0
  227. package/dist/routes/memories/components/MemoryActions.js +24 -0
  228. package/dist/routes/memories/components/MemoryFields.d.ts +32 -0
  229. package/dist/routes/memories/components/MemoryFields.d.ts.map +1 -0
  230. package/dist/routes/memories/components/MemoryFields.js +30 -0
  231. package/dist/routes/memories/components/MemoryFormDialog.d.ts +15 -0
  232. package/dist/routes/memories/components/MemoryFormDialog.d.ts.map +1 -0
  233. package/dist/routes/memories/components/MemoryFormDialog.js +299 -0
  234. package/dist/routes/memories/components/MemoryOnboardingWizard.d.ts +9 -0
  235. package/dist/routes/memories/components/MemoryOnboardingWizard.d.ts.map +1 -0
  236. package/dist/routes/memories/components/MemoryOnboardingWizard.js +99 -0
  237. package/dist/routes/memories/components/RestoreBlockedDialog.d.ts +8 -0
  238. package/dist/routes/memories/components/RestoreBlockedDialog.d.ts.map +1 -0
  239. package/dist/routes/memories/components/RestoreBlockedDialog.js +7 -0
  240. package/dist/routes/memories/components/SchemasTab.d.ts +6 -0
  241. package/dist/routes/memories/components/SchemasTab.d.ts.map +1 -0
  242. package/dist/routes/memories/components/SchemasTab.js +35 -0
  243. package/dist/routes/memories/components/SupersessionConflictDialog.d.ts +18 -0
  244. package/dist/routes/memories/components/SupersessionConflictDialog.d.ts.map +1 -0
  245. package/dist/routes/memories/components/SupersessionConflictDialog.js +78 -0
  246. package/dist/routes/memories/components/TeamPicker.d.ts +8 -0
  247. package/dist/routes/memories/components/TeamPicker.d.ts.map +1 -0
  248. package/dist/routes/memories/components/TeamPicker.js +25 -0
  249. package/dist/routes/memories/components/badges.d.ts +50 -0
  250. package/dist/routes/memories/components/badges.d.ts.map +1 -0
  251. package/dist/routes/memories/components/badges.js +106 -0
  252. package/dist/routes/memories/expiry-utils.d.ts +23 -0
  253. package/dist/routes/memories/expiry-utils.d.ts.map +1 -0
  254. package/dist/routes/memories/expiry-utils.js +97 -0
  255. package/dist/routes/memories/hooks/useConflictCheck.d.ts +18 -0
  256. package/dist/routes/memories/hooks/useConflictCheck.d.ts.map +1 -0
  257. package/dist/routes/memories/hooks/useConflictCheck.js +35 -0
  258. package/dist/routes/memories/hooks/useDuplicateDetection.d.ts +11 -0
  259. package/dist/routes/memories/hooks/useDuplicateDetection.d.ts.map +1 -0
  260. package/dist/routes/memories/hooks/useDuplicateDetection.js +73 -0
  261. package/dist/routes/memories/hooks/useLiveContext.d.ts +23 -0
  262. package/dist/routes/memories/hooks/useLiveContext.d.ts.map +1 -0
  263. package/dist/routes/memories/hooks/useLiveContext.js +102 -0
  264. package/dist/routes/memories/hooks/useMemoryColumns.d.ts +33 -0
  265. package/dist/routes/memories/hooks/useMemoryColumns.d.ts.map +1 -0
  266. package/dist/routes/memories/hooks/useMemoryColumns.js +188 -0
  267. package/dist/routes/memories/hooks/useMemoryTable.d.ts +33 -0
  268. package/dist/routes/memories/hooks/useMemoryTable.d.ts.map +1 -0
  269. package/dist/routes/memories/hooks/useMemoryTable.js +121 -0
  270. package/dist/routes/memories/index.d.ts +11 -0
  271. package/dist/routes/memories/index.d.ts.map +1 -0
  272. package/dist/routes/memories/index.js +472 -0
  273. package/dist/routes/memories/memory-form-validation.d.ts +8 -0
  274. package/dist/routes/memories/memory-form-validation.d.ts.map +1 -0
  275. package/dist/routes/memories/memory-form-validation.js +33 -0
  276. package/dist/routes/memories/memory-mutation-input.d.ts +6 -0
  277. package/dist/routes/memories/memory-mutation-input.d.ts.map +1 -0
  278. package/dist/routes/memories/memory-mutation-input.js +41 -0
  279. package/dist/routes/plans/components/actionPlansTableConfig.d.ts +3 -3
  280. package/dist/routes/rules/components/CreateRuleChatModal.d.ts +10 -0
  281. package/dist/routes/rules/components/CreateRuleChatModal.d.ts.map +1 -0
  282. package/dist/routes/rules/components/CreateRuleChatModal.js +52 -0
  283. package/dist/routes/rules/components/RuleActionabilityBadge.d.ts +8 -0
  284. package/dist/routes/rules/components/RuleActionabilityBadge.d.ts.map +1 -0
  285. package/dist/routes/rules/components/RuleActionabilityBadge.js +18 -0
  286. package/dist/routes/rules/components/RuleAffectedActionPlansSection.d.ts +6 -0
  287. package/dist/routes/rules/components/RuleAffectedActionPlansSection.d.ts.map +1 -0
  288. package/dist/routes/rules/components/RuleAffectedActionPlansSection.js +151 -0
  289. package/dist/routes/rules/components/RuleAst.d.ts +6 -0
  290. package/dist/routes/rules/components/RuleAst.d.ts.map +1 -0
  291. package/dist/routes/rules/components/RuleAst.js +23 -0
  292. package/dist/routes/rules/components/RuleDependentRulesSection.d.ts +6 -0
  293. package/dist/routes/rules/components/RuleDependentRulesSection.d.ts.map +1 -0
  294. package/dist/routes/rules/components/RuleDependentRulesSection.js +16 -0
  295. package/dist/routes/rules/components/RuleDetailsPage.d.ts +14 -0
  296. package/dist/routes/rules/components/RuleDetailsPage.d.ts.map +1 -0
  297. package/dist/routes/rules/components/RuleDetailsPage.js +51 -0
  298. package/dist/routes/rules/components/RuleProducersSection.d.ts +7 -0
  299. package/dist/routes/rules/components/RuleProducersSection.d.ts.map +1 -0
  300. package/dist/routes/rules/components/RuleProducersSection.js +10 -0
  301. package/dist/routes/rules/components/RuleSampleFactsSection.d.ts +7 -0
  302. package/dist/routes/rules/components/RuleSampleFactsSection.d.ts.map +1 -0
  303. package/dist/routes/rules/components/RuleSampleFactsSection.js +70 -0
  304. package/dist/routes/rules/components/RulesOverviewHeaderActions.d.ts +17 -0
  305. package/dist/routes/rules/components/RulesOverviewHeaderActions.d.ts.map +1 -0
  306. package/dist/routes/rules/components/RulesOverviewHeaderActions.js +55 -0
  307. package/dist/routes/rules/components/RulesOverviewPage.d.ts +13 -0
  308. package/dist/routes/rules/components/RulesOverviewPage.d.ts.map +1 -0
  309. package/dist/routes/rules/components/RulesOverviewPage.js +236 -0
  310. package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapeDetails.d.ts +7 -0
  311. package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapeDetails.d.ts.map +1 -0
  312. package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapeDetails.js +47 -0
  313. package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapesList.d.ts +8 -0
  314. package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapesList.d.ts.map +1 -0
  315. package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapesList.js +76 -0
  316. package/dist/routes/rules/components/SupportedActionShapesList/TokenList.d.ts +6 -0
  317. package/dist/routes/rules/components/SupportedActionShapesList/TokenList.d.ts.map +1 -0
  318. package/dist/routes/rules/components/SupportedActionShapesList/TokenList.js +9 -0
  319. package/dist/routes/rules/components/SupportedActionShapesList/index.d.ts +2 -0
  320. package/dist/routes/rules/components/SupportedActionShapesList/index.d.ts.map +1 -0
  321. package/dist/routes/rules/components/SupportedActionShapesList/index.js +1 -0
  322. package/dist/routes/rules/components/SupportedActionShapesList/shacl-shape.d.ts +20 -0
  323. package/dist/routes/rules/components/SupportedActionShapesList/shacl-shape.d.ts.map +1 -0
  324. package/dist/routes/rules/components/SupportedActionShapesList/shacl-shape.js +48 -0
  325. package/dist/routes/rules/components/datalog-editor/BindingsPreview.d.ts +9 -0
  326. package/dist/routes/rules/components/datalog-editor/BindingsPreview.d.ts.map +1 -0
  327. package/dist/routes/rules/components/datalog-editor/BindingsPreview.js +38 -0
  328. package/dist/routes/rules/components/datalog-editor/FactsPreview.d.ts +10 -0
  329. package/dist/routes/rules/components/datalog-editor/FactsPreview.d.ts.map +1 -0
  330. package/dist/routes/rules/components/datalog-editor/FactsPreview.js +43 -0
  331. package/dist/routes/rules/components/datalog-editor/PreviewPanel.d.ts +7 -0
  332. package/dist/routes/rules/components/datalog-editor/PreviewPanel.d.ts.map +1 -0
  333. package/dist/routes/rules/components/datalog-editor/PreviewPanel.js +8 -0
  334. package/dist/routes/rules/components/datalog-editor/QueryResults.d.ts +9 -0
  335. package/dist/routes/rules/components/datalog-editor/QueryResults.d.ts.map +1 -0
  336. package/dist/routes/rules/components/datalog-editor/QueryResults.js +22 -0
  337. package/dist/routes/rules/components/datalog-editor/SparqlQueryPanel.d.ts +11 -0
  338. package/dist/routes/rules/components/datalog-editor/SparqlQueryPanel.d.ts.map +1 -0
  339. package/dist/routes/rules/components/datalog-editor/SparqlQueryPanel.js +21 -0
  340. package/dist/routes/rules/components/rule-producers.d.ts +15 -0
  341. package/dist/routes/rules/components/rule-producers.d.ts.map +1 -0
  342. package/dist/routes/rules/components/rule-producers.js +76 -0
  343. package/dist/routes/rules/components/sample-facts-query.d.ts +9 -0
  344. package/dist/routes/rules/components/sample-facts-query.d.ts.map +1 -0
  345. package/dist/routes/rules/components/sample-facts-query.js +71 -0
  346. package/dist/routes/rules/datalog-editor.d.ts +6 -0
  347. package/dist/routes/rules/datalog-editor.d.ts.map +1 -0
  348. package/dist/routes/rules/datalog-editor.js +7 -0
  349. package/dist/routes/rules/hooks/useRuleFactsPreview.d.ts +53 -0
  350. package/dist/routes/rules/hooks/useRuleFactsPreview.d.ts.map +1 -0
  351. package/dist/routes/rules/hooks/useRuleFactsPreview.js +214 -0
  352. package/dist/routes/rules/hooks/useSparqlQueryExecution.d.ts +14 -0
  353. package/dist/routes/rules/hooks/useSparqlQueryExecution.d.ts.map +1 -0
  354. package/dist/routes/rules/hooks/useSparqlQueryExecution.js +77 -0
  355. package/dist/routes/rules/pages.d.ts +6 -0
  356. package/dist/routes/rules/pages.d.ts.map +1 -0
  357. package/dist/routes/rules/pages.js +7 -0
  358. package/dist/rules/RuleNameLink.d.ts +6 -0
  359. package/dist/rules/RuleNameLink.d.ts.map +1 -0
  360. package/dist/rules/RuleNameLink.js +8 -0
  361. package/package.json +64 -24
  362. package/src/globals.css +18 -18
  363. package/src/themes/manta-dark.css +1 -4
  364. package/src/themes/manta.css +1 -0
  365. package/src/themes/standard.css +12 -11
  366. package/dist/components/channel-icon/marketer-icon.d.ts +0 -4
  367. package/dist/components/channel-icon/marketer-icon.d.ts.map +0 -1
  368. package/dist/components/channel-icon/marketer-icon.js +0 -6
  369. package/dist/components/rdfox-explain/OutdatedFactNotice.d.ts.map +0 -1
  370. package/dist/components/rdfox-explain/RDFoxExplain.d.ts +0 -16
  371. package/dist/components/rdfox-explain/RDFoxExplain.d.ts.map +0 -1
  372. package/dist/components/tool-invocation-card/ExplainRDFoxResultDisplay.d.ts +0 -9
  373. package/dist/components/tool-invocation-card/ExplainRDFoxResultDisplay.d.ts.map +0 -1
  374. package/dist/lib/test-utils.d.ts +0 -4
  375. package/dist/lib/test-utils.d.ts.map +0 -1
  376. package/dist/lib/test-utils.js +0 -16
  377. package/dist/rdfox-explain/AbsentFactNotice.d.ts +0 -5
  378. package/dist/rdfox-explain/AbsentFactNotice.d.ts.map +0 -1
  379. package/dist/rdfox-explain/AbsentFactNotice.js +0 -6
  380. package/dist/rdfox-explain/DatalogCode.d.ts.map +0 -1
  381. package/dist/rdfox-explain/EntityChip.d.ts.map +0 -1
  382. package/dist/rdfox-explain/EntityChip.js +0 -9
  383. package/dist/rdfox-explain/ExplainCompactView.d.ts.map +0 -1
  384. package/dist/rdfox-explain/ExplainFullView.d.ts.map +0 -1
  385. package/dist/rdfox-explain/ExplainStates.d.ts.map +0 -1
  386. package/dist/rdfox-explain/ExplainTag.d.ts.map +0 -1
  387. package/dist/rdfox-explain/FactValue.d.ts.map +0 -1
  388. package/dist/rdfox-explain/NumDot.d.ts.map +0 -1
  389. package/dist/rdfox-explain/PanelLabel.d.ts.map +0 -1
  390. package/dist/rdfox-explain/ProofSubjectHeader.d.ts.map +0 -1
  391. package/dist/rdfox-explain/ProvenanceBadge.d.ts.map +0 -1
  392. package/dist/rdfox-explain/RDFoxExplainState.d.ts +0 -7
  393. package/dist/rdfox-explain/RDFoxExplainState.d.ts.map +0 -1
  394. package/dist/rdfox-explain/RuleVariableTypes.d.ts.map +0 -1
  395. package/dist/rdfox-explain/StoredFactNotice.d.ts +0 -5
  396. package/dist/rdfox-explain/StoredFactNotice.d.ts.map +0 -1
  397. package/dist/rdfox-explain/StoredFactNotice.js +0 -6
  398. package/dist/rdfox-explain/SubstitutedFactNotice.d.ts.map +0 -1
  399. package/dist/rdfox-explain/ValuePill.d.ts.map +0 -1
  400. package/dist/rdfox-explain/busy-aggregate-fixture.d.ts +0 -7
  401. package/dist/rdfox-explain/busy-aggregate-fixture.d.ts.map +0 -1
  402. package/dist/rdfox-explain/busy-aggregate-fixture.js +0 -6
  403. package/dist/rdfox-explain/conclusion/ConclusionCard.d.ts.map +0 -1
  404. package/dist/rdfox-explain/conclusion/ConclusionSubtitle.d.ts.map +0 -1
  405. package/dist/rdfox-explain/conclusion/index.d.ts.map +0 -1
  406. package/dist/rdfox-explain/explain-styles.d.ts.map +0 -1
  407. package/dist/rdfox-explain/fact-token.d.ts.map +0 -1
  408. package/dist/rdfox-explain/formula-hues.d.ts.map +0 -1
  409. package/dist/rdfox-explain/index.d.ts.map +0 -1
  410. package/dist/rdfox-explain/inspector/ExplainInspector.d.ts.map +0 -1
  411. package/dist/rdfox-explain/inspector/ExplainInspector.js +0 -22
  412. package/dist/rdfox-explain/inspector/InspectorBindings.d.ts.map +0 -1
  413. package/dist/rdfox-explain/inspector/InspectorFact.d.ts.map +0 -1
  414. package/dist/rdfox-explain/inspector/InspectorHeader.d.ts.map +0 -1
  415. package/dist/rdfox-explain/inspector/InspectorRule.d.ts.map +0 -1
  416. package/dist/rdfox-explain/inspector/SupportsSection.d.ts.map +0 -1
  417. package/dist/rdfox-explain/inspector/index.d.ts.map +0 -1
  418. package/dist/rdfox-explain/proof-tree/ProofFactLabel.d.ts.map +0 -1
  419. package/dist/rdfox-explain/proof-tree/ProofRowBadge.d.ts.map +0 -1
  420. package/dist/rdfox-explain/proof-tree/ProofRowContent.d.ts.map +0 -1
  421. package/dist/rdfox-explain/proof-tree/ProofRowValue.d.ts.map +0 -1
  422. package/dist/rdfox-explain/proof-tree/ProofTree.d.ts.map +0 -1
  423. package/dist/rdfox-explain/proof-tree/ProofTreeFormulaFooter.d.ts.map +0 -1
  424. package/dist/rdfox-explain/proof-tree/ProofTreeNode.d.ts.map +0 -1
  425. package/dist/rdfox-explain/proof-tree/SupportsTag.d.ts.map +0 -1
  426. package/dist/rdfox-explain/proof-tree/SupportsTag.js +0 -6
  427. package/dist/rdfox-explain/proof-tree/index.d.ts.map +0 -1
  428. package/dist/rdfox-explain/proof-tree/proof-tree-navigation.d.ts.map +0 -1
  429. package/dist/rdfox-explain/proof-tree/proof-tree-root-view.d.ts.map +0 -1
  430. package/dist/rdfox-explain/proof-tree/visible-premises.d.ts.map +0 -1
  431. package/dist/rdfox-explain/rule-presentation.d.ts.map +0 -1
  432. package/dist/rdfox-explain/tree-model.d.ts.map +0 -1
  433. package/dist/rdfox-explain/use-fact-measure.d.ts.map +0 -1
  434. package/dist/test-support.d.ts +0 -9
  435. package/dist/test-support.d.ts.map +0 -1
  436. package/dist/test-support.js +0 -18
  437. package/src/themes/marketer-dark.css +0 -70
  438. /package/dist/components/{rdfox-explain → explain-fact}/OutdatedFactNotice.d.ts +0 -0
  439. /package/dist/components/{rdfox-explain → explain-fact}/OutdatedFactNotice.js +0 -0
  440. /package/dist/{rdfox-explain → explain-fact}/DatalogCode.d.ts +0 -0
  441. /package/dist/{rdfox-explain → explain-fact}/DatalogCode.js +0 -0
  442. /package/dist/{rdfox-explain → explain-fact}/EntityChip.d.ts +0 -0
  443. /package/dist/{rdfox-explain → explain-fact}/ExplainCompactView.d.ts +0 -0
  444. /package/dist/{rdfox-explain → explain-fact}/ExplainCompactView.js +0 -0
  445. /package/dist/{rdfox-explain → explain-fact}/ExplainFullView.d.ts +0 -0
  446. /package/dist/{rdfox-explain → explain-fact}/ExplainFullView.js +0 -0
  447. /package/dist/{rdfox-explain → explain-fact}/ExplainStates.d.ts +0 -0
  448. /package/dist/{rdfox-explain → explain-fact}/ExplainStates.js +0 -0
  449. /package/dist/{rdfox-explain → explain-fact}/ExplainTag.d.ts +0 -0
  450. /package/dist/{rdfox-explain → explain-fact}/ExplainTag.js +0 -0
  451. /package/dist/{rdfox-explain → explain-fact}/FactValue.d.ts +0 -0
  452. /package/dist/{rdfox-explain → explain-fact}/FactValue.js +0 -0
  453. /package/dist/{rdfox-explain → explain-fact}/NumDot.d.ts +0 -0
  454. /package/dist/{rdfox-explain → explain-fact}/NumDot.js +0 -0
  455. /package/dist/{rdfox-explain → explain-fact}/PanelLabel.d.ts +0 -0
  456. /package/dist/{rdfox-explain → explain-fact}/PanelLabel.js +0 -0
  457. /package/dist/{rdfox-explain → explain-fact}/ProofSubjectHeader.d.ts +0 -0
  458. /package/dist/{rdfox-explain → explain-fact}/ProofSubjectHeader.js +0 -0
  459. /package/dist/{rdfox-explain → explain-fact}/ProvenanceBadge.d.ts +0 -0
  460. /package/dist/{rdfox-explain → explain-fact}/RuleVariableTypes.d.ts +0 -0
  461. /package/dist/{rdfox-explain → explain-fact}/RuleVariableTypes.js +0 -0
  462. /package/dist/{rdfox-explain → explain-fact}/SubstitutedFactNotice.d.ts +0 -0
  463. /package/dist/{rdfox-explain → explain-fact}/SubstitutedFactNotice.js +0 -0
  464. /package/dist/{rdfox-explain → explain-fact}/ValuePill.d.ts +0 -0
  465. /package/dist/{rdfox-explain → explain-fact}/ValuePill.js +0 -0
  466. /package/dist/{rdfox-explain → explain-fact}/conclusion/ConclusionCard.d.ts +0 -0
  467. /package/dist/{rdfox-explain → explain-fact}/conclusion/ConclusionCard.js +0 -0
  468. /package/dist/{rdfox-explain → explain-fact}/conclusion/ConclusionSubtitle.d.ts +0 -0
  469. /package/dist/{rdfox-explain → explain-fact}/conclusion/index.d.ts +0 -0
  470. /package/dist/{rdfox-explain → explain-fact}/conclusion/index.js +0 -0
  471. /package/dist/{rdfox-explain → explain-fact}/explain-styles.d.ts +0 -0
  472. /package/dist/{rdfox-explain → explain-fact}/explain-styles.js +0 -0
  473. /package/dist/{rdfox-explain → explain-fact}/fact-token.d.ts +0 -0
  474. /package/dist/{rdfox-explain → explain-fact}/fact-token.js +0 -0
  475. /package/dist/{rdfox-explain → explain-fact}/formula-hues.d.ts +0 -0
  476. /package/dist/{rdfox-explain → explain-fact}/formula-hues.js +0 -0
  477. /package/dist/{rdfox-explain → explain-fact}/inspector/ExplainInspector.d.ts +0 -0
  478. /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorBindings.d.ts +0 -0
  479. /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorBindings.js +0 -0
  480. /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorFact.d.ts +0 -0
  481. /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorFact.js +0 -0
  482. /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorHeader.d.ts +0 -0
  483. /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorHeader.js +0 -0
  484. /package/dist/{rdfox-explain → explain-fact}/inspector/SupportsSection.d.ts +0 -0
  485. /package/dist/{rdfox-explain → explain-fact}/inspector/index.d.ts +0 -0
  486. /package/dist/{rdfox-explain → explain-fact}/inspector/index.js +0 -0
  487. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofFactLabel.d.ts +0 -0
  488. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofFactLabel.js +0 -0
  489. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowBadge.d.ts +0 -0
  490. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowBadge.js +0 -0
  491. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowContent.d.ts +0 -0
  492. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowContent.js +0 -0
  493. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowValue.d.ts +0 -0
  494. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowValue.js +0 -0
  495. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTree.d.ts +0 -0
  496. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTreeFormulaFooter.d.ts +0 -0
  497. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTreeFormulaFooter.js +0 -0
  498. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTreeNode.d.ts +0 -0
  499. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTreeNode.js +0 -0
  500. /package/dist/{rdfox-explain → explain-fact}/proof-tree/SupportsTag.d.ts +0 -0
  501. /package/dist/{rdfox-explain → explain-fact}/proof-tree/index.d.ts +0 -0
  502. /package/dist/{rdfox-explain → explain-fact}/proof-tree/index.js +0 -0
  503. /package/dist/{rdfox-explain → explain-fact}/proof-tree/proof-tree-navigation.d.ts +0 -0
  504. /package/dist/{rdfox-explain → explain-fact}/proof-tree/proof-tree-navigation.js +0 -0
  505. /package/dist/{rdfox-explain → explain-fact}/proof-tree/proof-tree-root-view.d.ts +0 -0
  506. /package/dist/{rdfox-explain → explain-fact}/proof-tree/proof-tree-root-view.js +0 -0
  507. /package/dist/{rdfox-explain → explain-fact}/proof-tree/visible-premises.d.ts +0 -0
  508. /package/dist/{rdfox-explain → explain-fact}/proof-tree/visible-premises.js +0 -0
  509. /package/dist/{rdfox-explain → explain-fact}/rule-presentation.d.ts +0 -0
  510. /package/dist/{rdfox-explain → explain-fact}/rule-presentation.js +0 -0
  511. /package/dist/{rdfox-explain → explain-fact}/use-fact-measure.d.ts +0 -0
  512. /package/dist/{rdfox-explain → explain-fact}/use-fact-measure.js +0 -0
@@ -0,0 +1,85 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { isPresent } from "@manta-eu/lib/present";
4
+ import { ChevronDown, ChevronUp } from "lucide-react";
5
+ import { useState } from "react";
6
+ import { cn } from "#style";
7
+ export function clamp(value, min, max) {
8
+ let next = value;
9
+ if (isPresent(min)) {
10
+ next = Math.max(min, next);
11
+ }
12
+ if (isPresent(max)) {
13
+ next = Math.min(max, next);
14
+ }
15
+ return next;
16
+ }
17
+ function toDraft(value) {
18
+ return Number.isFinite(value) ? String(value) : "";
19
+ }
20
+ export function decimalsOf(value) {
21
+ const text = String(value);
22
+ // Exponential notation ("1e-7") carries no decimal point; fall back to full precision.
23
+ if (text.includes("e")) {
24
+ return 20;
25
+ }
26
+ const point = text.indexOf(".");
27
+ return point === -1 ? 0 : text.length - point - 1;
28
+ }
29
+ export function roundToStep(value, step, base = 0) {
30
+ const decimals = Math.min(20, Math.max(decimalsOf(step), decimalsOf(base)));
31
+ return Number(value.toFixed(decimals));
32
+ }
33
+ function StepperButton(props) {
34
+ const { label, disabled, onClick, children } = props;
35
+ return (_jsx("button", { type: "button", "aria-label": label, tabIndex: -1, disabled: disabled, onClick: onClick, className: "flex h-1/2 w-7 items-center justify-center text-muted-foreground hover:text-default-foreground disabled:pointer-events-none disabled:opacity-40", children: children }));
36
+ }
37
+ export function InputNumeric(props) {
38
+ const { value, onValueChange, min, max, step = 1, disabled = false, placeholder, className } = props;
39
+ const ariaLabel = props["aria-label"];
40
+ const [draft, setDraft] = useState(() => toDraft(value));
41
+ const [lastValue, setLastValue] = useState(value);
42
+ // Resync the draft when the parent moves value elsewhere; Object.is avoids a NaN loop (NaN !== NaN).
43
+ if (!Object.is(lastValue, value)) {
44
+ setLastValue(value);
45
+ if (parseFloat(draft) !== value) {
46
+ setDraft(toDraft(value));
47
+ }
48
+ }
49
+ function applyDelta(delta) {
50
+ const parsed = parseFloat(draft);
51
+ const base = Number.isFinite(parsed) ? parsed : value;
52
+ const next = clamp(roundToStep(base + delta, step, base), min, max);
53
+ onValueChange(next);
54
+ setDraft(toDraft(next));
55
+ }
56
+ function commitDraft() {
57
+ const parsed = parseFloat(draft);
58
+ if (Number.isFinite(parsed)) {
59
+ const next = clamp(parsed, min, max);
60
+ onValueChange(next);
61
+ setDraft(toDraft(next));
62
+ }
63
+ else {
64
+ setDraft(toDraft(value));
65
+ }
66
+ }
67
+ function onKeyDown(event) {
68
+ if (event.key === "Enter") {
69
+ commitDraft();
70
+ }
71
+ else if (event.key === "ArrowUp") {
72
+ event.preventDefault();
73
+ applyDelta(step);
74
+ }
75
+ else if (event.key === "ArrowDown") {
76
+ event.preventDefault();
77
+ applyDelta(-step);
78
+ }
79
+ }
80
+ const draftBase = Number.isFinite(parseFloat(draft)) ? parseFloat(draft) : value;
81
+ const atMin = isPresent(min) && draftBase <= min;
82
+ const atMax = isPresent(max) && draftBase >= max;
83
+ return (_jsxs("div", { className: cn("relative inline-flex w-full items-stretch rounded-md-v4 border border-input-border bg-input text-default-foreground", "focus-within:border-active-border focus-within:outline focus-within:outline-1 focus-within:outline-active-border", disabled && "pointer-events-none opacity-50", className), "data-slot": "numeric-input", children: [_jsx("input", { type: "text", inputMode: "decimal", value: draft, disabled: disabled, placeholder: placeholder, "aria-label": ariaLabel, onChange: (event) => setDraft(event.currentTarget.value), onBlur: commitDraft, onKeyDown: onKeyDown, className: "w-full min-w-0 bg-transparent px-3 py-2.5 typography-caption text-default-foreground outline-none placeholder:text-muted-foreground" }), _jsxs("div", { className: "flex flex-col justify-center border-l border-input-border", children: [_jsx(StepperButton, { label: "Increment", disabled: disabled || atMax, onClick: () => applyDelta(step), children: _jsx(ChevronUp, { className: "size-3" }) }), _jsx(StepperButton, { label: "Decrement", disabled: disabled || atMin, onClick: () => applyDelta(-step), children: _jsx(ChevronDown, { className: "size-3" }) })] })] }));
84
+ }
85
+ InputNumeric.displayName = "InputNumeric";
@@ -0,0 +1,17 @@
1
+ export type InputTagsSize = "sm" | "base" | "lg";
2
+ export type InputTagsProps = {
3
+ value: string[];
4
+ onChange: (value: string[]) => void;
5
+ placeholder?: string;
6
+ size?: InputTagsSize;
7
+ disabled?: boolean;
8
+ invalid?: boolean;
9
+ className?: string;
10
+ "aria-label"?: string;
11
+ };
12
+ export declare function addTag(values: string[], raw: string): string[];
13
+ export declare function InputTags(props: InputTagsProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare namespace InputTags {
15
+ var displayName: string;
16
+ }
17
+ //# sourceMappingURL=input-tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-tags.d.ts","sourceRoot":"","sources":["../../../src/components/input/input-tags.tsx"],"names":[],"mappings":"AAOA,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AAEjD,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAQF,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAM9D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CAuE9C;yBAvEe,SAAS"}
@@ -0,0 +1,46 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { isPresent } from "@manta-eu/lib/present";
4
+ import { useRef, useState } from "react";
5
+ import { Chip } from "../chip/index.js";
6
+ import { cn } from "#style";
7
+ const sizeLayout = {
8
+ sm: "min-h-8 px-2.5 py-1 typography-small",
9
+ base: "min-h-10 px-3 py-1.5 typography-caption",
10
+ lg: "min-h-12 px-4 py-2 typography-body-v4",
11
+ };
12
+ export function addTag(values, raw) {
13
+ const tag = raw.trim();
14
+ if (!isPresent(tag) || values.includes(tag)) {
15
+ return values;
16
+ }
17
+ return [...values, tag];
18
+ }
19
+ export function InputTags(props) {
20
+ const { value, onChange, placeholder = "Add a tag…", size = "base", disabled = false, invalid = false, className, } = props;
21
+ const ariaLabel = props["aria-label"];
22
+ const inputRef = useRef(null);
23
+ const [pending, setPending] = useState("");
24
+ function commitFromInput() {
25
+ const next = addTag(value, pending);
26
+ if (next !== value) {
27
+ onChange(next);
28
+ }
29
+ setPending("");
30
+ }
31
+ function onKeyDown(event) {
32
+ if (event.key === "Enter" || event.key === ",") {
33
+ event.preventDefault();
34
+ commitFromInput();
35
+ }
36
+ else if (event.key === "Escape") {
37
+ event.preventDefault();
38
+ setPending("");
39
+ }
40
+ else if (event.key === "Backspace" && !isPresent(pending) && isPresent(value)) {
41
+ onChange(value.slice(0, -1));
42
+ }
43
+ }
44
+ return (_jsxs("div", { "data-slot": "tag-input", onClick: () => inputRef.current?.focus(), className: cn("flex w-full flex-wrap items-center gap-1.5 rounded-md-v4 border bg-input text-default-foreground", "focus-within:border-active-border focus-within:outline focus-within:outline-1 focus-within:outline-active-border", invalid ? "border-error-border" : "border-input-border", disabled && "pointer-events-none opacity-50", sizeLayout[size], className), children: [value.map((tag) => (_jsx(Chip, { label: tag, removeLabel: tag, disabled: disabled, onRemove: () => onChange(value.filter((current) => current !== tag)) }, tag))), _jsx("input", { ref: inputRef, type: "text", value: pending, "aria-label": ariaLabel, "aria-invalid": invalid ? true : undefined, disabled: disabled, placeholder: isPresent(value) ? "" : placeholder, onChange: (event) => setPending(event.currentTarget.value), onKeyDown: onKeyDown, onBlur: commitFromInput, className: "min-w-24 flex-1 bg-transparent outline-none placeholder:text-placeholder-foreground" })] }));
45
+ }
46
+ InputTags.displayName = "InputTags";
@@ -0,0 +1,32 @@
1
+ import { type ReactNode } from "react";
2
+ export type MultiSelectSize = "sm" | "base" | "lg";
3
+ export type MultiSelectOption = {
4
+ value: string;
5
+ label: ReactNode;
6
+ icon?: ReactNode;
7
+ disabled?: boolean;
8
+ /** Text to match against when searching; defaults to the label when it is a string, otherwise the value. */
9
+ searchText?: string;
10
+ };
11
+ export type MultiSelectProps = {
12
+ /** A selected id with no matching option stays in state but shows no chip; keep options complete. */
13
+ options: MultiSelectOption[];
14
+ value: string[];
15
+ onChange: (value: string[]) => void;
16
+ placeholder?: string;
17
+ searchPlaceholder?: string;
18
+ emptyMessage?: string;
19
+ size?: MultiSelectSize;
20
+ disabled?: boolean;
21
+ clearable?: boolean;
22
+ invalid?: boolean;
23
+ /** Validation message; renders below the control and is announced via `aria-errormessage`. Implies `invalid`. */
24
+ error?: string;
25
+ className?: string;
26
+ "aria-label"?: string;
27
+ };
28
+ export declare function MultiSelect(props: MultiSelectProps): import("react/jsx-runtime").JSX.Element;
29
+ export declare namespace MultiSelect {
30
+ var displayName: string;
31
+ }
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/multi-select/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAe9C,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4GAA4G;IAC5G,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qGAAqG;IACrG,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iHAAiH;IACjH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAeF,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CA4GlD;yBA5Ge,WAAW"}
@@ -0,0 +1,33 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { isPresent } from "@manta-eu/lib/present";
4
+ import { ChevronDown, X } from "lucide-react";
5
+ import { useId } from "react";
6
+ import { Chip } from "../chip/index.js";
7
+ import { Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxTrigger, } from "../combobox/index.js";
8
+ import { createSelectClassName } from "../select/index.js";
9
+ import { toggleValue } from "./toggle-value.js";
10
+ import { cn } from "#style";
11
+ const triggerLayoutBySize = {
12
+ sm: "min-h-8 py-1",
13
+ base: "min-h-10 py-1.5",
14
+ lg: "min-h-12 py-2",
15
+ };
16
+ function optionSearchText(option) {
17
+ if (isPresent(option.searchText)) {
18
+ return option.searchText;
19
+ }
20
+ return typeof option.label === "string" ? option.label : option.value;
21
+ }
22
+ export function MultiSelect(props) {
23
+ const { options, value, onChange, placeholder = "Select…", searchPlaceholder = "Search…", emptyMessage = "No results.", size = "base", disabled = false, clearable = true, invalid = false, error, className, } = props;
24
+ const ariaLabel = props["aria-label"];
25
+ const errorId = useId();
26
+ const isInvalid = invalid || isPresent(error);
27
+ const hasSelection = isPresent(value);
28
+ return (_jsxs("div", { className: "flex w-full flex-col gap-1.5", children: [_jsxs(Combobox, { children: [_jsxs("div", { "data-slot": "multi-select", className: cn(createSelectClassName({ size }), "group relative h-auto flex-wrap items-start gap-1.5", "has-[:focus-visible]:border-active-border has-[:focus-visible]:outline has-[:focus-visible]:outline-1 has-[:focus-visible]:outline-active-border has-[:focus-visible]:outline-offset-0", "has-[[aria-invalid]]:border-error-border has-[[aria-invalid]]:ring-error-foreground/20", triggerLayoutBySize[size], disabled && "pointer-events-none opacity-50", className), children: [_jsx(ComboboxTrigger, { asChild: true, children: _jsx("button", { type: "button", disabled: disabled, "aria-label": ariaLabel, "aria-invalid": isInvalid ? true : undefined, "aria-errormessage": isPresent(error) ? errorId : undefined, className: "absolute inset-0 size-full cursor-pointer rounded-[inherit] outline-none disabled:cursor-not-allowed" }) }), _jsx("div", { className: "pointer-events-none relative flex min-w-0 flex-1 flex-wrap items-center gap-1.5", children: hasSelection ? (value.map((selected) => {
29
+ const option = options.find((candidate) => candidate.value === selected);
30
+ return (_jsx(Chip, { label: option?.label ?? selected, removeLabel: isPresent(option) ? optionSearchText(option) : selected, disabled: disabled, onRemove: () => onChange(toggleValue(value, selected)) }, selected));
31
+ })) : (_jsx("span", { className: "text-placeholder-foreground", children: placeholder })) }), _jsxs("div", { className: "pointer-events-none relative flex shrink-0 items-center gap-0.5 pt-0.5", children: [clearable && hasSelection && !disabled && (_jsx("button", { type: "button", "aria-label": "Clear all", onClick: () => onChange([]), className: "pointer-events-auto flex size-4 items-center justify-center rounded-sm text-muted-foreground hover:text-default-foreground", children: _jsx(X, { className: "size-3.5" }) })), _jsx(ChevronDown, { className: "size-4 shrink-0 text-muted-foreground transition-transform group-data-[state=open]:rotate-180" })] })] }), _jsxs(ComboboxContent, { className: "w-[var(--radix-popover-trigger-width)]", children: [_jsx(ComboboxInput, { placeholder: searchPlaceholder }), _jsxs(ComboboxList, { children: [_jsx(ComboboxEmpty, { children: emptyMessage }), options.map((option) => (_jsx(ComboboxItem, { value: option.value, keywords: [optionSearchText(option)], icon: option.icon, selected: value.includes(option.value), disabled: option.disabled, closeOnSelect: false, onSelect: () => onChange(toggleValue(value, option.value)), children: option.label }, option.value)))] })] })] }), isPresent(error) ? (_jsx("p", { id: errorId, className: "typography-small text-error-foreground", children: error })) : null] }));
32
+ }
33
+ MultiSelect.displayName = "MultiSelect";
@@ -0,0 +1,2 @@
1
+ export declare function toggleValue(values: string[], value: string): string[];
2
+ //# sourceMappingURL=toggle-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-value.d.ts","sourceRoot":"","sources":["../../../src/components/multi-select/toggle-value.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAErE"}
@@ -0,0 +1,3 @@
1
+ export function toggleValue(values, value) {
2
+ return values.includes(value) ? values.filter((current) => current !== value) : [...values, value];
3
+ }
@@ -1,3 +1,4 @@
1
+ import type { GQLIntegration } from "@manta-eu/client";
1
2
  import type { ElementType } from "react";
2
3
  export type PlanState = "DRAFT" | "RUNNING" | "FAILED" | "TIMED_OUT" | "COMPLETED";
3
4
  export type PlanHowTo = {
@@ -9,7 +10,7 @@ export type PlanHowTo = {
9
10
  export type PlanRowPlan = {
10
11
  iri: string;
11
12
  state?: PlanState | null;
12
- primaryIntegration?: string | null;
13
+ primaryIntegration?: GQLIntegration | null;
13
14
  actionCount: number;
14
15
  completedActionCount: number;
15
16
  subjects: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/plan-row/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAOzC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;AAEnF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA0EF,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,2CAsE1C;AAED,wBAAgB,iBAAiB,4CAShC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/plan-row/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAQzC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;AAEnF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,kBAAkB,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA2DF,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,2CAsE1C;AAED,wBAAgB,iBAAiB,4CAShC"}
@@ -4,6 +4,7 @@ import { Clock, Ellipsis, Zap } from "lucide-react";
4
4
  import { match } from "ts-pattern";
5
5
  import { Link } from "../button/index.js";
6
6
  import { ChannelIcon } from "../channel-icon/index.js";
7
+ import { integrationToChannel } from "../planning/plan-detail-utils.js";
7
8
  import { Tooltip, TooltipContent, TooltipTrigger } from "../tooltip/index.js";
8
9
  import { cn } from "#style";
9
10
  function isActivePlan(state) {
@@ -63,23 +64,10 @@ function extractPlanName(iri) {
63
64
  const separator = Math.max(lastHash, lastSlash);
64
65
  return separator > -1 ? iri.slice(separator + 1) : iri;
65
66
  }
66
- function integrationToChannel(integration) {
67
- if (integration === "GOOGLE")
68
- return "GOOGLE_ADS";
69
- if (integration === "META" ||
70
- integration === "GOOGLE_ADS" ||
71
- integration === "SNAPCHAT" ||
72
- integration === "SHOPIFY" ||
73
- integration === "MARKETER" ||
74
- integration === "MANTA") {
75
- return integration;
76
- }
77
- return null;
78
- }
79
67
  export function PlanRow(props) {
80
68
  const { plan, href, component, className } = props;
81
69
  const status = getStatusConfig(plan.state);
82
- const channel = integrationToChannel(plan.primaryIntegration);
70
+ const channel = plan.primaryIntegration ? integrationToChannel(plan.primaryIntegration) : null;
83
71
  const actionCount = getActionCount(plan);
84
72
  const timeEstimate = getTimeEstimate(plan);
85
73
  const planName = plan.howTo?.name ?? extractPlanName(plan.iri);
@@ -15,7 +15,10 @@ declare function Sidebar({ side, variant, collapsible, className, children, ...p
15
15
  variant?: "sidebar" | "floating" | "inset";
16
16
  collapsible?: "offcanvas" | "icon" | "none";
17
17
  }): import("react/jsx-runtime").JSX.Element;
18
- declare function SidebarTrigger(props: IconOnlyButtonProps): import("react/jsx-runtime").JSX.Element;
18
+ export type SidebarTriggerProps = Omit<IconOnlyButtonProps, "icon" | "iconOnly" | "aria-label"> & {
19
+ "aria-label"?: string;
20
+ };
21
+ declare function SidebarTrigger(props: SidebarTriggerProps): import("react/jsx-runtime").JSX.Element;
19
22
  declare function SidebarRail({ className, ...props }: ComponentProps<"button">): import("react/jsx-runtime").JSX.Element;
20
23
  declare function SidebarInset({ className, ...props }: ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
21
24
  declare function SidebarInput({ className, ...props }: ComponentProps<typeof Input>): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/index.tsx"],"names":[],"mappings":"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"}
@@ -104,12 +104,12 @@ function Sidebar({ side = "left", variant = "sidebar", collapsible = "offcanvas"
104
104
  : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)", className), ...props, children: _jsx("div", { "data-sidebar": "sidebar", "data-slot": "sidebar-inner", className: "bg-sidebar group-data-[variant=floating]:border-muted-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm", children: children }) })] }));
105
105
  }
106
106
  function SidebarTrigger(props) {
107
- const { className, onClick, ...otherProps } = props;
107
+ const { className, onClick, "aria-label": ariaLabel = "Toggle Sidebar", ...otherProps } = props;
108
108
  const { toggleSidebar } = useSidebar();
109
109
  return (_jsx(Button, { "data-sidebar": "trigger", "data-slot": "sidebar-trigger", variant: "ghost", className: cn("size-7", className), onClick: (event) => {
110
110
  onClick?.(event);
111
111
  toggleSidebar();
112
- }, ...otherProps, icon: PanelLeftIcon, iconOnly: true, "aria-label": "Toggle Sidebar" }));
112
+ }, ...otherProps, icon: PanelLeftIcon, iconOnly: true, "aria-label": ariaLabel }));
113
113
  }
114
114
  function SidebarRail({ className, ...props }) {
115
115
  const { toggleSidebar } = useSidebar();
@@ -3,7 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { tv } from "tailwind-variants";
4
4
  import { cn } from "#style";
5
5
  export const skeletonConfig = {
6
- base: "animate-shimmer bg-gradient-to-r from-accent from-25% via-accent/10 to-accent to-75% bg-[length:220%_100%] " +
6
+ base: "animate-shimmer bg-gradient-to-r from-skeleton from-25% via-skeleton/10 to-skeleton to-75% bg-[length:220%_100%] " +
7
7
  "motion-reduce:animate-none",
8
8
  variants: {
9
9
  variant: {
@@ -0,0 +1,9 @@
1
+ import type { ToolUIPart } from "ai";
2
+ import type { ExplainFactToolResult } from "./types.js";
3
+ type ExplainFactResultDisplayProps = {
4
+ result: ExplainFactToolResult;
5
+ toolUIPart?: ToolUIPart;
6
+ };
7
+ export declare function ExplainFactResultDisplay(props: ExplainFactResultDisplayProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=ExplainFactResultDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExplainFactResultDisplay.d.ts","sourceRoot":"","sources":["../../../src/components/tool-invocation-card/ExplainFactResultDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAIrC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGrD,KAAK,6BAA6B,GAAG;IACnC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,2CAS5E"}
@@ -1,15 +1,15 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useMemo } from "react";
3
- import { RDFoxExplain } from "../rdfox-explain/RDFoxExplain.js";
3
+ import { ExplainFact } from "../explain-fact/ExplainFact.js";
4
4
  import { DefaultResultDisplay } from "./DefaultResultDisplay.js";
5
5
  import { normalize } from "#ldo-ui";
6
- export function ExplainRDFoxResultDisplay(props) {
6
+ export function ExplainFactResultDisplay(props) {
7
7
  const { result, toolUIPart } = props;
8
8
  const spo = useMemo(() => extractExplainSpo(toolUIPart?.input, result), [toolUIPart?.input, result]);
9
9
  if (!spo) {
10
10
  return _jsx(DefaultResultDisplay, { result: result, toolUIPart: toolUIPart });
11
11
  }
12
- return _jsx(RDFoxExplain, { mode: "compact", data: result, ...spo });
12
+ return _jsx(ExplainFact, { mode: "compact", data: result, ...spo });
13
13
  }
14
14
  function extractExplainSpo(input, result) {
15
15
  if (isExplainInput(input)) {
@@ -7,7 +7,7 @@ import { FileMessagePart } from "../chat-view/FileMessagePart.js";
7
7
  import { ActionPlanShowcaseCard } from "./ActionPlanShowcaseCard.js";
8
8
  import { DefaultResultDisplay } from "./DefaultResultDisplay.js";
9
9
  import { EntitySetCard } from "./EntitySetCard.js";
10
- import { ExplainRDFoxResultDisplay } from "./ExplainRDFoxResultDisplay.js";
10
+ import { ExplainFactResultDisplay } from "./ExplainFactResultDisplay.js";
11
11
  import { ListRulesResultDisplay } from "./ListRulesResultDisplay.js";
12
12
  import { ManageRulesResultDisplay } from "./ManageRulesResultDisplay.js";
13
13
  import { isChartToolResult, isErrorToolResult, isExplainRDFoxRulesResult, isGetRDFoxRulesToolResult, isManageRulesResult, isShowcaseToolResult, isWorkspaceArtifactResult, } from "./types.js";
@@ -64,7 +64,7 @@ export function ToolOutputRenderer(props) {
64
64
  .when(isChartToolResult, (chartResult) => _jsx(ChartResultDisplay, { result: chartResult }))
65
65
  .when(isManageRulesResult, (rulesResult) => _jsx(ManageRulesResultDisplay, { result: rulesResult }))
66
66
  .when(isGetRDFoxRulesToolResult, (rulesResult) => (_jsx(ListRulesResultDisplay, { result: rulesResult })))
67
- .when(isExplainRDFoxRulesResult, (explainResult) => (_jsx(ExplainRDFoxResultDisplay, { result: explainResult, toolUIPart: toolUIPart })))
67
+ .when(isExplainRDFoxRulesResult, (explainResult) => (_jsx(ExplainFactResultDisplay, { result: explainResult, toolUIPart: toolUIPart })))
68
68
  .when(isShowcaseToolResult, (showcaseResult) => (_jsx(ShowcaseResultDisplay, { result: showcaseResult })))
69
69
  .when(isWorkspaceArtifactResult, (artifactResult) => _jsx(WorkspaceArtifactResultDisplay, { result: artifactResult }))
70
70
  .when(isShowEntitiesResult, (entitySetResult) => _jsx(EntitySetCard, { result: entitySetResult }))
@@ -2,7 +2,7 @@ import { type ActionPlanShowcaseOutput, type ShowEntitiesOutput } from "@manta-e
2
2
  import type { GetRDFoxRulesOutputSuccess } from "@manta-eu/client/shared/tools/types";
3
3
  import { type WorkspaceArtifact } from "@manta-eu/client/shared/workspace-artifacts";
4
4
  import type { DatalogRule, InferenceVerificationResult } from "@manta-eu/datalog-parser";
5
- import type { RDFoxExplainOutput } from "#ldo-ui";
5
+ import type { ExplainFactOutput } from "#ldo-ui";
6
6
  export type ChartToolResult = {
7
7
  type: "chart";
8
8
  chartType: "line" | "area" | "bar" | "pie" | "scatter" | "radar" | "composed";
@@ -39,8 +39,8 @@ export type ShowEntitiesToolResult = Extract<ShowEntitiesOutput, {
39
39
  entityIris: string[];
40
40
  }>;
41
41
  export type GetRDFoxRulesToolResult = GetRDFoxRulesOutputSuccess;
42
- export type ExplainRDFoxRulesToolResult = RDFoxExplainOutput;
43
- export type ToolResult = ChartToolResult | ErrorToolResult | ManageRulesResult | ShowcaseToolResult | ShowEntitiesToolResult | GetRDFoxRulesToolResult | ExplainRDFoxRulesToolResult | WorkspaceArtifact | {
42
+ export type ExplainFactToolResult = ExplainFactOutput;
43
+ export type ToolResult = ChartToolResult | ErrorToolResult | ManageRulesResult | ShowcaseToolResult | ShowEntitiesToolResult | GetRDFoxRulesToolResult | ExplainFactToolResult | WorkspaceArtifact | {
44
44
  content: Array<{
45
45
  type: string;
46
46
  text: string;
@@ -55,7 +55,7 @@ export declare function isManageRulesResult(result: unknown): result is ManageRu
55
55
  export declare function isStagedManageRulesResult(result: unknown): result is StagedManageRulesResult;
56
56
  export declare function isShowcaseToolResult(result: unknown): result is ShowcaseToolResult;
57
57
  export declare function isGetRDFoxRulesToolResult(result: unknown): result is GetRDFoxRulesOutputSuccess;
58
- export declare function isExplainRDFoxRulesResult(result: unknown): result is ExplainRDFoxRulesToolResult;
58
+ export declare function isExplainRDFoxRulesResult(result: unknown): result is ExplainFactToolResult;
59
59
  export declare function hasVisualOutput(output: unknown): boolean;
60
60
  export declare function hasInlineVisualOutput(output: unknown): boolean;
61
61
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/tool-invocation-card/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/tool-invocation-card/types.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ export function isExplainRDFoxRulesResult(result) {
39
39
  return false;
40
40
  return entries.every((entry) => {
41
41
  const values = Array.isArray(entry) ? entry : [entry];
42
- return isPresent(values) && values.every(isRDFoxExplainFact);
42
+ return isPresent(values) && values.every(isExplainedFact);
43
43
  });
44
44
  }
45
45
  export function hasVisualOutput(output) {
@@ -59,7 +59,7 @@ export function hasInlineVisualOutput(output) {
59
59
  isShowEntitiesResult(output) ||
60
60
  isWorkspaceArtifactResult(output));
61
61
  }
62
- function isRDFoxExplainFact(value) {
62
+ function isExplainedFact(value) {
63
63
  if (typeof value !== "object" || value === null || Array.isArray(value))
64
64
  return false;
65
65
  if ("fact" in value && typeof value.fact !== "string")
@@ -1,3 +1,3 @@
1
1
  export { TreeMultiSelect, type TreeMultiSelectProps } from "./tree-multi-select.js";
2
- export { buildTreeRows, type TreeNode, type TreeRow, type TreeSelectItem } from "./tree-multi-select-rows.js";
2
+ export { buildTreeRows, compareNodes, type TreeNode, type TreeRow, type TreeSelectItem, } from "./tree-multi-select-rows.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/tree-multi-select/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/tree-multi-select/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EACL,aAAa,EACb,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,cAAc,GACpB,MAAM,0BAA0B,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export { TreeMultiSelect } from "./tree-multi-select.js";
2
- export { buildTreeRows } from "./tree-multi-select-rows.js";
2
+ export { buildTreeRows, compareNodes, } from "./tree-multi-select-rows.js";
@@ -17,7 +17,8 @@ export type TreeRow<T extends TreeNode> = {
17
17
  node: T;
18
18
  depth: number;
19
19
  };
20
- export declare function buildTreeRows<T extends TreeNode>(nodes: readonly T[]): TreeRow<T>[];
20
+ export declare function compareNodes(a: TreeNode, b: TreeNode): number;
21
+ export declare function buildTreeRows<T extends TreeNode>(nodes: readonly T[], compare?: (a: T, b: T) => number): TreeRow<T>[];
21
22
  export declare function isGroupHead(items: readonly TreeSelectItem[], index: number): boolean;
22
23
  export declare function subtreeIds(items: readonly TreeSelectItem[], headId: string): string[];
23
24
  export declare function filterTreeItems(items: readonly TreeSelectItem[], search: string): TreeSelectItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"tree-multi-select-rows.d.ts","sourceRoot":"","sources":["../../../src/components/tree-multi-select/tree-multi-select-rows.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,MAAM,MAAM,QAAQ,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,QAAQ,IAAI;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAcrE,wBAAgB,aAAa,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CA+BnF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAIpF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAYrF;AAkBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAuBlG;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAChC,cAAc,EAAE,CAWlB"}
1
+ {"version":3,"file":"tree-multi-select-rows.d.ts","sourceRoot":"","sources":["../../../src/components/tree-multi-select/tree-multi-select-rows.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,MAAM,MAAM,QAAQ,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,QAAQ,IAAI;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAMrE,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAK7D;AAGD,wBAAgB,aAAa,CAAC,CAAC,SAAS,QAAQ,EAC9C,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,OAAO,GAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAqB,GAC7C,OAAO,CAAC,CAAC,CAAC,EAAE,CA+Bd;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAIpF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAYrF;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CA4BlG;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAChC,cAAc,EAAE,CAWlB"}
@@ -4,15 +4,15 @@ export const treeSearchThreshold = 7;
4
4
  function nodeLabel(node) {
5
5
  return node.name ?? node.id;
6
6
  }
7
- function compareNodes(a, b) {
7
+ export function compareNodes(a, b) {
8
8
  const aNamed = a.name != null;
9
9
  const bNamed = b.name != null;
10
10
  if (aNamed !== bNamed)
11
11
  return aNamed ? -1 : 1;
12
12
  return nodeLabel(a).localeCompare(nodeLabel(b)) || a.id.localeCompare(b.id);
13
13
  }
14
- // Depth-first from the roots with label-sorted siblings; orphans and cycles still surface as roots.
15
- export function buildTreeRows(nodes) {
14
+ // Depth-first from the roots with siblings sorted by label by default; orphans and cycles still surface as roots.
15
+ export function buildTreeRows(nodes, compare = compareNodes) {
16
16
  const ids = new Set(nodes.map(({ id }) => id));
17
17
  const childrenByParent = new Map();
18
18
  const roots = [];
@@ -33,11 +33,11 @@ export function buildTreeRows(nodes) {
33
33
  return;
34
34
  visited.add(node.id);
35
35
  rows.push({ node, depth });
36
- for (const child of [...(childrenByParent.get(node.id) ?? [])].sort(compareNodes)) {
36
+ for (const child of [...(childrenByParent.get(node.id) ?? [])].sort(compare)) {
37
37
  visit(child, depth + 1);
38
38
  }
39
39
  }
40
- for (const root of [...roots].sort(compareNodes)) {
40
+ for (const root of [...roots].sort(compare)) {
41
41
  visit(root, 0);
42
42
  }
43
43
  for (const node of nodes) {
@@ -64,21 +64,7 @@ export function subtreeIds(items, headId) {
64
64
  }
65
65
  return ids;
66
66
  }
67
- function ancestorIndexes(items, index) {
68
- const indexes = [];
69
- const row = items[index];
70
- if (!row)
71
- return indexes;
72
- let depth = row.depth;
73
- for (let previous = index - 1; previous >= 0 && depth > 0; previous--) {
74
- const candidate = items[previous];
75
- if (candidate && candidate.depth < depth) {
76
- indexes.push(previous);
77
- depth = candidate.depth;
78
- }
79
- }
80
- return indexes;
81
- }
67
+ // One pass: a match keeps its ancestors, tracked on a stack, and every row below it.
82
68
  export function filterTreeItems(items, search) {
83
69
  const term = search.trim().toLowerCase();
84
70
  if (!isPresent(term))
@@ -87,19 +73,23 @@ export function filterTreeItems(items, search) {
87
73
  (item.caption ?? "").toLowerCase().includes(term) ||
88
74
  item.id.toLowerCase().includes(term);
89
75
  const kept = new Set();
76
+ const ancestors = [];
77
+ let matchedDepth = null;
90
78
  items.forEach((item, index) => {
91
- if (!matches(item))
92
- return;
93
- kept.add(index);
94
- for (const ancestor of ancestorIndexes(items, index))
95
- kept.add(ancestor);
96
- const itemDepth = item.depth;
97
- for (let next = index + 1; next < items.length; next++) {
98
- const descendant = items[next];
99
- if (!descendant || descendant.depth <= itemDepth)
100
- break;
101
- kept.add(next);
79
+ while ((ancestors.at(-1)?.depth ?? -1) >= item.depth)
80
+ ancestors.pop();
81
+ if (matchedDepth != null && item.depth <= matchedDepth)
82
+ matchedDepth = null;
83
+ if (matchedDepth != null) {
84
+ kept.add(index);
85
+ }
86
+ else if (matches(item)) {
87
+ kept.add(index);
88
+ for (const ancestor of ancestors)
89
+ kept.add(ancestor.index);
90
+ matchedDepth = item.depth;
102
91
  }
92
+ ancestors.push({ index, depth: item.depth });
103
93
  });
104
94
  return items.filter((_, index) => kept.has(index));
105
95
  }