@manta-eu/react 0.7.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.
- package/dist/action-plan-changes/ActionPlanChangesTable.js +1 -1
- package/dist/action-plan-changes/build-change-tree.js.map +1 -1
- package/dist/ad-preview/AdPluralDisplay.js +1 -1
- package/dist/ad-preview/GoogleAdGroupAdSingularDisplay.js +1 -3
- package/dist/ad-preview/GoogleAdGroupAdSingularDisplay.js.map +1 -1
- package/dist/ad-preview/MetaAdPreview.js +1 -1
- package/dist/ad-preview/meta-ad-copy.d.ts.map +1 -1
- package/dist/ad-preview/meta-ad-model.js.map +1 -1
- package/dist/components/ErrorBoundary.d.ts.map +1 -1
- package/dist/components/ad-preview/business-avatar.d.ts.map +1 -1
- package/dist/components/ad-preview/business-identity.d.ts.map +1 -1
- package/dist/components/ad-preview/business-info.d.ts.map +1 -1
- package/dist/components/ad-preview/facebook/carousel.d.ts.map +1 -1
- package/dist/components/ad-preview/facebook/constants.d.ts.map +1 -1
- package/dist/components/ad-preview/facebook/header.js +1 -1
- package/dist/components/ad-preview/facebook/instream-reels.d.ts.map +1 -1
- package/dist/components/ad-preview/facebook/marketplace.d.ts.map +1 -1
- package/dist/components/ad-preview/google/search.js +1 -1
- package/dist/components/ad-preview/instagram/feed.js +1 -1
- package/dist/components/ad-preview/instagram/search-result.d.ts.map +1 -1
- package/dist/components/ad-preview/use-scroll-navigation.d.ts.map +1 -1
- package/dist/components/ai-elements/conversation.js +1 -1
- package/dist/components/badge/index.d.ts.map +1 -1
- package/dist/components/badge/index.js +1 -1
- package/dist/components/banner/index.d.ts.map +1 -1
- package/dist/components/branding/MantaGridAnimation.js +1 -1
- package/dist/components/breadcrumbs/index.js +1 -1
- package/dist/components/button/index.d.ts.map +1 -1
- package/dist/components/calendar/index.js +2 -2
- package/dist/components/card/index.d.ts.map +1 -1
- package/dist/components/chart/ForecastChart.d.ts +41 -0
- package/dist/components/chart/ForecastChart.d.ts.map +1 -0
- package/dist/components/chart/ForecastChart.js +110 -0
- package/dist/components/chart/ForecastChart.js.map +1 -0
- package/dist/components/chart/ForecastEventCard.d.ts +28 -0
- package/dist/components/chart/ForecastEventCard.d.ts.map +1 -0
- package/dist/components/chart/ForecastEventCard.js +56 -0
- package/dist/components/chart/ForecastEventCard.js.map +1 -0
- package/dist/components/chart/ForecastHoverCard.d.ts +23 -0
- package/dist/components/chart/ForecastHoverCard.d.ts.map +1 -0
- package/dist/components/chart/ForecastHoverCard.js +22 -0
- package/dist/components/chart/ForecastHoverCard.js.map +1 -0
- package/dist/components/chart/ForecastLegend.d.ts +33 -0
- package/dist/components/chart/ForecastLegend.d.ts.map +1 -0
- package/dist/components/chart/ForecastLegend.js +38 -0
- package/dist/components/chart/ForecastLegend.js.map +1 -0
- package/dist/components/chart/annotations.d.ts.map +1 -1
- package/dist/components/chart/chart-colors.d.ts.map +1 -1
- package/dist/components/chart/chart-schemas.d.ts +599 -599
- package/dist/components/chart/chart-schemas.d.ts.map +1 -1
- package/dist/components/chart/chart-schemas.js.map +1 -1
- package/dist/components/chart/chart.js +1 -1
- package/dist/components/chart/forecast-model.d.ts +70 -0
- package/dist/components/chart/forecast-model.d.ts.map +1 -0
- package/dist/components/chart/forecast-model.js +89 -0
- package/dist/components/chart/forecast-model.js.map +1 -0
- package/dist/components/chart/forecast.d.ts +62 -0
- package/dist/components/chart/forecast.d.ts.map +1 -0
- package/dist/components/chart/forecast.js +90 -0
- package/dist/components/chart/forecast.js.map +1 -0
- package/dist/components/chart/index.d.ts +3 -0
- package/dist/components/chart/index.d.ts.map +1 -1
- package/dist/components/chart/index.js +1 -0
- package/dist/components/chart/index.js.map +1 -1
- package/dist/components/chat/chat-input/index.d.ts +1 -1
- package/dist/components/chat/chat-input/index.js +1 -1
- package/dist/components/chat/chat-input-footer/index.js +1 -1
- package/dist/components/chat/chat-reasoning/index.js +1 -1
- package/dist/components/chat-view/Chat.js +1 -1
- package/dist/components/chat-view/FileMessagePart.js +1 -1
- package/dist/components/chat-view/GraphContextPanel.js +1 -1
- package/dist/components/chat-view/MessageItem.js +1 -1
- package/dist/components/command/index.d.ts +15 -15
- package/dist/components/command/index.d.ts.map +1 -1
- package/dist/components/command/index.js +1 -1
- package/dist/components/dropdown/index.js +1 -1
- package/dist/components/graph/AgentsGraphListRow.js +1 -1
- package/dist/components/input/ai-action-buttons.js +1 -1
- package/dist/components/input/input-date-range.js +1 -1
- package/dist/components/input/input-field.d.ts.map +1 -1
- package/dist/components/input/input-field.js +1 -1
- package/dist/components/input/textarea.d.ts.map +1 -1
- package/dist/components/input/textarea.js +2 -2
- package/dist/components/input-otp/index.d.ts +6 -6
- package/dist/components/input-otp/index.d.ts.map +1 -1
- package/dist/components/layouts/InstallPrompt.js +1 -1
- package/dist/components/layouts/KnowledgeGraphStartupGate.d.ts +1 -1
- package/dist/components/layouts/RouteLayout.js +1 -1
- package/dist/components/layouts/page/PageHeaderActions.js +1 -1
- package/dist/components/loader/index.d.ts.map +1 -1
- package/dist/components/manta-logo/index.d.ts.map +1 -1
- package/dist/components/modal/index.d.ts.map +1 -1
- package/dist/components/onboarding/SidebarSpotlight.js +1 -1
- package/dist/components/pill/index.d.ts.map +1 -1
- package/dist/components/planning/ActionPlanDetailView.js +1 -1
- package/dist/components/planning/ManualActionList.d.ts +1 -1
- package/dist/components/planning/PlanDetailFooter.js +1 -1
- package/dist/components/popover/index.d.ts +2 -1
- package/dist/components/popover/index.d.ts.map +1 -1
- package/dist/components/popover/index.js +2 -1
- package/dist/components/popover/index.js.map +1 -1
- package/dist/components/progress/index.d.ts.map +1 -1
- package/dist/components/radio/index.d.ts.map +1 -1
- package/dist/components/rdf-insights/CampaignPerformanceSummary.js +1 -1
- package/dist/components/rdf-insights/InsightCard.js +1 -1
- package/dist/components/rdf-insights/ProductProfitability.js +1 -1
- package/dist/components/rdf-insights/ProductSalesRanking.js +1 -1
- package/dist/components/rdf-insights/ProductVariantsTable.js +1 -1
- package/dist/components/rdf-insights/RoasBenchmark.js +1 -1
- package/dist/components/select/index.d.ts.map +1 -1
- package/dist/components/sheet/index.d.ts.map +1 -1
- package/dist/components/sidebar/company-picker.js +1 -1
- package/dist/components/sidebar/nav-menu.js +1 -1
- package/dist/components/skeleton/index.d.ts +4 -4
- package/dist/components/skeleton/index.d.ts.map +1 -1
- package/dist/components/status/index.d.ts.map +1 -1
- package/dist/components/table/index.d.ts.map +1 -1
- package/dist/components/table/index.js.map +1 -1
- package/dist/components/table/use-table-state.js.map +1 -1
- package/dist/components/table-skeleton/index.js +1 -1
- package/dist/components/tabs/index.d.ts.map +1 -1
- package/dist/components/thinking/index.d.ts.map +1 -1
- package/dist/components/toast/index.d.ts.map +1 -1
- package/dist/components/tool-invocation-card/DefaultResultDisplay.js +1 -1
- package/dist/components/tool-invocation-card/ToolOutputRenderer.js +1 -1
- package/dist/components/tree-multi-select/tree-multi-select-rows.js.map +1 -1
- package/dist/datastore-picker/DatastoreRow.js +1 -1
- package/dist/easing.d.ts.map +1 -1
- package/dist/entity-tree/EntityRelationTree.js +1 -1
- package/dist/explain-fact/EntityChip.js +1 -1
- package/dist/explain-fact/conclusion/ConclusionSubtitle.js +1 -1
- package/dist/explain-fact/inspector/InspectorBindings.js +1 -1
- package/dist/explain-fact/inspector/SupportsSection.js +1 -1
- package/dist/explain-fact/proof-tree/ProofRowContent.js +1 -1
- package/dist/explain-fact/proof-tree/ProofRowValue.js +1 -1
- package/dist/globals.css +64 -0
- package/dist/graph/GraphContextPanel.js +1 -1
- package/dist/graph/GraphControls.d.ts +1 -1
- package/dist/graph/GraphControls.d.ts.map +1 -1
- package/dist/graph/GraphControls.js +1 -1
- package/dist/graph/GraphErrorBoundary.d.ts +1 -1
- package/dist/graph/GraphErrorBoundary.d.ts.map +1 -1
- package/dist/graph/NodeContextMenu.d.ts +1 -1
- package/dist/graph/NodeContextMenu.d.ts.map +1 -1
- package/dist/graph/NodeContextMenu.js +1 -1
- package/dist/graph/NodeDetailPanel/PropertyDiffView.js +1 -1
- package/dist/graph/custom-nodes.d.ts +4 -4
- package/dist/graph/custom-nodes.d.ts.map +1 -1
- package/dist/graph/custom-nodes.js +1 -1
- package/dist/graph/graph-layout.js.map +1 -1
- package/dist/graph/graph-list-utils.js.map +1 -1
- package/dist/graph/graph-model.js.map +1 -1
- package/dist/graph/graph-store.js.map +1 -1
- package/dist/graph/nodes/AdsDailyReportTemplateView.d.ts +1 -1
- package/dist/graph/nodes/AdsDailyReportTemplateView.d.ts.map +1 -1
- package/dist/graph/nodes/AttioCallRecordingView.d.ts +1 -1
- package/dist/graph/nodes/AttioCallRecordingView.d.ts.map +1 -1
- package/dist/graph/nodes/AttioCompanyView.d.ts +1 -1
- package/dist/graph/nodes/AttioCompanyView.d.ts.map +1 -1
- package/dist/graph/nodes/AttioDealView.d.ts +1 -1
- package/dist/graph/nodes/AttioDealView.d.ts.map +1 -1
- package/dist/graph/nodes/AttioMeetingView.d.ts +1 -1
- package/dist/graph/nodes/AttioMeetingView.d.ts.map +1 -1
- package/dist/graph/nodes/AttioNoteView.d.ts +1 -1
- package/dist/graph/nodes/AttioNoteView.d.ts.map +1 -1
- package/dist/graph/nodes/AttioTaskView.d.ts +1 -1
- package/dist/graph/nodes/AttioTaskView.d.ts.map +1 -1
- package/dist/graph/nodes/BrandAssetAnalysisActionView.d.ts +1 -1
- package/dist/graph/nodes/BrandAssetAnalysisActionView.d.ts.map +1 -1
- package/dist/graph/nodes/BrandAssetAnalysisView.d.ts +1 -1
- package/dist/graph/nodes/BrandAssetAnalysisView.d.ts.map +1 -1
- package/dist/graph/nodes/BrandFontSuggestionView.d.ts +1 -1
- package/dist/graph/nodes/BrandFontSuggestionView.d.ts.map +1 -1
- package/dist/graph/nodes/BrandGuidelinesView.d.ts +1 -1
- package/dist/graph/nodes/BrandGuidelinesView.d.ts.map +1 -1
- package/dist/graph/nodes/ConnectedAccountCard.d.ts +1 -1
- package/dist/graph/nodes/ConnectedAccountCard.d.ts.map +1 -1
- package/dist/graph/nodes/CoresignalCompanyView.d.ts +1 -1
- package/dist/graph/nodes/CoresignalCompanyView.d.ts.map +1 -1
- package/dist/graph/nodes/CoresignalEmployeeView.d.ts +1 -1
- package/dist/graph/nodes/CoresignalEmployeeView.d.ts.map +1 -1
- package/dist/graph/nodes/CoresignalExperienceView.d.ts +1 -1
- package/dist/graph/nodes/CoresignalExperienceView.d.ts.map +1 -1
- package/dist/graph/nodes/CoresignalJobView.d.ts +1 -1
- package/dist/graph/nodes/CoresignalJobView.d.ts.map +1 -1
- package/dist/graph/nodes/CoresignalKeyExecutiveDepartureView.d.ts +1 -1
- package/dist/graph/nodes/CoresignalKeyExecutiveDepartureView.d.ts.map +1 -1
- package/dist/graph/nodes/EntityCardShell.d.ts +1 -1
- package/dist/graph/nodes/EntityCardShell.d.ts.map +1 -1
- package/dist/graph/nodes/Ga4DailyOverviewView.d.ts +1 -1
- package/dist/graph/nodes/Ga4DailyOverviewView.d.ts.map +1 -1
- package/dist/graph/nodes/Ga4FunnelEventCountView.d.ts +1 -1
- package/dist/graph/nodes/Ga4FunnelEventCountView.d.ts.map +1 -1
- package/dist/graph/nodes/Ga4TrafficSourceView.d.ts +1 -1
- package/dist/graph/nodes/Ga4TrafficSourceView.d.ts.map +1 -1
- package/dist/graph/nodes/GoogleAdGroupAdView.d.ts +1 -1
- package/dist/graph/nodes/GoogleAdGroupAdView.d.ts.map +1 -1
- package/dist/graph/nodes/GoogleAdGroupCriterionView.d.ts +1 -1
- package/dist/graph/nodes/GoogleAdGroupCriterionView.d.ts.map +1 -1
- package/dist/graph/nodes/GoogleAdGroupView.d.ts +1 -1
- package/dist/graph/nodes/GoogleAdGroupView.d.ts.map +1 -1
- package/dist/graph/nodes/GoogleCampaignBudgetView.d.ts +1 -1
- package/dist/graph/nodes/GoogleCampaignBudgetView.d.ts.map +1 -1
- package/dist/graph/nodes/GoogleCampaignCriterionView.d.ts +1 -1
- package/dist/graph/nodes/GoogleCampaignCriterionView.d.ts.map +1 -1
- package/dist/graph/nodes/GoogleCampaignInsightView.d.ts +1 -1
- package/dist/graph/nodes/GoogleCampaignInsightView.d.ts.map +1 -1
- package/dist/graph/nodes/GoogleCampaignView.d.ts +1 -1
- package/dist/graph/nodes/GoogleCampaignView.d.ts.map +1 -1
- package/dist/graph/nodes/GoogleCustomerClientView.d.ts +1 -1
- package/dist/graph/nodes/GoogleCustomerClientView.d.ts.map +1 -1
- package/dist/graph/nodes/GoogleCustomerView.d.ts +1 -1
- package/dist/graph/nodes/GoogleCustomerView.d.ts.map +1 -1
- package/dist/graph/nodes/GoogleSearchTermInsightView.d.ts +1 -1
- package/dist/graph/nodes/GoogleSearchTermInsightView.d.ts.map +1 -1
- package/dist/graph/nodes/LinkedinAdAccountView.d.ts +1 -1
- package/dist/graph/nodes/LinkedinAdAccountView.d.ts.map +1 -1
- package/dist/graph/nodes/MetaAdAccountActivityView.d.ts +1 -1
- package/dist/graph/nodes/MetaAdAccountActivityView.d.ts.map +1 -1
- package/dist/graph/nodes/MetaAdAccountView.d.ts +1 -1
- package/dist/graph/nodes/MetaAdAccountView.d.ts.map +1 -1
- package/dist/graph/nodes/MetaAdImageView.d.ts +1 -1
- package/dist/graph/nodes/MetaAdImageView.d.ts.map +1 -1
- package/dist/graph/nodes/MetaAdSetView.d.ts +1 -1
- package/dist/graph/nodes/MetaAdSetView.d.ts.map +1 -1
- package/dist/graph/nodes/MetaAdView.d.ts +1 -1
- package/dist/graph/nodes/MetaAdView.d.ts.map +1 -1
- package/dist/graph/nodes/MetaCampaignView.d.ts +1 -1
- package/dist/graph/nodes/MetaCampaignView.d.ts.map +1 -1
- package/dist/graph/nodes/MetaInsightView.d.ts +1 -1
- package/dist/graph/nodes/MetaInsightView.d.ts.map +1 -1
- package/dist/graph/nodes/RenderedTemplateView.d.ts +1 -1
- package/dist/graph/nodes/RenderedTemplateView.d.ts.map +1 -1
- package/dist/graph/nodes/SchemaActionView.d.ts +1 -1
- package/dist/graph/nodes/SchemaActionView.d.ts.map +1 -1
- package/dist/graph/nodes/ShopifyShopView.d.ts +1 -1
- package/dist/graph/nodes/ShopifyShopView.d.ts.map +1 -1
- package/dist/graph/nodes/SlackChannelView.d.ts +1 -1
- package/dist/graph/nodes/SlackChannelView.d.ts.map +1 -1
- package/dist/graph/nodes/SlackMessageView.d.ts +1 -1
- package/dist/graph/nodes/SlackMessageView.d.ts.map +1 -1
- package/dist/graph/nodes/SlackUserView.d.ts +1 -1
- package/dist/graph/nodes/SlackUserView.d.ts.map +1 -1
- package/dist/graph/nodes/SlackWorkspaceView.d.ts +1 -1
- package/dist/graph/nodes/SlackWorkspaceView.d.ts.map +1 -1
- package/dist/graph/nodes/attio-shared.d.ts +1 -1
- package/dist/graph/nodes/attio-shared.d.ts.map +1 -1
- package/dist/graph/nodes/attio-shared.js +1 -1
- package/dist/graph/nodes/brand-shared.d.ts.map +1 -1
- package/dist/graph/nodes/card-rows.js +1 -1
- package/dist/graph/nodes/google-campaign-utils.d.ts.map +1 -1
- package/dist/graph/nodes/insight-shared.d.ts +1 -1
- package/dist/graph/nodes/insight-shared.d.ts.map +1 -1
- package/dist/graph/special-nodes/BaseNode.d.ts +2 -2
- package/dist/graph/special-nodes/BaseNode.d.ts.map +1 -1
- package/dist/graph/special-nodes/BaseNode.js +1 -1
- package/dist/graph/special-nodes/DynamicNode.d.ts +1 -1
- package/dist/graph/special-nodes/DynamicNode.d.ts.map +1 -1
- package/dist/graph/special-nodes/EntityValueChip.js +1 -1
- package/dist/graph/special-nodes/GenericNode.d.ts +1 -1
- package/dist/graph/special-nodes/GenericNode.d.ts.map +1 -1
- package/dist/graph/special-nodes/GenericView.d.ts +1 -1
- package/dist/graph/special-nodes/GenericView.d.ts.map +1 -1
- package/dist/graph/special-nodes/NodeFrame.d.ts +1 -1
- package/dist/graph/special-nodes/NodeFrame.d.ts.map +1 -1
- package/dist/graph/special-nodes/NodeFrame.js +1 -1
- package/dist/graph/special-nodes/TypeSummaryNode.d.ts +1 -1
- package/dist/graph/special-nodes/TypeSummaryNode.d.ts.map +1 -1
- package/dist/graph/special-nodes/TypeSummaryNode.js +1 -1
- package/dist/graph/special-nodes/card-facts.js.map +1 -1
- package/dist/hooks/resolved-terms.d.ts +1 -0
- package/dist/hooks/resolved-terms.d.ts.map +1 -1
- package/dist/hooks/resolved-terms.js +2 -1
- package/dist/hooks/resolved-terms.js.map +1 -1
- package/dist/hooks/use-action-plans-list.d.ts.map +1 -1
- package/dist/hooks/use-action-plans-list.js.map +1 -1
- package/dist/hooks/use-activity-feed.js.map +1 -1
- package/dist/hooks/use-connection-problems.d.ts.map +1 -1
- package/dist/hooks/use-conversation-starters.d.ts +2 -2
- package/dist/hooks/use-entity-relations.d.ts.map +1 -1
- package/dist/hooks/use-entity.d.ts.map +1 -1
- package/dist/hooks/use-latest-rendered-template.d.ts.map +1 -1
- package/dist/hooks/use-manual-actions.d.ts.map +1 -1
- package/dist/hooks/use-manual-actions.js.map +1 -1
- package/dist/hooks/useActionGraph.d.ts.map +1 -1
- package/dist/hooks/useActionGraph.js.map +1 -1
- package/dist/hooks/useActionPlanDetail.d.ts +2 -2
- package/dist/hooks/useActionPlanDetail.d.ts.map +1 -1
- package/dist/hooks/useAuth.d.ts +2 -1
- package/dist/hooks/useAuth.d.ts.map +1 -1
- package/dist/hooks/useAuth.js +4 -1
- package/dist/hooks/useAuth.js.map +1 -1
- package/dist/hooks/useConversationGraphContext.js.map +1 -1
- package/dist/hooks/useConversations.js.map +1 -1
- package/dist/hooks/useDatastoreSelection.js.map +1 -1
- package/dist/hooks/useValidateActionPlan.d.ts.map +1 -1
- package/dist/lib/build-config.js.map +1 -1
- package/dist/lib/default-map.d.ts.map +1 -1
- package/dist/lib/default-map.js.map +1 -1
- package/dist/lib/merge-refs.d.ts.map +1 -1
- package/dist/lib/rdf/insights.js.map +1 -1
- package/dist/lib/structured-data/schema-converter.d.ts +2 -2
- package/dist/lib/structured-data/schema-converter.d.ts.map +1 -1
- package/dist/lib/structured-data/schema-converter.js.map +1 -1
- package/dist/lib/tanstack-query.js +1 -1
- package/dist/lib/tanstack-query.js.map +1 -1
- package/dist/lib/term-batcher.d.ts +3 -1
- package/dist/lib/term-batcher.d.ts.map +1 -1
- package/dist/lib/term-batcher.js +2 -2
- package/dist/lib/term-batcher.js.map +1 -1
- package/dist/lib/use-can-scroll.d.ts.map +1 -1
- package/dist/lib/use-color-palette.d.ts.map +1 -1
- package/dist/lib/use-toggle-set.js.map +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/ontology/OntologyTermText.js +1 -1
- package/dist/providers/ActiveChatProvider.d.ts +1 -1
- package/dist/providers/ActiveDatastoreProvider.js.map +1 -1
- package/dist/providers/AuthContext.d.ts +1 -0
- package/dist/providers/AuthContext.d.ts.map +1 -1
- package/dist/providers/AuthContext.js.map +1 -1
- package/dist/providers/ChatManagerProvider.js.map +1 -1
- package/dist/providers/commands/CommandContext.js +1 -1
- package/dist/routes/activity/components/ActivityTable.js +1 -1
- package/dist/routes/activity/detail/ActivityDetail.d.ts.map +1 -1
- package/dist/routes/activity/detail/ActivityDetail.js +1 -1
- package/dist/routes/activity/detail/ActivityStepsRail.js +1 -1
- package/dist/routes/activity/detail/ActivityTimeline.js +1 -1
- package/dist/routes/data-explorer/class-properties.js.map +1 -1
- package/dist/routes/data-explorer/class-relations.d.ts +2 -2
- package/dist/routes/data-explorer/components/DetailHeader.js +1 -1
- package/dist/routes/data-explorer/components/DetailHeader.js.map +1 -1
- package/dist/routes/data-explorer/components/SegmentBuilder.js +1 -1
- package/dist/routes/data-explorer/components/class-detail/ClassDetail.js +1 -1
- package/dist/routes/data-explorer/components/class-detail/CreateRecordAction.js +1 -1
- package/dist/routes/data-explorer/components/class-detail/Overview.js +1 -1
- package/dist/routes/data-explorer/components/ontology-coverage/CoverageNamespaceRail.js +1 -1
- package/dist/routes/data-explorer/components/ontology-coverage/CoverageSkeleton.js +1 -1
- package/dist/routes/data-explorer/components/record-detail/CreateAction.js +1 -1
- package/dist/routes/data-explorer/components/record-detail/RecordActions.d.ts.map +1 -1
- package/dist/routes/data-explorer/components/record-detail/RecordActions.js +12 -9
- package/dist/routes/data-explorer/components/record-detail/RecordActions.js.map +1 -1
- package/dist/routes/data-explorer/components/record-detail/RecordDetail.js +1 -1
- package/dist/routes/data-explorer/components/record-detail/RecordRefresh.d.ts +7 -0
- package/dist/routes/data-explorer/components/record-detail/RecordRefresh.d.ts.map +1 -0
- package/dist/routes/data-explorer/components/record-detail/RecordRefresh.js +104 -0
- package/dist/routes/data-explorer/components/record-detail/RecordRefresh.js.map +1 -0
- package/dist/routes/data-explorer/coverage.d.ts.map +1 -1
- package/dist/routes/data-explorer/sparql-client.js.map +1 -1
- package/dist/routes/datastores/components/DatastoreTableSkeleton.js +1 -1
- package/dist/routes/datastores/components/DatastoresToolbar.js +1 -1
- package/dist/routes/datastores/components/LinkUnlinkedDatastoreDialog.js +1 -1
- package/dist/routes/datastores/components/UnlinkedDatastoresPanel.js +1 -1
- package/dist/routes/datastores/hooks/useDatastoreColumns.d.ts +2 -2
- package/dist/routes/datastores/hooks/useDatastoreColumns.d.ts.map +1 -1
- package/dist/routes/datastores/hooks/useDatastoreColumns.js +2 -4
- package/dist/routes/datastores/hooks/useDatastoreColumns.js.map +1 -1
- package/dist/routes/datastores/index.js +1 -1
- package/dist/routes/integrations/catalog-shape.js.map +1 -1
- package/dist/routes/integrations/components/ConnectionRow.js +1 -1
- package/dist/routes/integrations/components/ProviderLogo.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/DashConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/MetaAdsConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/MicrosoftAdsConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/google-ads-account-tree.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/google-analytics-property-tree.js.map +1 -1
- package/dist/routes/integrations/types.d.ts.map +1 -1
- package/dist/routes/memories/components/ChangeScopeDialog.js +1 -1
- package/dist/routes/memories/components/ConflictMemoryCard.js +1 -1
- package/dist/routes/memories/components/ConsolidationReviewDialog.js +1 -1
- package/dist/routes/memories/components/LoadingSkeleton.js +1 -1
- package/dist/routes/memories/components/MemoriesFilters.js +1 -1
- package/dist/routes/memories/components/MemoriesTabPanel.js +1 -1
- package/dist/routes/memories/components/MemoryActions.js +1 -1
- package/dist/routes/memories/components/MemoryFields.js +1 -1
- package/dist/routes/memories/components/MemoryFormDialog.js +1 -1
- package/dist/routes/memories/expiry-utils.js.map +1 -1
- package/dist/routes/memories/hooks/useDuplicateDetection.js.map +1 -1
- package/dist/routes/memories/hooks/useLiveContext.d.ts.map +1 -1
- package/dist/routes/memories/hooks/useMemoryColumns.d.ts.map +1 -1
- package/dist/routes/memories/hooks/useMemoryColumns.js +1 -1
- package/dist/routes/memories/hooks/useMemoryTable.js.map +1 -1
- package/dist/routes/plans/components/ActionPlanPage.js +1 -1
- package/dist/routes/plans/components/ActionPlansFilters.js +1 -1
- package/dist/routes/plans/components/ActionPlansPage.js +1 -1
- package/dist/routes/plans/components/ActionPlansTableBody.js +1 -1
- package/dist/routes/plans/components/actionPlansTableConfig.d.ts +7 -7
- package/dist/routes/plans/components/actionPlansTableConfig.d.ts.map +1 -1
- package/dist/routes/plans/index.js +1 -1
- package/dist/routes/rules/components/RuleAffectedActionPlansSection.js +1 -1
- package/dist/routes/rules/components/RuleDetailsPage.js +1 -1
- package/dist/routes/rules/components/RuleProducersSection.js +1 -1
- package/dist/routes/rules/components/RuleSetup.js +1 -1
- package/dist/routes/rules/components/RulesOverviewPage.js +1 -1
- package/dist/routes/rules/components/datalog-editor/FactsPreview.js +1 -1
- package/dist/routes/rules/components/datalog-editor/SparqlQueryPanel.js +1 -1
- package/dist/routes/rules/components/rule-actionability.js.map +1 -1
- package/dist/rules/RuleNarrativeSegments.js +1 -1
- package/dist/rules/datalog-ast/DatalogAtomComponent.js +1 -1
- package/dist/rules/datalog-ast/DatalogBodyFormulaComponent.js +1 -1
- package/dist/rules/datalog-ast/DatalogExpressionRenderer.js +1 -1
- package/dist/rules/datalog-ast/DatalogTermComponent.js +1 -1
- package/dist/rules/datalog-cache.js.map +1 -1
- package/dist/rules/rule-narrative-format.d.ts.map +1 -1
- package/dist/rules/rule-narrative-renderer.js.map +1 -1
- package/dist/style.js +1 -1
- package/dist/templates/slack-to-markdown.js +1 -1
- package/package.json +14 -14
- package/src/components/badge/index.tsx +1 -1
- package/src/components/calendar/index.tsx +2 -2
- package/src/components/chart/ForecastChart.tsx +383 -0
- package/src/components/chart/ForecastEventCard.tsx +163 -0
- package/src/components/chart/ForecastHoverCard.tsx +73 -0
- package/src/components/chart/ForecastLegend.tsx +97 -0
- package/src/components/chart/forecast-model.ts +130 -0
- package/src/components/chart/forecast.ts +144 -0
- package/src/components/chart/index.tsx +3 -0
- package/src/components/input/input-field.tsx +1 -1
- package/src/components/input/textarea.tsx +1 -1
- package/src/components/popover/index.tsx +2 -1
- package/src/components/table/index.tsx +0 -1
- package/src/globals.css +2 -0
- package/src/hooks/resolved-terms.ts +6 -1
- package/src/hooks/useAuth.ts +5 -1
- package/src/lib/chat-types.ts +1 -1
- package/src/lib/tanstack-query.ts +2 -2
- package/src/lib/term-batcher.ts +3 -3
- package/src/lib/utils.ts +1 -1
- package/src/providers/AuthContext.ts +1 -0
- package/src/routes/data-explorer/components/DetailHeader.tsx +4 -4
- package/src/routes/data-explorer/components/record-detail/RecordActions.tsx +22 -16
- package/src/routes/data-explorer/components/record-detail/RecordRefresh.tsx +150 -0
- package/src/rules/datalog-ast/DatalogBodyFormulaComponent.tsx +1 -1
- package/src/rules/datalog-ast/DatalogTermComponent.tsx +1 -1
- package/src/shacl/shacl-form-types.ts +1 -1
- package/src/style.ts +1 -1
- package/src/templates/slack-to-markdown.ts +1 -1
- package/src/themes/manta-dark.css +2 -0
- package/src/themes/manta.css +2 -0
- package/src/themes/standard.css +2 -0
|
@@ -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(
|
|
143
|
+
return useMemo(
|
|
144
|
+
() => ({ values, request, refresh, settledIris, failedIris }),
|
|
145
|
+
[values, request, refresh, settledIris, failedIris],
|
|
146
|
+
);
|
|
142
147
|
}
|
package/src/hooks/useAuth.ts
CHANGED
|
@@ -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";
|
|
@@ -22,6 +23,7 @@ export type UseAuthResult = {
|
|
|
22
23
|
user: User | undefined;
|
|
23
24
|
datastore: Datastore | undefined;
|
|
24
25
|
datastores: Datastore[] | undefined;
|
|
26
|
+
inOrganization: boolean;
|
|
25
27
|
isLoading: boolean;
|
|
26
28
|
isAuthenticated: boolean;
|
|
27
29
|
isOperator: boolean;
|
|
@@ -188,7 +190,8 @@ export function useAuth(): UseAuthResult {
|
|
|
188
190
|
// Keycloak's SSO session idle timeout (default 30 min) only resets when a request
|
|
189
191
|
// actually reaches processMiddleware. A long WS-only chat session with no other HTTP
|
|
190
192
|
// traffic would otherwise let the underlying session go idle and die silently.
|
|
191
|
-
|
|
193
|
+
// The poll also renews the access token before it expires, so it must run more often than the token lives.
|
|
194
|
+
refetchInterval: loginStatusPollMs,
|
|
192
195
|
refetchIntervalInBackground: true,
|
|
193
196
|
});
|
|
194
197
|
|
|
@@ -296,6 +299,7 @@ export function useAuth(): UseAuthResult {
|
|
|
296
299
|
const datastore = sessionDatastore(row);
|
|
297
300
|
return isPresent(datastore) ? [datastore] : [];
|
|
298
301
|
}),
|
|
302
|
+
inOrganization: isPresent(contextData?.user?.memberOrgs) || isPresent(contextData?.datastores),
|
|
299
303
|
datastoreAccessGranted: contextData?.datastoreAccessGranted ?? true,
|
|
300
304
|
isOperator: contextData?.user?.isOperator ?? false,
|
|
301
305
|
canManageTeam: contextData?.user?.canManageTeam ?? false,
|
package/src/lib/chat-types.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
}
|
package/src/lib/term-batcher.ts
CHANGED
|
@@ -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
|
@@ -21,6 +21,7 @@ export type AuthContextValue = Pick<
|
|
|
21
21
|
// Only Manta's own web app may list the apps connected to someone; any other host's token is refused.
|
|
22
22
|
canDisconnectCustomApps?: boolean;
|
|
23
23
|
hasProfilePage?: boolean;
|
|
24
|
+
inOrganization?: boolean;
|
|
24
25
|
};
|
|
25
26
|
|
|
26
27
|
export const AuthContext = createContext<AuthContextValue | undefined>(undefined);
|
|
@@ -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-
|
|
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
|
|
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 {
|
|
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
|
-
|
|
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
|
-
{
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
+
}
|
|
@@ -41,7 +41,7 @@ declare module "@ulb-darmstadt/shacl-form" {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
declare module "react" {
|
|
44
|
-
//
|
|
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
|
@@ -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
|
-
//
|
|
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;
|
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
--color-rank-3: #431407;
|
|
26
26
|
|
|
27
27
|
--color-default-foreground: #ffffff;
|
|
28
|
+
--color-inverse: #05070d;
|
|
29
|
+
--color-inverse-foreground: #ffffff;
|
|
28
30
|
--color-body-foreground: rgba(255, 255, 255, 0.8);
|
|
29
31
|
--color-muted-foreground: #8a90a0;
|
|
30
32
|
--color-placeholder-foreground: #4b4e58;
|
package/src/themes/manta.css
CHANGED
|
@@ -26,6 +26,8 @@
|
|
|
26
26
|
--color-card-alpha-0: rgb(255 255 255 / 0);
|
|
27
27
|
|
|
28
28
|
--color-default-foreground: #0b1b45;
|
|
29
|
+
--color-inverse: #0b1530;
|
|
30
|
+
--color-inverse-foreground: #ffffff;
|
|
29
31
|
--color-body-foreground: rgba(23, 23, 23, 0.85);
|
|
30
32
|
--color-muted-foreground: #5a6480;
|
|
31
33
|
--color-placeholder-foreground: var(--color-muted-foreground);
|
package/src/themes/standard.css
CHANGED
|
@@ -48,6 +48,8 @@
|
|
|
48
48
|
--color-rank-3: #ffe4d6;
|
|
49
49
|
|
|
50
50
|
--color-default-foreground: var(--color-neutral-900);
|
|
51
|
+
--color-inverse: var(--color-neutral-900);
|
|
52
|
+
--color-inverse-foreground: #ffffff;
|
|
51
53
|
--color-muted-foreground: var(--color-neutral-500);
|
|
52
54
|
--color-disabled-foreground: var(--color-neutral-400);
|
|
53
55
|
--color-placeholder-foreground: var(--color-neutral-400);
|