@gooddata/sdk-ui-gen-ai 11.41.0-alpha.3 → 11.41.0-alpha.5
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/NOTICE +3 -3
- package/esm/anomalyDetection/anomalyDetectionMapping.d.ts +1 -0
- package/esm/anomalyDetection/anomalyDetectionMapping.d.ts.map +1 -0
- package/esm/clustering/clusteringMapping.d.ts +1 -0
- package/esm/clustering/clusteringMapping.d.ts.map +1 -0
- package/esm/components/ChatSkeleton.d.ts +1 -0
- package/esm/components/ChatSkeleton.d.ts.map +1 -0
- package/esm/components/ConfigContext.d.ts +1 -0
- package/esm/components/ConfigContext.d.ts.map +1 -0
- package/esm/components/ConversationDeleteDialog.d.ts +1 -0
- package/esm/components/ConversationDeleteDialog.d.ts.map +1 -0
- package/esm/components/ConversationRenameDialog.d.ts +1 -0
- package/esm/components/ConversationRenameDialog.d.ts.map +1 -0
- package/esm/components/CustomizationProvider.d.ts +1 -0
- package/esm/components/CustomizationProvider.d.ts.map +1 -0
- package/esm/components/ErrorBoundary.d.ts +1 -0
- package/esm/components/ErrorBoundary.d.ts.map +1 -0
- package/esm/components/GenAIChat.d.ts +1 -0
- package/esm/components/GenAIChat.d.ts.map +1 -0
- package/esm/components/GenAIChatAgentDropdown.d.ts +14 -0
- package/esm/components/GenAIChatAgentDropdown.d.ts.map +1 -0
- package/esm/components/GenAIChatAgentDropdown.js +75 -0
- package/esm/components/GenAIChatConversations.d.ts +1 -0
- package/esm/components/GenAIChatConversations.d.ts.map +1 -0
- package/esm/components/GenAIChatDialog.d.ts +4 -1
- package/esm/components/GenAIChatDialog.d.ts.map +1 -0
- package/esm/components/GenAIChatDialog.js +4 -4
- package/esm/components/GenAIChatHeader.d.ts +1 -0
- package/esm/components/GenAIChatHeader.d.ts.map +1 -0
- package/esm/components/GenAIChatOverlay.d.ts +3 -0
- package/esm/components/GenAIChatOverlay.d.ts.map +1 -0
- package/esm/components/GenAIChatOverlay.js +15 -4
- package/esm/components/GenAIChatWrapper.d.ts +1 -0
- package/esm/components/GenAIChatWrapper.d.ts.map +1 -0
- package/esm/components/GenAiConversations.d.ts +1 -0
- package/esm/components/GenAiConversations.d.ts.map +1 -0
- package/esm/components/GenAiStore.d.ts +1 -0
- package/esm/components/GenAiStore.d.ts.map +1 -0
- package/esm/components/GlobalError.d.ts +1 -0
- package/esm/components/GlobalError.d.ts.map +1 -0
- package/esm/components/HeaderIcon.d.ts +1 -0
- package/esm/components/HeaderIcon.d.ts.map +1 -0
- package/esm/components/Input.d.ts +1 -0
- package/esm/components/Input.d.ts.map +1 -0
- package/esm/components/Input.js +69 -23
- package/esm/components/KeyDriverAnalysis.d.ts +1 -0
- package/esm/components/KeyDriverAnalysis.d.ts.map +1 -0
- package/esm/components/Messages.d.ts +1 -0
- package/esm/components/Messages.d.ts.map +1 -0
- package/esm/components/Messages.js +9 -6
- package/esm/components/completion/InfoComponent.d.ts +1 -0
- package/esm/components/completion/InfoComponent.d.ts.map +1 -0
- package/esm/components/completion/plugins/rehype-references.d.ts +1 -0
- package/esm/components/completion/plugins/rehype-references.d.ts.map +1 -0
- package/esm/components/completion/plugins/remark-references.d.ts +1 -0
- package/esm/components/completion/plugins/remark-references.d.ts.map +1 -0
- package/esm/components/completion/plugins/types.d.ts +1 -0
- package/esm/components/completion/plugins/types.d.ts.map +1 -0
- package/esm/components/completion/references.d.ts +1 -0
- package/esm/components/completion/references.d.ts.map +1 -0
- package/esm/components/completion/useCompletion.d.ts +1 -0
- package/esm/components/completion/useCompletion.d.ts.map +1 -0
- package/esm/components/completion/utils.d.ts +1 -0
- package/esm/components/completion/utils.d.ts.map +1 -0
- package/esm/components/customized/Disclaimer.d.ts +1 -0
- package/esm/components/customized/Disclaimer.d.ts.map +1 -0
- package/esm/components/customized/LandingContainer.d.ts +1 -0
- package/esm/components/customized/LandingContainer.d.ts.map +1 -0
- package/esm/components/customized/LandingQuestion.d.ts +1 -0
- package/esm/components/customized/LandingQuestion.d.ts.map +1 -0
- package/esm/components/customized/LandingQuestion.js +32 -13
- package/esm/components/customized/LandingScreen.d.ts +1 -0
- package/esm/components/customized/LandingScreen.d.ts.map +1 -0
- package/esm/components/customized/LandingTitle.d.ts +1 -0
- package/esm/components/customized/LandingTitle.d.ts.map +1 -0
- package/esm/components/highlight/useHighlight.d.ts +1 -0
- package/esm/components/highlight/useHighlight.d.ts.map +1 -0
- package/esm/components/hooks/useEndpointCheck.d.ts +1 -0
- package/esm/components/hooks/useEndpointCheck.d.ts.map +1 -0
- package/esm/components/hooks/useFullscreenCheck.d.ts +1 -0
- package/esm/components/hooks/useFullscreenCheck.d.ts.map +1 -0
- package/esm/components/hooks/useHistoryCheck.d.ts +1 -0
- package/esm/components/hooks/useHistoryCheck.d.ts.map +1 -0
- package/esm/components/hooks/useSettingsClick.d.ts +1 -0
- package/esm/components/hooks/useSettingsClick.d.ts.map +1 -0
- package/esm/components/hooks/useThreadLoading.d.ts +1 -0
- package/esm/components/hooks/useThreadLoading.d.ts.map +1 -0
- package/esm/components/messages/AgentChangeItem.d.ts +7 -0
- package/esm/components/messages/AgentChangeItem.d.ts.map +1 -0
- package/esm/components/messages/AgentChangeItem.js +17 -0
- package/esm/components/messages/AssistantItem.d.ts +1 -0
- package/esm/components/messages/AssistantItem.d.ts.map +1 -0
- package/esm/components/messages/AssistantItemFeedback.d.ts +1 -0
- package/esm/components/messages/AssistantItemFeedback.d.ts.map +1 -0
- package/esm/components/messages/AssistantItemSuggestions.d.ts +3 -2
- package/esm/components/messages/AssistantItemSuggestions.d.ts.map +1 -0
- package/esm/components/messages/AssistantItemSuggestions.js +6 -2
- package/esm/components/messages/AssistantMessage.d.ts +1 -0
- package/esm/components/messages/AssistantMessage.d.ts.map +1 -0
- package/esm/components/messages/ConversationItemContents.d.ts +1 -0
- package/esm/components/messages/ConversationItemContents.d.ts.map +1 -0
- package/esm/components/messages/FeedbackPopup.d.ts +1 -0
- package/esm/components/messages/FeedbackPopup.d.ts.map +1 -0
- package/esm/components/messages/ItemsGroup.d.ts +1 -0
- package/esm/components/messages/ItemsGroup.d.ts.map +1 -0
- package/esm/components/messages/MessageContents.d.ts +1 -0
- package/esm/components/messages/MessageContents.d.ts.map +1 -0
- package/esm/components/messages/MessageScroller.d.ts +1 -0
- package/esm/components/messages/MessageScroller.d.ts.map +1 -0
- package/esm/components/messages/ReasoningDropdown.d.ts +1 -0
- package/esm/components/messages/ReasoningDropdown.d.ts.map +1 -0
- package/esm/components/messages/ReasoningMessage.d.ts +1 -0
- package/esm/components/messages/ReasoningMessage.d.ts.map +1 -0
- package/esm/components/messages/SystemItem.d.ts +7 -0
- package/esm/components/messages/SystemItem.d.ts.map +1 -0
- package/esm/components/messages/SystemItem.js +12 -0
- package/esm/components/messages/ToolItem.d.ts +1 -0
- package/esm/components/messages/ToolItem.d.ts.map +1 -0
- package/esm/components/messages/UserItem.d.ts +1 -0
- package/esm/components/messages/UserItem.d.ts.map +1 -0
- package/esm/components/messages/UserMessage.d.ts +1 -0
- package/esm/components/messages/UserMessage.d.ts.map +1 -0
- package/esm/components/messages/components/SemanticSearchTreeView.d.ts +1 -0
- package/esm/components/messages/components/SemanticSearchTreeView.d.ts.map +1 -0
- package/esm/components/messages/components/VisualizationErrorBoundary.d.ts +1 -0
- package/esm/components/messages/components/VisualizationErrorBoundary.d.ts.map +1 -0
- package/esm/components/messages/contents/ChangeAnalysisContentsComponent.d.ts +1 -0
- package/esm/components/messages/contents/ChangeAnalysisContentsComponent.d.ts.map +1 -0
- package/esm/components/messages/contents/CustomHyperlink.d.ts +1 -0
- package/esm/components/messages/contents/CustomHyperlink.d.ts.map +1 -0
- package/esm/components/messages/contents/ErrorContents.d.ts +1 -0
- package/esm/components/messages/contents/ErrorContents.d.ts.map +1 -0
- package/esm/components/messages/contents/Markdown.d.ts +1 -0
- package/esm/components/messages/contents/Markdown.d.ts.map +1 -0
- package/esm/components/messages/contents/ReasoningContents.d.ts +1 -0
- package/esm/components/messages/contents/ReasoningContents.d.ts.map +1 -0
- package/esm/components/messages/contents/ReasoningIcon.d.ts +3 -2
- package/esm/components/messages/contents/ReasoningIcon.d.ts.map +1 -0
- package/esm/components/messages/contents/RoutingContents.d.ts +1 -0
- package/esm/components/messages/contents/RoutingContents.d.ts.map +1 -0
- package/esm/components/messages/contents/SearchContents.d.ts +1 -0
- package/esm/components/messages/contents/SearchContents.d.ts.map +1 -0
- package/esm/components/messages/contents/SemanticSearchContents.d.ts +1 -0
- package/esm/components/messages/contents/SemanticSearchContents.d.ts.map +1 -0
- package/esm/components/messages/contents/TextContents.d.ts +1 -0
- package/esm/components/messages/contents/TextContents.d.ts.map +1 -0
- package/esm/components/messages/contents/VisualizationContents.d.ts +4 -1
- package/esm/components/messages/contents/VisualizationContents.d.ts.map +1 -0
- package/esm/components/messages/contents/VisualizationContents.js +7 -3
- package/esm/components/messages/contents/VisualizationSaveDialog.d.ts +1 -0
- package/esm/components/messages/contents/VisualizationSaveDialog.d.ts.map +1 -0
- package/esm/components/messages/contents/drill/DrillSelectDropdownMenu.d.ts +1 -0
- package/esm/components/messages/contents/drill/DrillSelectDropdownMenu.d.ts.map +1 -0
- package/esm/components/messages/contents/hooks/useVisualisationSaving.d.ts +1 -0
- package/esm/components/messages/contents/hooks/useVisualisationSaving.d.ts.map +1 -0
- package/esm/components/messages/contents/replaceLinks.d.ts +1 -0
- package/esm/components/messages/contents/replaceLinks.d.ts.map +1 -0
- package/esm/components/messages/contents/useExecution.d.ts +1 -0
- package/esm/components/messages/contents/useExecution.d.ts.map +1 -0
- package/esm/components/messages/contents/useKdaDefinition.d.ts +1 -0
- package/esm/components/messages/contents/useKdaDefinition.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationErrorContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationErrorContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationKdaContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationKdaContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationReasoningContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationReasoningContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationSearchContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationSearchContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationTextContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationTextContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationToolCallContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationToolCallContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationToolResultContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationToolResultContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationVisualisation.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationVisualisation.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationVisualizationContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationVisualizationContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationWhatIfContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationWhatIfContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/SaveVisualizationDialog.d.ts +1 -0
- package/esm/components/messages/conversationContents/SaveVisualizationDialog.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/useExecution.d.ts +1 -0
- package/esm/components/messages/conversationContents/useExecution.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/useKdaDefinition.d.ts +1 -0
- package/esm/components/messages/conversationContents/useKdaDefinition.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/useSaveCheck.d.ts +1 -0
- package/esm/components/messages/conversationContents/useSaveCheck.d.ts.map +1 -0
- package/esm/components/messages/itemState.d.ts +1 -0
- package/esm/components/messages/itemState.d.ts.map +1 -0
- package/esm/components/messages/messageState.d.ts +1 -0
- package/esm/components/messages/messageState.d.ts.map +1 -0
- package/esm/components/messages/useUserFeedback.d.ts +1 -0
- package/esm/components/messages/useUserFeedback.d.ts.map +1 -0
- package/esm/components/utils/agentSelection.d.ts +19 -0
- package/esm/components/utils/agentSelection.d.ts.map +1 -0
- package/esm/components/utils/agentSelection.js +42 -0
- package/esm/components/utils/conversationGrouper.d.ts +1 -0
- package/esm/components/utils/conversationGrouper.d.ts.map +1 -0
- package/esm/components/utils/groupUtility.d.ts +2 -1
- package/esm/components/utils/groupUtility.d.ts.map +1 -0
- package/esm/components/utils/groupUtility.js +3 -0
- package/esm/components/utils/intersectionUtils.d.ts +1 -0
- package/esm/components/utils/intersectionUtils.d.ts.map +1 -0
- package/esm/components/utils/markdownUtils.d.ts +1 -0
- package/esm/components/utils/markdownUtils.d.ts.map +1 -0
- package/esm/components/utils/modelCheckUtility.d.ts +1 -0
- package/esm/components/utils/modelCheckUtility.d.ts.map +1 -0
- package/esm/forecast/forecastMapping.d.ts +1 -0
- package/esm/forecast/forecastMapping.d.ts.map +1 -0
- package/esm/hooks/useGenAIStore.d.ts +1 -0
- package/esm/hooks/useGenAIStore.d.ts.map +1 -0
- package/esm/hooks/useGenAIStore.js +4 -1
- package/esm/hooks/useGenAiChatAvailability.d.ts +1 -0
- package/esm/hooks/useGenAiChatAvailability.d.ts.map +1 -0
- package/esm/index.d.ts +2 -1
- package/esm/index.d.ts.map +1 -0
- package/esm/internal.d.ts +1 -0
- package/esm/internal.d.ts.map +1 -0
- package/esm/localization/IntlWrapper.d.ts +1 -0
- package/esm/localization/IntlWrapper.d.ts.map +1 -0
- package/esm/localization/bundles/de-DE.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/en-AU.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/en-GB.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/en-US.localization-bundle.d.ts +25 -0
- package/esm/localization/bundles/en-US.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/en-US.localization-bundle.js +24 -0
- package/esm/localization/bundles/es-419.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/es-419.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/es-ES.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/fi-FI.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/fr-CA.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/fr-FR.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/id-ID.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/it-IT.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/ja-JP.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/ko-KR.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/nl-NL.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/pl-PL.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/pt-BR.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/pt-PT.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/ru-RU.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/sl-SI.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/th-TH.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/tr-TR.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/uk-UA.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/vi-VN.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/zh-HK.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/zh-Hans.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/zh-Hant.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -0
- package/esm/localization/translations.d.ts +1 -0
- package/esm/localization/translations.d.ts.map +1 -0
- package/esm/model.d.ts +28 -1
- package/esm/model.d.ts.map +1 -0
- package/esm/model.js +16 -0
- package/esm/permissions/PermissionsContext.d.ts +1 -0
- package/esm/permissions/PermissionsContext.d.ts.map +1 -0
- package/esm/permissions/usePermissions.d.ts +1 -0
- package/esm/permissions/usePermissions.d.ts.map +1 -0
- package/esm/permissions/useWorkspacePermissions.d.ts +1 -0
- package/esm/permissions/useWorkspacePermissions.d.ts.map +1 -0
- package/esm/permissions/utils.d.ts +1 -0
- package/esm/permissions/utils.d.ts.map +1 -0
- package/esm/sdk-ui-gen-ai.d.ts +10 -1
- package/esm/store/chatWindow/allowedRelationshipTypes.d.ts +1 -0
- package/esm/store/chatWindow/allowedRelationshipTypes.d.ts.map +1 -0
- package/esm/store/chatWindow/chatWindowSelectors.d.ts +4 -0
- package/esm/store/chatWindow/chatWindowSelectors.d.ts.map +1 -0
- package/esm/store/chatWindow/chatWindowSelectors.js +6 -0
- package/esm/store/chatWindow/chatWindowSlice.d.ts +12 -1
- package/esm/store/chatWindow/chatWindowSlice.d.ts.map +1 -0
- package/esm/store/chatWindow/chatWindowSlice.js +10 -2
- package/esm/store/events.d.ts +1 -0
- package/esm/store/events.d.ts.map +1 -0
- package/esm/store/localStorage.d.ts +1 -0
- package/esm/store/localStorage.d.ts.map +1 -0
- package/esm/store/messages/messagesSelectors.d.ts +67 -1
- package/esm/store/messages/messagesSelectors.d.ts.map +1 -0
- package/esm/store/messages/messagesSelectors.js +3 -0
- package/esm/store/messages/messagesSlice.d.ts +26 -3
- package/esm/store/messages/messagesSlice.d.ts.map +1 -0
- package/esm/store/messages/messagesSlice.js +73 -2
- package/esm/store/options.d.ts +1 -0
- package/esm/store/options.d.ts.map +1 -0
- package/esm/store/queues/queue.newMessage.d.ts +1 -0
- package/esm/store/queues/queue.newMessage.d.ts.map +1 -0
- package/esm/store/sideEffects/converters/interactionsToMessages.d.ts +1 -0
- package/esm/store/sideEffects/converters/interactionsToMessages.d.ts.map +1 -0
- package/esm/store/sideEffects/converters/toLocalContent.d.ts +1 -0
- package/esm/store/sideEffects/converters/toLocalContent.d.ts.map +1 -0
- package/esm/store/sideEffects/index.d.ts +1 -0
- package/esm/store/sideEffects/index.d.ts.map +1 -0
- package/esm/store/sideEffects/index.js +5 -1
- package/esm/store/sideEffects/loadAgents.d.ts +13 -0
- package/esm/store/sideEffects/loadAgents.d.ts.map +1 -0
- package/esm/store/sideEffects/loadAgents.js +46 -0
- package/esm/store/sideEffects/loadCatalogItems.d.ts +1 -0
- package/esm/store/sideEffects/loadCatalogItems.d.ts.map +1 -0
- package/esm/store/sideEffects/loadColorPalette.d.ts +1 -0
- package/esm/store/sideEffects/loadColorPalette.d.ts.map +1 -0
- package/esm/store/sideEffects/loadSettings.d.ts +1 -0
- package/esm/store/sideEffects/loadSettings.d.ts.map +1 -0
- package/esm/store/sideEffects/onAgentSwitch.d.ts +22 -0
- package/esm/store/sideEffects/onAgentSwitch.d.ts.map +1 -0
- package/esm/store/sideEffects/onAgentSwitch.js +55 -0
- package/esm/store/sideEffects/onConversationDelete.d.ts +1 -0
- package/esm/store/sideEffects/onConversationDelete.d.ts.map +1 -0
- package/esm/store/sideEffects/onConversationPin.d.ts +1 -0
- package/esm/store/sideEffects/onConversationPin.d.ts.map +1 -0
- package/esm/store/sideEffects/onConversationRename.d.ts +1 -0
- package/esm/store/sideEffects/onConversationRename.d.ts.map +1 -0
- package/esm/store/sideEffects/onEvent.d.ts +1 -0
- package/esm/store/sideEffects/onEvent.d.ts.map +1 -0
- package/esm/store/sideEffects/onThreadClear.d.ts +1 -0
- package/esm/store/sideEffects/onThreadClear.d.ts.map +1 -0
- package/esm/store/sideEffects/onThreadLoad.d.ts +1 -0
- package/esm/store/sideEffects/onThreadLoad.d.ts.map +1 -0
- package/esm/store/sideEffects/onThreadLoad.js +2 -1
- package/esm/store/sideEffects/onUserFeedback.d.ts +1 -0
- package/esm/store/sideEffects/onUserFeedback.d.ts.map +1 -0
- package/esm/store/sideEffects/onUserMessage.d.ts +1 -0
- package/esm/store/sideEffects/onUserMessage.d.ts.map +1 -0
- package/esm/store/sideEffects/onUserMessage.js +20 -5
- package/esm/store/sideEffects/onUserMessageUpdate.d.ts +1 -0
- package/esm/store/sideEffects/onUserMessageUpdate.d.ts.map +1 -0
- package/esm/store/sideEffects/onVerboseStore.d.ts +1 -0
- package/esm/store/sideEffects/onVerboseStore.d.ts.map +1 -0
- package/esm/store/sideEffects/onVisualisationRender.d.ts +1 -0
- package/esm/store/sideEffects/onVisualisationRender.d.ts.map +1 -0
- package/esm/store/sideEffects/onVisualizationSave.d.ts +1 -0
- package/esm/store/sideEffects/onVisualizationSave.d.ts.map +1 -0
- package/esm/store/sideEffects/onVisualizationSuccessSave.d.ts +1 -0
- package/esm/store/sideEffects/onVisualizationSuccessSave.d.ts.map +1 -0
- package/esm/store/sideEffects/utils.d.ts +1 -0
- package/esm/store/sideEffects/utils.d.ts.map +1 -0
- package/esm/store/store.d.ts +1 -0
- package/esm/store/store.d.ts.map +1 -0
- package/esm/store/store.js +4 -1
- package/esm/store/types.d.ts +1 -0
- package/esm/store/types.d.ts.map +1 -0
- package/esm/store/utils.d.ts +1 -0
- package/esm/store/utils.d.ts.map +1 -0
- package/esm/types.d.ts +3 -1
- package/esm/types.d.ts.map +1 -0
- package/esm/utils.d.ts +1 -0
- package/esm/utils.d.ts.map +1 -0
- package/esm/whatIf/whatIfMapping.d.ts +1 -0
- package/esm/whatIf/whatIfMapping.d.ts.map +1 -0
- package/package.json +20 -20
- package/styles/css/input.css +103 -13
- package/styles/css/input.css.map +1 -1
- package/styles/css/main.css +158 -15
- package/styles/css/main.css.map +1 -1
- package/styles/css/messages.css +47 -0
- package/styles/css/messages.css.map +1 -1
- package/styles/css/window.css +6 -1
- package/styles/css/window.css.map +1 -1
- package/styles/scss/input.scss +113 -17
- package/styles/scss/main.scss +2 -1
- package/styles/scss/messages.scss +61 -0
- package/styles/scss/window.scss +8 -1
package/NOTICE
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
The following 3rd-party software packages may be used by or distributed with gooddata-ui-sdk. Any information relevant to third-party vendors listed below are collected using common, reasonable means.
|
|
9
9
|
|
|
10
|
-
Date generated: 2026-6-
|
|
10
|
+
Date generated: 2026-6-10
|
|
11
11
|
|
|
12
|
-
Revision ID:
|
|
12
|
+
Revision ID: f75738464fd32f3d4e0f874c715181b53a187ef8
|
|
13
13
|
|
|
14
14
|
================================================================================
|
|
15
15
|
================================================================================
|
|
@@ -38571,4 +38571,4 @@ POSSIBILITY OF SUCH DAMAGE.
|
|
|
38571
38571
|
--------------------------------------------------------------------------------
|
|
38572
38572
|
--------------------------------------------------------------------------------
|
|
38573
38573
|
|
|
38574
|
-
Report Generated by FOSSA on 2026-6-
|
|
38574
|
+
Report Generated by FOSSA on 2026-6-10
|
|
@@ -22,3 +22,4 @@ export declare function mapVisualizationAnomalyDetectionToBackendConfig(config?:
|
|
|
22
22
|
* @internal
|
|
23
23
|
*/
|
|
24
24
|
export declare function getNormalizedAnomalyDetectionValues(config?: Config): INormalizedAnomalyDetectionValues | undefined;
|
|
25
|
+
//# sourceMappingURL=anomalyDetectionMapping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anomalyDetectionMapping.d.ts","sourceRoot":"","sources":["../../src/anomalyDetection/anomalyDetectionMapping.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAC9C,WAAW,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,6CAA6C,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAarG;AAED;;GAEG;AACH,wBAAgB,+CAA+C,CAC3D,MAAM,CAAC,EAAE,MAAM,GAChB,eAAe,GAAG,SAAS,CAU7B;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CAC/C,MAAM,CAAC,EAAE,MAAM,GAChB,iCAAiC,GAAG,SAAS,CAoB/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clusteringMapping.d.ts","sourceRoot":"","sources":["../../src/clustering/clusteringMapping.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;GAEG;AACH,wBAAgB,uCAAuC,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAY3G;AAED;;GAEG;AACH,wBAAgB,yCAAyC,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAWxG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatSkeleton.d.ts","sourceRoot":"","sources":["../../src/components/ChatSkeleton.tsx"],"names":[],"mappings":"AAIA,wBAAgB,YAAY,4CAS3B"}
|
|
@@ -22,3 +22,4 @@ export type LinkHandlerEvent = {
|
|
|
22
22
|
};
|
|
23
23
|
export declare function ConfigProvider({ children, allowNativeLinks, linkHandler, catalogItems, canManage, canAnalyze, canFullControl }: PropsWithChildren<ConfigContext>): import("react/jsx-runtime").JSX.Element;
|
|
24
24
|
export declare const useConfig: () => ConfigContext;
|
|
25
|
+
//# sourceMappingURL=ConfigContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigContext.d.ts","sourceRoot":"","sources":["../../src/components/ConfigContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAsC,MAAM,OAAO,CAAC;AAEnF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE7E,MAAM,MAAM,aAAa,GAAG;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,SAAS,GAAG,eAAe,CAAC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;CAClB,CAAC;AASF,wBAAgB,cAAc,CAAC,EAC3B,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,cAAc,EACjB,EAAE,iBAAiB,CAAC,aAAa,CAAC,2CAclC;AAED,eAAO,MAAM,SAAS,qBAErB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConversationDeleteDialog.d.ts","sourceRoot":"","sources":["../../src/components/ConversationDeleteDialog.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAa1D,KAAK,6BAA6B,GAAG;IACjC,YAAY,EAAE,sBAAsB,CAAC;IACrC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,6BAA6B,2CAgC1G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConversationRenameDialog.d.ts","sourceRoot":"","sources":["../../src/components/ConversationRenameDialog.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAa1D,KAAK,6BAA6B,GAAG;IACjC,YAAY,EAAE,sBAAsB,CAAC;IACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,6BAA6B,2CAuC1G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomizationProvider.d.ts","sourceRoot":"","sources":["../../src/components/CustomizationProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAsC,MAAM,OAAO,CAAC;AAMvG,MAAM,MAAM,oBAAoB,GAAG;IAC/B,8BAA8B,CAAC,EAAE,CAAC,KAAK,EAAE;QACrC,YAAY,EAAE,OAAO,CAAC;QACtB,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;KAC1B,KAAK,aAAa,CAAC;IACpB,2BAA2B,CAAC,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;CAC5D,CAAC;AAYF,wBAAgB,qBAAqB,CAAC,EAClC,QAAQ,EACR,8BAA8B,EAC9B,2BAA2B,EAC9B,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,2CAiCzC;AAED,eAAO,MAAM,gBAAgB;;;CAqB5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../src/components/ErrorBoundary.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAkB,MAAM,OAAO,CAAC;AA+FnG,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAGhB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenAIChat.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChat.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAQ3C,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3E,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEnE;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG;IAClE;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAEzD;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,8BAA8B,CAAC,EAAE,MAAM,aAAa,CAAC;IAErD;;OAEG;IACH,2BAA2B,CAAC,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;IAEzD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CA6CxD;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,uBAAiB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type GenAIAgent, type IChatConversationLocal } from "../model.js";
|
|
2
|
+
export type GenAIChatAgentDropdownProps = {
|
|
3
|
+
agents: GenAIAgent[];
|
|
4
|
+
conversations?: IChatConversationLocal[];
|
|
5
|
+
conversationAgentId?: string;
|
|
6
|
+
selectedAgentId?: string;
|
|
7
|
+
isDisabled?: boolean;
|
|
8
|
+
isLoading?: boolean;
|
|
9
|
+
onSelectAgent: (agentId: string | undefined, options?: {
|
|
10
|
+
showChangeEvent?: boolean;
|
|
11
|
+
}) => void;
|
|
12
|
+
};
|
|
13
|
+
export declare function GenAIChatAgentDropdown({ agents, conversations, conversationAgentId, selectedAgentId, isDisabled, isLoading, onSelectAgent }: GenAIChatAgentDropdownProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=GenAIChatAgentDropdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenAIChatAgentDropdown.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChatAgentDropdown.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAiB3E,MAAM,MAAM,2BAA2B,GAAG;IACtC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACzC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CACjG,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,EACnC,MAAM,EACN,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,SAAS,EACT,aAAa,EAChB,EAAE,2BAA2B,2CAgH7B"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2026 GoodData Corporation
|
|
3
|
+
import { useEffect, useMemo } from "react";
|
|
4
|
+
import cx from "classnames";
|
|
5
|
+
import { defineMessages, useIntl } from "react-intl";
|
|
6
|
+
import { Dropdown, UiButton, UiIcon, UiMenu, UiSubmenuHeader } from "@gooddata/sdk-ui-kit";
|
|
7
|
+
import { getEffectiveSelectedAgentId, selectDefaultAgentId } from "./utils/agentSelection.js";
|
|
8
|
+
const msgs = defineMessages({
|
|
9
|
+
agent: {
|
|
10
|
+
id: "gd.gen-ai.agents",
|
|
11
|
+
},
|
|
12
|
+
loading: {
|
|
13
|
+
id: "gd.gen-ai.agents.loading",
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
export function GenAIChatAgentDropdown({ agents, conversations, conversationAgentId, selectedAgentId, isDisabled, isLoading, onSelectAgent, }) {
|
|
17
|
+
const intl = useIntl();
|
|
18
|
+
const effectiveSelectedAgentId = getEffectiveSelectedAgentId({
|
|
19
|
+
agents,
|
|
20
|
+
conversationAgentId,
|
|
21
|
+
selectedAgentId,
|
|
22
|
+
});
|
|
23
|
+
const selectedAgent = agents.find((agent) => agent.id === effectiveSelectedAgentId);
|
|
24
|
+
const agentLabel = intl.formatMessage(msgs.agent);
|
|
25
|
+
const loadingLabel = `${intl.formatMessage(msgs.loading)}…`;
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
const isConversationAgentAvailable = !!conversationAgentId && agents.some((agent) => agent.id === conversationAgentId);
|
|
28
|
+
const isSelectedAgentAvailable = !!selectedAgentId && agents.some((agent) => agent.id === selectedAgentId);
|
|
29
|
+
if (conversationAgentId) {
|
|
30
|
+
if (isConversationAgentAvailable) {
|
|
31
|
+
if (conversationAgentId !== selectedAgentId) {
|
|
32
|
+
onSelectAgent(conversationAgentId);
|
|
33
|
+
}
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (agents.length) {
|
|
37
|
+
onSelectAgent(isSelectedAgentAvailable ? selectedAgentId : selectDefaultAgentId(agents, conversations), { showChangeEvent: true });
|
|
38
|
+
}
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (!isSelectedAgentAvailable && agents.length) {
|
|
42
|
+
// Resolve a default as soon as agents are loaded. selectDefaultAgentId always yields an
|
|
43
|
+
// agent from agent metadata alone (lastUsedAt, then modifiedAt), so input usability never
|
|
44
|
+
// depends on the conversations list loading. The conversations are still consulted as a
|
|
45
|
+
// best-effort "last used conversation agent" heuristic when they are already available.
|
|
46
|
+
onSelectAgent(selectDefaultAgentId(agents, conversations));
|
|
47
|
+
}
|
|
48
|
+
}, [agents, conversationAgentId, conversations, onSelectAgent, selectedAgentId]);
|
|
49
|
+
const items = useMemo(() => agents.map((agent) => {
|
|
50
|
+
const isSelected = agent.id === effectiveSelectedAgentId;
|
|
51
|
+
return {
|
|
52
|
+
type: "interactive",
|
|
53
|
+
id: agent.id,
|
|
54
|
+
stringTitle: agent.title,
|
|
55
|
+
isSelected,
|
|
56
|
+
isDisabled: false,
|
|
57
|
+
data: agent,
|
|
58
|
+
tooltip: agent.description || undefined,
|
|
59
|
+
iconRight: agent.description ? (_jsx(UiIcon, { type: "question", size: 12, color: isSelected ? "complementary-7" : "complementary-5", accessibilityConfig: { ariaHidden: true } })) : undefined,
|
|
60
|
+
};
|
|
61
|
+
}), [agents, effectiveSelectedAgentId]);
|
|
62
|
+
return (_jsx(Dropdown, { className: cx("gd-gen-ai-chat__input__agent-dropdown", {
|
|
63
|
+
"gd-gen-ai-chat__input__agent-dropdown--loading": isLoading,
|
|
64
|
+
}), alignPoints: [{ align: "tr br", offset: { x: 0, y: 0 } }], closeOnEscape: true, fullscreenOnMobile: false, accessibilityConfig: { popupRole: "listbox" }, renderButton: ({ isOpen, toggleDropdown, accessibilityConfig }) => (_jsx(UiButton, { label: isLoading ? loadingLabel : (selectedAgent?.title ?? agentLabel), variant: "dropdownInline", size: "small", iconAfter: isLoading ? undefined : isOpen ? "navigateUp" : "navigateDown", isDisabled: isLoading || isDisabled || !agents.length, onClick: toggleDropdown, dataTestId: "agent_dropdown_button", accessibilityConfig: {
|
|
65
|
+
...accessibilityConfig,
|
|
66
|
+
ariaLabel: agentLabel,
|
|
67
|
+
} })), renderBody: ({ closeDropdown, ariaAttributes }) => (_jsx(UiMenu, { dataTestId: "agent_dropdown_menu", items: items, size: "small", minWidth: 160, maxWidth: 220, containerTopPadding: "small", containerBottomPadding: "small", MenuHeader: AgentMenuHeader, ariaAttributes: ariaAttributes, onSelect: (item) => {
|
|
68
|
+
onSelectAgent(item.data.id, { showChangeEvent: true });
|
|
69
|
+
closeDropdown();
|
|
70
|
+
} })) }));
|
|
71
|
+
}
|
|
72
|
+
function AgentMenuHeader() {
|
|
73
|
+
const intl = useIntl();
|
|
74
|
+
return _jsx(UiSubmenuHeader, { title: intl.formatMessage(msgs.agent), height: "medium" });
|
|
75
|
+
}
|
|
@@ -19,3 +19,4 @@ type GenAIChatConversationsExternalProps = {
|
|
|
19
19
|
export type GenAIChatConversationsProps = GenAIChatConversationsStateProps & GenAIChatConversationsDispatchProps & GenAIChatConversationsExternalProps;
|
|
20
20
|
export declare const GenAIChatConversations: FC<GenAIChatConversationsExternalProps>;
|
|
21
21
|
export {};
|
|
22
|
+
//# sourceMappingURL=GenAIChatConversations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenAIChatConversations.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChatConversations.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,EAAE,EAGP,KAAK,YAAY,EASpB,MAAM,OAAO,CAAC;AAkBf,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EACH,oBAAoB,EAEpB,qBAAqB,EACxB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACH,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EAC3B,MAAM,oCAAoC,CAAC;AAY5C,KAAK,gCAAgC,GAAG;IACpC,YAAY,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACtD,aAAa,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;CAC3D,CAAC;AAEF,KAAK,mCAAmC,GAAG;IACvC,kBAAkB,EAAE,OAAO,wBAAwB,CAAC;IACpD,eAAe,EAAE,OAAO,qBAAqB,CAAC;IAC9C,kBAAkB,EAAE,OAAO,wBAAwB,CAAC;CACvD,CAAC;AAEF,KAAK,mCAAmC,GAAG;IACvC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,YAAY,EAAE,sBAAsB,KAAK,IAAI,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,gCAAgC,GACtE,mCAAmC,GACnC,mCAAmC,CAAC;AA6qBxC,eAAO,MAAM,sBAAsB,EAAE,EAAE,CAAC,mCAAmC,CAGzC,CAAC"}
|
|
@@ -3,6 +3,8 @@ import { type LinkHandlerEvent } from "./ConfigContext.js";
|
|
|
3
3
|
import { type GenAiStoreProps } from "./GenAiStore.js";
|
|
4
4
|
export type GenAIChatDialogProps = Omit<GenAiStoreProps, "children"> & {
|
|
5
5
|
isOpen: boolean;
|
|
6
|
+
className?: string;
|
|
7
|
+
dialogPosition?: "left" | "right";
|
|
6
8
|
locale?: string;
|
|
7
9
|
canManage?: boolean;
|
|
8
10
|
canAnalyze?: boolean;
|
|
@@ -13,4 +15,5 @@ export type GenAIChatDialogProps = Omit<GenAiStoreProps, "children"> & {
|
|
|
13
15
|
onLinkClick?: (linkClickEvent: LinkHandlerEvent) => void;
|
|
14
16
|
LandingScreenComponentProvider?: () => ComponentType;
|
|
15
17
|
};
|
|
16
|
-
export declare function GenAIChatDialog({ backend, workspace, locale, isOpen, onOpen, onClose, settings, returnFocusTo, objectTypes, includeTags, excludeTags, canManage, canAnalyze, canFullControl, eventHandlers, catalogItems, colorPalette, onLinkClick, onDispatcher, LandingScreenComponentProvider }: GenAIChatDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare function GenAIChatDialog({ backend, workspace, locale, isOpen, onOpen, onClose, settings, className, dialogPosition, returnFocusTo, objectTypes, includeTags, excludeTags, canManage, canAnalyze, canFullControl, eventHandlers, catalogItems, colorPalette, onLinkClick, onDispatcher, LandingScreenComponentProvider }: GenAIChatDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=GenAIChatDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenAIChatDialog.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChatDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAA2C,MAAM,OAAO,CAAC;AAcpG,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3E,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG;IACnE,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IACvD,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,8BAA8B,CAAC,EAAE,MAAM,aAAa,CAAC;CACxD,CAAC;AAOF,wBAAgB,eAAe,CAAC,EAC5B,OAAO,EACP,SAAS,EACT,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,EACT,cAAc,EACd,aAAa,EACb,WAAW,EACX,WAAW,EACX,WAAW,EACX,SAAiB,EACjB,UAAkB,EAClB,cAAsB,EACtB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,8BAA8B,EACjC,EAAE,oBAAoB,2CAwCtB"}
|
|
@@ -15,12 +15,12 @@ import { GenAiStore } from "./GenAiStore.js";
|
|
|
15
15
|
// - High enough to be over other dialogs
|
|
16
16
|
// - Below chart tooltips
|
|
17
17
|
const DEFAULT_CHAT_Z_INDEX = 3000;
|
|
18
|
-
export function GenAIChatDialog({ backend, workspace, locale, isOpen, onOpen, onClose, settings, returnFocusTo, objectTypes, includeTags, excludeTags, canManage = false, canAnalyze = false, canFullControl = false, eventHandlers, catalogItems, colorPalette, onLinkClick, onDispatcher, LandingScreenComponentProvider, }) {
|
|
18
|
+
export function GenAIChatDialog({ backend, workspace, locale, isOpen, onOpen, onClose, settings, className, dialogPosition, returnFocusTo, objectTypes, includeTags, excludeTags, canManage = false, canAnalyze = false, canFullControl = false, eventHandlers, catalogItems, colorPalette, onLinkClick, onDispatcher, LandingScreenComponentProvider, }) {
|
|
19
19
|
const effectiveBackend = useBackendStrict(backend);
|
|
20
20
|
const effectiveWorkspace = useWorkspaceStrict(workspace);
|
|
21
|
-
return (_jsx(IntlWrapper, { locale: locale, children: _jsx(GenAiStore, { backend: effectiveBackend, workspace: effectiveWorkspace, onDispatcher: onDispatcher, eventHandlers: eventHandlers, colorPalette: colorPalette, settings: settings, objectTypes: objectTypes, includeTags: includeTags, excludeTags: excludeTags, catalogItems: catalogItems, children: (genAIStore) => (_jsx(GenAIChatDialogContent, { genAIStore: genAIStore, backend: effectiveBackend, workspace: effectiveWorkspace, isOpen: isOpen, onOpen: onOpen, onClose: onClose, returnFocusTo: returnFocusTo, onLinkClick: onLinkClick, catalogItems: catalogItems, canManage: canManage, canAnalyze: canAnalyze, canFullControl: canFullControl, LandingScreenComponentProvider: LandingScreenComponentProvider })) }) }));
|
|
21
|
+
return (_jsx(IntlWrapper, { locale: locale, children: _jsx(GenAiStore, { backend: effectiveBackend, workspace: effectiveWorkspace, onDispatcher: onDispatcher, eventHandlers: eventHandlers, colorPalette: colorPalette, settings: settings, objectTypes: objectTypes, includeTags: includeTags, excludeTags: excludeTags, catalogItems: catalogItems, children: (genAIStore) => (_jsx(GenAIChatDialogContent, { genAIStore: genAIStore, backend: effectiveBackend, workspace: effectiveWorkspace, className: className, dialogPosition: dialogPosition, isOpen: isOpen, onOpen: onOpen, onClose: onClose, returnFocusTo: returnFocusTo, onLinkClick: onLinkClick, catalogItems: catalogItems, canManage: canManage, canAnalyze: canAnalyze, canFullControl: canFullControl, LandingScreenComponentProvider: LandingScreenComponentProvider })) }) }));
|
|
22
22
|
}
|
|
23
|
-
function GenAIChatDialogContent({ genAIStore, backend, workspace, isOpen, onOpen, onClose, returnFocusTo, onLinkClick, catalogItems, canManage, canAnalyze, canFullControl, LandingScreenComponentProvider, }) {
|
|
23
|
+
function GenAIChatDialogContent({ genAIStore, backend, workspace, className, dialogPosition, isOpen, onOpen, onClose, returnFocusTo, onLinkClick, catalogItems, canManage, canAnalyze, canFullControl, LandingScreenComponentProvider, }) {
|
|
24
24
|
const open = useRef(onOpen);
|
|
25
25
|
open.current = onOpen;
|
|
26
26
|
const close = useRef(onClose);
|
|
@@ -58,5 +58,5 @@ function GenAIChatDialogContent({ genAIStore, backend, workspace, isOpen, onOpen
|
|
|
58
58
|
const chatOverlayController = useMemo(() => parentOverlayController ?? OverlayController.getInstance(DEFAULT_CHAT_Z_INDEX), [parentOverlayController]);
|
|
59
59
|
if (!isOpen)
|
|
60
60
|
return null;
|
|
61
|
-
return (_jsx(BackendProvider, { backend: backend, children: _jsx(WorkspaceProvider, { workspace: workspace, children: _jsx(OverlayControllerProvider, { overlayController: chatOverlayController, children: _jsx(ConfigProvider, { allowNativeLinks: true, linkHandler: onLinkClick, catalogItems: catalogItems, canManage: canManage, canAnalyze: canAnalyze, canFullControl: canFullControl, children: _jsx(CustomizationProvider, { landingScreenComponentProvider: LandingScreenComponentProvider, children: _jsx(GenAIChatOverlay, { returnFocusTo: returnFocusTo, onClose: onCloseHandler }) }) }) }) }) }));
|
|
61
|
+
return (_jsx(BackendProvider, { backend: backend, children: _jsx(WorkspaceProvider, { workspace: workspace, children: _jsx(OverlayControllerProvider, { overlayController: chatOverlayController, children: _jsx(ConfigProvider, { allowNativeLinks: true, linkHandler: onLinkClick, catalogItems: catalogItems, canManage: canManage, canAnalyze: canAnalyze, canFullControl: canFullControl, children: _jsx(CustomizationProvider, { landingScreenComponentProvider: LandingScreenComponentProvider, children: _jsx(GenAIChatOverlay, { className: className, dialogPosition: dialogPosition, returnFocusTo: returnFocusTo, onClose: onCloseHandler }) }) }) }) }) }));
|
|
62
62
|
}
|
|
@@ -18,3 +18,4 @@ type GenAIChatHeaderDispatchProps = {
|
|
|
18
18
|
export type GenAIChatHeaderProps = GenAIChatHeaderOwnProps & GenAIChatHeaderStateProps & GenAIChatHeaderDispatchProps;
|
|
19
19
|
export declare const GenAIChatHeader: FC<GenAIChatHeaderOwnProps>;
|
|
20
20
|
export {};
|
|
21
|
+
//# sourceMappingURL=GenAIChatHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenAIChatHeader.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChatHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAKhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE/F,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAMnG,KAAK,uBAAuB,GAAG;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;CACjD,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAChC,WAAW,EAAE,OAAO,iBAAiB,CAAC;IACtC,aAAa,EAAE,OAAO,mBAAmB,CAAC;IAC1C,UAAU,EAAE,OAAO,gBAAgB,CAAC;IACpC,oBAAoB,EAAE,OAAO,0BAA0B,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,GACtD,yBAAyB,GACzB,4BAA4B,CAAC;AA+EjC,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAG7B,CAAC"}
|
|
@@ -7,7 +7,10 @@ export type GenAIChatOverlayDispatchProps = {
|
|
|
7
7
|
};
|
|
8
8
|
export type GenAIChatOverlayExternalProps = {
|
|
9
9
|
returnFocusTo?: RefObject<HTMLElement | null> | string;
|
|
10
|
+
className?: string;
|
|
11
|
+
dialogPosition?: "left" | "right";
|
|
10
12
|
onClose: () => void;
|
|
11
13
|
};
|
|
12
14
|
export type GenAIChatOverlayProps = GenAIChatOverlayExternalProps & GenAIChatOverlayDispatchProps;
|
|
13
15
|
export declare const GenAIChatOverlay: FC<GenAIChatOverlayExternalProps>;
|
|
16
|
+
//# sourceMappingURL=GenAIChatOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenAIChatOverlay.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChatOverlay.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,SAAS,EAAwB,MAAM,OAAO,CAAC;AAStE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAOlF,MAAM,MAAM,6BAA6B,GAAG;IACxC,UAAU,EAAE,OAAO,gBAAgB,CAAC;IACpC,gBAAgB,EAAE,OAAO,4BAA4B,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IACxC,aAAa,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,6BAA6B,GAAG,6BAA6B,CAAC;AAsElG,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,6BAA6B,CAGnC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2024-2026 GoodData Corporation
|
|
3
|
-
import { useCallback } from "react";
|
|
3
|
+
import { useCallback, useMemo } from "react";
|
|
4
4
|
import cx from "classnames";
|
|
5
5
|
import { useIntl } from "react-intl";
|
|
6
6
|
import { connect } from "react-redux";
|
|
@@ -11,11 +11,13 @@ import { GenAIChatConversations } from "./GenAIChatConversations.js";
|
|
|
11
11
|
import { GenAIChatHeader } from "./GenAIChatHeader.js";
|
|
12
12
|
import { GenAIChatWrapper } from "./GenAIChatWrapper.js";
|
|
13
13
|
import { useFullscreenCheck } from "./hooks/useFullscreenCheck.js";
|
|
14
|
-
function GenAIChatOverlayComponent({ onClose, returnFocusTo, setHistory, loadConversation, }) {
|
|
14
|
+
function GenAIChatOverlayComponent({ onClose, returnFocusTo, setHistory, loadConversation, dialogPosition, className, }) {
|
|
15
15
|
const intl = useIntl();
|
|
16
16
|
const { isFullscreen } = useFullscreenCheck();
|
|
17
|
-
const classNames = cx("gd-gen-ai-chat__window", {
|
|
17
|
+
const classNames = cx("gd-gen-ai-chat__window", className, {
|
|
18
18
|
"gd-gen-ai-chat__window--fullscreen": isFullscreen,
|
|
19
|
+
"gd-gen-ai-chat__window--left": !isFullscreen && dialogPosition === "left",
|
|
20
|
+
"gd-gen-ai-chat__window--right": !isFullscreen && dialogPosition !== "left",
|
|
19
21
|
});
|
|
20
22
|
const onHistoryClose = useCallback(() => {
|
|
21
23
|
setHistory({ isHistory: false });
|
|
@@ -24,7 +26,16 @@ function GenAIChatOverlayComponent({ onClose, returnFocusTo, setHistory, loadCon
|
|
|
24
26
|
loadConversation({ conversation });
|
|
25
27
|
setHistory({ isHistory: false });
|
|
26
28
|
}, [loadConversation, setHistory]);
|
|
27
|
-
|
|
29
|
+
const position = useMemo(() => {
|
|
30
|
+
if (isFullscreen) {
|
|
31
|
+
return "cc cc";
|
|
32
|
+
}
|
|
33
|
+
if (dialogPosition === "left") {
|
|
34
|
+
return "bl bl";
|
|
35
|
+
}
|
|
36
|
+
return "br br";
|
|
37
|
+
}, [dialogPosition, isFullscreen]);
|
|
38
|
+
return (_jsxs(Dialog, { isModal: isFullscreen, returnFocusTo: returnFocusTo, returnFocusAfterClose: !!returnFocusTo, alignPoints: [{ align: position }], submitOnEnterKey: false, closeOnEscape: true, closeOnParentScroll: false, closeOnMouseDrag: false, onClose: onClose, className: classNames, accessibilityConfig: {
|
|
28
39
|
title: intl.formatMessage({ id: "gd.gen-ai.dialog.label" }),
|
|
29
40
|
isModal: isFullscreen,
|
|
30
41
|
}, children: [
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenAIChatWrapper.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChatWrapper.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAa,MAAM,OAAO,CAAC;AAM3C,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAKxE,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAE3F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAc5G,MAAM,MAAM,iBAAiB,GAAG;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,GAAG;IACpD,UAAU,EAAE,OAAO,gBAAgB,CAAC;IACpC,aAAa,EAAE,OAAO,iBAAiB,CAAC;IACxC,WAAW,EAAE,OAAO,iBAAiB,CAAC;IACtC,2BAA2B,EAAE,OAAO,iCAAiC,CAAC;IACtE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACrC,CAAC;AA+IF,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,iBAAiB,CAGvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenAiConversations.d.ts","sourceRoot":"","sources":["../../src/components/GenAiConversations.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAc1D,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGnE;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG;IACtE;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACtE;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CA6ChE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenAiStore.d.ts","sourceRoot":"","sources":["../../src/components/GenAiStore.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAmC,MAAM,OAAO,CAAC;AAExE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKjG,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC;;OAEG;IACH,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACnC;;OAEG;IACH,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;OAEG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC7D;;OAEG;IACH,QAAQ,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC;IAEjE;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,kDA2ChD"}
|
|
@@ -10,3 +10,4 @@ type GlobalErrorProps = {
|
|
|
10
10
|
};
|
|
11
11
|
export declare function GlobalError({ errorMessage, errorDescription, errorDetails, errorTraceId, buttonsBefore, clearing, clearError }: GlobalErrorProps): import("react/jsx-runtime").JSX.Element;
|
|
12
12
|
export {};
|
|
13
|
+
//# sourceMappingURL=GlobalError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalError.d.ts","sourceRoot":"","sources":["../../src/components/GlobalError.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAOjD,KAAK,gBAAgB,GAAG;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;CAC7B,CAAC;AAEF,wBAAgB,WAAW,CAAC,EACxB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,UAAU,EACb,EAAE,gBAAgB,2CA0ElB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeaderIcon.d.ts","sourceRoot":"","sources":["../../src/components/HeaderIcon.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,qBAAqB,EAA2B,MAAM,sBAAsB,CAAC;AAE1G,KAAK,eAAe,GAAG;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,qBAAqB,CAAC;CAC1C,CAAC;AAEF,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,eAAe,2CAwB/F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../src/components/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,EAAE,EACP,KAAK,SAAS,EASjB,MAAM,OAAO,CAAC;AAwCf,MAAM,MAAM,aAAa,GAAG;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;CACzC,CAAC;AAwXF,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,aAAa,CAAgE,CAAC"}
|
package/esm/components/Input.js
CHANGED
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2024-2026 GoodData Corporation
|
|
3
|
-
import { useEffect, useMemo, useReducer, useRef, useState, } from "react";
|
|
3
|
+
import { useCallback, useEffect, useMemo, useReducer, useRef, useState, } from "react";
|
|
4
4
|
import cx from "classnames";
|
|
5
5
|
import { FormattedMessage, defineMessages, useIntl } from "react-intl";
|
|
6
6
|
import { connect } from "react-redux";
|
|
7
7
|
import { SyntaxHighlightingInput, UiIconButton, UiTooltip } from "@gooddata/sdk-ui-kit";
|
|
8
8
|
import { makeTextContents, makeUserItem, makeUserMessage, } from "../model.js";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { agentSwitchingActiveSelector, agentSwitchingEnabledSelector, } from "../store/chatWindow/chatWindowSelectors.js";
|
|
10
|
+
import { agentsSelector, asyncProcessSelector, conversationMessagesSelector, conversationSelector, conversationsSelector, messagesSelector, selectedAgentIdSelector, } from "../store/messages/messagesSelectors.js";
|
|
11
|
+
import { newMessageAction, setSelectedAgentAction } from "../store/messages/messagesSlice.js";
|
|
11
12
|
import { collectReferences } from "./completion/references.js";
|
|
12
13
|
import { useCompletion } from "./completion/useCompletion.js";
|
|
14
|
+
import { GenAIChatAgentDropdown } from "./GenAIChatAgentDropdown.js";
|
|
13
15
|
import { useHighlight } from "./highlight/useHighlight.js";
|
|
14
16
|
import { useFullscreenCheck } from "./hooks/useFullscreenCheck.js";
|
|
17
|
+
import { getAgentSelectionStatus } from "./utils/agentSelection.js";
|
|
15
18
|
import { escapeMarkdown } from "./utils/markdownUtils.js";
|
|
16
19
|
const msgs = defineMessages({
|
|
17
20
|
placeholder: {
|
|
@@ -26,17 +29,27 @@ const msgs = defineMessages({
|
|
|
26
29
|
send: {
|
|
27
30
|
id: "gd.gen-ai.button.send",
|
|
28
31
|
},
|
|
32
|
+
noAgentAvailable: {
|
|
33
|
+
id: "gd.gen-ai.agent.unavailable",
|
|
34
|
+
},
|
|
29
35
|
});
|
|
30
36
|
const isMac = typeof navigator !== "undefined" &&
|
|
31
37
|
(navigator.platform.toUpperCase().indexOf("MAC") >= 0 || navigator.userAgent.includes("Macintosh"));
|
|
32
|
-
function InputComponent({ isBusy, isEvaluating, newMessage, autofocus = false, canManage, canAnalyze, targetRef, messages, conversation, items, loading, }) {
|
|
38
|
+
function InputComponent({ isBusy, isEvaluating, newMessage, autofocus = false, canManage, canAnalyze, targetRef, messages, conversation, conversations, items, agents, agentSwitchingEnabled, agentSwitchingActive, loading, selectedAgentId, setSelectedAgent, }) {
|
|
33
39
|
const intl = useIntl();
|
|
34
40
|
const { isBigScreen, isSmallScreen, isFullscreen } = useFullscreenCheck();
|
|
35
41
|
const isLoading = loading === "loading" || loading === "clearing";
|
|
42
|
+
const isAssistantLoading = isLoading || loading === "restoring";
|
|
36
43
|
const isEmpty = conversation ? !items?.length && !isLoading : !messages?.length && !isLoading;
|
|
37
44
|
const [value, setValue] = useState("");
|
|
38
45
|
const [editorApi, setApi] = useState(null);
|
|
39
46
|
const [focused, setFocused] = useState(false);
|
|
47
|
+
const { availableAgents, hasNoAgents, isSelectionLoading } = getAgentSelectionStatus({
|
|
48
|
+
agentSwitchingActive,
|
|
49
|
+
assistantLoading: isAssistantLoading,
|
|
50
|
+
agents,
|
|
51
|
+
selectedAgentId,
|
|
52
|
+
});
|
|
40
53
|
const { onCompletion, used } = useCompletion([], { canManage, canAnalyze });
|
|
41
54
|
const { highlightExtension, atomicCursorExtension } = useHighlight(used);
|
|
42
55
|
const beforeExtensions = useMemo(() => [atomicCursorExtension], [atomicCursorExtension]);
|
|
@@ -73,6 +86,9 @@ function InputComponent({ isBusy, isEvaluating, newMessage, autofocus = false, c
|
|
|
73
86
|
forceFocusOnce.current = true;
|
|
74
87
|
}, []);
|
|
75
88
|
const handleSubmit = () => {
|
|
89
|
+
if (agentSwitchingActive && hasNoAgents) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
76
92
|
let item;
|
|
77
93
|
if (conversation) {
|
|
78
94
|
item = makeUserItem({
|
|
@@ -92,7 +108,7 @@ function InputComponent({ isBusy, isEvaluating, newMessage, autofocus = false, c
|
|
|
92
108
|
const handleKeyDown = (e) => {
|
|
93
109
|
if (e.key === "Enter" && !e.shiftKey) {
|
|
94
110
|
const trimmed = value.trim();
|
|
95
|
-
if (isBusy || !trimmed) {
|
|
111
|
+
if (isBusy || !trimmed || (agentSwitchingActive && (hasNoAgents || isSelectionLoading))) {
|
|
96
112
|
return true;
|
|
97
113
|
}
|
|
98
114
|
e.preventDefault();
|
|
@@ -102,31 +118,55 @@ function InputComponent({ isBusy, isEvaluating, newMessage, autofocus = false, c
|
|
|
102
118
|
}
|
|
103
119
|
return false;
|
|
104
120
|
};
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
121
|
+
const handleActionsMouseDown = (e) => {
|
|
122
|
+
if (e.target !== e.currentTarget) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
e.preventDefault();
|
|
126
|
+
editorApi?.focus();
|
|
127
|
+
};
|
|
128
|
+
const agentDropdownDisabled = isBusy || isEvaluating || isSelectionLoading;
|
|
129
|
+
const buttonDisabled = !value.trim() || agentDropdownDisabled || (agentSwitchingActive && hasNoAgents);
|
|
130
|
+
const handleSelectAgent = useCallback((agentId, options) => {
|
|
131
|
+
setSelectedAgent({
|
|
132
|
+
agentId,
|
|
133
|
+
previousAgentId: conversation?.agentId ?? selectedAgentId,
|
|
134
|
+
showChangeEvent: options?.showChangeEvent,
|
|
135
|
+
});
|
|
136
|
+
}, [conversation?.agentId, selectedAgentId, setSelectedAgent]);
|
|
109
137
|
const sendLabel = intl.formatMessage(msgs.send);
|
|
138
|
+
const noAgentAvailableLabel = intl.formatMessage(msgs.noAgentAvailable);
|
|
110
139
|
return (_jsx("div", { className: cx("gd-gen-ai-chat__input", {
|
|
111
140
|
focused,
|
|
112
141
|
"gd-gen-ai-chat__input--fullscreen": isFullscreen,
|
|
113
142
|
"gd-gen-ai-chat__input--big-screen": isBigScreen,
|
|
114
143
|
"gd-gen-ai-chat__input--small-screen": isSmallScreen,
|
|
115
144
|
"gd-gen-ai-chat__input--empty": isEmpty,
|
|
145
|
+
"gd-gen-ai-chat__input--agent-switching": agentSwitchingEnabled,
|
|
146
|
+
"gd-gen-ai-chat__input--no-agents": hasNoAgents,
|
|
116
147
|
}), children: _jsxs("div", { className: "gd-gen-ai-chat__input__content", children: [
|
|
117
|
-
_jsx(
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
148
|
+
_jsx(HintText, { focused: focused, where: "top" }), _jsxs("div", { className: "gd-gen-ai-chat__input__container", children: [
|
|
149
|
+
_jsx("div", { ref: targetRef, onFocus: () => {
|
|
150
|
+
editorApi?.focus();
|
|
151
|
+
} }), _jsx("div", { className: "gd-gen-ai-chat__input__text", children: _jsx(SyntaxHighlightingInput, { className: "gd-gen-ai-chat__input__mc", placeholder: intl.formatMessage(msgs.placeholder), label: isMac ? intl.formatMessage(msgs.labelMac) : intl.formatMessage(msgs.labelWin), value: value, autocompletion: {
|
|
152
|
+
aboveCursor: true,
|
|
153
|
+
whenTyping: true,
|
|
154
|
+
whenTypingDelay: 300,
|
|
155
|
+
}, beforeExtensions: beforeExtensions, extensions: extensions, onApi: setApi, onChange: setValue, onFocus: () => {
|
|
156
|
+
setFocused(true);
|
|
157
|
+
}, onBlur: () => {
|
|
158
|
+
setFocused(false);
|
|
159
|
+
}, onKeyDown: handleKeyDown, onCompletion: onCompletion }) }), _jsx("div", { className: cx({
|
|
160
|
+
"gd-gen-ai-chat__input__actions": agentSwitchingEnabled,
|
|
161
|
+
"gd-gen-ai-chat__input__send_button": !agentSwitchingEnabled,
|
|
162
|
+
"gd-gen-ai-chat__input__send_button--disabled": !agentSwitchingEnabled && buttonDisabled,
|
|
163
|
+
}), onMouseDown: agentSwitchingEnabled ? handleActionsMouseDown : undefined, children: agentSwitchingActive && hasNoAgents ? (_jsx("span", { className: "gd-gen-ai-chat__input__no-agent", "data-testid": "no_agent_available", children: noAgentAvailableLabel })) : agentSwitchingEnabled ? (_jsxs(_Fragment, { children: [agentSwitchingActive ? (_jsx(GenAIChatAgentDropdown, { agents: availableAgents, conversations: conversations, conversationAgentId: conversation?.agentId, selectedAgentId: selectedAgentId, isDisabled: agentDropdownDisabled, isLoading: isSelectionLoading, onSelectAgent: handleSelectAgent })) : null, _jsx(UiTooltip, { triggerBy: ["focus", "hover"], arrowPlacement: "bottom", anchor: _jsx(UiIconButton, { icon: "arrowUp", variant: "primary", size: "small", dataTestId: "send_message", isDisabled: buttonDisabled, onClick: buttonDisabled ? undefined : handleSubmit, accessibilityConfig: {
|
|
164
|
+
ariaLabel: sendLabel,
|
|
165
|
+
} }), content: sendLabel })
|
|
166
|
+
] })) : (_jsx(UiTooltip, { triggerBy: ["focus", "hover"], arrowPlacement: "bottom", anchor: _jsx(UiIconButton, { icon: "send", variant: "tertiary", size: "medium", dataTestId: "send_message", isDisabled: buttonDisabled, onClick: buttonDisabled ? undefined : handleSubmit, accessibilityConfig: {
|
|
167
|
+
ariaLabel: sendLabel,
|
|
168
|
+
} }), content: sendLabel })) })
|
|
169
|
+
] }), _jsx(HintText, { focused: focused, where: "bottom" })
|
|
130
170
|
] }) }));
|
|
131
171
|
}
|
|
132
172
|
function HintText({ where, focused }) {
|
|
@@ -144,14 +184,20 @@ const mapStateToProps = (state) => {
|
|
|
144
184
|
const asyncState = asyncProcessSelector(state);
|
|
145
185
|
return {
|
|
146
186
|
conversation: conversationSelector(state),
|
|
187
|
+
conversations: conversationsSelector(state),
|
|
147
188
|
items: conversationMessagesSelector(state),
|
|
148
189
|
messages: messagesSelector(state),
|
|
149
190
|
loading: asyncState,
|
|
191
|
+
agents: agentsSelector(state),
|
|
192
|
+
agentSwitchingEnabled: agentSwitchingEnabledSelector(state),
|
|
193
|
+
agentSwitchingActive: agentSwitchingActiveSelector(state),
|
|
194
|
+
selectedAgentId: selectedAgentIdSelector(state),
|
|
150
195
|
isBusy: !!asyncState,
|
|
151
196
|
isEvaluating: asyncState === "evaluating",
|
|
152
197
|
};
|
|
153
198
|
};
|
|
154
199
|
const mapDispatchToProps = {
|
|
155
200
|
newMessage: newMessageAction,
|
|
201
|
+
setSelectedAgent: setSelectedAgentAction,
|
|
156
202
|
};
|
|
157
203
|
export const Input = connect(mapStateToProps, mapDispatchToProps)(InputComponent);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyDriverAnalysis.d.ts","sourceRoot":"","sources":["../../src/components/KeyDriverAnalysis.tsx"],"names":[],"mappings":"AAyFA,eAAO,MAAM,iBAAiB,EAAE,GAGH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Messages.d.ts","sourceRoot":"","sources":["../../src/components/Messages.tsx"],"names":[],"mappings":"AA8MA,eAAO,MAAM,QAAQ,EAAE,GAAiD,CAAC"}
|