@manta-eu/react 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. package/dist/action-plan-changes/ActionPlanChangesTable.js +1 -1
  2. package/dist/action-plan-changes/build-change-tree.js.map +1 -1
  3. package/dist/ad-preview/AdPluralDisplay.js +1 -1
  4. package/dist/ad-preview/GoogleAdGroupAdSingularDisplay.js +1 -3
  5. package/dist/ad-preview/GoogleAdGroupAdSingularDisplay.js.map +1 -1
  6. package/dist/ad-preview/MetaAdPreview.js +1 -1
  7. package/dist/ad-preview/meta-ad-copy.d.ts.map +1 -1
  8. package/dist/ad-preview/meta-ad-model.js.map +1 -1
  9. package/dist/components/ErrorBoundary.d.ts.map +1 -1
  10. package/dist/components/ad-preview/business-avatar.d.ts.map +1 -1
  11. package/dist/components/ad-preview/business-identity.d.ts.map +1 -1
  12. package/dist/components/ad-preview/business-info.d.ts.map +1 -1
  13. package/dist/components/ad-preview/facebook/carousel.d.ts.map +1 -1
  14. package/dist/components/ad-preview/facebook/constants.d.ts.map +1 -1
  15. package/dist/components/ad-preview/facebook/header.js +1 -1
  16. package/dist/components/ad-preview/facebook/instream-reels.d.ts.map +1 -1
  17. package/dist/components/ad-preview/facebook/marketplace.d.ts.map +1 -1
  18. package/dist/components/ad-preview/google/search.js +1 -1
  19. package/dist/components/ad-preview/instagram/feed.js +1 -1
  20. package/dist/components/ad-preview/instagram/search-result.d.ts.map +1 -1
  21. package/dist/components/ad-preview/use-scroll-navigation.d.ts.map +1 -1
  22. package/dist/components/ai-elements/conversation.js +1 -1
  23. package/dist/components/badge/index.d.ts.map +1 -1
  24. package/dist/components/badge/index.js +1 -1
  25. package/dist/components/banner/index.d.ts.map +1 -1
  26. package/dist/components/branding/MantaGridAnimation.js +1 -1
  27. package/dist/components/breadcrumbs/index.js +1 -1
  28. package/dist/components/button/index.d.ts.map +1 -1
  29. package/dist/components/calendar/index.js +2 -2
  30. package/dist/components/card/index.d.ts.map +1 -1
  31. package/dist/components/chart/ForecastEventCard.js +1 -1
  32. package/dist/components/chart/ForecastHoverCard.js +1 -1
  33. package/dist/components/chart/annotations.d.ts.map +1 -1
  34. package/dist/components/chart/chart-colors.d.ts.map +1 -1
  35. package/dist/components/chart/chart-schemas.d.ts +599 -599
  36. package/dist/components/chart/chart-schemas.d.ts.map +1 -1
  37. package/dist/components/chart/chart-schemas.js.map +1 -1
  38. package/dist/components/chart/chart.js +1 -1
  39. package/dist/components/chart/forecast-model.d.ts +1 -1
  40. package/dist/components/chart/forecast-model.d.ts.map +1 -1
  41. package/dist/components/chart/forecast.d.ts.map +1 -1
  42. package/dist/components/chat/chat-input/index.d.ts +1 -1
  43. package/dist/components/chat/chat-input/index.js +1 -1
  44. package/dist/components/chat/chat-input-footer/index.js +1 -1
  45. package/dist/components/chat/chat-reasoning/index.js +1 -1
  46. package/dist/components/chat-view/Chat.js +1 -1
  47. package/dist/components/chat-view/FileMessagePart.js +1 -1
  48. package/dist/components/chat-view/GraphContextPanel.js +1 -1
  49. package/dist/components/chat-view/MessageItem.js +1 -1
  50. package/dist/components/command/index.d.ts +15 -15
  51. package/dist/components/command/index.d.ts.map +1 -1
  52. package/dist/components/command/index.js +1 -1
  53. package/dist/components/dropdown/index.js +1 -1
  54. package/dist/components/graph/AgentsGraphListRow.js +1 -1
  55. package/dist/components/input/ai-action-buttons.js +1 -1
  56. package/dist/components/input/input-date-range.js +1 -1
  57. package/dist/components/input/input-field.d.ts.map +1 -1
  58. package/dist/components/input/input-field.js +1 -1
  59. package/dist/components/input/textarea.d.ts.map +1 -1
  60. package/dist/components/input/textarea.js +2 -2
  61. package/dist/components/input-otp/index.d.ts +6 -6
  62. package/dist/components/input-otp/index.d.ts.map +1 -1
  63. package/dist/components/layouts/InstallPrompt.js +1 -1
  64. package/dist/components/layouts/KnowledgeGraphStartupGate.d.ts +1 -1
  65. package/dist/components/layouts/RouteLayout.js +1 -1
  66. package/dist/components/layouts/page/PageHeaderActions.js +1 -1
  67. package/dist/components/loader/index.d.ts.map +1 -1
  68. package/dist/components/manta-logo/index.d.ts.map +1 -1
  69. package/dist/components/modal/index.d.ts.map +1 -1
  70. package/dist/components/onboarding/SidebarSpotlight.js +1 -1
  71. package/dist/components/pill/index.d.ts.map +1 -1
  72. package/dist/components/planning/ActionPlanDetailView.js +1 -1
  73. package/dist/components/planning/ManualActionList.d.ts +1 -1
  74. package/dist/components/planning/PlanDetailFooter.js +1 -1
  75. package/dist/components/progress/index.d.ts.map +1 -1
  76. package/dist/components/radio/index.d.ts.map +1 -1
  77. package/dist/components/rdf-insights/CampaignPerformanceSummary.js +1 -1
  78. package/dist/components/rdf-insights/InsightCard.js +1 -1
  79. package/dist/components/rdf-insights/ProductProfitability.js +1 -1
  80. package/dist/components/rdf-insights/ProductSalesRanking.js +1 -1
  81. package/dist/components/rdf-insights/ProductVariantsTable.js +1 -1
  82. package/dist/components/rdf-insights/RoasBenchmark.js +1 -1
  83. package/dist/components/select/index.d.ts.map +1 -1
  84. package/dist/components/sheet/index.d.ts.map +1 -1
  85. package/dist/components/sidebar/company-picker.js +1 -1
  86. package/dist/components/sidebar/nav-menu.js +1 -1
  87. package/dist/components/skeleton/index.d.ts +4 -4
  88. package/dist/components/skeleton/index.d.ts.map +1 -1
  89. package/dist/components/status/index.d.ts.map +1 -1
  90. package/dist/components/table/index.d.ts.map +1 -1
  91. package/dist/components/table/index.js.map +1 -1
  92. package/dist/components/table/use-table-state.js.map +1 -1
  93. package/dist/components/table-skeleton/index.js +1 -1
  94. package/dist/components/tabs/index.d.ts.map +1 -1
  95. package/dist/components/thinking/index.d.ts.map +1 -1
  96. package/dist/components/toast/index.d.ts.map +1 -1
  97. package/dist/components/tool-invocation-card/DefaultResultDisplay.js +1 -1
  98. package/dist/components/tool-invocation-card/ToolOutputRenderer.js +1 -1
  99. package/dist/components/tree-multi-select/tree-multi-select-rows.js.map +1 -1
  100. package/dist/datastore-picker/DatastoreRow.js +1 -1
  101. package/dist/easing.d.ts.map +1 -1
  102. package/dist/entity-tree/EntityRelationTree.js +1 -1
  103. package/dist/explain-fact/EntityChip.js +1 -1
  104. package/dist/explain-fact/conclusion/ConclusionSubtitle.js +1 -1
  105. package/dist/explain-fact/inspector/InspectorBindings.js +1 -1
  106. package/dist/explain-fact/inspector/SupportsSection.js +1 -1
  107. package/dist/explain-fact/proof-tree/ProofRowContent.js +1 -1
  108. package/dist/explain-fact/proof-tree/ProofRowValue.js +1 -1
  109. package/dist/globals.css +6 -0
  110. package/dist/graph/GraphContextPanel.js +1 -1
  111. package/dist/graph/GraphControls.d.ts +1 -1
  112. package/dist/graph/GraphControls.d.ts.map +1 -1
  113. package/dist/graph/GraphControls.js +1 -1
  114. package/dist/graph/GraphErrorBoundary.d.ts +1 -1
  115. package/dist/graph/GraphErrorBoundary.d.ts.map +1 -1
  116. package/dist/graph/NodeContextMenu.d.ts +1 -1
  117. package/dist/graph/NodeContextMenu.d.ts.map +1 -1
  118. package/dist/graph/NodeContextMenu.js +1 -1
  119. package/dist/graph/NodeDetailPanel/PropertyDiffView.js +1 -1
  120. package/dist/graph/custom-nodes.d.ts +4 -4
  121. package/dist/graph/custom-nodes.d.ts.map +1 -1
  122. package/dist/graph/custom-nodes.js +1 -1
  123. package/dist/graph/graph-layout.js.map +1 -1
  124. package/dist/graph/graph-list-utils.js.map +1 -1
  125. package/dist/graph/graph-model.js.map +1 -1
  126. package/dist/graph/graph-store.js.map +1 -1
  127. package/dist/graph/nodes/AdsDailyReportTemplateView.d.ts +1 -1
  128. package/dist/graph/nodes/AdsDailyReportTemplateView.d.ts.map +1 -1
  129. package/dist/graph/nodes/AttioCallRecordingView.d.ts +1 -1
  130. package/dist/graph/nodes/AttioCallRecordingView.d.ts.map +1 -1
  131. package/dist/graph/nodes/AttioCompanyView.d.ts +1 -1
  132. package/dist/graph/nodes/AttioCompanyView.d.ts.map +1 -1
  133. package/dist/graph/nodes/AttioDealView.d.ts +1 -1
  134. package/dist/graph/nodes/AttioDealView.d.ts.map +1 -1
  135. package/dist/graph/nodes/AttioMeetingView.d.ts +1 -1
  136. package/dist/graph/nodes/AttioMeetingView.d.ts.map +1 -1
  137. package/dist/graph/nodes/AttioNoteView.d.ts +1 -1
  138. package/dist/graph/nodes/AttioNoteView.d.ts.map +1 -1
  139. package/dist/graph/nodes/AttioTaskView.d.ts +1 -1
  140. package/dist/graph/nodes/AttioTaskView.d.ts.map +1 -1
  141. package/dist/graph/nodes/BrandAssetAnalysisActionView.d.ts +1 -1
  142. package/dist/graph/nodes/BrandAssetAnalysisActionView.d.ts.map +1 -1
  143. package/dist/graph/nodes/BrandAssetAnalysisView.d.ts +1 -1
  144. package/dist/graph/nodes/BrandAssetAnalysisView.d.ts.map +1 -1
  145. package/dist/graph/nodes/BrandFontSuggestionView.d.ts +1 -1
  146. package/dist/graph/nodes/BrandFontSuggestionView.d.ts.map +1 -1
  147. package/dist/graph/nodes/BrandGuidelinesView.d.ts +1 -1
  148. package/dist/graph/nodes/BrandGuidelinesView.d.ts.map +1 -1
  149. package/dist/graph/nodes/ConnectedAccountCard.d.ts +1 -1
  150. package/dist/graph/nodes/ConnectedAccountCard.d.ts.map +1 -1
  151. package/dist/graph/nodes/CoresignalCompanyView.d.ts +1 -1
  152. package/dist/graph/nodes/CoresignalCompanyView.d.ts.map +1 -1
  153. package/dist/graph/nodes/CoresignalEmployeeView.d.ts +1 -1
  154. package/dist/graph/nodes/CoresignalEmployeeView.d.ts.map +1 -1
  155. package/dist/graph/nodes/CoresignalExperienceView.d.ts +1 -1
  156. package/dist/graph/nodes/CoresignalExperienceView.d.ts.map +1 -1
  157. package/dist/graph/nodes/CoresignalJobView.d.ts +1 -1
  158. package/dist/graph/nodes/CoresignalJobView.d.ts.map +1 -1
  159. package/dist/graph/nodes/CoresignalKeyExecutiveDepartureView.d.ts +1 -1
  160. package/dist/graph/nodes/CoresignalKeyExecutiveDepartureView.d.ts.map +1 -1
  161. package/dist/graph/nodes/EntityCardShell.d.ts +1 -1
  162. package/dist/graph/nodes/EntityCardShell.d.ts.map +1 -1
  163. package/dist/graph/nodes/Ga4DailyOverviewView.d.ts +1 -1
  164. package/dist/graph/nodes/Ga4DailyOverviewView.d.ts.map +1 -1
  165. package/dist/graph/nodes/Ga4FunnelEventCountView.d.ts +1 -1
  166. package/dist/graph/nodes/Ga4FunnelEventCountView.d.ts.map +1 -1
  167. package/dist/graph/nodes/Ga4TrafficSourceView.d.ts +1 -1
  168. package/dist/graph/nodes/Ga4TrafficSourceView.d.ts.map +1 -1
  169. package/dist/graph/nodes/GoogleAdGroupAdView.d.ts +1 -1
  170. package/dist/graph/nodes/GoogleAdGroupAdView.d.ts.map +1 -1
  171. package/dist/graph/nodes/GoogleAdGroupCriterionView.d.ts +1 -1
  172. package/dist/graph/nodes/GoogleAdGroupCriterionView.d.ts.map +1 -1
  173. package/dist/graph/nodes/GoogleAdGroupView.d.ts +1 -1
  174. package/dist/graph/nodes/GoogleAdGroupView.d.ts.map +1 -1
  175. package/dist/graph/nodes/GoogleCampaignBudgetView.d.ts +1 -1
  176. package/dist/graph/nodes/GoogleCampaignBudgetView.d.ts.map +1 -1
  177. package/dist/graph/nodes/GoogleCampaignCriterionView.d.ts +1 -1
  178. package/dist/graph/nodes/GoogleCampaignCriterionView.d.ts.map +1 -1
  179. package/dist/graph/nodes/GoogleCampaignInsightView.d.ts +1 -1
  180. package/dist/graph/nodes/GoogleCampaignInsightView.d.ts.map +1 -1
  181. package/dist/graph/nodes/GoogleCampaignView.d.ts +1 -1
  182. package/dist/graph/nodes/GoogleCampaignView.d.ts.map +1 -1
  183. package/dist/graph/nodes/GoogleCustomerClientView.d.ts +1 -1
  184. package/dist/graph/nodes/GoogleCustomerClientView.d.ts.map +1 -1
  185. package/dist/graph/nodes/GoogleCustomerView.d.ts +1 -1
  186. package/dist/graph/nodes/GoogleCustomerView.d.ts.map +1 -1
  187. package/dist/graph/nodes/GoogleSearchTermInsightView.d.ts +1 -1
  188. package/dist/graph/nodes/GoogleSearchTermInsightView.d.ts.map +1 -1
  189. package/dist/graph/nodes/LinkedinAdAccountView.d.ts +1 -1
  190. package/dist/graph/nodes/LinkedinAdAccountView.d.ts.map +1 -1
  191. package/dist/graph/nodes/MetaAdAccountActivityView.d.ts +1 -1
  192. package/dist/graph/nodes/MetaAdAccountActivityView.d.ts.map +1 -1
  193. package/dist/graph/nodes/MetaAdAccountView.d.ts +1 -1
  194. package/dist/graph/nodes/MetaAdAccountView.d.ts.map +1 -1
  195. package/dist/graph/nodes/MetaAdImageView.d.ts +1 -1
  196. package/dist/graph/nodes/MetaAdImageView.d.ts.map +1 -1
  197. package/dist/graph/nodes/MetaAdSetView.d.ts +1 -1
  198. package/dist/graph/nodes/MetaAdSetView.d.ts.map +1 -1
  199. package/dist/graph/nodes/MetaAdView.d.ts +1 -1
  200. package/dist/graph/nodes/MetaAdView.d.ts.map +1 -1
  201. package/dist/graph/nodes/MetaCampaignView.d.ts +1 -1
  202. package/dist/graph/nodes/MetaCampaignView.d.ts.map +1 -1
  203. package/dist/graph/nodes/MetaInsightView.d.ts +1 -1
  204. package/dist/graph/nodes/MetaInsightView.d.ts.map +1 -1
  205. package/dist/graph/nodes/RenderedTemplateView.d.ts +1 -1
  206. package/dist/graph/nodes/RenderedTemplateView.d.ts.map +1 -1
  207. package/dist/graph/nodes/SchemaActionView.d.ts +1 -1
  208. package/dist/graph/nodes/SchemaActionView.d.ts.map +1 -1
  209. package/dist/graph/nodes/ShopifyShopView.d.ts +1 -1
  210. package/dist/graph/nodes/ShopifyShopView.d.ts.map +1 -1
  211. package/dist/graph/nodes/SlackChannelView.d.ts +1 -1
  212. package/dist/graph/nodes/SlackChannelView.d.ts.map +1 -1
  213. package/dist/graph/nodes/SlackMessageView.d.ts +1 -1
  214. package/dist/graph/nodes/SlackMessageView.d.ts.map +1 -1
  215. package/dist/graph/nodes/SlackUserView.d.ts +1 -1
  216. package/dist/graph/nodes/SlackUserView.d.ts.map +1 -1
  217. package/dist/graph/nodes/SlackWorkspaceView.d.ts +1 -1
  218. package/dist/graph/nodes/SlackWorkspaceView.d.ts.map +1 -1
  219. package/dist/graph/nodes/attio-shared.d.ts +1 -1
  220. package/dist/graph/nodes/attio-shared.d.ts.map +1 -1
  221. package/dist/graph/nodes/attio-shared.js +1 -1
  222. package/dist/graph/nodes/brand-shared.d.ts.map +1 -1
  223. package/dist/graph/nodes/card-rows.js +1 -1
  224. package/dist/graph/nodes/google-campaign-utils.d.ts.map +1 -1
  225. package/dist/graph/nodes/insight-shared.d.ts +1 -1
  226. package/dist/graph/nodes/insight-shared.d.ts.map +1 -1
  227. package/dist/graph/special-nodes/BaseNode.d.ts +2 -2
  228. package/dist/graph/special-nodes/BaseNode.d.ts.map +1 -1
  229. package/dist/graph/special-nodes/BaseNode.js +1 -1
  230. package/dist/graph/special-nodes/DynamicNode.d.ts +1 -1
  231. package/dist/graph/special-nodes/DynamicNode.d.ts.map +1 -1
  232. package/dist/graph/special-nodes/EntityValueChip.js +1 -1
  233. package/dist/graph/special-nodes/GenericNode.d.ts +1 -1
  234. package/dist/graph/special-nodes/GenericNode.d.ts.map +1 -1
  235. package/dist/graph/special-nodes/GenericView.d.ts +1 -1
  236. package/dist/graph/special-nodes/GenericView.d.ts.map +1 -1
  237. package/dist/graph/special-nodes/NodeFrame.d.ts +1 -1
  238. package/dist/graph/special-nodes/NodeFrame.d.ts.map +1 -1
  239. package/dist/graph/special-nodes/NodeFrame.js +1 -1
  240. package/dist/graph/special-nodes/TypeSummaryNode.d.ts +1 -1
  241. package/dist/graph/special-nodes/TypeSummaryNode.d.ts.map +1 -1
  242. package/dist/graph/special-nodes/TypeSummaryNode.js +1 -1
  243. package/dist/graph/special-nodes/card-facts.js.map +1 -1
  244. package/dist/hooks/resolved-terms.d.ts +1 -0
  245. package/dist/hooks/resolved-terms.d.ts.map +1 -1
  246. package/dist/hooks/resolved-terms.js +2 -1
  247. package/dist/hooks/resolved-terms.js.map +1 -1
  248. package/dist/hooks/use-action-plans-list.d.ts.map +1 -1
  249. package/dist/hooks/use-action-plans-list.js.map +1 -1
  250. package/dist/hooks/use-activity-feed.js.map +1 -1
  251. package/dist/hooks/use-connection-problems.d.ts.map +1 -1
  252. package/dist/hooks/use-conversation-starters.d.ts +2 -2
  253. package/dist/hooks/use-entity-relations.d.ts.map +1 -1
  254. package/dist/hooks/use-entity.d.ts.map +1 -1
  255. package/dist/hooks/use-latest-rendered-template.d.ts.map +1 -1
  256. package/dist/hooks/use-manual-actions.d.ts.map +1 -1
  257. package/dist/hooks/use-manual-actions.js.map +1 -1
  258. package/dist/hooks/useActionGraph.d.ts.map +1 -1
  259. package/dist/hooks/useActionGraph.js.map +1 -1
  260. package/dist/hooks/useActionPlanDetail.d.ts +2 -2
  261. package/dist/hooks/useActionPlanDetail.d.ts.map +1 -1
  262. package/dist/hooks/useAuth.d.ts +1 -1
  263. package/dist/hooks/useAuth.d.ts.map +1 -1
  264. package/dist/hooks/useAuth.js +3 -1
  265. package/dist/hooks/useAuth.js.map +1 -1
  266. package/dist/hooks/useConversationGraphContext.js.map +1 -1
  267. package/dist/hooks/useConversations.js.map +1 -1
  268. package/dist/hooks/useDatastoreSelection.js.map +1 -1
  269. package/dist/hooks/useValidateActionPlan.d.ts.map +1 -1
  270. package/dist/lib/build-config.js.map +1 -1
  271. package/dist/lib/default-map.d.ts.map +1 -1
  272. package/dist/lib/default-map.js.map +1 -1
  273. package/dist/lib/merge-refs.d.ts.map +1 -1
  274. package/dist/lib/rdf/insights.js.map +1 -1
  275. package/dist/lib/structured-data/schema-converter.d.ts +2 -2
  276. package/dist/lib/structured-data/schema-converter.d.ts.map +1 -1
  277. package/dist/lib/structured-data/schema-converter.js.map +1 -1
  278. package/dist/lib/tanstack-query.js +1 -1
  279. package/dist/lib/tanstack-query.js.map +1 -1
  280. package/dist/lib/term-batcher.d.ts +3 -1
  281. package/dist/lib/term-batcher.d.ts.map +1 -1
  282. package/dist/lib/term-batcher.js +2 -2
  283. package/dist/lib/term-batcher.js.map +1 -1
  284. package/dist/lib/use-can-scroll.d.ts.map +1 -1
  285. package/dist/lib/use-color-palette.d.ts.map +1 -1
  286. package/dist/lib/use-toggle-set.js.map +1 -1
  287. package/dist/lib/utils.js +1 -1
  288. package/dist/ontology/OntologyTermText.js +1 -1
  289. package/dist/providers/ActiveChatProvider.d.ts +1 -1
  290. package/dist/providers/ActiveDatastoreProvider.js.map +1 -1
  291. package/dist/providers/ChatManagerProvider.js.map +1 -1
  292. package/dist/providers/commands/CommandContext.js +1 -1
  293. package/dist/routes/activity/components/ActivityTable.js +1 -1
  294. package/dist/routes/activity/detail/ActivityDetail.d.ts.map +1 -1
  295. package/dist/routes/activity/detail/ActivityDetail.js +1 -1
  296. package/dist/routes/activity/detail/ActivityStepsRail.js +1 -1
  297. package/dist/routes/activity/detail/ActivityTimeline.js +1 -1
  298. package/dist/routes/data-explorer/class-properties.js.map +1 -1
  299. package/dist/routes/data-explorer/class-relations.d.ts +2 -2
  300. package/dist/routes/data-explorer/components/DetailHeader.js +1 -1
  301. package/dist/routes/data-explorer/components/DetailHeader.js.map +1 -1
  302. package/dist/routes/data-explorer/components/SegmentBuilder.js +1 -1
  303. package/dist/routes/data-explorer/components/class-detail/ClassDetail.js +1 -1
  304. package/dist/routes/data-explorer/components/class-detail/CreateRecordAction.js +1 -1
  305. package/dist/routes/data-explorer/components/class-detail/Overview.js +1 -1
  306. package/dist/routes/data-explorer/components/ontology-coverage/CoverageNamespaceRail.js +1 -1
  307. package/dist/routes/data-explorer/components/ontology-coverage/CoverageSkeleton.js +1 -1
  308. package/dist/routes/data-explorer/components/record-detail/CreateAction.js +1 -1
  309. package/dist/routes/data-explorer/components/record-detail/RecordActions.d.ts.map +1 -1
  310. package/dist/routes/data-explorer/components/record-detail/RecordActions.js +12 -9
  311. package/dist/routes/data-explorer/components/record-detail/RecordActions.js.map +1 -1
  312. package/dist/routes/data-explorer/components/record-detail/RecordDetail.js +1 -1
  313. package/dist/routes/data-explorer/components/record-detail/RecordRefresh.d.ts +7 -0
  314. package/dist/routes/data-explorer/components/record-detail/RecordRefresh.d.ts.map +1 -0
  315. package/dist/routes/data-explorer/components/record-detail/RecordRefresh.js +104 -0
  316. package/dist/routes/data-explorer/components/record-detail/RecordRefresh.js.map +1 -0
  317. package/dist/routes/data-explorer/coverage.d.ts.map +1 -1
  318. package/dist/routes/data-explorer/sparql-client.js.map +1 -1
  319. package/dist/routes/datastores/components/DatastoreTableSkeleton.js +1 -1
  320. package/dist/routes/datastores/components/DatastoresToolbar.js +1 -1
  321. package/dist/routes/datastores/components/LinkUnlinkedDatastoreDialog.js +1 -1
  322. package/dist/routes/datastores/components/UnlinkedDatastoresPanel.js +1 -1
  323. package/dist/routes/datastores/hooks/useDatastoreColumns.d.ts +2 -2
  324. package/dist/routes/datastores/hooks/useDatastoreColumns.d.ts.map +1 -1
  325. package/dist/routes/datastores/hooks/useDatastoreColumns.js +2 -4
  326. package/dist/routes/datastores/hooks/useDatastoreColumns.js.map +1 -1
  327. package/dist/routes/datastores/index.js +1 -1
  328. package/dist/routes/integrations/catalog-shape.js.map +1 -1
  329. package/dist/routes/integrations/components/ConnectionRow.js +1 -1
  330. package/dist/routes/integrations/components/ProviderLogo.d.ts.map +1 -1
  331. package/dist/routes/integrations/components/connect-forms/DashConnectForm.js.map +1 -1
  332. package/dist/routes/integrations/components/connect-forms/MetaAdsConnectForm.js.map +1 -1
  333. package/dist/routes/integrations/components/connect-forms/MicrosoftAdsConnectForm.js.map +1 -1
  334. package/dist/routes/integrations/components/connect-forms/google-ads-account-tree.js.map +1 -1
  335. package/dist/routes/integrations/components/connect-forms/google-analytics-property-tree.js.map +1 -1
  336. package/dist/routes/integrations/types.d.ts.map +1 -1
  337. package/dist/routes/memories/components/ChangeScopeDialog.js +1 -1
  338. package/dist/routes/memories/components/ConflictMemoryCard.js +1 -1
  339. package/dist/routes/memories/components/ConsolidationReviewDialog.js +1 -1
  340. package/dist/routes/memories/components/LoadingSkeleton.js +1 -1
  341. package/dist/routes/memories/components/MemoriesFilters.js +1 -1
  342. package/dist/routes/memories/components/MemoriesTabPanel.js +1 -1
  343. package/dist/routes/memories/components/MemoryActions.js +1 -1
  344. package/dist/routes/memories/components/MemoryFields.js +1 -1
  345. package/dist/routes/memories/components/MemoryFormDialog.js +1 -1
  346. package/dist/routes/memories/expiry-utils.js.map +1 -1
  347. package/dist/routes/memories/hooks/useDuplicateDetection.js.map +1 -1
  348. package/dist/routes/memories/hooks/useLiveContext.d.ts.map +1 -1
  349. package/dist/routes/memories/hooks/useMemoryColumns.d.ts.map +1 -1
  350. package/dist/routes/memories/hooks/useMemoryColumns.js +1 -1
  351. package/dist/routes/memories/hooks/useMemoryTable.js.map +1 -1
  352. package/dist/routes/plans/components/ActionPlanPage.js +1 -1
  353. package/dist/routes/plans/components/ActionPlansFilters.js +1 -1
  354. package/dist/routes/plans/components/ActionPlansPage.js +1 -1
  355. package/dist/routes/plans/components/ActionPlansTableBody.js +1 -1
  356. package/dist/routes/plans/components/actionPlansTableConfig.d.ts +7 -7
  357. package/dist/routes/plans/components/actionPlansTableConfig.d.ts.map +1 -1
  358. package/dist/routes/plans/index.js +1 -1
  359. package/dist/routes/rules/components/RuleAffectedActionPlansSection.js +1 -1
  360. package/dist/routes/rules/components/RuleDetailsPage.js +1 -1
  361. package/dist/routes/rules/components/RuleProducersSection.js +1 -1
  362. package/dist/routes/rules/components/RuleSetup.js +1 -1
  363. package/dist/routes/rules/components/RulesOverviewPage.js +1 -1
  364. package/dist/routes/rules/components/datalog-editor/FactsPreview.js +1 -1
  365. package/dist/routes/rules/components/datalog-editor/SparqlQueryPanel.js +1 -1
  366. package/dist/routes/rules/components/rule-actionability.js.map +1 -1
  367. package/dist/rules/RuleNarrativeSegments.js +1 -1
  368. package/dist/rules/datalog-ast/DatalogAtomComponent.js +1 -1
  369. package/dist/rules/datalog-ast/DatalogBodyFormulaComponent.js +1 -1
  370. package/dist/rules/datalog-ast/DatalogExpressionRenderer.js +1 -1
  371. package/dist/rules/datalog-ast/DatalogTermComponent.js +1 -1
  372. package/dist/rules/datalog-cache.js.map +1 -1
  373. package/dist/rules/rule-narrative-format.d.ts.map +1 -1
  374. package/dist/rules/rule-narrative-renderer.js.map +1 -1
  375. package/dist/style.js +1 -1
  376. package/dist/templates/slack-to-markdown.js +1 -1
  377. package/package.json +13 -12
  378. package/src/components/badge/index.tsx +1 -1
  379. package/src/components/calendar/index.tsx +2 -2
  380. package/src/components/input/input-field.tsx +1 -1
  381. package/src/components/input/textarea.tsx +1 -1
  382. package/src/components/table/index.tsx +0 -1
  383. package/src/hooks/resolved-terms.ts +6 -1
  384. package/src/hooks/useAuth.ts +3 -1
  385. package/src/lib/chat-types.ts +1 -1
  386. package/src/lib/tanstack-query.ts +2 -2
  387. package/src/lib/term-batcher.ts +3 -3
  388. package/src/lib/utils.ts +1 -1
  389. package/src/routes/data-explorer/components/DetailHeader.tsx +4 -4
  390. package/src/routes/data-explorer/components/record-detail/RecordActions.tsx +22 -16
  391. package/src/routes/data-explorer/components/record-detail/RecordRefresh.tsx +150 -0
  392. package/src/rules/datalog-ast/DatalogBodyFormulaComponent.tsx +1 -1
  393. package/src/rules/datalog-ast/DatalogTermComponent.tsx +1 -1
  394. package/src/shacl/shacl-form-types.ts +1 -1
  395. package/src/style.ts +1 -1
  396. package/src/templates/slack-to-markdown.ts +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manta-eu/react",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
