@patternfly/chatbot 2.2.0-prerelease.2 → 2.2.0-prerelease.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/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.js +3 -1
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +17 -1
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +9 -9
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +39 -3
- 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/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 +3 -1
- 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/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/ListMessage/OrderedListMessage.d.ts +1 -1
- package/dist/cjs/Message/ListMessage/OrderedListMessage.js +2 -2
- package/dist/cjs/Message/Message.d.ts +31 -7
- package/dist/cjs/Message/Message.js +47 -15
- package/dist/cjs/Message/Message.test.js +183 -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.js +9 -12
- package/dist/cjs/MessageBar/MessageBar.test.js +4 -4
- 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/index.d.ts +6 -0
- package/dist/cjs/index.js +10 -1
- package/dist/css/main.css +400 -102
- 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.js +3 -1
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +17 -1
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +9 -9
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +39 -3
- 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/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 +3 -1
- 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/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/ListMessage/OrderedListMessage.d.ts +1 -1
- package/dist/esm/Message/ListMessage/OrderedListMessage.js +2 -2
- package/dist/esm/Message/Message.d.ts +31 -7
- package/dist/esm/Message/Message.js +45 -13
- package/dist/esm/Message/Message.test.js +183 -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.js +9 -12
- package/dist/esm/MessageBar/MessageBar.test.js +4 -4
- 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/index.d.ts +6 -0
- package/dist/esm/index.js +6 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -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/BotMessage.tsx +168 -13
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithCustomResponseActions.tsx +4 -0
- 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/MessageWithQuickStart.tsx +31 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +63 -11
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +208 -12
- 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 +2 -2
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +2 -2
- 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/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 +2 -2
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +20 -19
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +2 -2
- package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +2 -2
- 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.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 +7 -1
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +8 -1
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +112 -3
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +41 -8
- package/src/ChatbotFooter/ChatbotFooter.scss +2 -6
- package/src/ChatbotFooter/ChatbotFooter.test.tsx +15 -0
- package/src/ChatbotFooter/ChatbotFooternote.test.tsx +84 -0
- 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 +8 -1
- 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/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/ListMessage/ListMessage.scss +5 -5
- package/src/Message/ListMessage/OrderedListMessage.tsx +2 -2
- package/src/Message/Message.scss +4 -26
- package/src/Message/Message.test.tsx +215 -3
- package/src/Message/Message.tsx +94 -23
- 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 +13 -11
- 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 +3 -2
- package/src/MessageBar/MessageBar.test.tsx +4 -4
- package/src/MessageBar/MessageBar.tsx +9 -12
- package/src/MessageBar/MicrophoneButton.scss +8 -8
- 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 +103 -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/index.ts +9 -0
- package/src/main.scss +7 -4
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,52 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const react_1 = __importDefault(require("react"));
|
7
|
+
const react_2 = require("@testing-library/react");
|
8
|
+
const AttachmentEdit_1 = __importDefault(require("./AttachmentEdit"));
|
9
|
+
describe('AttachmentEdit', () => {
|
10
|
+
it('should open AttachmentEdit modal', () => {
|
11
|
+
const props = {
|
12
|
+
code: 'code',
|
13
|
+
fileName: 'fileName',
|
14
|
+
onCancel: jest.fn(),
|
15
|
+
onSave: jest.fn(),
|
16
|
+
isModalOpen: true,
|
17
|
+
handleModalToggle: jest.fn()
|
18
|
+
};
|
19
|
+
(0, react_2.render)(react_1.default.createElement(AttachmentEdit_1.default, Object.assign({}, props)));
|
20
|
+
expect(react_2.screen.getByText('Edit attachment')).toBeTruthy();
|
21
|
+
});
|
22
|
+
it('should call onSave handler when the save button is clicked', () => {
|
23
|
+
const onSaveHandler = jest.fn();
|
24
|
+
const props = {
|
25
|
+
code: 'code',
|
26
|
+
fileName: 'fileName',
|
27
|
+
onCancel: jest.fn(),
|
28
|
+
onSave: onSaveHandler,
|
29
|
+
isModalOpen: true,
|
30
|
+
handleModalToggle: jest.fn()
|
31
|
+
};
|
32
|
+
(0, react_2.render)(react_1.default.createElement(AttachmentEdit_1.default, Object.assign({}, props)));
|
33
|
+
// Click on save button
|
34
|
+
react_2.fireEvent.click(react_2.screen.getByText('Save'));
|
35
|
+
expect(onSaveHandler).toHaveBeenCalledWith(expect.any(Object), 'code');
|
36
|
+
});
|
37
|
+
it('should call cancel handler when the cancel button is clicked', () => {
|
38
|
+
const onCancelHandler = jest.fn();
|
39
|
+
const props = {
|
40
|
+
code: 'code',
|
41
|
+
fileName: 'fileName',
|
42
|
+
onCancel: onCancelHandler,
|
43
|
+
onSave: jest.fn(),
|
44
|
+
isModalOpen: true,
|
45
|
+
handleModalToggle: jest.fn()
|
46
|
+
};
|
47
|
+
(0, react_2.render)(react_1.default.createElement(AttachmentEdit_1.default, Object.assign({}, props)));
|
48
|
+
// Click on cancel button
|
49
|
+
react_2.fireEvent.click(react_2.screen.getByText('Cancel'));
|
50
|
+
expect(onCancelHandler).toHaveBeenCalled();
|
51
|
+
});
|
52
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
import '@testing-library/jest-dom';
|
@@ -0,0 +1,28 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
require("@testing-library/jest-dom");
|
7
|
+
const react_1 = __importDefault(require("react"));
|
8
|
+
const react_2 = require("@testing-library/react");
|
9
|
+
const Chatbot_1 = __importDefault(require("./Chatbot"));
|
10
|
+
describe('Chatbot', () => {
|
11
|
+
it('should render Chatbot with default display mode', () => {
|
12
|
+
(0, react_2.render)(react_1.default.createElement(Chatbot_1.default, null, "Chatbot Content"));
|
13
|
+
expect(react_2.screen.getByText('Chatbot Content')).toBeTruthy();
|
14
|
+
});
|
15
|
+
it('should render Chatbot with custom ariaLabel', () => {
|
16
|
+
(0, react_2.render)(react_1.default.createElement(Chatbot_1.default, { ariaLabel: "Chatbot" }, "Chatbot Content"));
|
17
|
+
expect(react_2.screen.getByLabelText('Chatbot')).toBeTruthy();
|
18
|
+
});
|
19
|
+
it('should render Chatbot with custom className', () => {
|
20
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(Chatbot_1.default, { ariaLabel: "Chatbot", className: "custom-class" }, "Chatbot Content"));
|
21
|
+
const chatbotElement = container.querySelector('.custom-class');
|
22
|
+
expect(chatbotElement).toBeInTheDocument();
|
23
|
+
});
|
24
|
+
it('should not render Chatbot', () => {
|
25
|
+
(0, react_2.render)(react_1.default.createElement(Chatbot_1.default, { isVisible: false }, "Chatbot Content"));
|
26
|
+
expect(react_2.screen.queryByLabelText('Chatbot')).toBeFalsy();
|
27
|
+
});
|
28
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,27 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const react_1 = __importDefault(require("react"));
|
7
|
+
const react_2 = require("@testing-library/react");
|
8
|
+
const ChatbotAlert_1 = __importDefault(require("./ChatbotAlert"));
|
9
|
+
describe('ChatbotAlert', () => {
|
10
|
+
it('should render ChatbotAlert with default variant', () => {
|
11
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotAlert_1.default, { title: "Chatbot Alert" }));
|
12
|
+
expect(react_2.screen.getByText('Chatbot Alert')).toBeTruthy();
|
13
|
+
});
|
14
|
+
it('should render ChatbotAlert with children', () => {
|
15
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotAlert_1.default, { title: "Chatbot Alert" }, "Chatbot Alert Content"));
|
16
|
+
expect(react_2.screen.getByText('Chatbot Alert Content')).toBeTruthy();
|
17
|
+
});
|
18
|
+
it('should call onClose handler when onClose button is clicked', () => {
|
19
|
+
const onCloseHandler = jest.fn();
|
20
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotAlert_1.default, { title: "Chatbot Alert", onClose: onCloseHandler }, "Chatbot Alert Content"));
|
21
|
+
expect(react_2.screen.getByText('Chatbot Alert')).toBeTruthy();
|
22
|
+
expect(react_2.screen.getByText('Chatbot Alert Content')).toBeTruthy();
|
23
|
+
// click on the close button
|
24
|
+
react_2.fireEvent.click(react_2.screen.getByRole('button'));
|
25
|
+
expect(onCloseHandler).toHaveBeenCalled();
|
26
|
+
});
|
27
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const react_1 = __importDefault(require("react"));
|
7
|
+
const react_2 = require("@testing-library/react");
|
8
|
+
const ChatbotContent_1 = __importDefault(require("./ChatbotContent"));
|
9
|
+
describe('ChatbotContent', () => {
|
10
|
+
it('should render ChatbotContent with children', () => {
|
11
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotContent_1.default, null, "Chatbot Content"));
|
12
|
+
expect(react_2.screen.getByText('Chatbot Content')).toBeTruthy();
|
13
|
+
});
|
14
|
+
it('should render ChatbotContent with custom classname', () => {
|
15
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(ChatbotContent_1.default, { className: "custom-class" }, "Chatbot Content"));
|
16
|
+
expect(container.querySelector('.custom-class')).toBeTruthy();
|
17
|
+
});
|
18
|
+
});
|
@@ -13,7 +13,9 @@ const react_core_1 = require("@patternfly/react-core");
|
|
13
13
|
const ellipsis_v_icon_1 = __importDefault(require("@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon"));
|
14
14
|
const ChatbotConversationHistoryDropdown = ({ menuItems, menuClassName, onSelect, label }) => {
|
15
15
|
const [isOpen, setIsOpen] = react_1.default.useState(false);
|
16
|
-
const toggle = (toggleRef) => (react_1.default.createElement(react_core_1.Tooltip, { className: "pf-chatbot__tooltip", content: label !== null && label !== void 0 ? label : 'Conversation options', position: "bottom"
|
16
|
+
const toggle = (toggleRef) => (react_1.default.createElement(react_core_1.Tooltip, { className: "pf-chatbot__tooltip", content: label !== null && label !== void 0 ? label : 'Conversation options', position: "bottom",
|
17
|
+
// prevents VO announcements of both aria label and tooltip
|
18
|
+
aria: "none" },
|
17
19
|
react_1.default.createElement(react_core_1.MenuToggle, { className: "pf-chatbot__history-actions", variant: "plain", "aria-label": label !== null && label !== void 0 ? label : 'Conversation options', ref: toggleRef, isExpanded: isOpen, onClick: () => setIsOpen(!isOpen), role: "menuitem" },
|
18
20
|
react_1.default.createElement(ellipsis_v_icon_1.default, null))));
|
19
21
|
return (react_1.default.createElement(react_core_1.Dropdown, { className: `pf-chatbot__selections ${menuClassName !== null && menuClassName !== void 0 ? menuClassName : ''}`, isOpen: isOpen, onSelect: (props) => {
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
import { DrawerProps, MenuItemProps } from '@patternfly/react-core';
|
2
|
+
import { DrawerProps, MenuItemProps, MenuProps, DrawerPanelContentProps, DrawerContentProps, DrawerContentBodyProps, DrawerHeadProps, DrawerActionsProps, DrawerCloseButtonProps, DrawerPanelBodyProps } from '@patternfly/react-core';
|
3
3
|
import { ChatbotDisplayMode } from '../Chatbot/Chatbot';
|
4
4
|
export interface Conversation {
|
5
5
|
/** Conversation id */
|
@@ -53,6 +53,22 @@ export interface ChatbotConversationHistoryNavProps extends DrawerProps {
|
|
53
53
|
reverseButtonOrder?: boolean;
|
54
54
|
/** Custom test id for the drawer actions */
|
55
55
|
drawerActionsTestId?: string;
|
56
|
+
/** Additional props applied to menu */
|
57
|
+
menuProps?: MenuProps;
|
58
|
+
/** Additional props applied to panel */
|
59
|
+
drawerPanelContentProps?: DrawerPanelContentProps;
|
60
|
+
/** Additional props applied to drawer content */
|
61
|
+
drawerContentProps?: Omit<DrawerContentProps, 'panelContent'>;
|
62
|
+
/** Additional props applied to drawer content body */
|
63
|
+
drawerContentBodyProps?: DrawerContentBodyProps;
|
64
|
+
/** Additional props applied to drawer head */
|
65
|
+
drawerHeadProps?: DrawerHeadProps;
|
66
|
+
/** Additional props applied to drawer actions */
|
67
|
+
drawerActionsProps?: DrawerActionsProps;
|
68
|
+
/** Additional props applied to drawer close button */
|
69
|
+
drawerCloseButtonProps?: DrawerCloseButtonProps;
|
70
|
+
/** Additional props appleid to drawer panel body */
|
71
|
+
drawerPanelBodyProps?: DrawerPanelBodyProps;
|
56
72
|
}
|
57
73
|
export declare const ChatbotConversationHistoryNav: React.FunctionComponent<ChatbotConversationHistoryNavProps>;
|
58
74
|
export default ChatbotConversationHistoryNav;
|
@@ -25,7 +25,7 @@ const react_icons_1 = require("@patternfly/react-icons");
|
|
25
25
|
const Chatbot_1 = require("../Chatbot/Chatbot");
|
26
26
|
const ChatbotConversationHistoryDropdown_1 = __importDefault(require("./ChatbotConversationHistoryDropdown"));
|
27
27
|
const ChatbotConversationHistoryNav = (_a) => {
|
28
|
-
var { onDrawerToggle, isDrawerOpen, setIsDrawerOpen, activeItemId, onSelectActiveItem, conversations, newChatButtonText = 'New chat', drawerContent, onNewChat, searchInputPlaceholder = 'Search...', searchInputAriaLabel = 'Filter menu items', handleTextInputChange, displayMode, reverseButtonOrder = false, drawerActionsTestId = 'chatbot-nav-drawer-actions' } = _a, props = __rest(_a, ["onDrawerToggle", "isDrawerOpen", "setIsDrawerOpen", "activeItemId", "onSelectActiveItem", "conversations", "newChatButtonText", "drawerContent", "onNewChat", "searchInputPlaceholder", "searchInputAriaLabel", "handleTextInputChange", "displayMode", "reverseButtonOrder", "drawerActionsTestId"]);
|
28
|
+
var { onDrawerToggle, isDrawerOpen, setIsDrawerOpen, activeItemId, onSelectActiveItem, conversations, newChatButtonText = 'New chat', drawerContent, onNewChat, searchInputPlaceholder = 'Search...', searchInputAriaLabel = 'Filter menu items', handleTextInputChange, displayMode, reverseButtonOrder = false, drawerActionsTestId = 'chatbot-nav-drawer-actions', menuProps, drawerPanelContentProps, drawerContentProps, drawerContentBodyProps, drawerHeadProps, drawerActionsProps, drawerCloseButtonProps, drawerPanelBodyProps } = _a, props = __rest(_a, ["onDrawerToggle", "isDrawerOpen", "setIsDrawerOpen", "activeItemId", "onSelectActiveItem", "conversations", "newChatButtonText", "drawerContent", "onNewChat", "searchInputPlaceholder", "searchInputAriaLabel", "handleTextInputChange", "displayMode", "reverseButtonOrder", "drawerActionsTestId", "menuProps", "drawerPanelContentProps", "drawerContentProps", "drawerContentBodyProps", "drawerHeadProps", "drawerActionsProps", "drawerCloseButtonProps", "drawerPanelBodyProps"]);
|
29
29
|
const drawerRef = react_1.default.useRef(null);
|
30
30
|
const onExpand = () => {
|
31
31
|
drawerRef.current && drawerRef.current.focus();
|
@@ -52,16 +52,16 @@ const ChatbotConversationHistoryNav = (_a) => {
|
|
52
52
|
// Menu Content
|
53
53
|
// - Consumers should pass an array to <Chatbot> of the list of conversations
|
54
54
|
// - Groups could be optional, but items need to be ordered by date
|
55
|
-
const menuContent = (react_1.default.createElement(react_core_1.Menu, { isPlain: true, onSelect: onSelectActiveItem, activeItemId: activeItemId },
|
55
|
+
const menuContent = (react_1.default.createElement(react_core_1.Menu, Object.assign({ isPlain: true, onSelect: onSelectActiveItem, activeItemId: activeItemId }, menuProps),
|
56
56
|
react_1.default.createElement(react_core_1.MenuContent, null, buildMenu())));
|
57
|
-
const panelContent = (react_1.default.createElement(react_core_1.DrawerPanelContent, { focusTrap: { enabled: true },
|
58
|
-
react_1.default.createElement(react_core_1.DrawerHead,
|
59
|
-
react_1.default.createElement(react_core_1.DrawerActions, { "data-testid": drawerActionsTestId, className: reverseButtonOrder ? 'pf-v6-c-drawer__actions--reversed' : '' },
|
60
|
-
react_1.default.createElement(react_core_1.DrawerCloseButton, { onClick: onDrawerToggle }),
|
57
|
+
const panelContent = (react_1.default.createElement(react_core_1.DrawerPanelContent, Object.assign({ focusTrap: { enabled: true }, defaultSize: "384px" }, drawerPanelContentProps),
|
58
|
+
react_1.default.createElement(react_core_1.DrawerHead, Object.assign({}, drawerHeadProps),
|
59
|
+
react_1.default.createElement(react_core_1.DrawerActions, Object.assign({ "data-testid": drawerActionsTestId, className: reverseButtonOrder ? 'pf-v6-c-drawer__actions--reversed' : '' }, drawerActionsProps),
|
60
|
+
react_1.default.createElement(react_core_1.DrawerCloseButton, Object.assign({ onClick: onDrawerToggle }, drawerCloseButtonProps)),
|
61
61
|
onNewChat && react_1.default.createElement(react_core_1.Button, { onClick: onNewChat }, newChatButtonText))),
|
62
62
|
handleTextInputChange && (react_1.default.createElement("div", { className: "pf-chatbot__input" },
|
63
63
|
react_1.default.createElement(react_core_1.SearchInput, { "aria-label": searchInputAriaLabel, onChange: (_event, value) => handleTextInputChange(value), placeholder: searchInputPlaceholder }))),
|
64
|
-
react_1.default.createElement(react_core_1.DrawerPanelBody,
|
64
|
+
react_1.default.createElement(react_core_1.DrawerPanelBody, Object.assign({}, drawerPanelBodyProps), menuContent)));
|
65
65
|
// An onKeyDown property must be passed to the Drawer component to handle closing
|
66
66
|
// the drawer panel and deactivating the focus trap via the Escape key.
|
67
67
|
const onEscape = (event) => {
|
@@ -73,8 +73,8 @@ const ChatbotConversationHistoryNav = (_a) => {
|
|
73
73
|
}
|
74
74
|
};
|
75
75
|
return (react_1.default.createElement(react_core_1.Drawer, Object.assign({ className: "pf-chatbot__history", isExpanded: isDrawerOpen, onExpand: onExpand, position: "start", onKeyDown: onEscape, isInline: displayMode === Chatbot_1.ChatbotDisplayMode.fullscreen || displayMode === Chatbot_1.ChatbotDisplayMode.embedded }, props),
|
76
|
-
react_1.default.createElement(react_core_1.DrawerContent, { panelContent: panelContent },
|
77
|
-
react_1.default.createElement(react_core_1.DrawerContentBody,
|
76
|
+
react_1.default.createElement(react_core_1.DrawerContent, Object.assign({ panelContent: panelContent }, drawerContentProps),
|
77
|
+
react_1.default.createElement(react_core_1.DrawerContentBody, Object.assign({}, drawerContentBodyProps),
|
78
78
|
react_1.default.createElement(react_1.default.Fragment, null,
|
79
79
|
react_1.default.createElement("div", { className: `${isDrawerOpen && (displayMode === Chatbot_1.ChatbotDisplayMode.default || displayMode === Chatbot_1.ChatbotDisplayMode.docked) ? 'pf-v6-c-backdrop pf-chatbot__drawer-backdrop' : undefined} ` }),
|
80
80
|
drawerContent)))));
|
@@ -22,12 +22,12 @@ describe('ChatbotConversationHistoryNav', () => {
|
|
22
22
|
const initialConversations = [
|
23
23
|
{
|
24
24
|
id: '1',
|
25
|
-
text: '
|
25
|
+
text: 'ChatBot documentation'
|
26
26
|
}
|
27
27
|
];
|
28
28
|
it('should open the conversation history navigation drawer', () => {
|
29
29
|
(0, react_2.render)(react_1.default.createElement(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations }));
|
30
|
-
expect(react_2.screen.queryByText('
|
30
|
+
expect(react_2.screen.queryByText('ChatBot documentation')).toBeInTheDocument();
|
31
31
|
});
|
32
32
|
it('should display the conversations for grouped conversations', () => {
|
33
33
|
const groupedConversations = {
|
@@ -63,7 +63,43 @@ describe('ChatbotConversationHistoryNav', () => {
|
|
63
63
|
charCode: 27
|
64
64
|
});
|
65
65
|
(0, react_2.waitFor)(() => {
|
66
|
-
expect(react_2.screen.queryByText('
|
66
|
+
expect(react_2.screen.queryByText('ChatBot documentation')).not.toBeInTheDocument();
|
67
67
|
});
|
68
68
|
}));
|
69
|
+
it('should be resizable', () => {
|
70
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, drawerPanelContentProps: { isResizable: true, minSize: '200px' } }));
|
71
|
+
expect(react_2.screen.getByRole('dialog', { name: /Resize/i })).toBeTruthy();
|
72
|
+
expect(react_2.screen.getByRole('separator', { name: /Resize/i })).toBeTruthy();
|
73
|
+
expect(react_2.screen.getByRole('dialog', { name: /Resize/i })).toHaveAttribute('style', '--pf-v6-c-drawer__panel--md--FlexBasis: 384px; --pf-v6-c-drawer__panel--md--FlexBasis--min: 200px;');
|
74
|
+
});
|
75
|
+
it('should accept drawerContentProps', () => {
|
76
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, drawerContentProps: { className: 'test' } }));
|
77
|
+
const element = container.querySelector('.test');
|
78
|
+
expect(element).toBeInTheDocument();
|
79
|
+
});
|
80
|
+
it('should accept drawerContentBodyProps', () => {
|
81
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, drawerContentBodyProps: { className: 'test' } }));
|
82
|
+
const element = container.querySelector('.test');
|
83
|
+
expect(element).toBeInTheDocument();
|
84
|
+
});
|
85
|
+
it('should accept drawerHeadProps', () => {
|
86
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, drawerHeadProps: { className: 'test' } }));
|
87
|
+
const element = container.querySelector('.test');
|
88
|
+
expect(element).toBeInTheDocument();
|
89
|
+
});
|
90
|
+
it('should accept drawerActionsProps', () => {
|
91
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, drawerActionsProps: { className: 'test' } }));
|
92
|
+
const element = container.querySelector('.test');
|
93
|
+
expect(element).toBeInTheDocument();
|
94
|
+
});
|
95
|
+
it('should accept drawerCloseButtonProps', () => {
|
96
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, drawerCloseButtonProps: { className: 'test' } }));
|
97
|
+
const element = container.querySelector('.test');
|
98
|
+
expect(element).toBeInTheDocument();
|
99
|
+
});
|
100
|
+
it('should accept drawerPanelBodyProps', () => {
|
101
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, drawerPanelBodyProps: { className: 'test' } }));
|
102
|
+
const element = container.querySelector('.test');
|
103
|
+
expect(element).toBeInTheDocument();
|
104
|
+
});
|
69
105
|
});
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const react_1 = __importDefault(require("react"));
|
7
|
+
const react_2 = require("@testing-library/react");
|
8
|
+
const ChatbotFooter_1 = __importDefault(require("./ChatbotFooter"));
|
9
|
+
describe('ChatbotFooter', () => {
|
10
|
+
it('should render ChatbotFooter with children', () => {
|
11
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotFooter_1.default, null, "Chatbot Content"));
|
12
|
+
expect(react_2.screen.getByText('Chatbot Content')).toBeTruthy();
|
13
|
+
});
|
14
|
+
it('should render ChatbotFooter with custom classname', () => {
|
15
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(ChatbotFooter_1.default, { className: "custom-class" }, "Chatbot Content"));
|
16
|
+
expect(container.querySelector('.custom-class')).toBeTruthy();
|
17
|
+
});
|
18
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,87 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
+
};
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
+
const react_1 = __importDefault(require("react"));
|
16
|
+
const react_2 = require("@testing-library/react");
|
17
|
+
const ChatbotFootnote_1 = __importDefault(require("./ChatbotFootnote"));
|
18
|
+
describe('ChatbotFooternote', () => {
|
19
|
+
const onClick = jest.fn();
|
20
|
+
const popoverProps = {
|
21
|
+
title: 'Verify accuracy',
|
22
|
+
description: 'description',
|
23
|
+
bannerImage: {
|
24
|
+
src: 'src',
|
25
|
+
alt: 'alt'
|
26
|
+
},
|
27
|
+
cta: {
|
28
|
+
label: 'Got it',
|
29
|
+
onClick
|
30
|
+
},
|
31
|
+
link: {
|
32
|
+
label: 'label',
|
33
|
+
url: 'url'
|
34
|
+
}
|
35
|
+
};
|
36
|
+
it('should render ChatbotFooternote', () => {
|
37
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotFootnote_1.default, { label: "Chatbot footer" }));
|
38
|
+
expect(react_2.screen.getByText('Chatbot footer')).toBeTruthy();
|
39
|
+
});
|
40
|
+
it('should render ChatbotFooternote with popover', () => __awaiter(void 0, void 0, void 0, function* () {
|
41
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotFootnote_1.default, { label: "Chatbot footer", popover: popoverProps }));
|
42
|
+
// click on the footer button
|
43
|
+
(0, react_2.act)(() => {
|
44
|
+
react_2.fireEvent.click(react_2.screen.getByRole('button'));
|
45
|
+
});
|
46
|
+
yield (0, react_2.waitFor)(() => {
|
47
|
+
// Check if the popover is visible and click on the cta button
|
48
|
+
react_2.screen.getByLabelText('More information');
|
49
|
+
react_2.screen.getByText('Verify accuracy');
|
50
|
+
react_2.fireEvent.click(react_2.screen.getByRole('button', { name: 'Got it' }));
|
51
|
+
expect(onClick).toHaveBeenCalled();
|
52
|
+
});
|
53
|
+
}));
|
54
|
+
it('should call onClick handler when popover cta button is clicked', () => __awaiter(void 0, void 0, void 0, function* () {
|
55
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotFootnote_1.default, { label: "Chatbot footer", popover: popoverProps }));
|
56
|
+
// click on the footer button
|
57
|
+
(0, react_2.act)(() => {
|
58
|
+
react_2.fireEvent.click(react_2.screen.getByRole('button'));
|
59
|
+
});
|
60
|
+
yield (0, react_2.waitFor)(() => {
|
61
|
+
// Check if the popover is visible and click on the cta button
|
62
|
+
react_2.screen.getByLabelText('More information');
|
63
|
+
react_2.screen.getByText('Verify accuracy');
|
64
|
+
react_2.fireEvent.click(react_2.screen.getByRole('button', { name: 'Got it' }));
|
65
|
+
expect(onClick).toHaveBeenCalled();
|
66
|
+
});
|
67
|
+
}));
|
68
|
+
it('should close the popover when escape is pressed', () => __awaiter(void 0, void 0, void 0, function* () {
|
69
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotFootnote_1.default, { label: "Chatbot footer", popover: popoverProps }));
|
70
|
+
// click on the footer button
|
71
|
+
(0, react_2.act)(() => {
|
72
|
+
react_2.fireEvent.click(react_2.screen.getByRole('button'));
|
73
|
+
});
|
74
|
+
yield (0, react_2.waitFor)(() => {
|
75
|
+
// Check if the popover is visible and click on the cta button
|
76
|
+
react_2.screen.getByLabelText('More information');
|
77
|
+
react_2.screen.getByText('Verify accuracy');
|
78
|
+
});
|
79
|
+
(0, react_2.act)(() => {
|
80
|
+
// trigger escape to close the popover
|
81
|
+
react_2.fireEvent.keyDown(document, { key: 'Escape', code: 'Escape' });
|
82
|
+
});
|
83
|
+
yield (0, react_2.waitFor)(() => {
|
84
|
+
expect(react_2.screen.queryByText('Verify accuracy')).toBeFalsy();
|
85
|
+
});
|
86
|
+
}));
|
87
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const react_1 = __importDefault(require("react"));
|
7
|
+
const react_2 = require("@testing-library/react");
|
8
|
+
const ChatbotHeader_1 = __importDefault(require("./ChatbotHeader"));
|
9
|
+
describe('ChatbotHeader', () => {
|
10
|
+
it('should render ChatbotHeader with children', () => {
|
11
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotHeader_1.default, null, "Chatbot Header"));
|
12
|
+
expect(react_2.screen.getByText('Chatbot Header')).toBeTruthy();
|
13
|
+
});
|
14
|
+
it('should render ChatbotHeader with custom classname', () => {
|
15
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(ChatbotHeader_1.default, { className: "custom-header-class" }, "Chatbot Content"));
|
16
|
+
expect(container.querySelector('.custom-header-class')).toBeTruthy();
|
17
|
+
});
|
18
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const react_1 = __importDefault(require("react"));
|
7
|
+
const react_2 = require("@testing-library/react");
|
8
|
+
const ChatbotHeaderActions_1 = __importDefault(require("./ChatbotHeaderActions"));
|
9
|
+
describe('ChatbotHeaderActions', () => {
|
10
|
+
it('should render ChatbotHeaderActions with children', () => {
|
11
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotHeaderActions_1.default, null, "Chatbot Header"));
|
12
|
+
expect(react_2.screen.getByText('Chatbot Header')).toBeTruthy();
|
13
|
+
});
|
14
|
+
it('should render ChatbotHeaderActions with custom classname', () => {
|
15
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(ChatbotHeaderActions_1.default, { className: "custom-header-action-class" }, "Chatbot Content"));
|
16
|
+
expect(container.querySelector('.custom-header-action-class')).toBeTruthy();
|
17
|
+
});
|
18
|
+
});
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { TooltipProps } from '@patternfly/react-core';
|
3
|
+
export interface ChatbotHeaderCloseButtonProps {
|
4
|
+
/** Callback function for when button is clicked */
|
5
|
+
onClick: () => void;
|
6
|
+
/** Custom classname for the header component */
|
7
|
+
className?: string;
|
8
|
+
/** Props spread to the PF Tooltip component wrapping the display mode dropdown */
|
9
|
+
tooltipProps?: TooltipProps;
|
10
|
+
/** Aria label for menu */
|
11
|
+
menuAriaLabel?: string;
|
12
|
+
/** Ref applied to menu */
|
13
|
+
innerRef?: React.Ref<HTMLButtonElement>;
|
14
|
+
/** Content used in tooltip */
|
15
|
+
tooltipContent?: string;
|
16
|
+
}
|
17
|
+
export declare const ChatbotHeaderCloseButton: React.ForwardRefExoticComponent<ChatbotHeaderCloseButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
@@ -0,0 +1,16 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.ChatbotHeaderCloseButton = void 0;
|
7
|
+
const react_1 = __importDefault(require("react"));
|
8
|
+
const react_core_1 = require("@patternfly/react-core");
|
9
|
+
const react_icons_1 = require("@patternfly/react-icons");
|
10
|
+
const ChatbotHeaderCloseButtonBase = ({ className, onClick, tooltipProps, menuAriaLabel = 'Close', innerRef, tooltipContent = 'Close' }) => (react_1.default.createElement("div", { className: `pf-chatbot__menu ${className}` },
|
11
|
+
react_1.default.createElement(react_core_1.Tooltip, Object.assign({ content: tooltipContent, position: "bottom",
|
12
|
+
// prevents VO announcements of both aria label and tooltip
|
13
|
+
aria: "none" }, tooltipProps),
|
14
|
+
react_1.default.createElement(react_core_1.Button, { className: "pf-chatbot__button--toggle-menu", variant: "plain", onClick: onClick, "aria-label": menuAriaLabel, ref: innerRef, icon: react_1.default.createElement(react_core_1.Icon, { size: "xl", isInline: true },
|
15
|
+
react_1.default.createElement(react_icons_1.CloseIcon, null)) }))));
|
16
|
+
exports.ChatbotHeaderCloseButton = react_1.default.forwardRef((props, ref) => (react_1.default.createElement(ChatbotHeaderCloseButtonBase, Object.assign({ innerRef: ref }, props))));
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const react_1 = __importDefault(require("react"));
|
7
|
+
const react_2 = require("@testing-library/react");
|
8
|
+
const ChatbotHeaderCloseButton_1 = require("./ChatbotHeaderCloseButton");
|
9
|
+
describe('ChatbotHeaderCloseButton', () => {
|
10
|
+
it('should render ChatbotHeaderCloseButton', () => {
|
11
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(ChatbotHeaderCloseButton_1.ChatbotHeaderCloseButton, { className: "custom-header-close-button", onClick: jest.fn() }));
|
12
|
+
expect(container.querySelector('.custom-header-close-button')).toBeTruthy();
|
13
|
+
});
|
14
|
+
it('should call onClick handler when close button is pressed', () => {
|
15
|
+
const onClick = jest.fn();
|
16
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotHeaderCloseButton_1.ChatbotHeaderCloseButton, { className: "custom-header-close-button", onClick: onClick }));
|
17
|
+
react_2.fireEvent.click(react_2.screen.getByRole('button', { name: 'Close' }));
|
18
|
+
expect(onClick).toHaveBeenCalled();
|
19
|
+
});
|
20
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const react_1 = __importDefault(require("react"));
|
7
|
+
const react_2 = require("@testing-library/react");
|
8
|
+
const ChatbotHeaderMain_1 = __importDefault(require("./ChatbotHeaderMain"));
|
9
|
+
describe('ChatbotHeaderMain', () => {
|
10
|
+
it('should render ChatbotHeaderMain with children', () => {
|
11
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotHeaderMain_1.default, null, "Chatbot Header Main"));
|
12
|
+
expect(react_2.screen.getByText('Chatbot Header Main')).toBeTruthy();
|
13
|
+
});
|
14
|
+
it('should render ChatbotHeaderMain with custom classname', () => {
|
15
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(ChatbotHeaderMain_1.default, { className: "custom-header-class" }, "Chatbot Content"));
|
16
|
+
expect(container.querySelector('.custom-header-class')).toBeTruthy();
|
17
|
+
});
|
18
|
+
});
|
@@ -11,5 +11,7 @@ export interface ChatbotHeaderMenuProps {
|
|
11
11
|
menuAriaLabel?: string;
|
12
12
|
/** Ref applied to menu */
|
13
13
|
innerRef?: React.Ref<HTMLButtonElement>;
|
14
|
+
/** Content used in tooltip */
|
15
|
+
tooltipContent?: string;
|
14
16
|
}
|
15
17
|
export declare const ChatbotHeaderMenu: React.ForwardRefExoticComponent<ChatbotHeaderMenuProps & React.RefAttributes<HTMLButtonElement>>;
|
@@ -7,8 +7,10 @@ exports.ChatbotHeaderMenu = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
8
8
|
const react_core_1 = require("@patternfly/react-core");
|
9
9
|
const bars_icon_1 = __importDefault(require("@patternfly/react-icons/dist/esm/icons/bars-icon"));
|
10
|
-
const ChatbotHeaderMenuBase = ({ className, onMenuToggle, tooltipProps, menuAriaLabel = 'Toggle menu', innerRef }) => (react_1.default.createElement("div", { className: `pf-chatbot__menu ${className}` },
|
11
|
-
react_1.default.createElement(react_core_1.Tooltip, Object.assign({ content:
|
10
|
+
const ChatbotHeaderMenuBase = ({ className, onMenuToggle, tooltipProps, menuAriaLabel = 'Toggle menu', innerRef, tooltipContent = 'Menu' }) => (react_1.default.createElement("div", { className: `pf-chatbot__menu ${className}` },
|
11
|
+
react_1.default.createElement(react_core_1.Tooltip, Object.assign({ content: tooltipContent, position: "bottom",
|
12
|
+
// prevents VO announcements of both aria label and tooltip
|
13
|
+
aria: "none" }, tooltipProps),
|
12
14
|
react_1.default.createElement(react_core_1.Button, { className: "pf-chatbot__button--toggle-menu", variant: "plain", onClick: onMenuToggle, "aria-label": menuAriaLabel, ref: innerRef, icon: react_1.default.createElement(react_core_1.Icon, { size: "xl", isInline: true },
|
13
15
|
react_1.default.createElement(bars_icon_1.default, null)) }))));
|
14
16
|
exports.ChatbotHeaderMenu = react_1.default.forwardRef((props, ref) => (react_1.default.createElement(ChatbotHeaderMenuBase, Object.assign({ innerRef: ref }, props))));
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const react_1 = __importDefault(require("react"));
|
7
|
+
const react_2 = require("@testing-library/react");
|
8
|
+
const ChatbotHeaderMenu_1 = require("./ChatbotHeaderMenu");
|
9
|
+
describe('ChatbotHeaderMenu', () => {
|
10
|
+
it('should render ChatbotHeaderMenu with custom class', () => {
|
11
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(ChatbotHeaderMenu_1.ChatbotHeaderMenu, { className: "custom-header-menu", onMenuToggle: jest.fn() }));
|
12
|
+
expect(container.querySelector('.custom-header-menu')).toBeTruthy();
|
13
|
+
});
|
14
|
+
it('should call onMenuToggle when ChatbotHeaderMenu button is clicked', () => {
|
15
|
+
const onMenuToggle = jest.fn();
|
16
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotHeaderMenu_1.ChatbotHeaderMenu, { className: "custom-header-menu", onMenuToggle: onMenuToggle }));
|
17
|
+
react_2.fireEvent.click(react_2.screen.getByRole('button', { name: 'Toggle menu' }));
|
18
|
+
expect(onMenuToggle).toHaveBeenCalled();
|
19
|
+
});
|
20
|
+
});
|
@@ -21,7 +21,9 @@ const ellipsis_v_icon_1 = __importDefault(require("@patternfly/react-icons/dist/
|
|
21
21
|
const ChatbotHeaderOptionsDropdown = (_a) => {
|
22
22
|
var { className, children, onSelect, tooltipProps, menuToggleAriaLabel = 'Chatbot options' } = _a, props = __rest(_a, ["className", "children", "onSelect", "tooltipProps", "menuToggleAriaLabel"]);
|
23
23
|
const [isOptionsMenuOpen, setIsOptionsMenuOpen] = react_1.default.useState(false);
|
24
|
-
const toggle = (toggleRef) => (react_1.default.createElement(react_core_1.Tooltip, Object.assign({ className: "pf-chatbot__tooltip", content: "Chatbot options", position: "bottom"
|
24
|
+
const toggle = (toggleRef) => (react_1.default.createElement(react_core_1.Tooltip, Object.assign({ className: "pf-chatbot__tooltip", content: "Chatbot options", position: "bottom",
|
25
|
+
// prevents VO announcements of both aria label and tooltip
|
26
|
+
aria: "none" }, tooltipProps),
|
25
27
|
react_1.default.createElement(react_core_1.MenuToggle, { className: "pf-chatbot__button--toggle-options", variant: "plain", "aria-label": menuToggleAriaLabel, ref: toggleRef, icon: react_1.default.createElement(react_core_1.Icon, { iconSize: "xl", isInline: true },
|
26
28
|
react_1.default.createElement(ellipsis_v_icon_1.default, null)), isExpanded: isOptionsMenuOpen, onClick: () => setIsOptionsMenuOpen(!isOptionsMenuOpen) })));
|
27
29
|
return (react_1.default.createElement(react_core_1.Dropdown, Object.assign({ className: `pf-chatbot__options ${className !== null && className !== void 0 ? className : ''}`, isOpen: isOptionsMenuOpen, onSelect: (e, value) => {
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|