@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.
- package/README.md +100 -37
- package/dist/components/breadcrumbs/index.d.ts +26 -0
- package/dist/components/breadcrumbs/index.d.ts.map +1 -0
- package/dist/components/breadcrumbs/index.js +36 -0
- package/dist/components/channel-icon/index.d.ts +1 -2
- package/dist/components/channel-icon/index.d.ts.map +1 -1
- package/dist/components/channel-icon/index.js +0 -4
- package/dist/components/chip/index.d.ts +14 -0
- package/dist/components/chip/index.d.ts.map +1 -0
- package/dist/components/chip/index.js +8 -0
- package/dist/components/editable-text/index.d.ts +13 -0
- package/dist/components/editable-text/index.d.ts.map +1 -0
- package/dist/components/editable-text/index.js +61 -0
- package/dist/components/explain-fact/ExplainFact.d.ts +16 -0
- package/dist/components/explain-fact/ExplainFact.d.ts.map +1 -0
- package/dist/components/{rdfox-explain/RDFoxExplain.js → explain-fact/ExplainFact.js} +12 -12
- package/dist/components/explain-fact/OutdatedFactNotice.d.ts.map +1 -0
- package/dist/components/input/index.d.ts +2 -0
- package/dist/components/input/index.d.ts.map +1 -1
- package/dist/components/input/index.js +2 -0
- package/dist/components/input/input-numeric.d.ts +19 -0
- package/dist/components/input/input-numeric.d.ts.map +1 -0
- package/dist/components/input/input-numeric.js +85 -0
- package/dist/components/input/input-tags.d.ts +17 -0
- package/dist/components/input/input-tags.d.ts.map +1 -0
- package/dist/components/input/input-tags.js +46 -0
- package/dist/components/multi-select/index.d.ts +32 -0
- package/dist/components/multi-select/index.d.ts.map +1 -0
- package/dist/components/multi-select/index.js +33 -0
- package/dist/components/multi-select/toggle-value.d.ts +2 -0
- package/dist/components/multi-select/toggle-value.d.ts.map +1 -0
- package/dist/components/multi-select/toggle-value.js +3 -0
- package/dist/components/plan-row/index.d.ts +2 -1
- package/dist/components/plan-row/index.d.ts.map +1 -1
- package/dist/components/plan-row/index.js +2 -14
- package/dist/components/sidebar/index.d.ts +4 -1
- package/dist/components/sidebar/index.d.ts.map +1 -1
- package/dist/components/sidebar/index.js +2 -2
- package/dist/components/skeleton/index.js +1 -1
- package/dist/components/tool-invocation-card/ExplainFactResultDisplay.d.ts +9 -0
- package/dist/components/tool-invocation-card/ExplainFactResultDisplay.d.ts.map +1 -0
- package/dist/components/tool-invocation-card/{ExplainRDFoxResultDisplay.js → ExplainFactResultDisplay.js} +3 -3
- package/dist/components/tool-invocation-card/ToolOutputRenderer.js +2 -2
- package/dist/components/tool-invocation-card/types.d.ts +4 -4
- package/dist/components/tool-invocation-card/types.d.ts.map +1 -1
- package/dist/components/tool-invocation-card/types.js +2 -2
- package/dist/components/tree-multi-select/index.d.ts +1 -1
- package/dist/components/tree-multi-select/index.d.ts.map +1 -1
- package/dist/components/tree-multi-select/index.js +1 -1
- package/dist/components/tree-multi-select/tree-multi-select-rows.d.ts +2 -1
- package/dist/components/tree-multi-select/tree-multi-select-rows.d.ts.map +1 -1
- package/dist/components/tree-multi-select/tree-multi-select-rows.js +21 -31
- package/dist/components/tree-multi-select/tree-multi-select.d.ts +2 -0
- package/dist/components/tree-multi-select/tree-multi-select.d.ts.map +1 -1
- package/dist/components/tree-multi-select/tree-multi-select.js +21 -8
- package/dist/explain-fact/DatalogCode.d.ts.map +1 -0
- package/dist/explain-fact/EntityChip.d.ts.map +1 -0
- package/dist/explain-fact/EntityChip.js +17 -0
- package/dist/explain-fact/ExplainCompactView.d.ts.map +1 -0
- package/dist/explain-fact/ExplainFactState.d.ts +7 -0
- package/dist/explain-fact/ExplainFactState.d.ts.map +1 -0
- package/dist/{rdfox-explain/RDFoxExplainState.js → explain-fact/ExplainFactState.js} +1 -1
- package/dist/explain-fact/ExplainFullView.d.ts.map +1 -0
- package/dist/explain-fact/ExplainStates.d.ts.map +1 -0
- package/dist/explain-fact/ExplainTag.d.ts.map +1 -0
- package/dist/explain-fact/FactNotice.d.ts +7 -0
- package/dist/explain-fact/FactNotice.d.ts.map +1 -0
- package/dist/explain-fact/FactNotice.js +25 -0
- package/dist/explain-fact/FactValue.d.ts.map +1 -0
- package/dist/explain-fact/NumDot.d.ts.map +1 -0
- package/dist/explain-fact/PanelLabel.d.ts.map +1 -0
- package/dist/explain-fact/ProofSubjectHeader.d.ts.map +1 -0
- package/dist/explain-fact/ProvenanceBadge.d.ts.map +1 -0
- package/dist/{rdfox-explain → explain-fact}/ProvenanceBadge.js +2 -1
- package/dist/explain-fact/RuleVariableTypes.d.ts.map +1 -0
- package/dist/explain-fact/SubstitutedFactNotice.d.ts.map +1 -0
- package/dist/explain-fact/ValuePill.d.ts.map +1 -0
- package/dist/explain-fact/conclusion/ConclusionCard.d.ts.map +1 -0
- package/dist/explain-fact/conclusion/ConclusionSubtitle.d.ts.map +1 -0
- package/dist/{rdfox-explain → explain-fact}/conclusion/ConclusionSubtitle.js +3 -1
- package/dist/explain-fact/conclusion/index.d.ts.map +1 -0
- package/dist/explain-fact/explain-styles.d.ts.map +1 -0
- package/dist/explain-fact/fact-token.d.ts.map +1 -0
- package/dist/explain-fact/formula-hues.d.ts.map +1 -0
- package/dist/{rdfox-explain → explain-fact}/index.d.ts +2 -3
- package/dist/explain-fact/index.d.ts.map +1 -0
- package/dist/{rdfox-explain → explain-fact}/index.js +2 -3
- package/dist/explain-fact/inspector/ExplainInspector.d.ts.map +1 -0
- package/dist/explain-fact/inspector/ExplainInspector.js +20 -0
- package/dist/explain-fact/inspector/InspectorBindings.d.ts.map +1 -0
- package/dist/explain-fact/inspector/InspectorFact.d.ts.map +1 -0
- package/dist/explain-fact/inspector/InspectorHeader.d.ts.map +1 -0
- package/dist/{rdfox-explain → explain-fact}/inspector/InspectorRule.d.ts +3 -0
- package/dist/explain-fact/inspector/InspectorRule.d.ts.map +1 -0
- package/dist/{rdfox-explain → explain-fact}/inspector/InspectorRule.js +4 -5
- package/dist/explain-fact/inspector/SupportsSection.d.ts.map +1 -0
- package/dist/{rdfox-explain → explain-fact}/inspector/SupportsSection.js +2 -1
- package/dist/explain-fact/inspector/index.d.ts.map +1 -0
- package/dist/explain-fact/proof-tree/ProofFactLabel.d.ts.map +1 -0
- package/dist/explain-fact/proof-tree/ProofRowBadge.d.ts.map +1 -0
- package/dist/explain-fact/proof-tree/ProofRowContent.d.ts.map +1 -0
- package/dist/explain-fact/proof-tree/ProofRowValue.d.ts.map +1 -0
- package/dist/explain-fact/proof-tree/ProofTree.d.ts.map +1 -0
- package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTree.js +1 -1
- package/dist/explain-fact/proof-tree/ProofTreeFormulaFooter.d.ts.map +1 -0
- package/dist/explain-fact/proof-tree/ProofTreeNode.d.ts.map +1 -0
- package/dist/explain-fact/proof-tree/SupportsTag.d.ts.map +1 -0
- package/dist/explain-fact/proof-tree/SupportsTag.js +6 -0
- package/dist/explain-fact/proof-tree/index.d.ts.map +1 -0
- package/dist/explain-fact/proof-tree/proof-tree-navigation.d.ts.map +1 -0
- package/dist/explain-fact/proof-tree/proof-tree-root-view.d.ts.map +1 -0
- package/dist/explain-fact/proof-tree/visible-premises.d.ts.map +1 -0
- package/dist/explain-fact/rule-presentation.d.ts.map +1 -0
- package/dist/{rdfox-explain → explain-fact}/tree-model.d.ts +18 -9
- package/dist/explain-fact/tree-model.d.ts.map +1 -0
- package/dist/{rdfox-explain → explain-fact}/tree-model.js +19 -10
- package/dist/explain-fact/use-fact-measure.d.ts.map +1 -0
- package/dist/globals.css +383 -108
- package/dist/graph/nodes/AdMockupCard.js +1 -1
- package/dist/graph/nodes/CreativeMediaCard.js +1 -1
- package/dist/graph/nodes/EntityCardShell.js +1 -1
- package/dist/hooks/use-conversation-starters.d.ts +1 -1
- package/dist/hooks/useValidateActionPlan.d.ts.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/ldo-ui.d.ts +1 -1
- package/dist/ldo-ui.d.ts.map +1 -1
- package/dist/ldo-ui.js +1 -1
- package/dist/lib/datastore-route-paths.d.ts +2 -2
- package/dist/lib/datastore-route-paths.d.ts.map +1 -1
- package/dist/lib/datastore-route-paths.js +2 -2
- package/dist/lib/datastore-route-table.d.ts +36 -0
- package/dist/lib/datastore-route-table.d.ts.map +1 -0
- package/dist/lib/datastore-route-table.js +43 -0
- package/dist/lib/datastore-routes.d.ts +1 -1
- package/dist/lib/datastore-routes.d.ts.map +1 -1
- package/dist/lib/datastore-routes.js +1 -1
- package/dist/lib/spa-routes.d.ts +3 -0
- package/dist/lib/spa-routes.d.ts.map +1 -0
- package/dist/lib/spa-routes.js +5 -0
- package/dist/routes/data-explorer/components/Breadcrumbs.d.ts.map +1 -1
- package/dist/routes/data-explorer/components/Breadcrumbs.js +5 -5
- package/dist/routes/datastores/components/DatastoreFormDialog.d.ts +18 -0
- package/dist/routes/datastores/components/DatastoreFormDialog.d.ts.map +1 -0
- package/dist/routes/datastores/components/DatastoreFormDialog.js +27 -0
- package/dist/routes/datastores/components/DatastoreTableSkeleton.d.ts +2 -0
- package/dist/routes/datastores/components/DatastoreTableSkeleton.d.ts.map +1 -0
- package/dist/routes/datastores/components/DatastoreTableSkeleton.js +7 -0
- package/dist/routes/datastores/components/DatastoresToolbar.d.ts +18 -0
- package/dist/routes/datastores/components/DatastoresToolbar.d.ts.map +1 -0
- package/dist/routes/datastores/components/DatastoresToolbar.js +29 -0
- package/dist/routes/datastores/components/LinkUnlinkedDatastoreDialog.d.ts +14 -0
- package/dist/routes/datastores/components/LinkUnlinkedDatastoreDialog.d.ts.map +1 -0
- package/dist/routes/datastores/components/LinkUnlinkedDatastoreDialog.js +83 -0
- package/dist/routes/datastores/components/RenameDatastoreGroupDialog.d.ts +9 -0
- package/dist/routes/datastores/components/RenameDatastoreGroupDialog.d.ts.map +1 -0
- package/dist/routes/datastores/components/RenameDatastoreGroupDialog.js +21 -0
- package/dist/routes/datastores/components/StatusBadge.d.ts +21 -0
- package/dist/routes/datastores/components/StatusBadge.d.ts.map +1 -0
- package/dist/routes/datastores/components/StatusBadge.js +49 -0
- package/dist/routes/datastores/components/UnlinkedDatastoresPanel.d.ts +20 -0
- package/dist/routes/datastores/components/UnlinkedDatastoresPanel.d.ts.map +1 -0
- package/dist/routes/datastores/components/UnlinkedDatastoresPanel.js +13 -0
- package/dist/routes/datastores/flatten.d.ts +33 -0
- package/dist/routes/datastores/flatten.d.ts.map +1 -0
- package/dist/routes/datastores/flatten.js +86 -0
- package/dist/routes/datastores/hooks/useDatastoreColumns.d.ts +47 -0
- package/dist/routes/datastores/hooks/useDatastoreColumns.d.ts.map +1 -0
- package/dist/routes/datastores/hooks/useDatastoreColumns.js +165 -0
- package/dist/routes/datastores/hooks/useDatastoreTable.d.ts +14 -0
- package/dist/routes/datastores/hooks/useDatastoreTable.d.ts.map +1 -0
- package/dist/routes/datastores/hooks/useDatastoreTable.js +45 -0
- package/dist/routes/datastores/index.d.ts +2 -0
- package/dist/routes/datastores/index.d.ts.map +1 -0
- package/dist/routes/datastores/index.js +467 -0
- package/dist/routes/explain/ExplainEmpty.d.ts +2 -0
- package/dist/routes/explain/ExplainEmpty.d.ts.map +1 -0
- package/dist/routes/explain/ExplainEmpty.js +8 -0
- package/dist/routes/explain/index.d.ts +2 -0
- package/dist/routes/explain/index.d.ts.map +1 -0
- package/dist/routes/explain/index.js +16 -0
- package/dist/routes/explain/url-params.d.ts +9 -0
- package/dist/routes/explain/url-params.d.ts.map +1 -0
- package/dist/routes/explain/url-params.js +21 -0
- package/dist/routes/integrations/components/ConnectionRow.d.ts.map +1 -1
- package/dist/routes/integrations/components/ConnectionRow.js +1 -1
- package/dist/routes/integrations/connection-view.d.ts.map +1 -1
- package/dist/routes/integrations/connection-view.js +17 -1
- package/dist/routes/integrations/types.d.ts +2 -1
- package/dist/routes/integrations/types.d.ts.map +1 -1
- package/dist/routes/memories/components/ChangeScopeDialog.d.ts +12 -0
- package/dist/routes/memories/components/ChangeScopeDialog.d.ts.map +1 -0
- package/dist/routes/memories/components/ChangeScopeDialog.js +89 -0
- package/dist/routes/memories/components/ConflictMemoryCard.d.ts +13 -0
- package/dist/routes/memories/components/ConflictMemoryCard.d.ts.map +1 -0
- package/dist/routes/memories/components/ConflictMemoryCard.js +43 -0
- package/dist/routes/memories/components/ConflictTimeoutFooter.d.ts +7 -0
- package/dist/routes/memories/components/ConflictTimeoutFooter.d.ts.map +1 -0
- package/dist/routes/memories/components/ConflictTimeoutFooter.js +6 -0
- package/dist/routes/memories/components/ConsolidationReviewDialog.d.ts +61 -0
- package/dist/routes/memories/components/ConsolidationReviewDialog.d.ts.map +1 -0
- package/dist/routes/memories/components/ConsolidationReviewDialog.js +121 -0
- package/dist/routes/memories/components/EmptyStates.d.ts +18 -0
- package/dist/routes/memories/components/EmptyStates.d.ts.map +1 -0
- package/dist/routes/memories/components/EmptyStates.js +22 -0
- package/dist/routes/memories/components/ImportanceSlider.d.ts +11 -0
- package/dist/routes/memories/components/ImportanceSlider.d.ts.map +1 -0
- package/dist/routes/memories/components/ImportanceSlider.js +31 -0
- package/dist/routes/memories/components/LiveContextTab.d.ts +6 -0
- package/dist/routes/memories/components/LiveContextTab.d.ts.map +1 -0
- package/dist/routes/memories/components/LiveContextTab.js +37 -0
- package/dist/routes/memories/components/LoadingSkeleton.d.ts +2 -0
- package/dist/routes/memories/components/LoadingSkeleton.d.ts.map +1 -0
- package/dist/routes/memories/components/LoadingSkeleton.js +7 -0
- package/dist/routes/memories/components/MemoriesFilters.d.ts +31 -0
- package/dist/routes/memories/components/MemoriesFilters.d.ts.map +1 -0
- package/dist/routes/memories/components/MemoriesFilters.js +88 -0
- package/dist/routes/memories/components/MemoriesPanel.d.ts +6 -0
- package/dist/routes/memories/components/MemoriesPanel.d.ts.map +1 -0
- package/dist/routes/memories/components/MemoriesPanel.js +99 -0
- package/dist/routes/memories/components/MemoriesTabPanel.d.ts +30 -0
- package/dist/routes/memories/components/MemoriesTabPanel.d.ts.map +1 -0
- package/dist/routes/memories/components/MemoriesTabPanel.js +11 -0
- package/dist/routes/memories/components/MemoryActions.d.ts +12 -0
- package/dist/routes/memories/components/MemoryActions.d.ts.map +1 -0
- package/dist/routes/memories/components/MemoryActions.js +24 -0
- package/dist/routes/memories/components/MemoryFields.d.ts +32 -0
- package/dist/routes/memories/components/MemoryFields.d.ts.map +1 -0
- package/dist/routes/memories/components/MemoryFields.js +30 -0
- package/dist/routes/memories/components/MemoryFormDialog.d.ts +15 -0
- package/dist/routes/memories/components/MemoryFormDialog.d.ts.map +1 -0
- package/dist/routes/memories/components/MemoryFormDialog.js +299 -0
- package/dist/routes/memories/components/MemoryOnboardingWizard.d.ts +9 -0
- package/dist/routes/memories/components/MemoryOnboardingWizard.d.ts.map +1 -0
- package/dist/routes/memories/components/MemoryOnboardingWizard.js +99 -0
- package/dist/routes/memories/components/RestoreBlockedDialog.d.ts +8 -0
- package/dist/routes/memories/components/RestoreBlockedDialog.d.ts.map +1 -0
- package/dist/routes/memories/components/RestoreBlockedDialog.js +7 -0
- package/dist/routes/memories/components/SchemasTab.d.ts +6 -0
- package/dist/routes/memories/components/SchemasTab.d.ts.map +1 -0
- package/dist/routes/memories/components/SchemasTab.js +35 -0
- package/dist/routes/memories/components/SupersessionConflictDialog.d.ts +18 -0
- package/dist/routes/memories/components/SupersessionConflictDialog.d.ts.map +1 -0
- package/dist/routes/memories/components/SupersessionConflictDialog.js +78 -0
- package/dist/routes/memories/components/TeamPicker.d.ts +8 -0
- package/dist/routes/memories/components/TeamPicker.d.ts.map +1 -0
- package/dist/routes/memories/components/TeamPicker.js +25 -0
- package/dist/routes/memories/components/badges.d.ts +50 -0
- package/dist/routes/memories/components/badges.d.ts.map +1 -0
- package/dist/routes/memories/components/badges.js +106 -0
- package/dist/routes/memories/expiry-utils.d.ts +23 -0
- package/dist/routes/memories/expiry-utils.d.ts.map +1 -0
- package/dist/routes/memories/expiry-utils.js +97 -0
- package/dist/routes/memories/hooks/useConflictCheck.d.ts +18 -0
- package/dist/routes/memories/hooks/useConflictCheck.d.ts.map +1 -0
- package/dist/routes/memories/hooks/useConflictCheck.js +35 -0
- package/dist/routes/memories/hooks/useDuplicateDetection.d.ts +11 -0
- package/dist/routes/memories/hooks/useDuplicateDetection.d.ts.map +1 -0
- package/dist/routes/memories/hooks/useDuplicateDetection.js +73 -0
- package/dist/routes/memories/hooks/useLiveContext.d.ts +23 -0
- package/dist/routes/memories/hooks/useLiveContext.d.ts.map +1 -0
- package/dist/routes/memories/hooks/useLiveContext.js +102 -0
- package/dist/routes/memories/hooks/useMemoryColumns.d.ts +33 -0
- package/dist/routes/memories/hooks/useMemoryColumns.d.ts.map +1 -0
- package/dist/routes/memories/hooks/useMemoryColumns.js +188 -0
- package/dist/routes/memories/hooks/useMemoryTable.d.ts +33 -0
- package/dist/routes/memories/hooks/useMemoryTable.d.ts.map +1 -0
- package/dist/routes/memories/hooks/useMemoryTable.js +121 -0
- package/dist/routes/memories/index.d.ts +11 -0
- package/dist/routes/memories/index.d.ts.map +1 -0
- package/dist/routes/memories/index.js +472 -0
- package/dist/routes/memories/memory-form-validation.d.ts +8 -0
- package/dist/routes/memories/memory-form-validation.d.ts.map +1 -0
- package/dist/routes/memories/memory-form-validation.js +33 -0
- package/dist/routes/memories/memory-mutation-input.d.ts +6 -0
- package/dist/routes/memories/memory-mutation-input.d.ts.map +1 -0
- package/dist/routes/memories/memory-mutation-input.js +41 -0
- package/dist/routes/plans/components/actionPlansTableConfig.d.ts +3 -3
- package/dist/routes/rules/components/CreateRuleChatModal.d.ts +10 -0
- package/dist/routes/rules/components/CreateRuleChatModal.d.ts.map +1 -0
- package/dist/routes/rules/components/CreateRuleChatModal.js +52 -0
- package/dist/routes/rules/components/RuleActionabilityBadge.d.ts +8 -0
- package/dist/routes/rules/components/RuleActionabilityBadge.d.ts.map +1 -0
- package/dist/routes/rules/components/RuleActionabilityBadge.js +18 -0
- package/dist/routes/rules/components/RuleAffectedActionPlansSection.d.ts +6 -0
- package/dist/routes/rules/components/RuleAffectedActionPlansSection.d.ts.map +1 -0
- package/dist/routes/rules/components/RuleAffectedActionPlansSection.js +151 -0
- package/dist/routes/rules/components/RuleAst.d.ts +6 -0
- package/dist/routes/rules/components/RuleAst.d.ts.map +1 -0
- package/dist/routes/rules/components/RuleAst.js +23 -0
- package/dist/routes/rules/components/RuleDependentRulesSection.d.ts +6 -0
- package/dist/routes/rules/components/RuleDependentRulesSection.d.ts.map +1 -0
- package/dist/routes/rules/components/RuleDependentRulesSection.js +16 -0
- package/dist/routes/rules/components/RuleDetailsPage.d.ts +14 -0
- package/dist/routes/rules/components/RuleDetailsPage.d.ts.map +1 -0
- package/dist/routes/rules/components/RuleDetailsPage.js +51 -0
- package/dist/routes/rules/components/RuleProducersSection.d.ts +7 -0
- package/dist/routes/rules/components/RuleProducersSection.d.ts.map +1 -0
- package/dist/routes/rules/components/RuleProducersSection.js +10 -0
- package/dist/routes/rules/components/RuleSampleFactsSection.d.ts +7 -0
- package/dist/routes/rules/components/RuleSampleFactsSection.d.ts.map +1 -0
- package/dist/routes/rules/components/RuleSampleFactsSection.js +70 -0
- package/dist/routes/rules/components/RulesOverviewHeaderActions.d.ts +17 -0
- package/dist/routes/rules/components/RulesOverviewHeaderActions.d.ts.map +1 -0
- package/dist/routes/rules/components/RulesOverviewHeaderActions.js +55 -0
- package/dist/routes/rules/components/RulesOverviewPage.d.ts +13 -0
- package/dist/routes/rules/components/RulesOverviewPage.d.ts.map +1 -0
- package/dist/routes/rules/components/RulesOverviewPage.js +236 -0
- package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapeDetails.d.ts +7 -0
- package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapeDetails.d.ts.map +1 -0
- package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapeDetails.js +47 -0
- package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapesList.d.ts +8 -0
- package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapesList.d.ts.map +1 -0
- package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapesList.js +76 -0
- package/dist/routes/rules/components/SupportedActionShapesList/TokenList.d.ts +6 -0
- package/dist/routes/rules/components/SupportedActionShapesList/TokenList.d.ts.map +1 -0
- package/dist/routes/rules/components/SupportedActionShapesList/TokenList.js +9 -0
- package/dist/routes/rules/components/SupportedActionShapesList/index.d.ts +2 -0
- package/dist/routes/rules/components/SupportedActionShapesList/index.d.ts.map +1 -0
- package/dist/routes/rules/components/SupportedActionShapesList/index.js +1 -0
- package/dist/routes/rules/components/SupportedActionShapesList/shacl-shape.d.ts +20 -0
- package/dist/routes/rules/components/SupportedActionShapesList/shacl-shape.d.ts.map +1 -0
- package/dist/routes/rules/components/SupportedActionShapesList/shacl-shape.js +48 -0
- package/dist/routes/rules/components/datalog-editor/BindingsPreview.d.ts +9 -0
- package/dist/routes/rules/components/datalog-editor/BindingsPreview.d.ts.map +1 -0
- package/dist/routes/rules/components/datalog-editor/BindingsPreview.js +38 -0
- package/dist/routes/rules/components/datalog-editor/FactsPreview.d.ts +10 -0
- package/dist/routes/rules/components/datalog-editor/FactsPreview.d.ts.map +1 -0
- package/dist/routes/rules/components/datalog-editor/FactsPreview.js +43 -0
- package/dist/routes/rules/components/datalog-editor/PreviewPanel.d.ts +7 -0
- package/dist/routes/rules/components/datalog-editor/PreviewPanel.d.ts.map +1 -0
- package/dist/routes/rules/components/datalog-editor/PreviewPanel.js +8 -0
- package/dist/routes/rules/components/datalog-editor/QueryResults.d.ts +9 -0
- package/dist/routes/rules/components/datalog-editor/QueryResults.d.ts.map +1 -0
- package/dist/routes/rules/components/datalog-editor/QueryResults.js +22 -0
- package/dist/routes/rules/components/datalog-editor/SparqlQueryPanel.d.ts +11 -0
- package/dist/routes/rules/components/datalog-editor/SparqlQueryPanel.d.ts.map +1 -0
- package/dist/routes/rules/components/datalog-editor/SparqlQueryPanel.js +21 -0
- package/dist/routes/rules/components/rule-producers.d.ts +15 -0
- package/dist/routes/rules/components/rule-producers.d.ts.map +1 -0
- package/dist/routes/rules/components/rule-producers.js +76 -0
- package/dist/routes/rules/components/sample-facts-query.d.ts +9 -0
- package/dist/routes/rules/components/sample-facts-query.d.ts.map +1 -0
- package/dist/routes/rules/components/sample-facts-query.js +71 -0
- package/dist/routes/rules/datalog-editor.d.ts +6 -0
- package/dist/routes/rules/datalog-editor.d.ts.map +1 -0
- package/dist/routes/rules/datalog-editor.js +7 -0
- package/dist/routes/rules/hooks/useRuleFactsPreview.d.ts +53 -0
- package/dist/routes/rules/hooks/useRuleFactsPreview.d.ts.map +1 -0
- package/dist/routes/rules/hooks/useRuleFactsPreview.js +214 -0
- package/dist/routes/rules/hooks/useSparqlQueryExecution.d.ts +14 -0
- package/dist/routes/rules/hooks/useSparqlQueryExecution.d.ts.map +1 -0
- package/dist/routes/rules/hooks/useSparqlQueryExecution.js +77 -0
- package/dist/routes/rules/pages.d.ts +6 -0
- package/dist/routes/rules/pages.d.ts.map +1 -0
- package/dist/routes/rules/pages.js +7 -0
- package/dist/rules/RuleNameLink.d.ts +6 -0
- package/dist/rules/RuleNameLink.d.ts.map +1 -0
- package/dist/rules/RuleNameLink.js +8 -0
- package/package.json +64 -24
- package/src/globals.css +18 -18
- package/src/themes/manta-dark.css +1 -4
- package/src/themes/manta.css +1 -0
- package/src/themes/standard.css +12 -11
- package/dist/components/channel-icon/marketer-icon.d.ts +0 -4
- package/dist/components/channel-icon/marketer-icon.d.ts.map +0 -1
- package/dist/components/channel-icon/marketer-icon.js +0 -6
- package/dist/components/rdfox-explain/OutdatedFactNotice.d.ts.map +0 -1
- package/dist/components/rdfox-explain/RDFoxExplain.d.ts +0 -16
- package/dist/components/rdfox-explain/RDFoxExplain.d.ts.map +0 -1
- package/dist/components/tool-invocation-card/ExplainRDFoxResultDisplay.d.ts +0 -9
- package/dist/components/tool-invocation-card/ExplainRDFoxResultDisplay.d.ts.map +0 -1
- package/dist/lib/test-utils.d.ts +0 -4
- package/dist/lib/test-utils.d.ts.map +0 -1
- package/dist/lib/test-utils.js +0 -16
- package/dist/rdfox-explain/AbsentFactNotice.d.ts +0 -5
- package/dist/rdfox-explain/AbsentFactNotice.d.ts.map +0 -1
- package/dist/rdfox-explain/AbsentFactNotice.js +0 -6
- package/dist/rdfox-explain/DatalogCode.d.ts.map +0 -1
- package/dist/rdfox-explain/EntityChip.d.ts.map +0 -1
- package/dist/rdfox-explain/EntityChip.js +0 -9
- package/dist/rdfox-explain/ExplainCompactView.d.ts.map +0 -1
- package/dist/rdfox-explain/ExplainFullView.d.ts.map +0 -1
- package/dist/rdfox-explain/ExplainStates.d.ts.map +0 -1
- package/dist/rdfox-explain/ExplainTag.d.ts.map +0 -1
- package/dist/rdfox-explain/FactValue.d.ts.map +0 -1
- package/dist/rdfox-explain/NumDot.d.ts.map +0 -1
- package/dist/rdfox-explain/PanelLabel.d.ts.map +0 -1
- package/dist/rdfox-explain/ProofSubjectHeader.d.ts.map +0 -1
- package/dist/rdfox-explain/ProvenanceBadge.d.ts.map +0 -1
- package/dist/rdfox-explain/RDFoxExplainState.d.ts +0 -7
- package/dist/rdfox-explain/RDFoxExplainState.d.ts.map +0 -1
- package/dist/rdfox-explain/RuleVariableTypes.d.ts.map +0 -1
- package/dist/rdfox-explain/StoredFactNotice.d.ts +0 -5
- package/dist/rdfox-explain/StoredFactNotice.d.ts.map +0 -1
- package/dist/rdfox-explain/StoredFactNotice.js +0 -6
- package/dist/rdfox-explain/SubstitutedFactNotice.d.ts.map +0 -1
- package/dist/rdfox-explain/ValuePill.d.ts.map +0 -1
- package/dist/rdfox-explain/busy-aggregate-fixture.d.ts +0 -7
- package/dist/rdfox-explain/busy-aggregate-fixture.d.ts.map +0 -1
- package/dist/rdfox-explain/busy-aggregate-fixture.js +0 -6
- package/dist/rdfox-explain/conclusion/ConclusionCard.d.ts.map +0 -1
- package/dist/rdfox-explain/conclusion/ConclusionSubtitle.d.ts.map +0 -1
- package/dist/rdfox-explain/conclusion/index.d.ts.map +0 -1
- package/dist/rdfox-explain/explain-styles.d.ts.map +0 -1
- package/dist/rdfox-explain/fact-token.d.ts.map +0 -1
- package/dist/rdfox-explain/formula-hues.d.ts.map +0 -1
- package/dist/rdfox-explain/index.d.ts.map +0 -1
- package/dist/rdfox-explain/inspector/ExplainInspector.d.ts.map +0 -1
- package/dist/rdfox-explain/inspector/ExplainInspector.js +0 -22
- package/dist/rdfox-explain/inspector/InspectorBindings.d.ts.map +0 -1
- package/dist/rdfox-explain/inspector/InspectorFact.d.ts.map +0 -1
- package/dist/rdfox-explain/inspector/InspectorHeader.d.ts.map +0 -1
- package/dist/rdfox-explain/inspector/InspectorRule.d.ts.map +0 -1
- package/dist/rdfox-explain/inspector/SupportsSection.d.ts.map +0 -1
- package/dist/rdfox-explain/inspector/index.d.ts.map +0 -1
- package/dist/rdfox-explain/proof-tree/ProofFactLabel.d.ts.map +0 -1
- package/dist/rdfox-explain/proof-tree/ProofRowBadge.d.ts.map +0 -1
- package/dist/rdfox-explain/proof-tree/ProofRowContent.d.ts.map +0 -1
- package/dist/rdfox-explain/proof-tree/ProofRowValue.d.ts.map +0 -1
- package/dist/rdfox-explain/proof-tree/ProofTree.d.ts.map +0 -1
- package/dist/rdfox-explain/proof-tree/ProofTreeFormulaFooter.d.ts.map +0 -1
- package/dist/rdfox-explain/proof-tree/ProofTreeNode.d.ts.map +0 -1
- package/dist/rdfox-explain/proof-tree/SupportsTag.d.ts.map +0 -1
- package/dist/rdfox-explain/proof-tree/SupportsTag.js +0 -6
- package/dist/rdfox-explain/proof-tree/index.d.ts.map +0 -1
- package/dist/rdfox-explain/proof-tree/proof-tree-navigation.d.ts.map +0 -1
- package/dist/rdfox-explain/proof-tree/proof-tree-root-view.d.ts.map +0 -1
- package/dist/rdfox-explain/proof-tree/visible-premises.d.ts.map +0 -1
- package/dist/rdfox-explain/rule-presentation.d.ts.map +0 -1
- package/dist/rdfox-explain/tree-model.d.ts.map +0 -1
- package/dist/rdfox-explain/use-fact-measure.d.ts.map +0 -1
- package/dist/test-support.d.ts +0 -9
- package/dist/test-support.d.ts.map +0 -1
- package/dist/test-support.js +0 -18
- package/src/themes/marketer-dark.css +0 -70
- /package/dist/components/{rdfox-explain → explain-fact}/OutdatedFactNotice.d.ts +0 -0
- /package/dist/components/{rdfox-explain → explain-fact}/OutdatedFactNotice.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/DatalogCode.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/DatalogCode.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/EntityChip.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/ExplainCompactView.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/ExplainCompactView.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/ExplainFullView.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/ExplainFullView.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/ExplainStates.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/ExplainStates.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/ExplainTag.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/ExplainTag.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/FactValue.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/FactValue.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/NumDot.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/NumDot.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/PanelLabel.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/PanelLabel.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/ProofSubjectHeader.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/ProofSubjectHeader.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/ProvenanceBadge.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/RuleVariableTypes.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/RuleVariableTypes.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/SubstitutedFactNotice.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/SubstitutedFactNotice.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/ValuePill.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/ValuePill.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/conclusion/ConclusionCard.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/conclusion/ConclusionCard.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/conclusion/ConclusionSubtitle.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/conclusion/index.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/conclusion/index.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/explain-styles.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/explain-styles.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/fact-token.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/fact-token.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/formula-hues.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/formula-hues.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/inspector/ExplainInspector.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorBindings.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorBindings.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorFact.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorFact.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorHeader.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorHeader.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/inspector/SupportsSection.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/inspector/index.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/inspector/index.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofFactLabel.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofFactLabel.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowBadge.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowBadge.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowContent.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowContent.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowValue.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowValue.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTree.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTreeFormulaFooter.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTreeFormulaFooter.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTreeNode.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTreeNode.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/SupportsTag.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/index.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/index.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/proof-tree-navigation.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/proof-tree-navigation.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/proof-tree-root-view.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/proof-tree-root-view.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/visible-premises.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/proof-tree/visible-premises.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/rule-presentation.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/rule-presentation.js +0 -0
- /package/dist/{rdfox-explain → explain-fact}/use-fact-measure.d.ts +0 -0
- /package/dist/{rdfox-explain → explain-fact}/use-fact-measure.js +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { GQLMemoryScope, type GQLMemory } from "@manta-eu/client";
|
|
2
|
+
export type ChangeScopeDialogProps = {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onOpenChange: (open: boolean) => void;
|
|
5
|
+
memory: GQLMemory;
|
|
6
|
+
isOperator?: boolean;
|
|
7
|
+
onSave: (newScope: GQLMemoryScope, newTeams: string[], supersedesMemoryIris: string[]) => Promise<void>;
|
|
8
|
+
isSaving: boolean;
|
|
9
|
+
currentUserId?: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function ChangeScopeDialog(props: ChangeScopeDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=ChangeScopeDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChangeScopeDialog.d.ts","sourceRoot":"","sources":["../../../../src/routes/memories/components/ChangeScopeDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA6B,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAiB7F,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxG,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAQF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CAuK9D"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { GQLMemoryScope } from "@manta-eu/client";
|
|
3
|
+
import { isPresent } from "@manta-eu/lib/present";
|
|
4
|
+
import { useCallback, useEffect, useState } from "react";
|
|
5
|
+
import { useConflictCheck } from "../hooks/useConflictCheck.js";
|
|
6
|
+
import { SupersessionConflictDialog } from "./SupersessionConflictDialog.js";
|
|
7
|
+
import { TeamPicker } from "./TeamPicker.js";
|
|
8
|
+
import { Button } from "#components/button/index";
|
|
9
|
+
import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "#components/modal/index";
|
|
10
|
+
const scopeOptions = [
|
|
11
|
+
{ value: GQLMemoryScope.User, label: "Personal" },
|
|
12
|
+
{ value: GQLMemoryScope.Company, label: "Company" },
|
|
13
|
+
{ value: GQLMemoryScope.Team, label: "Team" },
|
|
14
|
+
];
|
|
15
|
+
export function ChangeScopeDialog(props) {
|
|
16
|
+
const { open, onOpenChange, memory, isOperator, onSave, isSaving, currentUserId } = props;
|
|
17
|
+
const [scope, setScope] = useState(memory.scope);
|
|
18
|
+
const [teams, setTeams] = useState(memory.teams);
|
|
19
|
+
const [pendingConflicts, setPendingConflicts] = useState([]);
|
|
20
|
+
const [pendingState, setPendingState] = useState(null);
|
|
21
|
+
const [timedOut, setTimedOut] = useState(false);
|
|
22
|
+
const { check, isChecking } = useConflictCheck();
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
if (open) {
|
|
25
|
+
setScope(memory.scope);
|
|
26
|
+
setTeams(memory.teams);
|
|
27
|
+
setPendingConflicts([]);
|
|
28
|
+
setPendingState(null);
|
|
29
|
+
setTimedOut(false);
|
|
30
|
+
}
|
|
31
|
+
}, [open, memory]);
|
|
32
|
+
const isTeam = scope === GQLMemoryScope.Team;
|
|
33
|
+
const isSameScope = scope === memory.scope &&
|
|
34
|
+
(scope !== GQLMemoryScope.Team ||
|
|
35
|
+
(teams.length === memory.teams.length && teams.every((t) => memory.teams.includes(t))));
|
|
36
|
+
const canSave = !isSameScope && (!isTeam || isPresent(teams));
|
|
37
|
+
const isBusy = isSaving || isChecking;
|
|
38
|
+
const handleSave = useCallback(async () => {
|
|
39
|
+
const { conflicts, timedOut: checkTimedOut } = await check({
|
|
40
|
+
label: memory.label,
|
|
41
|
+
description: memory.description ?? "",
|
|
42
|
+
scope,
|
|
43
|
+
teams: isTeam ? teams : undefined,
|
|
44
|
+
excludeIri: memory.iri,
|
|
45
|
+
});
|
|
46
|
+
if (checkTimedOut) {
|
|
47
|
+
setPendingState({ scope, teams: isTeam ? teams : [] });
|
|
48
|
+
setTimedOut(true);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (!isPresent(conflicts)) {
|
|
52
|
+
await onSave(scope, isTeam ? teams : [], []);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
setPendingConflicts(conflicts);
|
|
56
|
+
setPendingState({ scope, teams: isTeam ? teams : [] });
|
|
57
|
+
}, [check, memory, scope, teams, isTeam, onSave]);
|
|
58
|
+
const handleConflictConfirm = useCallback(async (resolution) => {
|
|
59
|
+
if (!pendingState)
|
|
60
|
+
return;
|
|
61
|
+
const finalTeams = resolution.mergedTeams ?? pendingState.teams;
|
|
62
|
+
setPendingConflicts([]);
|
|
63
|
+
setPendingState(null);
|
|
64
|
+
await onSave(pendingState.scope, finalTeams, resolution.supersedesIris);
|
|
65
|
+
}, [pendingState, onSave]);
|
|
66
|
+
const handleSaveWithout = useCallback(async () => {
|
|
67
|
+
if (!pendingState)
|
|
68
|
+
return;
|
|
69
|
+
setPendingConflicts([]);
|
|
70
|
+
setPendingState(null);
|
|
71
|
+
await onSave(pendingState.scope, pendingState.teams, []);
|
|
72
|
+
}, [pendingState, onSave]);
|
|
73
|
+
const handleConflictCancel = useCallback(() => {
|
|
74
|
+
setPendingConflicts([]);
|
|
75
|
+
setPendingState(null);
|
|
76
|
+
}, []);
|
|
77
|
+
return (_jsxs(_Fragment, { children: [_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { text: "Change memory scope" }), _jsxs(DialogDescription, { children: ["Change the scope of \u201C", memory.label, "\u201D memory. All properties remain the same, but visibility changes."] })] }), _jsxs("div", { className: "flex flex-col gap-4 py-2", children: [_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx("label", { className: "typography-small text-default-foreground", children: "Scope" }), _jsx("div", { className: "flex gap-2", children: scopeOptions
|
|
78
|
+
.filter(({ value }) => value !== GQLMemoryScope.Company || isOperator)
|
|
79
|
+
.map(({ value, label }) => (_jsx("button", { type: "button", onClick: () => setScope(value), className: `px-3 py-1.5 rounded-lg typography-small-medium transition-colors ${scope === value
|
|
80
|
+
? "bg-primary text-primary-foreground"
|
|
81
|
+
: "bg-muted text-muted-foreground hover:bg-muted/80"}`, children: label }, value))) })] }), isTeam && _jsx(TeamPicker, { selected: teams, onChange: setTeams, isOperator: isOperator ?? false })] }), _jsx(DialogFooter, { children: timedOut && pendingState ? (_jsxs(_Fragment, { children: [_jsx("p", { className: "typography-small text-muted-foreground mr-auto", children: "Conflict check timed out. Move without checking?" }), _jsx(Button, { variant: "tertiary", onClick: () => {
|
|
82
|
+
setTimedOut(false);
|
|
83
|
+
setPendingState(null);
|
|
84
|
+
}, disabled: isSaving, children: "Cancel" }), _jsx(Button, { onClick: () => {
|
|
85
|
+
setTimedOut(false);
|
|
86
|
+
void onSave(pendingState.scope, pendingState.teams, []);
|
|
87
|
+
setPendingState(null);
|
|
88
|
+
}, disabled: isSaving, children: isSaving ? "Moving…" : "Move anyway" })] })) : (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "tertiary", onClick: () => onOpenChange(false), disabled: isBusy, children: "Cancel" }), _jsx(Button, { onClick: handleSave, disabled: !canSave || isBusy, children: isChecking ? "Checking…" : isSaving ? "Moving…" : "Move" })] })) })] }) }), isPresent(pendingConflicts) && pendingState && (_jsx(SupersessionConflictDialog, { open: true, conflicts: pendingConflicts, scope: pendingState.scope, newTeams: pendingState.teams, currentUserId: currentUserId, onConfirm: handleConflictConfirm, onSaveWithout: handleSaveWithout, onCancel: handleConflictCancel }))] }));
|
|
89
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GQLMemoryScope, type GQLConflictingMemory } from "@manta-eu/client";
|
|
2
|
+
export type ConflictMemoryCardProps = {
|
|
3
|
+
conflict: GQLConflictingMemory;
|
|
4
|
+
scope: GQLMemoryScope;
|
|
5
|
+
checked: boolean;
|
|
6
|
+
onToggleChecked: () => void;
|
|
7
|
+
showMerge: boolean;
|
|
8
|
+
merging: boolean;
|
|
9
|
+
onToggleMerge: () => void;
|
|
10
|
+
currentUserId?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function ConflictMemoryCard(props: ConflictMemoryCardProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=ConflictMemoryCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConflictMemoryCard.d.ts","sourceRoot":"","sources":["../../../../src/routes/memories/components/ConflictMemoryCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAkC7E,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAsEhE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { GQLMemoryScope } from "@manta-eu/client";
|
|
3
|
+
import { isPresent } from "@manta-eu/lib/present";
|
|
4
|
+
import { match } from "ts-pattern";
|
|
5
|
+
import { formatHorizonRelative, isTrustExpired, memoryHorizon } from "../expiry-utils.js";
|
|
6
|
+
import { KindBadge } from "./badges.js";
|
|
7
|
+
import { Badge } from "#components/badge/index";
|
|
8
|
+
import { Checkbox } from "#components/checkbox/index";
|
|
9
|
+
import { cn } from "#lib/utils";
|
|
10
|
+
const importanceLabels = {
|
|
11
|
+
1: "Disabled",
|
|
12
|
+
2: "Low importance",
|
|
13
|
+
3: "Medium importance",
|
|
14
|
+
4: "High importance",
|
|
15
|
+
5: "Critical",
|
|
16
|
+
};
|
|
17
|
+
const importanceDotClass = {
|
|
18
|
+
1: "bg-muted-foreground/40",
|
|
19
|
+
2: "bg-muted-foreground",
|
|
20
|
+
3: "bg-default-foreground/50",
|
|
21
|
+
4: "bg-warning-foreground",
|
|
22
|
+
5: "bg-error-foreground",
|
|
23
|
+
};
|
|
24
|
+
function formatAuthor(createdBy, currentUserId) {
|
|
25
|
+
if (isPresent(currentUserId) && createdBy === currentUserId)
|
|
26
|
+
return "You";
|
|
27
|
+
return "Another user";
|
|
28
|
+
}
|
|
29
|
+
function MetaSeparator() {
|
|
30
|
+
return _jsx("span", { className: "text-muted-border", children: "\u00B7" });
|
|
31
|
+
}
|
|
32
|
+
export function ConflictMemoryCard(props) {
|
|
33
|
+
const { conflict, scope, checked, onToggleChecked, showMerge, merging, onToggleMerge, currentUserId } = props;
|
|
34
|
+
const showAuthor = scope !== GQLMemoryScope.User && isPresent(conflict.createdBy);
|
|
35
|
+
const horizon = memoryHorizon(conflict.memoryValidUntil, conflict.memoryTrustedUntil);
|
|
36
|
+
const unconfirmed = isTrustExpired(conflict.memoryTrustedUntil);
|
|
37
|
+
const horizonLabel = match(horizon)
|
|
38
|
+
.with({ kind: "none" }, () => null)
|
|
39
|
+
.with({ kind: "trust" }, (trust) => (unconfirmed ? null : formatHorizonRelative(trust)))
|
|
40
|
+
.with({ kind: "expiry" }, (expiry) => formatHorizonRelative(expiry))
|
|
41
|
+
.exhaustive();
|
|
42
|
+
return (_jsxs("div", { className: "flex flex-col gap-2 rounded-lg border border-muted-border p-3", children: [_jsxs("div", { className: "flex items-start gap-3", children: [_jsx(Checkbox, { checked: checked, onCheckedChange: onToggleChecked, className: "mt-0.5 shrink-0" }), _jsxs("div", { className: "flex flex-col gap-1.5 flex-1 min-w-0", children: [_jsx("span", { className: "typography-caption-medium text-default-foreground", children: conflict.label }), conflict.description && (_jsx("span", { className: "typography-small text-muted-foreground line-clamp-2", children: conflict.description })), conflict.reason && _jsx("span", { className: "typography-tiny text-accent-foreground italic", children: conflict.reason }), _jsxs("div", { className: "flex items-center gap-1.5 flex-wrap typography-tiny text-muted-foreground mt-0.5", children: [_jsx(KindBadge, { kind: conflict.kind }), _jsxs(Badge, { size: "sm", variant: "secondary", className: "capitalize", children: [_jsx("span", { className: cn("size-1.5 rounded-full shrink-0", importanceDotClass[conflict.importance]) }), importanceLabels[conflict.importance] ?? "Medium importance"] }), unconfirmed && (_jsxs(_Fragment, { children: [_jsx(MetaSeparator, {}), _jsx("span", { className: "text-warning-foreground", children: "Unconfirmed \u2014 no longer pre-loaded" })] })), horizonLabel && (_jsxs(_Fragment, { children: [_jsx(MetaSeparator, {}), _jsx("span", { children: horizonLabel })] })), showAuthor && (_jsxs(_Fragment, { children: [_jsx(MetaSeparator, {}), _jsxs("span", { children: ["Added by ", formatAuthor(conflict.createdBy, currentUserId)] })] }))] })] })] }), showMerge && isPresent(conflict.currentTeams) && (_jsxs("div", { className: "ml-8 flex flex-col gap-1.5", children: [_jsx("div", { className: "flex flex-wrap gap-1", children: conflict.currentTeams.map((g) => (_jsx("span", { className: "inline-flex items-center rounded-full px-2 py-0.5 typography-tiny bg-muted text-muted-foreground", children: g.replace(/^\//, "") }, g))) }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { checked: merging, onCheckedChange: onToggleMerge, disabled: !checked }), _jsx("span", { className: "typography-small text-muted-foreground", children: "Merge teams (union of old + new teams)" })] })] }))] }));
|
|
43
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type ConflictTimeoutFooterProps = {
|
|
2
|
+
onCancel: () => void;
|
|
3
|
+
onConfirm: () => void;
|
|
4
|
+
isSaving: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare function ConflictTimeoutFooter(props: ConflictTimeoutFooterProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=ConflictTimeoutFooter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConflictTimeoutFooter.d.ts","sourceRoot":"","sources":["../../../../src/routes/memories/components/ConflictTimeoutFooter.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,2CAatE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button } from "#components/button/index";
|
|
3
|
+
export function ConflictTimeoutFooter(props) {
|
|
4
|
+
const { onCancel, onConfirm, isSaving } = props;
|
|
5
|
+
return (_jsxs(_Fragment, { children: [_jsx("p", { className: "typography-small text-muted-foreground mr-auto", children: "Conflict check timed out. Save without checking?" }), _jsx(Button, { variant: "tertiary", onClick: onCancel, disabled: isSaving, children: "Cancel" }), _jsx(Button, { onClick: onConfirm, disabled: isSaving, children: isSaving ? "Saving…" : "Save anyway" })] }));
|
|
6
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export type ConsolidationMemoryView = {
|
|
2
|
+
iri: string;
|
|
3
|
+
label: string;
|
|
4
|
+
description?: string | null;
|
|
5
|
+
teams?: readonly string[] | null;
|
|
6
|
+
};
|
|
7
|
+
export type ReviewProposalKind = "duplicate" | "pattern";
|
|
8
|
+
export type ConsolidationClusterView = {
|
|
9
|
+
memories: ConsolidationMemoryView[];
|
|
10
|
+
reason: string;
|
|
11
|
+
suggestedLabel: string;
|
|
12
|
+
suggestedDescription: string;
|
|
13
|
+
kind?: ReviewProposalKind;
|
|
14
|
+
};
|
|
15
|
+
export type ConsolidationDecision = {
|
|
16
|
+
memoryIris: string[];
|
|
17
|
+
label: string;
|
|
18
|
+
description: string;
|
|
19
|
+
kind: ReviewProposalKind;
|
|
20
|
+
};
|
|
21
|
+
export type ReviewCopy = {
|
|
22
|
+
intro: string;
|
|
23
|
+
labelField: string;
|
|
24
|
+
descriptionField: string;
|
|
25
|
+
confirm: string;
|
|
26
|
+
};
|
|
27
|
+
export declare const consolidationCopy: ReviewCopy;
|
|
28
|
+
export declare const abstractionCopy: ReviewCopy;
|
|
29
|
+
export declare function reviewCopyFor(kind: ReviewProposalKind | undefined): ReviewCopy;
|
|
30
|
+
export declare const reviewDialogTitle = "Review redundant memories";
|
|
31
|
+
export declare function consolidationSummary(clusterCount: number, index: number, isLoading: boolean, timedOut?: boolean, failed?: boolean): string;
|
|
32
|
+
export declare function consolidationProgressLabel(candidateCount: number, limit?: number): string;
|
|
33
|
+
export declare function consolidationCoverageNote(comparedCount: number | null | undefined, candidateCount: number, checkCompleted?: boolean): string | null;
|
|
34
|
+
export declare function mergedAudienceNote(memories: readonly ConsolidationMemoryView[]): string | null;
|
|
35
|
+
export declare const consolidationSlowAfterMs = 8000;
|
|
36
|
+
export type ConsolidationProgressProps = {
|
|
37
|
+
candidateCount: number;
|
|
38
|
+
};
|
|
39
|
+
export declare function ConsolidationProgress(props: ConsolidationProgressProps): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
export type ConsolidationClusterReviewProps = {
|
|
41
|
+
cluster: ConsolidationClusterView;
|
|
42
|
+
label: string;
|
|
43
|
+
description: string;
|
|
44
|
+
onLabelChange: (value: string) => void;
|
|
45
|
+
onDescriptionChange: (value: string) => void;
|
|
46
|
+
};
|
|
47
|
+
export declare function ConsolidationClusterReview(props: ConsolidationClusterReviewProps): import("react/jsx-runtime").JSX.Element;
|
|
48
|
+
export type ConsolidationReviewDialogProps = {
|
|
49
|
+
open: boolean;
|
|
50
|
+
clusters: ConsolidationClusterView[];
|
|
51
|
+
isLoading: boolean;
|
|
52
|
+
isSaving: boolean;
|
|
53
|
+
candidateCount: number;
|
|
54
|
+
comparedCount: number | null;
|
|
55
|
+
timedOut?: boolean;
|
|
56
|
+
errorMessage?: string | null;
|
|
57
|
+
onMerge: (decision: ConsolidationDecision) => void;
|
|
58
|
+
onClose: () => void;
|
|
59
|
+
};
|
|
60
|
+
export declare function ConsolidationReviewDialog(props: ConsolidationReviewDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
61
|
+
//# sourceMappingURL=ConsolidationReviewDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsolidationReviewDialog.d.ts","sourceRoot":"","sources":["../../../../src/routes/memories/components/ConsolidationReviewDialog.tsx"],"names":[],"mappings":"AAgBA,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,SAAS,CAAC;AAEzD,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,uBAAuB,EAAE,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,kBAAkB,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,UAK/B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,UAM7B,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,kBAAkB,GAAG,SAAS,GAAG,UAAU,CAE9E;AAED,eAAO,MAAM,iBAAiB,8BAA8B,CAAC;AAE7D,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,EAClB,QAAQ,UAAQ,EAChB,MAAM,UAAQ,GACb,MAAM,CAWR;AAED,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,SAA8B,GAAG,MAAM,CAI9G;AAED,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACxC,cAAc,EAAE,MAAM,EACtB,cAAc,UAAO,GACpB,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,uBAAuB,EAAE,GAAG,MAAM,GAAG,IAAI,CAM9F;AAED,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C,MAAM,MAAM,0BAA0B,GAAG;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,2CAoBtE;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC5C,OAAO,EAAE,wBAAwB,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,+BAA+B,2CAkChF;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,wBAAwB,EAAE,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACnD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAMF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,8BAA8B,2CA8F9E"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { consolidationCandidateLimit } from "@manta-eu/client/shared/memory-consolidation-limits";
|
|
3
|
+
import { unionOfTeams } from "@manta-eu/client/shared/memory-teams";
|
|
4
|
+
import { isPresent } from "@manta-eu/lib/present";
|
|
5
|
+
import { useCallback, useEffect, useState } from "react";
|
|
6
|
+
import { Button } from "#components/button/index";
|
|
7
|
+
import { Input, Textarea } from "#components/input/index";
|
|
8
|
+
import { Loader } from "#components/loader/index";
|
|
9
|
+
import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "#components/modal/index";
|
|
10
|
+
export const consolidationCopy = {
|
|
11
|
+
intro: "These say the same thing. Merging them loses nothing.",
|
|
12
|
+
labelField: "Merged label",
|
|
13
|
+
descriptionField: "Merged description",
|
|
14
|
+
confirm: "Merge",
|
|
15
|
+
};
|
|
16
|
+
export const abstractionCopy = {
|
|
17
|
+
intro: "These are instances of one broader rule. The general memory replaces them, so anything true of only some of them is lost.",
|
|
18
|
+
labelField: "General label",
|
|
19
|
+
descriptionField: "General description",
|
|
20
|
+
confirm: "Replace with the general memory",
|
|
21
|
+
};
|
|
22
|
+
export function reviewCopyFor(kind) {
|
|
23
|
+
return kind === "pattern" ? abstractionCopy : consolidationCopy;
|
|
24
|
+
}
|
|
25
|
+
export const reviewDialogTitle = "Review redundant memories";
|
|
26
|
+
export function consolidationSummary(clusterCount, index, isLoading, timedOut = false, failed = false) {
|
|
27
|
+
if (isLoading)
|
|
28
|
+
return "Looking for memories that say the same thing, and for patterns worth stating once…";
|
|
29
|
+
if (clusterCount > 0 && (timedOut || failed)) {
|
|
30
|
+
const stopped = timedOut ? "ran out of time" : "could not finish";
|
|
31
|
+
return `The check ${stopped}, but found ${clusterCount} ${clusterCount === 1 ? "group" : "groups"} before stopping. Group ${index + 1} of ${clusterCount}.`;
|
|
32
|
+
}
|
|
33
|
+
if (timedOut)
|
|
34
|
+
return "The check ran out of time, so nothing was compared. Try again on a smaller scope.";
|
|
35
|
+
if (failed)
|
|
36
|
+
return "The check could not finish, so nothing was compared.";
|
|
37
|
+
if (clusterCount === 0)
|
|
38
|
+
return "Nothing to clean up. Every memory in this scope is distinct and specific to itself.";
|
|
39
|
+
if (index >= clusterCount)
|
|
40
|
+
return `You have reviewed all ${clusterCount} groups.`;
|
|
41
|
+
return `Group ${index + 1} of ${clusterCount}.`;
|
|
42
|
+
}
|
|
43
|
+
export function consolidationProgressLabel(candidateCount, limit = consolidationCandidateLimit) {
|
|
44
|
+
if (candidateCount <= 0)
|
|
45
|
+
return "Comparing your memories…";
|
|
46
|
+
if (candidateCount > limit)
|
|
47
|
+
return `Comparing ${limit} of ${candidateCount} memories…`;
|
|
48
|
+
return `Comparing ${candidateCount} memories…`;
|
|
49
|
+
}
|
|
50
|
+
export function consolidationCoverageNote(comparedCount, candidateCount, checkCompleted = true) {
|
|
51
|
+
if (!checkCompleted || comparedCount == null)
|
|
52
|
+
return null;
|
|
53
|
+
if (candidateCount < 2)
|
|
54
|
+
return null;
|
|
55
|
+
if (comparedCount >= candidateCount)
|
|
56
|
+
return null;
|
|
57
|
+
return `${comparedCount} of ${candidateCount} memories were compared; the rest had nothing resembling them.`;
|
|
58
|
+
}
|
|
59
|
+
export function mergedAudienceNote(memories) {
|
|
60
|
+
const perMemory = memories.map((m) => new Set(m.teams ?? []));
|
|
61
|
+
const union = unionOfTeams(memories.map((m) => m.teams));
|
|
62
|
+
if (!isPresent(union) || perMemory.every((teams) => teams.size === union.length))
|
|
63
|
+
return null;
|
|
64
|
+
return `These are not all shared with the same teams. The merged memory goes to all of them: ${[...union].sort().join(", ")}.`;
|
|
65
|
+
}
|
|
66
|
+
export const consolidationSlowAfterMs = 8_000;
|
|
67
|
+
export function ConsolidationProgress(props) {
|
|
68
|
+
const { candidateCount } = props;
|
|
69
|
+
const [slow, setSlow] = useState(false);
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
const timer = setTimeout(() => setSlow(true), consolidationSlowAfterMs);
|
|
72
|
+
return () => clearTimeout(timer);
|
|
73
|
+
}, []);
|
|
74
|
+
return (_jsxs("div", { className: "flex flex-col items-center gap-3 py-10 text-center", children: [_jsx(Loader, { className: "size-6" }), _jsx("p", { className: "typography-caption-medium text-default-foreground", children: consolidationProgressLabel(candidateCount) }), _jsx("p", { className: "typography-small text-muted-foreground max-w-sm", children: slow
|
|
75
|
+
? "Still comparing — this can take up to a minute on a large scope."
|
|
76
|
+
: "This usually takes a few seconds." })] }));
|
|
77
|
+
}
|
|
78
|
+
export function ConsolidationClusterReview(props) {
|
|
79
|
+
const { cluster, label, description, onLabelChange, onDescriptionChange } = props;
|
|
80
|
+
const copy = reviewCopyFor(cluster.kind);
|
|
81
|
+
const audienceNote = mergedAudienceNote(cluster.memories);
|
|
82
|
+
return (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsx("p", { className: "typography-small-medium text-default-foreground", children: copy.intro }), _jsx("p", { className: "typography-small text-muted-foreground", children: cluster.reason }), audienceNote && _jsx("p", { className: "typography-small text-warning-foreground", children: audienceNote }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsxs("span", { className: "typography-small-medium", children: ["These ", cluster.memories.length, " memories will be replaced by one:"] }), cluster.memories.map((memory) => (_jsxs("div", { className: "rounded-lg border border-muted-border p-3", children: [_jsx("div", { className: "typography-caption-medium text-default-foreground", children: memory.label }), _jsx("div", { className: "typography-small text-muted-foreground", children: memory.description })] }, memory.iri)))] }), _jsxs("label", { className: "flex flex-col gap-1", children: [_jsx("span", { className: "typography-small-medium", children: copy.labelField }), _jsx(Input, { value: label, onChange: (e) => onLabelChange(e.target.value) })] }), _jsxs("label", { className: "flex flex-col gap-1", children: [_jsx("span", { className: "typography-small-medium", children: copy.descriptionField }), _jsx(Textarea, { rows: 3, value: description, onChange: (e) => onDescriptionChange(e.target.value) })] })] }));
|
|
83
|
+
}
|
|
84
|
+
function clusterKey(cluster) {
|
|
85
|
+
return cluster ? cluster.memories.map((m) => m.iri).join("|") : "";
|
|
86
|
+
}
|
|
87
|
+
export function ConsolidationReviewDialog(props) {
|
|
88
|
+
const { open, clusters, isLoading, isSaving, candidateCount, comparedCount, timedOut, errorMessage, onMerge, onClose, } = props;
|
|
89
|
+
const [index, setIndex] = useState(0);
|
|
90
|
+
const [draft, setDraft] = useState({ key: "", label: "", description: "" });
|
|
91
|
+
const current = clusters[index];
|
|
92
|
+
const copy = reviewCopyFor(current?.kind);
|
|
93
|
+
const currentKey = clusterKey(current);
|
|
94
|
+
const coverageNote = consolidationCoverageNote(comparedCount, candidateCount, !isPresent(errorMessage));
|
|
95
|
+
useEffect(() => {
|
|
96
|
+
if (open)
|
|
97
|
+
setIndex(0);
|
|
98
|
+
}, [open]);
|
|
99
|
+
if (draft.key !== currentKey) {
|
|
100
|
+
setDraft({
|
|
101
|
+
key: currentKey,
|
|
102
|
+
label: current?.suggestedLabel ?? "",
|
|
103
|
+
description: current?.suggestedDescription ?? "",
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
const { label, description } = draft;
|
|
107
|
+
const setLabel = useCallback((value) => setDraft((d) => ({ ...d, label: value })), []);
|
|
108
|
+
const setDescription = useCallback((value) => setDraft((d) => ({ ...d, description: value })), []);
|
|
109
|
+
const handleMerge = useCallback(() => {
|
|
110
|
+
if (!current)
|
|
111
|
+
return;
|
|
112
|
+
onMerge({
|
|
113
|
+
memoryIris: current.memories.map((m) => m.iri),
|
|
114
|
+
label: label.trim(),
|
|
115
|
+
description: description.trim(),
|
|
116
|
+
kind: current.kind ?? "duplicate",
|
|
117
|
+
});
|
|
118
|
+
}, [current, label, description, onMerge]);
|
|
119
|
+
const handleSkip = useCallback(() => setIndex((i) => Math.min(i + 1, clusters.length)), [clusters.length]);
|
|
120
|
+
return (_jsx(Dialog, { open: open, onOpenChange: (next) => !next && onClose(), children: _jsxs(DialogContent, { className: "max-w-2xl", children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { text: reviewDialogTitle }), _jsx(DialogDescription, { children: consolidationSummary(clusters.length, index, isLoading, timedOut, isPresent(errorMessage)) })] }), errorMessage && _jsx("p", { className: "typography-small text-error-foreground", children: errorMessage }), isLoading && _jsx(ConsolidationProgress, { candidateCount: candidateCount }), !isLoading && coverageNote && _jsx("p", { className: "typography-small text-muted-foreground", children: coverageNote }), !isLoading && current && (_jsx(ConsolidationClusterReview, { cluster: current, label: label, description: description, onLabelChange: setLabel, onDescriptionChange: setDescription })), _jsxs(DialogFooter, { children: [_jsx(Button, { variant: "ghost", onClick: onClose, children: "Close" }), !isLoading && current && (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "secondary", onClick: handleSkip, disabled: isSaving, children: "Skip" }), _jsx(Button, { onClick: handleMerge, disabled: isSaving || !isPresent(label.trim()), children: isSaving ? "Saving…" : `${copy.confirm} (${current.memories.length})` })] }))] })] }) }));
|
|
121
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type MemoriesEmptyStateProps = {
|
|
2
|
+
isOperator?: boolean;
|
|
3
|
+
onAdd: () => void;
|
|
4
|
+
};
|
|
5
|
+
export declare function MemoriesEmptyState(props: MemoriesEmptyStateProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
type CompanyMemoriesEmptyStateProps = {
|
|
7
|
+
onAdd: () => void;
|
|
8
|
+
onSetUp: () => void;
|
|
9
|
+
};
|
|
10
|
+
export declare function CompanyMemoriesEmptyState(props: CompanyMemoriesEmptyStateProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare function CapturedMemoriesEmptyState(): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export type GroupMemoriesEmptyStateProps = {
|
|
13
|
+
isOperator?: boolean;
|
|
14
|
+
onAdd?: () => void;
|
|
15
|
+
};
|
|
16
|
+
export declare function GroupMemoriesEmptyState(props: GroupMemoriesEmptyStateProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=EmptyStates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyStates.d.ts","sourceRoot":"","sources":["../../../../src/routes/memories/components/EmptyStates.tsx"],"names":[],"mappings":"AAKA,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAchE;AAED,KAAK,8BAA8B,GAAG;IACpC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,8BAA8B,2CAmB9E;AAED,wBAAgB,0BAA0B,4CAYzC;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,2CAoB1E"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Brain, Building2, MessageSquare, Plus, Users } from "lucide-react";
|
|
3
|
+
import { Link } from "react-router";
|
|
4
|
+
import { Button } from "#components/button/index";
|
|
5
|
+
import { EmptyState } from "#components/empty-state/index";
|
|
6
|
+
export function MemoriesEmptyState(props) {
|
|
7
|
+
const { onAdd } = props;
|
|
8
|
+
return (_jsx(EmptyState, { icon: Brain, title: "No memories yet", description: "Memories help Manta personalize every conversation. Add facts, preferences, or objectives you want Manta to always keep in mind.", children: _jsx(Button, { onClick: onAdd, icon: Plus, children: "Add memory" }) }));
|
|
9
|
+
}
|
|
10
|
+
export function CompanyMemoriesEmptyState(props) {
|
|
11
|
+
const { onAdd, onSetUp } = props;
|
|
12
|
+
return (_jsx(EmptyState, { icon: Building2, title: "No company memories yet", description: "Add shared context that Manta uses for everyone in the company.", children: _jsxs("div", { className: "flex w-full flex-col gap-2 sm:w-auto sm:flex-row", children: [_jsx(Button, { className: "w-full sm:w-auto", onClick: onSetUp, children: "Set up with guided questions" }), _jsx(Button, { className: "w-full sm:w-auto", variant: "ghost", onClick: onAdd, icon: Plus, children: "Add manually" })] }) }));
|
|
13
|
+
}
|
|
14
|
+
export function CapturedMemoriesEmptyState() {
|
|
15
|
+
return (_jsx(EmptyState, { icon: MessageSquare, title: "No captured memories yet", description: "Manta captures useful context from your conversations automatically. Start chatting and memories will appear here.", children: _jsx(Button, { asChild: true, children: _jsx(Link, { to: "/", children: "Start chatting" }) }) }));
|
|
16
|
+
}
|
|
17
|
+
export function GroupMemoriesEmptyState(props) {
|
|
18
|
+
const { isOperator, onAdd } = props;
|
|
19
|
+
return (_jsx(EmptyState, { icon: Users, title: "No team memories yet", description: isOperator
|
|
20
|
+
? "Add shared context that Manta uses for specific teams in the company."
|
|
21
|
+
: "Your team hasn't added any shared memories yet.", children: onAdd && (_jsx(Button, { onClick: onAdd, icon: Plus, children: "Add team memory" })) }));
|
|
22
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type ImportanceSliderProps = {
|
|
2
|
+
value: number;
|
|
3
|
+
onChange: (v: number) => void;
|
|
4
|
+
className?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function ImportanceSlider(props: ImportanceSliderProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export type ImportanceIconProps = {
|
|
8
|
+
value: number;
|
|
9
|
+
};
|
|
10
|
+
export declare function ImportanceIcon(props: ImportanceIconProps): import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
//# sourceMappingURL=ImportanceSlider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImportanceSlider.d.ts","sourceRoot":"","sources":["../../../../src/routes/memories/components/ImportanceSlider.tsx"],"names":[],"mappings":"AAqBA,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,2CAyC5D;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,kDAYxD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { isPresent } from "@manta-eu/lib/present";
|
|
3
|
+
import { ChevronDown, ChevronUp, ChevronsUp, Equal, Minus } from "lucide-react";
|
|
4
|
+
import { Slider } from "#components/slider/index";
|
|
5
|
+
import { cn } from "#lib/utils";
|
|
6
|
+
const importanceSteps = [1, 2, 3, 4, 5];
|
|
7
|
+
const importanceConfig = {
|
|
8
|
+
1: { icon: Minus, className: "text-muted-foreground/50", label: "Disabled" },
|
|
9
|
+
2: { icon: ChevronDown, className: "text-muted-foreground", label: "Low" },
|
|
10
|
+
3: { icon: Equal, className: "text-default-foreground/60", label: "Medium" },
|
|
11
|
+
4: { icon: ChevronUp, className: "text-warning-foreground", label: "High" },
|
|
12
|
+
5: { icon: ChevronsUp, className: "text-error-foreground", label: "Critical" },
|
|
13
|
+
};
|
|
14
|
+
export function ImportanceSlider(props) {
|
|
15
|
+
const { value, onChange, className } = props;
|
|
16
|
+
return (_jsxs("div", { className: cn("flex flex-col gap-2 w-full", className), onClick: (e) => e.stopPropagation(), children: [_jsx(Slider, { min: 1, max: 5, step: 1, value: [value], onValueChange: (vals) => {
|
|
17
|
+
const v = vals[0];
|
|
18
|
+
if (isPresent(v))
|
|
19
|
+
onChange(v);
|
|
20
|
+
}, className: "w-full", "aria-label": "Importance" }), _jsx("div", { className: "flex justify-between px-2", children: importanceSteps.map((step) => (_jsx("div", { className: cn("w-0 overflow-visible flex", step === 1 ? "justify-start" : step === 5 ? "justify-end" : "justify-center"), children: _jsx("span", { onClick: () => onChange(step), className: cn("whitespace-nowrap cursor-pointer select-none", step === value
|
|
21
|
+
? "typography-tiny-medium text-default-foreground"
|
|
22
|
+
: "typography-tiny text-muted-foreground hover:text-default-foreground"), children: importanceConfig[step]?.label }) }, step))) })] }));
|
|
23
|
+
}
|
|
24
|
+
export function ImportanceIcon(props) {
|
|
25
|
+
const { value } = props;
|
|
26
|
+
const config = importanceConfig[value];
|
|
27
|
+
if (!config)
|
|
28
|
+
return null;
|
|
29
|
+
const Icon = config.icon;
|
|
30
|
+
return (_jsxs("div", { className: cn("inline-flex items-center gap-1", config.className), "aria-label": `Importance: ${config.label}`, children: [_jsx(Icon, { className: "size-4 shrink-0" }), _jsx("span", { className: "typography-small", children: config.label })] }));
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveContextTab.d.ts","sourceRoot":"","sources":["../../../../src/routes/memories/components/LiveContextTab.tsx"],"names":[],"mappings":"AAQA,KAAK,mBAAmB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9C,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CA4CxD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { humanPlural } from "@manta-eu/lib/humanize";
|
|
3
|
+
import { isPresent } from "@manta-eu/lib/present";
|
|
4
|
+
import { ChevronRight, Layers, TriangleAlert } from "lucide-react";
|
|
5
|
+
import { useLiveContext } from "../hooks/useLiveContext.js";
|
|
6
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "#components/collapsible/index";
|
|
7
|
+
import { EmptyState } from "#components/empty-state/index";
|
|
8
|
+
import { Skeleton } from "#components/skeleton/index";
|
|
9
|
+
export function LiveContextTab(props) {
|
|
10
|
+
const { query = "" } = props;
|
|
11
|
+
const { data: groups, isLoading, error } = useLiveContext();
|
|
12
|
+
if (isLoading) {
|
|
13
|
+
return _jsx(LiveContextSkeleton, {});
|
|
14
|
+
}
|
|
15
|
+
if (error) {
|
|
16
|
+
return (_jsx(EmptyState, { icon: TriangleAlert, iconClassName: "text-error-foreground", title: "Failed to load Live Context", description: error instanceof Error ? error.message : "An unexpected error occurred." }));
|
|
17
|
+
}
|
|
18
|
+
if (!isPresent(groups)) {
|
|
19
|
+
return (_jsx(EmptyState, { icon: Layers, title: "No Live Context yet", description: 'Live Context surfaces high-importance company memories and facts. Add company memories with importance "high" or "critical" to see them here.' }));
|
|
20
|
+
}
|
|
21
|
+
const parsedQuery = String(query).trim().toLowerCase();
|
|
22
|
+
const filtered = isPresent(parsedQuery)
|
|
23
|
+
? groups.filter((g) => g.typeLabel.toLowerCase().includes(parsedQuery))
|
|
24
|
+
: groups;
|
|
25
|
+
return (_jsxs("div", { className: "flex flex-col gap-6 max-w-3xl mx-auto", children: [!isPresent(filtered) && (_jsx(EmptyState, { icon: Layers, title: "No groups match", description: `No groups found for "${query}".` })), filtered.map((group) => (_jsx(EntityGroupSection, { group: group }, group.type)))] }));
|
|
26
|
+
}
|
|
27
|
+
function EntityGroupSection(props) {
|
|
28
|
+
const { group } = props;
|
|
29
|
+
return (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "typography-small-medium text-default-foreground", children: group.typeLabel }), _jsx("span", { className: "inline-flex items-center rounded-full px-2 py-0.5 typography-tiny bg-faint text-muted-foreground", children: group.entities.length }), _jsx("span", { className: "typography-tiny text-muted-foreground font-mono", children: group.type })] }), _jsx("div", { className: "flex flex-col rounded-xl border border-muted-border bg-card overflow-hidden divide-y divide-muted-border", children: group.entities.map((entity) => (_jsx(EntityCard, { compactedIri: entity.compactedIri, properties: entity.properties }, entity.iri))) })] }));
|
|
30
|
+
}
|
|
31
|
+
function EntityCard(props) {
|
|
32
|
+
const { compactedIri, properties } = props;
|
|
33
|
+
return (_jsxs(Collapsible, { children: [_jsxs(CollapsibleTrigger, { className: "group flex w-full items-center gap-2 px-4 py-3 text-left hover:bg-faint transition-colors", children: [_jsx(ChevronRight, { className: "size-3.5 shrink-0 text-muted-foreground transition-transform group-data-[state=open]:rotate-90" }), _jsx("span", { className: "typography-small font-mono text-default-foreground truncate", children: compactedIri }), _jsxs("span", { className: "ml-auto shrink-0 typography-tiny text-muted-foreground", children: [properties.length, " ", humanPlural("property", properties.length)] })] }), _jsx(CollapsibleContent, { children: _jsx("div", { className: "border-t border-muted-border", children: _jsx("table", { className: "w-full text-left", children: _jsx("tbody", { children: properties.map((prop) => (_jsxs("tr", { className: "border-b border-muted-border last:border-0", children: [_jsx("td", { className: "px-4 py-2 align-top w-52 shrink-0", children: _jsx("span", { className: "typography-tiny font-mono text-muted-foreground", children: prop.predicate }) }), _jsx("td", { className: "px-4 py-2 align-top break-all", children: _jsx("span", { className: `typography-small ${prop.isUri ? "text-accent-foreground font-mono" : "text-default-foreground"}`, children: prop.value }) })] }, prop.predicate))) }) }) }) })] }));
|
|
34
|
+
}
|
|
35
|
+
function LiveContextSkeleton() {
|
|
36
|
+
return (_jsx("div", { className: "flex flex-col gap-6 max-w-3xl mx-auto", children: Array.from({ length: 3 }, (_, i) => (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Skeleton, { className: "h-4 w-32 rounded-md" }), _jsx(Skeleton, { className: "h-4 w-6 rounded-full" })] }), _jsx("div", { className: "rounded-xl border border-muted-border overflow-hidden", children: Array.from({ length: i + 1 }, (_, j) => (_jsxs("div", { className: "flex items-center gap-2 px-4 py-3 border-b border-muted-border last:border-0", children: [_jsx(Skeleton, { className: "size-3.5 rounded-sm" }), _jsx(Skeleton, { className: "h-4 flex-1 rounded-md" })] }, `lc-skel-entity-${i}-${j}`))) })] }, `lc-skel-group-${i}`))) }));
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoadingSkeleton.d.ts","sourceRoot":"","sources":["../../../../src/routes/memories/components/LoadingSkeleton.tsx"],"names":[],"mappings":"AAKA,wBAAgB,eAAe,4CAqB9B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Skeleton } from "#components/skeleton/index";
|
|
3
|
+
import { TableSkeleton } from "#components/table-skeleton/index";
|
|
4
|
+
const gridColsClassName = "grid-cols-[16fr_24fr_11fr_9fr_7fr_10fr_9fr_10fr_4fr]";
|
|
5
|
+
export function LoadingSkeleton() {
|
|
6
|
+
return (_jsx(TableSkeleton, { gridColsClassName: gridColsClassName, headerColumnCount: 9, rows: 5, renderRow: () => (_jsxs(_Fragment, { children: [_jsx(Skeleton, { className: "h-4 w-3/4 rounded-md" }), _jsx(Skeleton, { className: "h-4 w-5/6 rounded-md" }), _jsx(Skeleton, { className: "h-5 w-3/4 rounded-full" }), _jsx(Skeleton, { className: "h-5 w-2/3 rounded-full" }), _jsx(Skeleton, { className: "size-5 rounded-md" }), _jsx(Skeleton, { className: "h-4 w-3/4 rounded-md" }), _jsx(Skeleton, { className: "h-4 w-2/3 rounded-md" }), _jsx(Skeleton, { className: "h-4 w-3/4 rounded-md" }), _jsx(Skeleton, { className: "size-4 rounded-md" })] })) }));
|
|
7
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { GQLMemoryKind, type GQLMemorySchema } from "@manta-eu/client";
|
|
2
|
+
import type { Table } from "@tanstack/react-table";
|
|
3
|
+
import type { ReactNode } from "react";
|
|
4
|
+
import type { ImportanceFilter, StatusFilterKey } from "../hooks/useMemoryTable.js";
|
|
5
|
+
export type KindFilter = "ALL" | GQLMemoryKind;
|
|
6
|
+
export type SchemaFilter = "ALL" | "NONE" | string;
|
|
7
|
+
export declare const kindFilterOptions: {
|
|
8
|
+
id: KindFilter;
|
|
9
|
+
label: string;
|
|
10
|
+
}[];
|
|
11
|
+
type MemoriesFiltersProps<TData> = {
|
|
12
|
+
tabs?: ReactNode;
|
|
13
|
+
kindFilter: KindFilter;
|
|
14
|
+
onKindFilterChange: (kind: KindFilter) => void;
|
|
15
|
+
searchQuery: string;
|
|
16
|
+
onSearchQueryChange: (query: string) => void;
|
|
17
|
+
importanceFilter: ImportanceFilter;
|
|
18
|
+
onImportanceFilterChange: (importance: ImportanceFilter) => void;
|
|
19
|
+
table: Table<TData>;
|
|
20
|
+
columnLabels?: Record<string, string>;
|
|
21
|
+
columnDefaultOrder?: string[];
|
|
22
|
+
schemas?: GQLMemorySchema[];
|
|
23
|
+
schemaFilter?: SchemaFilter;
|
|
24
|
+
onSchemaFilterChange?: (iri: SchemaFilter) => void;
|
|
25
|
+
statusFilters?: Record<StatusFilterKey, boolean>;
|
|
26
|
+
onStatusFilterChange?: (key: StatusFilterKey, value: boolean) => void;
|
|
27
|
+
visibleStatusFilters?: StatusFilterKey[];
|
|
28
|
+
};
|
|
29
|
+
export declare function MemoriesFilters<TData>(props: MemoriesFiltersProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=MemoriesFilters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoriesFilters.d.ts","sourceRoot":"","sources":["../../../../src/routes/memories/components/MemoriesFilters.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAuBjF,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,aAAa,CAAC;AAC/C,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AA2BnD,eAAO,MAAM,iBAAiB,EAAE;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAMhE,CAAC;AAWF,KAAK,oBAAoB,CAAC,KAAK,IAAI;IACjC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,kBAAkB,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,wBAAwB,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACjE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACjD,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACtE,oBAAoB,CAAC,EAAE,eAAe,EAAE,CAAC;CAC1C,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,2CAkTxE"}
|