4
4
  "description": "The Manta design system, knowledge-graph UI and agent components",
5
5
  "homepage": "https://developers.manta.eu",
6
6
  "keywords": [
@@ -1139,12 +1139,12 @@
1139
1139
  "usehooks-ts": "^3.1.1",
1140
1140
  "zod": "^4.5.0",
1141
1141
  "zustand": "^5.0.2",
1142
- "@manta-eu/auth": "0.8.0",
1143
- "@manta-eu/client": "0.8.0",
1144
- "@manta-eu/datalog-parser": "0.8.0",
1145
- "@manta-eu/ldo": "0.8.0",
1146
- "@manta-eu/rdf-lib": "0.8.0",
1147
- "@manta-eu/lib": "0.8.0"
1142
+ "@manta-eu/auth": "0.8.1",
1143
+ "@manta-eu/client": "0.8.1",
1144
+ "@manta-eu/lib": "0.8.1",
1145
+ "@manta-eu/rdf-lib": "0.8.1",
1146
+ "@manta-eu/datalog-parser": "0.8.1",
1147
+ "@manta-eu/ldo": "0.8.1"
1148
1148
  },
1149
1149
  "peerDependencies": {
1150
1150
  "@ulb-darmstadt/shacl-form": "^2.1.1-rc1",
@@ -1166,10 +1166,10 @@
1166
1166
  "@types/react": "^19.2.7",
1167
1167
  "@types/react-dom": "^19.2.3",
1168
1168
  "ajv": "^8.17.1",
1169
- "eslint": "^9.39.2",
1170
1169
  "happy-dom": "^15.11.7",
1171
1170
  "jsdom": "^28.1.0",
1172
1171
  "next-themes": "^0.4.6",
1172
+ "oxlint": "1.90.0",
1173
1173
  "postcss-cli": "^11.0.0",
1174
1174
  "react": "^19.2.3",
1175
1175
  "react-dom": "^19.2.3",
@@ -1177,11 +1177,11 @@
1177
1177
  "storybook": "^10.6.4",
1178
1178
  "tailwindcss": "^4.3.3",
1179
1179
  "tsc-alias": "^1.9.5",
1180
- "typescript": "^5.9.3",
1180
+ "typescript": "^7.0.2",
1181
1181
  "uuid": "^13.0.0",
1182
1182
  "vite": "^8.3.5",
1183
1183
  "vitest": "^4.1.8",
1184
- "@manta-eu/eslint-config": "0.1.0"
1184
+ "@manta-eu/oxlint-config": "0.1.0"
1185
1185
  },
