@manta-eu/react 0.12.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/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/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
|
@@ -7,7 +7,6 @@ import { FileDropzone, UploadProgressList, type RejectedDrop } from "#components
|
|
|
7
7
|
import { PageBody, PageHeader } from "#components/layouts/page/index";
|
|
8
8
|
import { RouteLayout } from "#components/layouts/RouteLayout";
|
|
9
9
|
import { useFileUpload } from "#lib/hooks/useFileUpload";
|
|
10
|
-
import { useAuthContext } from "#providers/AuthContext";
|
|
11
10
|
import { UploadedFilesSection } from "#routes/data-explorer/components/uploads/UploadsPages";
|
|
12
11
|
import { useInvalidateUploads } from "#routes/data-explorer/uploads";
|
|
13
12
|
|
|
@@ -45,17 +44,8 @@ export function DataCollectionUploader() {
|
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
export function DataCollectionRoute() {
|
|
48
|
-
const { datastore, datastores, user, logout, isOperator, canSwitchDatastore } = useAuthContext();
|
|
49
|
-
|
|
50
47
|
return (
|
|
51
|
-
<RouteLayout
|
|
52
|
-
user={user}
|
|
53
|
-
datastore={datastore}
|
|
54
|
-
datastores={datastores}
|
|
55
|
-
isOperator={isOperator}
|
|
56
|
-
canSwitchDatastore={canSwitchDatastore}
|
|
57
|
-
logout={logout}
|
|
58
|
-
>
|
|
48
|
+
<RouteLayout>
|
|
59
49
|
<PageHeader title="Data collection" icon={FolderUp} />
|
|
60
50
|
<PageBody className="px-4 py-6 sm:px-6">
|
|
61
51
|
<div className="mx-auto flex max-w-4xl flex-col gap-8">
|
|
@@ -12,7 +12,6 @@ import { SelectionProvider } from "./SelectionProvider";
|
|
|
12
12
|
import { PageBody, PageHeader } from "#components/layouts/page/index";
|
|
13
13
|
import { RouteLayout } from "#components/layouts/RouteLayout";
|
|
14
14
|
import { cn } from "#lib/utils";
|
|
15
|
-
import { useAuthContext } from "#providers/AuthContext";
|
|
16
15
|
|
|
17
16
|
const ontologyStaleTime = 5 * 60 * 1000;
|
|
18
17
|
|
|
@@ -28,8 +27,6 @@ function useExplorerQueryDefaults() {
|
|
|
28
27
|
}
|
|
29
28
|
|
|
30
29
|
export function DataExplorerLayout() {
|
|
31
|
-
const { datastore, datastores, user, logout, isOperator, canSwitchDatastore } = useAuthContext();
|
|
32
|
-
|
|
33
30
|
const isIndex = Boolean(useMatch(explorerPath));
|
|
34
31
|
const isCoverage = Boolean(useMatch(coveragePath));
|
|
35
32
|
const isFiles = Boolean(useMatch(filesPath));
|
|
@@ -41,14 +38,7 @@ export function DataExplorerLayout() {
|
|
|
41
38
|
useExplorerQueryDefaults();
|
|
42
39
|
|
|
43
40
|
return (
|
|
44
|
-
<RouteLayout
|
|
45
|
-
user={user}
|
|
46
|
-
datastore={datastore}
|
|
47
|
-
datastores={datastores}
|
|
48
|
-
isOperator={isOperator}
|
|
49
|
-
canSwitchDatastore={canSwitchDatastore}
|
|
50
|
-
logout={logout}
|
|
51
|
-
>
|
|
41
|
+
<RouteLayout>
|
|
52
42
|
<SelectionProvider>
|
|
53
43
|
<PageHeader
|
|
54
44
|
title="Data Explorer"
|
|
@@ -9,7 +9,7 @@ import { sectionLabelClass } from "#ldo-ui";
|
|
|
9
9
|
import { cn } from "#lib/utils";
|
|
10
10
|
import { useMantaClient } from "#providers/index";
|
|
11
11
|
import { labelWithinFamily, matchesNameQuery, nameFamilySections } from "#routes/data-explorer/families";
|
|
12
|
-
import { getRuleDisplayName,
|
|
12
|
+
import { getRuleDisplayName, getRuleHref } from "#routes/rules/components/rules.utils";
|
|
13
13
|
|
|
14
14
|
type RuleLinkProps = { ruleIri: string; family?: string };
|
|
15
15
|
|
|
@@ -20,7 +20,7 @@ function RuleLink(props: RuleLinkProps) {
|
|
|
20
20
|
const label = family ? labelWithinFamily(fullLabel, family) : fullLabel;
|
|
21
21
|
|
|
22
22
|
return (
|
|
23
|
-
<LinkRow to={
|
|
23
|
+
<LinkRow to={getRuleHref({ ruleIri })}>
|
|
24
24
|
<span className="typography-small-medium min-w-0 flex-1 truncate text-default-foreground">{label}</span>
|
|
25
25
|
</LinkRow>
|
|
26
26
|
);
|
|
@@ -105,7 +105,8 @@ type DatastoreFilterToggle = {
|
|
|
105
105
|
};
|
|
106
106
|
|
|
107
107
|
export function DatastoresRoute() {
|
|
108
|
-
const { datastore,
|
|
108
|
+
const { datastore, isOperator, canSwitchDatastore } = useAuthContext();
|
|
109
|
+
|
|
109
110
|
const { mantaClient } = useMantaClient();
|
|
110
111
|
const queryClient = useQueryClient();
|
|
111
112
|
const navigate = useNavigate();
|
|
@@ -745,14 +746,7 @@ export function DatastoresRoute() {
|
|
|
745
746
|
}
|
|
746
747
|
|
|
747
748
|
return (
|
|
748
|
-
<RouteLayout
|
|
749
|
-
user={user}
|
|
750
|
-
datastore={datastore}
|
|
751
|
-
datastores={datastores}
|
|
752
|
-
isOperator={isOperator}
|
|
753
|
-
canSwitchDatastore={canSwitchDatastore}
|
|
754
|
-
logout={logout}
|
|
755
|
-
>
|
|
749
|
+
<RouteLayout>
|
|
756
750
|
<PageHeader
|
|
757
751
|
title="Datastores"
|
|
758
752
|
icon={Database}
|
|
@@ -6,23 +6,13 @@ import { parseExplainUrlParams } from "./url-params";
|
|
|
6
6
|
import { ExplainFact } from "#components/explain-fact/ExplainFact";
|
|
7
7
|
import { PageHeader } from "#components/layouts/page/index";
|
|
8
8
|
import { RouteLayout } from "#components/layouts/RouteLayout";
|
|
9
|
-
import { useAuthContext } from "#providers/AuthContext";
|
|
10
9
|
|
|
11
10
|
export function ExplainRoute() {
|
|
12
|
-
const { datastore, datastores, user, logout, isOperator, canSwitchDatastore } = useAuthContext();
|
|
13
|
-
|
|
14
11
|
const [searchParams] = useSearchParams();
|
|
15
12
|
const params = useMemo(() => parseExplainUrlParams(searchParams), [searchParams]);
|
|
16
13
|
|
|
17
14
|
return (
|
|
18
|
-
<RouteLayout
|
|
19
|
-
user={user}
|
|
20
|
-
datastore={datastore}
|
|
21
|
-
datastores={datastores}
|
|
22
|
-
isOperator={isOperator}
|
|
23
|
-
canSwitchDatastore={canSwitchDatastore}
|
|
24
|
-
logout={logout}
|
|
25
|
-
>
|
|
15
|
+
<RouteLayout>
|
|
26
16
|
<PageHeader title="Explain" icon={Network} />
|
|
27
17
|
<div className="min-h-0 flex-1 p-4">
|
|
28
18
|
{params ? (
|
|
@@ -11,7 +11,6 @@ import type { ConnectFormProps } from "./types";
|
|
|
11
11
|
import { useMantaClient } from "#providers/index";
|
|
12
12
|
|
|
13
13
|
const copy: SetupCopy = {
|
|
14
|
-
providerName: "Google Analytics",
|
|
15
14
|
identityProviderName: "Google",
|
|
16
15
|
entitySingular: "property",
|
|
17
16
|
entityPlural: "properties",
|
package/src/routes/integrations/components/connect-forms/GoogleMerchantCenterConnectForm.tsx
CHANGED
|
@@ -11,7 +11,6 @@ import type { ConnectFormProps } from "./types";
|
|
|
11
11
|
import { useMantaClient } from "#providers/index";
|
|
12
12
|
|
|
13
13
|
const copy: SetupCopy = {
|
|
14
|
-
providerName: "Merchant Center",
|
|
15
14
|
identityProviderName: "Google",
|
|
16
15
|
entitySingular: "account",
|
|
17
16
|
entityPlural: "accounts",
|
|
@@ -37,7 +37,6 @@ export type CredentialStep<Key extends string = string> = {
|
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
export type InferalCredentialFormConfig<Key extends string = string> = {
|
|
40
|
-
providerName: string;
|
|
41
40
|
fieldIdPrefix: string;
|
|
42
41
|
identifier: CredentialField<Key> & { stepTitle: string; stepDescription: string };
|
|
43
42
|
secrets: CredentialStep<Key>;
|
|
@@ -240,11 +239,14 @@ export type InferalCredentialConnectFormProps<Key extends string> = ConnectFormP
|
|
|
240
239
|
|
|
241
240
|
export function InferalCredentialConnectForm<Key extends string>(props: InferalCredentialConnectFormProps<Key>) {
|
|
242
241
|
const { onBack, onChanged, onDismiss, provider, inferalConfig, config, importNotice } = props;
|
|
242
|
+
const { name: providerName } = provider;
|
|
243
|
+
|
|
243
244
|
if (!inferalConfig) {
|
|
244
|
-
throw new Error(`${
|
|
245
|
+
throw new Error(`${providerName} is missing its Inferal connection configuration`);
|
|
245
246
|
}
|
|
247
|
+
|
|
246
248
|
const { deriveStreamName, locationLabels, setupInstructions } = inferalConfig;
|
|
247
|
-
const {
|
|
249
|
+
const { identifier, secrets, settings, buildProviderInput } = config;
|
|
248
250
|
|
|
249
251
|
const credentialFields = useMemo(
|
|
250
252
|
() => [identifier, ...secrets.fields, ...(settings?.fields ?? [])],
|
|
@@ -18,7 +18,6 @@ function looksLikeMetricId(value: string): boolean {
|
|
|
18
18
|
|
|
19
19
|
// companyId identifies the integration on our side only — Klaviyo's relay contract never receives it.
|
|
20
20
|
export const klaviyoConfig: InferalCredentialFormConfig<"companyId" | "apiKey" | "conversionMetricId"> = {
|
|
21
|
-
providerName: "Klaviyo",
|
|
22
21
|
fieldIdPrefix: "klaviyo",
|
|
23
22
|
identifier: {
|
|
24
23
|
key: "companyId",
|
|
@@ -15,7 +15,6 @@ import type { TreeSelectItem } from "#components/tree-multi-select/index";
|
|
|
15
15
|
import { useMantaClient } from "#providers/index";
|
|
16
16
|
|
|
17
17
|
const copy: SetupCopy = {
|
|
18
|
-
providerName: "Microsoft Ads",
|
|
19
18
|
identityProviderName: "Microsoft",
|
|
20
19
|
entitySingular: "account",
|
|
21
20
|
entityPlural: "accounts",
|
|
@@ -39,9 +39,8 @@ export type OAuthSetup<Row extends SetupRow> = {
|
|
|
39
39
|
|
|
40
40
|
export type SetupTreeOptions = Pick<TreeMultiSelectProps, "defaultCollapsed" | "includeDescendants">;
|
|
41
41
|
|
|
42
|
-
//
|
|
42
|
+
// The rest of the copy is derived from the provider name, the identity provider name and the entity noun.
|
|
43
43
|
export type SetupCopy = {
|
|
44
|
-
providerName: string;
|
|
45
44
|
identityProviderName: string;
|
|
46
45
|
entitySingular: string;
|
|
47
46
|
entityPlural: string;
|
|
@@ -76,10 +75,11 @@ export type AlternateSignIn = { label: string; href: string };
|
|
|
76
75
|
|
|
77
76
|
export function OAuthSetupConnectForm<Row extends SetupRow>(props: OAuthSetupConnectFormProps<Row>) {
|
|
78
77
|
const { onBack, onChanged, onDismiss, provider, resumedFromOAuth = false, importNotice } = props;
|
|
79
|
-
const { integration, oauthStartPath,
|
|
80
|
-
|
|
81
|
-
const {
|
|
82
|
-
|
|
78
|
+
const { integration, oauthStartPath, setup, treeItems, treeOptions, resumesUnfinishedSetup, pickExtras } = props;
|
|
79
|
+
const { alternateSignIns, copy: setupCopy } = props;
|
|
80
|
+
const { name: providerName } = provider;
|
|
81
|
+
|
|
82
|
+
const copy = { ...setupCopy, providerName };
|
|
83
83
|
const [hasStartedOAuth, setHasStartedOAuth] = useState(resumedFromOAuth);
|
|
84
84
|
const [hasSeenActiveState, setHasSeenActiveState] = useState(resumedFromOAuth);
|
|
85
85
|
const [selectedIds, setSelectedIds] = useState<ReadonlySet<string>>(new Set());
|
|
@@ -238,7 +238,7 @@ export function OAuthSetupConnectForm<Row extends SetupRow>(props: OAuthSetupCon
|
|
|
238
238
|
}
|
|
239
239
|
|
|
240
240
|
type CopyProps = {
|
|
241
|
-
copy: SetupCopy;
|
|
241
|
+
copy: SetupCopy & { providerName: string };
|
|
242
242
|
};
|
|
243
243
|
|
|
244
244
|
type IdleViewProps = CopyProps & {
|
|
@@ -2,7 +2,6 @@ import { InferalCredentialConnectForm, type InferalCredentialFormConfig } from "
|
|
|
2
2
|
import type { ConnectFormProps } from "./types";
|
|
3
3
|
|
|
4
4
|
export const triplewhaleConfig: InferalCredentialFormConfig<"shopId" | "apiKey"> = {
|
|
5
|
-
providerName: "Triple Whale",
|
|
6
5
|
fieldIdPrefix: "triplewhale",
|
|
7
6
|
identifier: {
|
|
8
7
|
key: "shopId",
|
|
@@ -3,7 +3,6 @@ import { InferalCredentialConnectForm, type InferalCredentialFormConfig } from "
|
|
|
3
3
|
import type { ConnectFormProps } from "./types";
|
|
4
4
|
|
|
5
5
|
export const woocommerceConfig: InferalCredentialFormConfig<"sourceUrl" | "consumerKey" | "consumerSecret"> = {
|
|
6
|
-
providerName: "WooCommerce",
|
|
7
6
|
fieldIdPrefix: "woocommerce",
|
|
8
7
|
identifier: {
|
|
9
8
|
key: "sourceUrl",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
GQLDataConnectionStatus,
|
|
3
|
-
GQLGmailIntegrationStatus,
|
|
4
|
-
GQLIncludedResource,
|
|
1
|
+
import {
|
|
5
2
|
GQLInferalIntegrationProvider,
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
type GQLDataConnectionStatus,
|
|
4
|
+
type GQLGmailIntegrationStatus,
|
|
5
|
+
type GQLIncludedResource,
|
|
6
|
+
type GQLIntegration,
|
|
7
|
+
type GQLRelayIntegrationStatus,
|
|
8
8
|
} from "@manta-eu/client";
|
|
9
9
|
import type { HexColor } from "@manta-eu/lib/color";
|
|
10
10
|
import type { ComponentType, SVGProps } from "react";
|
|
@@ -98,3 +98,19 @@ export type ConnectedProvider<Id extends string = ProviderId> = {
|
|
|
98
98
|
category: string;
|
|
99
99
|
connections: ConnectionView[];
|
|
100
100
|
};
|
|
101
|
+
|
|
102
|
+
export const inferalProviderNames: Record<`${GQLInferalIntegrationProvider}`, string> = {
|
|
103
|
+
[GQLInferalIntegrationProvider.GoogleAds]: "Google Ads",
|
|
104
|
+
[GQLInferalIntegrationProvider.GoogleAnalytics]: "Google Analytics",
|
|
105
|
+
[GQLInferalIntegrationProvider.GoogleMerchant]: "Merchant Center",
|
|
106
|
+
[GQLInferalIntegrationProvider.Klaviyo]: "Klaviyo",
|
|
107
|
+
[GQLInferalIntegrationProvider.Linkedin]: "LinkedIn Ads",
|
|
108
|
+
[GQLInferalIntegrationProvider.Mailchimp]: "Mailchimp",
|
|
109
|
+
[GQLInferalIntegrationProvider.Meta]: "Meta",
|
|
110
|
+
[GQLInferalIntegrationProvider.Microsoftads]: "Microsoft Ads",
|
|
111
|
+
[GQLInferalIntegrationProvider.Pinterest]: "Pinterest",
|
|
112
|
+
[GQLInferalIntegrationProvider.Shopify]: "Shopify",
|
|
113
|
+
[GQLInferalIntegrationProvider.Slack]: "Slack",
|
|
114
|
+
[GQLInferalIntegrationProvider.Triplewhale]: "Triple Whale",
|
|
115
|
+
[GQLInferalIntegrationProvider.Woocommerce]: "WooCommerce",
|
|
116
|
+
};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { isPresent } from "@manta-eu/lib/present";
|
|
2
|
+
import { format, isValid, parseISO } from "date-fns";
|
|
3
|
+
import { X } from "lucide-react";
|
|
4
|
+
import { Button } from "#components/button/index";
|
|
5
|
+
import { InputDate, InputDateTime } from "#components/input/index";
|
|
6
|
+
|
|
7
|
+
export function parseDateValue(value: string | null | undefined): Date | undefined {
|
|
8
|
+
if (!isPresent(value)) return undefined;
|
|
9
|
+
const parsed = parseISO(value);
|
|
10
|
+
return isValid(parsed) ? parsed : undefined;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// Dates are stored as a calendar day; date-times as a UTC instant, shown in local time.
|
|
14
|
+
export function formatDateValue(date: Date, withTime: boolean): string {
|
|
15
|
+
return withTime ? date.toISOString() : format(date, "yyyy-MM-dd");
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export type DateValueInputProps = {
|
|
19
|
+
id: string;
|
|
20
|
+
label: string;
|
|
21
|
+
value: string;
|
|
22
|
+
onChange: (value: string) => void;
|
|
23
|
+
withTime?: boolean;
|
|
24
|
+
min?: string | null;
|
|
25
|
+
max?: string | null;
|
|
26
|
+
placeholder?: string;
|
|
27
|
+
error?: string;
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export function DateValueInput(props: DateValueInputProps) {
|
|
32
|
+
const { id, label, value, onChange, withTime = false, min, max, placeholder, error, disabled } = props;
|
|
33
|
+
const errorId = `${id}-error`;
|
|
34
|
+
const pickerProps = {
|
|
35
|
+
id,
|
|
36
|
+
selected: parseDateValue(value),
|
|
37
|
+
minDate: parseDateValue(min),
|
|
38
|
+
maxDate: parseDateValue(max),
|
|
39
|
+
allowPast: true,
|
|
40
|
+
placeholder,
|
|
41
|
+
disabled,
|
|
42
|
+
invalid: isPresent(error),
|
|
43
|
+
"aria-label": label,
|
|
44
|
+
"aria-describedby": error ? errorId : undefined,
|
|
45
|
+
onChange: (date: Date) => onChange(formatDateValue(date, withTime)),
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
return (
|
|
49
|
+
<div className="flex flex-col gap-1.5">
|
|
50
|
+
<div className="flex flex-wrap items-center gap-2">
|
|
51
|
+
{withTime ? <InputDateTime {...pickerProps} minuteStep={15} /> : <InputDate {...pickerProps} />}
|
|
52
|
+
{isPresent(value) && (
|
|
53
|
+
<Button
|
|
54
|
+
type="button"
|
|
55
|
+
variant="tertiary"
|
|
56
|
+
size="sm"
|
|
57
|
+
iconOnly
|
|
58
|
+
icon={X}
|
|
59
|
+
aria-label={`Clear ${label}`}
|
|
60
|
+
disabled={disabled}
|
|
61
|
+
onClick={() => onChange("")}
|
|
62
|
+
/>
|
|
63
|
+
)}
|
|
64
|
+
</div>
|
|
65
|
+
{error && (
|
|
66
|
+
<p id={errorId} className="typography-small text-error-foreground">
|
|
67
|
+
{error}
|
|
68
|
+
</p>
|
|
69
|
+
)}
|
|
70
|
+
</div>
|
|
71
|
+
);
|
|
72
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { compactUri, isValidFullIri } from "@manta-eu/client/shared/rdf-namespaces";
|
|
2
|
+
import { isPresent } from "@manta-eu/lib/present";
|
|
3
|
+
import { sanitizeSparqlLiteral } from "@manta-eu/rdf-lib/sparql-literal-escape";
|
|
4
|
+
import { ChevronDown } from "lucide-react";
|
|
5
|
+
import { useState } from "react";
|
|
6
|
+
import { useDebounceValue } from "usehooks-ts";
|
|
7
|
+
import {
|
|
8
|
+
Combobox,
|
|
9
|
+
ComboboxContent,
|
|
10
|
+
ComboboxEmpty,
|
|
11
|
+
ComboboxInput,
|
|
12
|
+
ComboboxItem,
|
|
13
|
+
ComboboxList,
|
|
14
|
+
ComboboxTrigger,
|
|
15
|
+
} from "#components/combobox/index";
|
|
16
|
+
import { createSelectClassName } from "#components/select/index";
|
|
17
|
+
import { useSparqlSelect } from "#hooks/use-sparql-construct";
|
|
18
|
+
import { cn } from "#lib/utils";
|
|
19
|
+
|
|
20
|
+
const schemaName = "https://schema.org/name";
|
|
21
|
+
const resultLimit = 20;
|
|
22
|
+
const untypedMinimumSearch = 2;
|
|
23
|
+
|
|
24
|
+
// Anchored on the class when the property names one; otherwise a name search, which needs a few letters first.
|
|
25
|
+
export function entitySearchQuery(entityClass: string | null, search: string): string | null {
|
|
26
|
+
const typed = entityClass !== null && isValidFullIri(entityClass);
|
|
27
|
+
if (!typed && search.trim().length < untypedMinimumSearch) return null;
|
|
28
|
+
const needle = sanitizeSparqlLiteral(search.trim().toLowerCase());
|
|
29
|
+
return `SELECT DISTINCT ?iri ?name WHERE {
|
|
30
|
+
${typed ? `?iri a <${entityClass}> .` : ""}
|
|
31
|
+
?iri <${schemaName}> ?name .
|
|
32
|
+
FILTER(!isBlank(?iri))
|
|
33
|
+
FILTER(CONTAINS(LCASE(STR(?name)), "${needle}"))
|
|
34
|
+
} LIMIT ${resultLimit}`;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function entityNameQuery(iri: string): string | null {
|
|
38
|
+
return isValidFullIri(iri) ? `SELECT ?name WHERE { <${iri}> <${schemaName}> ?name } LIMIT 1` : null;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export type EntityValuePickerProps = {
|
|
42
|
+
id: string;
|
|
43
|
+
label: string;
|
|
44
|
+
value: string;
|
|
45
|
+
entityClass: string | null;
|
|
46
|
+
error?: string;
|
|
47
|
+
onChange: (iri: string) => void;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export function EntityValuePicker(props: EntityValuePickerProps) {
|
|
51
|
+
const { id, label, value, entityClass, error, onChange } = props;
|
|
52
|
+
const [open, setOpen] = useState(false);
|
|
53
|
+
const [search, setSearch] = useState("");
|
|
54
|
+
const [debouncedSearch] = useDebounceValue(search, 300);
|
|
55
|
+
const searchQuery = entitySearchQuery(entityClass, debouncedSearch);
|
|
56
|
+
const nameQuery = isPresent(value) ? entityNameQuery(value) : null;
|
|
57
|
+
|
|
58
|
+
const { data: results, isFetching } = useSparqlSelect({
|
|
59
|
+
query: searchQuery ?? "",
|
|
60
|
+
queryKey: ["memory-entity-search", entityClass, debouncedSearch],
|
|
61
|
+
enabled: open && searchQuery !== null,
|
|
62
|
+
});
|
|
63
|
+
const { data: named } = useSparqlSelect({
|
|
64
|
+
query: nameQuery ?? "",
|
|
65
|
+
queryKey: ["memory-entity-name", value],
|
|
66
|
+
enabled: nameQuery !== null,
|
|
67
|
+
staleTime: 60_000,
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
const options = (results ?? []).flatMap((binding) => {
|
|
71
|
+
const iri = binding.get("iri")?.value;
|
|
72
|
+
return iri ? [{ iri, name: binding.get("name")?.value ?? compactUri(iri) }] : [];
|
|
73
|
+
});
|
|
74
|
+
const selectedName = named?.[0]?.get("name")?.value;
|
|
75
|
+
const errorId = `${id}-error`;
|
|
76
|
+
|
|
77
|
+
return (
|
|
78
|
+
<div className="flex flex-col gap-1.5">
|
|
79
|
+
<Combobox open={open} onOpenChange={setOpen}>
|
|
80
|
+
<ComboboxTrigger asChild>
|
|
81
|
+
<button
|
|
82
|
+
type="button"
|
|
83
|
+
id={id}
|
|
84
|
+
aria-label={`${label}: ${isPresent(value) ? (selectedName ?? compactUri(value)) : "not set"}`}
|
|
85
|
+
aria-invalid={error ? true : undefined}
|
|
86
|
+
aria-describedby={error ? errorId : undefined}
|
|
87
|
+
className={cn(createSelectClassName({ size: "base" }), "w-full min-w-0")}
|
|
88
|
+
>
|
|
89
|
+
<span
|
|
90
|
+
className={cn("min-w-0 flex-1 truncate text-left", !isPresent(value) && "text-placeholder-foreground")}
|
|
91
|
+
>
|
|
92
|
+
{isPresent(value) ? (selectedName ?? compactUri(value)) : "Choose a record"}
|
|
93
|
+
</span>
|
|
94
|
+
<ChevronDown className="size-4 shrink-0 text-muted-foreground" />
|
|
95
|
+
</button>
|
|
96
|
+
</ComboboxTrigger>
|
|
97
|
+
<ComboboxContent align="start" className="w-[var(--radix-popover-trigger-width,320px)]" filter={() => 1}>
|
|
98
|
+
<ComboboxInput placeholder="Search by name…" value={search} onValueChange={setSearch} />
|
|
99
|
+
<ComboboxList>
|
|
100
|
+
<ComboboxEmpty>
|
|
101
|
+
{searchQuery === null
|
|
102
|
+
? `Type at least ${untypedMinimumSearch} letters`
|
|
103
|
+
: isFetching
|
|
104
|
+
? "Searching…"
|
|
105
|
+
: "No matching record"}
|
|
106
|
+
</ComboboxEmpty>
|
|
107
|
+
{isPresent(value) && (
|
|
108
|
+
<ComboboxItem value="__clear__" onSelect={() => onChange("")}>
|
|
109
|
+
Clear
|
|
110
|
+
</ComboboxItem>
|
|
111
|
+
)}
|
|
112
|
+
{options.map((option) => (
|
|
113
|
+
<ComboboxItem
|
|
114
|
+
key={option.iri}
|
|
115
|
+
value={option.iri}
|
|
116
|
+
selected={option.iri === value}
|
|
117
|
+
onSelect={() => onChange(option.iri)}
|
|
118
|
+
>
|
|
119
|
+
{option.name}
|
|
120
|
+
</ComboboxItem>
|
|
121
|
+
))}
|
|
122
|
+
</ComboboxList>
|
|
123
|
+
</ComboboxContent>
|
|
124
|
+
</Combobox>
|
|
125
|
+
{error && (
|
|
126
|
+
<p id={errorId} className="typography-small text-error-foreground">
|
|
127
|
+
{error}
|
|
128
|
+
</p>
|
|
129
|
+
)}
|
|
130
|
+
</div>
|
|
131
|
+
);
|
|
132
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { HelpCircle } from "lucide-react";
|
|
2
|
+
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "#components/tooltip/index";
|
|
3
|
+
|
|
4
|
+
export type InfoTipProps = {
|
|
5
|
+
label: string;
|
|
6
|
+
hint: string;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export function InfoTip(props: InfoTipProps) {
|
|
10
|
+
const { label, hint } = props;
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<TooltipProvider delayDuration={200}>
|
|
14
|
+
<Tooltip>
|
|
15
|
+
<TooltipTrigger asChild>
|
|
16
|
+
<button
|
|
17
|
+
type="button"
|
|
18
|
+
className="inline-flex shrink-0 text-default-foreground rounded-sm my-auto"
|
|
19
|
+
aria-label={`${label} description`}
|
|
20
|
+
>
|
|
21
|
+
<HelpCircle className="size-3.5" />
|
|
22
|
+
</button>
|
|
23
|
+
</TooltipTrigger>
|
|
24
|
+
<TooltipContent side="top" className="max-w-xs text-left typography-small">
|
|
25
|
+
{hint}
|
|
26
|
+
</TooltipContent>
|
|
27
|
+
</Tooltip>
|
|
28
|
+
</TooltipProvider>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export type FieldLabelProps = {
|
|
33
|
+
label: string;
|
|
34
|
+
hint: string;
|
|
35
|
+
htmlFor?: string;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export function FieldLabel(props: FieldLabelProps) {
|
|
39
|
+
const { label, hint, htmlFor } = props;
|
|
40
|
+
|
|
41
|
+
return (
|
|
42
|
+
<div className="flex items-end gap-1">
|
|
43
|
+
<label htmlFor={htmlFor} className="typography-small">
|
|
44
|
+
{label}
|
|
45
|
+
</label>
|
|
46
|
+
<InfoTip label={label} hint={hint} />
|
|
47
|
+
</div>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
@@ -9,7 +9,7 @@ type ImportanceConfig = {
|
|
|
9
9
|
label: string;
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
const importanceSteps = [1, 2, 3, 4, 5] as const;
|
|
12
|
+
export const importanceSteps = [1, 2, 3, 4, 5] as const;
|
|
13
13
|
|
|
14
14
|
const importanceConfig: Record<number, ImportanceConfig> = {
|
|
15
15
|
1: { icon: Minus, className: "text-muted-foreground/50", label: "Disabled" },
|
|
@@ -19,6 +19,10 @@ const importanceConfig: Record<number, ImportanceConfig> = {
|
|
|
19
19
|
5: { icon: ChevronsUp, className: "text-error-foreground", label: "Critical" },
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
+
export function importanceLabel(step: number): string {
|
|
23
|
+
return importanceConfig[step]?.label ?? String(step);
|
|
24
|
+
}
|
|
25
|
+
|
|
22
26
|
export type ImportanceSliderProps = {
|
|
23
27
|
value: number;
|
|
24
28
|
onChange: (v: number) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GQLMemoryKind, type
|
|
1
|
+
import { GQLMemoryKind, type GQLMemorySchemaFieldsFragment } from "@manta-eu/client";
|
|
2
2
|
import { isPresent } from "@manta-eu/lib/present";
|
|
3
3
|
import type { Table } from "@tanstack/react-table";
|
|
4
4
|
import { ChevronDown, X } from "lucide-react";
|
|
@@ -83,7 +83,7 @@ type MemoriesFiltersProps<TData> = {
|
|
|
83
83
|
table: Table<TData>;
|
|
84
84
|
columnLabels?: Record<string, string>;
|
|
85
85
|
columnDefaultOrder?: string[];
|
|
86
|
-
schemas?:
|
|
86
|
+
schemas?: GQLMemorySchemaFieldsFragment[];
|
|
87
87
|
schemaFilter?: SchemaFilter;
|
|
88
88
|
onSchemaFilterChange?: (iri: SchemaFilter) => void;
|
|
89
89
|
statusFilters?: Record<StatusFilterKey, boolean>;
|
|
@@ -17,7 +17,7 @@ import { liveContextQueryKey } from "../hooks/useLiveContext";
|
|
|
17
17
|
import { buildCreateMemoryInput, buildUpdateMemoryInput } from "../memory-mutation-input";
|
|
18
18
|
import { KindBadge, ScopeBadge } from "./badges";
|
|
19
19
|
import type { MemoryFormState } from "./MemoryFields";
|
|
20
|
-
import { MemoryFormDialog } from "./MemoryFormDialog";
|
|
20
|
+
import { MemoryFormDialog, type MemorySaveResult } from "./MemoryFormDialog";
|
|
21
21
|
import { Banner } from "#components/banner/index";
|
|
22
22
|
import { Button } from "#components/button/index";
|
|
23
23
|
import { Dropdown, DropdownContent, DropdownGroup, DropdownItem, DropdownTrigger } from "#components/dropdown/index";
|
|
@@ -54,7 +54,7 @@ export function MemoriesPanel(props: MemoriesPanelProps) {
|
|
|
54
54
|
}, [queryClient]);
|
|
55
55
|
|
|
56
56
|
const handleCreate = useCallback(
|
|
57
|
-
async (form: MemoryFormState, supersedesMemoryIris?: string[]) => {
|
|
57
|
+
async (form: MemoryFormState, supersedesMemoryIris?: string[]): Promise<MemorySaveResult> => {
|
|
58
58
|
if (!addDialog) return;
|
|
59
59
|
if (!canManageSharedMemories && addDialog.scope !== GQLMemoryScope.User) return;
|
|
60
60
|
try {
|
|
@@ -62,6 +62,8 @@ export function MemoriesPanel(props: MemoriesPanelProps) {
|
|
|
62
62
|
input: buildCreateMemoryInput(form, addDialog.scope, supersedesMemoryIris),
|
|
63
63
|
});
|
|
64
64
|
|
|
65
|
+
if (isPresent(result.createMemory.propertyErrors))
|
|
66
|
+
return { propertyErrors: result.createMemory.propertyErrors };
|
|
65
67
|
if (result.createMemory.error) throw new Error(result.createMemory.error);
|
|
66
68
|
|
|
67
69
|
toast.success("Memory added");
|
|
@@ -76,7 +78,7 @@ export function MemoriesPanel(props: MemoriesPanelProps) {
|
|
|
76
78
|
);
|
|
77
79
|
|
|
78
80
|
const handleUpdate = useCallback(
|
|
79
|
-
async (form: MemoryFormState, supersedesMemoryIris?: string[]) => {
|
|
81
|
+
async (form: MemoryFormState, supersedesMemoryIris?: string[]): Promise<MemorySaveResult> => {
|
|
80
82
|
if (!editingMemory) return;
|
|
81
83
|
if (!canManageSharedMemories && editingMemory.scope !== GQLMemoryScope.User) return;
|
|
82
84
|
try {
|
|
@@ -84,6 +86,8 @@ export function MemoriesPanel(props: MemoriesPanelProps) {
|
|
|
84
86
|
input: buildUpdateMemoryInput(editingMemory.iri, form, editingMemory.scope, supersedesMemoryIris),
|
|
85
87
|
});
|
|
86
88
|
|
|
89
|
+
if (isPresent(result.updateMemory.propertyErrors))
|
|
90
|
+
return { propertyErrors: result.updateMemory.propertyErrors };
|
|
87
91
|
if (result.updateMemory.error) throw new Error(result.updateMemory.error);
|
|
88
92
|
|
|
89
93
|
toast.success("Memory updated");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GQLMemory,
|
|
1
|
+
import type { GQLMemory, GQLMemorySchemaFieldsFragment } from "@manta-eu/client";
|
|
2
2
|
import { isPresent } from "@manta-eu/lib/present";
|
|
3
3
|
import type { Row, Table } from "@tanstack/react-table";
|
|
4
4
|
import type { ReactNode } from "react";
|
|
@@ -25,7 +25,7 @@ export type MemoriesTabPanelProps = {
|
|
|
25
25
|
emptyState?: ReactNode;
|
|
26
26
|
columnLabels?: Record<string, string>;
|
|
27
27
|
columnDefaultOrder?: string[];
|
|
28
|
-
schemas?:
|
|
28
|
+
schemas?: GQLMemorySchemaFieldsFragment[];
|
|
29
29
|
schemaFilter?: SchemaFilter;
|
|
30
30
|
onSchemaFilterChange?: (iri: SchemaFilter) => void;
|
|
31
31
|
onRowClick?: (memory: GQLMemory) => void;
|