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