@patternfly/chatbot 6.8.0-prerelease.8 → 6.8.0-prerelease.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/CodeModal/CodeModal.js +5 -0
- package/dist/cjs/MarkdownContent/MarkdownContent.d.ts +26 -7
- package/dist/cjs/MarkdownContent/MarkdownContent.js +79 -166
- package/dist/cjs/MarkdownContent/MarkdownRenderer.d.ts +6 -0
- package/dist/cjs/MarkdownContent/MarkdownRenderer.js +187 -0
- package/dist/cjs/Message/Message.d.ts +3 -4
- package/dist/cjs/Message/Message.js +0 -2
- package/dist/cjs/MessageBox/MessageBox.js +5 -1
- package/dist/cjs/index.d.ts +0 -8
- package/dist/cjs/index.js +1 -13
- package/dist/css/main.css +18 -3
- package/dist/css/main.css.map +1 -1
- package/dist/esm/CodeModal/CodeModal.js +5 -0
- package/dist/esm/MarkdownContent/MarkdownContent.d.ts +26 -7
- package/dist/esm/MarkdownContent/MarkdownContent.js +52 -165
- package/dist/esm/MarkdownContent/MarkdownRenderer.d.ts +6 -0
- package/dist/esm/MarkdownContent/MarkdownRenderer.js +182 -0
- package/dist/esm/Message/Message.d.ts +3 -4
- package/dist/esm/Message/Message.js +0 -2
- package/dist/esm/MessageBox/MessageBox.js +5 -1
- package/dist/esm/index.d.ts +0 -8
- package/dist/esm/index.js +0 -8
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/generate-index.js +41 -16
- package/generate-index.test.js +68 -0
- package/monaco-environment.js +45 -0
- package/package.json +20 -2
- package/patternfly-docs/content/extensions/chatbot/chatbot.md +1 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickStart.tsx +2 -2
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +2 -2
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/monitor-sampleapp-quickstart.ts +1 -0
- package/patternfly-docs/content/extensions/chatbot/tree-shaking.md +124 -0
- package/patternfly-docs/monaco-environment.js +45 -0
- package/patternfly-docs/patternfly-docs.css.js +6 -0
- package/src/Chatbot/Chatbot.scss +4 -0
- package/src/ChatbotContent/ChatbotContent.scss +1 -1
- package/src/ChatbotFooter/ChatbotFooter.scss +2 -2
- package/src/ChatbotHeader/ChatbotHeader.scss +4 -0
- package/src/ChatbotModal/ChatbotModal.scss +10 -0
- package/src/CodeModal/CodeModal.tsx +6 -0
- package/src/DeepThinking/DeepThinking.test.tsx +10 -12
- package/src/MarkdownContent/MarkdownContent.test.tsx +52 -5
- package/src/MarkdownContent/MarkdownContent.tsx +77 -220
- package/src/MarkdownContent/MarkdownRenderer.tsx +235 -0
- package/src/Message/Message.test.tsx +5 -0
- package/src/Message/Message.tsx +3 -5
- package/src/MessageBox/MessageBox.tsx +13 -1
- package/src/ResponseActions/ResponseActions.test.tsx +42 -48
- package/src/ToolCall/ToolCall.test.tsx +6 -9
- package/src/ToolResponse/ToolResponse.test.tsx +16 -22
- package/src/index.ts +0 -12
- package/src/test-utils/markdownTestUtils.ts +21 -0
- package/tsconfig.json +6 -1
- package/dist/cjs/AttachmentEdit/AttachmentEdit.test.d.ts +0 -1
- package/dist/cjs/AttachmentEdit/AttachmentEdit.test.js +0 -77
- package/dist/cjs/Chatbot/Chatbot.test.d.ts +0 -1
- package/dist/cjs/Chatbot/Chatbot.test.js +0 -32
- package/dist/cjs/ChatbotAlert/ChatbotAlert.test.d.ts +0 -1
- package/dist/cjs/ChatbotAlert/ChatbotAlert.test.js +0 -27
- package/dist/cjs/ChatbotContent/ChatbotContent.test.d.ts +0 -1
- package/dist/cjs/ChatbotContent/ChatbotContent.test.js +0 -22
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.d.ts +0 -1
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.js +0 -75
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.d.ts +0 -1
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +0 -601
- package/dist/cjs/ChatbotFooter/ChatbotFooter.test.d.ts +0 -1
- package/dist/cjs/ChatbotFooter/ChatbotFooter.test.js +0 -27
- package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.d.ts +0 -1
- package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.js +0 -87
- package/dist/cjs/ChatbotHeader/ChatbotHeader.test.d.ts +0 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeader.test.js +0 -18
- package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.d.ts +0 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.js +0 -18
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +0 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.js +0 -22
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.d.ts +0 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.js +0 -18
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +0 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.js +0 -22
- package/dist/cjs/ChatbotHeader/ChatbotHeaderNewChatButton.test.d.ts +0 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderNewChatButton.test.js +0 -22
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +0 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +0 -46
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +0 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +0 -44
- package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +0 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.js +0 -55
- package/dist/cjs/ChatbotModal/ChatbotModal.test.d.ts +0 -1
- package/dist/cjs/ChatbotModal/ChatbotModal.test.js +0 -16
- package/dist/cjs/ChatbotToggle/ChatbotToggle.test.d.ts +0 -1
- package/dist/cjs/ChatbotToggle/ChatbotToggle.test.js +0 -64
- package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.d.ts +0 -1
- package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +0 -61
- package/dist/cjs/CodeModal/CodeModal.test.d.ts +0 -1
- package/dist/cjs/CodeModal/CodeModal.test.js +0 -34
- package/dist/cjs/Compare/Compare.test.d.ts +0 -1
- package/dist/cjs/Compare/Compare.test.js +0 -18
- package/dist/cjs/DeepThinking/DeepThinking.test.d.ts +0 -1
- package/dist/cjs/DeepThinking/DeepThinking.test.js +0 -146
- package/dist/cjs/FileDetails/FileDetails.test.d.ts +0 -1
- package/dist/cjs/FileDetails/FileDetails.test.js +0 -42
- package/dist/cjs/FileDetailsLabel/FileDetailsLabel.test.d.ts +0 -1
- package/dist/cjs/FileDetailsLabel/FileDetailsLabel.test.js +0 -79
- package/dist/cjs/FileDropZone/FileDropZone.test.d.ts +0 -1
- package/dist/cjs/FileDropZone/FileDropZone.test.js +0 -100
- package/dist/cjs/FilePreview/FilePreview.test.d.ts +0 -1
- package/dist/cjs/FilePreview/FilePreview.test.js +0 -97
- package/dist/cjs/ImagePreview/ImagePreview.test.d.ts +0 -1
- package/dist/cjs/ImagePreview/ImagePreview.test.js +0 -225
- package/dist/cjs/MarkdownContent/MarkdownContent.test.d.ts +0 -1
- package/dist/cjs/MarkdownContent/MarkdownContent.test.js +0 -192
- package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.test.d.ts +0 -1
- package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.test.js +0 -131
- package/dist/cjs/Message/ErrorMessage/ErrorMessage.test.d.ts +0 -1
- package/dist/cjs/Message/ErrorMessage/ErrorMessage.test.js +0 -30
- package/dist/cjs/Message/Message.test.d.ts +0 -1
- package/dist/cjs/Message/Message.test.js +0 -1128
- package/dist/cjs/Message/MessageAndActions/MessageAndActions.test.d.ts +0 -1
- package/dist/cjs/Message/MessageAndActions/MessageAndActions.test.js +0 -25
- package/dist/cjs/Message/MessageAttachments/MessageAttachmentItem.test.d.ts +0 -1
- package/dist/cjs/Message/MessageAttachments/MessageAttachmentItem.test.js +0 -25
- package/dist/cjs/Message/MessageAttachments/MessageAttachmentsContainer.test.d.ts +0 -1
- package/dist/cjs/Message/MessageAttachments/MessageAttachmentsContainer.test.js +0 -25
- package/dist/cjs/Message/MessageLoading.test.d.ts +0 -1
- package/dist/cjs/Message/MessageLoading.test.js +0 -25
- package/dist/cjs/Message/QuickResponse/QuickResponse.test.d.ts +0 -1
- package/dist/cjs/Message/QuickResponse/QuickResponse.test.js +0 -109
- package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.d.ts +0 -1
- package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.js +0 -76
- package/dist/cjs/Message/UserFeedback/UserFeedback.test.d.ts +0 -1
- package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +0 -181
- package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.d.ts +0 -1
- package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +0 -243
- package/dist/cjs/MessageBar/AttachButton.test.d.ts +0 -1
- package/dist/cjs/MessageBar/AttachButton.test.js +0 -152
- package/dist/cjs/MessageBar/MessageBar.test.d.ts +0 -1
- package/dist/cjs/MessageBar/MessageBar.test.js +0 -338
- package/dist/cjs/MessageBar/SendButton.test.d.ts +0 -1
- package/dist/cjs/MessageBar/SendButton.test.js +0 -58
- package/dist/cjs/MessageBar/StopButton.test.d.ts +0 -1
- package/dist/cjs/MessageBar/StopButton.test.js +0 -58
- package/dist/cjs/MessageBox/JumpButton.test.d.ts +0 -1
- package/dist/cjs/MessageBox/JumpButton.test.js +0 -39
- package/dist/cjs/MessageBox/MessageBox.test.d.ts +0 -1
- package/dist/cjs/MessageBox/MessageBox.test.js +0 -294
- package/dist/cjs/MessageDivider/MessageDivider.test.d.ts +0 -1
- package/dist/cjs/MessageDivider/MessageDivider.test.js +0 -29
- package/dist/cjs/Onboarding/Onboarding.test.d.ts +0 -1
- package/dist/cjs/Onboarding/Onboarding.test.js +0 -80
- package/dist/cjs/PreviewAttachment/PreviewAttachment.test.d.ts +0 -1
- package/dist/cjs/PreviewAttachment/PreviewAttachment.test.js +0 -50
- package/dist/cjs/ResponseActions/ResponseActionButton.test.d.ts +0 -1
- package/dist/cjs/ResponseActions/ResponseActionButton.test.js +0 -54
- package/dist/cjs/ResponseActions/ResponseActions.test.d.ts +0 -1
- package/dist/cjs/ResponseActions/ResponseActions.test.js +0 -455
- package/dist/cjs/ResponseActions/ResponseActionsGroups.test.d.ts +0 -1
- package/dist/cjs/ResponseActions/ResponseActionsGroups.test.js +0 -25
- package/dist/cjs/Settings/SettingsForm.test.d.ts +0 -1
- package/dist/cjs/Settings/SettingsForm.test.js +0 -35
- package/dist/cjs/SourcesCard/SourcesCard.test.d.ts +0 -1
- package/dist/cjs/SourcesCard/SourcesCard.test.js +0 -39
- package/dist/cjs/SourcesCardBase/SourcesCardBase.test.d.ts +0 -1
- package/dist/cjs/SourcesCardBase/SourcesCardBase.test.js +0 -199
- package/dist/cjs/TermsOfUse/TermsOfUse.test.d.ts +0 -1
- package/dist/cjs/TermsOfUse/TermsOfUse.test.js +0 -77
- package/dist/cjs/ToolCall/ToolCall.test.d.ts +0 -1
- package/dist/cjs/ToolCall/ToolCall.test.js +0 -201
- package/dist/cjs/ToolResponse/ToolResponse.test.d.ts +0 -1
- package/dist/cjs/ToolResponse/ToolResponse.test.js +0 -184
- package/dist/cjs/__mocks__/monaco-editor.d.ts +0 -11
- package/dist/cjs/__mocks__/monaco-editor.js +0 -18
- package/dist/cjs/__mocks__/rehype-external-links.d.ts +0 -2
- package/dist/cjs/__mocks__/rehype-external-links.js +0 -4
- package/dist/cjs/__mocks__/rehype-highlight.d.ts +0 -2
- package/dist/cjs/__mocks__/rehype-highlight.js +0 -4
- package/dist/cjs/__mocks__/rehype-sanitize.d.ts +0 -2
- package/dist/cjs/__mocks__/rehype-sanitize.js +0 -4
- package/dist/cjs/__mocks__/rehype-unwrap-images.d.ts +0 -2
- package/dist/cjs/__mocks__/rehype-unwrap-images.js +0 -4
- package/dist/esm/AttachmentEdit/AttachmentEdit.test.d.ts +0 -1
- package/dist/esm/AttachmentEdit/AttachmentEdit.test.js +0 -72
- package/dist/esm/Chatbot/Chatbot.test.d.ts +0 -1
- package/dist/esm/Chatbot/Chatbot.test.js +0 -27
- package/dist/esm/ChatbotAlert/ChatbotAlert.test.d.ts +0 -1
- package/dist/esm/ChatbotAlert/ChatbotAlert.test.js +0 -22
- package/dist/esm/ChatbotContent/ChatbotContent.test.d.ts +0 -1
- package/dist/esm/ChatbotContent/ChatbotContent.test.js +0 -17
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.d.ts +0 -1
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.js +0 -70
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.d.ts +0 -1
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +0 -596
- package/dist/esm/ChatbotFooter/ChatbotFooter.test.d.ts +0 -1
- package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +0 -22
- package/dist/esm/ChatbotFooter/ChatbotFooternote.test.d.ts +0 -1
- package/dist/esm/ChatbotFooter/ChatbotFooternote.test.js +0 -82
- package/dist/esm/ChatbotHeader/ChatbotHeader.test.d.ts +0 -1
- package/dist/esm/ChatbotHeader/ChatbotHeader.test.js +0 -13
- package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.d.ts +0 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.js +0 -13
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +0 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.js +0 -20
- package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.d.ts +0 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.js +0 -13
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +0 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +0 -20
- package/dist/esm/ChatbotHeader/ChatbotHeaderNewChatButton.test.d.ts +0 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderNewChatButton.test.js +0 -20
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +0 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +0 -44
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +0 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +0 -42
- package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +0 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.js +0 -50
- package/dist/esm/ChatbotModal/ChatbotModal.test.d.ts +0 -1
- package/dist/esm/ChatbotModal/ChatbotModal.test.js +0 -11
- package/dist/esm/ChatbotToggle/ChatbotToggle.test.d.ts +0 -1
- package/dist/esm/ChatbotToggle/ChatbotToggle.test.js +0 -59
- package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.d.ts +0 -1
- package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +0 -56
- package/dist/esm/CodeModal/CodeModal.test.d.ts +0 -1
- package/dist/esm/CodeModal/CodeModal.test.js +0 -29
- package/dist/esm/Compare/Compare.test.d.ts +0 -1
- package/dist/esm/Compare/Compare.test.js +0 -13
- package/dist/esm/DeepThinking/DeepThinking.test.d.ts +0 -1
- package/dist/esm/DeepThinking/DeepThinking.test.js +0 -141
- package/dist/esm/FileDetails/FileDetails.test.d.ts +0 -1
- package/dist/esm/FileDetails/FileDetails.test.js +0 -37
- package/dist/esm/FileDetailsLabel/FileDetailsLabel.test.d.ts +0 -1
- package/dist/esm/FileDetailsLabel/FileDetailsLabel.test.js +0 -74
- package/dist/esm/FileDropZone/FileDropZone.test.d.ts +0 -1
- package/dist/esm/FileDropZone/FileDropZone.test.js +0 -95
- package/dist/esm/FilePreview/FilePreview.test.d.ts +0 -1
- package/dist/esm/FilePreview/FilePreview.test.js +0 -92
- package/dist/esm/ImagePreview/ImagePreview.test.d.ts +0 -1
- package/dist/esm/ImagePreview/ImagePreview.test.js +0 -220
- package/dist/esm/MarkdownContent/MarkdownContent.test.d.ts +0 -1
- package/dist/esm/MarkdownContent/MarkdownContent.test.js +0 -187
- package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.test.d.ts +0 -1
- package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.test.js +0 -126
- package/dist/esm/Message/ErrorMessage/ErrorMessage.test.d.ts +0 -1
- package/dist/esm/Message/ErrorMessage/ErrorMessage.test.js +0 -25
- package/dist/esm/Message/Message.test.d.ts +0 -1
- package/dist/esm/Message/Message.test.js +0 -1123
- package/dist/esm/Message/MessageAndActions/MessageAndActions.test.d.ts +0 -1
- package/dist/esm/Message/MessageAndActions/MessageAndActions.test.js +0 -20
- package/dist/esm/Message/MessageAttachments/MessageAttachmentItem.test.d.ts +0 -1
- package/dist/esm/Message/MessageAttachments/MessageAttachmentItem.test.js +0 -20
- package/dist/esm/Message/MessageAttachments/MessageAttachmentsContainer.test.d.ts +0 -1
- package/dist/esm/Message/MessageAttachments/MessageAttachmentsContainer.test.js +0 -20
- package/dist/esm/Message/MessageLoading.test.d.ts +0 -1
- package/dist/esm/Message/MessageLoading.test.js +0 -20
- package/dist/esm/Message/QuickResponse/QuickResponse.test.d.ts +0 -1
- package/dist/esm/Message/QuickResponse/QuickResponse.test.js +0 -104
- package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.d.ts +0 -1
- package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.js +0 -48
- package/dist/esm/Message/UserFeedback/UserFeedback.test.d.ts +0 -1
- package/dist/esm/Message/UserFeedback/UserFeedback.test.js +0 -176
- package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.d.ts +0 -1
- package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +0 -238
- package/dist/esm/MessageBar/AttachButton.test.d.ts +0 -1
- package/dist/esm/MessageBar/AttachButton.test.js +0 -147
- package/dist/esm/MessageBar/MessageBar.test.d.ts +0 -1
- package/dist/esm/MessageBar/MessageBar.test.js +0 -333
- package/dist/esm/MessageBar/SendButton.test.d.ts +0 -1
- package/dist/esm/MessageBar/SendButton.test.js +0 -53
- package/dist/esm/MessageBar/StopButton.test.d.ts +0 -1
- package/dist/esm/MessageBar/StopButton.test.js +0 -53
- package/dist/esm/MessageBox/JumpButton.test.d.ts +0 -1
- package/dist/esm/MessageBox/JumpButton.test.js +0 -34
- package/dist/esm/MessageBox/MessageBox.test.d.ts +0 -1
- package/dist/esm/MessageBox/MessageBox.test.js +0 -289
- package/dist/esm/MessageDivider/MessageDivider.test.d.ts +0 -1
- package/dist/esm/MessageDivider/MessageDivider.test.js +0 -24
- package/dist/esm/Onboarding/Onboarding.test.d.ts +0 -1
- package/dist/esm/Onboarding/Onboarding.test.js +0 -75
- package/dist/esm/PreviewAttachment/PreviewAttachment.test.d.ts +0 -1
- package/dist/esm/PreviewAttachment/PreviewAttachment.test.js +0 -48
- package/dist/esm/ResponseActions/ResponseActionButton.test.d.ts +0 -1
- package/dist/esm/ResponseActions/ResponseActionButton.test.js +0 -49
- package/dist/esm/ResponseActions/ResponseActions.test.d.ts +0 -1
- package/dist/esm/ResponseActions/ResponseActions.test.js +0 -450
- package/dist/esm/ResponseActions/ResponseActionsGroups.test.d.ts +0 -1
- package/dist/esm/ResponseActions/ResponseActionsGroups.test.js +0 -20
- package/dist/esm/Settings/SettingsForm.test.d.ts +0 -1
- package/dist/esm/Settings/SettingsForm.test.js +0 -33
- package/dist/esm/SourcesCard/SourcesCard.test.d.ts +0 -1
- package/dist/esm/SourcesCard/SourcesCard.test.js +0 -34
- package/dist/esm/SourcesCardBase/SourcesCardBase.test.d.ts +0 -1
- package/dist/esm/SourcesCardBase/SourcesCardBase.test.js +0 -194
- package/dist/esm/TermsOfUse/TermsOfUse.test.d.ts +0 -1
- package/dist/esm/TermsOfUse/TermsOfUse.test.js +0 -72
- package/dist/esm/ToolCall/ToolCall.test.d.ts +0 -1
- package/dist/esm/ToolCall/ToolCall.test.js +0 -196
- package/dist/esm/ToolResponse/ToolResponse.test.d.ts +0 -1
- package/dist/esm/ToolResponse/ToolResponse.test.js +0 -179
- package/dist/esm/__mocks__/monaco-editor.d.ts +0 -11
- package/dist/esm/__mocks__/monaco-editor.js +0 -18
- package/dist/esm/__mocks__/rehype-external-links.d.ts +0 -2
- package/dist/esm/__mocks__/rehype-external-links.js +0 -2
- package/dist/esm/__mocks__/rehype-highlight.d.ts +0 -2
- package/dist/esm/__mocks__/rehype-highlight.js +0 -2
- package/dist/esm/__mocks__/rehype-sanitize.d.ts +0 -2
- package/dist/esm/__mocks__/rehype-sanitize.js +0 -2
- package/dist/esm/__mocks__/rehype-unwrap-images.d.ts +0 -2
- package/dist/esm/__mocks__/rehype-unwrap-images.js +0 -2
|
@@ -59,7 +59,12 @@ const ChatbotModal_1 = __importDefault(require("../ChatbotModal/ChatbotModal"));
|
|
|
59
59
|
// Try to lazy load - some consumers need to be below a certain bundle size, but can't use the CDN and don't have webpack
|
|
60
60
|
let monacoInstance = null;
|
|
61
61
|
const loadMonaco = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
62
|
+
var _a, _b;
|
|
62
63
|
if (!monacoInstance) {
|
|
64
|
+
if (!((_a = globalThis.MonacoEnvironment) === null || _a === void 0 ? void 0 : _a.getWorker) && !((_b = globalThis.MonacoEnvironment) === null || _b === void 0 ? void 0 : _b.getWorkerUrl)) {
|
|
65
|
+
// eslint-disable-next-line no-console
|
|
66
|
+
console.error('Monaco web workers are not configured. Import @patternfly/chatbot/monaco-environment before using CodeModal.');
|
|
67
|
+
}
|
|
63
68
|
const [monaco, { loader }] = yield Promise.all([Promise.resolve().then(() => __importStar(require('monaco-editor'))), Promise.resolve().then(() => __importStar(require('@monaco-editor/react')))]);
|
|
64
69
|
monacoInstance = monaco;
|
|
65
70
|
loader.config({ monaco });
|
|
@@ -1,10 +1,29 @@
|
|
|
1
|
-
import { type FunctionComponent, ReactNode } from 'react';
|
|
2
|
-
import { Options } from 'react-markdown';
|
|
3
|
-
import { CodeBlockMessageProps } from '../Message/CodeBlockMessage/CodeBlockMessage';
|
|
4
|
-
import { TableProps } from '@patternfly/react-table';
|
|
5
|
-
import '
|
|
6
|
-
import {
|
|
7
|
-
|
|
1
|
+
import { type FunctionComponent, type ReactNode } from 'react';
|
|
2
|
+
import type { Options } from 'react-markdown';
|
|
3
|
+
import type { CodeBlockMessageProps } from '../Message/CodeBlockMessage/CodeBlockMessage';
|
|
4
|
+
import type { TableProps } from '@patternfly/react-table';
|
|
5
|
+
import type { PluggableList } from 'unified';
|
|
6
|
+
import type { ButtonProps } from '@patternfly/react-core';
|
|
7
|
+
type MarkdownRendererModule = typeof import('./MarkdownRenderer');
|
|
8
|
+
/**
|
|
9
|
+
* Whether the lazy-loaded markdown renderer chunk has finished loading.
|
|
10
|
+
*/
|
|
11
|
+
export declare const useIsMarkdownRendererReady: () => boolean;
|
|
12
|
+
/**
|
|
13
|
+
* When provided by `MessageBox`, defers markdown rendering until the shared chunk is ready
|
|
14
|
+
* so existing messages don't each flash an individual loading state.
|
|
15
|
+
*/
|
|
16
|
+
export declare const MarkdownRendererReadyContext: import("react").Context<boolean | null>;
|
|
17
|
+
/**
|
|
18
|
+
* Eagerly fetches the markdown renderer chunk so the first rendered message
|
|
19
|
+
* doesn't flash a loading state while the chunk downloads. Safe to call repeatedly
|
|
20
|
+
* (the dynamic import is cached).
|
|
21
|
+
*/
|
|
22
|
+
export declare const preloadMarkdownRenderer: () => void;
|
|
23
|
+
/**
|
|
24
|
+
* Resolves when the markdown renderer chunk has loaded.
|
|
25
|
+
*/
|
|
26
|
+
export declare const whenMarkdownRendererReady: () => Promise<MarkdownRendererModule>;
|
|
8
27
|
/**
|
|
9
28
|
* MarkdownContent renders content either as plain text or with content with markdown support.
|
|
10
29
|
*
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
26
|
var t = {};
|
|
4
27
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
@@ -14,182 +37,72 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
38
|
};
|
|
16
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.MarkdownContent = void 0;
|
|
40
|
+
exports.MarkdownContent = exports.whenMarkdownRendererReady = exports.preloadMarkdownRenderer = exports.MarkdownRendererReadyContext = exports.useIsMarkdownRendererReady = void 0;
|
|
18
41
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
19
|
-
|
|
20
|
-
|
|
42
|
+
// ============================================================================
|
|
43
|
+
// Markdown Content - Shared component for rendering markdown
|
|
44
|
+
// ============================================================================
|
|
45
|
+
const react_1 = require("react");
|
|
21
46
|
const react_core_1 = require("@patternfly/react-core");
|
|
22
|
-
const CodeBlockMessage_1 = __importDefault(require("../Message/CodeBlockMessage/CodeBlockMessage"));
|
|
23
47
|
const TextMessage_1 = __importDefault(require("../Message/TextMessage/TextMessage"));
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const rehype_external_links_1 = __importDefault(require("rehype-external-links"));
|
|
36
|
-
const rehype_sanitize_1 = __importDefault(require("rehype-sanitize"));
|
|
37
|
-
const rehype_highlight_1 = __importDefault(require("rehype-highlight"));
|
|
38
|
-
require("highlight.js/styles/vs2015.css");
|
|
39
|
-
const LinkMessage_1 = __importDefault(require("../Message/LinkMessage/LinkMessage"));
|
|
40
|
-
const rehypeMoveImagesOutOfParagraphs_1 = require("../Message/Plugins/rehypeMoveImagesOutOfParagraphs");
|
|
41
|
-
const SuperscriptMessage_1 = __importDefault(require("../Message/SuperscriptMessage/SuperscriptMessage"));
|
|
42
|
-
const react_styles_1 = require("@patternfly/react-styles");
|
|
43
|
-
const MarkdownContent = ({ content, isMarkdownDisabled, codeBlockProps, tableProps, openLinkInNewTab = true, additionalRehypePlugins = [], additionalRemarkPlugins = [], linkProps, reactMarkdownProps, remarkGfmProps, hasNoImages = false, isPrimary, textComponent, shouldRetainStyles }) => {
|
|
44
|
-
let rehypePlugins = [rehype_unwrap_images_1.default, rehypeMoveImagesOutOfParagraphs_1.rehypeMoveImagesOutOfParagraphs, rehype_highlight_1.default];
|
|
45
|
-
if (openLinkInNewTab) {
|
|
46
|
-
rehypePlugins = rehypePlugins.concat([[rehype_external_links_1.default, { target: '_blank' }, rehype_sanitize_1.default]]);
|
|
47
|
-
}
|
|
48
|
-
if (additionalRehypePlugins) {
|
|
49
|
-
rehypePlugins.push(...additionalRehypePlugins);
|
|
50
|
-
}
|
|
51
|
-
const disallowedElements = hasNoImages ? ['img'] : [];
|
|
52
|
-
if (reactMarkdownProps && reactMarkdownProps.disallowedElements) {
|
|
53
|
-
disallowedElements.push(...reactMarkdownProps.disallowedElements);
|
|
48
|
+
let markdownRendererPromise = null;
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
50
|
+
let ResolvedMarkdownRenderer = null;
|
|
51
|
+
const markdownRendererListeners = new Set();
|
|
52
|
+
const importMarkdownRenderer = () => {
|
|
53
|
+
if (!markdownRendererPromise) {
|
|
54
|
+
markdownRendererPromise = Promise.resolve().then(() => __importStar(require('./MarkdownRenderer'))).then((module) => {
|
|
55
|
+
ResolvedMarkdownRenderer = module.default;
|
|
56
|
+
markdownRendererListeners.forEach((listener) => listener());
|
|
57
|
+
return module;
|
|
58
|
+
});
|
|
54
59
|
}
|
|
60
|
+
return markdownRendererPromise;
|
|
61
|
+
};
|
|
62
|
+
const subscribeToMarkdownRendererReady = (listener) => {
|
|
63
|
+
markdownRendererListeners.add(listener);
|
|
64
|
+
void importMarkdownRenderer();
|
|
65
|
+
return () => markdownRendererListeners.delete(listener);
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Whether the lazy-loaded markdown renderer chunk has finished loading.
|
|
69
|
+
*/
|
|
70
|
+
const useIsMarkdownRendererReady = () => (0, react_1.useSyncExternalStore)(subscribeToMarkdownRendererReady, () => ResolvedMarkdownRenderer !== null, () => true);
|
|
71
|
+
exports.useIsMarkdownRendererReady = useIsMarkdownRendererReady;
|
|
72
|
+
/**
|
|
73
|
+
* When provided by `MessageBox`, defers markdown rendering until the shared chunk is ready
|
|
74
|
+
* so existing messages don't each flash an individual loading state.
|
|
75
|
+
*/
|
|
76
|
+
exports.MarkdownRendererReadyContext = (0, react_1.createContext)(null);
|
|
77
|
+
/**
|
|
78
|
+
* Eagerly fetches the markdown renderer chunk so the first rendered message
|
|
79
|
+
* doesn't flash a loading state while the chunk downloads. Safe to call repeatedly
|
|
80
|
+
* (the dynamic import is cached).
|
|
81
|
+
*/
|
|
82
|
+
const preloadMarkdownRenderer = () => {
|
|
83
|
+
void importMarkdownRenderer();
|
|
84
|
+
};
|
|
85
|
+
exports.preloadMarkdownRenderer = preloadMarkdownRenderer;
|
|
86
|
+
/**
|
|
87
|
+
* Resolves when the markdown renderer chunk has loaded.
|
|
88
|
+
*/
|
|
89
|
+
const whenMarkdownRendererReady = () => importMarkdownRenderer();
|
|
90
|
+
exports.whenMarkdownRendererReady = whenMarkdownRendererReady;
|
|
91
|
+
const MarkdownContent = (_a) => {
|
|
92
|
+
var { content, isMarkdownDisabled, isPrimary, textComponent } = _a, markdownProps = __rest(_a, ["content", "isMarkdownDisabled", "isPrimary", "textComponent"]);
|
|
93
|
+
const contextReady = (0, react_1.useContext)(exports.MarkdownRendererReadyContext);
|
|
94
|
+
const storeReady = (0, exports.useIsMarkdownRendererReady)();
|
|
95
|
+
const isMarkdownRendererReady = contextReady !== null && contextReady !== void 0 ? contextReady : storeReady;
|
|
55
96
|
if (isMarkdownDisabled) {
|
|
56
97
|
if (textComponent) {
|
|
57
98
|
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: textComponent });
|
|
58
99
|
}
|
|
59
100
|
return ((0, jsx_runtime_1.jsx)(TextMessage_1.default, { component: react_core_1.ContentVariants.p, isPrimary: isPrimary, children: content }));
|
|
60
101
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
return ((0, jsx_runtime_1.jsx)("section", Object.assign({}, rest, { className: (0, react_styles_1.css)('pf-chatbot__message-text', shouldRetainStyles && 'pf-m-markdown', rest === null || rest === void 0 ? void 0 : rest.className) })));
|
|
66
|
-
},
|
|
67
|
-
p: (props) => {
|
|
68
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
69
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
70
|
-
return ((0, jsx_runtime_1.jsx)(TextMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles, component: react_core_1.ContentVariants.p }, rest, { isPrimary: isPrimary })));
|
|
71
|
-
},
|
|
72
|
-
code: (_a) => {
|
|
73
|
-
var { children } = _a, props = __rest(_a, ["children"]);
|
|
74
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
75
|
-
const { node } = props, codeProps = __rest(props, ["node"]);
|
|
76
|
-
return ((0, jsx_runtime_1.jsx)(CodeBlockMessage_1.default, Object.assign({}, codeProps, codeBlockProps, { isPrimary: isPrimary, shouldRetainStyles: shouldRetainStyles, children: children })));
|
|
77
|
-
},
|
|
78
|
-
h1: (props) => {
|
|
79
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
80
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
81
|
-
return (0, jsx_runtime_1.jsx)(TextMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles, component: react_core_1.ContentVariants.h1 }, rest));
|
|
82
|
-
},
|
|
83
|
-
h2: (props) => {
|
|
84
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
85
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
86
|
-
return (0, jsx_runtime_1.jsx)(TextMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles, component: react_core_1.ContentVariants.h2 }, rest));
|
|
87
|
-
},
|
|
88
|
-
h3: (props) => {
|
|
89
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
90
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
91
|
-
return (0, jsx_runtime_1.jsx)(TextMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles, component: react_core_1.ContentVariants.h3 }, rest));
|
|
92
|
-
},
|
|
93
|
-
h4: (props) => {
|
|
94
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
95
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
96
|
-
return (0, jsx_runtime_1.jsx)(TextMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles, component: react_core_1.ContentVariants.h4 }, rest));
|
|
97
|
-
},
|
|
98
|
-
h5: (props) => {
|
|
99
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
100
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
101
|
-
return (0, jsx_runtime_1.jsx)(TextMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles, component: react_core_1.ContentVariants.h5 }, rest));
|
|
102
|
-
},
|
|
103
|
-
h6: (props) => {
|
|
104
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
105
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
106
|
-
return (0, jsx_runtime_1.jsx)(TextMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles, component: react_core_1.ContentVariants.h6 }, rest));
|
|
107
|
-
},
|
|
108
|
-
blockquote: (props) => {
|
|
109
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
110
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
111
|
-
return ((0, jsx_runtime_1.jsx)(TextMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles, component: react_core_1.ContentVariants.blockquote }, rest)));
|
|
112
|
-
},
|
|
113
|
-
ul: (props) => {
|
|
114
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
115
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
116
|
-
return (0, jsx_runtime_1.jsx)(UnorderedListMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles }, rest));
|
|
117
|
-
},
|
|
118
|
-
ol: (props) => {
|
|
119
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
120
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
121
|
-
return (0, jsx_runtime_1.jsx)(OrderedListMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles }, rest));
|
|
122
|
-
},
|
|
123
|
-
li: (props) => {
|
|
124
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
125
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
126
|
-
return (0, jsx_runtime_1.jsx)(ListItemMessage_1.default, Object.assign({}, rest));
|
|
127
|
-
},
|
|
128
|
-
// table requires node attribute for calculating headers for mobile breakpoint
|
|
129
|
-
table: (props) => ((0, jsx_runtime_1.jsx)(TableMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles }, props, tableProps, { isPrimary: isPrimary }))),
|
|
130
|
-
tbody: (props) => {
|
|
131
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
132
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
133
|
-
return (0, jsx_runtime_1.jsx)(TbodyMessage_1.default, Object.assign({}, rest));
|
|
134
|
-
},
|
|
135
|
-
thead: (props) => {
|
|
136
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
137
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
138
|
-
return (0, jsx_runtime_1.jsx)(TheadMessage_1.default, Object.assign({}, rest));
|
|
139
|
-
},
|
|
140
|
-
tr: (props) => {
|
|
141
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
142
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
143
|
-
return (0, jsx_runtime_1.jsx)(TrMessage_1.default, Object.assign({}, rest));
|
|
144
|
-
},
|
|
145
|
-
td: (props) => {
|
|
146
|
-
// Conflicts with Td type
|
|
147
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
148
|
-
const { node, width } = props, rest = __rest(props, ["node", "width"]);
|
|
149
|
-
return (0, jsx_runtime_1.jsx)(TdMessage_1.default, Object.assign({}, rest));
|
|
150
|
-
},
|
|
151
|
-
th: (props) => {
|
|
152
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
153
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
154
|
-
return (0, jsx_runtime_1.jsx)(ThMessage_1.default, Object.assign({}, rest));
|
|
155
|
-
},
|
|
156
|
-
img: (props) => {
|
|
157
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
158
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
159
|
-
return (0, jsx_runtime_1.jsx)(ImageMessage_1.default, Object.assign({}, rest));
|
|
160
|
-
},
|
|
161
|
-
a: (props) => {
|
|
162
|
-
// node is just the details of the document structure - not needed
|
|
163
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
164
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
165
|
-
return (
|
|
166
|
-
// some a types conflict with ButtonProps, but it's ok because we are using an a tag
|
|
167
|
-
// there are too many to handle manually
|
|
168
|
-
(0, jsx_runtime_1.jsx)(LinkMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles }, rest, linkProps, { children: props.children })));
|
|
169
|
-
},
|
|
170
|
-
// used for footnotes
|
|
171
|
-
sup: (props) => {
|
|
172
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
173
|
-
const { node } = props, rest = __rest(props, ["node"]);
|
|
174
|
-
return (0, jsx_runtime_1.jsx)(SuperscriptMessage_1.default, Object.assign({}, rest));
|
|
175
|
-
}
|
|
176
|
-
}, remarkPlugins: [[remark_gfm_1.default, Object.assign({}, remarkGfmProps)], ...additionalRemarkPlugins], rehypePlugins: rehypePlugins }, reactMarkdownProps, { remarkRehypeOptions: Object.assign({
|
|
177
|
-
// removes sr-only class from footnote labels applied by default
|
|
178
|
-
footnoteLabelProperties: { className: [''] },
|
|
179
|
-
// omit default ↩ text; backref icon is rendered in LinkMessage
|
|
180
|
-
footnoteBackContent: (_referenceIndex, rereferenceIndex) => {
|
|
181
|
-
if (rereferenceIndex > 1) {
|
|
182
|
-
return [
|
|
183
|
-
{
|
|
184
|
-
type: 'element',
|
|
185
|
-
tagName: 'sup',
|
|
186
|
-
properties: {},
|
|
187
|
-
children: [{ type: 'text', value: String(rereferenceIndex) }]
|
|
188
|
-
}
|
|
189
|
-
];
|
|
190
|
-
}
|
|
191
|
-
return [];
|
|
192
|
-
} }, reactMarkdownProps === null || reactMarkdownProps === void 0 ? void 0 : reactMarkdownProps.remarkRehypeOptions), disallowedElements: disallowedElements, children: content })));
|
|
102
|
+
if (!isMarkdownRendererReady || !ResolvedMarkdownRenderer) {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
return (0, jsx_runtime_1.jsx)(ResolvedMarkdownRenderer, Object.assign({}, markdownProps, { content: content, isPrimary: isPrimary }));
|
|
193
106
|
};
|
|
194
107
|
exports.MarkdownContent = MarkdownContent;
|
|
195
108
|
exports.default = exports.MarkdownContent;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type FunctionComponent } from 'react';
|
|
2
|
+
import 'highlight.js/styles/vs2015.css';
|
|
3
|
+
import type { MarkdownContentProps } from './MarkdownContent';
|
|
4
|
+
export type MarkdownRendererProps = Omit<MarkdownContentProps, 'isMarkdownDisabled' | 'textComponent'>;
|
|
5
|
+
declare const MarkdownRenderer: FunctionComponent<MarkdownRendererProps>;
|
|
6
|
+
export default MarkdownRenderer;
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
18
|
+
const react_markdown_1 = __importDefault(require("react-markdown"));
|
|
19
|
+
const remark_gfm_1 = __importDefault(require("remark-gfm"));
|
|
20
|
+
const react_core_1 = require("@patternfly/react-core");
|
|
21
|
+
const CodeBlockMessage_1 = __importDefault(require("../Message/CodeBlockMessage/CodeBlockMessage"));
|
|
22
|
+
const TextMessage_1 = __importDefault(require("../Message/TextMessage/TextMessage"));
|
|
23
|
+
const ListItemMessage_1 = __importDefault(require("../Message/ListMessage/ListItemMessage"));
|
|
24
|
+
const UnorderedListMessage_1 = __importDefault(require("../Message/ListMessage/UnorderedListMessage"));
|
|
25
|
+
const OrderedListMessage_1 = __importDefault(require("../Message/ListMessage/OrderedListMessage"));
|
|
26
|
+
const TableMessage_1 = __importDefault(require("../Message/TableMessage/TableMessage"));
|
|
27
|
+
const TrMessage_1 = __importDefault(require("../Message/TableMessage/TrMessage"));
|
|
28
|
+
const TdMessage_1 = __importDefault(require("../Message/TableMessage/TdMessage"));
|
|
29
|
+
const TbodyMessage_1 = __importDefault(require("../Message/TableMessage/TbodyMessage"));
|
|
30
|
+
const TheadMessage_1 = __importDefault(require("../Message/TableMessage/TheadMessage"));
|
|
31
|
+
const ThMessage_1 = __importDefault(require("../Message/TableMessage/ThMessage"));
|
|
32
|
+
const ImageMessage_1 = __importDefault(require("../Message/ImageMessage/ImageMessage"));
|
|
33
|
+
const rehype_unwrap_images_1 = __importDefault(require("rehype-unwrap-images"));
|
|
34
|
+
const rehype_external_links_1 = __importDefault(require("rehype-external-links"));
|
|
35
|
+
const rehype_sanitize_1 = __importDefault(require("rehype-sanitize"));
|
|
36
|
+
const rehype_highlight_1 = __importDefault(require("rehype-highlight"));
|
|
37
|
+
require("highlight.js/styles/vs2015.css");
|
|
38
|
+
const LinkMessage_1 = __importDefault(require("../Message/LinkMessage/LinkMessage"));
|
|
39
|
+
const rehypeMoveImagesOutOfParagraphs_1 = require("../Message/Plugins/rehypeMoveImagesOutOfParagraphs");
|
|
40
|
+
const SuperscriptMessage_1 = __importDefault(require("../Message/SuperscriptMessage/SuperscriptMessage"));
|
|
41
|
+
const react_styles_1 = require("@patternfly/react-styles");
|
|
42
|
+
const MarkdownRenderer = ({ content, codeBlockProps, tableProps, openLinkInNewTab = true, additionalRehypePlugins = [], additionalRemarkPlugins = [], linkProps, reactMarkdownProps, remarkGfmProps, hasNoImages = false, isPrimary, shouldRetainStyles }) => {
|
|
43
|
+
let rehypePlugins = [rehype_unwrap_images_1.default, rehypeMoveImagesOutOfParagraphs_1.rehypeMoveImagesOutOfParagraphs, rehype_highlight_1.default];
|
|
44
|
+
if (openLinkInNewTab) {
|
|
45
|
+
rehypePlugins = rehypePlugins.concat([[rehype_external_links_1.default, { target: '_blank' }, rehype_sanitize_1.default]]);
|
|
46
|
+
}
|
|
47
|
+
if (additionalRehypePlugins) {
|
|
48
|
+
rehypePlugins.push(...additionalRehypePlugins);
|
|
49
|
+
}
|
|
50
|
+
const disallowedElements = hasNoImages ? ['img'] : [];
|
|
51
|
+
if (reactMarkdownProps && reactMarkdownProps.disallowedElements) {
|
|
52
|
+
disallowedElements.push(...reactMarkdownProps.disallowedElements);
|
|
53
|
+
}
|
|
54
|
+
return ((0, jsx_runtime_1.jsx)(react_markdown_1.default, Object.assign({ components: {
|
|
55
|
+
section: (props) => {
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
57
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
58
|
+
return ((0, jsx_runtime_1.jsx)("section", Object.assign({}, rest, { className: (0, react_styles_1.css)('pf-chatbot__message-text', shouldRetainStyles && 'pf-m-markdown', rest === null || rest === void 0 ? void 0 : rest.className) })));
|
|
59
|
+
},
|
|
60
|
+
p: (props) => {
|
|
61
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
62
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
63
|
+
return ((0, jsx_runtime_1.jsx)(TextMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles, component: react_core_1.ContentVariants.p }, rest, { isPrimary: isPrimary })));
|
|
64
|
+
},
|
|
65
|
+
code: (_a) => {
|
|
66
|
+
var { children } = _a, props = __rest(_a, ["children"]);
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
68
|
+
const { node } = props, codeProps = __rest(props, ["node"]);
|
|
69
|
+
return ((0, jsx_runtime_1.jsx)(CodeBlockMessage_1.default, Object.assign({}, codeProps, codeBlockProps, { isPrimary: isPrimary, shouldRetainStyles: shouldRetainStyles, children: children })));
|
|
70
|
+
},
|
|
71
|
+
h1: (props) => {
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
73
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
74
|
+
return (0, jsx_runtime_1.jsx)(TextMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles, component: react_core_1.ContentVariants.h1 }, rest));
|
|
75
|
+
},
|
|
76
|
+
h2: (props) => {
|
|
77
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
78
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
79
|
+
return (0, jsx_runtime_1.jsx)(TextMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles, component: react_core_1.ContentVariants.h2 }, rest));
|
|
80
|
+
},
|
|
81
|
+
h3: (props) => {
|
|
82
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
83
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
84
|
+
return (0, jsx_runtime_1.jsx)(TextMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles, component: react_core_1.ContentVariants.h3 }, rest));
|
|
85
|
+
},
|
|
86
|
+
h4: (props) => {
|
|
87
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
88
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
89
|
+
return (0, jsx_runtime_1.jsx)(TextMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles, component: react_core_1.ContentVariants.h4 }, rest));
|
|
90
|
+
},
|
|
91
|
+
h5: (props) => {
|
|
92
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
93
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
94
|
+
return (0, jsx_runtime_1.jsx)(TextMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles, component: react_core_1.ContentVariants.h5 }, rest));
|
|
95
|
+
},
|
|
96
|
+
h6: (props) => {
|
|
97
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
98
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
99
|
+
return (0, jsx_runtime_1.jsx)(TextMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles, component: react_core_1.ContentVariants.h6 }, rest));
|
|
100
|
+
},
|
|
101
|
+
blockquote: (props) => {
|
|
102
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
103
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
104
|
+
return ((0, jsx_runtime_1.jsx)(TextMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles, component: react_core_1.ContentVariants.blockquote }, rest)));
|
|
105
|
+
},
|
|
106
|
+
ul: (props) => {
|
|
107
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
108
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
109
|
+
return (0, jsx_runtime_1.jsx)(UnorderedListMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles }, rest));
|
|
110
|
+
},
|
|
111
|
+
ol: (props) => {
|
|
112
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
113
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
114
|
+
return (0, jsx_runtime_1.jsx)(OrderedListMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles }, rest));
|
|
115
|
+
},
|
|
116
|
+
li: (props) => {
|
|
117
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
118
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
119
|
+
return (0, jsx_runtime_1.jsx)(ListItemMessage_1.default, Object.assign({}, rest));
|
|
120
|
+
},
|
|
121
|
+
// table requires node attribute for calculating headers for mobile breakpoint
|
|
122
|
+
table: (props) => ((0, jsx_runtime_1.jsx)(TableMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles }, props, tableProps, { isPrimary: isPrimary }))),
|
|
123
|
+
tbody: (props) => {
|
|
124
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
125
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
126
|
+
return (0, jsx_runtime_1.jsx)(TbodyMessage_1.default, Object.assign({}, rest));
|
|
127
|
+
},
|
|
128
|
+
thead: (props) => {
|
|
129
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
130
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
131
|
+
return (0, jsx_runtime_1.jsx)(TheadMessage_1.default, Object.assign({}, rest));
|
|
132
|
+
},
|
|
133
|
+
tr: (props) => {
|
|
134
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
135
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
136
|
+
return (0, jsx_runtime_1.jsx)(TrMessage_1.default, Object.assign({}, rest));
|
|
137
|
+
},
|
|
138
|
+
td: (props) => {
|
|
139
|
+
// Conflicts with Td type
|
|
140
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
141
|
+
const { node, width } = props, rest = __rest(props, ["node", "width"]);
|
|
142
|
+
return (0, jsx_runtime_1.jsx)(TdMessage_1.default, Object.assign({}, rest));
|
|
143
|
+
},
|
|
144
|
+
th: (props) => {
|
|
145
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
146
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
147
|
+
return (0, jsx_runtime_1.jsx)(ThMessage_1.default, Object.assign({}, rest));
|
|
148
|
+
},
|
|
149
|
+
img: (props) => {
|
|
150
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
151
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
152
|
+
return (0, jsx_runtime_1.jsx)(ImageMessage_1.default, Object.assign({}, rest));
|
|
153
|
+
},
|
|
154
|
+
a: (props) => {
|
|
155
|
+
// node is just the details of the document structure - not needed
|
|
156
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
157
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
158
|
+
return (
|
|
159
|
+
// some a types conflict with ButtonProps, but it's ok because we are using an a tag
|
|
160
|
+
// there are too many to handle manually
|
|
161
|
+
(0, jsx_runtime_1.jsx)(LinkMessage_1.default, Object.assign({ shouldRetainStyles: shouldRetainStyles }, rest, linkProps, { children: props.children })));
|
|
162
|
+
},
|
|
163
|
+
// used for footnotes
|
|
164
|
+
sup: (props) => {
|
|
165
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
166
|
+
const { node } = props, rest = __rest(props, ["node"]);
|
|
167
|
+
return (0, jsx_runtime_1.jsx)(SuperscriptMessage_1.default, Object.assign({}, rest));
|
|
168
|
+
}
|
|
169
|
+
}, remarkPlugins: [[remark_gfm_1.default, Object.assign({}, remarkGfmProps)], ...additionalRemarkPlugins], rehypePlugins: rehypePlugins }, reactMarkdownProps, { remarkRehypeOptions: Object.assign({
|
|
170
|
+
// removes sr-only class from footnote labels applied by default
|
|
171
|
+
footnoteLabelProperties: { className: [''] },
|
|
172
|
+
// omit default ↩ text; backref icon is rendered in LinkMessage
|
|
173
|
+
footnoteBackContent: (_referenceIndex, rereferenceIndex) => {
|
|
174
|
+
if (rereferenceIndex > 1) {
|
|
175
|
+
return [
|
|
176
|
+
{
|
|
177
|
+
type: 'element',
|
|
178
|
+
tagName: 'sup',
|
|
179
|
+
properties: {},
|
|
180
|
+
children: [{ type: 'text', value: String(rereferenceIndex) }]
|
|
181
|
+
}
|
|
182
|
+
];
|
|
183
|
+
}
|
|
184
|
+
return [];
|
|
185
|
+
} }, reactMarkdownProps === null || reactMarkdownProps === void 0 ? void 0 : reactMarkdownProps.remarkRehypeOptions), disallowedElements: disallowedElements, children: content })));
|
|
186
|
+
};
|
|
187
|
+
exports.default = MarkdownRenderer;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import type { FunctionComponent, HTMLProps, MouseEvent as ReactMouseEvent, Ref } from 'react';
|
|
3
|
-
import { Options } from 'react-markdown';
|
|
3
|
+
import type { Options } from 'react-markdown';
|
|
4
4
|
import { AlertProps, AvatarProps, ButtonProps, FormProps, LabelGroupProps } from '@patternfly/react-core';
|
|
5
5
|
import { CodeBlockMessageProps } from './CodeBlockMessage/CodeBlockMessage';
|
|
6
6
|
import { ActionProps } from '../ResponseActions/ResponseActions';
|
|
@@ -9,9 +9,8 @@ import { QuickStart, QuickstartAction } from './QuickStarts/types';
|
|
|
9
9
|
import QuickResponse from './QuickResponse/QuickResponse';
|
|
10
10
|
import { UserFeedbackProps } from './UserFeedback/UserFeedback';
|
|
11
11
|
import { UserFeedbackCompleteProps } from './UserFeedback/UserFeedbackComplete';
|
|
12
|
-
import { TableProps } from '@patternfly/react-table';
|
|
13
|
-
import '
|
|
14
|
-
import { PluggableList } from 'unified';
|
|
12
|
+
import type { TableProps } from '@patternfly/react-table';
|
|
13
|
+
import type { PluggableList } from 'unified';
|
|
15
14
|
import { ToolResponseProps } from '../ToolResponse';
|
|
16
15
|
import { DeepThinkingProps } from '../DeepThinking';
|
|
17
16
|
import { ToolCallProps } from '../ToolCall';
|
|
@@ -29,8 +29,6 @@ const QuickStartTile_1 = __importDefault(require("./QuickStarts/QuickStartTile")
|
|
|
29
29
|
const QuickResponse_1 = __importDefault(require("./QuickResponse/QuickResponse"));
|
|
30
30
|
const UserFeedback_1 = __importDefault(require("./UserFeedback/UserFeedback"));
|
|
31
31
|
const UserFeedbackComplete_1 = __importDefault(require("./UserFeedback/UserFeedbackComplete"));
|
|
32
|
-
// see the full list of styles here: https://highlightjs.org/examples
|
|
33
|
-
require("highlight.js/styles/vs2015.css");
|
|
34
32
|
const ErrorMessage_1 = __importDefault(require("./ErrorMessage/ErrorMessage"));
|
|
35
33
|
const MessageInput_1 = __importDefault(require("./MessageInput"));
|
|
36
34
|
const ToolResponse_1 = __importDefault(require("../ToolResponse"));
|
|
@@ -21,8 +21,11 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
21
21
|
// ============================================================================
|
|
22
22
|
const react_1 = require("react");
|
|
23
23
|
const JumpButton_1 = __importDefault(require("./JumpButton"));
|
|
24
|
+
const MarkdownContent_1 = require("../MarkdownContent/MarkdownContent");
|
|
24
25
|
const react_core_1 = require("@patternfly/react-core");
|
|
25
26
|
const react_styles_1 = require("@patternfly/react-styles");
|
|
27
|
+
// Start fetching the markdown chunk as soon as MessageBox enters the bundle.
|
|
28
|
+
(0, MarkdownContent_1.preloadMarkdownRenderer)();
|
|
26
29
|
const SCROLL_EDGE_DELTA = 100;
|
|
27
30
|
const getScrollMetrics = (element) => {
|
|
28
31
|
const { scrollTop, scrollHeight, clientHeight } = element;
|
|
@@ -48,6 +51,7 @@ const shouldFollowContentGrowth = (metrics, enableSmartScroll, autoScroll, pause
|
|
|
48
51
|
(enableSmartScroll && autoScroll && !pauseAutoScroll && metrics.roundedScrollTop > 0);
|
|
49
52
|
exports.MessageBox = (0, react_1.forwardRef)((_a, ref) => {
|
|
50
53
|
var { announcement, ariaLabel = 'Scrollable message log', children, className, position = 'top', onScrollToTopClick, onScrollToBottomClick, enableSmartScroll = false, jumpButtonTopProps, jumpButtonBottomProps, jumpButtonBottomTooltipProps, jumpButtonTopTooltipProps, hasOuterScrollbar = false } = _a, props = __rest(_a, ["announcement", "ariaLabel", "children", "className", "position", "onScrollToTopClick", "onScrollToBottomClick", "enableSmartScroll", "jumpButtonTopProps", "jumpButtonBottomProps", "jumpButtonBottomTooltipProps", "jumpButtonTopTooltipProps", "hasOuterScrollbar"]);
|
|
54
|
+
const isMarkdownReady = (0, MarkdownContent_1.useIsMarkdownRendererReady)();
|
|
51
55
|
const [atTop, setAtTop] = (0, react_1.useState)(true);
|
|
52
56
|
const [atBottom, setAtBottom] = (0, react_1.useState)(false);
|
|
53
57
|
const [isOverflowing, setIsOverflowing] = (0, react_1.useState)(false);
|
|
@@ -258,6 +262,6 @@ exports.MessageBox = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
258
262
|
onTouchMove,
|
|
259
263
|
onTouchEnd
|
|
260
264
|
};
|
|
261
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(JumpButton_1.default, { position: "top", isHidden: !hasMeasuredScroll || (isOverflowing && atTop), onClick: scrollToTop, jumpButtonProps: jumpButtonTopProps, jumpButtonTooltipProps: jumpButtonTopTooltipProps }), (0, jsx_runtime_1.jsx)(JumpButton_1.default, { position: "bottom", isHidden: !hasMeasuredScroll || (isOverflowing && atBottom), onClick: () => scrollToBottom({ resumeSmartScroll: true }), jumpButtonProps: jumpButtonBottomProps, jumpButtonTooltipProps: jumpButtonBottomTooltipProps }), (0, jsx_runtime_1.jsxs)("div", Object.assign({ role: "region", tabIndex: 0, "aria-label": ariaLabel, className: (0, react_styles_1.css)('pf-chatbot__messagebox', position === 'bottom' && 'pf-chatbot__messagebox--bottom', hasOuterScrollbar && 'pf-chatbot__messagebox--outer-scroll', className), ref: messageBoxRef }, props, (enableSmartScroll ? Object.assign({}, smartScrollHandlers) : {}), { children: [children, (0, jsx_runtime_1.jsx)("div", { className: "pf-chatbot__messagebox-announcement pf-chatbot-m-hidden", "aria-live": "polite", children: announcement })] }))] }));
|
|
265
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(JumpButton_1.default, { position: "top", isHidden: !hasMeasuredScroll || (isOverflowing && atTop), onClick: scrollToTop, jumpButtonProps: jumpButtonTopProps, jumpButtonTooltipProps: jumpButtonTopTooltipProps }), (0, jsx_runtime_1.jsx)(JumpButton_1.default, { position: "bottom", isHidden: !hasMeasuredScroll || (isOverflowing && atBottom), onClick: () => scrollToBottom({ resumeSmartScroll: true }), jumpButtonProps: jumpButtonBottomProps, jumpButtonTooltipProps: jumpButtonBottomTooltipProps }), (0, jsx_runtime_1.jsxs)("div", Object.assign({ role: "region", tabIndex: 0, "aria-label": ariaLabel, className: (0, react_styles_1.css)('pf-chatbot__messagebox', position === 'bottom' && 'pf-chatbot__messagebox--bottom', hasOuterScrollbar && 'pf-chatbot__messagebox--outer-scroll', className), ref: messageBoxRef }, props, (enableSmartScroll ? Object.assign({}, smartScrollHandlers) : {}), { children: [(0, jsx_runtime_1.jsx)(MarkdownContent_1.MarkdownRendererReadyContext.Provider, { value: isMarkdownReady, children: children }), (0, jsx_runtime_1.jsx)("div", { className: "pf-chatbot__messagebox-announcement pf-chatbot-m-hidden", "aria-live": "polite", children: announcement })] }))] }));
|
|
262
266
|
});
|
|
263
267
|
exports.default = exports.MessageBox;
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export { default as AttachmentEdit } from './AttachmentEdit';
|
|
2
|
-
export * from './AttachmentEdit';
|
|
3
1
|
export { default as AttachMenu } from './AttachMenu';
|
|
4
2
|
export * from './AttachMenu';
|
|
5
3
|
export { default as Chatbot } from './Chatbot';
|
|
@@ -22,8 +20,6 @@ export { default as ChatbotToggle } from './ChatbotToggle';
|
|
|
22
20
|
export * from './ChatbotToggle';
|
|
23
21
|
export { default as ChatbotWelcomePrompt } from './ChatbotWelcomePrompt';
|
|
24
22
|
export * from './ChatbotWelcomePrompt';
|
|
25
|
-
export { default as CodeModal } from './CodeModal';
|
|
26
|
-
export * from './CodeModal';
|
|
27
23
|
export { default as Compare } from './Compare';
|
|
28
24
|
export * from './Compare';
|
|
29
25
|
export { default as DeepThinking } from './DeepThinking';
|
|
@@ -50,8 +46,6 @@ export { default as MessageDivider } from './MessageDivider';
|
|
|
50
46
|
export * from './MessageDivider';
|
|
51
47
|
export { default as Onboarding } from './Onboarding';
|
|
52
48
|
export * from './Onboarding';
|
|
53
|
-
export { default as PreviewAttachment } from './PreviewAttachment';
|
|
54
|
-
export * from './PreviewAttachment';
|
|
55
49
|
export { default as ResponseActions } from './ResponseActions';
|
|
56
50
|
export * from './ResponseActions';
|
|
57
51
|
export { default as Settings } from './Settings';
|
|
@@ -68,5 +62,3 @@ export { default as ToolCall } from './ToolCall';
|
|
|
68
62
|
export * from './ToolCall';
|
|
69
63
|
export { default as ToolResponse } from './ToolResponse';
|
|
70
64
|
export * from './ToolResponse';
|
|
71
|
-
export { default as tracking } from './tracking';
|
|
72
|
-
export * from './tracking';
|