1186
1186
  "imports": {
1187
1187
  "#*": {
@@ -1202,10 +1202,11 @@
1202
1202
  "scripts": {
1203
1203
  "build": "rimraf dist && postcss src/globals.css -o dist/globals.css && tsc --project tsconfig.build.json && tsc-alias --project tsconfig.build.json --resolve-full-paths",
1204
1204
  "build-storybook": "NODE_OPTIONS=\"$NODE_OPTIONS --max-old-space-size=6144\" storybook build",
1205
- "lint": "eslint .",
1205
+ "lint": "oxlint --type-aware --report-unused-disable-directives-severity=warn .",
1206
1206
  "storybook": "storybook dev -p 6007",
1207
1207
  "test": "vitest --run",
1208
1208
  "types": "tsc --noEmit",
1209
- "generate:action-shapes": "tsx scripts/generate-action-shapes.ts"
1209
+ "generate:action-shapes": "tsx scripts/generate-action-shapes.ts",
1210
+ "lint:fix": "oxlint --fix --type-aware --report-unused-disable-directives-severity=warn ."
1210
1211
  }
1211
1212
  }
@@ -15,7 +15,7 @@ export const badgeConfig = {
15
15
  primary: "bg-primary text-primary-foreground",
16
16
  secondary: "bg-accent text-default-foreground",
17
17
  copy: "bg-accent text-muted-foreground",
18
- // eslint-disable-next-line @manta-eu/no-theme-primitive-colors
18
+ // oxlint-disable-next-line @manta-eu/no-theme-primitive-colors
19
19
  promo: "bg-pink-100 text-pink-700",
20
20
  success: "bg-success text-success-foreground",
21
21
  warning: "bg-warning text-warning-foreground",
@@ -189,7 +189,7 @@ export function CalendarDayButton(props: ComponentProps<typeof DayButton>) {
189
189
  "flex-col",
190
190
  "gap-1",
191
191
  "leading-none",
192
- // eslint-disable-next-line @manta-eu/no-raw-typography
192
+ // oxlint-disable-next-line @manta-eu/no-raw-typography
193
193
  "font-normal",
194
194
  "group-data-[focused=true]/day:relative",
195
195
  "group-data-[focused=true]/day:z-10",
@@ -197,7 +197,7 @@ export function CalendarDayButton(props: ComponentProps<typeof DayButton>) {
197
197
  "data-[range-end=true]:rounded-2xl-v4",
198
198
  "data-[range-middle=true]:rounded-none",
199
199
  "data-[range-start=true]:rounded-2xl-v4",
200
- // eslint-disable-next-line @manta-eu/no-raw-typography
200
+ // oxlint-disable-next-line @manta-eu/no-raw-typography
201
201
  "[&>span]:text-xs",
202
202
  "[&>span]:opacity-70",
203
203
  dayButtonClassName,
@@ -170,7 +170,7 @@ export const Input = React.forwardRef<HTMLInputElement, InputArgs>(function Inpu
170
170
  inputRef.current.value = next;
171
171
  setInternalCount(next.length);
172
172
  onChange?.({ target: inputRef.current } as ChangeEvent<HTMLInputElement>);
173
- // eslint-disable-next-line no-useless-catch
173
+ // oxlint-disable-next-line no-useless-catch
174
174
  } catch (error) {
175
175
  throw error;
176
176
  } finally {
@@ -178,7 +178,7 @@ export const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaArgs>(func
178
178
  textareaRef.current.value = next;
179
179
  setInternalCount(next.length);
180
180
  onChange?.({ target: textareaRef.current } as ChangeEvent<HTMLTextAreaElement>);
181
- // eslint-disable-next-line no-useless-catch
181
+ // oxlint-disable-next-line no-useless-catch
182
182
  } catch (error) {
183
183
  throw error;
184
184
  } finally {
@@ -120,7 +120,6 @@ export enum SortingHandlerPlacement {
120
120
  }
121
121
 
122
122
  declare module "@tanstack/react-table" {
123
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
124
123
  interface ColumnMeta<TData, TValue> {
125
124
  /**
126
125
  * Placement of the sorting handler relative to the cell header
@@ -4,6 +4,7 @@ import { createTermBatcher, type TermBatcher } from "../lib/term-batcher";
4
4
  export type ResolvedTerms<T> = {
5
5
  values: Map<string, T>;
6
6
  request: (iris: string[]) => void;
7
+ refresh?: (iris: string[]) => void;
7
8
  // IRIs whose lookup has completed, found or not. Absent in static contexts
8
9
  // (tests), which are treated as already settled.
9
10
  settledIris?: ReadonlySet<string>;
@@ -137,6 +138,10 @@ export function useResolvedTermsState<T>(
137
138
  }, [batcher]);
138
139
 
139
140
  const request = useCallback((iris: string[]) => batcher.request(iris), [batcher]);
141
+ const refresh = useCallback((iris: string[]) => batcher.request(iris, { force: true }), [batcher]);
140
142
 
141
- return useMemo(() => ({ values, request, settledIris, failedIris }), [values, request, settledIris, failedIris]);
143
+ return useMemo(
144
+ () => ({ values, request, refresh, settledIris, failedIris }),
145
+ [values, request, refresh, settledIris, failedIris],
146
+ );
142
147
  }
@@ -1,4 +1,5 @@
1
1
  import { SessionContextDocument } from "@manta-eu/client";
2
+ import { loginStatusPollMs } from "@manta-eu/client/shared/constants";
2
3
  import { datastoreHeader } from "@manta-eu/client/shared/datastore-path";
3
4
  import { createHttpError, isHttpError } from "@manta-eu/client/shared/error-utils";
4
5
  import { isValidModelId, type MantaModelId } from "@manta-eu/client/shared/model";
@@ -189,7 +190,8 @@ export function useAuth(): UseAuthResult {
189
190
  // Keycloak's SSO session idle timeout (default 30 min) only resets when a request
190
191
  // actually reaches processMiddleware. A long WS-only chat session with no other HTTP
191
192
  // traffic would otherwise let the underlying session go idle and die silently.
192
- refetchInterval: 5 * 60 * 1000,
193
+ // The poll also renews the access token before it expires, so it must run more often than the token lives.
194
+ refetchInterval: loginStatusPollMs,
193
195
  refetchIntervalInBackground: true,
194
196
  });
195
197
 
@@ -1,4 +1,4 @@
1
- /* eslint-disable import/order -- each type is imported beside the re-export it exists for, which is
1
+ /* oxlint-disable import-js/order -- each type is imported beside the re-export it exists for, which is
2
2
  how this file is organized; they are type-only, so the positions have no runtime meaning. */
3
3
  import type { ConversationMode } from "@manta-eu/client/shared/chat-manager";
4
4
  import type { MantaModelId } from "@manta-eu/client/shared/model";
@@ -1,7 +1,7 @@
1
1
  import type { QueryClient, QueryKey } from "@tanstack/react-query";
2
2
 
3
3
  export type QueryWithGetKey = {
4
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
+ // oxlint-disable-next-line typescript/no-explicit-any
5
5
  getKey: (variables?: any) => QueryKey;
6
6
  };
7
7
 
@@ -12,7 +12,7 @@ function isQueryWithGetKey(keyLike: KeyLike): keyLike is QueryWithGetKey {
12
12
  }
13
13
 
14
14
  function getTopQueryKey(query: QueryWithGetKey): QueryKey {
15
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+ // oxlint-disable-next-line typescript/no-explicit-any
16
16
  const keys = query.getKey({} as any);
17
17
  return keys.slice(0, 1);
18
18
  }
@@ -14,7 +14,7 @@ export type TermBatcherConfig<T> = {
14
14
  };
15
15
 
16
16
  export type TermBatcher = {
17
- request: (iris: IRI[]) => void;
17
+ request: (iris: IRI[], options?: { force: boolean }) => void;
18
18
  cancel: () => void;
19
19
  };
20
20
 
@@ -98,13 +98,13 @@ export function createTermBatcher<T>(config: TermBatcherConfig<T>): TermBatcher
98
98
  }
99
99
 
100
100
  return {
101
- request(iris) {
101
+ request(iris, options) {
102
102
  cancelled = false;
103
103
 
104
104
  const unresolvable: IRI[] = [];
105
105
 
106
106
  for (const iri of iris) {
107
- if (requested.has(iri)) continue;
107
+ if (requested.has(iri) && !options?.force) continue;
108
108
 
109
109
  requested.add(iri);
110
110
 
package/src/lib/utils.ts CHANGED
@@ -1,4 +1,4 @@
1
- /* eslint-disable @manta-eu/no-direct-clsx */
1
+ /* oxlint-disable @manta-eu/no-direct-clsx */
2
2
  import { clsx, type ClassValue } from "clsx";
3
3
  import { extendTailwindMerge } from "tailwind-merge";
4
4
 
@@ -42,14 +42,14 @@ export function DetailHeader(props: DetailHeaderProps) {
42
42
  <div>
43
43
  {badges && <div className="mb-3 flex items-center gap-2">{badges}</div>}
44
44
 
45
- <div className="flex items-start justify-between gap-4">
46
- <div className="flex items-center gap-3">
47
- <h2 className="typography-header wrap-break-words text-default-foreground">{title}</h2>
45
+ <div className="flex flex-col items-start justify-between gap-4 sm:flex-row">
46
+ <div className="flex min-w-0 items-center gap-3">
47
+ <h2 className="typography-header wrap-anywhere text-default-foreground">{title}</h2>
48
48
 
49
49
  {titleBadges}
50
50
  </div>
51
51
 
52
- {actions && <div className="flex shrink-0 items-center gap-2">{actions}</div>}
52
+ {actions && <div className="flex flex-wrap items-center gap-2 sm:shrink-0">{actions}</div>}
53
53
  </div>
54
54
 
55
55
  {iri &&
@@ -1,5 +1,9 @@
1
+ import { Button } from "#components/button/index";
2
+ import { DeleteConfirmationDialog } from "#components/layouts/DeleteConfirmationDialog";
3
+ import { useExecuteAction, type ExecuteActionResult } from "#hooks/useExecuteAction";
4
+ import { useTriples, type TripleRow } from "#routes/data-explorer/triples";
1
5
  import { GQLExecuteActionErrorCode } from "@manta-eu/client";
2
- import { compactUri } from "@manta-eu/client/shared/rdf-namespaces";
6
+ import { compactUri, wellKnownPredicates } from "@manta-eu/client/shared/rdf-namespaces";
3
7
  import { useState } from "react";
4
8
  import { toast } from "sonner";
5
9
  import type { PropertyMap } from "./action-properties";
@@ -7,10 +11,7 @@ import { useRecordActionShapes, type RecordActionShape } from "./action-shapes";
7
11
  import { ActionFormDialog } from "./ActionFormDialog";
8
12
  import { CreateAction } from "./CreateAction";
9
13
  import { RecordActionFeedback } from "./RecordActionFeedback";
10
- import { Button } from "#components/button/index";
11
- import { DeleteConfirmationDialog } from "#components/layouts/DeleteConfirmationDialog";
12
- import { useExecuteAction, type ExecuteActionResult } from "#hooks/useExecuteAction";
13
- import { useTriples, type TripleRow } from "#routes/data-explorer/triples";
14
+ import { RecordRefresh } from "./RecordRefresh";
14
15
 
15
16
  type RecordActionsProps = { iri: string; typeIris: string[] };
16
17
 
@@ -20,20 +21,25 @@ export function RecordActions(props: RecordActionsProps) {
20
21
  const { shapes, error } = useRecordActionShapes(typeIris);
21
22
  const { triples, isLoading: triplesLoading } = useTriples(iri);
22
23
 
23
- if (error) return <span className="typography-tiny text-muted-foreground">Actions unavailable</span>;
24
+ const recordTypes = triples
25
+ .filter((row) => row.predicate === wellKnownPredicates.type && row.objectIsIri)
26
+ .map((row) => row.object);
24
27
 
25
28
  return (
26
29
  <>
27
- {shapes.map((shape) => (
28
- <ShapeActions
29
- key={`${iri}|${shape.actionShape}`}
30
- subjectIri={iri}
31
- shape={shape}
32
- triples={triples}
33
- triplesLoading={triplesLoading}
34
- qualifyLabels={shapes.length > 1}
35
- />
36
- ))}
30
+ <RecordRefresh iri={iri} typeIris={recordTypes} />
31
+ {error && <span className="typography-tiny text-muted-foreground">Actions unavailable</span>}
32
+ {!error &&
33
+ shapes.map((shape) => (
34
+ <ShapeActions
35
+ key={`${iri}|${shape.actionShape}`}
36
+ subjectIri={iri}
37
+ shape={shape}
38
+ triples={triples}
39
+ triplesLoading={triplesLoading}
40
+ qualifyLabels={shapes.length > 1}
41
+ />
42
+ ))}
37
43
  </>
38
44
  );
39
45
  }
@@ -0,0 +1,150 @@
1
+ import { Button } from "#components/button/index";
2
+ import { InstanceLabelsContext } from "#hooks/use-instance-labels";
3
+ import { useMantaClient } from "#providers/MantaClientProvider";
4
+ import {
5
+ GQLRefreshResourceStatus,
6
+ GQLRefreshWorkflowStatus,
7
+ RefreshResourcesDocument,
8
+ RefreshResourcesStatusDocument,
9
+ type GQLRefreshResourceInput,
10
+ type GQLRefreshResourcesMutation,
11
+ type GQLRefreshResourcesMutationVariables,
12
+ type GQLRefreshResourcesStatusQuery,
13
+ type GQLRefreshResourcesStatusQueryVariables,
14
+ useRefreshResourceCapabilitiesQuery,
15
+ } from "@manta-eu/client";
16
+ import { isPresent } from "@manta-eu/lib/present";
17
+ import { sleep } from "@manta-eu/lib/sleep";
18
+ import { useIsMutating, useMutation, useQueryClient } from "@tanstack/react-query";
19
+ import type { GraphQLClient } from "graphql-request";
20
+ import { useContext } from "react";
21
+ import { toast } from "sonner";
22
+ import { match } from "ts-pattern";
23
+
24
+ type RecordRefreshProps = { iri: string; typeIris: string[] };
25
+
26
+ export function RecordRefresh(props: RecordRefreshProps) {
27
+ const { iri, typeIris } = props;
28
+ const { mantaClient } = useMantaClient();
29
+ const { data } = useRefreshResourceCapabilitiesQuery(
30
+ mantaClient,
31
+ { rdfTypes: typeIris },
32
+ { enabled: isPresent(typeIris) },
33
+ );
34
+ const rdfType = data?.refreshResourceCapabilities.capabilities.find((type) => type.supportsRefresh)?.rdfType;
35
+
36
+ return rdfType ? <RefreshButton key={`${iri}|${rdfType}`} iri={iri} rdfType={rdfType} /> : null;
37
+ }
38
+
39
+ type RefreshButtonProps = { iri: string; rdfType: string };
40
+
41
+ type RefreshResult = GQLRefreshResourcesStatusQuery["refreshResourcesStatus"];
42
+
43
+ class RefreshError extends Error {
44
+ constructor(
45
+ readonly phase: "start" | "status" | "timeout",
46
+ cause: unknown,
47
+ ) {
48
+ super("Unable to complete source refresh", { cause });
49
+ }
50
+ }
51
+
52
+ async function refreshResource(client: GraphQLClient, resource: GQLRefreshResourceInput): Promise<RefreshResult> {
53
+ const controller = new AbortController();
54
+ const timeoutMs = 5 * 60 * 1000;
55
+ const deadline = Date.now() + timeoutMs;
56
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
57
+ let phase: "start" | "status" = "start";
58
+
59
+ try {
60
+ const { refreshResources } = await client.request<
61
+ GQLRefreshResourcesMutation,
62
+ GQLRefreshResourcesMutationVariables
63
+ >({
64
+ document: RefreshResourcesDocument,
65
+ variables: { resources: [resource] },
66
+ signal: controller.signal,
67
+ });
68
+ phase = "status";
69
+
70
+ while (true) {
71
+ controller.signal.throwIfAborted();
72
+ const { refreshResourcesStatus } = await client.request<
73
+ GQLRefreshResourcesStatusQuery,
74
+ GQLRefreshResourcesStatusQueryVariables
75
+ >({
76
+ document: RefreshResourcesStatusDocument,
77
+ variables: { workflowId: refreshResources.workflowId },
78
+ signal: controller.signal,
79
+ });
80
+ controller.signal.throwIfAborted();
81
+ if (refreshResourcesStatus.status !== GQLRefreshWorkflowStatus.Running) return refreshResourcesStatus;
82
+
83
+ await sleep(Math.min(2000, Math.max(0, deadline - Date.now())));
84
+ }
85
+ } catch (error) {
86
+ throw new RefreshError(controller.signal.aborted ? "timeout" : phase, error);
87
+ } finally {
88
+ clearTimeout(timer);
89
+ }
90
+ }
91
+
92
+ function RefreshButton(props: RefreshButtonProps) {
93
+ const { iri, rdfType } = props;
94
+ const { mantaClient, datastoreId } = useMantaClient();
95
+ const queryClient = useQueryClient();
96
+ const labels = useContext(InstanceLabelsContext);
97
+ const refreshLabels = labels?.refresh;
98
+ const pendingFilter = { mutationKey: ["RefreshResource", datastoreId, iri], exact: true };
99
+ const refreshing = useIsMutating(pendingFilter) > 0;
100
+ const { mutate } = useMutation<RefreshResult, RefreshError>({
101
+ mutationKey: pendingFilter.mutationKey,
102
+ mutationFn: () => refreshResource(mantaClient, { iri, type: rdfType }),
103
+ retry: false,
104
+ onSuccess: (result) => {
105
+ if (result.status === GQLRefreshWorkflowStatus.Failed) {
106
+ toast.error("Refresh failed", { description: result.error ?? undefined });
107
+ return;
108
+ }
109
+
110
+ const status = result.results?.find(
111
+ (resource) => resource.iri === iri && resource.type === rdfType,
112
+ )?.refreshStatus;
113
+ match(status)
114
+ .with(GQLRefreshResourceStatus.Synced, () => {
115
+ void queryClient.invalidateQueries({ queryKey: ["data-explorer"] });
116
+ refreshLabels?.([iri]);
117
+ toast.success("Refreshed from source");
118
+ })
119
+ .with(GQLRefreshResourceStatus.NotReadable, () => toast.error("This entity does not support refresh"))
120
+ .with(GQLRefreshResourceStatus.NotSynced, () =>
121
+ toast.error("The entity could not be refreshed from its source"),
122
+ )
123
+ .with(undefined, () => toast.error("Refresh returned no result for this entity"))
124
+ .exhaustive();
125
+ },
126
+ onError: (error) => {
127
+ match(error.phase)
128
+ .with("start", () => toast.error("Could not start refresh"))
129
+ .with("status", () =>
130
+ toast.error("Could not check refresh status", { description: "The refresh may still be running." }),
131
+ )
132
+ .with("timeout", () =>
133
+ toast.warning("Refresh is taking longer than expected", {
134
+ description: "It may still finish in the background.",
135
+ }),
136
+ )
137
+ .exhaustive();
138
+ },
139
+ });
140
+
141
+ function startRefresh() {
142
+ if (queryClient.isMutating(pendingFilter) === 0) mutate();
143
+ }
144
+
145
+ return (
146
+ <Button variant="secondary" size="sm" disabled={refreshing} aria-busy={refreshing} onClick={startRefresh}>
147
+ {refreshing ? "Refreshing…" : "Refresh from source"}
148
+ </Button>
149
+ );
150
+ }
@@ -1,4 +1,4 @@
1
- /* eslint-disable @manta-eu/no-theme-primitive-colors */
1
+ /* oxlint-disable @manta-eu/no-theme-primitive-colors */
2
2
 
3
3
  import type {
4
4
  AggregateBinding,
@@ -1,4 +1,4 @@
1
- /* eslint-disable @manta-eu/no-theme-primitive-colors */
1
+ /* oxlint-disable @manta-eu/no-theme-primitive-colors */
2
2
 
3
3
  import type { DatalogTerm } from "@manta-eu/datalog-parser";
4
4
  import { compactUri } from "@manta-eu/rdf-lib/namespaces";
@@ -41,7 +41,7 @@ declare module "@ulb-darmstadt/shacl-form" {
41
41
  }
42
42
 
43
43
  declare module "react" {
44
- // eslint-disable-next-line @typescript-eslint/no-namespace -- augmenting JSX needs a namespace.
44
+ // oxlint-disable-next-line typescript/no-namespace -- augmenting JSX needs a namespace.
45
45
  namespace JSX {
46
46
  interface IntrinsicElements {
47
47
  "shacl-form": import("react").DetailedHTMLProps<
package/src/style.ts CHANGED
@@ -1,4 +1,4 @@
1
- /* eslint-disable @manta-eu/no-direct-clsx */
1
+ /* oxlint-disable @manta-eu/no-direct-clsx */
2
2
  import clsx, { type ClassValue } from "clsx";
3
3
  import { twMerge, type ClassNameValue } from "tailwind-merge";
4
4
 
@@ -19,7 +19,7 @@ export function slackToMarkdown(input: string): string {
19
19
 
20
20
  output = output.replace(/([^\n])\n(?!\n)/g, "$1 \n");
21
21
 
22
- // eslint-disable-next-line no-control-regex -- NUL delimits the code placeholders this file writes.
22
+ // oxlint-disable-next-line no-control-regex -- NUL delimits the code placeholders this file writes.
23
23
  output = output.replace(/\x00CODE(\d+)\x00/g, (_, i) => placeholders[Number(i)]!);
24
24
 
25
25
  return output;