@manta-eu/react 0.11.0 → 0.13.0
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 +59 -0
- package/dist/components/AppErrorBoundary.d.ts.map +1 -1
- package/dist/components/AppErrorBoundary.js +14 -11
- package/dist/components/AppErrorBoundary.js.map +1 -1
- package/dist/components/app-gate/AppGate.d.ts +8 -0
- package/dist/components/app-gate/AppGate.d.ts.map +1 -0
- package/dist/components/app-gate/AppGate.js +68 -0
- package/dist/components/app-gate/AppGate.js.map +1 -0
- package/dist/components/app-gate/AwaitingDatastoreStatus.d.ts +7 -0
- package/dist/components/app-gate/AwaitingDatastoreStatus.d.ts.map +1 -0
- package/dist/components/app-gate/AwaitingDatastoreStatus.js +19 -0
- package/dist/components/app-gate/AwaitingDatastoreStatus.js.map +1 -0
- package/dist/components/app-gate/EnterDatastoreRoute.d.ts +2 -0
- package/dist/components/app-gate/EnterDatastoreRoute.d.ts.map +1 -0
- package/dist/components/app-gate/EnterDatastoreRoute.js +25 -0
- package/dist/components/app-gate/EnterDatastoreRoute.js.map +1 -0
- package/dist/components/app-gate/ErrorRoute.d.ts +2 -0
- package/dist/components/app-gate/ErrorRoute.d.ts.map +1 -0
- package/dist/components/app-gate/ErrorRoute.js +27 -0
- package/dist/components/app-gate/ErrorRoute.js.map +1 -0
- package/dist/components/app-gate/FailureAlert.d.ts +5 -0
- package/dist/components/app-gate/FailureAlert.d.ts.map +1 -0
- package/dist/components/app-gate/FailureAlert.js +9 -0
- package/dist/components/app-gate/FailureAlert.js.map +1 -0
- package/dist/components/app-gate/NoDatastoreAccess.d.ts +8 -0
- package/dist/components/app-gate/NoDatastoreAccess.d.ts.map +1 -0
- package/dist/components/app-gate/NoDatastoreAccess.js +9 -0
- package/dist/components/app-gate/NoDatastoreAccess.js.map +1 -0
- package/dist/components/app-gate/NotFoundRoute.d.ts +2 -0
- package/dist/components/app-gate/NotFoundRoute.d.ts.map +1 -0
- package/dist/components/app-gate/NotFoundRoute.js +9 -0
- package/dist/components/app-gate/NotFoundRoute.js.map +1 -0
- package/dist/components/app-gate/PendingInvitations.d.ts +5 -0
- package/dist/components/app-gate/PendingInvitations.d.ts.map +1 -0
- package/dist/components/app-gate/PendingInvitations.js +58 -0
- package/dist/components/app-gate/PendingInvitations.js.map +1 -0
- package/dist/components/app-gate/ServiceError.d.ts +8 -0
- package/dist/components/app-gate/ServiceError.d.ts.map +1 -0
- package/dist/components/app-gate/ServiceError.js +10 -0
- package/dist/components/app-gate/ServiceError.js.map +1 -0
- package/dist/components/app-gate/index.d.ts +3 -0
- package/dist/components/app-gate/index.d.ts.map +1 -0
- package/dist/components/app-gate/index.js +3 -0
- package/dist/components/app-gate/index.js.map +1 -0
- package/dist/components/app-gate/sdk-route-elements.d.ts +23 -0
- package/dist/components/app-gate/sdk-route-elements.d.ts.map +1 -0
- package/dist/components/app-gate/sdk-route-elements.js +35 -0
- package/dist/components/app-gate/sdk-route-elements.js.map +1 -0
- package/dist/components/app-shell/AppShell.d.ts +7 -0
- package/dist/components/app-shell/AppShell.d.ts.map +1 -0
- package/dist/components/app-shell/AppShell.js +10 -0
- package/dist/components/app-shell/AppShell.js.map +1 -0
- package/dist/components/app-shell/AppShellRoutes.d.ts +9 -0
- package/dist/components/app-shell/AppShellRoutes.d.ts.map +1 -0
- package/dist/components/app-shell/AppShellRoutes.js +20 -0
- package/dist/components/app-shell/AppShellRoutes.js.map +1 -0
- package/dist/components/app-shell/GroupDatastores.d.ts +8 -0
- package/dist/components/app-shell/GroupDatastores.d.ts.map +1 -0
- package/dist/components/app-shell/GroupDatastores.js +15 -0
- package/dist/components/app-shell/GroupDatastores.js.map +1 -0
- package/dist/components/app-shell/GroupRoute.d.ts +2 -0
- package/dist/components/app-shell/GroupRoute.d.ts.map +1 -0
- package/dist/components/app-shell/GroupRoute.js +22 -0
- package/dist/components/app-shell/GroupRoute.js.map +1 -0
- package/dist/components/app-shell/index.d.ts +3 -0
- package/dist/components/app-shell/index.d.ts.map +1 -0
- package/dist/components/app-shell/index.js +3 -0
- package/dist/components/app-shell/index.js.map +1 -0
- package/dist/components/authenticated-chat/index.d.ts +1 -2
- package/dist/components/authenticated-chat/index.d.ts.map +1 -1
- package/dist/components/authenticated-chat/index.js +1 -12
- package/dist/components/authenticated-chat/index.js.map +1 -1
- package/dist/components/chat-view/Chat.d.ts +2 -1
- package/dist/components/chat-view/Chat.d.ts.map +1 -1
- package/dist/components/chat-view/Chat.js +3 -2
- package/dist/components/chat-view/Chat.js.map +1 -1
- package/dist/components/chat-view/MessageItem.d.ts.map +1 -1
- package/dist/components/chat-view/MessageItem.js +4 -2
- package/dist/components/chat-view/MessageItem.js.map +1 -1
- package/dist/components/chat-view/tool-part-rendering.d.ts +1 -0
- package/dist/components/chat-view/tool-part-rendering.d.ts.map +1 -1
- package/dist/components/chat-view/tool-part-rendering.js +8 -1
- package/dist/components/chat-view/tool-part-rendering.js.map +1 -1
- package/dist/components/chip/index.d.ts +1 -0
- package/dist/components/chip/index.d.ts.map +1 -1
- package/dist/components/chip/index.js +2 -1
- package/dist/components/chip/index.js.map +1 -1
- package/dist/components/embedded-chat/index.d.ts +1 -1
- package/dist/components/embedded-chat/index.d.ts.map +1 -1
- package/dist/components/embedded-chat/index.js +1 -1
- package/dist/components/embedded-chat/index.js.map +1 -1
- package/dist/components/input/input-date-time.d.ts +6 -0
- package/dist/components/input/input-date-time.d.ts.map +1 -1
- package/dist/components/input/input-date-time.js +2 -1
- package/dist/components/input/input-date-time.js.map +1 -1
- package/dist/components/input/input-date.d.ts +22 -0
- package/dist/components/input/input-date.d.ts.map +1 -1
- package/dist/components/input/input-date.js +28 -14
- package/dist/components/input/input-date.js.map +1 -1
- package/dist/components/input/input-time.d.ts +9 -0
- package/dist/components/input/input-time.d.ts.map +1 -1
- package/dist/components/input/input-time.js +29 -18
- package/dist/components/input/input-time.js.map +1 -1
- package/dist/components/layouts/RouteLayout.d.ts +0 -9
- package/dist/components/layouts/RouteLayout.d.ts.map +1 -1
- package/dist/components/layouts/RouteLayout.js +7 -4
- package/dist/components/layouts/RouteLayout.js.map +1 -1
- package/dist/components/layouts/Sidebar.d.ts +1 -8
- package/dist/components/layouts/Sidebar.d.ts.map +1 -1
- package/dist/components/layouts/Sidebar.js +7 -14
- package/dist/components/layouts/Sidebar.js.map +1 -1
- package/dist/components/plan-limits/PlanLimitsDialog.d.ts +20 -0
- package/dist/components/plan-limits/PlanLimitsDialog.d.ts.map +1 -0
- package/dist/components/plan-limits/PlanLimitsDialog.js +109 -0
- package/dist/components/plan-limits/PlanLimitsDialog.js.map +1 -0
- package/dist/components/plan-limits/index.d.ts +4 -0
- package/dist/components/plan-limits/index.d.ts.map +1 -0
- package/dist/components/plan-limits/index.js +2 -0
- package/dist/components/plan-limits/index.js.map +1 -0
- package/dist/components/plan-limits/plan-limits-client.d.ts +15 -0
- package/dist/components/plan-limits/plan-limits-client.d.ts.map +1 -0
- package/dist/components/plan-limits/plan-limits-client.js +44 -0
- package/dist/components/plan-limits/plan-limits-client.js.map +1 -0
- package/dist/components/plan-limits/plan-limits-model.d.ts +66 -0
- package/dist/components/plan-limits/plan-limits-model.d.ts.map +1 -0
- package/dist/components/plan-limits/plan-limits-model.js +123 -0
- package/dist/components/plan-limits/plan-limits-model.js.map +1 -0
- package/dist/components/plan-limits/plan-limits-save.d.ts +31 -0
- package/dist/components/plan-limits/plan-limits-save.d.ts.map +1 -0
- package/dist/components/plan-limits/plan-limits-save.js +43 -0
- package/dist/components/plan-limits/plan-limits-save.js.map +1 -0
- package/dist/components/planning/PlanLimitsAction.d.ts +6 -0
- package/dist/components/planning/PlanLimitsAction.d.ts.map +1 -0
- package/dist/components/planning/PlanLimitsAction.js +19 -0
- package/dist/components/planning/PlanLimitsAction.js.map +1 -0
- package/dist/components/slider/index.d.ts.map +1 -1
- package/dist/components/slider/index.js +2 -1
- package/dist/components/slider/index.js.map +1 -1
- package/dist/datastore-picker/datastore-picker-rows.d.ts +7 -0
- package/dist/datastore-picker/datastore-picker-rows.d.ts.map +1 -1
- package/dist/datastore-picker/datastore-picker-rows.js +26 -22
- package/dist/datastore-picker/datastore-picker-rows.js.map +1 -1
- package/dist/globals.css +85 -2
- package/dist/hooks/use-action-plans-list.d.ts +3 -0
- package/dist/hooks/use-action-plans-list.d.ts.map +1 -1
- package/dist/hooks/use-action-plans-list.js +8 -9
- package/dist/hooks/use-action-plans-list.js.map +1 -1
- package/dist/hooks/use-activity-feed.d.ts +10 -1
- package/dist/hooks/use-activity-feed.d.ts.map +1 -1
- package/dist/hooks/use-activity-feed.js +9 -11
- package/dist/hooks/use-activity-feed.js.map +1 -1
- package/dist/hooks/use-entity.d.ts +4 -3
- package/dist/hooks/use-entity.d.ts.map +1 -1
- package/dist/hooks/use-entity.js +4 -4
- package/dist/hooks/use-entity.js.map +1 -1
- package/dist/hooks/use-manual-actions.d.ts +1 -1
- package/dist/hooks/use-manual-actions.d.ts.map +1 -1
- package/dist/hooks/use-manual-actions.js +5 -5
- package/dist/hooks/use-manual-actions.js.map +1 -1
- package/dist/hooks/use-unsaved-changes-warning.d.ts +2 -0
- package/dist/hooks/use-unsaved-changes-warning.d.ts.map +1 -0
- package/dist/hooks/use-unsaved-changes-warning.js +13 -0
- package/dist/hooks/use-unsaved-changes-warning.js.map +1 -0
- package/dist/hooks/useAuth.d.ts.map +1 -1
- package/dist/hooks/useAuth.js +4 -3
- package/dist/hooks/useAuth.js.map +1 -1
- package/dist/hooks/useChatPanelSync.d.ts.map +1 -1
- package/dist/hooks/useChatPanelSync.js +2 -3
- package/dist/hooks/useChatPanelSync.js.map +1 -1
- package/dist/hooks/useDatastoreSelection.d.ts.map +1 -1
- package/dist/hooks/useDatastoreSelection.js +11 -4
- package/dist/hooks/useDatastoreSelection.js.map +1 -1
- package/dist/hooks/useExecuteAction.d.ts +1 -0
- package/dist/hooks/useExecuteAction.d.ts.map +1 -1
- package/dist/hooks/useExecuteAction.js.map +1 -1
- package/dist/hooks/useLoginRedirect.d.ts +6 -0
- package/dist/hooks/useLoginRedirect.d.ts.map +1 -0
- package/dist/hooks/useLoginRedirect.js +51 -0
- package/dist/hooks/useLoginRedirect.js.map +1 -0
- package/dist/hooks/usePlanLimits.d.ts +18 -0
- package/dist/hooks/usePlanLimits.d.ts.map +1 -0
- package/dist/hooks/usePlanLimits.js +56 -0
- package/dist/hooks/usePlanLimits.js.map +1 -0
- package/dist/ldo-ui.d.ts +1 -1
- package/dist/ldo-ui.d.ts.map +1 -1
- package/dist/ldo-ui.js.map +1 -1
- package/dist/lib/app-tools.d.ts +18 -0
- package/dist/lib/app-tools.d.ts.map +1 -0
- package/dist/lib/app-tools.js +42 -0
- package/dist/lib/app-tools.js.map +1 -0
- package/dist/lib/chat-types.d.ts +3 -0
- package/dist/lib/chat-types.d.ts.map +1 -1
- package/dist/lib/chat-types.js.map +1 -1
- package/dist/lib/datastore-route-table.d.ts +3 -0
- package/dist/lib/datastore-route-table.d.ts.map +1 -1
- package/dist/lib/datastore-route-table.js +6 -0
- package/dist/lib/datastore-route-table.js.map +1 -1
- package/dist/lib/graphql-error.d.ts +2 -0
- package/dist/lib/graphql-error.d.ts.map +1 -0
- package/dist/lib/graphql-error.js +7 -0
- package/dist/lib/graphql-error.js.map +1 -0
- package/dist/lib/update-notice.d.ts +2 -1
- package/dist/lib/update-notice.d.ts.map +1 -1
- package/dist/lib/update-notice.js +8 -2
- package/dist/lib/update-notice.js.map +1 -1
- package/dist/providers/ActiveChatProvider.d.ts +2 -0
- package/dist/providers/ActiveChatProvider.d.ts.map +1 -1
- package/dist/providers/ActiveChatProvider.js +6 -3
- package/dist/providers/ActiveChatProvider.js.map +1 -1
- package/dist/providers/ActiveDatastoreProvider.d.ts +12 -0
- package/dist/providers/ActiveDatastoreProvider.d.ts.map +1 -1
- package/dist/providers/ActiveDatastoreProvider.js +114 -11
- 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/KnowledgeGraphStateContext.d.ts +2 -2
- package/dist/providers/KnowledgeGraphStateContext.d.ts.map +1 -1
- package/dist/providers/KnowledgeGraphStateProvider.d.ts.map +1 -1
- package/dist/providers/KnowledgeGraphStateProvider.js +8 -49
- package/dist/providers/KnowledgeGraphStateProvider.js.map +1 -1
- package/dist/providers/MantaClientProvider.d.ts.map +1 -1
- package/dist/providers/MantaClientProvider.js +3 -3
- package/dist/providers/MantaClientProvider.js.map +1 -1
- package/dist/providers/index.d.ts +3 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +2 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/routes/activity/detail/ActivityDetailRoute.d.ts.map +1 -1
- package/dist/routes/activity/detail/ActivityDetailRoute.js +1 -3
- package/dist/routes/activity/detail/ActivityDetailRoute.js.map +1 -1
- package/dist/routes/activity/index.d.ts.map +1 -1
- package/dist/routes/activity/index.js +1 -3
- package/dist/routes/activity/index.js.map +1 -1
- package/dist/routes/chat/index.d.ts +2 -21
- package/dist/routes/chat/index.d.ts.map +1 -1
- package/dist/routes/chat/index.js +4 -2
- package/dist/routes/chat/index.js.map +1 -1
- package/dist/routes/data-collection/index.d.ts.map +1 -1
- package/dist/routes/data-collection/index.js +1 -3
- package/dist/routes/data-collection/index.js.map +1 -1
- package/dist/routes/data-explorer/components/DataExplorerLayout.d.ts.map +1 -1
- package/dist/routes/data-explorer/components/DataExplorerLayout.js +1 -3
- package/dist/routes/data-explorer/components/DataExplorerLayout.js.map +1 -1
- package/dist/routes/data-explorer/components/class-detail/UsedByRules.js +2 -2
- package/dist/routes/data-explorer/components/class-detail/UsedByRules.js.map +1 -1
- package/dist/routes/datastores/index.d.ts.map +1 -1
- package/dist/routes/datastores/index.js +2 -2
- package/dist/routes/datastores/index.js.map +1 -1
- package/dist/routes/explain/index.d.ts.map +1 -1
- package/dist/routes/explain/index.js +1 -3
- package/dist/routes/explain/index.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/DashConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/DashConnectForm.js +0 -1
- package/dist/routes/integrations/components/connect-forms/DashConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/GoogleAdsConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/GoogleAdsConnectForm.js +0 -1
- package/dist/routes/integrations/components/connect-forms/GoogleAdsConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/GoogleAnalyticsConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/GoogleAnalyticsConnectForm.js +0 -1
- package/dist/routes/integrations/components/connect-forms/GoogleAnalyticsConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/GoogleMerchantCenterConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/GoogleMerchantCenterConnectForm.js +0 -1
- package/dist/routes/integrations/components/connect-forms/GoogleMerchantCenterConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/InferalCredentialConnectForm.d.ts +0 -1
- package/dist/routes/integrations/components/connect-forms/InferalCredentialConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/InferalCredentialConnectForm.js +3 -2
- package/dist/routes/integrations/components/connect-forms/InferalCredentialConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/KlaviyoConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/KlaviyoConnectForm.js +0 -1
- package/dist/routes/integrations/components/connect-forms/KlaviyoConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/MicrosoftAdsConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/MicrosoftAdsConnectForm.js +0 -1
- package/dist/routes/integrations/components/connect-forms/MicrosoftAdsConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/OAuthSetupConnectForm.d.ts +0 -1
- package/dist/routes/integrations/components/connect-forms/OAuthSetupConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/OAuthSetupConnectForm.js +4 -3
- package/dist/routes/integrations/components/connect-forms/OAuthSetupConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/TriplewhaleConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/TriplewhaleConnectForm.js +0 -1
- package/dist/routes/integrations/components/connect-forms/TriplewhaleConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/WoocommerceConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/WoocommerceConnectForm.js +0 -1
- package/dist/routes/integrations/components/connect-forms/WoocommerceConnectForm.js.map +1 -1
- package/dist/routes/integrations/types.d.ts +2 -1
- package/dist/routes/integrations/types.d.ts.map +1 -1
- package/dist/routes/integrations/types.js +16 -0
- package/dist/routes/integrations/types.js.map +1 -1
- package/dist/routes/memories/components/DateValueInput.d.ts +16 -0
- package/dist/routes/memories/components/DateValueInput.d.ts.map +1 -0
- package/dist/routes/memories/components/DateValueInput.js +35 -0
- package/dist/routes/memories/components/DateValueInput.js.map +1 -0
- package/dist/routes/memories/components/EntityValuePicker.d.ts +11 -0
- package/dist/routes/memories/components/EntityValuePicker.d.ts.map +1 -0
- package/dist/routes/memories/components/EntityValuePicker.js +61 -0
- package/dist/routes/memories/components/EntityValuePicker.js.map +1 -0
- package/dist/routes/memories/components/FieldLabel.d.ts +12 -0
- package/dist/routes/memories/components/FieldLabel.d.ts.map +1 -0
- package/dist/routes/memories/components/FieldLabel.js +12 -0
- package/dist/routes/memories/components/FieldLabel.js.map +1 -0
- package/dist/routes/memories/components/ImportanceSlider.d.ts +2 -0
- package/dist/routes/memories/components/ImportanceSlider.d.ts.map +1 -1
- package/dist/routes/memories/components/ImportanceSlider.js +4 -1
- package/dist/routes/memories/components/ImportanceSlider.js.map +1 -1
- package/dist/routes/memories/components/MemoriesFilters.d.ts +2 -2
- package/dist/routes/memories/components/MemoriesFilters.d.ts.map +1 -1
- package/dist/routes/memories/components/MemoriesFilters.js.map +1 -1
- package/dist/routes/memories/components/MemoriesPanel.d.ts.map +1 -1
- package/dist/routes/memories/components/MemoriesPanel.js +4 -0
- package/dist/routes/memories/components/MemoriesPanel.js.map +1 -1
- package/dist/routes/memories/components/MemoriesTabPanel.d.ts +2 -2
- package/dist/routes/memories/components/MemoriesTabPanel.d.ts.map +1 -1
- package/dist/routes/memories/components/MemoryActions.d.ts +2 -0
- package/dist/routes/memories/components/MemoryActions.d.ts.map +1 -1
- package/dist/routes/memories/components/MemoryActions.js +3 -3
- package/dist/routes/memories/components/MemoryActions.js.map +1 -1
- package/dist/routes/memories/components/MemoryFields.d.ts +15 -3
- package/dist/routes/memories/components/MemoryFields.d.ts.map +1 -1
- package/dist/routes/memories/components/MemoryFields.js +34 -5
- package/dist/routes/memories/components/MemoryFields.js.map +1 -1
- package/dist/routes/memories/components/MemoryFormDialog.d.ts +6 -3
- package/dist/routes/memories/components/MemoryFormDialog.d.ts.map +1 -1
- package/dist/routes/memories/components/MemoryFormDialog.js +105 -59
- package/dist/routes/memories/components/MemoryFormDialog.js.map +1 -1
- package/dist/routes/memories/components/MemoryPropertyFields.d.ts +10 -0
- package/dist/routes/memories/components/MemoryPropertyFields.d.ts.map +1 -0
- package/dist/routes/memories/components/MemoryPropertyFields.js +67 -0
- package/dist/routes/memories/components/MemoryPropertyFields.js.map +1 -0
- package/dist/routes/memories/components/RuleDraftDialog.d.ts +7 -0
- package/dist/routes/memories/components/RuleDraftDialog.d.ts.map +1 -0
- package/dist/routes/memories/components/RuleDraftDialog.js +20 -0
- package/dist/routes/memories/components/RuleDraftDialog.js.map +1 -0
- package/dist/routes/memories/components/SchemasTab.d.ts +17 -2
- package/dist/routes/memories/components/SchemasTab.d.ts.map +1 -1
- package/dist/routes/memories/components/SchemasTab.js +146 -28
- package/dist/routes/memories/components/SchemasTab.js.map +1 -1
- package/dist/routes/memories/components/badges.d.ts +7 -0
- package/dist/routes/memories/components/badges.d.ts.map +1 -1
- package/dist/routes/memories/components/badges.js +11 -3
- package/dist/routes/memories/components/badges.js.map +1 -1
- package/dist/routes/memories/hooks/useMemoryColumns.d.ts +4 -2
- package/dist/routes/memories/hooks/useMemoryColumns.d.ts.map +1 -1
- package/dist/routes/memories/hooks/useMemoryColumns.js +31 -15
- package/dist/routes/memories/hooks/useMemoryColumns.js.map +1 -1
- package/dist/routes/memories/index.d.ts +2 -1
- package/dist/routes/memories/index.d.ts.map +1 -1
- package/dist/routes/memories/index.js +72 -30
- package/dist/routes/memories/index.js.map +1 -1
- package/dist/routes/memories/memory-mutation-input.d.ts.map +1 -1
- package/dist/routes/memories/memory-mutation-input.js +5 -2
- package/dist/routes/memories/memory-mutation-input.js.map +1 -1
- package/dist/routes/memories/memory-property-values.d.ts +13 -0
- package/dist/routes/memories/memory-property-values.d.ts.map +1 -0
- package/dist/routes/memories/memory-property-values.js +40 -0
- package/dist/routes/memories/memory-property-values.js.map +1 -0
- package/dist/routes/memories/schemas/AllowedValuesField.d.ts +14 -0
- package/dist/routes/memories/schemas/AllowedValuesField.d.ts.map +1 -0
- package/dist/routes/memories/schemas/AllowedValuesField.js +64 -0
- package/dist/routes/memories/schemas/AllowedValuesField.js.map +1 -0
- package/dist/routes/memories/schemas/MemorySchemaPage.d.ts +127 -0
- package/dist/routes/memories/schemas/MemorySchemaPage.d.ts.map +1 -0
- package/dist/routes/memories/schemas/MemorySchemaPage.js +285 -0
- package/dist/routes/memories/schemas/MemorySchemaPage.js.map +1 -0
- package/dist/routes/memories/schemas/SchemaChangeReviewDialog.d.ts +20 -0
- package/dist/routes/memories/schemas/SchemaChangeReviewDialog.d.ts.map +1 -0
- package/dist/routes/memories/schemas/SchemaChangeReviewDialog.js +54 -0
- package/dist/routes/memories/schemas/SchemaChangeReviewDialog.js.map +1 -0
- package/dist/routes/memories/schemas/SchemaConfirmDialog.d.ts +15 -0
- package/dist/routes/memories/schemas/SchemaConfirmDialog.d.ts.map +1 -0
- package/dist/routes/memories/schemas/SchemaConfirmDialog.js +8 -0
- package/dist/routes/memories/schemas/SchemaConfirmDialog.js.map +1 -0
- package/dist/routes/memories/schemas/SchemaDetailPage.d.ts +15 -0
- package/dist/routes/memories/schemas/SchemaDetailPage.d.ts.map +1 -0
- package/dist/routes/memories/schemas/SchemaDetailPage.js +74 -0
- package/dist/routes/memories/schemas/SchemaDetailPage.js.map +1 -0
- package/dist/routes/memories/schemas/SchemaEditorForm.d.ts +10 -0
- package/dist/routes/memories/schemas/SchemaEditorForm.d.ts.map +1 -0
- package/dist/routes/memories/schemas/SchemaEditorForm.js +242 -0
- package/dist/routes/memories/schemas/SchemaEditorForm.js.map +1 -0
- package/dist/routes/memories/schemas/SchemaTemplatesDialog.d.ts +13 -0
- package/dist/routes/memories/schemas/SchemaTemplatesDialog.d.ts.map +1 -0
- package/dist/routes/memories/schemas/SchemaTemplatesDialog.js +13 -0
- package/dist/routes/memories/schemas/SchemaTemplatesDialog.js.map +1 -0
- package/dist/routes/memories/schemas/ValueTypeSelect.d.ts +12 -0
- package/dist/routes/memories/schemas/ValueTypeSelect.d.ts.map +1 -0
- package/dist/routes/memories/schemas/ValueTypeSelect.js +10 -0
- package/dist/routes/memories/schemas/ValueTypeSelect.js.map +1 -0
- package/dist/routes/memories/schemas/schema-form.d.ts +72 -0
- package/dist/routes/memories/schemas/schema-form.d.ts.map +1 -0
- package/dist/routes/memories/schemas/schema-form.js +279 -0
- package/dist/routes/memories/schemas/schema-form.js.map +1 -0
- package/dist/routes/memories/schemas/schema-impact.d.ts +13 -0
- package/dist/routes/memories/schemas/schema-impact.d.ts.map +1 -0
- package/dist/routes/memories/schemas/schema-impact.js +40 -0
- package/dist/routes/memories/schemas/schema-impact.js.map +1 -0
- package/dist/routes/memories/schemas/schema-route.d.ts +18 -0
- package/dist/routes/memories/schemas/schema-route.d.ts.map +1 -0
- package/dist/routes/memories/schemas/schema-route.js +21 -0
- package/dist/routes/memories/schemas/schema-route.js.map +1 -0
- package/dist/routes/memories/schemas/schema-rule-context.d.ts +17 -0
- package/dist/routes/memories/schemas/schema-rule-context.d.ts.map +1 -0
- package/dist/routes/memories/schemas/schema-rule-context.js +83 -0
- package/dist/routes/memories/schemas/schema-rule-context.js.map +1 -0
- package/dist/routes/memories/schemas/schema-table.d.ts +11 -0
- package/dist/routes/memories/schemas/schema-table.d.ts.map +1 -0
- package/dist/routes/memories/schemas/schema-table.js +34 -0
- package/dist/routes/memories/schemas/schema-table.js.map +1 -0
- package/dist/routes/memories/schemas/useMemorySchemaMutations.d.ts +32 -0
- package/dist/routes/memories/schemas/useMemorySchemaMutations.d.ts.map +1 -0
- package/dist/routes/memories/schemas/useMemorySchemaMutations.js +31 -0
- package/dist/routes/memories/schemas/useMemorySchemaMutations.js.map +1 -0
- package/dist/routes/memories/schemas/useSchemaChangeReview.d.ts +51 -0
- package/dist/routes/memories/schemas/useSchemaChangeReview.d.ts.map +1 -0
- package/dist/routes/memories/schemas/useSchemaChangeReview.js +175 -0
- package/dist/routes/memories/schemas/useSchemaChangeReview.js.map +1 -0
- package/dist/routes/memories/schemas/useSchemaLifecycle.d.ts +46 -0
- package/dist/routes/memories/schemas/useSchemaLifecycle.d.ts.map +1 -0
- package/dist/routes/memories/schemas/useSchemaLifecycle.js +93 -0
- package/dist/routes/memories/schemas/useSchemaLifecycle.js.map +1 -0
- package/dist/routes/memories/schemas/useSchemasTab.d.ts +18 -0
- package/dist/routes/memories/schemas/useSchemasTab.d.ts.map +1 -0
- package/dist/routes/memories/schemas/useSchemasTab.js +92 -0
- package/dist/routes/memories/schemas/useSchemasTab.js.map +1 -0
- package/dist/routes/plans/index.d.ts.map +1 -1
- package/dist/routes/plans/index.js +2 -2
- package/dist/routes/plans/index.js.map +1 -1
- package/dist/routes/rules/components/CreateRuleChatModal.d.ts +7 -1
- package/dist/routes/rules/components/CreateRuleChatModal.d.ts.map +1 -1
- package/dist/routes/rules/components/CreateRuleChatModal.js +9 -4
- package/dist/routes/rules/components/CreateRuleChatModal.js.map +1 -1
- package/dist/routes/rules/components/RuleValueControls.d.ts.map +1 -1
- package/dist/routes/rules/components/RuleValueControls.js +3 -24
- package/dist/routes/rules/components/RuleValueControls.js.map +1 -1
- package/dist/routes/rules/components/rule-value-input.d.ts +11 -0
- package/dist/routes/rules/components/rule-value-input.d.ts.map +1 -0
- package/dist/routes/rules/components/rule-value-input.js +24 -0
- package/dist/routes/rules/components/rule-value-input.js.map +1 -0
- package/dist/routes/rules/components/rules.utils.d.ts +5 -0
- package/dist/routes/rules/components/rules.utils.d.ts.map +1 -1
- package/dist/routes/rules/components/rules.utils.js +18 -3
- package/dist/routes/rules/components/rules.utils.js.map +1 -1
- package/dist/routes/rules/pages.d.ts +1 -1
- package/dist/routes/rules/pages.d.ts.map +1 -1
- package/dist/routes/rules/pages.js +1 -1
- package/dist/routes/rules/pages.js.map +1 -1
- package/dist/shared/graph-derived-queries.d.ts.map +1 -1
- package/dist/shared/graph-derived-queries.js +4 -1
- package/dist/shared/graph-derived-queries.js.map +1 -1
- package/dist/worker/index.d.ts +22 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +110 -0
- package/dist/worker/index.js.map +1 -0
- package/dist/worker/policy.d.ts +21 -0
- package/dist/worker/policy.d.ts.map +1 -0
- package/dist/worker/policy.js +42 -0
- package/dist/worker/policy.js.map +1 -0
- package/dist/worker/proxy.d.ts +14 -0
- package/dist/worker/proxy.d.ts.map +1 -0
- package/dist/worker/proxy.js +58 -0
- package/dist/worker/proxy.js.map +1 -0
- package/dist/worker/session.d.ts +24 -0
- package/dist/worker/session.d.ts.map +1 -0
- package/dist/worker/session.js +72 -0
- package/dist/worker/session.js.map +1 -0
- package/package.json +52 -7
- package/src/app-subpaths.json +9 -1
- package/src/components/AppErrorBoundary.tsx +14 -11
- package/src/components/app-gate/AppGate.tsx +122 -0
- package/src/components/app-gate/AwaitingDatastoreStatus.tsx +35 -0
- package/src/components/app-gate/EnterDatastoreRoute.tsx +30 -0
- package/src/components/app-gate/ErrorRoute.tsx +43 -0
- package/src/components/app-gate/FailureAlert.tsx +15 -0
- package/src/components/app-gate/NoDatastoreAccess.tsx +26 -0
- package/src/components/app-gate/NotFoundRoute.tsx +20 -0
- package/src/components/app-gate/PendingInvitations.tsx +134 -0
- package/src/components/app-gate/ServiceError.tsx +27 -0
- package/src/components/app-gate/index.ts +2 -0
- package/src/components/app-gate/sdk-route-elements.tsx +46 -0
- package/src/components/app-shell/AppShell.tsx +22 -0
- package/src/components/app-shell/AppShellRoutes.tsx +34 -0
- package/src/components/app-shell/GroupDatastores.tsx +28 -0
- package/src/components/app-shell/GroupRoute.tsx +34 -0
- package/src/components/app-shell/index.ts +2 -0
- package/src/components/authenticated-chat/index.tsx +1 -34
- package/src/components/chat-view/Chat.tsx +9 -3
- package/src/components/chat-view/MessageItem.tsx +10 -2
- package/src/components/chat-view/tool-part-rendering.ts +10 -1
- package/src/components/chip/index.tsx +8 -1
- package/src/components/embedded-chat/index.tsx +2 -1
- package/src/components/input/input-date-time.tsx +10 -3
- package/src/components/input/input-date.tsx +93 -21
- package/src/components/input/input-time.tsx +59 -26
- package/src/components/layouts/RouteLayout.tsx +11 -50
- package/src/components/layouts/Sidebar.tsx +21 -23
- package/src/components/plan-limits/PlanLimitsDialog.tsx +331 -0
- package/src/components/plan-limits/index.tsx +3 -0
- package/src/components/plan-limits/plan-limits-client.ts +71 -0
- package/src/components/plan-limits/plan-limits-model.ts +180 -0
- package/src/components/plan-limits/plan-limits-save.ts +68 -0
- package/src/components/planning/PlanLimitsAction.tsx +44 -0
- package/src/components/slider/index.tsx +2 -1
- package/src/datastore-picker/datastore-picker-rows.ts +36 -20
- package/src/hooks/use-action-plans-list.ts +20 -12
- package/src/hooks/use-activity-feed.ts +30 -14
- package/src/hooks/use-entity.ts +11 -6
- package/src/hooks/use-manual-actions.ts +11 -6
- package/src/hooks/use-unsaved-changes-warning.ts +12 -0
- package/src/hooks/useAuth.ts +5 -3
- package/src/hooks/useChatPanelSync.ts +2 -3
- package/src/hooks/useDatastoreSelection.ts +10 -4
- package/src/hooks/useExecuteAction.ts +2 -0
- package/src/hooks/useLoginRedirect.ts +66 -0
- package/src/hooks/usePlanLimits.ts +97 -0
- package/src/ldo-ui.ts +1 -0
- package/src/lib/app-tools.ts +63 -0
- package/src/lib/chat-types.ts +5 -0
- package/src/lib/datastore-route-table.ts +9 -0
- package/src/lib/graphql-error.ts +7 -0
- package/src/lib/update-notice.ts +12 -2
- package/src/providers/ActiveChatProvider.tsx +8 -3
- package/src/providers/ActiveDatastoreProvider.tsx +179 -9
- package/src/providers/AuthContext.ts +1 -0
- package/src/providers/KnowledgeGraphStateContext.ts +2 -2
- package/src/providers/KnowledgeGraphStateProvider.tsx +13 -65
- package/src/providers/MantaClientProvider.tsx +8 -3
- package/src/providers/index.tsx +7 -4
- package/src/routes/activity/detail/ActivityDetailRoute.tsx +1 -10
- package/src/routes/activity/index.tsx +1 -10
- package/src/routes/chat/index.tsx +11 -47
- package/src/routes/data-collection/index.tsx +1 -11
- package/src/routes/data-explorer/components/DataExplorerLayout.tsx +1 -11
- package/src/routes/data-explorer/components/class-detail/UsedByRules.tsx +2 -2
- package/src/routes/datastores/index.tsx +3 -9
- package/src/routes/explain/index.tsx +1 -11
- package/src/routes/integrations/components/connect-forms/DashConnectForm.tsx +0 -1
- package/src/routes/integrations/components/connect-forms/GoogleAdsConnectForm.tsx +0 -1
- package/src/routes/integrations/components/connect-forms/GoogleAnalyticsConnectForm.tsx +0 -1
- package/src/routes/integrations/components/connect-forms/GoogleMerchantCenterConnectForm.tsx +0 -1
- package/src/routes/integrations/components/connect-forms/InferalCredentialConnectForm.tsx +5 -3
- package/src/routes/integrations/components/connect-forms/KlaviyoConnectForm.tsx +0 -1
- package/src/routes/integrations/components/connect-forms/MicrosoftAdsConnectForm.tsx +0 -1
- package/src/routes/integrations/components/connect-forms/OAuthSetupConnectForm.tsx +7 -7
- package/src/routes/integrations/components/connect-forms/TriplewhaleConnectForm.tsx +0 -1
- package/src/routes/integrations/components/connect-forms/WoocommerceConnectForm.tsx +0 -1
- package/src/routes/integrations/types.ts +22 -6
- package/src/routes/memories/components/DateValueInput.tsx +72 -0
- package/src/routes/memories/components/EntityValuePicker.tsx +132 -0
- package/src/routes/memories/components/FieldLabel.tsx +49 -0
- package/src/routes/memories/components/ImportanceSlider.tsx +5 -1
- package/src/routes/memories/components/MemoriesFilters.tsx +2 -2
- package/src/routes/memories/components/MemoriesPanel.tsx +7 -3
- package/src/routes/memories/components/MemoriesTabPanel.tsx +2 -2
- package/src/routes/memories/components/MemoryActions.tsx +26 -2
- package/src/routes/memories/components/MemoryFields.tsx +75 -12
- package/src/routes/memories/components/MemoryFormDialog.tsx +305 -199
- package/src/routes/memories/components/MemoryPropertyFields.tsx +288 -0
- package/src/routes/memories/components/RuleDraftDialog.tsx +35 -0
- package/src/routes/memories/components/SchemasTab.tsx +481 -118
- package/src/routes/memories/components/badges.tsx +16 -4
- package/src/routes/memories/hooks/useMemoryColumns.tsx +69 -35
- package/src/routes/memories/index.tsx +125 -51
- package/src/routes/memories/memory-mutation-input.ts +5 -2
- package/src/routes/memories/memory-property-values.ts +83 -0
- package/src/routes/memories/schemas/AllowedValuesField.tsx +188 -0
- package/src/routes/memories/schemas/MemorySchemaPage.tsx +476 -0
- package/src/routes/memories/schemas/SchemaChangeReviewDialog.tsx +290 -0
- package/src/routes/memories/schemas/SchemaConfirmDialog.tsx +62 -0
- package/src/routes/memories/schemas/SchemaDetailPage.tsx +373 -0
- package/src/routes/memories/schemas/SchemaEditorForm.tsx +990 -0
- package/src/routes/memories/schemas/SchemaTemplatesDialog.tsx +81 -0
- package/src/routes/memories/schemas/ValueTypeSelect.tsx +37 -0
- package/src/routes/memories/schemas/schema-form.ts +360 -0
- package/src/routes/memories/schemas/schema-impact.ts +66 -0
- package/src/routes/memories/schemas/schema-route.ts +30 -0
- package/src/routes/memories/schemas/schema-rule-context.ts +103 -0
- package/src/routes/memories/schemas/schema-table.ts +54 -0
- package/src/routes/memories/schemas/useMemorySchemaMutations.ts +49 -0
- package/src/routes/memories/schemas/useSchemaChangeReview.ts +238 -0
- package/src/routes/memories/schemas/useSchemaLifecycle.tsx +151 -0
- package/src/routes/memories/schemas/useSchemasTab.ts +119 -0
- package/src/routes/plans/index.tsx +3 -14
- package/src/routes/rules/components/CreateRuleChatModal.tsx +46 -22
- package/src/routes/rules/components/RuleValueControls.tsx +3 -35
- package/src/routes/rules/components/rule-value-input.ts +34 -0
- package/src/routes/rules/components/rules.utils.ts +25 -3
- package/src/routes/rules/pages.ts +5 -1
- package/src/shared/graph-derived-queries.ts +6 -0
- package/src/themes/manta-dark.css +4 -0
- package/src/worker/index.ts +175 -0
- package/src/worker/policy.ts +62 -0
- package/src/worker/proxy.ts +101 -0
- package/src/worker/session.ts +111 -0
|
@@ -1,142 +1,505 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import {
|
|
2
|
+
GQLMemorySchemaCreator,
|
|
3
|
+
GQLMemorySchemaStatus,
|
|
4
|
+
GQLMemorySchemaTemplateStatus,
|
|
5
|
+
type GQLMemorySchemaFieldsFragment,
|
|
6
|
+
} from "@manta-eu/client";
|
|
4
7
|
import { isPresent } from "@manta-eu/lib/present";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
8
|
+
import { useReactTable, type ColumnDef, type SortingState } from "@tanstack/react-table";
|
|
9
|
+
import { format, formatDistanceToNow } from "date-fns";
|
|
10
|
+
import {
|
|
11
|
+
Archive,
|
|
12
|
+
ArchiveRestore,
|
|
13
|
+
ChevronDown,
|
|
14
|
+
Eye,
|
|
15
|
+
FileCode2,
|
|
16
|
+
Layers,
|
|
17
|
+
MoreHorizontal,
|
|
18
|
+
Pencil,
|
|
19
|
+
Plus,
|
|
20
|
+
Trash2,
|
|
21
|
+
X,
|
|
22
|
+
} from "lucide-react";
|
|
23
|
+
import { useMemo, useState, type ReactNode } from "react";
|
|
24
|
+
import { Link, useNavigate } from "react-router";
|
|
25
|
+
import { memorySchemaEditPath, memorySchemaPath } from "../schemas/schema-route";
|
|
26
|
+
import {
|
|
27
|
+
anyCount,
|
|
28
|
+
filterSchemas,
|
|
29
|
+
schemaCounts,
|
|
30
|
+
type CountFilter,
|
|
31
|
+
type SchemaCountFilters,
|
|
32
|
+
type SchemaCountKey,
|
|
33
|
+
} from "../schemas/schema-table";
|
|
34
|
+
import { archiveBlockedReason, deleteBlockedReason } from "../schemas/useSchemaLifecycle";
|
|
35
|
+
import { Badge } from "#components/badge/index";
|
|
36
|
+
import { Banner } from "#components/banner/index";
|
|
37
|
+
import { Button } from "#components/button/index";
|
|
38
|
+
import {
|
|
39
|
+
Dropdown,
|
|
40
|
+
DropdownContent,
|
|
41
|
+
DropdownGroup,
|
|
42
|
+
DropdownItem,
|
|
43
|
+
DropdownSeparator,
|
|
44
|
+
DropdownTrigger,
|
|
45
|
+
} from "#components/dropdown/index";
|
|
7
46
|
import { EmptyState } from "#components/empty-state/index";
|
|
47
|
+
import { FilterSection, FilterSheet } from "#components/filter-sheet/index";
|
|
48
|
+
import { Input } from "#components/input/index";
|
|
8
49
|
import { Skeleton } from "#components/skeleton/index";
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
50
|
+
import { createTableConfig, DataTable, useTableState } from "#components/table/index";
|
|
51
|
+
import { TablePagination } from "#components/table-pagination/index";
|
|
52
|
+
import { Tooltip, TooltipContent, TooltipTrigger } from "#components/tooltip/index";
|
|
53
|
+
import { cn } from "#lib/utils";
|
|
54
|
+
|
|
55
|
+
const countFilterConfig: Record<SchemaCountKey, { label: string; none: string; some: string }> = {
|
|
56
|
+
properties: { label: "Properties", none: "No properties", some: "Has properties" },
|
|
57
|
+
rules: { label: "Rules", none: "No rules", some: "Used by rules" },
|
|
58
|
+
memories: { label: "Memories", none: "No memories", some: "Has memories" },
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const initialSorting: SortingState = [{ id: "label", desc: false }];
|
|
62
|
+
|
|
63
|
+
const managerCountKeys: SchemaCountKey[] = ["properties", "rules", "memories"];
|
|
64
|
+
const memberCountKeys: SchemaCountKey[] = ["properties"];
|
|
65
|
+
|
|
66
|
+
function countFilterLabel(key: SchemaCountKey, filter: CountFilter): string {
|
|
67
|
+
const config = countFilterConfig[key];
|
|
68
|
+
if (filter === "NONE") return config.none;
|
|
69
|
+
if (filter === "SOME") return config.some;
|
|
70
|
+
return config.label;
|
|
18
71
|
}
|
|
19
72
|
|
|
20
|
-
type
|
|
73
|
+
type CountFilterDropdownProps = {
|
|
74
|
+
countKey: SchemaCountKey;
|
|
75
|
+
value: CountFilter;
|
|
76
|
+
onChange: (value: CountFilter) => void;
|
|
77
|
+
fullWidth?: boolean;
|
|
78
|
+
};
|
|
21
79
|
|
|
22
|
-
function
|
|
80
|
+
function CountFilterDropdown(props: CountFilterDropdownProps) {
|
|
81
|
+
const { countKey, value, onChange, fullWidth } = props;
|
|
82
|
+
const config = countFilterConfig[countKey];
|
|
83
|
+
const anyLabel = `Any ${config.label.toLowerCase()}`;
|
|
84
|
+
const options: { id: CountFilter; label: string }[] = [
|
|
85
|
+
{ id: "ANY", label: anyLabel },
|
|
86
|
+
{ id: "NONE", label: config.none },
|
|
87
|
+
{ id: "SOME", label: config.some },
|
|
88
|
+
];
|
|
89
|
+
return (
|
|
90
|
+
<Dropdown>
|
|
91
|
+
<DropdownTrigger asChild>
|
|
92
|
+
<Button
|
|
93
|
+
variant="tertiary"
|
|
94
|
+
size="base"
|
|
95
|
+
rounded="lg"
|
|
96
|
+
className={cn(fullWidth && "w-full justify-between")}
|
|
97
|
+
aria-label={`Filter by ${config.label.toLowerCase()}`}
|
|
98
|
+
>
|
|
99
|
+
<span>{fullWidth && value === "ANY" ? anyLabel : countFilterLabel(countKey, value)}</span>
|
|
100
|
+
<ChevronDown className="size-4" />
|
|
101
|
+
</Button>
|
|
102
|
+
</DropdownTrigger>
|
|
103
|
+
<DropdownContent align="start" className={fullWidth ? "w-(--radix-dropdown-menu-trigger-width)" : "w-44"}>
|
|
104
|
+
<DropdownGroup label={`Filter by ${config.label.toLowerCase()}`}>
|
|
105
|
+
{options.map((option) => (
|
|
106
|
+
<DropdownItem key={option.id} selected={option.id === value} onClick={() => onChange(option.id)}>
|
|
107
|
+
{option.label}
|
|
108
|
+
</DropdownItem>
|
|
109
|
+
))}
|
|
110
|
+
</DropdownGroup>
|
|
111
|
+
</DropdownContent>
|
|
112
|
+
</Dropdown>
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
type SchemaNameCellProps = { schema: GQLMemorySchemaFieldsFragment; canManage: boolean };
|
|
117
|
+
|
|
118
|
+
function SchemaNameCell(props: SchemaNameCellProps) {
|
|
119
|
+
const { schema, canManage } = props;
|
|
120
|
+
return (
|
|
121
|
+
<div className="flex min-w-48 flex-col gap-0.5 whitespace-normal">
|
|
122
|
+
<div className="flex flex-wrap items-center gap-1.5">
|
|
123
|
+
<Link
|
|
124
|
+
to={memorySchemaPath(schema.iri)}
|
|
125
|
+
onClick={(event) => event.stopPropagation()}
|
|
126
|
+
className="rounded-sm typography-caption-medium text-default-foreground outline-none hover:underline focus-visible:ring-2 focus-visible:ring-active-border/50"
|
|
127
|
+
>
|
|
128
|
+
{schema.label}
|
|
129
|
+
</Link>
|
|
130
|
+
{schema.status === GQLMemorySchemaStatus.Archived && (
|
|
131
|
+
<Badge variant="secondary" size="sm">
|
|
132
|
+
Archived
|
|
133
|
+
</Badge>
|
|
134
|
+
)}
|
|
135
|
+
{canManage && schema.templateStatus === GQLMemorySchemaTemplateStatus.Updated && (
|
|
136
|
+
<Badge variant="info" size="sm">
|
|
137
|
+
Default updated
|
|
138
|
+
</Badge>
|
|
139
|
+
)}
|
|
140
|
+
{!schema.extractionEnabled && schema.status === GQLMemorySchemaStatus.Active && (
|
|
141
|
+
<Badge variant="copy" size="sm">
|
|
142
|
+
Manual only
|
|
143
|
+
</Badge>
|
|
144
|
+
)}
|
|
145
|
+
</div>
|
|
146
|
+
{schema.description && (
|
|
147
|
+
<span className="line-clamp-1 typography-tiny text-muted-foreground">{schema.description}</span>
|
|
148
|
+
)}
|
|
149
|
+
</div>
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
const creatorLabels: Record<GQLMemorySchemaCreator, string> = {
|
|
154
|
+
[GQLMemorySchemaCreator.Manta]: "Manta",
|
|
155
|
+
[GQLMemorySchemaCreator.CurrentUser]: "You",
|
|
156
|
+
[GQLMemorySchemaCreator.AnotherUser]: "Another user",
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
type UpdatedCellProps = { schema: GQLMemorySchemaFieldsFragment };
|
|
160
|
+
|
|
161
|
+
function UpdatedCell(props: UpdatedCellProps) {
|
|
23
162
|
const { schema } = props;
|
|
163
|
+
const changedAt = schema.updatedAt ?? schema.createdAt;
|
|
164
|
+
if (!changedAt) return <span className="typography-small text-muted-foreground">—</span>;
|
|
165
|
+
const updated = (
|
|
166
|
+
<span className="typography-small whitespace-nowrap text-muted-foreground">
|
|
167
|
+
{formatDistanceToNow(new Date(changedAt), { addSuffix: true })}
|
|
168
|
+
</span>
|
|
169
|
+
);
|
|
170
|
+
if (!schema.createdAt) return updated;
|
|
171
|
+
return (
|
|
172
|
+
<Tooltip>
|
|
173
|
+
<TooltipTrigger asChild>{updated}</TooltipTrigger>
|
|
174
|
+
<TooltipContent>Created {format(new Date(schema.createdAt), "MMM d, yyyy")}</TooltipContent>
|
|
175
|
+
</Tooltip>
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export type SchemaRowActions = {
|
|
180
|
+
onWriteRule?: (schema: GQLMemorySchemaFieldsFragment) => void;
|
|
181
|
+
onArchive?: (schema: GQLMemorySchemaFieldsFragment) => void;
|
|
182
|
+
onRestore?: (schema: GQLMemorySchemaFieldsFragment) => void;
|
|
183
|
+
onDelete?: (schema: GQLMemorySchemaFieldsFragment) => void;
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
type GuardedDropdownItemProps = {
|
|
187
|
+
icon: ReactNode;
|
|
188
|
+
blocked: string | null;
|
|
189
|
+
onClick: () => void;
|
|
190
|
+
children: string;
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
function GuardedDropdownItem(props: GuardedDropdownItemProps) {
|
|
194
|
+
const { icon, blocked, onClick, children } = props;
|
|
195
|
+
if (blocked === null) {
|
|
196
|
+
return (
|
|
197
|
+
<DropdownItem icon={icon} onClick={onClick}>
|
|
198
|
+
{children}
|
|
199
|
+
</DropdownItem>
|
|
200
|
+
);
|
|
201
|
+
}
|
|
24
202
|
return (
|
|
25
|
-
<
|
|
26
|
-
<
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
203
|
+
<Tooltip>
|
|
204
|
+
<TooltipTrigger asChild>
|
|
205
|
+
<span className="block">
|
|
206
|
+
<DropdownItem icon={icon} disabled>
|
|
207
|
+
{children}
|
|
208
|
+
</DropdownItem>
|
|
31
209
|
</span>
|
|
32
|
-
</
|
|
33
|
-
<
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
210
|
+
</TooltipTrigger>
|
|
211
|
+
<TooltipContent side="left" className="max-w-xs">
|
|
212
|
+
{blocked}
|
|
213
|
+
</TooltipContent>
|
|
214
|
+
</Tooltip>
|
|
215
|
+
);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
type SchemaActionsProps = SchemaRowActions & { schema: GQLMemorySchemaFieldsFragment; ruleCount: number | null };
|
|
219
|
+
|
|
220
|
+
function SchemaActions(props: SchemaActionsProps) {
|
|
221
|
+
const { schema, ruleCount, onWriteRule, onArchive, onRestore, onDelete } = props;
|
|
222
|
+
const archived = schema.status === GQLMemorySchemaStatus.Archived;
|
|
223
|
+
const archiveBlocked = archiveBlockedReason(ruleCount);
|
|
224
|
+
const deleteBlocked = deleteBlockedReason(schema.memoryCount, ruleCount);
|
|
225
|
+
return (
|
|
226
|
+
<div className="text-right" onClick={(event) => event.stopPropagation()}>
|
|
227
|
+
<Dropdown>
|
|
228
|
+
<DropdownTrigger asChild>
|
|
229
|
+
<Button variant="tertiary" iconOnly icon={MoreHorizontal} aria-label={`Actions for ${schema.label}`} />
|
|
230
|
+
</DropdownTrigger>
|
|
231
|
+
<DropdownContent align="end" className="w-48">
|
|
232
|
+
<DropdownGroup>
|
|
233
|
+
<DropdownItem asChild>
|
|
234
|
+
<Link to={memorySchemaPath(schema.iri)}>
|
|
235
|
+
<span className="flex size-5 shrink-0 items-center justify-center">
|
|
236
|
+
<Eye className="size-4" />
|
|
237
|
+
</span>
|
|
238
|
+
View
|
|
239
|
+
</Link>
|
|
240
|
+
</DropdownItem>
|
|
241
|
+
<DropdownItem asChild>
|
|
242
|
+
<Link to={memorySchemaEditPath(schema.iri)}>
|
|
243
|
+
<span className="flex size-5 shrink-0 items-center justify-center">
|
|
244
|
+
<Pencil className="size-4" />
|
|
245
|
+
</span>
|
|
246
|
+
Edit
|
|
247
|
+
</Link>
|
|
248
|
+
</DropdownItem>
|
|
249
|
+
{!archived && onWriteRule && (
|
|
250
|
+
<DropdownItem icon={<FileCode2 className="size-4" />} onClick={() => onWriteRule(schema)}>
|
|
251
|
+
Write rule
|
|
252
|
+
</DropdownItem>
|
|
253
|
+
)}
|
|
254
|
+
</DropdownGroup>
|
|
255
|
+
<DropdownSeparator />
|
|
256
|
+
<DropdownGroup>
|
|
257
|
+
{archived
|
|
258
|
+
? onRestore && (
|
|
259
|
+
<DropdownItem icon={<ArchiveRestore className="size-4" />} onClick={() => onRestore(schema)}>
|
|
260
|
+
Restore
|
|
261
|
+
</DropdownItem>
|
|
262
|
+
)
|
|
263
|
+
: onArchive && (
|
|
264
|
+
<GuardedDropdownItem
|
|
265
|
+
icon={<Archive className="size-4" />}
|
|
266
|
+
blocked={archiveBlocked}
|
|
267
|
+
onClick={() => onArchive(schema)}
|
|
268
|
+
>
|
|
269
|
+
Archive
|
|
270
|
+
</GuardedDropdownItem>
|
|
271
|
+
)}
|
|
272
|
+
{onDelete && (
|
|
273
|
+
<GuardedDropdownItem
|
|
274
|
+
icon={<Trash2 className="size-4" />}
|
|
275
|
+
blocked={deleteBlocked}
|
|
276
|
+
onClick={() => onDelete(schema)}
|
|
277
|
+
>
|
|
278
|
+
Delete
|
|
279
|
+
</GuardedDropdownItem>
|
|
280
|
+
)}
|
|
281
|
+
</DropdownGroup>
|
|
282
|
+
</DropdownContent>
|
|
283
|
+
</Dropdown>
|
|
284
|
+
</div>
|
|
90
285
|
);
|
|
91
286
|
}
|
|
92
287
|
|
|
93
|
-
|
|
288
|
+
function countColumn(
|
|
289
|
+
key: SchemaCountKey,
|
|
290
|
+
ruleCounts: ReadonlyMap<string, number> | undefined,
|
|
291
|
+
): ColumnDef<GQLMemorySchemaFieldsFragment> {
|
|
292
|
+
return {
|
|
293
|
+
id: key,
|
|
294
|
+
accessorFn: (schema) => schemaCounts(schema, ruleCounts)[key] ?? undefined,
|
|
295
|
+
header: countFilterConfig[key].label,
|
|
296
|
+
enableSorting: true,
|
|
297
|
+
sortUndefined: "last",
|
|
298
|
+
meta: { type: "number" },
|
|
299
|
+
cell: ({ row }) => <span>{schemaCounts(row.original, ruleCounts)[key] ?? "—"}</span>,
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
export type SchemasTabProps = SchemaRowActions & {
|
|
304
|
+
tabs?: ReactNode;
|
|
305
|
+
schemas: GQLMemorySchemaFieldsFragment[];
|
|
306
|
+
query?: string;
|
|
307
|
+
onQueryChange?: (query: string) => void;
|
|
308
|
+
isLoading: boolean;
|
|
309
|
+
errorMessage?: string | null;
|
|
310
|
+
canManage: boolean;
|
|
311
|
+
ruleCounts?: ReadonlyMap<string, number>;
|
|
312
|
+
onCreate?: () => void;
|
|
313
|
+
};
|
|
94
314
|
|
|
95
315
|
export function SchemasTab(props: SchemasTabProps) {
|
|
96
|
-
const {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
316
|
+
const {
|
|
317
|
+
tabs,
|
|
318
|
+
schemas,
|
|
319
|
+
query = "",
|
|
320
|
+
onQueryChange,
|
|
321
|
+
isLoading,
|
|
322
|
+
errorMessage,
|
|
323
|
+
canManage,
|
|
324
|
+
ruleCounts,
|
|
325
|
+
onCreate,
|
|
326
|
+
onWriteRule,
|
|
327
|
+
onArchive,
|
|
328
|
+
onRestore,
|
|
329
|
+
onDelete,
|
|
330
|
+
} = props;
|
|
331
|
+
const navigate = useNavigate();
|
|
332
|
+
const [countFilters, setCountFilters] = useState<SchemaCountFilters>(anyCount);
|
|
333
|
+
const countKeys = canManage ? managerCountKeys : memberCountKeys;
|
|
334
|
+
|
|
335
|
+
const filtered = useMemo(
|
|
336
|
+
() => filterSchemas(schemas, query, countFilters, ruleCounts),
|
|
337
|
+
[schemas, query, countFilters, ruleCounts],
|
|
338
|
+
);
|
|
339
|
+
|
|
340
|
+
const columns = useMemo<ColumnDef<GQLMemorySchemaFieldsFragment>[]>(
|
|
341
|
+
() => [
|
|
342
|
+
{
|
|
343
|
+
id: "label",
|
|
344
|
+
accessorFn: (schema) => schema.label.toLowerCase(),
|
|
345
|
+
header: "Schema",
|
|
346
|
+
enableSorting: true,
|
|
347
|
+
meta: { wide: true },
|
|
348
|
+
cell: ({ row }) => <SchemaNameCell schema={row.original} canManage={canManage} />,
|
|
349
|
+
},
|
|
350
|
+
...countKeys.map((key) => countColumn(key, ruleCounts)),
|
|
351
|
+
{
|
|
352
|
+
id: "createdBy",
|
|
353
|
+
accessorFn: (schema) => creatorLabels[schema.createdBy],
|
|
354
|
+
header: "Created by",
|
|
355
|
+
enableSorting: true,
|
|
356
|
+
cell: ({ row }) => (
|
|
357
|
+
<span className="typography-small whitespace-nowrap text-muted-foreground">
|
|
358
|
+
{creatorLabels[row.original.createdBy]}
|
|
359
|
+
</span>
|
|
360
|
+
),
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
id: "updatedAt",
|
|
364
|
+
accessorFn: (schema) => schema.updatedAt ?? schema.createdAt ?? undefined,
|
|
365
|
+
header: "Updated",
|
|
366
|
+
enableSorting: true,
|
|
367
|
+
sortUndefined: "last",
|
|
368
|
+
cell: ({ row }) => <UpdatedCell schema={row.original} />,
|
|
369
|
+
},
|
|
370
|
+
...(canManage
|
|
371
|
+
? [
|
|
372
|
+
{
|
|
373
|
+
id: "actions",
|
|
374
|
+
enableSorting: false,
|
|
375
|
+
cell: ({ row }) => (
|
|
376
|
+
<SchemaActions
|
|
377
|
+
schema={row.original}
|
|
378
|
+
ruleCount={schemaCounts(row.original, ruleCounts).rules}
|
|
379
|
+
onWriteRule={onWriteRule}
|
|
380
|
+
onArchive={onArchive}
|
|
381
|
+
onRestore={onRestore}
|
|
382
|
+
onDelete={onDelete}
|
|
383
|
+
/>
|
|
384
|
+
),
|
|
385
|
+
} satisfies ColumnDef<GQLMemorySchemaFieldsFragment>,
|
|
386
|
+
]
|
|
387
|
+
: []),
|
|
388
|
+
],
|
|
389
|
+
[canManage, countKeys, ruleCounts, onWriteRule, onArchive, onRestore, onDelete],
|
|
390
|
+
);
|
|
391
|
+
|
|
392
|
+
const { sorting, setSorting, pagination, setPagination } = useTableState("memory-schemas", initialSorting, {
|
|
393
|
+
useLocalState: true,
|
|
394
|
+
defaultPageSize: 12,
|
|
395
|
+
});
|
|
396
|
+
|
|
397
|
+
const table = useReactTable(
|
|
398
|
+
createTableConfig({ data: filtered, columns, sorting, setSorting, pagination, setPagination }),
|
|
399
|
+
);
|
|
400
|
+
|
|
401
|
+
const activeCountFilters = countKeys.filter((key) => countFilters[key] !== "ANY").length;
|
|
402
|
+
const activeFilterCount = activeCountFilters + (isPresent(query) ? 1 : 0);
|
|
403
|
+
|
|
404
|
+
function setCountFilter(key: SchemaCountKey, value: CountFilter) {
|
|
405
|
+
setCountFilters((previous) => ({ ...previous, [key]: value }));
|
|
406
|
+
}
|
|
100
407
|
|
|
101
|
-
|
|
408
|
+
function clearFilters() {
|
|
409
|
+
onQueryChange?.("");
|
|
410
|
+
setCountFilters(anyCount);
|
|
411
|
+
}
|
|
102
412
|
|
|
103
413
|
return (
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
<div className="flex
|
|
107
|
-
{
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
414
|
+
<>
|
|
415
|
+
<div className="shrink-0 border-b border-muted-border px-5 py-3">
|
|
416
|
+
<div className="flex min-w-0 flex-col gap-3 3xl:flex-row 3xl:items-center">
|
|
417
|
+
{isPresent(tabs) && <div className="min-w-0 3xl:shrink">{tabs}</div>}
|
|
418
|
+
<div className="flex min-w-0 flex-1 flex-wrap items-center gap-2">
|
|
419
|
+
<Input
|
|
420
|
+
containerClassName="min-w-0 flex-1 sm:w-64 sm:flex-none"
|
|
421
|
+
type="search"
|
|
422
|
+
variant="search"
|
|
423
|
+
placeholder="Search schemas..."
|
|
424
|
+
value={query}
|
|
425
|
+
onChange={(event) => onQueryChange?.(event.target.value)}
|
|
426
|
+
/>
|
|
427
|
+
<div className="sm:hidden">
|
|
428
|
+
<FilterSheet activeCount={activeFilterCount} onReset={clearFilters}>
|
|
429
|
+
{countKeys.map((key) => (
|
|
430
|
+
<FilterSection key={key} title={countFilterConfig[key].label}>
|
|
431
|
+
<CountFilterDropdown
|
|
432
|
+
countKey={key}
|
|
433
|
+
value={countFilters[key]}
|
|
434
|
+
onChange={(value) => setCountFilter(key, value)}
|
|
435
|
+
fullWidth
|
|
436
|
+
/>
|
|
437
|
+
</FilterSection>
|
|
438
|
+
))}
|
|
439
|
+
</FilterSheet>
|
|
112
440
|
</div>
|
|
113
|
-
|
|
441
|
+
<div className="hidden sm:contents">
|
|
442
|
+
{countKeys.map((key) => (
|
|
443
|
+
<CountFilterDropdown
|
|
444
|
+
key={key}
|
|
445
|
+
countKey={key}
|
|
446
|
+
value={countFilters[key]}
|
|
447
|
+
onChange={(value) => setCountFilter(key, value)}
|
|
448
|
+
/>
|
|
449
|
+
))}
|
|
450
|
+
{activeFilterCount > 0 && (
|
|
451
|
+
<Button variant="ghost" size="base" rounded="lg" onClick={clearFilters} icon={X}>
|
|
452
|
+
Clear filters
|
|
453
|
+
</Button>
|
|
454
|
+
)}
|
|
455
|
+
</div>
|
|
456
|
+
</div>
|
|
114
457
|
</div>
|
|
115
|
-
|
|
458
|
+
</div>
|
|
116
459
|
|
|
117
|
-
|
|
118
|
-
<
|
|
119
|
-
<EmptyState
|
|
120
|
-
icon={Layers}
|
|
121
|
-
title="No schemas defined"
|
|
122
|
-
description="Memory schemas define structured properties for typed memories."
|
|
123
|
-
/>
|
|
124
|
-
</div>
|
|
125
|
-
)}
|
|
460
|
+
<div className="flex-1 overflow-auto p-4">
|
|
461
|
+
{errorMessage && <Banner label={errorMessage} />}
|
|
126
462
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
463
|
+
{isLoading && (
|
|
464
|
+
<div className="flex flex-col divide-y divide-muted-border overflow-hidden rounded-xl border border-muted-border">
|
|
465
|
+
{[0, 1, 2].map((i) => (
|
|
466
|
+
<div key={i} className="flex items-center gap-2 px-4 py-3">
|
|
467
|
+
<Skeleton className="h-4 w-40 rounded-md" />
|
|
468
|
+
<Skeleton className="ml-auto h-4 w-16 rounded-md" />
|
|
469
|
+
</div>
|
|
470
|
+
))}
|
|
471
|
+
</div>
|
|
472
|
+
)}
|
|
132
473
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
474
|
+
{!isLoading && !errorMessage && !isPresent(schemas) && (
|
|
475
|
+
<div className="flex h-full items-center justify-center">
|
|
476
|
+
<EmptyState
|
|
477
|
+
icon={Layers}
|
|
478
|
+
title="No schemas yet"
|
|
479
|
+
description="A schema gives memories of one type their own fields, so the agent records them consistently."
|
|
480
|
+
>
|
|
481
|
+
{canManage && onCreate && (
|
|
482
|
+
<Button icon={Plus} onClick={onCreate}>
|
|
483
|
+
New schema
|
|
484
|
+
</Button>
|
|
485
|
+
)}
|
|
486
|
+
</EmptyState>
|
|
487
|
+
</div>
|
|
488
|
+
)}
|
|
489
|
+
|
|
490
|
+
{!isLoading && isPresent(schemas) && (
|
|
491
|
+
<section aria-label="Memory schemas" className="flex flex-col gap-3">
|
|
492
|
+
<div className="overflow-hidden rounded-xl border border-muted-border bg-card">
|
|
493
|
+
<DataTable
|
|
494
|
+
table={table}
|
|
495
|
+
noResultsMessage="No schemas match these filters."
|
|
496
|
+
onRowClick={(row) => void navigate(memorySchemaPath(row.original.iri))}
|
|
497
|
+
/>
|
|
498
|
+
</div>
|
|
499
|
+
<TablePagination table={table} total={filtered.length} />
|
|
500
|
+
</section>
|
|
501
|
+
)}
|
|
502
|
+
</div>
|
|
503
|
+
</>
|
|
141
504
|
);
|
|
142
505
|
}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "@manta-eu/client/shared/memory-preload-gate";
|
|
9
9
|
import { formatEntityName } from "@manta-eu/client/shared/rdf-namespaces";
|
|
10
10
|
import { isPresent } from "@manta-eu/lib/present";
|
|
11
|
-
import { CopyCheck, Link2, Quote } from "lucide-react";
|
|
11
|
+
import { CopyCheck, Link2, Quote, Sparkles } from "lucide-react";
|
|
12
12
|
import { match, P } from "ts-pattern";
|
|
13
13
|
import { unconfirmedHorizonLabel, type MemoryWindowState } from "../expiry-utils";
|
|
14
14
|
import { Badge } from "#components/badge/index";
|
|
@@ -102,17 +102,29 @@ export function KindBadge(props: KindBadgeProps) {
|
|
|
102
102
|
);
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
+
export function autoAssignedNote(memory: { schemaAssignment?: { confidence?: number | null } | null }): string | null {
|
|
106
|
+
const assignment = memory.schemaAssignment;
|
|
107
|
+
if (!assignment) return null;
|
|
108
|
+
return assignment.confidence == null
|
|
109
|
+
? "Manta chose this schema automatically"
|
|
110
|
+
: `Manta chose this schema automatically (${Math.round(assignment.confidence * 100)}% sure)`;
|
|
111
|
+
}
|
|
112
|
+
|
|
105
113
|
export type SchemaBadgeProps = {
|
|
106
114
|
label?: string | null;
|
|
115
|
+
autoAssigned?: boolean;
|
|
116
|
+
filledCount?: number;
|
|
107
117
|
};
|
|
108
118
|
|
|
109
119
|
export function SchemaBadge(props: SchemaBadgeProps) {
|
|
110
|
-
const { label } = props;
|
|
120
|
+
const { label, autoAssigned = false, filledCount } = props;
|
|
111
121
|
if (!label) return null;
|
|
112
122
|
|
|
113
123
|
return (
|
|
114
|
-
<Badge size="sm" variant="secondary" className="max-w-[28ch]
|
|
115
|
-
{label}
|
|
124
|
+
<Badge size="sm" variant="secondary" className="max-w-[28ch]" title={filledCount ? undefined : label}>
|
|
125
|
+
{autoAssigned && <Sparkles role="img" aria-label="Assigned automatically" />}
|
|
126
|
+
<span className="min-w-0 truncate">{label}</span>
|
|
127
|
+
{filledCount ? <span className="shrink-0 text-muted-foreground">({filledCount})</span> : null}
|
|
116
128
|
</Badge>
|
|
117
129
|
);
|
|
118
130
|
}
|