@patternfly/chatbot 6.3.0-prerelease.2 → 6.3.0-prerelease.20
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 +119 -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 +6 -3
- package/dist/cjs/ResponseActions/ResponseActions.js +10 -14
- package/dist/cjs/ResponseActions/ResponseActions.test.js +55 -40
- 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 +119 -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 +6 -3
- package/dist/esm/ResponseActions/ResponseActions.js +10 -14
- package/dist/esm/ResponseActions/ResponseActions.test.js +30 -15
- 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 -12
- 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 -2
- 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 +2 -2
- 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 +12 -3
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithSelection.tsx +15 -6
- 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 +7 -7
- 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 +17 -23
- 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 +15 -20
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotScrolling.tsx +536 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +15 -20
- package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedComparisonChatbot.tsx +12 -12
- 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 +66 -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 +18 -2
- package/src/ResponseActions/ResponseActions.tsx +18 -8
- 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
|
@@ -338,7 +350,7 @@ describe('Message', () => {
|
|
338
350
|
});
|
339
351
|
}));
|
340
352
|
it('should not show actions if loading', () => __awaiter(void 0, void 0, void 0, function* () {
|
341
|
-
render(
|
353
|
+
render(_jsx(Message, { avatar: "./img", role: "bot", name: "Bot", content: "Hi", isLoading: true, actions: {
|
342
354
|
// eslint-disable-next-line no-console
|
343
355
|
positive: { onClick: () => console.log('Good response') },
|
344
356
|
// eslint-disable-next-line no-console
|
@@ -356,30 +368,30 @@ describe('Message', () => {
|
|
356
368
|
});
|
357
369
|
}));
|
358
370
|
it('should render unordered lists correctly', () => {
|
359
|
-
render(
|
371
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: UNORDERED_LIST }));
|
360
372
|
expect(screen.getByText('Here is an unordered list:')).toBeTruthy();
|
361
373
|
checkListItemsRendered();
|
362
374
|
});
|
363
375
|
it('should render ordered lists correctly', () => {
|
364
|
-
render(
|
376
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: ORDERED_LIST }));
|
365
377
|
expect(screen.getByText('Here is an ordered list:')).toBeTruthy();
|
366
378
|
checkListItemsRendered();
|
367
379
|
});
|
368
380
|
it('should render ordered lists correctly if there is interstitial content', () => {
|
369
|
-
render(
|
381
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: ORDERED_LIST_WITH_CODE }));
|
370
382
|
checkListItemsRendered();
|
371
383
|
const list = screen.getAllByRole('list')[1];
|
372
384
|
expect(list).toHaveAttribute('start', '3');
|
373
385
|
});
|
374
386
|
it('should render inline code', () => {
|
375
|
-
render(
|
387
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: INLINE_CODE }));
|
376
388
|
expect(screen.getByText(/() => void/i)).toBeTruthy();
|
377
389
|
expect(screen.queryByRole('button', { name: 'Copy code button' })).toBeFalsy();
|
378
390
|
});
|
379
391
|
it('should render code correctly', () => {
|
380
|
-
render(
|
392
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: CODE_MESSAGE }));
|
381
393
|
expect(screen.getByText('Here is some YAML code:')).toBeTruthy();
|
382
|
-
expect(screen.getByRole('button', { name: 'Copy code
|
394
|
+
expect(screen.getByRole('button', { name: 'Copy code' })).toBeTruthy();
|
383
395
|
expect(screen.getByText(/yaml/)).toBeTruthy();
|
384
396
|
expect(screen.getByText(/apiVersion:/i)).toBeTruthy();
|
385
397
|
expect(screen.getByText(/helm.openshift.io\/v1beta1/i)).toBeTruthy();
|
@@ -391,44 +403,68 @@ describe('Message', () => {
|
|
391
403
|
expect(screen.getByText(/url:/i)).toBeTruthy();
|
392
404
|
expect(screen.getByText(/https:\/\/raw.githubusercontent.com\/Azure-Samples\/helm-charts\/master\/docs/i)).toBeTruthy();
|
393
405
|
});
|
406
|
+
it('should render expandable code correctly', () => {
|
407
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: CODE_MESSAGE, codeBlockProps: { isExpandable: true } }));
|
408
|
+
expect(screen.getByText('Here is some YAML code:')).toBeTruthy();
|
409
|
+
expect(screen.getByRole('button', { name: 'Copy code' })).toBeTruthy();
|
410
|
+
expect(screen.getByText(/yaml/)).toBeTruthy();
|
411
|
+
expect(screen.getByText(/apiVersion/i)).toBeTruthy();
|
412
|
+
expect(screen.getByRole('button', { name: /Show more/i })).toBeTruthy();
|
413
|
+
});
|
414
|
+
it('should handle click on expandable code correctly', () => __awaiter(void 0, void 0, void 0, function* () {
|
415
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: CODE_MESSAGE, codeBlockProps: { isExpandable: true } }));
|
416
|
+
const button = screen.getByRole('button', { name: /Show more/i });
|
417
|
+
yield userEvent.click(button);
|
418
|
+
expect(screen.getByRole('button', { name: /Show less/i })).toBeTruthy();
|
419
|
+
expect(screen.getByText(/yaml/)).toBeTruthy();
|
420
|
+
expect(screen.getByText(/apiVersion:/i)).toBeTruthy();
|
421
|
+
expect(screen.getByText(/helm.openshift.io\/v1beta1/i)).toBeTruthy();
|
422
|
+
expect(screen.getByText(/metadata:/i)).toBeTruthy();
|
423
|
+
expect(screen.getByText(/name:/i)).toBeTruthy();
|
424
|
+
expect(screen.getByText(/azure-sample-repo0oooo00ooo/i)).toBeTruthy();
|
425
|
+
expect(screen.getByText(/spec/i)).toBeTruthy();
|
426
|
+
expect(screen.getByText(/connectionConfig:/i)).toBeTruthy();
|
427
|
+
expect(screen.getByText(/url:/i)).toBeTruthy();
|
428
|
+
expect(screen.getByText(/https:\/\/raw.githubusercontent.com\/Azure-Samples\/helm-charts\/master\/docs/i)).toBeTruthy();
|
429
|
+
}));
|
394
430
|
it('can click copy code button', () => __awaiter(void 0, void 0, void 0, function* () {
|
395
431
|
// need explicit setup since RTL stubs clipboard if you do this
|
396
432
|
const user = userEvent.setup();
|
397
|
-
render(
|
398
|
-
expect(screen.getByRole('button', { name: 'Copy code
|
399
|
-
yield user.click(screen.getByRole('button', { name: 'Copy code
|
433
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: CODE_MESSAGE }));
|
434
|
+
expect(screen.getByRole('button', { name: 'Copy code' })).toBeTruthy();
|
435
|
+
yield user.click(screen.getByRole('button', { name: 'Copy code' }));
|
400
436
|
const clipboardText = yield navigator.clipboard.readText();
|
401
437
|
expect(clipboardText.trim()).toEqual(CODE.trim());
|
402
438
|
}));
|
403
439
|
it('should handle codeBlockProps correctly by spreading it onto the CodeMessage', () => {
|
404
|
-
render(
|
440
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: CODE_MESSAGE, codeBlockProps: { 'aria-label': 'test' } }));
|
405
441
|
expect(screen.getByRole('button', { name: 'test' })).toBeTruthy();
|
406
442
|
});
|
407
443
|
it('should handle hasRoundAvatar correctly when it is true', () => {
|
408
|
-
render(
|
444
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Hi", hasRoundAvatar: true }));
|
409
445
|
expect(screen.getByRole('img')).toBeTruthy();
|
410
446
|
expect(screen.getByRole('img')).toHaveClass('pf-chatbot__message-avatar');
|
411
447
|
expect(screen.getByRole('img')).toHaveClass('pf-chatbot__message-avatar--round');
|
412
448
|
});
|
413
449
|
it('should handle hasRoundAvatar correctly when it is false', () => {
|
414
|
-
render(
|
450
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Hi", hasRoundAvatar: false }));
|
415
451
|
expect(screen.getByRole('img')).toBeTruthy();
|
416
452
|
expect(screen.getByRole('img')).toHaveClass('pf-chatbot__message-avatar');
|
417
453
|
expect(screen.getByRole('img')).not.toHaveClass('pf-chatbot__message-avatar--round');
|
418
454
|
});
|
419
455
|
it('should handle avatarProps correctly by spreading it onto the Message Avatar', () => {
|
420
|
-
render(
|
456
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Hi", avatarProps: { className: 'test' } }));
|
421
457
|
expect(screen.getByRole('img')).toBeTruthy();
|
422
458
|
expect(screen.getByRole('img')).toHaveClass('test');
|
423
459
|
});
|
424
460
|
it('should handle avatarProps and hasRoundAvatar correctly', () => {
|
425
|
-
render(
|
461
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Hi", avatarProps: { className: 'test' }, hasRoundAvatar: false }));
|
426
462
|
expect(screen.getByRole('img')).toBeTruthy();
|
427
463
|
expect(screen.getByRole('img')).toHaveClass('test');
|
428
464
|
expect(screen.getByRole('img')).toHaveClass('pf-chatbot__message-avatar');
|
429
465
|
});
|
430
466
|
it('should handle QuickStart tile correctly', () => {
|
431
|
-
render(
|
467
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Hi", quickStarts: {
|
432
468
|
quickStart: monitorSampleAppQuickStart,
|
433
469
|
onSelectQuickStart: (id) => alert(id)
|
434
470
|
} }));
|
@@ -439,7 +475,7 @@ describe('Message', () => {
|
|
439
475
|
});
|
440
476
|
it('should handle click on QuickStart tile correctly', () => __awaiter(void 0, void 0, void 0, function* () {
|
441
477
|
const spy = jest.fn();
|
442
|
-
render(
|
478
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Hi", quickStarts: {
|
443
479
|
quickStart: monitorSampleAppQuickStart,
|
444
480
|
onSelectQuickStart: (id) => spy(id)
|
445
481
|
} }));
|
@@ -449,20 +485,20 @@ describe('Message', () => {
|
|
449
485
|
}));
|
450
486
|
it('should handle QuickStart tile with image correctly', () => __awaiter(void 0, void 0, void 0, function* () {
|
451
487
|
const spy = jest.fn();
|
452
|
-
render(
|
488
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Hi", quickStarts: {
|
453
489
|
quickStart: monitorSampleAppQuickStartWithImage,
|
454
490
|
onSelectQuickStart: (id) => spy(id)
|
455
491
|
} }));
|
456
492
|
expect(screen.getAllByRole('img')[1]).toHaveAttribute('src', 'test.png');
|
457
493
|
}));
|
458
494
|
it('should handle block quote correctly', () => {
|
459
|
-
render(
|
495
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: BLOCK_QUOTES }));
|
460
496
|
expect(screen.getByText(/Blockquotes can also be nested.../)).toBeTruthy();
|
461
497
|
expect(screen.getByText('...by using additional greater-than signs (>) right next to each other...')).toBeTruthy();
|
462
498
|
expect(screen.getByText(/...or with spaces between each sign./)).toBeTruthy();
|
463
499
|
});
|
464
500
|
it('should handle heading correctly', () => {
|
465
|
-
render(
|
501
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: HEADING }));
|
466
502
|
expect(screen.getByRole('heading', { name: /h1 Heading/i })).toBeTruthy();
|
467
503
|
expect(screen.getByRole('heading', { name: /h2 Heading/i })).toBeTruthy();
|
468
504
|
expect(screen.getByRole('heading', { name: /h3 Heading/i })).toBeTruthy();
|
@@ -471,7 +507,7 @@ describe('Message', () => {
|
|
471
507
|
expect(screen.getByRole('heading', { name: /h6 Heading/i })).toBeTruthy();
|
472
508
|
});
|
473
509
|
it('should render table correctly', () => {
|
474
|
-
render(
|
510
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: TABLE }));
|
475
511
|
expect(screen.getByRole('row', { name: /Column 1 Column 2/i })).toBeTruthy();
|
476
512
|
expect(screen.getByRole('row', { name: /Cell 1 Cell 2/i })).toBeTruthy();
|
477
513
|
expect(screen.getByRole('row', { name: /Cell 3 Cell 4/i })).toBeTruthy();
|
@@ -483,7 +519,7 @@ describe('Message', () => {
|
|
483
519
|
expect(screen.getByRole('cell', { name: /Cell 4/i })).toBeTruthy();
|
484
520
|
});
|
485
521
|
it('should render table data labels correctly for mobile breakpoint', () => {
|
486
|
-
render(
|
522
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: TABLE }));
|
487
523
|
expect(screen.getByRole('row', { name: /Cell 1 Cell 2/i })).toHaveAttribute('extraHeaders', 'Column 1,Column 2');
|
488
524
|
expect(screen.getByRole('row', { name: /Cell 3 Cell 4/i })).toHaveAttribute('extraHeaders', 'Column 1,Column 2');
|
489
525
|
expect(screen.getByRole('cell', { name: /Cell 1/i })).toHaveAttribute('data-label', 'Column 1');
|
@@ -492,70 +528,70 @@ describe('Message', () => {
|
|
492
528
|
expect(screen.getByRole('cell', { name: /Cell 4/i })).toHaveAttribute('data-label', 'Column 2');
|
493
529
|
});
|
494
530
|
it('should render table data labels correctly for mobile breakpoint for one column table', () => {
|
495
|
-
render(
|
531
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: ONE_COLUMN_TABLE }));
|
496
532
|
expect(screen.getByRole('row', { name: /Cell 1/i })).toHaveAttribute('extraHeaders', 'Column 1');
|
497
533
|
expect(screen.getByRole('row', { name: /Cell 2/i })).toHaveAttribute('extraHeaders', 'Column 1');
|
498
534
|
expect(screen.getByRole('cell', { name: /Cell 1/i })).toHaveAttribute('data-label', 'Column 1');
|
499
535
|
expect(screen.getByRole('cell', { name: /Cell 2/i })).toHaveAttribute('data-label', 'Column 1');
|
500
536
|
});
|
501
537
|
it('should render table data labels correctly for mobile breakpoint for one cell table', () => {
|
502
|
-
render(
|
538
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: ONE_CELL_TABLE }));
|
503
539
|
expect(screen.getByRole('row', { name: /Cell 1/i })).toHaveAttribute('extraHeaders', 'Column 1');
|
504
540
|
expect(screen.getByRole('cell', { name: /Cell 1/i })).toHaveAttribute('data-label', 'Column 1');
|
505
541
|
});
|
506
542
|
it('should render table data labels correctly for mobile breakpoint for headerless', () => {
|
507
|
-
render(
|
543
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: HEADERLESS_TABLE }));
|
508
544
|
expect(screen.getByRole('row', { name: /Cell 1/i })).toHaveAttribute('extraHeaders', '');
|
509
545
|
expect(screen.getByRole('cell', { name: /Cell 1/i })).not.toHaveAttribute('data-label');
|
510
546
|
});
|
511
547
|
it('should render table data labels correctly for mobile breakpoint for childless', () => {
|
512
|
-
render(
|
548
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: CHILDLESS_TABLE }));
|
513
549
|
expect(screen.getByRole('cell')).not.toHaveAttribute('extraHeaders', 'Column 1');
|
514
550
|
});
|
515
551
|
it('should render table data labels correctly for mobile breakpoint for empty', () => {
|
516
|
-
render(
|
552
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: EMPTY_TABLE }));
|
517
553
|
expect(screen.getByRole('cell')).not.toHaveAttribute('extraHeaders', '');
|
518
554
|
});
|
519
555
|
it('should render custom table aria label correctly', () => {
|
520
|
-
render(
|
556
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: TABLE, tableProps: { 'aria-label': 'Test' } }));
|
521
557
|
expect(screen.getByRole('grid', { name: /Test/i })).toBeTruthy();
|
522
558
|
});
|
523
559
|
it('should render beforeMainContent with main content', () => {
|
524
560
|
const mainContent = 'Main message content';
|
525
561
|
const beforeMainContentText = 'Before main content';
|
526
|
-
const beforeMainContent =
|
527
|
-
render(
|
562
|
+
const beforeMainContent = _jsx("div", { children: beforeMainContentText });
|
563
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: mainContent, extraContent: { beforeMainContent } }));
|
528
564
|
expect(screen.getByText(beforeMainContentText)).toBeTruthy();
|
529
565
|
expect(screen.getByText(mainContent)).toBeTruthy();
|
530
566
|
});
|
531
567
|
it('should render afterMainContent with main content', () => {
|
532
568
|
const mainContent = 'Main message content';
|
533
569
|
const afterMainContentText = 'After main content';
|
534
|
-
const afterMainContent =
|
535
|
-
render(
|
570
|
+
const afterMainContent = _jsx("div", { children: afterMainContentText });
|
571
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: mainContent, extraContent: { afterMainContent } }));
|
536
572
|
expect(screen.getByText(afterMainContentText)).toBeTruthy();
|
537
573
|
expect(screen.getByText(mainContent)).toBeTruthy();
|
538
574
|
});
|
539
575
|
it('should render endContent with main content', () => {
|
540
576
|
const mainContent = 'Main message content';
|
541
577
|
const endMainContentText = 'End content';
|
542
|
-
const endContent =
|
543
|
-
render(
|
578
|
+
const endContent = _jsx("div", { children: endMainContentText });
|
579
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: mainContent, extraContent: { endContent } }));
|
544
580
|
expect(screen.getByText(endMainContentText)).toBeTruthy();
|
545
581
|
expect(screen.getByText(mainContent)).toBeTruthy();
|
546
582
|
});
|
547
583
|
it('should render all parts of extraContent with main content', () => {
|
548
|
-
const beforeMainContent =
|
549
|
-
const afterMainContent =
|
550
|
-
const endContent =
|
551
|
-
render(
|
584
|
+
const beforeMainContent = _jsx("div", { children: "Before main content" });
|
585
|
+
const afterMainContent = _jsx("div", { children: "After main content" });
|
586
|
+
const endContent = _jsx("div", { children: "End content" });
|
587
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Main message content", extraContent: { beforeMainContent, afterMainContent, endContent } }));
|
552
588
|
expect(screen.getByText('Before main content')).toBeTruthy();
|
553
589
|
expect(screen.getByText('Main message content')).toBeTruthy();
|
554
590
|
expect(screen.getByText('After main content')).toBeTruthy();
|
555
591
|
expect(screen.getByText('End content')).toBeTruthy();
|
556
592
|
});
|
557
593
|
it('should not render extraContent when not provided', () => {
|
558
|
-
render(
|
594
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Main message content" }));
|
559
595
|
// Ensure no extraContent is rendered
|
560
596
|
expect(screen.getByText('Main message content')).toBeTruthy();
|
561
597
|
expect(screen.queryByText('Before main content')).toBeFalsy();
|
@@ -563,7 +599,7 @@ describe('Message', () => {
|
|
563
599
|
expect(screen.queryByText('end message content')).toBeFalsy();
|
564
600
|
});
|
565
601
|
it('should handle undefined or null values in extraContent gracefully', () => {
|
566
|
-
render(
|
602
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Main message content", extraContent: { beforeMainContent: null, afterMainContent: undefined, endContent: null } }));
|
567
603
|
// Ensure that no extraContent is rendered if they are null or undefined
|
568
604
|
expect(screen.getByText('Main message content')).toBeTruthy();
|
569
605
|
expect(screen.queryByText('Before main content')).toBeFalsy();
|
@@ -571,64 +607,66 @@ describe('Message', () => {
|
|
571
607
|
expect(screen.queryByText('end message content')).toBeFalsy();
|
572
608
|
});
|
573
609
|
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 } }));
|
610
|
+
const beforeMainContent = (_jsx("div", { "data-testid": "before-main-content", children: _jsx("strong", { children: "Bold before content" }) }));
|
611
|
+
const afterMainContent = (_jsx("div", { "data-testid": "after-main-content", children: _jsx("strong", { children: "Bold after content" }) }));
|
612
|
+
const endContent = (_jsx("div", { "data-testid": "end-main-content", children: _jsx("strong", { children: "Bold end content" }) }));
|
613
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: "Main message content", extraContent: { beforeMainContent, afterMainContent, endContent } }));
|
581
614
|
// Check that the JSX is correctly rendered
|
582
615
|
expect(screen.getByTestId('before-main-content')).toContainHTML('<strong>Bold before content</strong>');
|
583
616
|
expect(screen.getByTestId('after-main-content')).toContainHTML('<strong>Bold after content</strong>');
|
584
617
|
expect(screen.getByTestId('end-main-content')).toContainHTML('<strong>Bold end content</strong>');
|
585
618
|
});
|
586
619
|
it('should handle image correctly', () => {
|
587
|
-
render(
|
620
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: IMAGE }));
|
621
|
+
expect(screen.getByRole('img', { name: /Multi-colored wavy lines on a black background/i })).toBeTruthy();
|
622
|
+
});
|
623
|
+
it('inline image parent should have class pf-chatbot__message-and-actions', () => {
|
624
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: INLINE_IMAGE }));
|
588
625
|
expect(screen.getByRole('img', { name: /Multi-colored wavy lines on a black background/i })).toBeTruthy();
|
626
|
+
expect(screen.getByRole('img', { name: /Multi-colored wavy lines on a black background/i }).parentElement).toHaveClass('pf-chatbot__message-and-actions');
|
589
627
|
});
|
590
628
|
it('should handle external links correctly', () => {
|
591
|
-
render(
|
629
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: `[PatternFly](https://www.patternfly.org/)` }));
|
592
630
|
// we are mocking rehype libraries, so we can't test target _blank addition on links directly with RTL
|
593
631
|
expect(rehypeExternalLinks).toHaveBeenCalledTimes(1);
|
594
632
|
});
|
595
633
|
it('should handle external links correctly', () => {
|
596
|
-
render(
|
634
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: `[PatternFly](https://www.patternfly.org/)`, openLinkInNewTab: false }));
|
597
635
|
// we are mocking rehype libraries, so we can't test target _blank addition on links directly with RTL
|
598
636
|
expect(rehypeExternalLinks).not.toHaveBeenCalled();
|
599
637
|
});
|
600
638
|
it('should handle extra link props correctly', () => __awaiter(void 0, void 0, void 0, function* () {
|
601
639
|
const spy = jest.fn();
|
602
|
-
render(
|
640
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", content: `[PatternFly](https://www.patternfly.org/)`, linkProps: { onClick: spy } }));
|
603
641
|
yield userEvent.click(screen.getByRole('link', { name: /PatternFly/i }));
|
604
642
|
expect(spy).toHaveBeenCalledTimes(1);
|
605
643
|
}));
|
606
644
|
it('should handle error correctly', () => {
|
607
|
-
render(
|
645
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", error: ERROR }));
|
608
646
|
expect(screen.getByRole('heading', { name: /Could not load chat/i })).toBeTruthy();
|
609
647
|
expect(screen.getByRole('link', { name: /Start a new chat/i })).toBeTruthy();
|
610
648
|
expect(screen.getByRole('link', { name: /Contact support/i })).toBeTruthy();
|
611
649
|
expect(screen.getByText('Wait a few minutes and check your network settings. If the issue persists:')).toBeTruthy();
|
612
650
|
});
|
613
651
|
it('should handle error correctly when loading', () => {
|
614
|
-
render(
|
652
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", error: ERROR, isLoading: true }));
|
615
653
|
expect(screen.queryByRole('heading', { name: /Could not load chat/i })).toBeFalsy();
|
616
654
|
expect(screen.getByText('Loading message')).toBeTruthy();
|
617
655
|
});
|
618
656
|
it('should handle error correctly when these is content', () => {
|
619
|
-
render(
|
657
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", error: ERROR, content: "Test" }));
|
620
658
|
expect(screen.getByRole('heading', { name: /Could not load chat/i })).toBeTruthy();
|
621
659
|
expect(screen.queryByText('Test')).toBeFalsy();
|
622
660
|
});
|
623
661
|
it('should handle isEditable when there is message content', () => {
|
624
|
-
render(
|
662
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", isEditable: true, content: "Test" }));
|
625
663
|
expect(screen.getByRole('textbox')).toBeTruthy();
|
626
664
|
expect(screen.getByRole('textbox')).toHaveValue('Test');
|
627
665
|
expect(screen.getByRole('button', { name: /Update/i })).toBeTruthy();
|
628
666
|
expect(screen.getByRole('button', { name: /Cancel/i })).toBeTruthy();
|
629
667
|
});
|
630
668
|
it('should handle isEditable when there is no message content', () => {
|
631
|
-
render(
|
669
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", isEditable: true }));
|
632
670
|
expect(screen.getByRole('textbox')).toBeTruthy();
|
633
671
|
expect(screen.getByRole('textbox')).toHaveValue('');
|
634
672
|
expect(screen.getByRole('textbox')).toHaveAttribute('placeholder', 'Edit prompt message...');
|
@@ -636,33 +674,33 @@ describe('Message', () => {
|
|
636
674
|
expect(screen.getByRole('button', { name: /Cancel/i })).toBeTruthy();
|
637
675
|
});
|
638
676
|
it('should be able to change edit placeholder', () => {
|
639
|
-
render(
|
677
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", isEditable: true, editPlaceholder: "I am a placeholder" }));
|
640
678
|
expect(screen.getByRole('textbox')).toBeTruthy();
|
641
679
|
expect(screen.getByRole('textbox')).toHaveValue('');
|
642
680
|
expect(screen.getByRole('textbox')).toHaveAttribute('placeholder', 'I am a placeholder');
|
643
681
|
});
|
644
682
|
it('should be able to change updateWord', () => {
|
645
|
-
render(
|
683
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", isEditable: true, updateWord: "Submit" }));
|
646
684
|
expect(screen.getByRole('button', { name: /Submit/i })).toBeTruthy();
|
647
685
|
});
|
648
686
|
it('should be able to change cancelWord', () => {
|
649
|
-
render(
|
687
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", isEditable: true, cancelWord: "Don't submit" }));
|
650
688
|
expect(screen.getByRole('button', { name: /Don't submit/i })).toBeTruthy();
|
651
689
|
});
|
652
690
|
it('should be able to add onEditUpdate', () => __awaiter(void 0, void 0, void 0, function* () {
|
653
691
|
const spy = jest.fn();
|
654
|
-
render(
|
692
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", isEditable: true, onEditUpdate: spy }));
|
655
693
|
yield userEvent.click(screen.getByRole('button', { name: /Update/i }));
|
656
694
|
expect(spy).toHaveBeenCalledTimes(1);
|
657
695
|
}));
|
658
696
|
it('should be able to add onEditCancel', () => __awaiter(void 0, void 0, void 0, function* () {
|
659
697
|
const spy = jest.fn();
|
660
|
-
render(
|
698
|
+
render(_jsx(Message, { avatar: "./img", role: "user", name: "User", isEditable: true, onEditCancel: spy }));
|
661
699
|
yield userEvent.click(screen.getByRole('button', { name: /Cancel/i }));
|
662
700
|
expect(spy).toHaveBeenCalledTimes(1);
|
663
701
|
}));
|
664
702
|
it('should be able to add editFormProps', () => {
|
665
|
-
const { container } = render(
|
703
|
+
const { container } = render(_jsx(Message, { avatar: "./img", role: "user", name: "User", isEditable: true, editFormProps: { className: 'test' } }));
|
666
704
|
const form = container.querySelector('form');
|
667
705
|
expect(form).toHaveClass('test');
|
668
706
|
});
|
@@ -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;
|
@@ -1,6 +1,3 @@
|
|
1
|
-
// ============================================================================
|
2
|
-
// Chatbot Main - Message Input
|
3
|
-
// ============================================================================
|
4
1
|
var __rest = (this && this.__rest) || function (s, e) {
|
5
2
|
var t = {};
|
6
3
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
@@ -12,18 +9,15 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
12
9
|
}
|
13
10
|
return t;
|
14
11
|
};
|
15
|
-
import
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
13
|
+
import { useState } from 'react';
|
16
14
|
import { ActionGroup, Button, Form, TextArea } from '@patternfly/react-core';
|
17
15
|
const MessageInput = (_a) => {
|
18
16
|
var { editPlaceholder = 'Edit prompt message...', updateWord = 'Update', cancelWord = 'Cancel', onEditUpdate, onEditCancel, content } = _a, props = __rest(_a, ["editPlaceholder", "updateWord", "cancelWord", "onEditUpdate", "onEditCancel", "content"]);
|
19
|
-
const [messageText, setMessageText] =
|
20
|
-
const onChange = (
|
17
|
+
const [messageText, setMessageText] = useState(content !== null && content !== void 0 ? content : '');
|
18
|
+
const onChange = (_event, value) => {
|
21
19
|
setMessageText(value);
|
22
20
|
};
|
23
|
-
return (
|
24
|
-
React.createElement(TextArea, { placeholder: editPlaceholder, value: messageText, onChange: onChange, "aria-label": editPlaceholder, autoResize: true }),
|
25
|
-
React.createElement(ActionGroup, { className: "pf-chatbot__message-edit-buttons" },
|
26
|
-
React.createElement(Button, { variant: "primary", onClick: (event) => onEditUpdate && onEditUpdate(event, messageText) }, updateWord),
|
27
|
-
React.createElement(Button, { variant: "secondary", onClick: onEditCancel }, cancelWord))));
|
21
|
+
return (_jsxs(Form, Object.assign({}, props, { children: [_jsx(TextArea, { placeholder: editPlaceholder, value: messageText, onChange: onChange, "aria-label": editPlaceholder, autoResize: true }), _jsxs(ActionGroup, { className: "pf-chatbot__message-edit-buttons", children: [_jsx(Button, { variant: "primary", onClick: (event) => onEditUpdate && onEditUpdate(event, messageText), children: updateWord }), _jsx(Button, { variant: "secondary", onClick: onEditCancel, children: cancelWord })] })] })));
|
28
22
|
};
|
29
23
|
export default MessageInput;
|