@patternfly/chatbot 2.2.0-prerelease.3 → 2.2.0-prerelease.30
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/AttachmentEdit/AttachmentEdit.test.d.ts +1 -0
- package/dist/cjs/AttachmentEdit/AttachmentEdit.test.js +52 -0
- package/dist/cjs/Chatbot/Chatbot.test.d.ts +1 -0
- package/dist/cjs/Chatbot/Chatbot.test.js +28 -0
- package/dist/cjs/ChatbotAlert/ChatbotAlert.test.d.ts +1 -0
- package/dist/cjs/ChatbotAlert/ChatbotAlert.test.js +27 -0
- package/dist/cjs/ChatbotContent/ChatbotContent.test.d.ts +1 -0
- package/dist/cjs/ChatbotContent/ChatbotContent.test.js +18 -0
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +3 -3
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +3 -1
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +27 -4
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +23 -11
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +99 -3
- package/dist/cjs/ChatbotConversationHistoryNav/EmptyState.d.ts +11 -0
- package/dist/cjs/ChatbotConversationHistoryNav/EmptyState.js +29 -0
- package/dist/cjs/ChatbotConversationHistoryNav/LoadingState.d.ts +4 -0
- package/dist/cjs/ChatbotConversationHistoryNav/LoadingState.js +45 -0
- package/dist/cjs/ChatbotFooter/ChatbotFooter.test.d.ts +1 -0
- package/dist/cjs/ChatbotFooter/ChatbotFooter.test.js +18 -0
- package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.d.ts +1 -0
- package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.js +87 -0
- package/dist/cjs/ChatbotFooter/ChatbotFootnote.d.ts +1 -1
- package/dist/cjs/ChatbotFooter/ChatbotFootnote.js +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeader.test.d.ts +1 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeader.test.js +18 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.d.ts +1 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.js +18 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +17 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.js +16 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.js +20 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.d.ts +1 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.js +18 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.d.ts +2 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +4 -2
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.js +20 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +43 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +6 -4
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +41 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +1 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.js +47 -0
- package/dist/cjs/ChatbotHeader/index.d.ts +1 -0
- package/dist/cjs/ChatbotHeader/index.js +1 -0
- package/dist/cjs/ChatbotToggle/ChatbotToggle.js +3 -1
- package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +19 -11
- package/dist/cjs/CodeModal/CodeModal.js +2 -12
- package/dist/cjs/Compare/Compare.d.ts +17 -0
- package/dist/cjs/Compare/Compare.js +50 -0
- package/dist/cjs/Compare/Compare.test.d.ts +1 -0
- package/dist/cjs/Compare/Compare.test.js +20 -0
- package/dist/cjs/Compare/index.d.ts +2 -0
- package/dist/cjs/Compare/index.js +23 -0
- package/dist/cjs/Message/ImageMessage/ImageMessage.d.ts +4 -0
- package/dist/cjs/Message/ImageMessage/ImageMessage.js +25 -0
- package/dist/cjs/Message/LinkMessage/LinkMessage.d.ts +4 -0
- package/dist/cjs/Message/LinkMessage/LinkMessage.js +30 -0
- package/dist/cjs/Message/ListMessage/OrderedListMessage.d.ts +1 -1
- package/dist/cjs/Message/ListMessage/OrderedListMessage.js +2 -2
- package/dist/cjs/Message/Message.d.ts +47 -8
- package/dist/cjs/Message/Message.js +69 -18
- package/dist/cjs/Message/Message.test.js +265 -3
- package/dist/cjs/Message/QuickResponse/QuickResponse.d.ts +17 -0
- package/dist/cjs/Message/QuickResponse/QuickResponse.js +34 -0
- package/dist/cjs/Message/QuickStarts/FallbackImg.d.ts +13 -0
- package/dist/cjs/Message/QuickStarts/FallbackImg.js +34 -0
- package/dist/cjs/Message/QuickStarts/QuickStartTile.d.ts +27 -0
- package/dist/cjs/Message/QuickStarts/QuickStartTile.js +82 -0
- package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.d.ts +23 -0
- package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.js +64 -0
- package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.d.ts +1 -0
- package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.js +76 -0
- package/dist/cjs/Message/QuickStarts/QuickStartTileHeader.d.ts +11 -0
- package/dist/cjs/Message/QuickStarts/QuickStartTileHeader.js +30 -0
- package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.d.ts +30 -0
- package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.js +77 -0
- package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart.d.ts +30 -0
- package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart.js +77 -0
- package/dist/cjs/Message/QuickStarts/types.d.ts +132 -0
- package/dist/cjs/Message/QuickStarts/types.js +17 -0
- package/dist/cjs/Message/TableMessage/TableMessage.d.ts +20 -0
- package/dist/cjs/Message/TableMessage/TableMessage.js +67 -0
- package/dist/cjs/Message/TableMessage/TbodyMessage.d.ts +7 -0
- package/dist/cjs/Message/TableMessage/TbodyMessage.js +33 -0
- package/dist/cjs/Message/TableMessage/TdMessage.d.ts +5 -0
- package/dist/cjs/Message/TableMessage/TdMessage.js +26 -0
- package/dist/cjs/Message/TableMessage/ThMessage.d.ts +5 -0
- package/dist/cjs/Message/TableMessage/ThMessage.js +26 -0
- package/dist/cjs/Message/TableMessage/TheadMessage.d.ts +5 -0
- package/dist/cjs/Message/TableMessage/TheadMessage.js +26 -0
- package/dist/cjs/Message/TableMessage/TrMessage.d.ts +7 -0
- package/dist/cjs/Message/TableMessage/TrMessage.js +37 -0
- package/dist/cjs/Message/TextMessage/TextMessage.d.ts +2 -1
- package/dist/cjs/Message/TextMessage/TextMessage.js +2 -2
- package/dist/cjs/Message/UserFeedback/CloseButton.d.ts +10 -0
- package/dist/cjs/Message/UserFeedback/CloseButton.js +14 -0
- package/dist/cjs/Message/UserFeedback/UserFeedback.d.ts +39 -0
- package/dist/cjs/Message/UserFeedback/UserFeedback.js +55 -0
- package/dist/cjs/Message/UserFeedback/UserFeedback.test.d.ts +1 -0
- package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +146 -0
- package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.d.ts +42 -0
- package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +117 -0
- package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.d.ts +1 -0
- package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +249 -0
- package/dist/cjs/MessageBar/AttachButton.js +4 -2
- package/dist/cjs/MessageBar/MessageBar.d.ts +11 -4
- package/dist/cjs/MessageBar/MessageBar.js +122 -39
- package/dist/cjs/MessageBar/MessageBar.test.js +12 -4
- package/dist/cjs/MessageBar/MicrophoneButton.d.ts +1 -1
- package/dist/cjs/MessageBar/SendButton.js +3 -1
- package/dist/cjs/MessageBar/StopButton.js +3 -1
- package/dist/cjs/MessageBox/MessageBox.test.d.ts +1 -0
- package/dist/cjs/MessageBox/MessageBox.test.js +22 -0
- package/dist/cjs/PreviewAttachment/PreviewAttachment.test.d.ts +1 -0
- package/dist/cjs/PreviewAttachment/PreviewAttachment.test.js +28 -0
- package/dist/cjs/ResponseActions/ResponseActionButton.d.ts +10 -1
- package/dist/cjs/ResponseActions/ResponseActionButton.js +28 -5
- package/dist/cjs/ResponseActions/ResponseActionButton.test.d.ts +1 -0
- package/dist/cjs/ResponseActions/ResponseActionButton.test.js +54 -0
- package/dist/cjs/ResponseActions/ResponseActions.d.ts +12 -2
- package/dist/cjs/ResponseActions/ResponseActions.js +26 -9
- package/dist/cjs/ResponseActions/ResponseActions.test.js +79 -5
- package/dist/cjs/Settings/SettingsForm.d.ts +13 -0
- package/dist/cjs/Settings/SettingsForm.js +27 -0
- package/dist/cjs/Settings/SettingsForm.test.d.ts +1 -0
- package/dist/cjs/Settings/SettingsForm.test.js +26 -0
- package/dist/cjs/Settings/index.d.ts +2 -0
- package/dist/cjs/Settings/index.js +23 -0
- package/dist/cjs/TermsOfUse/TermsOfUse.d.ts +34 -0
- package/dist/cjs/TermsOfUse/TermsOfUse.js +49 -0
- package/dist/cjs/TermsOfUse/TermsOfUse.test.d.ts +1 -0
- package/dist/cjs/TermsOfUse/TermsOfUse.test.js +79 -0
- package/dist/cjs/TermsOfUse/index.d.ts +2 -0
- package/dist/cjs/TermsOfUse/index.js +23 -0
- package/dist/cjs/__mocks__/rehype-external-links.d.ts +2 -0
- package/dist/cjs/__mocks__/rehype-external-links.js +4 -0
- package/dist/cjs/__mocks__/rehype-sanitize.d.ts +2 -0
- package/dist/cjs/__mocks__/rehype-sanitize.js +4 -0
- package/dist/cjs/__mocks__/rehype-unwrap-images.d.ts +2 -0
- package/dist/cjs/__mocks__/rehype-unwrap-images.js +4 -0
- package/dist/cjs/index.d.ts +6 -0
- package/dist/cjs/index.js +10 -1
- package/dist/css/main.css +467 -123
- package/dist/css/main.css.map +1 -1
- package/dist/dynamic/Compare/package.json +1 -0
- package/dist/dynamic/Settings/package.json +1 -0
- package/dist/dynamic/TermsOfUse/package.json +1 -0
- package/dist/esm/AttachmentEdit/AttachmentEdit.test.d.ts +1 -0
- package/dist/esm/AttachmentEdit/AttachmentEdit.test.js +47 -0
- package/dist/esm/Chatbot/Chatbot.test.d.ts +1 -0
- package/dist/esm/Chatbot/Chatbot.test.js +23 -0
- package/dist/esm/ChatbotAlert/ChatbotAlert.test.d.ts +1 -0
- package/dist/esm/ChatbotAlert/ChatbotAlert.test.js +22 -0
- package/dist/esm/ChatbotContent/ChatbotContent.test.d.ts +1 -0
- package/dist/esm/ChatbotContent/ChatbotContent.test.js +13 -0
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +3 -3
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +3 -1
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +27 -4
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +23 -11
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +99 -3
- package/dist/esm/ChatbotConversationHistoryNav/EmptyState.d.ts +11 -0
- package/dist/esm/ChatbotConversationHistoryNav/EmptyState.js +22 -0
- package/dist/esm/ChatbotConversationHistoryNav/LoadingState.d.ts +4 -0
- package/dist/esm/ChatbotConversationHistoryNav/LoadingState.js +38 -0
- package/dist/esm/ChatbotFooter/ChatbotFooter.test.d.ts +1 -0
- package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +13 -0
- package/dist/esm/ChatbotFooter/ChatbotFooternote.test.d.ts +1 -0
- package/dist/esm/ChatbotFooter/ChatbotFooternote.test.js +82 -0
- package/dist/esm/ChatbotFooter/ChatbotFootnote.d.ts +1 -1
- package/dist/esm/ChatbotFooter/ChatbotFootnote.js +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeader.test.d.ts +1 -0
- package/dist/esm/ChatbotHeader/ChatbotHeader.test.js +13 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.d.ts +1 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.js +13 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +17 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.js +10 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.js +15 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.d.ts +1 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.js +13 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.d.ts +2 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +4 -2
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +15 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +38 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +6 -4
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +36 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +1 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.js +42 -0
- package/dist/esm/ChatbotHeader/index.d.ts +1 -0
- package/dist/esm/ChatbotHeader/index.js +1 -0
- package/dist/esm/ChatbotToggle/ChatbotToggle.js +3 -1
- package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +19 -11
- package/dist/esm/CodeModal/CodeModal.js +2 -12
- package/dist/esm/Compare/Compare.d.ts +17 -0
- package/dist/esm/Compare/Compare.js +43 -0
- package/dist/esm/Compare/Compare.test.d.ts +1 -0
- package/dist/esm/Compare/Compare.test.js +15 -0
- package/dist/esm/Compare/index.d.ts +2 -0
- package/dist/esm/Compare/index.js +2 -0
- package/dist/esm/Message/ImageMessage/ImageMessage.d.ts +4 -0
- package/dist/esm/Message/ImageMessage/ImageMessage.js +20 -0
- package/dist/esm/Message/LinkMessage/LinkMessage.d.ts +4 -0
- package/dist/esm/Message/LinkMessage/LinkMessage.js +25 -0
- package/dist/esm/Message/ListMessage/OrderedListMessage.d.ts +1 -1
- package/dist/esm/Message/ListMessage/OrderedListMessage.js +2 -2
- package/dist/esm/Message/Message.d.ts +47 -8
- package/dist/esm/Message/Message.js +67 -16
- package/dist/esm/Message/Message.test.js +265 -3
- package/dist/esm/Message/QuickResponse/QuickResponse.d.ts +17 -0
- package/dist/esm/Message/QuickResponse/QuickResponse.js +27 -0
- package/dist/esm/Message/QuickStarts/FallbackImg.d.ts +13 -0
- package/dist/esm/Message/QuickStarts/FallbackImg.js +9 -0
- package/dist/esm/Message/QuickStarts/QuickStartTile.d.ts +27 -0
- package/dist/esm/Message/QuickStarts/QuickStartTile.js +52 -0
- package/dist/esm/Message/QuickStarts/QuickStartTileDescription.d.ts +23 -0
- package/dist/esm/Message/QuickStarts/QuickStartTileDescription.js +35 -0
- package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.d.ts +1 -0
- package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.js +48 -0
- package/dist/esm/Message/QuickStarts/QuickStartTileHeader.d.ts +11 -0
- package/dist/esm/Message/QuickStarts/QuickStartTileHeader.js +5 -0
- package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.d.ts +30 -0
- package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.js +74 -0
- package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart.d.ts +30 -0
- package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart.js +74 -0
- package/dist/esm/Message/QuickStarts/types.d.ts +132 -0
- package/dist/esm/Message/QuickStarts/types.js +14 -0
- package/dist/esm/Message/TableMessage/TableMessage.d.ts +20 -0
- package/dist/esm/Message/TableMessage/TableMessage.js +62 -0
- package/dist/esm/Message/TableMessage/TbodyMessage.d.ts +7 -0
- package/dist/esm/Message/TableMessage/TbodyMessage.js +28 -0
- package/dist/esm/Message/TableMessage/TdMessage.d.ts +5 -0
- package/dist/esm/Message/TableMessage/TdMessage.js +21 -0
- package/dist/esm/Message/TableMessage/ThMessage.d.ts +5 -0
- package/dist/esm/Message/TableMessage/ThMessage.js +21 -0
- package/dist/esm/Message/TableMessage/TheadMessage.d.ts +5 -0
- package/dist/esm/Message/TableMessage/TheadMessage.js +21 -0
- package/dist/esm/Message/TableMessage/TrMessage.d.ts +7 -0
- package/dist/esm/Message/TableMessage/TrMessage.js +32 -0
- package/dist/esm/Message/TextMessage/TextMessage.d.ts +2 -1
- package/dist/esm/Message/TextMessage/TextMessage.js +3 -3
- package/dist/esm/Message/UserFeedback/CloseButton.d.ts +10 -0
- package/dist/esm/Message/UserFeedback/CloseButton.js +9 -0
- package/dist/esm/Message/UserFeedback/UserFeedback.d.ts +39 -0
- package/dist/esm/Message/UserFeedback/UserFeedback.js +50 -0
- package/dist/esm/Message/UserFeedback/UserFeedback.test.d.ts +1 -0
- package/dist/esm/Message/UserFeedback/UserFeedback.test.js +141 -0
- package/dist/esm/Message/UserFeedback/UserFeedbackComplete.d.ts +42 -0
- package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +112 -0
- package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.d.ts +1 -0
- package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +244 -0
- package/dist/esm/MessageBar/AttachButton.js +4 -2
- package/dist/esm/MessageBar/MessageBar.d.ts +11 -4
- package/dist/esm/MessageBar/MessageBar.js +122 -39
- package/dist/esm/MessageBar/MessageBar.test.js +12 -4
- package/dist/esm/MessageBar/MicrophoneButton.d.ts +1 -1
- package/dist/esm/MessageBar/SendButton.js +3 -1
- package/dist/esm/MessageBar/StopButton.js +3 -1
- package/dist/esm/MessageBox/MessageBox.test.d.ts +1 -0
- package/dist/esm/MessageBox/MessageBox.test.js +17 -0
- package/dist/esm/PreviewAttachment/PreviewAttachment.test.d.ts +1 -0
- package/dist/esm/PreviewAttachment/PreviewAttachment.test.js +23 -0
- package/dist/esm/ResponseActions/ResponseActionButton.d.ts +10 -1
- package/dist/esm/ResponseActions/ResponseActionButton.js +25 -2
- package/dist/esm/ResponseActions/ResponseActionButton.test.d.ts +1 -0
- package/dist/esm/ResponseActions/ResponseActionButton.test.js +49 -0
- package/dist/esm/ResponseActions/ResponseActions.d.ts +12 -2
- package/dist/esm/ResponseActions/ResponseActions.js +26 -9
- package/dist/esm/ResponseActions/ResponseActions.test.js +79 -5
- package/dist/esm/Settings/SettingsForm.d.ts +13 -0
- package/dist/esm/Settings/SettingsForm.js +20 -0
- package/dist/esm/Settings/SettingsForm.test.d.ts +1 -0
- package/dist/esm/Settings/SettingsForm.test.js +21 -0
- package/dist/esm/Settings/index.d.ts +2 -0
- package/dist/esm/Settings/index.js +2 -0
- package/dist/esm/TermsOfUse/TermsOfUse.d.ts +34 -0
- package/dist/esm/TermsOfUse/TermsOfUse.js +42 -0
- package/dist/esm/TermsOfUse/TermsOfUse.test.d.ts +1 -0
- package/dist/esm/TermsOfUse/TermsOfUse.test.js +74 -0
- package/dist/esm/TermsOfUse/index.d.ts +2 -0
- package/dist/esm/TermsOfUse/index.js +2 -0
- package/dist/esm/__mocks__/rehype-external-links.d.ts +2 -0
- package/dist/esm/__mocks__/rehype-external-links.js +2 -0
- package/dist/esm/__mocks__/rehype-sanitize.d.ts +2 -0
- package/dist/esm/__mocks__/rehype-sanitize.js +2 -0
- package/dist/esm/__mocks__/rehype-unwrap-images.d.ts +2 -0
- package/dist/esm/__mocks__/rehype-unwrap-images.js +2 -0
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.js +6 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -13
- package/patternfly-docs/content/extensions/chatbot/about-chatbot.md +5 -2
- package/patternfly-docs/content/extensions/chatbot/design-guidelines.md +41 -4
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentError.tsx +2 -2
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +191 -12
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDropZone.tsx +2 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithAttachment.tsx +2 -2
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithCustomResponseActions.tsx +5 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +71 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedbackTimeout.tsx +27 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickStart.tsx +31 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithResponseActions.tsx +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithSources.tsx +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +74 -11
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +221 -14
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessageWithExtraContent.tsx +54 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/explore-pipeline-quickstart.ts +65 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFooter.tsx +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFootnote.tsx +5 -5
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderBasic.tsx +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +36 -3
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerNavigation.tsx +67 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerResizable.tsx +94 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarAttach.tsx +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomeInteraction.tsx +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomePrompt.tsx +7 -7
- package/patternfly-docs/content/extensions/chatbot/examples/UI/PF-TermsAndConditionsHeader.svg +148 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/Settings.tsx +289 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/SquareChatbotToggle.tsx +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/UI/TermsOfUse.tsx +147 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +49 -6
- package/patternfly-docs/content/extensions/chatbot/examples/demos/AttachmentDemos.md +14 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +26 -3
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.tsx +11 -11
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +21 -20
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +3 -3
- package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +11 -11
- package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedComparisonChatbot.tsx +206 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Feedback.tsx +104 -0
- package/patternfly-docs/content/extensions/chatbot/img/attached-file.svg +24 -29
- package/patternfly-docs/content/extensions/chatbot/img/attachment-menu.svg +4 -4
- package/patternfly-docs/content/extensions/chatbot/img/attachment-unsent.svg +30 -57
- package/patternfly-docs/content/extensions/chatbot/img/chatbot-elements.svg +5 -5
- package/patternfly-docs/content/extensions/chatbot/img/chatbot-quickstarts-tile.svg +58 -0
- package/patternfly-docs/content/extensions/chatbot/img/chatbot-settings.svg +83 -0
- package/patternfly-docs/content/extensions/chatbot/img/conversation-history.svg +6 -29
- package/patternfly-docs/content/extensions/chatbot/img/docked.svg +68 -49
- package/patternfly-docs/content/extensions/chatbot/img/footnote.svg +1 -1
- package/patternfly-docs/content/extensions/chatbot/img/fullscreen.svg +25 -16
- package/patternfly-docs/content/extensions/chatbot/img/listening.svg +1 -1
- package/patternfly-docs/content/extensions/chatbot/img/message-bar-elements.svg +3 -3
- package/patternfly-docs/content/extensions/chatbot/img/message-elements.svg +85 -142
- package/patternfly-docs/content/extensions/chatbot/img/overlay.svg +52 -36
- package/patternfly-docs/content/extensions/chatbot/img/settings-menu.svg +122 -0
- package/patternfly-docs/content/extensions/chatbot/img/source-tile.svg +62 -0
- package/patternfly-docs/content/extensions/chatbot/img/toggle-customizations.svg +12 -0
- package/src/AttachMenu/AttachMenu.scss +1 -1
- package/src/AttachmentEdit/AttachmentEdit.test.tsx +55 -0
- package/src/Chatbot/Chatbot.scss +1 -1
- package/src/Chatbot/Chatbot.test.tsx +31 -0
- package/src/ChatbotAlert/ChatbotAlert.test.tsx +31 -0
- package/src/ChatbotContent/ChatbotContent.test.tsx +15 -0
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx +10 -4
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +22 -1
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +242 -3
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +93 -25
- package/src/ChatbotConversationHistoryNav/EmptyState.tsx +44 -0
- package/src/ChatbotConversationHistoryNav/LoadingState.tsx +38 -0
- package/src/ChatbotFooter/ChatbotFooter.scss +0 -5
- package/src/ChatbotFooter/ChatbotFooter.test.tsx +15 -0
- package/src/ChatbotFooter/ChatbotFooternote.test.tsx +84 -0
- package/src/ChatbotFooter/ChatbotFootnote.tsx +2 -2
- package/src/ChatbotHeader/ChatbotHeader.scss +2 -5
- package/src/ChatbotHeader/ChatbotHeader.test.tsx +15 -0
- package/src/ChatbotHeader/ChatbotHeaderActions.test.tsx +17 -0
- package/src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx +20 -0
- package/src/ChatbotHeader/ChatbotHeaderCloseButton.tsx +57 -0
- package/src/ChatbotHeader/ChatbotHeaderMain.test.tsx +17 -0
- package/src/ChatbotHeader/ChatbotHeaderMenu.test.tsx +19 -0
- package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +11 -2
- package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx +45 -0
- package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +8 -1
- package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx +43 -0
- package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +11 -4
- package/src/ChatbotHeader/ChatbotHeaderTitle.test.tsx +59 -0
- package/src/ChatbotHeader/index.ts +1 -0
- package/src/ChatbotModal/ChatbotModal.scss +1 -1
- package/src/ChatbotToggle/ChatbotToggle.tsx +6 -1
- package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx +26 -18
- package/src/ChatbotWelcomePrompt/__snapshots__/ChatbotWelcomePrompt.test.tsx.snap +2 -2
- package/src/CodeModal/CodeModal.scss +9 -1
- package/src/CodeModal/CodeModal.tsx +2 -13
- package/src/Compare/Compare.scss +72 -0
- package/src/Compare/Compare.test.tsx +31 -0
- package/src/Compare/Compare.tsx +98 -0
- package/src/Compare/index.ts +2 -0
- package/src/FileDetails/FileDetails.scss +1 -1
- package/src/FileDropZone/__snapshots__/FileDropZone.test.tsx.snap +1 -1
- package/src/Message/CodeBlockMessage/CodeBlockMessage.scss +4 -4
- package/src/Message/ImageMessage/ImageMessage.scss +9 -0
- package/src/Message/ImageMessage/ImageMessage.tsx +14 -0
- package/src/Message/LinkMessage/LinkMessage.tsx +34 -0
- package/src/Message/ListMessage/ListMessage.scss +6 -6
- package/src/Message/ListMessage/OrderedListMessage.tsx +2 -2
- package/src/Message/Message.scss +4 -26
- package/src/Message/Message.test.tsx +357 -3
- package/src/Message/Message.tsx +148 -31
- package/src/Message/MessageLoading.scss +2 -2
- package/src/Message/QuickResponse/QuickResponse.scss +33 -0
- package/src/Message/QuickResponse/QuickResponse.tsx +54 -0
- package/src/Message/QuickStarts/FallbackImg.tsx +24 -0
- package/src/Message/QuickStarts/QuickStartTile.scss +24 -0
- package/src/Message/QuickStarts/QuickStartTile.tsx +147 -0
- package/src/Message/QuickStarts/QuickStartTileDescription.test.tsx +57 -0
- package/src/Message/QuickStarts/QuickStartTileDescription.tsx +81 -0
- package/src/Message/QuickStarts/QuickStartTileHeader.tsx +21 -0
- package/src/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.ts +75 -0
- package/src/Message/QuickStarts/monitor-sampleapp-quickstart.ts +75 -0
- package/src/Message/QuickStarts/types.ts +154 -0
- package/src/Message/TableMessage/TableMessage.scss +23 -0
- package/src/Message/TableMessage/TableMessage.tsx +83 -0
- package/src/Message/TableMessage/TbodyMessage.tsx +20 -0
- package/src/Message/TableMessage/TdMessage.tsx +11 -0
- package/src/Message/TableMessage/ThMessage.tsx +11 -0
- package/src/Message/TableMessage/TheadMessage.tsx +11 -0
- package/src/Message/TableMessage/TrMessage.tsx +27 -0
- package/src/Message/TextMessage/TextMessage.scss +21 -12
- package/src/Message/TextMessage/TextMessage.tsx +3 -3
- package/src/Message/UserFeedback/CloseButton.tsx +21 -0
- package/src/Message/UserFeedback/UserFeedback.scss +53 -0
- package/src/Message/UserFeedback/UserFeedback.test.tsx +257 -0
- package/src/Message/UserFeedback/UserFeedback.tsx +132 -0
- package/src/Message/UserFeedback/UserFeedbackComplete.test.tsx +255 -0
- package/src/Message/UserFeedback/UserFeedbackComplete.tsx +211 -0
- package/src/MessageBar/AttachButton.scss +19 -3
- package/src/MessageBar/AttachButton.tsx +3 -1
- package/src/MessageBar/MessageBar.scss +38 -20
- package/src/MessageBar/MessageBar.test.tsx +12 -4
- package/src/MessageBar/MessageBar.tsx +153 -58
- package/src/MessageBar/MicrophoneButton.scss +8 -8
- package/src/MessageBar/MicrophoneButton.tsx +1 -1
- package/src/MessageBar/SendButton.tsx +2 -0
- package/src/MessageBar/StopButton.scss +17 -3
- package/src/MessageBar/StopButton.tsx +2 -0
- package/src/MessageBox/JumpButton.scss +6 -6
- package/src/MessageBox/MessageBox.test.tsx +26 -0
- package/src/PreviewAttachment/PreviewAttachment.test.tsx +51 -0
- package/src/ResponseActions/ResponseActionButton.test.tsx +52 -0
- package/src/ResponseActions/ResponseActionButton.tsx +59 -28
- package/src/ResponseActions/ResponseActions.scss +11 -9
- package/src/ResponseActions/ResponseActions.test.tsx +105 -5
- package/src/ResponseActions/ResponseActions.tsx +80 -9
- package/src/Settings/Settings.scss +34 -0
- package/src/Settings/SettingsForm.test.tsx +28 -0
- package/src/Settings/SettingsForm.tsx +25 -0
- package/src/Settings/index.ts +3 -0
- package/src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss +1 -1
- package/src/SourcesCard/SourcesCard.scss +2 -2
- package/src/TermsOfUse/TermsOfUse.scss +66 -0
- package/src/TermsOfUse/TermsOfUse.test.tsx +138 -0
- package/src/TermsOfUse/TermsOfUse.tsx +117 -0
- package/src/TermsOfUse/index.ts +3 -0
- package/src/__mocks__/rehype-external-links.ts +3 -0
- package/src/__mocks__/rehype-sanitize.ts +3 -0
- package/src/__mocks__/rehype-unwrap-images.tsx +3 -0
- package/src/index.ts +9 -0
- package/src/main.scss +8 -6
@@ -34,22 +34,22 @@ import userAvatar from '../Messages/user_avatar.svg';
|
|
34
34
|
import patternflyAvatar from '../Messages/patternfly_avatar.jpg';
|
35
35
|
|
36
36
|
const footnoteProps = {
|
37
|
-
label: '
|
37
|
+
label: 'ChatBot uses AI. Check for mistakes.',
|
38
38
|
popover: {
|
39
|
-
title: 'Verify
|
40
|
-
description: `While
|
39
|
+
title: 'Verify information',
|
40
|
+
description: `While ChatBot strives for accuracy, AI is experimental and can make mistakes. We cannot guarantee that all information provided by ChatBot is up to date or without error. You should always verify responses using reliable sources, especially for crucial information and decision making.`,
|
41
41
|
bannerImage: {
|
42
42
|
src: 'https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif',
|
43
43
|
alt: 'Example image for footnote popover'
|
44
44
|
},
|
45
45
|
cta: {
|
46
|
-
label: '
|
46
|
+
label: 'Dismiss',
|
47
47
|
onClick: () => {
|
48
48
|
alert('Do something!');
|
49
49
|
}
|
50
50
|
},
|
51
51
|
link: {
|
52
|
-
label: '
|
52
|
+
label: 'View AI policy',
|
53
53
|
url: 'https://www.redhat.com/'
|
54
54
|
}
|
55
55
|
}
|
@@ -129,12 +129,12 @@ const initialMessages: MessageProps[] = [
|
|
129
129
|
|
130
130
|
const welcomePrompts = [
|
131
131
|
{
|
132
|
-
title: '
|
133
|
-
message: '
|
132
|
+
title: 'Set up account',
|
133
|
+
message: 'Choose the necessary settings and preferences for your account.'
|
134
134
|
},
|
135
135
|
{
|
136
|
-
title: '
|
137
|
-
message: '
|
136
|
+
title: 'Troubleshoot issue',
|
137
|
+
message: 'Find documentation and instructions to resolve your issue.'
|
138
138
|
}
|
139
139
|
];
|
140
140
|
|
@@ -436,8 +436,8 @@ export const ChatbotDemo: React.FunctionComponent = () => {
|
|
436
436
|
so that users of assistive devices receive sufficient context */}
|
437
437
|
<MessageBox announcement={announcement}>
|
438
438
|
<ChatbotWelcomePrompt
|
439
|
-
title="
|
440
|
-
description="How
|
439
|
+
title="Hi, ChatBot User!"
|
440
|
+
description="How can I help you today?"
|
441
441
|
prompts={welcomePrompts}
|
442
442
|
/>
|
443
443
|
{/* This code block enables scrolling to the top of the last message.
|
@@ -36,18 +36,26 @@ interface ModalData {
|
|
36
36
|
}
|
37
37
|
|
38
38
|
export const BasicDemo: React.FunctionComponent = () => {
|
39
|
-
const onAttachmentClose = (
|
40
|
-
const index = messages.findIndex((message) => message.attachmentId === attachmentId);
|
39
|
+
const onAttachmentClose = (event, name, id) => {
|
41
40
|
const updatedMessages: MessageProps[] = [];
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
41
|
+
messages.map((message) => {
|
42
|
+
if (message.attachments) {
|
43
|
+
const filteredAttachments = message.attachments.filter((attachment) => attachment.id !== id);
|
44
|
+
message.attachments = filteredAttachments;
|
45
|
+
updatedMessages.push(message);
|
46
|
+
} else {
|
47
|
+
updatedMessages.push(message);
|
48
|
+
}
|
49
|
+
});
|
50
|
+
setMessages(updatedMessages);
|
50
51
|
};
|
52
|
+
|
53
|
+
const onAttachmentClick = () => {
|
54
|
+
setCurrentModalData({ fileName: 'auth-operator.yml', code: 'test' });
|
55
|
+
setIsEditModalOpen(false);
|
56
|
+
setIsPreviewModalOpen(true);
|
57
|
+
};
|
58
|
+
|
51
59
|
const initialMessages: MessageProps[] = [
|
52
60
|
{
|
53
61
|
role: 'user',
|
@@ -55,14 +63,7 @@ export const BasicDemo: React.FunctionComponent = () => {
|
|
55
63
|
name: 'User',
|
56
64
|
avatar: userAvatar,
|
57
65
|
avatarProps: { isBordered: true },
|
58
|
-
|
59
|
-
attachmentId: '1',
|
60
|
-
onAttachmentClose,
|
61
|
-
onAttachmentClick: () => {
|
62
|
-
setCurrentModalData({ fileName: 'auth-operator.yml', code: 'test' });
|
63
|
-
setIsEditModalOpen(false);
|
64
|
-
setIsPreviewModalOpen(true);
|
65
|
-
}
|
66
|
+
attachments: [{ name: 'auth-operator.yml', id: '1', onClick: onAttachmentClick, onClose: onAttachmentClose }]
|
66
67
|
},
|
67
68
|
{
|
68
69
|
role: 'bot',
|
@@ -230,7 +231,7 @@ export const BasicDemo: React.FunctionComponent = () => {
|
|
230
231
|
{error}
|
231
232
|
</ChatbotAlert>
|
232
233
|
)}
|
233
|
-
<ChatbotWelcomePrompt title="
|
234
|
+
<ChatbotWelcomePrompt title="Hi, ChatBot User!" description="How can I help you today?" />
|
234
235
|
{messages.map((message) => (
|
235
236
|
<Message key={message.name} {...message} />
|
236
237
|
))}
|
@@ -243,7 +244,7 @@ export const BasicDemo: React.FunctionComponent = () => {
|
|
243
244
|
</div>
|
244
245
|
)}
|
245
246
|
<MessageBar onSendMessage={handleSend} hasAttachButton handleAttach={handleAttach} />
|
246
|
-
<ChatbotFootnote label="
|
247
|
+
<ChatbotFootnote label="ChatBot uses AI. Check for mistakes." />
|
247
248
|
</ChatbotFooter>
|
248
249
|
</FileDropZone>
|
249
250
|
</Chatbot>
|
@@ -209,7 +209,7 @@ export const AttachmentMenuDemo: React.FunctionComponent = () => {
|
|
209
209
|
return (
|
210
210
|
<>
|
211
211
|
{/* this is required for react-dropzone to work in Safari and Firefox */}
|
212
|
-
<input {...getInputProps()} />
|
212
|
+
<input {...getInputProps()} hidden />
|
213
213
|
<ChatbotToggle
|
214
214
|
tooltipLabel="Chatbot"
|
215
215
|
isChatbotVisible={chatbotVisible}
|
@@ -232,7 +232,7 @@ export const AttachmentMenuDemo: React.FunctionComponent = () => {
|
|
232
232
|
{error}
|
233
233
|
</ChatbotAlert>
|
234
234
|
)}
|
235
|
-
<ChatbotWelcomePrompt title="
|
235
|
+
<ChatbotWelcomePrompt title="Hi, ChatBot User!" description="How can I help you today?" />
|
236
236
|
{messages.map((message) => (
|
237
237
|
<Message key={message.name} {...message} />
|
238
238
|
))}
|
@@ -259,7 +259,7 @@ export const AttachmentMenuDemo: React.FunctionComponent = () => {
|
|
259
259
|
onAttachMenuToggleClick: onToggleClick
|
260
260
|
}}
|
261
261
|
/>
|
262
|
-
<ChatbotFootnote label="
|
262
|
+
<ChatbotFootnote label="ChatBot uses AI. Check for mistakes." />
|
263
263
|
</ChatbotFooter>
|
264
264
|
</>
|
265
265
|
</FileDropZone>
|
@@ -42,22 +42,22 @@ import userAvatar from '../Messages/user_avatar.svg';
|
|
42
42
|
import patternflyAvatar from '../Messages/patternfly_avatar.jpg';
|
43
43
|
|
44
44
|
const footnoteProps = {
|
45
|
-
label: '
|
45
|
+
label: 'ChatBot uses AI. Check for mistakes.',
|
46
46
|
popover: {
|
47
|
-
title: 'Verify
|
48
|
-
description: `While
|
47
|
+
title: 'Verify information',
|
48
|
+
description: `While ChatBot strives for accuracy, AI is experimental and can make mistakes. We cannot guarantee that all information provided by ChatBot is up to date or without error. You should always verify responses using reliable sources, especially for crucial information and decision making.`,
|
49
49
|
bannerImage: {
|
50
50
|
src: 'https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif',
|
51
51
|
alt: 'Example image for footnote popover'
|
52
52
|
},
|
53
53
|
cta: {
|
54
|
-
label: '
|
54
|
+
label: 'Dismiss',
|
55
55
|
onClick: () => {
|
56
56
|
alert('Do something!');
|
57
57
|
}
|
58
58
|
},
|
59
59
|
link: {
|
60
|
-
label: '
|
60
|
+
label: 'View AI policy',
|
61
61
|
url: 'https://www.redhat.com/'
|
62
62
|
}
|
63
63
|
}
|
@@ -137,12 +137,12 @@ const initialMessages: MessageProps[] = [
|
|
137
137
|
|
138
138
|
const welcomePrompts = [
|
139
139
|
{
|
140
|
-
title: '
|
141
|
-
message: '
|
140
|
+
title: 'Set up account',
|
141
|
+
message: 'Choose the necessary settings and preferences for your account.'
|
142
142
|
},
|
143
143
|
{
|
144
|
-
title: '
|
145
|
-
message: '
|
144
|
+
title: 'Troubleshoot issue',
|
145
|
+
message: 'Find documentation and instructions to resolve your issue.'
|
146
146
|
}
|
147
147
|
];
|
148
148
|
|
@@ -400,8 +400,8 @@ export const EmbeddedChatbotDemo: React.FunctionComponent = () => {
|
|
400
400
|
so that users of assistive devices receive sufficient context */}
|
401
401
|
<MessageBox announcement={announcement}>
|
402
402
|
<ChatbotWelcomePrompt
|
403
|
-
title="
|
404
|
-
description="How
|
403
|
+
title="Hi, ChatBot User!"
|
404
|
+
description="How can I help you today?"
|
405
405
|
prompts={welcomePrompts}
|
406
406
|
/>
|
407
407
|
{/* This code block enables scrolling to the top of the last message.
|
package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedComparisonChatbot.tsx
ADDED
@@ -0,0 +1,206 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
|
3
|
+
import {
|
4
|
+
Page,
|
5
|
+
Masthead,
|
6
|
+
MastheadMain,
|
7
|
+
MastheadBrand,
|
8
|
+
MastheadLogo,
|
9
|
+
PageSidebarBody,
|
10
|
+
PageSidebar,
|
11
|
+
MastheadToggle,
|
12
|
+
PageToggleButton
|
13
|
+
} from '@patternfly/react-core';
|
14
|
+
import Chatbot, { ChatbotDisplayMode } from '@patternfly/chatbot/dist/dynamic/Chatbot';
|
15
|
+
import ChatbotContent from '@patternfly/chatbot/dist/dynamic/ChatbotContent';
|
16
|
+
import ChatbotWelcomePrompt from '@patternfly/chatbot/dist/dynamic/ChatbotWelcomePrompt';
|
17
|
+
import ChatbotFooter from '@patternfly/chatbot/dist/dynamic/ChatbotFooter';
|
18
|
+
import MessageBar from '@patternfly/chatbot/dist/dynamic/MessageBar';
|
19
|
+
import MessageBox from '@patternfly/chatbot/dist/dynamic/MessageBox';
|
20
|
+
import Message, { MessageProps } from '@patternfly/chatbot/dist/dynamic/Message';
|
21
|
+
import ChatbotHeader, { ChatbotHeaderMain } from '@patternfly/chatbot/dist/dynamic/ChatbotHeader';
|
22
|
+
import Compare from '@patternfly/chatbot/dist/dynamic/Compare';
|
23
|
+
import { BarsIcon } from '@patternfly/react-icons';
|
24
|
+
import userAvatar from '../Messages/user_avatar.svg';
|
25
|
+
import patternflyAvatar from '../Messages/patternfly_avatar.jpg';
|
26
|
+
|
27
|
+
export const CompareChild = ({ name, input, hasNewInput, setIsSendButtonDisabled }) => {
|
28
|
+
const [messages, setMessages] = React.useState<MessageProps[]>([]);
|
29
|
+
const [announcement, setAnnouncement] = React.useState<string>();
|
30
|
+
const scrollToBottomRef = React.useRef<HTMLDivElement>(null);
|
31
|
+
const displayMode = ChatbotDisplayMode.embedded;
|
32
|
+
|
33
|
+
// you will likely want to come up with your own unique id function; this is for demo purposes only
|
34
|
+
const generateId = () => {
|
35
|
+
const id = Date.now() + Math.random();
|
36
|
+
return id.toString();
|
37
|
+
};
|
38
|
+
|
39
|
+
const handleSend = (input: string) => {
|
40
|
+
const date = new Date();
|
41
|
+
const newMessages: MessageProps[] = [];
|
42
|
+
messages.forEach((message) => newMessages.push(message));
|
43
|
+
newMessages.push({
|
44
|
+
avatar: userAvatar,
|
45
|
+
avatarProps: { isBordered: true },
|
46
|
+
id: generateId(),
|
47
|
+
name: 'You',
|
48
|
+
role: 'user',
|
49
|
+
content: input,
|
50
|
+
timestamp: `${date?.toLocaleDateString()} ${date?.toLocaleTimeString()}`
|
51
|
+
});
|
52
|
+
newMessages.push({
|
53
|
+
avatar: patternflyAvatar,
|
54
|
+
id: generateId(),
|
55
|
+
name,
|
56
|
+
role: 'bot',
|
57
|
+
timestamp: `${date?.toLocaleDateString()} ${date?.toLocaleTimeString()}`,
|
58
|
+
isLoading: true
|
59
|
+
});
|
60
|
+
setMessages(newMessages);
|
61
|
+
// make announcement to assistive devices that new messages have been added
|
62
|
+
setAnnouncement(`Message from You: ${input}. Message from ${name} is loading.`);
|
63
|
+
|
64
|
+
// this is for demo purposes only; in a real situation, there would be an API response we would wait for
|
65
|
+
setTimeout(() => {
|
66
|
+
const loadedMessages: MessageProps[] = [];
|
67
|
+
// we can't use structuredClone since messages contains functions, but we can't mutate
|
68
|
+
// items that are going into state or the UI won't update correctly
|
69
|
+
newMessages.forEach((message) => loadedMessages.push(message));
|
70
|
+
loadedMessages.pop();
|
71
|
+
loadedMessages.push({
|
72
|
+
id: generateId(),
|
73
|
+
role: 'bot',
|
74
|
+
content: `API response from ${name} goes here`,
|
75
|
+
name,
|
76
|
+
avatar: patternflyAvatar,
|
77
|
+
isLoading: false,
|
78
|
+
actions: {
|
79
|
+
// eslint-disable-next-line no-console
|
80
|
+
positive: { onClick: () => console.log('Good response') },
|
81
|
+
// eslint-disable-next-line no-console
|
82
|
+
negative: { onClick: () => console.log('Bad response') },
|
83
|
+
// eslint-disable-next-line no-console
|
84
|
+
copy: { onClick: () => console.log('Copy') },
|
85
|
+
// eslint-disable-next-line no-console
|
86
|
+
share: { onClick: () => console.log('Share') },
|
87
|
+
// eslint-disable-next-line no-console
|
88
|
+
listen: { onClick: () => console.log('Listen') }
|
89
|
+
},
|
90
|
+
timestamp: date.toLocaleString()
|
91
|
+
});
|
92
|
+
setMessages(loadedMessages);
|
93
|
+
// make announcement to assistive devices that new message has loaded
|
94
|
+
setAnnouncement(`Message from ${name}: API response goes here`);
|
95
|
+
setIsSendButtonDisabled(false);
|
96
|
+
}, 5000);
|
97
|
+
};
|
98
|
+
|
99
|
+
React.useEffect(() => {
|
100
|
+
if (input) {
|
101
|
+
handleSend(input);
|
102
|
+
}
|
103
|
+
}, [hasNewInput]);
|
104
|
+
|
105
|
+
// Auto-scrolls to the latest message
|
106
|
+
React.useEffect(() => {
|
107
|
+
// don't scroll the first load, but scroll if there's a current stream or a new source has popped up
|
108
|
+
if (messages.length > 0) {
|
109
|
+
scrollToBottomRef.current?.scrollIntoView();
|
110
|
+
}
|
111
|
+
}, [messages]);
|
112
|
+
|
113
|
+
return (
|
114
|
+
<Chatbot displayMode={displayMode}>
|
115
|
+
<ChatbotHeader>
|
116
|
+
<ChatbotHeaderMain>{name}</ChatbotHeaderMain>
|
117
|
+
</ChatbotHeader>
|
118
|
+
<ChatbotContent>
|
119
|
+
<MessageBox ariaLabel={`Scrollable message log for ${name}`} announcement={announcement}>
|
120
|
+
<ChatbotWelcomePrompt title="Hi, ChatBot User!" description="How can I help you today?" />
|
121
|
+
{messages.map((message) => (
|
122
|
+
<Message key={message.id} {...message} />
|
123
|
+
))}
|
124
|
+
<div ref={scrollToBottomRef}></div>
|
125
|
+
</MessageBox>
|
126
|
+
</ChatbotContent>
|
127
|
+
</Chatbot>
|
128
|
+
);
|
129
|
+
};
|
130
|
+
|
131
|
+
export const EmbeddedComparisonChatbotDemo: React.FunctionComponent = () => {
|
132
|
+
const [input, setInput] = React.useState<string>();
|
133
|
+
const [hasNewInput, setHasNewInput] = React.useState(false);
|
134
|
+
const [isSidebarOpen, setIsSidebarOpen] = React.useState(false);
|
135
|
+
const [isSendButtonDisabled, setIsSendButtonDisabled] = React.useState(false);
|
136
|
+
|
137
|
+
const handleSend = (value: string) => {
|
138
|
+
setInput(value);
|
139
|
+
setHasNewInput(!hasNewInput);
|
140
|
+
setIsSendButtonDisabled(true);
|
141
|
+
};
|
142
|
+
|
143
|
+
const masthead = (
|
144
|
+
<Masthead>
|
145
|
+
<MastheadMain>
|
146
|
+
<MastheadToggle>
|
147
|
+
<PageToggleButton
|
148
|
+
variant="plain"
|
149
|
+
aria-label="Global navigation"
|
150
|
+
isSidebarOpen={isSidebarOpen}
|
151
|
+
onSidebarToggle={() => setIsSidebarOpen(!isSidebarOpen)}
|
152
|
+
id="fill-nav-toggle"
|
153
|
+
>
|
154
|
+
<BarsIcon />
|
155
|
+
</PageToggleButton>
|
156
|
+
</MastheadToggle>
|
157
|
+
<MastheadBrand>
|
158
|
+
<MastheadLogo href="https://patternfly.org" target="_blank">
|
159
|
+
Logo
|
160
|
+
</MastheadLogo>
|
161
|
+
</MastheadBrand>
|
162
|
+
</MastheadMain>
|
163
|
+
</Masthead>
|
164
|
+
);
|
165
|
+
|
166
|
+
const sidebar = (
|
167
|
+
<PageSidebar isSidebarOpen={isSidebarOpen} id="fill-sidebar">
|
168
|
+
<PageSidebarBody>Navigation</PageSidebarBody>
|
169
|
+
</PageSidebar>
|
170
|
+
);
|
171
|
+
|
172
|
+
return (
|
173
|
+
<Page masthead={masthead} sidebar={sidebar} isContentFilled>
|
174
|
+
<div className="pf-chatbot__compare-container">
|
175
|
+
<Compare
|
176
|
+
firstChild={
|
177
|
+
<CompareChild
|
178
|
+
input={input}
|
179
|
+
hasNewInput={hasNewInput}
|
180
|
+
name="ChatBot 1"
|
181
|
+
setIsSendButtonDisabled={setIsSendButtonDisabled}
|
182
|
+
/>
|
183
|
+
}
|
184
|
+
secondChild={
|
185
|
+
<CompareChild
|
186
|
+
input={input}
|
187
|
+
hasNewInput={hasNewInput}
|
188
|
+
name="ChatBot 2"
|
189
|
+
setIsSendButtonDisabled={setIsSendButtonDisabled}
|
190
|
+
/>
|
191
|
+
}
|
192
|
+
firstChildDisplayName="ChatBot 1"
|
193
|
+
secondChildDisplayName="ChatBot 2"
|
194
|
+
/>
|
195
|
+
<ChatbotFooter>
|
196
|
+
<MessageBar
|
197
|
+
onSendMessage={handleSend}
|
198
|
+
hasAttachButton={false}
|
199
|
+
alwayShowSendButton
|
200
|
+
isSendButtonDisabled={isSendButtonDisabled}
|
201
|
+
/>
|
202
|
+
</ChatbotFooter>
|
203
|
+
</div>
|
204
|
+
</Page>
|
205
|
+
);
|
206
|
+
};
|
@@ -0,0 +1,104 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import Message from '@patternfly/chatbot/dist/dynamic/Message';
|
3
|
+
import patternflyAvatar from '../Messages/patternfly_avatar.jpg';
|
4
|
+
|
5
|
+
export const MessageWithFeedbackExample: React.FunctionComponent = () => {
|
6
|
+
const [showUserFeedbackForm, setShowUserFeedbackForm] = React.useState(false);
|
7
|
+
const [showCompletionForm, setShowCompletionForm] = React.useState(false);
|
8
|
+
const [launchButton, setLaunchButton] = React.useState<string>();
|
9
|
+
const positiveRef = React.useRef<HTMLButtonElement>(null);
|
10
|
+
const negativeRef = React.useRef<HTMLButtonElement>(null);
|
11
|
+
const feedbackId = 'user-feedback-form';
|
12
|
+
const completeId = 'user-feedback-received';
|
13
|
+
|
14
|
+
const getCurrentCard = () => {
|
15
|
+
if (showUserFeedbackForm) {
|
16
|
+
return feedbackId;
|
17
|
+
}
|
18
|
+
if (showCompletionForm) {
|
19
|
+
return completeId;
|
20
|
+
}
|
21
|
+
};
|
22
|
+
|
23
|
+
const isExpanded = showUserFeedbackForm || showCompletionForm;
|
24
|
+
|
25
|
+
const focusLaunchButton = () => {
|
26
|
+
if (launchButton === 'positive') {
|
27
|
+
positiveRef.current?.focus();
|
28
|
+
}
|
29
|
+
if (launchButton === 'negative') {
|
30
|
+
negativeRef.current?.focus();
|
31
|
+
}
|
32
|
+
};
|
33
|
+
|
34
|
+
return (
|
35
|
+
<Message
|
36
|
+
name="Bot"
|
37
|
+
role="bot"
|
38
|
+
avatar={patternflyAvatar}
|
39
|
+
content="Bot message with user feedback flow; click on a message action to launch the feedback flow. Click submit to see the thank-you message."
|
40
|
+
actions={{
|
41
|
+
positive: {
|
42
|
+
onClick: () => {
|
43
|
+
setShowUserFeedbackForm(true);
|
44
|
+
setShowCompletionForm(false);
|
45
|
+
setLaunchButton('positive');
|
46
|
+
},
|
47
|
+
/* These are important for accessibility */
|
48
|
+
'aria-expanded': isExpanded,
|
49
|
+
'aria-controls': getCurrentCard(),
|
50
|
+
ref: positiveRef
|
51
|
+
},
|
52
|
+
negative: {
|
53
|
+
onClick: () => {
|
54
|
+
setShowUserFeedbackForm(true);
|
55
|
+
setShowCompletionForm(false);
|
56
|
+
setLaunchButton('negative');
|
57
|
+
},
|
58
|
+
/* These are important for accessibility */
|
59
|
+
'aria-expanded': isExpanded,
|
60
|
+
'aria-controls': getCurrentCard(),
|
61
|
+
ref: negativeRef
|
62
|
+
}
|
63
|
+
}}
|
64
|
+
userFeedbackForm={
|
65
|
+
showUserFeedbackForm
|
66
|
+
? /* eslint-disable indent */
|
67
|
+
{
|
68
|
+
quickResponses: [
|
69
|
+
{ id: '1', content: 'Helpful information' },
|
70
|
+
{ id: '2', content: 'Easy to understand' },
|
71
|
+
{ id: '3', content: 'Resolved my issue' }
|
72
|
+
],
|
73
|
+
onSubmit: (quickResponse, additionalFeedback) => {
|
74
|
+
alert(`Selected ${quickResponse} and received the additional feedback: ${additionalFeedback}`);
|
75
|
+
setShowUserFeedbackForm(false);
|
76
|
+
setShowCompletionForm(true);
|
77
|
+
focusLaunchButton();
|
78
|
+
},
|
79
|
+
hasTextArea: true,
|
80
|
+
onClose: () => {
|
81
|
+
setShowUserFeedbackForm(false);
|
82
|
+
focusLaunchButton();
|
83
|
+
},
|
84
|
+
id: feedbackId
|
85
|
+
}
|
86
|
+
: undefined
|
87
|
+
/* eslint-enable indent */
|
88
|
+
}
|
89
|
+
userFeedbackComplete={
|
90
|
+
showCompletionForm
|
91
|
+
? /* eslint-disable indent */
|
92
|
+
{
|
93
|
+
onClose: () => {
|
94
|
+
setShowCompletionForm(false);
|
95
|
+
focusLaunchButton();
|
96
|
+
},
|
97
|
+
id: completeId
|
98
|
+
}
|
99
|
+
: undefined
|
100
|
+
/* eslint-enable indent */
|
101
|
+
}
|
102
|
+
/>
|
103
|
+
);
|
104
|
+
};
|