@patternfly/chatbot 6.3.0-prerelease.2 → 6.3.0-prerelease.21
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/AttachMenu/AttachMenu.d.ts +2 -2
- package/dist/cjs/AttachMenu/AttachMenu.js +2 -12
- package/dist/cjs/AttachmentEdit/AttachmentEdit.d.ts +14 -2
- package/dist/cjs/AttachmentEdit/AttachmentEdit.js +3 -6
- package/dist/cjs/AttachmentEdit/AttachmentEdit.test.d.ts +1 -1
- package/dist/cjs/AttachmentEdit/AttachmentEdit.test.js +33 -8
- package/dist/cjs/Chatbot/Chatbot.d.ts +3 -2
- package/dist/cjs/Chatbot/Chatbot.js +5 -10
- package/dist/cjs/Chatbot/Chatbot.test.js +13 -9
- package/dist/cjs/ChatbotAlert/ChatbotAlert.d.ts +2 -2
- package/dist/cjs/ChatbotAlert/ChatbotAlert.js +4 -8
- package/dist/cjs/ChatbotAlert/ChatbotAlert.test.js +10 -10
- package/dist/cjs/ChatbotContent/ChatbotContent.d.ts +3 -3
- package/dist/cjs/ChatbotContent/ChatbotContent.js +2 -8
- package/dist/cjs/ChatbotContent/ChatbotContent.test.js +5 -5
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +2 -2
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +7 -11
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.js +31 -33
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +4 -2
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +17 -34
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +58 -62
- package/dist/cjs/ChatbotConversationHistoryNav/EmptyState.d.ts +2 -2
- package/dist/cjs/ChatbotConversationHistoryNav/EmptyState.js +2 -9
- package/dist/cjs/ChatbotConversationHistoryNav/LoadingState.d.ts +2 -2
- package/dist/cjs/ChatbotConversationHistoryNav/LoadingState.js +2 -25
- package/dist/cjs/ChatbotFooter/ChatbotFooter.d.ts +4 -3
- package/dist/cjs/ChatbotFooter/ChatbotFooter.js +3 -16
- package/dist/cjs/ChatbotFooter/ChatbotFooter.test.d.ts +1 -1
- package/dist/cjs/ChatbotFooter/ChatbotFooter.test.js +10 -5
- package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.js +28 -28
- package/dist/cjs/ChatbotFooter/ChatbotFootnote.d.ts +3 -3
- package/dist/cjs/ChatbotFooter/ChatbotFootnote.js +10 -23
- package/dist/cjs/ChatbotHeader/ChatbotHeader.d.ts +3 -3
- package/dist/cjs/ChatbotHeader/ChatbotHeader.js +2 -7
- package/dist/cjs/ChatbotHeader/ChatbotHeader.test.js +5 -5
- package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.d.ts +2 -2
- package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.js +2 -5
- package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.js +5 -5
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +5 -4
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.js +19 -10
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.js +10 -8
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.d.ts +2 -2
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.js +2 -5
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.js +5 -5
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.d.ts +5 -4
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +20 -8
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.js +10 -8
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +7 -3
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +8 -9
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +22 -19
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +9 -3
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +11 -12
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +20 -17
- package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.d.ts +2 -2
- package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.js +2 -5
- package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.js +23 -23
- package/dist/cjs/ChatbotModal/ChatbotModal.d.ts +5 -2
- package/dist/cjs/ChatbotModal/ChatbotModal.js +4 -10
- package/dist/cjs/ChatbotModal/ChatbotModal.test.d.ts +1 -0
- package/dist/cjs/ChatbotModal/ChatbotModal.test.js +16 -0
- package/dist/cjs/ChatbotPopover/ChatbotPopover.d.ts +2 -2
- package/dist/cjs/ChatbotPopover/ChatbotPopover.js +2 -8
- package/dist/cjs/ChatbotToggle/ChatbotToggle.d.ts +1 -2
- package/dist/cjs/ChatbotToggle/ChatbotToggle.js +8 -13
- package/dist/cjs/ChatbotToggle/ChatbotToggle.test.js +25 -25
- package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +3 -2
- package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +7 -21
- package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +18 -14
- package/dist/cjs/CodeModal/CodeModal.d.ts +10 -2
- package/dist/cjs/CodeModal/CodeModal.js +8 -20
- package/dist/cjs/CodeModal/CodeModal.test.d.ts +1 -0
- package/dist/cjs/CodeModal/CodeModal.test.js +34 -0
- package/dist/cjs/Compare/Compare.d.ts +2 -2
- package/dist/cjs/Compare/Compare.js +7 -16
- package/dist/cjs/Compare/Compare.test.js +7 -9
- package/dist/cjs/FileDetails/FileDetails.d.ts +2 -2
- package/dist/cjs/FileDetails/FileDetails.js +2 -15
- package/dist/cjs/FileDetails/FileDetails.test.js +10 -10
- package/dist/cjs/FileDetailsLabel/FileDetailsLabel.d.ts +2 -2
- package/dist/cjs/FileDetailsLabel/FileDetailsLabel.js +2 -5
- package/dist/cjs/FileDetailsLabel/FileDetailsLabel.test.js +21 -21
- package/dist/cjs/FileDropZone/FileDropZone.d.ts +9 -2
- package/dist/cjs/FileDropZone/FileDropZone.js +6 -9
- package/dist/cjs/FileDropZone/FileDropZone.test.js +31 -5
- package/dist/cjs/LoadingMessage/LoadingMessage.d.ts +2 -2
- package/dist/cjs/LoadingMessage/LoadingMessage.js +2 -10
- package/dist/cjs/LoadingMessage/LoadingMessage.test.js +6 -6
- package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.d.ts +20 -3
- package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.js +22 -16
- package/dist/cjs/Message/CodeBlockMessage/ExpandableSectionForSyntaxHighlighter.d.ts +62 -0
- package/dist/cjs/Message/CodeBlockMessage/ExpandableSectionForSyntaxHighlighter.js +136 -0
- package/dist/cjs/Message/ErrorMessage/ErrorMessage.d.ts +1 -2
- package/dist/cjs/Message/ErrorMessage/ErrorMessage.js +5 -8
- package/dist/cjs/Message/ImageMessage/ImageMessage.d.ts +1 -2
- package/dist/cjs/Message/ImageMessage/ImageMessage.js +2 -8
- package/dist/cjs/Message/LinkMessage/LinkMessage.d.ts +1 -2
- package/dist/cjs/Message/LinkMessage/LinkMessage.js +6 -9
- package/dist/cjs/Message/ListMessage/ListItemMessage.d.ts +1 -2
- package/dist/cjs/Message/ListMessage/ListItemMessage.js +2 -8
- package/dist/cjs/Message/ListMessage/OrderedListMessage.d.ts +1 -2
- package/dist/cjs/Message/ListMessage/OrderedListMessage.js +2 -9
- package/dist/cjs/Message/ListMessage/UnorderedListMessage.d.ts +1 -2
- package/dist/cjs/Message/ListMessage/UnorderedListMessage.js +2 -9
- package/dist/cjs/Message/Message.d.ts +26 -8
- package/dist/cjs/Message/Message.js +50 -72
- package/dist/cjs/Message/Message.test.js +123 -81
- package/dist/cjs/Message/MessageInput.d.ts +2 -2
- package/dist/cjs/Message/MessageInput.js +5 -14
- package/dist/cjs/Message/MessageLoading.d.ts +1 -2
- package/dist/cjs/Message/MessageLoading.js +3 -8
- package/dist/cjs/Message/Plugins/rehypeMoveImagesOutOfParagraphs.d.ts +2 -0
- package/dist/cjs/Message/Plugins/rehypeMoveImagesOutOfParagraphs.js +47 -0
- package/dist/cjs/Message/QuickResponse/QuickResponse.d.ts +4 -2
- package/dist/cjs/Message/QuickResponse/QuickResponse.js +8 -10
- package/dist/cjs/Message/QuickStarts/FallbackImg.d.ts +2 -2
- package/dist/cjs/Message/QuickStarts/FallbackImg.js +5 -27
- package/dist/cjs/Message/QuickStarts/QuickStartTile.d.ts +4 -2
- package/dist/cjs/Message/QuickStarts/QuickStartTile.js +8 -44
- package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.d.ts +2 -2
- package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.js +9 -38
- package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.js +16 -16
- package/dist/cjs/Message/QuickStarts/QuickStartTileHeader.d.ts +2 -2
- package/dist/cjs/Message/QuickStarts/QuickStartTileHeader.js +2 -26
- package/dist/cjs/Message/QuickStarts/types.d.ts +4 -3
- package/dist/cjs/Message/TableMessage/TableMessage.d.ts +1 -2
- package/dist/cjs/Message/TableMessage/TableMessage.js +8 -10
- package/dist/cjs/Message/TableMessage/TbodyMessage.d.ts +2 -3
- package/dist/cjs/Message/TableMessage/TbodyMessage.js +7 -9
- package/dist/cjs/Message/TableMessage/TdMessage.d.ts +1 -2
- package/dist/cjs/Message/TableMessage/TdMessage.js +2 -8
- package/dist/cjs/Message/TableMessage/ThMessage.d.ts +1 -2
- package/dist/cjs/Message/TableMessage/ThMessage.js +2 -8
- package/dist/cjs/Message/TableMessage/TheadMessage.d.ts +1 -2
- package/dist/cjs/Message/TableMessage/TheadMessage.js +2 -8
- package/dist/cjs/Message/TableMessage/TrMessage.d.ts +2 -3
- package/dist/cjs/Message/TableMessage/TrMessage.js +8 -10
- package/dist/cjs/Message/TextMessage/TextMessage.d.ts +1 -2
- package/dist/cjs/Message/TextMessage/TextMessage.js +2 -9
- package/dist/cjs/Message/UserFeedback/CloseButton.d.ts +2 -2
- package/dist/cjs/Message/UserFeedback/CloseButton.js +2 -8
- package/dist/cjs/Message/UserFeedback/UserFeedback.d.ts +2 -2
- package/dist/cjs/Message/UserFeedback/UserFeedback.js +13 -24
- package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +55 -51
- package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.d.ts +2 -2
- package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +21 -45
- package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +83 -89
- package/dist/cjs/MessageBar/AttachButton.d.ts +9 -2
- package/dist/cjs/MessageBar/AttachButton.js +9 -17
- package/dist/cjs/MessageBar/AttachButton.test.js +50 -22
- package/dist/cjs/MessageBar/MessageBar.d.ts +16 -3
- package/dist/cjs/MessageBar/MessageBar.js +36 -37
- package/dist/cjs/MessageBar/MessageBar.test.js +122 -108
- package/dist/cjs/MessageBar/MicrophoneButton.d.ts +3 -2
- package/dist/cjs/MessageBar/MicrophoneButton.js +8 -15
- package/dist/cjs/MessageBar/SendButton.d.ts +4 -2
- package/dist/cjs/MessageBar/SendButton.js +4 -12
- package/dist/cjs/MessageBar/SendButton.test.js +18 -14
- package/dist/cjs/MessageBar/StopButton.d.ts +4 -2
- package/dist/cjs/MessageBar/StopButton.js +4 -13
- package/dist/cjs/MessageBar/StopButton.test.js +18 -14
- package/dist/cjs/MessageBox/JumpButton.d.ts +2 -2
- package/dist/cjs/MessageBox/JumpButton.js +2 -10
- package/dist/cjs/MessageBox/JumpButton.test.js +10 -10
- package/dist/cjs/MessageBox/MessageBox.d.ts +21 -5
- package/dist/cjs/MessageBox/MessageBox.js +181 -44
- package/dist/cjs/MessageBox/MessageBox.test.js +219 -6
- package/dist/cjs/PreviewAttachment/PreviewAttachment.d.ts +14 -2
- package/dist/cjs/PreviewAttachment/PreviewAttachment.js +3 -6
- package/dist/cjs/PreviewAttachment/PreviewAttachment.test.d.ts +1 -1
- package/dist/cjs/PreviewAttachment/PreviewAttachment.test.js +34 -12
- package/dist/cjs/ResponseActions/ResponseActionButton.d.ts +5 -5
- package/dist/cjs/ResponseActions/ResponseActionButton.js +5 -8
- package/dist/cjs/ResponseActions/ResponseActionButton.test.js +19 -19
- package/dist/cjs/ResponseActions/ResponseActions.d.ts +7 -3
- package/dist/cjs/ResponseActions/ResponseActions.js +12 -16
- package/dist/cjs/ResponseActions/ResponseActions.test.js +60 -41
- package/dist/cjs/Settings/SettingsForm.d.ts +4 -2
- package/dist/cjs/Settings/SettingsForm.js +3 -9
- package/dist/cjs/Settings/SettingsForm.test.d.ts +1 -1
- package/dist/cjs/Settings/SettingsForm.test.js +18 -9
- package/dist/cjs/SourceDetailsMenuItem/SourceDetailsMenuItem.d.ts +2 -2
- package/dist/cjs/SourceDetailsMenuItem/SourceDetailsMenuItem.js +2 -11
- package/dist/cjs/SourcesCard/SourcesCard.d.ts +2 -2
- package/dist/cjs/SourcesCard/SourcesCard.js +17 -43
- package/dist/cjs/SourcesCard/SourcesCard.test.js +60 -60
- package/dist/cjs/TermsOfUse/TermsOfUse.d.ts +5 -3
- package/dist/cjs/TermsOfUse/TermsOfUse.js +5 -17
- package/dist/cjs/TermsOfUse/TermsOfUse.test.js +31 -33
- package/dist/css/main.css +228 -15
- package/dist/css/main.css.map +1 -1
- package/dist/esm/AttachMenu/AttachMenu.d.ts +2 -2
- package/dist/esm/AttachMenu/AttachMenu.js +2 -9
- package/dist/esm/AttachmentEdit/AttachmentEdit.d.ts +14 -2
- package/dist/esm/AttachmentEdit/AttachmentEdit.js +3 -6
- package/dist/esm/AttachmentEdit/AttachmentEdit.test.d.ts +1 -1
- package/dist/esm/AttachmentEdit/AttachmentEdit.test.js +30 -5
- package/dist/esm/Chatbot/Chatbot.d.ts +3 -2
- package/dist/esm/Chatbot/Chatbot.js +5 -7
- package/dist/esm/Chatbot/Chatbot.test.js +9 -5
- package/dist/esm/ChatbotAlert/ChatbotAlert.d.ts +2 -2
- package/dist/esm/ChatbotAlert/ChatbotAlert.js +4 -5
- package/dist/esm/ChatbotAlert/ChatbotAlert.test.js +4 -4
- package/dist/esm/ChatbotContent/ChatbotContent.d.ts +3 -3
- package/dist/esm/ChatbotContent/ChatbotContent.js +2 -5
- package/dist/esm/ChatbotContent/ChatbotContent.test.js +3 -3
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +2 -2
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +7 -11
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.js +8 -10
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +4 -2
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +17 -34
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +29 -33
- package/dist/esm/ChatbotConversationHistoryNav/EmptyState.d.ts +2 -2
- package/dist/esm/ChatbotConversationHistoryNav/EmptyState.js +2 -6
- package/dist/esm/ChatbotConversationHistoryNav/LoadingState.d.ts +2 -2
- package/dist/esm/ChatbotConversationHistoryNav/LoadingState.js +2 -22
- package/dist/esm/ChatbotFooter/ChatbotFooter.d.ts +4 -3
- package/dist/esm/ChatbotFooter/ChatbotFooter.js +3 -13
- package/dist/esm/ChatbotFooter/ChatbotFooter.test.d.ts +1 -1
- package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +8 -3
- package/dist/esm/ChatbotFooter/ChatbotFooternote.test.js +5 -5
- package/dist/esm/ChatbotFooter/ChatbotFootnote.d.ts +3 -3
- package/dist/esm/ChatbotFooter/ChatbotFootnote.js +10 -23
- package/dist/esm/ChatbotHeader/ChatbotHeader.d.ts +3 -3
- package/dist/esm/ChatbotHeader/ChatbotHeader.js +2 -4
- package/dist/esm/ChatbotHeader/ChatbotHeader.test.js +3 -3
- package/dist/esm/ChatbotHeader/ChatbotHeaderActions.d.ts +2 -2
- package/dist/esm/ChatbotHeader/ChatbotHeaderActions.js +2 -2
- package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.js +3 -3
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +5 -4
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.js +20 -8
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.js +8 -3
- package/dist/esm/ChatbotHeader/ChatbotHeaderMain.d.ts +2 -2
- package/dist/esm/ChatbotHeader/ChatbotHeaderMain.js +2 -2
- package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.js +3 -3
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.d.ts +5 -4
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +20 -8
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +8 -3
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +7 -3
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +8 -9
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +13 -7
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +9 -3
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +11 -9
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +13 -7
- package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.d.ts +2 -2
- package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.js +2 -2
- package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.js +12 -12
- package/dist/esm/ChatbotModal/ChatbotModal.d.ts +5 -2
- package/dist/esm/ChatbotModal/ChatbotModal.js +4 -7
- package/dist/esm/ChatbotModal/ChatbotModal.test.d.ts +1 -0
- package/dist/esm/ChatbotModal/ChatbotModal.test.js +11 -0
- package/dist/esm/ChatbotPopover/ChatbotPopover.d.ts +2 -2
- package/dist/esm/ChatbotPopover/ChatbotPopover.js +2 -5
- package/dist/esm/ChatbotToggle/ChatbotToggle.d.ts +1 -2
- package/dist/esm/ChatbotToggle/ChatbotToggle.js +8 -13
- package/dist/esm/ChatbotToggle/ChatbotToggle.test.js +8 -8
- package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +3 -2
- package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +7 -18
- package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +11 -7
- package/dist/esm/CodeModal/CodeModal.d.ts +10 -2
- package/dist/esm/CodeModal/CodeModal.js +8 -20
- package/dist/esm/CodeModal/CodeModal.test.d.ts +1 -0
- package/dist/esm/CodeModal/CodeModal.test.js +29 -0
- package/dist/esm/Compare/Compare.d.ts +2 -2
- package/dist/esm/Compare/Compare.js +7 -13
- package/dist/esm/Compare/Compare.test.js +4 -6
- package/dist/esm/FileDetails/FileDetails.d.ts +2 -2
- package/dist/esm/FileDetails/FileDetails.js +2 -15
- package/dist/esm/FileDetails/FileDetails.test.js +4 -4
- package/dist/esm/FileDetailsLabel/FileDetailsLabel.d.ts +2 -2
- package/dist/esm/FileDetailsLabel/FileDetailsLabel.js +2 -5
- package/dist/esm/FileDetailsLabel/FileDetailsLabel.test.js +9 -9
- package/dist/esm/FileDropZone/FileDropZone.d.ts +9 -2
- package/dist/esm/FileDropZone/FileDropZone.js +6 -6
- package/dist/esm/FileDropZone/FileDropZone.test.js +29 -3
- package/dist/esm/LoadingMessage/LoadingMessage.d.ts +2 -2
- package/dist/esm/LoadingMessage/LoadingMessage.js +2 -10
- package/dist/esm/LoadingMessage/LoadingMessage.test.js +3 -3
- package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.d.ts +20 -3
- package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.js +23 -17
- package/dist/esm/Message/CodeBlockMessage/ExpandableSectionForSyntaxHighlighter.d.ts +62 -0
- package/dist/esm/Message/CodeBlockMessage/ExpandableSectionForSyntaxHighlighter.js +130 -0
- package/dist/esm/Message/ErrorMessage/ErrorMessage.d.ts +1 -2
- package/dist/esm/Message/ErrorMessage/ErrorMessage.js +5 -5
- package/dist/esm/Message/ImageMessage/ImageMessage.d.ts +1 -2
- package/dist/esm/Message/ImageMessage/ImageMessage.js +2 -5
- package/dist/esm/Message/LinkMessage/LinkMessage.d.ts +1 -2
- package/dist/esm/Message/LinkMessage/LinkMessage.js +6 -6
- package/dist/esm/Message/ListMessage/ListItemMessage.d.ts +1 -2
- package/dist/esm/Message/ListMessage/ListItemMessage.js +2 -5
- package/dist/esm/Message/ListMessage/OrderedListMessage.d.ts +1 -2
- package/dist/esm/Message/ListMessage/OrderedListMessage.js +2 -6
- package/dist/esm/Message/ListMessage/UnorderedListMessage.d.ts +1 -2
- package/dist/esm/Message/ListMessage/UnorderedListMessage.js +2 -6
- package/dist/esm/Message/Message.d.ts +26 -8
- package/dist/esm/Message/Message.js +50 -72
- package/dist/esm/Message/Message.test.js +123 -81
- package/dist/esm/Message/MessageInput.d.ts +2 -2
- package/dist/esm/Message/MessageInput.js +5 -11
- package/dist/esm/Message/MessageLoading.d.ts +1 -2
- package/dist/esm/Message/MessageLoading.js +2 -4
- package/dist/esm/Message/Plugins/rehypeMoveImagesOutOfParagraphs.d.ts +2 -0
- package/dist/esm/Message/Plugins/rehypeMoveImagesOutOfParagraphs.js +43 -0
- package/dist/esm/Message/QuickResponse/QuickResponse.d.ts +4 -2
- package/dist/esm/Message/QuickResponse/QuickResponse.js +8 -7
- package/dist/esm/Message/QuickStarts/FallbackImg.d.ts +2 -2
- package/dist/esm/Message/QuickStarts/FallbackImg.js +5 -4
- package/dist/esm/Message/QuickStarts/QuickStartTile.d.ts +4 -2
- package/dist/esm/Message/QuickStarts/QuickStartTile.js +8 -21
- package/dist/esm/Message/QuickStarts/QuickStartTileDescription.d.ts +2 -2
- package/dist/esm/Message/QuickStarts/QuickStartTileDescription.js +9 -15
- package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.js +5 -5
- package/dist/esm/Message/QuickStarts/QuickStartTileHeader.d.ts +2 -2
- package/dist/esm/Message/QuickStarts/QuickStartTileHeader.js +2 -3
- package/dist/esm/Message/QuickStarts/types.d.ts +4 -3
- package/dist/esm/Message/TableMessage/TableMessage.d.ts +1 -2
- package/dist/esm/Message/TableMessage/TableMessage.js +8 -7
- package/dist/esm/Message/TableMessage/TbodyMessage.d.ts +2 -3
- package/dist/esm/Message/TableMessage/TbodyMessage.js +7 -6
- package/dist/esm/Message/TableMessage/TdMessage.d.ts +1 -2
- package/dist/esm/Message/TableMessage/TdMessage.js +2 -5
- package/dist/esm/Message/TableMessage/ThMessage.d.ts +1 -2
- package/dist/esm/Message/TableMessage/ThMessage.js +2 -5
- package/dist/esm/Message/TableMessage/TheadMessage.d.ts +1 -2
- package/dist/esm/Message/TableMessage/TheadMessage.js +2 -5
- package/dist/esm/Message/TableMessage/TrMessage.d.ts +2 -3
- package/dist/esm/Message/TableMessage/TrMessage.js +8 -7
- package/dist/esm/Message/TextMessage/TextMessage.d.ts +1 -2
- package/dist/esm/Message/TextMessage/TextMessage.js +2 -6
- package/dist/esm/Message/UserFeedback/CloseButton.d.ts +2 -2
- package/dist/esm/Message/UserFeedback/CloseButton.js +2 -5
- package/dist/esm/Message/UserFeedback/UserFeedback.d.ts +2 -2
- package/dist/esm/Message/UserFeedback/UserFeedback.js +13 -24
- package/dist/esm/Message/UserFeedback/UserFeedback.test.js +24 -20
- package/dist/esm/Message/UserFeedback/UserFeedbackComplete.d.ts +2 -2
- package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +21 -45
- package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +29 -35
- package/dist/esm/MessageBar/AttachButton.d.ts +9 -2
- package/dist/esm/MessageBar/AttachButton.js +9 -14
- package/dist/esm/MessageBar/AttachButton.test.js +44 -16
- package/dist/esm/MessageBar/MessageBar.d.ts +16 -3
- package/dist/esm/MessageBar/MessageBar.js +34 -35
- package/dist/esm/MessageBar/MessageBar.test.js +87 -73
- package/dist/esm/MessageBar/MicrophoneButton.d.ts +3 -2
- package/dist/esm/MessageBar/MicrophoneButton.js +8 -12
- package/dist/esm/MessageBar/SendButton.d.ts +4 -2
- package/dist/esm/MessageBar/SendButton.js +4 -9
- package/dist/esm/MessageBar/SendButton.test.js +13 -9
- package/dist/esm/MessageBar/StopButton.d.ts +4 -2
- package/dist/esm/MessageBar/StopButton.js +4 -10
- package/dist/esm/MessageBar/StopButton.test.js +13 -9
- package/dist/esm/MessageBox/JumpButton.d.ts +2 -2
- package/dist/esm/MessageBox/JumpButton.js +2 -7
- package/dist/esm/MessageBox/JumpButton.test.js +9 -9
- package/dist/esm/MessageBox/MessageBox.d.ts +21 -5
- package/dist/esm/MessageBox/MessageBox.js +181 -44
- package/dist/esm/MessageBox/MessageBox.test.js +220 -7
- package/dist/esm/PreviewAttachment/PreviewAttachment.d.ts +14 -2
- package/dist/esm/PreviewAttachment/PreviewAttachment.js +3 -6
- package/dist/esm/PreviewAttachment/PreviewAttachment.test.d.ts +1 -1
- package/dist/esm/PreviewAttachment/PreviewAttachment.test.js +30 -5
- package/dist/esm/ResponseActions/ResponseActionButton.d.ts +5 -5
- package/dist/esm/ResponseActions/ResponseActionButton.js +5 -5
- package/dist/esm/ResponseActions/ResponseActionButton.test.js +7 -7
- package/dist/esm/ResponseActions/ResponseActions.d.ts +7 -3
- package/dist/esm/ResponseActions/ResponseActions.js +13 -17
- package/dist/esm/ResponseActions/ResponseActions.test.js +35 -16
- package/dist/esm/Settings/SettingsForm.d.ts +4 -2
- package/dist/esm/Settings/SettingsForm.js +3 -6
- package/dist/esm/Settings/SettingsForm.test.d.ts +1 -1
- package/dist/esm/Settings/SettingsForm.test.js +16 -4
- package/dist/esm/SourceDetailsMenuItem/SourceDetailsMenuItem.d.ts +2 -2
- package/dist/esm/SourceDetailsMenuItem/SourceDetailsMenuItem.js +2 -8
- package/dist/esm/SourcesCard/SourcesCard.d.ts +2 -2
- package/dist/esm/SourcesCard/SourcesCard.js +17 -40
- package/dist/esm/SourcesCard/SourcesCard.test.js +19 -19
- package/dist/esm/TermsOfUse/TermsOfUse.d.ts +5 -3
- package/dist/esm/TermsOfUse/TermsOfUse.js +5 -17
- package/dist/esm/TermsOfUse/TermsOfUse.test.js +10 -12
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -6
- package/patternfly-docs/content/extensions/chatbot/design-guidelines.md +10 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Customizing Messages/Customizing Messages.md +51 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachMenu.tsx +9 -9
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentEdit.tsx +14 -5
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentError.tsx +2 -2
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +19 -20
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDetails.tsx +2 -2
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDetailsLabel.tsx +9 -9
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDropZone.tsx +4 -4
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithAttachment.tsx +7 -7
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithCustomResponseActions.tsx +2 -12
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +37 -4
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedbackTimeout.tsx +3 -3
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +26 -2
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickStart.tsx +13 -2
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithResponseActions.tsx +3 -3
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithSources.tsx +24 -3
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +1 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/PreviewAttachment.tsx +14 -5
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +20 -14
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessageWithExtraContent.tsx +4 -4
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotContainer.tsx +59 -36
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFooter.tsx +2 -2
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFootnote.tsx +2 -2
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderBasic.tsx +10 -13
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +18 -9
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerNavigation.tsx +5 -5
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerResizable.tsx +5 -5
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithActions.tsx +14 -5
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithSelection.tsx +17 -8
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderTitle.tsx +59 -34
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBar.tsx +2 -2
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarAttach.tsx +9 -9
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarDisabled.tsx +3 -3
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarLanguage.tsx +2 -2
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarStop.tsx +2 -2
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotModal.tsx +74 -37
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotToggleBasic.tsx +3 -3
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomeInteraction.tsx +8 -8
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomePrompt.tsx +3 -3
- package/patternfly-docs/content/extensions/chatbot/examples/UI/CompactSettings.tsx +282 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/CustomClosedIcon.tsx +3 -3
- package/patternfly-docs/content/extensions/chatbot/examples/UI/Settings.tsx +16 -23
- package/patternfly-docs/content/extensions/chatbot/examples/UI/SkipToContent.tsx +5 -5
- package/patternfly-docs/content/extensions/chatbot/examples/UI/SquareChatbotToggle.tsx +3 -3
- package/patternfly-docs/content/extensions/chatbot/examples/UI/TermsOfUse.tsx +91 -48
- package/patternfly-docs/content/extensions/chatbot/examples/UI/TermsOfUseCompact.tsx +179 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +17 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/AttachmentDemos.md +37 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +9 -1
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.tsx +19 -25
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +23 -14
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +14 -14
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotCompact.tsx +475 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotInDrawer.tsx +17 -22
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotScrolling.tsx +536 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +17 -22
- package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedComparisonChatbot.tsx +13 -13
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Feedback.tsx +7 -7
- package/patternfly-docs/content/extensions/chatbot/img/quick-response-confirmation.svg +67 -0
- package/src/AttachMenu/AttachMenu.tsx +2 -2
- package/src/AttachmentEdit/AttachmentEdit.test.tsx +46 -2
- package/src/AttachmentEdit/AttachmentEdit.tsx +29 -7
- package/src/Chatbot/Chatbot.scss +7 -0
- package/src/Chatbot/Chatbot.test.tsx +9 -1
- package/src/Chatbot/Chatbot.tsx +9 -4
- package/src/ChatbotAlert/ChatbotAlert.test.tsx +0 -1
- package/src/ChatbotAlert/ChatbotAlert.tsx +2 -2
- package/src/ChatbotContent/ChatbotContent.test.tsx +0 -1
- package/src/ChatbotContent/ChatbotContent.tsx +3 -3
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.tsx +0 -1
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx +6 -4
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +38 -3
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +21 -3
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +17 -8
- package/src/ChatbotConversationHistoryNav/EmptyState.tsx +2 -2
- package/src/ChatbotConversationHistoryNav/LoadingState.tsx +2 -2
- package/src/ChatbotFooter/ChatbotFooter.scss +5 -0
- package/src/ChatbotFooter/ChatbotFooter.test.tsx +10 -1
- package/src/ChatbotFooter/ChatbotFooter.tsx +6 -4
- package/src/ChatbotFooter/ChatbotFooternote.test.tsx +0 -1
- package/src/ChatbotFooter/ChatbotFootnote.tsx +6 -4
- package/src/ChatbotHeader/ChatbotHeader.scss +25 -0
- package/src/ChatbotHeader/ChatbotHeader.test.tsx +0 -1
- package/src/ChatbotHeader/ChatbotHeader.tsx +4 -7
- package/src/ChatbotHeader/ChatbotHeaderActions.test.tsx +0 -1
- package/src/ChatbotHeader/ChatbotHeaderActions.tsx +2 -2
- package/src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx +6 -1
- package/src/ChatbotHeader/ChatbotHeaderCloseButton.tsx +17 -10
- package/src/ChatbotHeader/ChatbotHeaderMain.test.tsx +0 -1
- package/src/ChatbotHeader/ChatbotHeaderMain.tsx +5 -3
- package/src/ChatbotHeader/ChatbotHeaderMenu.test.tsx +8 -1
- package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +17 -12
- package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx +15 -1
- package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +17 -7
- package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx +19 -1
- package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +30 -6
- package/src/ChatbotHeader/ChatbotHeaderTitle.test.tsx +0 -1
- package/src/ChatbotHeader/ChatbotHeaderTitle.tsx +2 -2
- package/src/ChatbotModal/ChatbotModal.scss +15 -4
- package/src/ChatbotModal/ChatbotModal.test.tsx +58 -0
- package/src/ChatbotModal/ChatbotModal.tsx +7 -3
- package/src/ChatbotPopover/ChatbotPopover.scss +9 -5
- package/src/ChatbotPopover/ChatbotPopover.tsx +2 -2
- package/src/ChatbotToggle/ChatbotToggle.test.tsx +0 -1
- package/src/ChatbotToggle/ChatbotToggle.tsx +5 -3
- package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss +9 -1
- package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx +13 -1
- package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.tsx +15 -4
- package/src/ChatbotWelcomePrompt/__snapshots__/ChatbotWelcomePrompt.test.tsx.snap +1 -1
- package/src/CodeModal/CodeModal.scss +11 -3
- package/src/CodeModal/CodeModal.test.tsx +51 -0
- package/src/CodeModal/CodeModal.tsx +24 -10
- package/src/Compare/Compare.test.tsx +0 -1
- package/src/Compare/Compare.tsx +7 -6
- package/src/FileDetails/FileDetails.test.tsx +0 -1
- package/src/FileDetails/FileDetails.tsx +2 -2
- package/src/FileDetails/__snapshots__/FileDetails.test.tsx.snap +1 -1
- package/src/FileDetailsLabel/FileDetailsLabel.test.tsx +0 -1
- package/src/FileDetailsLabel/FileDetailsLabel.tsx +1 -1
- package/src/FileDetailsLabel/__snapshots__/FileDetailsLabel.test.tsx.snap +1 -1
- package/src/FileDropZone/FileDropZone.test.tsx +29 -1
- package/src/FileDropZone/FileDropZone.tsx +13 -3
- package/src/LoadingMessage/LoadingMessage.test.tsx +0 -1
- package/src/LoadingMessage/LoadingMessage.tsx +2 -2
- package/src/Message/CodeBlockMessage/CodeBlockMessage.scss +7 -0
- package/src/Message/CodeBlockMessage/CodeBlockMessage.tsx +105 -18
- package/src/Message/CodeBlockMessage/ExpandableSectionForSyntaxHighlighter.tsx +220 -0
- package/src/Message/ErrorMessage/ErrorMessage.tsx +0 -1
- package/src/Message/ImageMessage/ImageMessage.tsx +1 -2
- package/src/Message/LinkMessage/LinkMessage.tsx +0 -1
- package/src/Message/ListMessage/ListItemMessage.tsx +0 -1
- package/src/Message/ListMessage/OrderedListMessage.tsx +0 -1
- package/src/Message/ListMessage/UnorderedListMessage.tsx +0 -1
- package/src/Message/Message.scss +27 -0
- package/src/Message/Message.test.tsx +70 -6
- package/src/Message/Message.tsx +41 -17
- package/src/Message/MessageInput.tsx +5 -5
- package/src/Message/MessageLoading.tsx +0 -2
- package/src/Message/Plugins/rehypeMoveImagesOutOfParagraphs.ts +53 -0
- package/src/Message/QuickResponse/QuickResponse.tsx +9 -4
- package/src/Message/QuickStarts/FallbackImg.tsx +4 -3
- package/src/Message/QuickStarts/QuickStartTile.tsx +8 -4
- package/src/Message/QuickStarts/QuickStartTileDescription.test.tsx +0 -1
- package/src/Message/QuickStarts/QuickStartTileDescription.tsx +4 -3
- package/src/Message/QuickStarts/QuickStartTileHeader.tsx +2 -2
- package/src/Message/QuickStarts/types.ts +4 -3
- package/src/Message/TableMessage/TableMessage.tsx +4 -4
- package/src/Message/TableMessage/TbodyMessage.tsx +3 -3
- package/src/Message/TableMessage/TdMessage.tsx +1 -2
- package/src/Message/TableMessage/ThMessage.tsx +1 -2
- package/src/Message/TableMessage/TheadMessage.tsx +3 -2
- package/src/Message/TableMessage/TrMessage.tsx +4 -4
- package/src/Message/TextMessage/TextMessage.scss +25 -0
- package/src/Message/TextMessage/TextMessage.tsx +1 -2
- package/src/Message/UserFeedback/CloseButton.tsx +2 -2
- package/src/Message/UserFeedback/UserFeedback.scss +24 -3
- package/src/Message/UserFeedback/UserFeedback.test.tsx +13 -1
- package/src/Message/UserFeedback/UserFeedback.tsx +12 -8
- package/src/Message/UserFeedback/UserFeedbackComplete.test.tsx +4 -1
- package/src/Message/UserFeedback/UserFeedbackComplete.tsx +26 -16
- package/src/MessageBar/AttachButton.scss +10 -0
- package/src/MessageBar/AttachButton.test.tsx +56 -8
- package/src/MessageBar/AttachButton.tsx +21 -8
- package/src/MessageBar/MessageBar.scss +17 -0
- package/src/MessageBar/MessageBar.test.tsx +81 -30
- package/src/MessageBar/MessageBar.tsx +60 -25
- package/src/MessageBar/MicrophoneButton.scss +10 -0
- package/src/MessageBar/MicrophoneButton.tsx +15 -9
- package/src/MessageBar/SendButton.scss +10 -0
- package/src/MessageBar/SendButton.test.tsx +10 -7
- package/src/MessageBar/SendButton.tsx +9 -5
- package/src/MessageBar/StopButton.scss +10 -0
- package/src/MessageBar/StopButton.test.tsx +10 -7
- package/src/MessageBar/StopButton.tsx +9 -5
- package/src/MessageBox/JumpButton.test.tsx +4 -5
- package/src/MessageBox/JumpButton.tsx +3 -3
- package/src/MessageBox/MessageBox.scss +6 -0
- package/src/MessageBox/MessageBox.test.tsx +295 -5
- package/src/MessageBox/MessageBox.tsx +301 -82
- package/src/PreviewAttachment/PreviewAttachment.test.tsx +44 -2
- package/src/PreviewAttachment/PreviewAttachment.tsx +29 -7
- package/src/ResponseActions/ResponseActionButton.test.tsx +0 -1
- package/src/ResponseActions/ResponseActionButton.tsx +6 -5
- package/src/ResponseActions/ResponseActions.test.tsx +23 -3
- package/src/ResponseActions/ResponseActions.tsx +40 -10
- package/src/Settings/Settings.scss +11 -0
- package/src/Settings/SettingsForm.test.tsx +17 -1
- package/src/Settings/SettingsForm.tsx +8 -3
- package/src/SourceDetailsMenuItem/SourceDetailsMenuItem.tsx +2 -2
- package/src/SourcesCard/SourcesCard.scss +8 -0
- package/src/SourcesCard/SourcesCard.test.tsx +0 -1
- package/src/SourcesCard/SourcesCard.tsx +9 -8
- package/src/TermsOfUse/TermsOfUse.scss +20 -0
- package/src/TermsOfUse/TermsOfUse.test.tsx +0 -1
- package/src/TermsOfUse/TermsOfUse.tsx +15 -9
- package/tsconfig.cjs.json +0 -1
- package/tsconfig.json +3 -3
@@ -7,7 +7,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
8
|
});
|
9
9
|
};
|
10
|
-
import
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
11
|
+
import { Fragment } from 'react';
|
11
12
|
import { render, screen } from '@testing-library/react';
|
12
13
|
import '@testing-library/jest-dom';
|
13
14
|
import Message from './Message';
|
@@ -135,12 +136,11 @@ const EMPTY_TABLE = `
|
|
135
136
|
|
136
137
|
`;
|
137
138
|
const IMAGE = ``;
|
139
|
+
const INLINE_IMAGE = `inline text `;
|
138
140
|
const ERROR = {
|
139
141
|
title: 'Could not load chat',
|
140
142
|
children: 'Wait a few minutes and check your network settings. If the issue persists: ',
|
141
|
-
actionLinks: (
|
142
|
-
React.createElement(AlertActionLink, { component: "a", href: "#" }, "Start a new chat"),
|
143
|
-
React.createElement(AlertActionLink, { component: "a", href: "#" }, "Contact support")))
|
143
|
+
actionLinks: (_jsxs(Fragment, { children: [_jsx(AlertActionLink, { component: "a", href: "#", children: "Start a new chat" }), _jsx(AlertActionLink, { component: "a", href: "#", children: "Contact support" })] }))
|
144
144
|
};
|
145
145
|
const checkListItemsRendered = () => {
|
146
146
|
const items = ['Item 1', 'Item 2', 'Item 3'];
|
@@ -155,7 +155,7 @@ describe('Message', () => {
|
|
155
155
|
jest.clearAllMocks();
|
156
156
|
});
|
157
157
|
it('should render user messages correctly', () => {
|
158
|
-
render(
|
158
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Hi" }));
|
159
159
|
expect(screen.getByText('User')).toBeTruthy();
|
160
160
|
expect(screen.getByText('Hi')).toBeTruthy();
|
161
161
|
const date = new Date();
|
@@ -169,7 +169,7 @@ describe('Message', () => {
|
|
169
169
|
expect(screen.getByRole('img')).toHaveAttribute('src', './img');
|
170
170
|
});
|
171
171
|
it('should render bot messages correctly', () => {
|
172
|
-
render(
|
172
|
+
render(_jsx(Message, { avatar: "./img", role: "bot", name: "Bot", content: "Hi" }));
|
173
173
|
expect(screen.getByText('Bot')).toBeTruthy();
|
174
174
|
expect(screen.getByText('AI')).toBeTruthy();
|
175
175
|
expect(screen.getByText('Hi')).toBeTruthy();
|
@@ -182,18 +182,18 @@ describe('Message', () => {
|
|
182
182
|
})).toBeInTheDocument();
|
183
183
|
});
|
184
184
|
it('should render avatar correctly', () => {
|
185
|
-
render(
|
185
|
+
render(_jsx(Message, { avatar: "./testImg", role: "bot", name: "Bot", content: "Hi" }));
|
186
186
|
expect(screen.getByRole('img')).toHaveAttribute('src', './testImg');
|
187
187
|
});
|
188
188
|
it('should render botWord correctly', () => {
|
189
|
-
render(
|
189
|
+
render(_jsx(Message, { avatar: "./img", role: "bot", name: "Bot", content: "Hi", botWord: "\u4EBA\u5DE5\u77E5\u80FD" }));
|
190
190
|
expect(screen.getByText('Bot')).toBeTruthy();
|
191
191
|
expect(screen.getByText('人工知能')).toBeTruthy();
|
192
192
|
expect(screen.queryByText('AI')).toBeFalsy();
|
193
193
|
expect(screen.getByText('Hi')).toBeTruthy();
|
194
194
|
});
|
195
195
|
it('should render timestamps', () => {
|
196
|
-
render(
|
196
|
+
render(_jsx(Message, { avatar: "./img", role: "bot", name: "Bot", content: "Hi", timestamp: "2 hours ago" }));
|
197
197
|
expect(screen.getByText('Bot')).toBeTruthy();
|
198
198
|
expect(screen.getByText('AI')).toBeTruthy();
|
199
199
|
expect(screen.getByText('Hi')).toBeTruthy();
|
@@ -207,13 +207,13 @@ describe('Message', () => {
|
|
207
207
|
})).not.toBeInTheDocument();
|
208
208
|
});
|
209
209
|
it('should render attachments', () => {
|
210
|
-
render(
|
210
|
+
render(_jsx(Message, { avatar: "./img", role: "user", content: "Hi", attachments: [{ name: 'testAttachment' }] }));
|
211
211
|
expect(screen.getByText('Hi')).toBeTruthy();
|
212
212
|
expect(screen.getByText('testAttachment')).toBeTruthy();
|
213
213
|
});
|
214
214
|
it('should be able to click attachments', () => __awaiter(void 0, void 0, void 0, function* () {
|
215
215
|
const spy = jest.fn();
|
216
|
-
render(
|
216
|
+
render(_jsx(Message, { avatar: "./img", role: "user", content: "Hi", attachments: [{ name: 'testAttachment', onClick: spy }] }));
|
217
217
|
expect(screen.getByText('Hi')).toBeTruthy();
|
218
218
|
expect(screen.getByText('testAttachment')).toBeTruthy();
|
219
219
|
yield userEvent.click(screen.getByRole('button', { name: /testAttachment/i }));
|
@@ -221,7 +221,7 @@ describe('Message', () => {
|
|
221
221
|
}));
|
222
222
|
it('should be able to close attachments', () => __awaiter(void 0, void 0, void 0, function* () {
|
223
223
|
const spy = jest.fn();
|
224
|
-
render(
|
224
|
+
render(_jsx(Message, { avatar: "./img", role: "user", content: "Hi", attachments: [{ name: 'testAttachment', onClose: spy }] }));
|
225
225
|
expect(screen.getByText('Hi')).toBeTruthy();
|
226
226
|
expect(screen.getByText('testAttachment')).toBeTruthy();
|
227
227
|
expect(screen.getByRole('button', { name: /close testAttachment/i })).toBeTruthy();
|
@@ -229,7 +229,7 @@ describe('Message', () => {
|
|
229
229
|
expect(spy).toHaveBeenCalledTimes(1);
|
230
230
|
}));
|
231
231
|
it('should render loading state', () => {
|
232
|
-
render(
|
232
|
+
render(_jsx(Message, { avatar: "./img", role: "bot", name: "Bot", content: "Hi", isLoading: true }));
|
233
233
|
expect(screen.getByText('Bot')).toBeTruthy();
|
234
234
|
expect(screen.getByText('AI')).toBeTruthy();
|
235
235
|
expect(screen.queryByText('Hi')).toBeFalsy();
|
@@ -243,7 +243,7 @@ describe('Message', () => {
|
|
243
243
|
expect(screen.getByText('Loading message')).toBeTruthy();
|
244
244
|
});
|
245
245
|
it('should be able to show sources', () => __awaiter(void 0, void 0, void 0, function* () {
|
246
|
-
render(
|
246
|
+
render(_jsx(Message, { avatar: "./img", role: "bot", name: "Bot", content: "Hi", sources: {
|
247
247
|
sources: [
|
248
248
|
{
|
249
249
|
title: 'Getting started with Red Hat OpenShift',
|
@@ -255,7 +255,7 @@ describe('Message', () => {
|
|
255
255
|
expect(screen.getByText('Getting started with Red Hat OpenShift')).toBeTruthy();
|
256
256
|
}));
|
257
257
|
it('should not show sources if loading', () => {
|
258
|
-
render(
|
258
|
+
render(_jsx(Message, { avatar: "./img", role: "bot", name: "Bot", content: "Hi", isLoading: true, sources: {
|
259
259
|
sources: [
|
260
260
|
{
|
261
261
|
title: 'Getting started with Red Hat OpenShift',
|
@@ -269,7 +269,7 @@ describe('Message', () => {
|
|
269
269
|
});
|
270
270
|
it('should be able to show quick response', () => __awaiter(void 0, void 0, void 0, function* () {
|
271
271
|
const spy = jest.fn();
|
272
|
-
render(
|
272
|
+
render(_jsx(Message, { avatar: "./img", role: "bot", name: "Bot", content: "Hi", quickResponses: [
|
273
273
|
{
|
274
274
|
id: '1',
|
275
275
|
content: 'Yes',
|
@@ -282,9 +282,21 @@ describe('Message', () => {
|
|
282
282
|
yield userEvent.click(quickResponse);
|
283
283
|
expect(spy).toHaveBeenCalledTimes(1);
|
284
284
|
}));
|
285
|
+
it('should be able to handle isCompact', () => __awaiter(void 0, void 0, void 0, function* () {
|
286
|
+
render(_jsx(Message, { avatar: "./img", role: "bot", name: "Bot", content: "Hi", quickResponses: [
|
287
|
+
{
|
288
|
+
id: '1',
|
289
|
+
content: 'Yes',
|
290
|
+
onClick: jest.fn(),
|
291
|
+
className: 'test'
|
292
|
+
}
|
293
|
+
], isCompact: true }));
|
294
|
+
const parent = screen.getByRole('button', { name: /Yes/i }).parentNode;
|
295
|
+
expect(parent).toHaveClass('pf-m-compact');
|
296
|
+
}));
|
285
297
|
it('should be able to show more than 1 quick response', () => __awaiter(void 0, void 0, void 0, function* () {
|
286
298
|
const spy = jest.fn();
|
287
|
-
render(
|
299
|
+
render(_jsx(Message, { avatar: "./img", role: "bot", name: "Bot", content: "Hi", quickResponses: [
|
288
300
|
{
|
289
301
|
id: '1',
|
290
302
|
content: 'Yes',
|
@@ -301,7 +313,7 @@ describe('Message', () => {
|
|
301
313
|
}));
|
302
314
|
it('should be able to spread quickResponseContainerProps', () => __awaiter(void 0, void 0, void 0, function* () {
|
303
315
|
const spy = jest.fn();
|
304
|
-
render(
|
316
|
+
render(_jsx(Message, { avatar: "./img", role: "bot", name: "Bot", content: "Hi", quickResponses: [
|
305
317
|
{
|
306
318
|
id: '1',
|
307
319
|
content: 'Yes',
|
@@ -321,7 +333,7 @@ describe('Message', () => {
|
|
321
333
|
expect(screen.getByRole('button', { name: /1 more/i }));
|
322
334
|
}));
|
323
335
|
it('should be able to show actions', () => __awaiter(void 0, void 0, void 0, function* () {
|
324
|
-
render(
|
336
|
+
render(_jsx(Message, { avatar: "./img", role: "bot", name: "Bot", content: "Hi", actions: {
|
325
337
|
// eslint-disable-next-line no-console
|
326
338
|
positive: { onClick: () => console.log('Good response') },
|
327
339
|
// eslint-disable-next-line no-console
|
@@ -331,6 +343,8 @@ describe('Message', () => {
|
|
331
343
|
// eslint-disable-next-line no-console
|
332
344
|
share: { onClick: () => console.log('Share') },
|
333
345
|
// eslint-disable-next-line no-console
|
346
|
+
download: { onClick: () => console.log('Download') },
|
347
|
+
// eslint-disable-next-line no-console
|
334
348
|
listen: { onClick: () => console.log('Listen') }
|
335
349
|
} }));
|
336
350
|
ALL_ACTIONS.forEach(({ label }) => {
|
@@ -338,7 +352,7 @@ describe('Message', () => {
|
|
338
352
|
});
|
339
353
|
}));
|
340
354
|
it('should not show actions if loading', () => __awaiter(void 0, void 0, void 0, function* () {
|
341
|
-
render(
|
355
|
+
render(_jsx(Message, { avatar: "./img", role: "bot", name: "Bot", content: "Hi", isLoading: true, actions: {
|
342
356
|
// eslint-disable-next-line no-console
|
343
357
|
positive: { onClick: () => console.log('Good response') },
|
344
358
|
// eslint-disable-next-line no-console
|
@@ -348,6 +362,8 @@ describe('Message', () => {
|
|
348
362
|
// eslint-disable-next-line no-console
|
349
363
|
share: { onClick: () => console.log('Share') },
|
350
364
|
// eslint-disable-next-line no-console
|
365
|
+
download: { onClick: () => console.log('Download') },
|
366
|
+
// eslint-disable-next-line no-console
|
351
367
|
listen: { onClick: () => console.log('Listen') }
|
352
368
|
} }));
|
353
369
|
expect(screen.getByText('Loading message')).toBeTruthy();
|
@@ -356,30 +372,30 @@ describe('Message', () => {
|
|
356
372
|
});
|
357
373
|
}));
|
358
374
|
it('should render unordered lists correctly', () => {
|
359
|
-
render(
|
375
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: UNORDERED_LIST }));
|
360
376
|
expect(screen.getByText('Here is an unordered list:')).toBeTruthy();
|
361
377
|
checkListItemsRendered();
|
362
378
|
});
|
363
379
|
it('should render ordered lists correctly', () => {
|
364
|
-
render(
|
380
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: ORDERED_LIST }));
|
365
381
|
expect(screen.getByText('Here is an ordered list:')).toBeTruthy();
|
366
382
|
checkListItemsRendered();
|
367
383
|
});
|
368
384
|
it('should render ordered lists correctly if there is interstitial content', () => {
|
369
|
-
render(
|
385
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: ORDERED_LIST_WITH_CODE }));
|
370
386
|
checkListItemsRendered();
|
371
387
|
const list = screen.getAllByRole('list')[1];
|
372
388
|
expect(list).toHaveAttribute('start', '3');
|
373
389
|
});
|
374
390
|
it('should render inline code', () => {
|
375
|
-
render(
|
391
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: INLINE_CODE }));
|
376
392
|
expect(screen.getByText(/() => void/i)).toBeTruthy();
|
377
393
|
expect(screen.queryByRole('button', { name: 'Copy code button' })).toBeFalsy();
|
378
394
|
});
|
379
395
|
it('should render code correctly', () => {
|
380
|
-
render(
|
396
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: CODE_MESSAGE }));
|
381
397
|
expect(screen.getByText('Here is some YAML code:')).toBeTruthy();
|
382
|
-
expect(screen.getByRole('button', { name: 'Copy code
|
398
|
+
expect(screen.getByRole('button', { name: 'Copy code' })).toBeTruthy();
|
383
399
|
expect(screen.getByText(/yaml/)).toBeTruthy();
|
384
400
|
expect(screen.getByText(/apiVersion:/i)).toBeTruthy();
|
385
401
|
expect(screen.getByText(/helm.openshift.io\/v1beta1/i)).toBeTruthy();
|
@@ -391,44 +407,68 @@ describe('Message', () => {
|
|
391
407
|
expect(screen.getByText(/url:/i)).toBeTruthy();
|
392
408
|
expect(screen.getByText(/https:\/\/raw.githubusercontent.com\/Azure-Samples\/helm-charts\/master\/docs/i)).toBeTruthy();
|
393
409
|
});
|
410
|
+
it('should render expandable code correctly', () => {
|
411
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: CODE_MESSAGE, codeBlockProps: { isExpandable: true } }));
|
412
|
+
expect(screen.getByText('Here is some YAML code:')).toBeTruthy();
|
413
|
+
expect(screen.getByRole('button', { name: 'Copy code' })).toBeTruthy();
|
414
|
+
expect(screen.getByText(/yaml/)).toBeTruthy();
|
415
|
+
expect(screen.getByText(/apiVersion/i)).toBeTruthy();
|
416
|
+
expect(screen.getByRole('button', { name: /Show more/i })).toBeTruthy();
|
417
|
+
});
|
418
|
+
it('should handle click on expandable code correctly', () => __awaiter(void 0, void 0, void 0, function* () {
|
419
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: CODE_MESSAGE, codeBlockProps: { isExpandable: true } }));
|
420
|
+
const button = screen.getByRole('button', { name: /Show more/i });
|
421
|
+
yield userEvent.click(button);
|
422
|
+
expect(screen.getByRole('button', { name: /Show less/i })).toBeTruthy();
|
423
|
+
expect(screen.getByText(/yaml/)).toBeTruthy();
|
424
|
+
expect(screen.getByText(/apiVersion:/i)).toBeTruthy();
|
425
|
+
expect(screen.getByText(/helm.openshift.io\/v1beta1/i)).toBeTruthy();
|
426
|
+
expect(screen.getByText(/metadata:/i)).toBeTruthy();
|
427
|
+
expect(screen.getByText(/name:/i)).toBeTruthy();
|
428
|
+
expect(screen.getByText(/azure-sample-repo0oooo00ooo/i)).toBeTruthy();
|
429
|
+
expect(screen.getByText(/spec/i)).toBeTruthy();
|
430
|
+
expect(screen.getByText(/connectionConfig:/i)).toBeTruthy();
|
431
|
+
expect(screen.getByText(/url:/i)).toBeTruthy();
|
432
|
+
expect(screen.getByText(/https:\/\/raw.githubusercontent.com\/Azure-Samples\/helm-charts\/master\/docs/i)).toBeTruthy();
|
433
|
+
}));
|
394
434
|
it('can click copy code button', () => __awaiter(void 0, void 0, void 0, function* () {
|
395
435
|
// need explicit setup since RTL stubs clipboard if you do this
|
396
436
|
const user = userEvent.setup();
|
397
|
-
render(
|
398
|
-
expect(screen.getByRole('button', { name: 'Copy code
|
399
|
-
yield user.click(screen.getByRole('button', { name: 'Copy code
|
437
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: CODE_MESSAGE }));
|
438
|
+
expect(screen.getByRole('button', { name: 'Copy code' })).toBeTruthy();
|
439
|
+
yield user.click(screen.getByRole('button', { name: 'Copy code' }));
|
400
440
|
const clipboardText = yield navigator.clipboard.readText();
|
401
441
|
expect(clipboardText.trim()).toEqual(CODE.trim());
|
402
442
|
}));
|
403
443
|
it('should handle codeBlockProps correctly by spreading it onto the CodeMessage', () => {
|
404
|
-
render(
|
444
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: CODE_MESSAGE, codeBlockProps: { 'aria-label': 'test' } }));
|
405
445
|
expect(screen.getByRole('button', { name: 'test' })).toBeTruthy();
|
406
446
|
});
|
407
447
|
it('should handle hasRoundAvatar correctly when it is true', () => {
|
408
|
-
render(
|
448
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Hi", hasRoundAvatar: true }));
|
409
449
|
expect(screen.getByRole('img')).toBeTruthy();
|
410
450
|
expect(screen.getByRole('img')).toHaveClass('pf-chatbot__message-avatar');
|
411
451
|
expect(screen.getByRole('img')).toHaveClass('pf-chatbot__message-avatar--round');
|
412
452
|
});
|
413
453
|
it('should handle hasRoundAvatar correctly when it is false', () => {
|
414
|
-
render(
|
454
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Hi", hasRoundAvatar: false }));
|
415
455
|
expect(screen.getByRole('img')).toBeTruthy();
|
416
456
|
expect(screen.getByRole('img')).toHaveClass('pf-chatbot__message-avatar');
|
417
457
|
expect(screen.getByRole('img')).not.toHaveClass('pf-chatbot__message-avatar--round');
|
418
458
|
});
|
419
459
|
it('should handle avatarProps correctly by spreading it onto the Message Avatar', () => {
|
420
|
-
render(
|
460
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Hi", avatarProps: { className: 'test' } }));
|
421
461
|
expect(screen.getByRole('img')).toBeTruthy();
|
422
462
|
expect(screen.getByRole('img')).toHaveClass('test');
|
423
463
|
});
|
424
464
|
it('should handle avatarProps and hasRoundAvatar correctly', () => {
|
425
|
-
render(
|
465
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Hi", avatarProps: { className: 'test' }, hasRoundAvatar: false }));
|
426
466
|
expect(screen.getByRole('img')).toBeTruthy();
|
427
467
|
expect(screen.getByRole('img')).toHaveClass('test');
|
428
468
|
expect(screen.getByRole('img')).toHaveClass('pf-chatbot__message-avatar');
|
429
469
|
});
|
430
470
|
it('should handle QuickStart tile correctly', () => {
|
431
|
-
render(
|
471
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Hi", quickStarts: {
|
432
472
|
quickStart: monitorSampleAppQuickStart,
|
433
473
|
onSelectQuickStart: (id) => alert(id)
|
434
474
|
} }));
|
@@ -439,7 +479,7 @@ describe('Message', () => {
|
|
439
479
|
});
|
440
480
|
it('should handle click on QuickStart tile correctly', () => __awaiter(void 0, void 0, void 0, function* () {
|
441
481
|
const spy = jest.fn();
|
442
|
-
render(
|
482
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Hi", quickStarts: {
|
443
483
|
quickStart: monitorSampleAppQuickStart,
|
444
484
|
onSelectQuickStart: (id) => spy(id)
|
445
485
|
} }));
|
@@ -449,20 +489,20 @@ describe('Message', () => {
|
|
449
489
|
}));
|
450
490
|
it('should handle QuickStart tile with image correctly', () => __awaiter(void 0, void 0, void 0, function* () {
|
451
491
|
const spy = jest.fn();
|
452
|
-
render(
|
492
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Hi", quickStarts: {
|
453
493
|
quickStart: monitorSampleAppQuickStartWithImage,
|
454
494
|
onSelectQuickStart: (id) => spy(id)
|
455
495
|
} }));
|
456
496
|
expect(screen.getAllByRole('img')[1]).toHaveAttribute('src', 'test.png');
|
457
497
|
}));
|
458
498
|
it('should handle block quote correctly', () => {
|
459
|
-
render(
|
499
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: BLOCK_QUOTES }));
|
460
500
|
expect(screen.getByText(/Blockquotes can also be nested.../)).toBeTruthy();
|
461
501
|
expect(screen.getByText('...by using additional greater-than signs (>) right next to each other...')).toBeTruthy();
|
462
502
|
expect(screen.getByText(/...or with spaces between each sign./)).toBeTruthy();
|
463
503
|
});
|
464
504
|
it('should handle heading correctly', () => {
|
465
|
-
render(
|
505
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: HEADING }));
|
466
506
|
expect(screen.getByRole('heading', { name: /h1 Heading/i })).toBeTruthy();
|
467
507
|
expect(screen.getByRole('heading', { name: /h2 Heading/i })).toBeTruthy();
|
468
508
|
expect(screen.getByRole('heading', { name: /h3 Heading/i })).toBeTruthy();
|
@@ -471,7 +511,7 @@ describe('Message', () => {
|
|
471
511
|
expect(screen.getByRole('heading', { name: /h6 Heading/i })).toBeTruthy();
|
472
512
|
});
|
473
513
|
it('should render table correctly', () => {
|
474
|
-
render(
|
514
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: TABLE }));
|
475
515
|
expect(screen.getByRole('row', { name: /Column 1 Column 2/i })).toBeTruthy();
|
476
516
|
expect(screen.getByRole('row', { name: /Cell 1 Cell 2/i })).toBeTruthy();
|
477
517
|
expect(screen.getByRole('row', { name: /Cell 3 Cell 4/i })).toBeTruthy();
|
@@ -483,7 +523,7 @@ describe('Message', () => {
|
|
483
523
|
expect(screen.getByRole('cell', { name: /Cell 4/i })).toBeTruthy();
|
484
524
|
});
|
485
525
|
it('should render table data labels correctly for mobile breakpoint', () => {
|
486
|
-
render(
|
526
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: TABLE }));
|
487
527
|
expect(screen.getByRole('row', { name: /Cell 1 Cell 2/i })).toHaveAttribute('extraHeaders', 'Column 1,Column 2');
|
488
528
|
expect(screen.getByRole('row', { name: /Cell 3 Cell 4/i })).toHaveAttribute('extraHeaders', 'Column 1,Column 2');
|
489
529
|
expect(screen.getByRole('cell', { name: /Cell 1/i })).toHaveAttribute('data-label', 'Column 1');
|
@@ -492,70 +532,70 @@ describe('Message', () => {
|
|
492
532
|
expect(screen.getByRole('cell', { name: /Cell 4/i })).toHaveAttribute('data-label', 'Column 2');
|
493
533
|
});
|
494
534
|
it('should render table data labels correctly for mobile breakpoint for one column table', () => {
|
495
|
-
render(
|
535
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: ONE_COLUMN_TABLE }));
|
496
536
|
expect(screen.getByRole('row', { name: /Cell 1/i })).toHaveAttribute('extraHeaders', 'Column 1');
|
497
537
|
expect(screen.getByRole('row', { name: /Cell 2/i })).toHaveAttribute('extraHeaders', 'Column 1');
|
498
538
|
expect(screen.getByRole('cell', { name: /Cell 1/i })).toHaveAttribute('data-label', 'Column 1');
|
499
539
|
expect(screen.getByRole('cell', { name: /Cell 2/i })).toHaveAttribute('data-label', 'Column 1');
|
500
540
|
});
|
501
541
|
it('should render table data labels correctly for mobile breakpoint for one cell table', () => {
|
502
|
-
render(
|
542
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: ONE_CELL_TABLE }));
|
503
543
|
expect(screen.getByRole('row', { name: /Cell 1/i })).toHaveAttribute('extraHeaders', 'Column 1');
|
504
544
|
expect(screen.getByRole('cell', { name: /Cell 1/i })).toHaveAttribute('data-label', 'Column 1');
|
505
545
|
});
|
506
546
|
it('should render table data labels correctly for mobile breakpoint for headerless', () => {
|
507
|
-
render(
|
547
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: HEADERLESS_TABLE }));
|
508
548
|
expect(screen.getByRole('row', { name: /Cell 1/i })).toHaveAttribute('extraHeaders', '');
|
509
549
|
expect(screen.getByRole('cell', { name: /Cell 1/i })).not.toHaveAttribute('data-label');
|
510
550
|
});
|
511
551
|
it('should render table data labels correctly for mobile breakpoint for childless', () => {
|
512
|
-
render(
|
552
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: CHILDLESS_TABLE }));
|
513
553
|
expect(screen.getByRole('cell')).not.toHaveAttribute('extraHeaders', 'Column 1');
|
514
554
|
});
|
515
555
|
it('should render table data labels correctly for mobile breakpoint for empty', () => {
|
516
|
-
render(
|
556
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: EMPTY_TABLE }));
|
517
557
|
expect(screen.getByRole('cell')).not.toHaveAttribute('extraHeaders', '');
|
518
558
|
});
|
519
559
|
it('should render custom table aria label correctly', () => {
|
520
|
-
render(
|
560
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: TABLE, tableProps: { 'aria-label': 'Test' } }));
|
521
561
|
expect(screen.getByRole('grid', { name: /Test/i })).toBeTruthy();
|
522
562
|
});
|
523
563
|
it('should render beforeMainContent with main content', () => {
|
524
564
|
const mainContent = 'Main message content';
|
525
565
|
const beforeMainContentText = 'Before main content';
|
526
|
-
const beforeMainContent =
|
527
|
-
render(
|
566
|
+
const beforeMainContent = _jsx("div", { children: beforeMainContentText });
|
567
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: mainContent, extraContent: { beforeMainContent } }));
|
528
568
|
expect(screen.getByText(beforeMainContentText)).toBeTruthy();
|
529
569
|
expect(screen.getByText(mainContent)).toBeTruthy();
|
530
570
|
});
|
531
571
|
it('should render afterMainContent with main content', () => {
|
532
572
|
const mainContent = 'Main message content';
|
533
573
|
const afterMainContentText = 'After main content';
|
534
|
-
const afterMainContent =
|
535
|
-
render(
|
574
|
+
const afterMainContent = _jsx("div", { children: afterMainContentText });
|
575
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: mainContent, extraContent: { afterMainContent } }));
|
536
576
|
expect(screen.getByText(afterMainContentText)).toBeTruthy();
|
537
577
|
expect(screen.getByText(mainContent)).toBeTruthy();
|
538
578
|
});
|
539
579
|
it('should render endContent with main content', () => {
|
540
580
|
const mainContent = 'Main message content';
|
541
581
|
const endMainContentText = 'End content';
|
542
|
-
const endContent =
|
543
|
-
render(
|
582
|
+
const endContent = _jsx("div", { children: endMainContentText });
|
583
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: mainContent, extraContent: { endContent } }));
|
544
584
|
expect(screen.getByText(endMainContentText)).toBeTruthy();
|
545
585
|
expect(screen.getByText(mainContent)).toBeTruthy();
|
546
586
|
});
|
547
587
|
it('should render all parts of extraContent with main content', () => {
|
548
|
-
const beforeMainContent =
|
549
|
-
const afterMainContent =
|
550
|
-
const endContent =
|
551
|
-
render(
|
588
|
+
const beforeMainContent = _jsx("div", { children: "Before main content" });
|
589
|
+
const afterMainContent = _jsx("div", { children: "After main content" });
|
590
|
+
const endContent = _jsx("div", { children: "End content" });
|
591
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Main message content", extraContent: { beforeMainContent, afterMainContent, endContent } }));
|
552
592
|
expect(screen.getByText('Before main content')).toBeTruthy();
|
553
593
|
expect(screen.getByText('Main message content')).toBeTruthy();
|
554
594
|
expect(screen.getByText('After main content')).toBeTruthy();
|
555
595
|
expect(screen.getByText('End content')).toBeTruthy();
|
556
596
|
});
|
557
597
|
it('should not render extraContent when not provided', () => {
|
558
|
-
render(
|
598
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Main message content" }));
|
559
599
|
// Ensure no extraContent is rendered
|
560
600
|
expect(screen.getByText('Main message content')).toBeTruthy();
|
561
601
|
expect(screen.queryByText('Before main content')).toBeFalsy();
|
@@ -563,7 +603,7 @@ describe('Message', () => {
|
|
563
603
|
expect(screen.queryByText('end message content')).toBeFalsy();
|
564
604
|
});
|
565
605
|
it('should handle undefined or null values in extraContent gracefully', () => {
|
566
|
-
render(
|
606
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Main message content", extraContent: { beforeMainContent: null, afterMainContent: undefined, endContent: null } }));
|
567
607
|
// Ensure that no extraContent is rendered if they are null or undefined
|
568
608
|
expect(screen.getByText('Main message content')).toBeTruthy();
|
569
609
|
expect(screen.queryByText('Before main content')).toBeFalsy();
|
@@ -571,64 +611,66 @@ describe('Message', () => {
|
|
571
611
|
expect(screen.queryByText('end message content')).toBeFalsy();
|
572
612
|
});
|
573
613
|
it('should render JSX in extraContent correctly', () => {
|
574
|
-
const beforeMainContent = (
|
575
|
-
|
576
|
-
const
|
577
|
-
|
578
|
-
const endContent = (React.createElement("div", { "data-testid": "end-main-content" },
|
579
|
-
React.createElement("strong", null, "Bold end content")));
|
580
|
-
render(React.createElement(Message, { avatar: "./img", role: "user", name: "User", content: "Main message content", extraContent: { beforeMainContent, afterMainContent, endContent } }));
|
614
|
+
const beforeMainContent = (_jsx("div", { "data-testid": "before-main-content", children: _jsx("strong", { children: "Bold before content" }) }));
|
615
|
+
const afterMainContent = (_jsx("div", { "data-testid": "after-main-content", children: _jsx("strong", { children: "Bold after content" }) }));
|
616
|
+
const endContent = (_jsx("div", { "data-testid": "end-main-content", children: _jsx("strong", { children: "Bold end content" }) }));
|
617
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Main message content", extraContent: { beforeMainContent, afterMainContent, endContent } }));
|
581
618
|
// Check that the JSX is correctly rendered
|
582
619
|
expect(screen.getByTestId('before-main-content')).toContainHTML('<strong>Bold before content</strong>');
|
583
620
|
expect(screen.getByTestId('after-main-content')).toContainHTML('<strong>Bold after content</strong>');
|
584
621
|
expect(screen.getByTestId('end-main-content')).toContainHTML('<strong>Bold end content</strong>');
|
585
622
|
});
|
586
623
|
it('should handle image correctly', () => {
|
587
|
-
render(
|
624
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: IMAGE }));
|
625
|
+
expect(screen.getByRole('img', { name: /Multi-colored wavy lines on a black background/i })).toBeTruthy();
|
626
|
+
});
|
627
|
+
it('inline image parent should have class pf-chatbot__message-and-actions', () => {
|
628
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: INLINE_IMAGE }));
|
588
629
|
expect(screen.getByRole('img', { name: /Multi-colored wavy lines on a black background/i })).toBeTruthy();
|
630
|
+
expect(screen.getByRole('img', { name: /Multi-colored wavy lines on a black background/i }).parentElement).toHaveClass('pf-chatbot__message-and-actions');
|
589
631
|
});
|
590
632
|
it('should handle external links correctly', () => {
|
591
|
-
render(
|
633
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: `[PatternFly](https://www.patternfly.org/)` }));
|
592
634
|
// we are mocking rehype libraries, so we can't test target _blank addition on links directly with RTL
|
593
635
|
expect(rehypeExternalLinks).toHaveBeenCalledTimes(1);
|
594
636
|
});
|
595
637
|
it('should handle external links correctly', () => {
|
596
|
-
render(
|
638
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: `[PatternFly](https://www.patternfly.org/)`, openLinkInNewTab: false }));
|
597
639
|
// we are mocking rehype libraries, so we can't test target _blank addition on links directly with RTL
|
598
640
|
expect(rehypeExternalLinks).not.toHaveBeenCalled();
|
599
641
|
});
|
600
642
|
it('should handle extra link props correctly', () => __awaiter(void 0, void 0, void 0, function* () {
|
601
643
|
const spy = jest.fn();
|
602
|
-
render(
|
644
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: `[PatternFly](https://www.patternfly.org/)`, linkProps: { onClick: spy } }));
|
603
645
|
yield userEvent.click(screen.getByRole('link', { name: /PatternFly/i }));
|
604
646
|
expect(spy).toHaveBeenCalledTimes(1);
|
605
647
|
}));
|
606
648
|
it('should handle error correctly', () => {
|
607
|
-
render(
|
649
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", error: ERROR }));
|
608
650
|
expect(screen.getByRole('heading', { name: /Could not load chat/i })).toBeTruthy();
|
609
651
|
expect(screen.getByRole('link', { name: /Start a new chat/i })).toBeTruthy();
|
610
652
|
expect(screen.getByRole('link', { name: /Contact support/i })).toBeTruthy();
|
611
653
|
expect(screen.getByText('Wait a few minutes and check your network settings. If the issue persists:')).toBeTruthy();
|
612
654
|
});
|
613
655
|
it('should handle error correctly when loading', () => {
|
614
|
-
render(
|
656
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", error: ERROR, isLoading: true }));
|
615
657
|
expect(screen.queryByRole('heading', { name: /Could not load chat/i })).toBeFalsy();
|
616
658
|
expect(screen.getByText('Loading message')).toBeTruthy();
|
617
659
|
});
|
618
660
|
it('should handle error correctly when these is content', () => {
|
619
|
-
render(
|
661
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", error: ERROR, content: "Test" }));
|
620
662
|
expect(screen.getByRole('heading', { name: /Could not load chat/i })).toBeTruthy();
|
621
663
|
expect(screen.queryByText('Test')).toBeFalsy();
|
622
664
|
});
|
623
665
|
it('should handle isEditable when there is message content', () => {
|
624
|
-
render(
|
666
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", isEditable: true, content: "Test" }));
|
625
667
|
expect(screen.getByRole('textbox')).toBeTruthy();
|
626
668
|
expect(screen.getByRole('textbox')).toHaveValue('Test');
|
627
669
|
expect(screen.getByRole('button', { name: /Update/i })).toBeTruthy();
|
628
670
|
expect(screen.getByRole('button', { name: /Cancel/i })).toBeTruthy();
|
629
671
|
});
|
630
672
|
it('should handle isEditable when there is no message content', () => {
|
631
|
-
render(
|
673
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", isEditable: true }));
|
632
674
|
expect(screen.getByRole('textbox')).toBeTruthy();
|
633
675
|
expect(screen.getByRole('textbox')).toHaveValue('');
|
634
676
|
expect(screen.getByRole('textbox')).toHaveAttribute('placeholder', 'Edit prompt message...');
|
@@ -636,33 +678,33 @@ describe('Message', () => {
|
|
636
678
|
expect(screen.getByRole('button', { name: /Cancel/i })).toBeTruthy();
|
637
679
|
});
|
638
680
|
it('should be able to change edit placeholder', () => {
|
639
|
-
render(
|
681
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", isEditable: true, editPlaceholder: "I am a placeholder" }));
|
640
682
|
expect(screen.getByRole('textbox')).toBeTruthy();
|
641
683
|
expect(screen.getByRole('textbox')).toHaveValue('');
|
642
684
|
expect(screen.getByRole('textbox')).toHaveAttribute('placeholder', 'I am a placeholder');
|
643
685
|
});
|
644
686
|
it('should be able to change updateWord', () => {
|
645
|
-
render(
|
687
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", isEditable: true, updateWord: "Submit" }));
|
646
688
|
expect(screen.getByRole('button', { name: /Submit/i })).toBeTruthy();
|
647
689
|
});
|
648
690
|
it('should be able to change cancelWord', () => {
|
649
|
-
render(
|
691
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", isEditable: true, cancelWord: "Don't submit" }));
|
650
692
|
expect(screen.getByRole('button', { name: /Don't submit/i })).toBeTruthy();
|
651
693
|
});
|
652
694
|
it('should be able to add onEditUpdate', () => __awaiter(void 0, void 0, void 0, function* () {
|
653
695
|
const spy = jest.fn();
|
654
|
-
render(
|
696
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", isEditable: true, onEditUpdate: spy }));
|
655
697
|
yield userEvent.click(screen.getByRole('button', { name: /Update/i }));
|
656
698
|
expect(spy).toHaveBeenCalledTimes(1);
|
657
699
|
}));
|
658
700
|
it('should be able to add onEditCancel', () => __awaiter(void 0, void 0, void 0, function* () {
|
659
701
|
const spy = jest.fn();
|
660
|
-
render(
|
702
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", isEditable: true, onEditCancel: spy }));
|
661
703
|
yield userEvent.click(screen.getByRole('button', { name: /Cancel/i }));
|
662
704
|
expect(spy).toHaveBeenCalledTimes(1);
|
663
705
|
}));
|
664
706
|
it('should be able to add editFormProps', () => {
|
665
|
-
const { container } = render(
|
707
|
+
const { container } = render(_jsx(Message, { avatar: "./img", role: "user", name: "User", isEditable: true, editFormProps: { className: 'test' } }));
|
666
708
|
const form = container.querySelector('form');
|
667
709
|
expect(form).toHaveClass('test');
|
668
710
|
});
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import
|
1
|
+
import type { FunctionComponent } from 'react';
|
2
2
|
import { FormProps } from '@patternfly/react-core';
|
3
3
|
export interface MessageInputProps extends FormProps {
|
4
4
|
/** Placeholder for edit input */
|
@@ -14,5 +14,5 @@ export interface MessageInputProps extends FormProps {
|
|
14
14
|
/** Message text */
|
15
15
|
content?: string;
|
16
16
|
}
|
17
|
-
declare const MessageInput:
|
17
|
+
declare const MessageInput: FunctionComponent<MessageInputProps>;
|
18
18
|
export default MessageInput;
|