@patternfly/chatbot 2.2.1 → 6.3.0-prerelease.10
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.d.ts +2 -0
- package/dist/cjs/AttachmentEdit/AttachmentEdit.js +2 -2
- package/dist/cjs/Chatbot/Chatbot.d.ts +2 -0
- package/dist/cjs/Chatbot/Chatbot.js +2 -2
- package/dist/cjs/Chatbot/Chatbot.test.js +4 -0
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +6 -0
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +9 -3
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +27 -0
- package/dist/cjs/ChatbotFooter/ChatbotFooter.d.ts +1 -0
- package/dist/cjs/ChatbotFooter/ChatbotFooter.js +2 -2
- package/dist/cjs/ChatbotFooter/ChatbotFooter.test.d.ts +1 -1
- package/dist/cjs/ChatbotFooter/ChatbotFooter.test.js +5 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeader.js +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +4 -2
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.js +20 -6
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.js +5 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.js +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.d.ts +3 -2
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +20 -6
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.js +5 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +1 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -3
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +5 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +1 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +2 -2
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +5 -0
- package/dist/cjs/ChatbotModal/ChatbotModal.d.ts +3 -0
- package/dist/cjs/ChatbotModal/ChatbotModal.js +2 -2
- package/dist/cjs/ChatbotModal/ChatbotModal.test.d.ts +1 -0
- package/dist/cjs/ChatbotModal/ChatbotModal.test.js +28 -0
- package/dist/cjs/ChatbotPopover/ChatbotPopover.js +1 -1
- package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +1 -0
- package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +3 -3
- package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +4 -0
- package/dist/cjs/CodeModal/CodeModal.d.ts +2 -0
- package/dist/cjs/CodeModal/CodeModal.js +3 -3
- package/dist/cjs/CodeModal/CodeModal.test.d.ts +1 -0
- package/dist/cjs/CodeModal/CodeModal.test.js +15 -0
- package/dist/cjs/FileDetails/FileDetails.js +1 -1
- package/dist/cjs/Message/Message.d.ts +19 -1
- package/dist/cjs/Message/Message.js +58 -39
- package/dist/cjs/Message/Message.test.js +64 -0
- package/dist/cjs/Message/MessageInput.d.ts +18 -0
- package/dist/cjs/Message/MessageInput.js +34 -0
- package/dist/cjs/Message/QuickResponse/QuickResponse.d.ts +2 -0
- package/dist/cjs/Message/QuickResponse/QuickResponse.js +2 -2
- package/dist/cjs/Message/QuickStarts/QuickStartTile.d.ts +2 -0
- package/dist/cjs/Message/QuickStarts/QuickStartTile.js +2 -2
- package/dist/cjs/Message/UserFeedback/UserFeedback.js +4 -4
- package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +4 -0
- package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +4 -4
- package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +4 -0
- package/dist/cjs/MessageBar/AttachButton.d.ts +1 -0
- package/dist/cjs/MessageBar/AttachButton.js +3 -3
- package/dist/cjs/MessageBar/AttachButton.test.js +4 -0
- package/dist/cjs/MessageBar/MessageBar.d.ts +5 -0
- package/dist/cjs/MessageBar/MessageBar.js +14 -13
- package/dist/cjs/MessageBar/MessageBar.test.js +13 -0
- package/dist/cjs/MessageBar/MicrophoneButton.d.ts +1 -0
- package/dist/cjs/MessageBar/MicrophoneButton.js +4 -4
- package/dist/cjs/MessageBar/SendButton.d.ts +1 -0
- package/dist/cjs/MessageBar/SendButton.js +3 -3
- package/dist/cjs/MessageBar/SendButton.test.js +4 -0
- package/dist/cjs/MessageBar/StopButton.d.ts +1 -0
- package/dist/cjs/MessageBar/StopButton.js +3 -3
- package/dist/cjs/MessageBar/StopButton.test.js +4 -0
- package/dist/cjs/MessageBox/MessageBox.d.ts +4 -0
- package/dist/cjs/MessageBox/MessageBox.js +21 -7
- package/dist/cjs/MessageBox/MessageBox.test.js +43 -0
- package/dist/cjs/PreviewAttachment/PreviewAttachment.d.ts +2 -0
- package/dist/cjs/PreviewAttachment/PreviewAttachment.js +2 -2
- package/dist/cjs/Settings/SettingsForm.d.ts +2 -0
- package/dist/cjs/Settings/SettingsForm.js +2 -2
- package/dist/cjs/Settings/SettingsForm.test.d.ts +1 -1
- package/dist/cjs/Settings/SettingsForm.test.js +12 -0
- package/dist/cjs/SourcesCard/SourcesCard.d.ts +7 -1
- package/dist/cjs/SourcesCard/SourcesCard.js +17 -11
- package/dist/cjs/SourcesCard/SourcesCard.test.js +25 -15
- package/dist/cjs/TermsOfUse/TermsOfUse.d.ts +2 -0
- package/dist/cjs/TermsOfUse/TermsOfUse.js +5 -5
- package/dist/cjs/tracking/console_tracking_provider.d.ts +4 -5
- package/dist/cjs/tracking/console_tracking_provider.js +22 -15
- package/dist/cjs/tracking/posthog_tracking_provider.d.ts +2 -2
- package/dist/cjs/tracking/posthog_tracking_provider.js +21 -12
- package/dist/cjs/tracking/segment_tracking_provider.d.ts +2 -2
- package/dist/cjs/tracking/segment_tracking_provider.js +21 -12
- package/dist/cjs/tracking/trackingProviderProxy.d.ts +1 -1
- package/dist/cjs/tracking/trackingProviderProxy.js +2 -2
- package/dist/cjs/tracking/tracking_api.d.ts +1 -1
- package/dist/cjs/tracking/tracking_registry.js +46 -12
- package/dist/cjs/tracking/tracking_spi.d.ts +15 -5
- package/dist/cjs/tracking/tracking_spi.js +9 -0
- package/dist/cjs/tracking/umami_tracking_provider.d.ts +6 -2
- package/dist/cjs/tracking/umami_tracking_provider.js +66 -22
- package/dist/css/main.css +225 -22
- package/dist/css/main.css.map +1 -1
- package/dist/esm/AttachmentEdit/AttachmentEdit.d.ts +2 -0
- package/dist/esm/AttachmentEdit/AttachmentEdit.js +2 -2
- package/dist/esm/Chatbot/Chatbot.d.ts +2 -0
- package/dist/esm/Chatbot/Chatbot.js +2 -2
- package/dist/esm/Chatbot/Chatbot.test.js +4 -0
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +6 -0
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +9 -3
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +27 -0
- package/dist/esm/ChatbotFooter/ChatbotFooter.d.ts +1 -0
- package/dist/esm/ChatbotFooter/ChatbotFooter.js +2 -2
- package/dist/esm/ChatbotFooter/ChatbotFooter.test.d.ts +1 -1
- package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +5 -0
- package/dist/esm/ChatbotHeader/ChatbotHeader.js +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +4 -2
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.js +20 -6
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.js +5 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderMain.js +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.d.ts +3 -2
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +20 -6
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +5 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +1 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -3
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +5 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +1 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +2 -2
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +5 -0
- package/dist/esm/ChatbotModal/ChatbotModal.d.ts +3 -0
- package/dist/esm/ChatbotModal/ChatbotModal.js +2 -2
- package/dist/esm/ChatbotModal/ChatbotModal.test.d.ts +1 -0
- package/dist/esm/ChatbotModal/ChatbotModal.test.js +23 -0
- package/dist/esm/ChatbotPopover/ChatbotPopover.js +1 -1
- package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +1 -0
- package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +3 -3
- package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +4 -0
- package/dist/esm/CodeModal/CodeModal.d.ts +2 -0
- package/dist/esm/CodeModal/CodeModal.js +3 -3
- package/dist/esm/CodeModal/CodeModal.test.d.ts +1 -0
- package/dist/esm/CodeModal/CodeModal.test.js +10 -0
- package/dist/esm/FileDetails/FileDetails.js +1 -1
- package/dist/esm/Message/Message.d.ts +19 -1
- package/dist/esm/Message/Message.js +58 -39
- package/dist/esm/Message/Message.test.js +64 -0
- package/dist/esm/Message/MessageInput.d.ts +18 -0
- package/dist/esm/Message/MessageInput.js +29 -0
- package/dist/esm/Message/QuickResponse/QuickResponse.d.ts +2 -0
- package/dist/esm/Message/QuickResponse/QuickResponse.js +2 -2
- package/dist/esm/Message/QuickStarts/QuickStartTile.d.ts +2 -0
- package/dist/esm/Message/QuickStarts/QuickStartTile.js +2 -2
- package/dist/esm/Message/UserFeedback/UserFeedback.js +4 -4
- package/dist/esm/Message/UserFeedback/UserFeedback.test.js +4 -0
- package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +4 -4
- package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +4 -0
- package/dist/esm/MessageBar/AttachButton.d.ts +1 -0
- package/dist/esm/MessageBar/AttachButton.js +3 -3
- package/dist/esm/MessageBar/AttachButton.test.js +4 -0
- package/dist/esm/MessageBar/MessageBar.d.ts +5 -0
- package/dist/esm/MessageBar/MessageBar.js +14 -13
- package/dist/esm/MessageBar/MessageBar.test.js +13 -0
- package/dist/esm/MessageBar/MicrophoneButton.d.ts +1 -0
- package/dist/esm/MessageBar/MicrophoneButton.js +4 -4
- package/dist/esm/MessageBar/SendButton.d.ts +1 -0
- package/dist/esm/MessageBar/SendButton.js +3 -3
- package/dist/esm/MessageBar/SendButton.test.js +4 -0
- package/dist/esm/MessageBar/StopButton.d.ts +1 -0
- package/dist/esm/MessageBar/StopButton.js +3 -3
- package/dist/esm/MessageBar/StopButton.test.js +4 -0
- package/dist/esm/MessageBox/MessageBox.d.ts +4 -0
- package/dist/esm/MessageBox/MessageBox.js +21 -7
- package/dist/esm/MessageBox/MessageBox.test.js +44 -1
- package/dist/esm/PreviewAttachment/PreviewAttachment.d.ts +2 -0
- package/dist/esm/PreviewAttachment/PreviewAttachment.js +2 -2
- package/dist/esm/Settings/SettingsForm.d.ts +2 -0
- package/dist/esm/Settings/SettingsForm.js +2 -2
- package/dist/esm/Settings/SettingsForm.test.d.ts +1 -1
- package/dist/esm/Settings/SettingsForm.test.js +12 -0
- package/dist/esm/SourcesCard/SourcesCard.d.ts +7 -1
- package/dist/esm/SourcesCard/SourcesCard.js +18 -12
- package/dist/esm/SourcesCard/SourcesCard.test.js +25 -15
- package/dist/esm/TermsOfUse/TermsOfUse.d.ts +2 -0
- package/dist/esm/TermsOfUse/TermsOfUse.js +5 -5
- package/dist/esm/tracking/console_tracking_provider.d.ts +4 -5
- package/dist/esm/tracking/console_tracking_provider.js +22 -15
- package/dist/esm/tracking/posthog_tracking_provider.d.ts +2 -2
- package/dist/esm/tracking/posthog_tracking_provider.js +21 -12
- package/dist/esm/tracking/segment_tracking_provider.d.ts +2 -2
- package/dist/esm/tracking/segment_tracking_provider.js +21 -12
- package/dist/esm/tracking/trackingProviderProxy.d.ts +1 -1
- package/dist/esm/tracking/trackingProviderProxy.js +2 -2
- package/dist/esm/tracking/tracking_api.d.ts +1 -1
- package/dist/esm/tracking/tracking_registry.js +46 -12
- package/dist/esm/tracking/tracking_spi.d.ts +15 -5
- package/dist/esm/tracking/tracking_spi.js +8 -1
- package/dist/esm/tracking/umami_tracking_provider.d.ts +6 -2
- package/dist/esm/tracking/umami_tracking_provider.js +66 -22
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Analytics/Analytics.md +18 -14
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentEdit.tsx +10 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +74 -104
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDetailsLabel.tsx +48 -37
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +33 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +34 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickStart.tsx +11 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithSources.tsx +71 -13
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +3 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/PreviewAttachment.tsx +10 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +80 -104
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +44 -2
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerResizable.tsx +13 -2
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithActions.tsx +9 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithSelection.tsx +11 -2
- package/patternfly-docs/content/extensions/chatbot/examples/UI/CompactSettings.tsx +289 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/TermsOfUseCompact.tsx +136 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +15 -1
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +8 -1
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.tsx +6 -3
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +2 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +2 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotCompact.tsx +481 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotInDrawer.tsx +2 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +2 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedComparisonChatbot.tsx +62 -57
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Feedback.tsx +2 -0
- package/src/AttachmentEdit/AttachmentEdit.tsx +5 -1
- package/src/Chatbot/Chatbot.scss +7 -0
- package/src/Chatbot/Chatbot.test.tsx +9 -0
- package/src/Chatbot/Chatbot.tsx +4 -1
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +38 -3
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +71 -0
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +23 -2
- package/src/ChatbotFooter/ChatbotFooter.scss +5 -0
- package/src/ChatbotFooter/ChatbotFooter.test.tsx +10 -0
- package/src/ChatbotFooter/ChatbotFooter.tsx +3 -1
- package/src/ChatbotHeader/ChatbotHeader.scss +25 -0
- package/src/ChatbotHeader/ChatbotHeader.tsx +1 -1
- package/src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx +6 -0
- package/src/ChatbotHeader/ChatbotHeaderCloseButton.tsx +12 -6
- package/src/ChatbotHeader/ChatbotHeaderMain.tsx +3 -1
- package/src/ChatbotHeader/ChatbotHeaderMenu.test.tsx +8 -0
- package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +10 -5
- package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx +6 -0
- package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +5 -2
- package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx +10 -0
- package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +4 -0
- package/src/ChatbotModal/ChatbotModal.scss +15 -4
- package/src/ChatbotModal/ChatbotModal.test.tsx +59 -0
- package/src/ChatbotModal/ChatbotModal.tsx +5 -1
- package/src/ChatbotPopover/ChatbotPopover.scss +9 -5
- package/src/ChatbotPopover/ChatbotPopover.tsx +1 -1
- package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss +9 -1
- package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx +13 -0
- package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.tsx +13 -2
- package/src/ChatbotWelcomePrompt/__snapshots__/ChatbotWelcomePrompt.test.tsx.snap +1 -1
- package/src/CodeModal/CodeModal.scss +11 -3
- package/src/CodeModal/CodeModal.test.tsx +24 -0
- package/src/CodeModal/CodeModal.tsx +6 -2
- package/src/FileDetails/FileDetails.tsx +1 -1
- package/src/FileDetails/__snapshots__/FileDetails.test.tsx.snap +1 -1
- package/src/FileDetailsLabel/__snapshots__/FileDetailsLabel.test.tsx.snap +1 -1
- package/src/Message/Message.scss +31 -0
- package/src/Message/Message.test.tsx +83 -0
- package/src/Message/Message.tsx +121 -56
- package/src/Message/MessageInput.tsx +59 -0
- package/src/Message/QuickResponse/QuickResponse.tsx +5 -1
- package/src/Message/QuickStarts/QuickStartTile.tsx +5 -1
- package/src/Message/TextMessage/TextMessage.scss +25 -0
- package/src/Message/UserFeedback/UserFeedback.scss +24 -3
- package/src/Message/UserFeedback/UserFeedback.test.tsx +13 -0
- package/src/Message/UserFeedback/UserFeedback.tsx +4 -2
- package/src/Message/UserFeedback/UserFeedbackComplete.test.tsx +4 -0
- package/src/Message/UserFeedback/UserFeedbackComplete.tsx +10 -2
- package/src/MessageBar/AttachButton.scss +10 -0
- package/src/MessageBar/AttachButton.test.tsx +4 -0
- package/src/MessageBar/AttachButton.tsx +5 -2
- package/src/MessageBar/MessageBar.scss +17 -0
- package/src/MessageBar/MessageBar.test.tsx +13 -0
- package/src/MessageBar/MessageBar.tsx +23 -8
- package/src/MessageBar/MicrophoneButton.scss +10 -0
- package/src/MessageBar/MicrophoneButton.tsx +6 -3
- package/src/MessageBar/SendButton.scss +10 -0
- package/src/MessageBar/SendButton.test.tsx +5 -1
- package/src/MessageBar/SendButton.tsx +5 -2
- package/src/MessageBar/StopButton.scss +10 -0
- package/src/MessageBar/StopButton.test.tsx +5 -1
- package/src/MessageBar/StopButton.tsx +5 -2
- package/src/MessageBox/MessageBox.scss +6 -0
- package/src/MessageBox/MessageBox.test.tsx +45 -1
- package/src/MessageBox/MessageBox.tsx +16 -6
- package/src/PreviewAttachment/PreviewAttachment.tsx +5 -1
- package/src/Settings/Settings.scss +11 -0
- package/src/Settings/SettingsForm.test.tsx +17 -0
- package/src/Settings/SettingsForm.tsx +12 -2
- package/src/SourcesCard/SourcesCard.scss +11 -7
- package/src/SourcesCard/SourcesCard.test.tsx +30 -22
- package/src/SourcesCard/SourcesCard.tsx +56 -13
- package/src/TermsOfUse/TermsOfUse.scss +20 -0
- package/src/TermsOfUse/TermsOfUse.tsx +9 -4
- package/src/tracking/console_tracking_provider.ts +21 -17
- package/src/tracking/posthog_tracking_provider.ts +20 -13
- package/src/tracking/segment_tracking_provider.ts +20 -13
- package/src/tracking/trackingProviderProxy.ts +2 -2
- package/src/tracking/tracking_api.ts +1 -1
- package/src/tracking/tracking_registry.ts +46 -13
- package/src/tracking/tracking_spi.ts +18 -7
- package/src/tracking/umami_tracking_provider.ts +76 -20
- package/src/SourcesCard/__snapshots__/SourcesCard.test.tsx.snap +0 -34
@@ -17,6 +17,8 @@ export interface AttachmentEditProps {
|
|
17
17
|
title?: string;
|
18
18
|
/** Display mode for the Chatbot parent; this influences the styles applied */
|
19
19
|
displayMode?: ChatbotDisplayMode;
|
20
|
+
/** Sets modal to compact styling. */
|
21
|
+
isCompact?: boolean;
|
20
22
|
}
|
21
23
|
export declare const AttachmentEdit: React.FunctionComponent<AttachmentEditProps>;
|
22
24
|
export default AttachmentEdit;
|
@@ -10,7 +10,7 @@ exports.AttachmentEdit = void 0;
|
|
10
10
|
const react_1 = __importDefault(require("react"));
|
11
11
|
const CodeModal_1 = __importDefault(require("../CodeModal"));
|
12
12
|
const Chatbot_1 = require("../Chatbot");
|
13
|
-
const AttachmentEdit = ({ fileName, code, handleModalToggle, isModalOpen, onCancel, onSave, title = 'Edit attachment', displayMode = Chatbot_1.ChatbotDisplayMode.default }) => {
|
13
|
+
const AttachmentEdit = ({ fileName, code, handleModalToggle, isModalOpen, onCancel, onSave, title = 'Edit attachment', displayMode = Chatbot_1.ChatbotDisplayMode.default, isCompact }) => {
|
14
14
|
const handleSave = (_event, code) => {
|
15
15
|
handleModalToggle(_event);
|
16
16
|
onSave(_event, code);
|
@@ -19,7 +19,7 @@ const AttachmentEdit = ({ fileName, code, handleModalToggle, isModalOpen, onCanc
|
|
19
19
|
handleModalToggle(_event);
|
20
20
|
onCancel(_event);
|
21
21
|
};
|
22
|
-
return (react_1.default.createElement(CodeModal_1.default, { code: code, fileName: fileName, handleModalToggle: handleModalToggle, isModalOpen: isModalOpen, onPrimaryAction: handleSave, onSecondaryAction: handleCancel, primaryActionBtn: "Save", secondaryActionBtn: "Cancel", title: title, displayMode: displayMode }));
|
22
|
+
return (react_1.default.createElement(CodeModal_1.default, { code: code, fileName: fileName, handleModalToggle: handleModalToggle, isModalOpen: isModalOpen, onPrimaryAction: handleSave, onSecondaryAction: handleCancel, primaryActionBtn: "Save", secondaryActionBtn: "Cancel", title: title, displayMode: displayMode, isCompact: isCompact }));
|
23
23
|
};
|
24
24
|
exports.AttachmentEdit = AttachmentEdit;
|
25
25
|
exports.default = exports.AttachmentEdit;
|
@@ -12,6 +12,8 @@ export interface ChatbotProps {
|
|
12
12
|
innerRef?: React.Ref<HTMLDivElement>;
|
13
13
|
/** Custom aria label applied to focusable container */
|
14
14
|
ariaLabel?: string;
|
15
|
+
/** Density of information within the ChatBot */
|
16
|
+
isCompact?: boolean;
|
15
17
|
}
|
16
18
|
export declare enum ChatbotDisplayMode {
|
17
19
|
default = "default",
|
@@ -29,13 +29,13 @@ var ChatbotDisplayMode;
|
|
29
29
|
ChatbotDisplayMode["drawer"] = "drawer";
|
30
30
|
})(ChatbotDisplayMode || (exports.ChatbotDisplayMode = ChatbotDisplayMode = {}));
|
31
31
|
const ChatbotBase = (_a) => {
|
32
|
-
var { children, displayMode = ChatbotDisplayMode.default, isVisible = true, className, innerRef, ariaLabel } = _a, props = __rest(_a, ["children", "displayMode", "isVisible", "className", "innerRef", "ariaLabel"]);
|
32
|
+
var { children, displayMode = ChatbotDisplayMode.default, isVisible = true, className, innerRef, ariaLabel, isCompact } = _a, props = __rest(_a, ["children", "displayMode", "isVisible", "className", "innerRef", "ariaLabel", "isCompact"]);
|
33
33
|
// Configure animations
|
34
34
|
const motionChatbot = {
|
35
35
|
visible: { opacity: 1, y: 0 },
|
36
36
|
hidden: { opacity: 0, y: '16px' }
|
37
37
|
};
|
38
|
-
return (react_1.default.createElement(framer_motion_1.motion.div, Object.assign({ className: `pf-chatbot pf-chatbot--${displayMode} ${!isVisible ? 'pf-chatbot--hidden' : ''} ${className !== null && className !== void 0 ? className : ''}`, variants: motionChatbot, initial: "hidden", animate: isVisible ? 'visible' : 'hidden' }, props), isVisible ? (react_1.default.createElement("section", { "aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : 'Chatbot', className: `pf-chatbot-container pf-chatbot-container--${displayMode} ${!isVisible ? 'pf-chatbot-container--hidden' : ''}`, tabIndex: -1, ref: innerRef }, children)) : undefined));
|
38
|
+
return (react_1.default.createElement(framer_motion_1.motion.div, Object.assign({ className: `pf-chatbot pf-chatbot--${displayMode} ${!isVisible ? 'pf-chatbot--hidden' : ''} ${isCompact ? 'pf-m-compact' : ''} ${className !== null && className !== void 0 ? className : ''}`, variants: motionChatbot, initial: "hidden", animate: isVisible ? 'visible' : 'hidden' }, props), isVisible ? (react_1.default.createElement("section", { "aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : 'Chatbot', className: `pf-chatbot-container pf-chatbot-container--${displayMode} ${!isVisible ? 'pf-chatbot-container--hidden' : ''}`, tabIndex: -1, ref: innerRef }, children)) : undefined));
|
39
39
|
};
|
40
40
|
const Chatbot = react_1.default.forwardRef((props, ref) => (react_1.default.createElement(ChatbotBase, Object.assign({ innerRef: ref }, props))));
|
41
41
|
exports.default = Chatbot;
|
@@ -25,4 +25,8 @@ describe('Chatbot', () => {
|
|
25
25
|
(0, react_2.render)(react_1.default.createElement(Chatbot_1.default, { isVisible: false }, "Chatbot Content"));
|
26
26
|
expect(react_2.screen.queryByLabelText('Chatbot')).toBeFalsy();
|
27
27
|
});
|
28
|
+
it('should handle isCompact', () => {
|
29
|
+
(0, react_2.render)(react_1.default.createElement(Chatbot_1.default, { "data-testid": "chatbot", isVisible: true, isCompact: true }, "Chatbot Content"));
|
30
|
+
expect(react_2.screen.getByTestId('chatbot')).toHaveClass('pf-m-compact');
|
31
|
+
});
|
28
32
|
});
|
@@ -76,6 +76,12 @@ export interface ChatbotConversationHistoryNavProps extends DrawerProps {
|
|
76
76
|
loadingState?: SkeletonProps;
|
77
77
|
/** Content to show in error state. Error state will appear once content is passed in. */
|
78
78
|
errorState?: HistoryEmptyStateProps;
|
79
|
+
/** Content to show in empty state. Empty state will appear once content is passed in. */
|
80
|
+
emptyState?: HistoryEmptyStateProps;
|
81
|
+
/** Content to show in no results state. No results state will appear once content is passed in. */
|
82
|
+
noResultsState?: HistoryEmptyStateProps;
|
83
|
+
/** Sets drawer to compact styling. */
|
84
|
+
isCompact?: boolean;
|
79
85
|
}
|
80
86
|
export declare const ChatbotConversationHistoryNav: React.FunctionComponent<ChatbotConversationHistoryNavProps>;
|
81
87
|
export default ChatbotConversationHistoryNav;
|
@@ -27,7 +27,7 @@ const ChatbotConversationHistoryDropdown_1 = __importDefault(require("./ChatbotC
|
|
27
27
|
const LoadingState_1 = __importDefault(require("./LoadingState"));
|
28
28
|
const EmptyState_1 = __importDefault(require("./EmptyState"));
|
29
29
|
const ChatbotConversationHistoryNav = (_a) => {
|
30
|
-
var { onDrawerToggle, isDrawerOpen, setIsDrawerOpen, activeItemId, onSelectActiveItem, conversations, newChatButtonText = 'New chat', drawerContent, onNewChat, searchInputPlaceholder = 'Search previous conversations...', searchInputAriaLabel = 'Filter menu items', handleTextInputChange, displayMode, reverseButtonOrder = false, drawerActionsTestId = 'chatbot-nav-drawer-actions', menuProps, drawerPanelContentProps, drawerContentProps, drawerContentBodyProps, drawerHeadProps, drawerActionsProps, drawerCloseButtonProps, drawerPanelBodyProps, isLoading, loadingState, errorState } = _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", "isLoading", "loadingState", "errorState"]);
|
30
|
+
var { onDrawerToggle, isDrawerOpen, setIsDrawerOpen, activeItemId, onSelectActiveItem, conversations, newChatButtonText = 'New chat', drawerContent, onNewChat, searchInputPlaceholder = 'Search previous conversations...', searchInputAriaLabel = 'Filter menu items', handleTextInputChange, displayMode, reverseButtonOrder = false, drawerActionsTestId = 'chatbot-nav-drawer-actions', menuProps, drawerPanelContentProps, drawerContentProps, drawerContentBodyProps, drawerHeadProps, drawerActionsProps, drawerCloseButtonProps, drawerPanelBodyProps, isLoading, loadingState, errorState, emptyState, noResultsState, isCompact } = _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", "isLoading", "loadingState", "errorState", "emptyState", "noResultsState", "isCompact"]);
|
31
31
|
const drawerRef = react_1.default.useRef(null);
|
32
32
|
const onExpand = () => {
|
33
33
|
drawerRef.current && drawerRef.current.focus();
|
@@ -58,6 +58,12 @@ const ChatbotConversationHistoryNav = (_a) => {
|
|
58
58
|
if (errorState) {
|
59
59
|
return react_1.default.createElement(EmptyState_1.default, Object.assign({}, errorState));
|
60
60
|
}
|
61
|
+
if (emptyState) {
|
62
|
+
return react_1.default.createElement(EmptyState_1.default, Object.assign({}, emptyState));
|
63
|
+
}
|
64
|
+
if (noResultsState) {
|
65
|
+
return react_1.default.createElement(EmptyState_1.default, Object.assign({}, noResultsState));
|
66
|
+
}
|
61
67
|
return (react_1.default.createElement(react_core_1.Menu, Object.assign({ isPlain: true, onSelect: onSelectActiveItem, activeItemId: activeItemId }, menuProps),
|
62
68
|
react_1.default.createElement(react_core_1.MenuContent, null, buildMenu())));
|
63
69
|
};
|
@@ -70,7 +76,7 @@ const ChatbotConversationHistoryNav = (_a) => {
|
|
70
76
|
react_1.default.createElement(react_core_1.DrawerHead, Object.assign({}, drawerHeadProps),
|
71
77
|
react_1.default.createElement(react_core_1.DrawerActions, Object.assign({ "data-testid": drawerActionsTestId, className: reverseButtonOrder ? 'pf-v6-c-drawer__actions--reversed' : '' }, drawerActionsProps),
|
72
78
|
react_1.default.createElement(react_core_1.DrawerCloseButton, Object.assign({ onClick: onDrawerToggle }, drawerCloseButtonProps)),
|
73
|
-
onNewChat && react_1.default.createElement(react_core_1.Button, { onClick: onNewChat }, newChatButtonText))),
|
79
|
+
onNewChat && (react_1.default.createElement(react_core_1.Button, { size: isCompact ? 'sm' : undefined, onClick: onNewChat }, newChatButtonText)))),
|
74
80
|
isLoading ? react_1.default.createElement(LoadingState_1.default, Object.assign({}, loadingState)) : renderDrawerContent()));
|
75
81
|
return (react_1.default.createElement(react_core_1.DrawerPanelContent, Object.assign({ "aria-live": "polite", focusTrap: { enabled: true }, defaultSize: "384px" }, drawerPanelContentProps), drawer));
|
76
82
|
};
|
@@ -84,7 +90,7 @@ const ChatbotConversationHistoryNav = (_a) => {
|
|
84
90
|
}
|
85
91
|
}
|
86
92
|
};
|
87
|
-
return (react_1.default.createElement(react_core_1.Drawer, Object.assign({ className:
|
93
|
+
return (react_1.default.createElement(react_core_1.Drawer, Object.assign({ className: `pf-chatbot__history ${isCompact ? 'pf-m-compact' : ''}`, isExpanded: isDrawerOpen, onExpand: onExpand, position: "start", onKeyDown: onEscape, isInline: displayMode === Chatbot_1.ChatbotDisplayMode.fullscreen || displayMode === Chatbot_1.ChatbotDisplayMode.embedded }, props),
|
88
94
|
react_1.default.createElement(react_core_1.DrawerContent, Object.assign({ panelContent: renderPanelContent() }, drawerContentProps),
|
89
95
|
react_1.default.createElement(react_core_1.DrawerContentBody, Object.assign({}, drawerContentBodyProps),
|
90
96
|
react_1.default.createElement(react_1.default.Fragment, null,
|
@@ -18,6 +18,7 @@ const react_2 = require("@testing-library/react");
|
|
18
18
|
const Chatbot_1 = require("../Chatbot/Chatbot");
|
19
19
|
const ChatbotConversationHistoryNav_1 = __importDefault(require("./ChatbotConversationHistoryNav"));
|
20
20
|
const react_core_1 = require("@patternfly/react-core");
|
21
|
+
const react_icons_1 = require("@patternfly/react-icons");
|
21
22
|
const ERROR = {
|
22
23
|
bodyText: (react_1.default.createElement(react_1.default.Fragment, null,
|
23
24
|
"To try again, check your connection and reload this page. If the issue persists,",
|
@@ -31,6 +32,16 @@ const ERROR = {
|
|
31
32
|
status: react_core_1.EmptyStateStatus.danger,
|
32
33
|
onClick: () => alert('Clicked Reload')
|
33
34
|
};
|
35
|
+
const NO_RESULTS = {
|
36
|
+
bodyText: 'Adjust your search query and try again. Check your spelling or try a more general term.',
|
37
|
+
titleText: 'No results found',
|
38
|
+
icon: react_icons_1.SearchIcon
|
39
|
+
};
|
40
|
+
const EMPTY_STATE = {
|
41
|
+
bodyText: 'Access timely assistance by starting a conversation with an AI model.',
|
42
|
+
titleText: 'Start a new chat',
|
43
|
+
icon: react_icons_1.OutlinedCommentsIcon
|
44
|
+
};
|
34
45
|
const ERROR_WITHOUT_BUTTON = {
|
35
46
|
bodyText: (react_1.default.createElement(react_1.default.Fragment, null,
|
36
47
|
"To try again, check your connection and reload this page. If the issue persists,",
|
@@ -162,4 +173,20 @@ describe('ChatbotConversationHistoryNav', () => {
|
|
162
173
|
(0, react_2.render)(react_1.default.createElement(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, handleTextInputChange: jest.fn(), conversations: initialConversations, isLoading: true, errorState: ERROR }));
|
163
174
|
expect(react_2.screen.getByRole('dialog', { name: /Loading/i })).toBeTruthy();
|
164
175
|
});
|
176
|
+
it('should accept emptyState', () => {
|
177
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, handleTextInputChange: jest.fn(), conversations: initialConversations, emptyState: EMPTY_STATE }));
|
178
|
+
expect(react_2.screen.getByRole('dialog', {
|
179
|
+
name: /Start a new chat Access timely assistance by starting a conversation with an AI model./i
|
180
|
+
})).toBeTruthy();
|
181
|
+
});
|
182
|
+
it('should accept no results state', () => {
|
183
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, handleTextInputChange: jest.fn(), conversations: initialConversations, noResultsState: NO_RESULTS }));
|
184
|
+
expect(react_2.screen.getByRole('dialog', {
|
185
|
+
name: /No results found Adjust your search query and try again. Check your spelling or try a more general term./i
|
186
|
+
})).toBeTruthy();
|
187
|
+
});
|
188
|
+
it('should handle isCompact', () => {
|
189
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, handleTextInputChange: jest.fn(), conversations: initialConversations, noResultsState: NO_RESULTS, isCompact: true, "data-testid": "drawer" }));
|
190
|
+
expect(react_2.screen.getByTestId('drawer')).toHaveClass('pf-m-compact');
|
191
|
+
});
|
165
192
|
});
|
@@ -4,6 +4,7 @@ export interface ChatbotFooterProps extends React.HTMLProps<HTMLDivElement> {
|
|
4
4
|
children?: React.ReactNode;
|
5
5
|
/** Custom classname for the Footer component */
|
6
6
|
className?: string;
|
7
|
+
isCompact?: boolean;
|
7
8
|
}
|
8
9
|
export declare const ChatbotFooter: React.FunctionComponent<ChatbotFooterProps>;
|
9
10
|
export default ChatbotFooter;
|
@@ -26,8 +26,8 @@ exports.ChatbotFooter = void 0;
|
|
26
26
|
const react_1 = __importDefault(require("react"));
|
27
27
|
const react_core_1 = require("@patternfly/react-core");
|
28
28
|
const ChatbotFooter = (_a) => {
|
29
|
-
var { children, className } = _a, props = __rest(_a, ["children", "className"]);
|
30
|
-
return (react_1.default.createElement("div", Object.assign({ className: `pf-chatbot__footer ${className !== null && className !== void 0 ? className : ''}` }, props),
|
29
|
+
var { children, className, isCompact } = _a, props = __rest(_a, ["children", "className", "isCompact"]);
|
30
|
+
return (react_1.default.createElement("div", Object.assign({ className: `pf-chatbot__footer ${isCompact ? 'pf-m-compact' : ''} ${className !== null && className !== void 0 ? className : ''}` }, props),
|
31
31
|
react_1.default.createElement(react_core_1.Divider, null),
|
32
32
|
react_1.default.createElement("div", { className: "pf-chatbot__footer-container" }, children)));
|
33
33
|
};
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
import '@testing-library/jest-dom';
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
7
7
|
const react_2 = require("@testing-library/react");
|
8
8
|
const ChatbotFooter_1 = __importDefault(require("./ChatbotFooter"));
|
9
|
+
require("@testing-library/jest-dom");
|
9
10
|
describe('ChatbotFooter', () => {
|
10
11
|
it('should render ChatbotFooter with children', () => {
|
11
12
|
(0, react_2.render)(react_1.default.createElement(ChatbotFooter_1.default, null, "Chatbot Content"));
|
@@ -15,4 +16,8 @@ describe('ChatbotFooter', () => {
|
|
15
16
|
const { container } = (0, react_2.render)(react_1.default.createElement(ChatbotFooter_1.default, { className: "custom-class" }, "Chatbot Content"));
|
16
17
|
expect(container.querySelector('.custom-class')).toBeTruthy();
|
17
18
|
});
|
19
|
+
it('should handle isCompact', () => {
|
20
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotFooter_1.default, { className: "custom-class", isCompact: true, "data-testid": "footer" }, "Chatbot Content"));
|
21
|
+
expect(react_2.screen.getByTestId('footer')).toHaveClass('pf-m-compact');
|
22
|
+
});
|
18
23
|
});
|
@@ -7,7 +7,7 @@ exports.ChatbotHeader = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
8
8
|
const react_core_1 = require("@patternfly/react-core");
|
9
9
|
const ChatbotHeader = ({ className, children }) => (react_1.default.createElement("div", { className: "pf-chatbot__header-container" },
|
10
|
-
react_1.default.createElement("div", { className: `pf-chatbot__header
|
10
|
+
react_1.default.createElement("div", { className: `pf-chatbot__header${className ? ` ${className}` : ''}` }, children),
|
11
11
|
react_1.default.createElement(react_core_1.Divider, { className: "pf-chatbot__header__divider" })));
|
12
12
|
exports.ChatbotHeader = ChatbotHeader;
|
13
13
|
exports.default = exports.ChatbotHeader;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
import { TooltipProps } from '@patternfly/react-core';
|
3
|
-
export interface ChatbotHeaderCloseButtonProps {
|
2
|
+
import { ButtonProps, TooltipProps } from '@patternfly/react-core';
|
3
|
+
export interface ChatbotHeaderCloseButtonProps extends ButtonProps {
|
4
4
|
/** Callback function for when button is clicked */
|
5
5
|
onClick: () => void;
|
6
6
|
/** Custom classname for the header component */
|
@@ -13,5 +13,7 @@ export interface ChatbotHeaderCloseButtonProps {
|
|
13
13
|
innerRef?: React.Ref<HTMLButtonElement>;
|
14
14
|
/** Content used in tooltip */
|
15
15
|
tooltipContent?: string;
|
16
|
+
/** Sets button to compact styling. */
|
17
|
+
isCompact?: boolean;
|
16
18
|
}
|
17
19
|
export declare const ChatbotHeaderCloseButton: React.ForwardRefExoticComponent<ChatbotHeaderCloseButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
@@ -1,4 +1,15 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
3
|
+
var t = {};
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
5
|
+
t[p] = s[p];
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
9
|
+
t[p[i]] = s[p[i]];
|
10
|
+
}
|
11
|
+
return t;
|
12
|
+
};
|
2
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
15
|
};
|
@@ -7,10 +18,13 @@ exports.ChatbotHeaderCloseButton = void 0;
|
|
7
18
|
const react_1 = __importDefault(require("react"));
|
8
19
|
const react_core_1 = require("@patternfly/react-core");
|
9
20
|
const react_icons_1 = require("@patternfly/react-icons");
|
10
|
-
const ChatbotHeaderCloseButtonBase = (
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
21
|
+
const ChatbotHeaderCloseButtonBase = (_a) => {
|
22
|
+
var { className, onClick, tooltipProps, menuAriaLabel = 'Close', innerRef, tooltipContent = 'Close', isCompact } = _a, props = __rest(_a, ["className", "onClick", "tooltipProps", "menuAriaLabel", "innerRef", "tooltipContent", "isCompact"]);
|
23
|
+
return (react_1.default.createElement("div", { className: `pf-chatbot__menu${className ? ` ${className}` : ''}` },
|
24
|
+
react_1.default.createElement(react_core_1.Tooltip, Object.assign({ content: tooltipContent, position: "bottom",
|
25
|
+
// prevents VO announcements of both aria label and tooltip
|
26
|
+
aria: "none" }, tooltipProps),
|
27
|
+
react_1.default.createElement(react_core_1.Button, Object.assign({ className: `pf-chatbot__button--toggle-menu ${isCompact ? 'pf-m-compact' : ''}`, variant: "plain", onClick: onClick, "aria-label": menuAriaLabel, ref: innerRef, icon: react_1.default.createElement(react_core_1.Icon, { size: isCompact ? 'lg' : 'xl', isInline: true },
|
28
|
+
react_1.default.createElement(react_icons_1.CloseIcon, null)), size: isCompact ? 'sm' : undefined }, props)))));
|
29
|
+
};
|
16
30
|
exports.ChatbotHeaderCloseButton = react_1.default.forwardRef((props, ref) => (react_1.default.createElement(ChatbotHeaderCloseButtonBase, Object.assign({ innerRef: ref }, props))));
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
import '@testing-library/jest-dom';
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
7
7
|
const react_2 = require("@testing-library/react");
|
8
8
|
const ChatbotHeaderCloseButton_1 = require("./ChatbotHeaderCloseButton");
|
9
|
+
require("@testing-library/jest-dom");
|
9
10
|
describe('ChatbotHeaderCloseButton', () => {
|
10
11
|
it('should render ChatbotHeaderCloseButton', () => {
|
11
12
|
const { container } = (0, react_2.render)(react_1.default.createElement(ChatbotHeaderCloseButton_1.ChatbotHeaderCloseButton, { className: "custom-header-close-button", onClick: jest.fn() }));
|
@@ -17,4 +18,8 @@ describe('ChatbotHeaderCloseButton', () => {
|
|
17
18
|
react_2.fireEvent.click(react_2.screen.getByRole('button', { name: 'Close' }));
|
18
19
|
expect(onClick).toHaveBeenCalled();
|
19
20
|
});
|
21
|
+
it('should render button with isCompact', () => {
|
22
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotHeaderCloseButton_1.ChatbotHeaderCloseButton, { "data-testid": "close-button", onClick: jest.fn(), isCompact: true }));
|
23
|
+
expect(react_2.screen.getByTestId('close-button')).toHaveClass('pf-m-compact');
|
24
|
+
});
|
20
25
|
});
|
@@ -5,6 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
exports.ChatbotHeaderMain = void 0;
|
7
7
|
const react_1 = __importDefault(require("react"));
|
8
|
-
const ChatbotHeaderMain = ({ className, children }) => react_1.default.createElement("div", { className: `pf-chatbot__header-main ${className}` }, children);
|
8
|
+
const ChatbotHeaderMain = ({ className, children }) => (react_1.default.createElement("div", { className: `pf-chatbot__header-main${className ? ` ${className}` : ''}` }, children));
|
9
9
|
exports.ChatbotHeaderMain = ChatbotHeaderMain;
|
10
10
|
exports.default = exports.ChatbotHeaderMain;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
import { TooltipProps } from '@patternfly/react-core';
|
3
|
-
export interface ChatbotHeaderMenuProps {
|
2
|
+
import { ButtonProps, TooltipProps } from '@patternfly/react-core';
|
3
|
+
export interface ChatbotHeaderMenuProps extends ButtonProps {
|
4
4
|
/** Callback function to attach to menu toggle on top right of chatbot header. */
|
5
5
|
onMenuToggle: () => void;
|
6
6
|
/** Custom classname for the header component */
|
@@ -13,5 +13,6 @@ export interface ChatbotHeaderMenuProps {
|
|
13
13
|
innerRef?: React.Ref<HTMLButtonElement>;
|
14
14
|
/** Content used in tooltip */
|
15
15
|
tooltipContent?: string;
|
16
|
+
isCompact?: boolean;
|
16
17
|
}
|
17
18
|
export declare const ChatbotHeaderMenu: React.ForwardRefExoticComponent<ChatbotHeaderMenuProps & React.RefAttributes<HTMLButtonElement>>;
|
@@ -1,4 +1,15 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
3
|
+
var t = {};
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
5
|
+
t[p] = s[p];
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
9
|
+
t[p[i]] = s[p[i]];
|
10
|
+
}
|
11
|
+
return t;
|
12
|
+
};
|
2
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
15
|
};
|
@@ -7,10 +18,13 @@ exports.ChatbotHeaderMenu = void 0;
|
|
7
18
|
const react_1 = __importDefault(require("react"));
|
8
19
|
const react_core_1 = require("@patternfly/react-core");
|
9
20
|
const bars_icon_1 = __importDefault(require("@patternfly/react-icons/dist/esm/icons/bars-icon"));
|
10
|
-
const ChatbotHeaderMenuBase = (
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
21
|
+
const ChatbotHeaderMenuBase = (_a) => {
|
22
|
+
var { className, onMenuToggle, tooltipProps, menuAriaLabel = 'Toggle menu', innerRef, tooltipContent = 'Menu', isCompact } = _a, props = __rest(_a, ["className", "onMenuToggle", "tooltipProps", "menuAriaLabel", "innerRef", "tooltipContent", "isCompact"]);
|
23
|
+
return (react_1.default.createElement("div", { className: `pf-chatbot__menu ${className}` },
|
24
|
+
react_1.default.createElement(react_core_1.Tooltip, Object.assign({ content: tooltipContent, position: "bottom",
|
25
|
+
// prevents VO announcements of both aria label and tooltip
|
26
|
+
aria: "none" }, tooltipProps),
|
27
|
+
react_1.default.createElement(react_core_1.Button, Object.assign({ className: `pf-chatbot__button--toggle-menu ${isCompact ? 'pf-m-compact' : ''}`, variant: "plain", onClick: onMenuToggle, "aria-label": menuAriaLabel, ref: innerRef, icon: react_1.default.createElement(react_core_1.Icon, { size: isCompact ? 'lg' : 'xl', isInline: true },
|
28
|
+
react_1.default.createElement(bars_icon_1.default, null)), size: isCompact ? 'sm' : undefined }, props)))));
|
29
|
+
};
|
16
30
|
exports.ChatbotHeaderMenu = react_1.default.forwardRef((props, ref) => (react_1.default.createElement(ChatbotHeaderMenuBase, Object.assign({ innerRef: ref }, props))));
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
import '@testing-library/jest-dom';
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
7
7
|
const react_2 = require("@testing-library/react");
|
8
8
|
const ChatbotHeaderMenu_1 = require("./ChatbotHeaderMenu");
|
9
|
+
require("@testing-library/jest-dom");
|
9
10
|
describe('ChatbotHeaderMenu', () => {
|
10
11
|
it('should render ChatbotHeaderMenu with custom class', () => {
|
11
12
|
const { container } = (0, react_2.render)(react_1.default.createElement(ChatbotHeaderMenu_1.ChatbotHeaderMenu, { className: "custom-header-menu", onMenuToggle: jest.fn() }));
|
@@ -17,4 +18,8 @@ describe('ChatbotHeaderMenu', () => {
|
|
17
18
|
react_2.fireEvent.click(react_2.screen.getByRole('button', { name: 'Toggle menu' }));
|
18
19
|
expect(onMenuToggle).toHaveBeenCalled();
|
19
20
|
});
|
21
|
+
it('should handle isCompact', () => {
|
22
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotHeaderMenu_1.ChatbotHeaderMenu, { className: "custom-header-menu", onMenuToggle: jest.fn(), isCompact: true, "data-testid": "button" }));
|
23
|
+
expect(react_2.screen.getByTestId('button')).toHaveClass('pf-m-compact');
|
24
|
+
});
|
20
25
|
});
|
@@ -9,6 +9,7 @@ export interface ChatbotHeaderOptionsDropdownProps extends Omit<DropdownProps, '
|
|
9
9
|
tooltipProps?: TooltipProps;
|
10
10
|
/** Aria label for menu toggle */
|
11
11
|
menuToggleAriaLabel?: string;
|
12
|
+
isCompact?: boolean;
|
12
13
|
}
|
13
14
|
export declare const ChatbotHeaderOptionsDropdown: React.FunctionComponent<ChatbotHeaderOptionsDropdownProps>;
|
14
15
|
export default ChatbotHeaderOptionsDropdown;
|
@@ -19,13 +19,13 @@ const react_1 = __importDefault(require("react"));
|
|
19
19
|
const react_core_1 = require("@patternfly/react-core");
|
20
20
|
const ellipsis_v_icon_1 = __importDefault(require("@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon"));
|
21
21
|
const ChatbotHeaderOptionsDropdown = (_a) => {
|
22
|
-
var { className, children, onSelect, tooltipProps, menuToggleAriaLabel = 'Chatbot options' } = _a, props = __rest(_a, ["className", "children", "onSelect", "tooltipProps", "menuToggleAriaLabel"]);
|
22
|
+
var { className, children, onSelect, tooltipProps, menuToggleAriaLabel = 'Chatbot options', isCompact } = _a, props = __rest(_a, ["className", "children", "onSelect", "tooltipProps", "menuToggleAriaLabel", "isCompact"]);
|
23
23
|
const [isOptionsMenuOpen, setIsOptionsMenuOpen] = react_1.default.useState(false);
|
24
24
|
const toggle = (toggleRef) => (react_1.default.createElement(react_core_1.Tooltip, Object.assign({ className: "pf-chatbot__tooltip", content: "Chatbot options", position: "bottom",
|
25
25
|
// prevents VO announcements of both aria label and tooltip
|
26
26
|
aria: "none" }, tooltipProps),
|
27
|
-
react_1.default.createElement(react_core_1.MenuToggle, { className:
|
28
|
-
react_1.default.createElement(ellipsis_v_icon_1.default, null)), isExpanded: isOptionsMenuOpen, onClick: () => setIsOptionsMenuOpen(!isOptionsMenuOpen) })));
|
27
|
+
react_1.default.createElement(react_core_1.MenuToggle, { className: `pf-chatbot__button--toggle-options ${isCompact ? 'pf-m-compact' : ''}`, variant: "plain", "aria-label": menuToggleAriaLabel, ref: toggleRef, icon: react_1.default.createElement(react_core_1.Icon, { size: isCompact ? 'lg' : 'xl', isInline: true },
|
28
|
+
react_1.default.createElement(ellipsis_v_icon_1.default, null)), isExpanded: isOptionsMenuOpen, onClick: () => setIsOptionsMenuOpen(!isOptionsMenuOpen), size: isCompact ? 'sm' : undefined })));
|
29
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) => {
|
30
30
|
onSelect && onSelect(e, value);
|
31
31
|
setIsOptionsMenuOpen(false);
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
import '@testing-library/jest-dom';
|
@@ -16,6 +16,7 @@ const react_1 = __importDefault(require("react"));
|
|
16
16
|
const react_core_1 = require("@patternfly/react-core");
|
17
17
|
const react_2 = require("@testing-library/react");
|
18
18
|
const ChatbotHeaderOptionsDropdown_1 = require("./ChatbotHeaderOptionsDropdown");
|
19
|
+
require("@testing-library/jest-dom");
|
19
20
|
describe('ChatbotHeaderOptionsDropdown', () => {
|
20
21
|
const dropdownItems = (react_1.default.createElement(react_1.default.Fragment, null,
|
21
22
|
react_1.default.createElement(react_core_1.DropdownItem, null, "Option 1"),
|
@@ -40,4 +41,8 @@ describe('ChatbotHeaderOptionsDropdown', () => {
|
|
40
41
|
expect(onSelect).toHaveBeenCalled();
|
41
42
|
});
|
42
43
|
}));
|
44
|
+
it('should handle isCompact', () => {
|
45
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotHeaderOptionsDropdown_1.ChatbotHeaderOptionsDropdown, { isCompact: true }, dropdownItems));
|
46
|
+
expect(react_2.screen.getByRole('button', { name: 'Chatbot options' })).toHaveClass('pf-m-compact');
|
47
|
+
});
|
43
48
|
});
|
@@ -13,6 +13,7 @@ export interface ChatbotHeaderSelectorDropdownProps extends Omit<DropdownProps,
|
|
13
13
|
menuToggleAriaLabel?: string;
|
14
14
|
/** Text displayed in Tooltip wrapping the display mode dropdown */
|
15
15
|
tooltipContent?: string;
|
16
|
+
isCompact?: boolean;
|
16
17
|
}
|
17
18
|
export declare const ChatbotHeaderSelectorDropdown: React.FunctionComponent<ChatbotHeaderSelectorDropdownProps>;
|
18
19
|
export default ChatbotHeaderSelectorDropdown;
|
@@ -18,13 +18,13 @@ exports.ChatbotHeaderSelectorDropdown = void 0;
|
|
18
18
|
const react_1 = __importDefault(require("react"));
|
19
19
|
const react_core_1 = require("@patternfly/react-core");
|
20
20
|
const ChatbotHeaderSelectorDropdown = (_a) => {
|
21
|
-
var { value, className, children, onSelect, tooltipProps, tooltipContent = 'Select model', menuToggleAriaLabel } = _a, props = __rest(_a, ["value", "className", "children", "onSelect", "tooltipProps", "tooltipContent", "menuToggleAriaLabel"]);
|
21
|
+
var { value, className, children, onSelect, tooltipProps, tooltipContent = 'Select model', menuToggleAriaLabel, isCompact } = _a, props = __rest(_a, ["value", "className", "children", "onSelect", "tooltipProps", "tooltipContent", "menuToggleAriaLabel", "isCompact"]);
|
22
22
|
const [isOptionsMenuOpen, setIsOptionsMenuOpen] = react_1.default.useState(false);
|
23
23
|
const [defaultAriaLabel, setDefaultAriaLabel] = react_1.default.useState('Select model');
|
24
24
|
const toggle = (toggleRef) => (react_1.default.createElement(react_core_1.Tooltip, Object.assign({ className: "pf-chatbot__tooltip", content: tooltipContent, position: "bottom",
|
25
25
|
// prevents VO announcements of both aria label and tooltip
|
26
26
|
aria: "none" }, tooltipProps),
|
27
|
-
react_1.default.createElement(react_core_1.MenuToggle, { variant: "secondary", "aria-label": menuToggleAriaLabel !== null && menuToggleAriaLabel !== void 0 ? menuToggleAriaLabel : defaultAriaLabel, ref: toggleRef, isExpanded: isOptionsMenuOpen, onClick: () => setIsOptionsMenuOpen(!isOptionsMenuOpen) }, value)));
|
27
|
+
react_1.default.createElement(react_core_1.MenuToggle, { variant: "secondary", "aria-label": menuToggleAriaLabel !== null && menuToggleAriaLabel !== void 0 ? menuToggleAriaLabel : defaultAriaLabel, ref: toggleRef, isExpanded: isOptionsMenuOpen, onClick: () => setIsOptionsMenuOpen(!isOptionsMenuOpen), size: isCompact ? 'sm' : undefined, className: `${isCompact ? 'pf-m-compact' : ''}` }, value)));
|
28
28
|
return (react_1.default.createElement(react_core_1.Dropdown, Object.assign({ className: `pf-chatbot__selections ${className !== null && className !== void 0 ? className : ''}`, isOpen: isOptionsMenuOpen, onSelect: (e, value) => {
|
29
29
|
onSelect && onSelect(e, value);
|
30
30
|
setDefaultAriaLabel(`Select model: ${value}`);
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
import '@testing-library/jest-dom';
|
@@ -16,6 +16,7 @@ const react_1 = __importDefault(require("react"));
|
|
16
16
|
const react_core_1 = require("@patternfly/react-core");
|
17
17
|
const react_2 = require("@testing-library/react");
|
18
18
|
const ChatbotHeaderSelectorDropdown_1 = require("./ChatbotHeaderSelectorDropdown");
|
19
|
+
require("@testing-library/jest-dom");
|
19
20
|
describe('ChatbotHeaderSelectorDropdown', () => {
|
20
21
|
const dropdownItems = (react_1.default.createElement(react_1.default.Fragment, null,
|
21
22
|
react_1.default.createElement(react_core_1.DropdownItem, null, "Option 1"),
|
@@ -38,4 +39,8 @@ describe('ChatbotHeaderSelectorDropdown', () => {
|
|
38
39
|
expect(onSelect).toHaveBeenCalled();
|
39
40
|
});
|
40
41
|
}));
|
42
|
+
it('should handle isCompact', () => {
|
43
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotHeaderSelectorDropdown_1.ChatbotHeaderSelectorDropdown, { value: "Option 1", isCompact: true }, dropdownItems));
|
44
|
+
expect(react_2.screen.getByRole('button', { name: /Select model/i })).toHaveClass('pf-m-compact');
|
45
|
+
});
|
41
46
|
});
|
@@ -4,7 +4,10 @@ import { ChatbotDisplayMode } from '../Chatbot';
|
|
4
4
|
export interface ChatbotModalProps extends Omit<ModalProps, 'ref'> {
|
5
5
|
/** Display mode for the Chatbot parent; this influences the styles applied */
|
6
6
|
displayMode?: ChatbotDisplayMode;
|
7
|
+
/** Additional className applied to modal */
|
7
8
|
className?: string;
|
9
|
+
/** Sets modal to compact styling. */
|
10
|
+
isCompact?: boolean;
|
8
11
|
}
|
9
12
|
export declare const ChatbotModal: React.FunctionComponent<ChatbotModalProps>;
|
10
13
|
export default ChatbotModal;
|
@@ -23,8 +23,8 @@ const react_1 = __importDefault(require("react"));
|
|
23
23
|
const react_core_1 = require("@patternfly/react-core");
|
24
24
|
const Chatbot_1 = require("../Chatbot");
|
25
25
|
const ChatbotModal = (_a) => {
|
26
|
-
var { children, displayMode = Chatbot_1.ChatbotDisplayMode.default, className, isOpen } = _a, props = __rest(_a, ["children", "displayMode", "className", "isOpen"]);
|
27
|
-
const modal = (react_1.default.createElement(react_core_1.Modal, Object.assign({ isOpen: isOpen, ouiaId: "ChatbotModal", "aria-labelledby": "chatbot-modal-title", "aria-describedby": "chatbot-modal", className: `pf-chatbot__chatbot-modal pf-chatbot__chatbot-modal--${displayMode} ${className}`, backdropClassName: "pf-chatbot__chatbot-modal-backdrop" }, props), children));
|
26
|
+
var { children, displayMode = Chatbot_1.ChatbotDisplayMode.default, className, isOpen, isCompact } = _a, props = __rest(_a, ["children", "displayMode", "className", "isOpen", "isCompact"]);
|
27
|
+
const modal = (react_1.default.createElement(react_core_1.Modal, Object.assign({ isOpen: isOpen, ouiaId: "ChatbotModal", "aria-labelledby": "chatbot-modal-title", "aria-describedby": "chatbot-modal", className: `pf-chatbot__chatbot-modal pf-chatbot__chatbot-modal--${displayMode} ${isCompact ? 'pf-m-compact' : ''} ${className}`, backdropClassName: "pf-chatbot__chatbot-modal-backdrop" }, props), children));
|
28
28
|
if ((displayMode === Chatbot_1.ChatbotDisplayMode.fullscreen || displayMode === Chatbot_1.ChatbotDisplayMode.embedded) && isOpen) {
|
29
29
|
return react_1.default.createElement("div", { className: "pf-v6-c-backdrop pf-chatbot__backdrop" }, modal);
|
30
30
|
}
|
@@ -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
|
+
const react_1 = __importDefault(require("react"));
|
7
|
+
const react_2 = require("@testing-library/react");
|
8
|
+
const ChatbotModal_1 = __importDefault(require("./ChatbotModal"));
|
9
|
+
require("@testing-library/jest-dom");
|
10
|
+
const react_core_1 = require("@patternfly/react-core");
|
11
|
+
describe('ChatbotModal', () => {
|
12
|
+
it('should render compact modal', () => {
|
13
|
+
(0, react_2.render)(react_1.default.createElement(ChatbotModal_1.default, { "data-testid": "modal", isCompact: true, isOpen: true },
|
14
|
+
react_1.default.createElement(react_core_1.ModalHeader, { title: "Modal with description", labelId: "modal-with-description-title", description: "A description is used when you want to provide more info about the modal than the title is able to describe. The content in the description is static and will not scroll with the rest of the modal body." }),
|
15
|
+
react_1.default.createElement(react_core_1.ModalBody, { tabIndex: 0, id: "modal-box-body-with-description" },
|
16
|
+
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis eleifend quam adipiscing vitae proin sagittis nisl rhoncus. Semper auctor neque vitae tempus. Diam donec adipiscing tristique risus. Augue eget arcu dictum varius duis. Ut enim blandit volutpat maecenas volutpat blandit aliquam. Sit amet mauris commodo quis imperdiet massa tincidunt. Habitant morbi tristique senectus et netus. Fames ac turpis egestas sed tempus urna. Neque laoreet suspendisse interdum consectetur libero id. Volutpat lacus laoreet non curabitur gravida arcu ac tortor. Porta nibh venenatis cras sed felis eget velit. Nullam non nisi est sit amet facilisis. Nunc mi ipsum faucibus vitae. Lorem sed risus ultricies tristique nulla aliquet enim tortor at. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Lacinia quis vel eros donec ac odio tempor orci. Malesuada fames ac turpis egestas integer eget aliquet.",
|
17
|
+
react_1.default.createElement("br", null),
|
18
|
+
react_1.default.createElement("br", null),
|
19
|
+
"Neque aliquam vestibulum morbi blandit cursus risus at ultrices. Molestie at elementum eu facilisis sed odio morbi. Elit pellentesque habitant morbi tristique. Consequat nisl vel pretium lectus quam id leo in vitae. Quis varius quam quisque id diam vel quam elementum. Viverra nam libero justo laoreet sit amet cursus. Sollicitudin tempor id eu nisl nunc. Orci nulla pellentesque dignissim enim sit amet venenatis. Dignissim enim sit amet venenatis urna cursus eget. Iaculis at erat pellentesque adipiscing commodo elit. Faucibus pulvinar elementum integer enim neque volutpat. Nullam vehicula ipsum a arcu cursus vitae congue mauris. Nunc mattis enim ut tellus elementum sagittis vitae. Blandit cursus risus at ultrices. Tellus mauris a diam maecenas sed enim. Non diam phasellus vestibulum lorem sed risus ultricies tristique nulla.",
|
20
|
+
react_1.default.createElement("br", null),
|
21
|
+
react_1.default.createElement("br", null),
|
22
|
+
"Nulla pharetra diam sit amet nisl suscipit adipiscing. Ac tortor vitae purus faucibus ornare suspendisse sed nisi. Sed felis eget velit aliquet sagittis id consectetur purus. Tincidunt tortor aliquam nulla facilisi cras fermentum. Volutpat est velit egestas dui id ornare arcu odio. Pharetra magna ac placerat vestibulum. Ultrices sagittis orci a scelerisque purus semper eget duis at. Nisi est sit amet facilisis magna etiam tempor orci eu. Convallis tellus id interdum velit. Facilisis sed odio morbi quis commodo odio aenean sed.",
|
23
|
+
react_1.default.createElement("br", null),
|
24
|
+
react_1.default.createElement("br", null),
|
25
|
+
"Eu scelerisque felis imperdiet proin fermentum leo vel orci porta. Facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum. Eleifend donec pretium vulputate sapien nec sagittis aliquam malesuada. Magna etiam tempor orci eu lobortis elementum. Quis auctor elit sed vulputate mi sit. Eleifend quam adipiscing vitae proin sagittis nisl rhoncus mattis rhoncus. Erat velit scelerisque in dictum non. Sit amet nulla facilisi morbi tempus iaculis urna. Enim ut tellus elementum sagittis vitae et leo duis ut. Lectus arcu bibendum at varius vel pharetra vel turpis. Morbi tristique senectus et netus et. Eget aliquet nibh praesent tristique magna sit amet purus gravida. Nisl purus in mollis nunc sed id semper risus. Id neque aliquam vestibulum morbi. Mauris a diam maecenas sed enim ut sem. Egestas tellus rutrum tellus pellentesque.")));
|
26
|
+
expect(react_2.screen.getByTestId('modal')).toHaveClass('pf-m-compact');
|
27
|
+
});
|
28
|
+
});
|
@@ -23,7 +23,7 @@ const react_1 = __importDefault(require("react"));
|
|
23
23
|
const react_core_1 = require("@patternfly/react-core");
|
24
24
|
const ChatbotPopover = (_a) => {
|
25
25
|
var { children, className } = _a, props = __rest(_a, ["children", "className"]);
|
26
|
-
return (react_1.default.createElement(react_core_1.Popover, Object.assign({ className: `pf-chatbot__popover
|
26
|
+
return (react_1.default.createElement(react_core_1.Popover, Object.assign({ className: `pf-chatbot__popover ${className !== null && className !== void 0 ? className : ''}`, showClose: false }, props), children));
|
27
27
|
};
|
28
28
|
exports.ChatbotPopover = ChatbotPopover;
|
29
29
|
exports.default = exports.ChatbotPopover;
|
@@ -10,6 +10,7 @@ export interface ChatbotWelcomePromptProps extends React.HTMLProps<HTMLDivElemen
|
|
10
10
|
className?: string;
|
11
11
|
/** Custom test id for the WelcomePrompt component */
|
12
12
|
testId?: string;
|
13
|
+
isCompact?: boolean;
|
13
14
|
}
|
14
15
|
export interface WelcomePrompt {
|
15
16
|
/** Message for the welcome prompt */
|