@patternfly/chatbot 2.1.0-prerelease.17
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/@types/index.d.ts +9 -0
- package/dist/cjs/AttachMenu/AttachMenu.d.ts +29 -0
- package/dist/cjs/AttachMenu/AttachMenu.js +33 -0
- package/dist/cjs/AttachMenu/index.d.ts +2 -0
- package/dist/cjs/AttachMenu/index.js +23 -0
- package/dist/cjs/AttachmentEdit/AttachmentEdit.d.ts +22 -0
- package/dist/cjs/AttachmentEdit/AttachmentEdit.js +25 -0
- package/dist/cjs/AttachmentEdit/index.d.ts +2 -0
- package/dist/cjs/AttachmentEdit/index.js +23 -0
- package/dist/cjs/Chatbot/Chatbot.d.ts +23 -0
- package/dist/cjs/Chatbot/Chatbot.js +49 -0
- package/dist/cjs/Chatbot/index.d.ts +2 -0
- package/dist/cjs/Chatbot/index.js +23 -0
- package/dist/cjs/ChatbotAlert/ChatbotAlert.d.ts +8 -0
- package/dist/cjs/ChatbotAlert/ChatbotAlert.js +28 -0
- package/dist/cjs/ChatbotAlert/index.d.ts +2 -0
- package/dist/cjs/ChatbotAlert/index.js +23 -0
- package/dist/cjs/ChatbotContent/ChatbotContent.d.ts +9 -0
- package/dist/cjs/ChatbotContent/ChatbotContent.js +27 -0
- package/dist/cjs/ChatbotContent/index.d.ts +2 -0
- package/dist/cjs/ChatbotContent/index.js +23 -0
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +14 -0
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +22 -0
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +52 -0
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +83 -0
- package/dist/cjs/ChatbotConversationHistoryNav/index.d.ts +3 -0
- package/dist/cjs/ChatbotConversationHistoryNav/index.js +24 -0
- package/dist/cjs/ChatbotFooter/ChatbotFooter.d.ts +9 -0
- package/dist/cjs/ChatbotFooter/ChatbotFooter.js +35 -0
- package/dist/cjs/ChatbotFooter/ChatbotFootnote.d.ts +44 -0
- package/dist/cjs/ChatbotFooter/ChatbotFootnote.js +56 -0
- package/dist/cjs/ChatbotFooter/index.d.ts +3 -0
- package/dist/cjs/ChatbotFooter/index.js +24 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeader.d.ts +9 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeader.js +13 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.d.ts +9 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.js +10 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.d.ts +9 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.js +10 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.d.ts +15 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +14 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +14 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +33 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +18 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +33 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.d.ts +20 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.js +33 -0
- package/dist/cjs/ChatbotHeader/index.d.ts +8 -0
- package/dist/cjs/ChatbotHeader/index.js +29 -0
- package/dist/cjs/ChatbotModal/ChatbotModal.d.ts +10 -0
- package/dist/cjs/ChatbotModal/ChatbotModal.js +34 -0
- package/dist/cjs/ChatbotModal/index.d.ts +2 -0
- package/dist/cjs/ChatbotModal/index.js +23 -0
- package/dist/cjs/ChatbotPopover/ChatbotPopover.d.ts +4 -0
- package/dist/cjs/ChatbotPopover/ChatbotPopover.js +29 -0
- package/dist/cjs/ChatbotPopover/index.d.ts +2 -0
- package/dist/cjs/ChatbotPopover/index.js +23 -0
- package/dist/cjs/ChatbotToggle/ChatbotToggle.d.ts +20 -0
- package/dist/cjs/ChatbotToggle/ChatbotToggle.js +35 -0
- package/dist/cjs/ChatbotToggle/index.d.ts +2 -0
- package/dist/cjs/ChatbotToggle/index.js +23 -0
- package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +23 -0
- package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +40 -0
- package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.d.ts +1 -0
- package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +49 -0
- package/dist/cjs/ChatbotWelcomePrompt/index.d.ts +2 -0
- package/dist/cjs/ChatbotWelcomePrompt/index.js +23 -0
- package/dist/cjs/CodeModal/CodeModal.d.ts +34 -0
- package/dist/cjs/CodeModal/CodeModal.js +105 -0
- package/dist/cjs/CodeModal/index.d.ts +2 -0
- package/dist/cjs/CodeModal/index.js +23 -0
- package/dist/cjs/FileDetails/FileDetails.d.ts +922 -0
- package/dist/cjs/FileDetails/FileDetails.js +954 -0
- package/dist/cjs/FileDetails/FileDetails.test.d.ts +1 -0
- package/dist/cjs/FileDetails/FileDetails.test.js +26 -0
- package/dist/cjs/FileDetails/index.d.ts +2 -0
- package/dist/cjs/FileDetails/index.js +23 -0
- package/dist/cjs/FileDetailsLabel/FileDetailsLabel.d.ts +21 -0
- package/dist/cjs/FileDetailsLabel/FileDetailsLabel.js +22 -0
- package/dist/cjs/FileDetailsLabel/FileDetailsLabel.test.d.ts +1 -0
- package/dist/cjs/FileDetailsLabel/FileDetailsLabel.test.js +61 -0
- package/dist/cjs/FileDetailsLabel/index.d.ts +2 -0
- package/dist/cjs/FileDetailsLabel/index.js +23 -0
- package/dist/cjs/FileDropZone/FileDropZone.d.ts +17 -0
- package/dist/cjs/FileDropZone/FileDropZone.js +28 -0
- package/dist/cjs/FileDropZone/FileDropZone.test.d.ts +1 -0
- package/dist/cjs/FileDropZone/FileDropZone.test.js +19 -0
- package/dist/cjs/FileDropZone/index.d.ts +2 -0
- package/dist/cjs/FileDropZone/index.js +23 -0
- package/dist/cjs/LoadingMessage/LoadingMessage.d.ts +6 -0
- package/dist/cjs/LoadingMessage/LoadingMessage.js +20 -0
- package/dist/cjs/LoadingMessage/LoadingMessage.test.d.ts +1 -0
- package/dist/cjs/LoadingMessage/LoadingMessage.test.js +20 -0
- package/dist/cjs/LoadingMessage/index.d.ts +2 -0
- package/dist/cjs/LoadingMessage/index.js +23 -0
- package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.d.ts +4 -0
- package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.js +61 -0
- package/dist/cjs/Message/ListMessage/ListItemMessage.d.ts +4 -0
- package/dist/cjs/Message/ListMessage/ListItemMessage.js +12 -0
- package/dist/cjs/Message/ListMessage/OrderedListMessage.d.ts +4 -0
- package/dist/cjs/Message/ListMessage/OrderedListMessage.js +13 -0
- package/dist/cjs/Message/ListMessage/UnorderedListMessage.d.ts +4 -0
- package/dist/cjs/Message/ListMessage/UnorderedListMessage.js +13 -0
- package/dist/cjs/Message/Message.d.ts +65 -0
- package/dist/cjs/Message/Message.js +69 -0
- package/dist/cjs/Message/Message.test.d.ts +1 -0
- package/dist/cjs/Message/Message.test.js +239 -0
- package/dist/cjs/Message/MessageLoading.d.ts +5 -0
- package/dist/cjs/Message/MessageLoading.js +13 -0
- package/dist/cjs/Message/TextMessage/TextMessage.d.ts +4 -0
- package/dist/cjs/Message/TextMessage/TextMessage.js +27 -0
- package/dist/cjs/Message/index.d.ts +2 -0
- package/dist/cjs/Message/index.js +23 -0
- package/dist/cjs/MessageBar/AttachButton.d.ts +21 -0
- package/dist/cjs/MessageBar/AttachButton.js +38 -0
- package/dist/cjs/MessageBar/AttachButton.test.d.ts +1 -0
- package/dist/cjs/MessageBar/AttachButton.test.js +66 -0
- package/dist/cjs/MessageBar/MessageBar.d.ts +71 -0
- package/dist/cjs/MessageBar/MessageBar.js +112 -0
- package/dist/cjs/MessageBar/MessageBar.test.d.ts +1 -0
- package/dist/cjs/MessageBar/MessageBar.test.js +237 -0
- package/dist/cjs/MessageBar/MicrophoneButton.d.ts +21 -0
- package/dist/cjs/MessageBar/MicrophoneButton.js +74 -0
- package/dist/cjs/MessageBar/SendButton.d.ts +14 -0
- package/dist/cjs/MessageBar/SendButton.js +32 -0
- package/dist/cjs/MessageBar/SendButton.test.d.ts +1 -0
- package/dist/cjs/MessageBar/SendButton.test.js +54 -0
- package/dist/cjs/MessageBar/StopButton.d.ts +14 -0
- package/dist/cjs/MessageBar/StopButton.js +32 -0
- package/dist/cjs/MessageBar/StopButton.test.d.ts +1 -0
- package/dist/cjs/MessageBar/StopButton.test.js +54 -0
- package/dist/cjs/MessageBar/index.d.ts +5 -0
- package/dist/cjs/MessageBar/index.js +26 -0
- package/dist/cjs/MessageBox/JumpButton.d.ts +11 -0
- package/dist/cjs/MessageBox/JumpButton.js +17 -0
- package/dist/cjs/MessageBox/JumpButton.test.d.ts +1 -0
- package/dist/cjs/MessageBox/JumpButton.test.js +39 -0
- package/dist/cjs/MessageBox/MessageBox.d.ts +17 -0
- package/dist/cjs/MessageBox/MessageBox.js +74 -0
- package/dist/cjs/MessageBox/index.d.ts +3 -0
- package/dist/cjs/MessageBox/index.js +24 -0
- package/dist/cjs/PreviewAttachment/PreviewAttachment.d.ts +22 -0
- package/dist/cjs/PreviewAttachment/PreviewAttachment.js +25 -0
- package/dist/cjs/PreviewAttachment/index.d.ts +2 -0
- package/dist/cjs/PreviewAttachment/index.js +23 -0
- package/dist/cjs/ResponseActions/ResponseActionButton.d.ts +20 -0
- package/dist/cjs/ResponseActions/ResponseActionButton.js +12 -0
- package/dist/cjs/ResponseActions/ResponseActions.d.ts +30 -0
- package/dist/cjs/ResponseActions/ResponseActions.js +36 -0
- package/dist/cjs/ResponseActions/ResponseActions.test.d.ts +1 -0
- package/dist/cjs/ResponseActions/ResponseActions.test.js +67 -0
- package/dist/cjs/ResponseActions/index.d.ts +2 -0
- package/dist/cjs/ResponseActions/index.js +23 -0
- package/dist/cjs/SourceDetailsMenuItem/SourceDetailsMenuItem.d.ts +11 -0
- package/dist/cjs/SourceDetailsMenuItem/SourceDetailsMenuItem.js +31 -0
- package/dist/cjs/SourceDetailsMenuItem/index.d.ts +2 -0
- package/dist/cjs/SourceDetailsMenuItem/index.js +23 -0
- package/dist/cjs/SourcesCard/SourcesCard.d.ts +34 -0
- package/dist/cjs/SourcesCard/SourcesCard.js +68 -0
- package/dist/cjs/SourcesCard/SourcesCard.test.d.ts +1 -0
- package/dist/cjs/SourcesCard/SourcesCard.test.js +167 -0
- package/dist/cjs/SourcesCard/index.d.ts +2 -0
- package/dist/cjs/SourcesCard/index.js +23 -0
- package/dist/cjs/index.d.ts +48 -0
- package/dist/cjs/index.js +93 -0
- package/dist/css/main.css +1583 -0
- package/dist/css/main.css.map +1 -0
- package/dist/dynamic/AttachMenu/package.json +1 -0
- package/dist/dynamic/AttachmentEdit/package.json +1 -0
- package/dist/dynamic/Chatbot/package.json +1 -0
- package/dist/dynamic/ChatbotAlert/package.json +1 -0
- package/dist/dynamic/ChatbotContent/package.json +1 -0
- package/dist/dynamic/ChatbotConversationHistoryNav/package.json +1 -0
- package/dist/dynamic/ChatbotFooter/package.json +1 -0
- package/dist/dynamic/ChatbotHeader/package.json +1 -0
- package/dist/dynamic/ChatbotModal/package.json +1 -0
- package/dist/dynamic/ChatbotPopover/package.json +1 -0
- package/dist/dynamic/ChatbotToggle/package.json +1 -0
- package/dist/dynamic/ChatbotWelcomePrompt/package.json +1 -0
- package/dist/dynamic/CodeModal/package.json +1 -0
- package/dist/dynamic/FileDetails/package.json +1 -0
- package/dist/dynamic/FileDetailsLabel/package.json +1 -0
- package/dist/dynamic/FileDropZone/package.json +1 -0
- package/dist/dynamic/LoadingMessage/package.json +1 -0
- package/dist/dynamic/Message/package.json +1 -0
- package/dist/dynamic/MessageBar/package.json +1 -0
- package/dist/dynamic/MessageBox/package.json +1 -0
- package/dist/dynamic/PreviewAttachment/package.json +1 -0
- package/dist/dynamic/ResponseActions/package.json +1 -0
- package/dist/dynamic/SourceDetailsMenuItem/package.json +1 -0
- package/dist/dynamic/SourcesCard/package.json +1 -0
- package/dist/esm/AttachMenu/AttachMenu.d.ts +29 -0
- package/dist/esm/AttachMenu/AttachMenu.js +26 -0
- package/dist/esm/AttachMenu/index.d.ts +2 -0
- package/dist/esm/AttachMenu/index.js +2 -0
- package/dist/esm/AttachmentEdit/AttachmentEdit.d.ts +22 -0
- package/dist/esm/AttachmentEdit/AttachmentEdit.js +18 -0
- package/dist/esm/AttachmentEdit/index.d.ts +2 -0
- package/dist/esm/AttachmentEdit/index.js +2 -0
- package/dist/esm/Chatbot/Chatbot.d.ts +23 -0
- package/dist/esm/Chatbot/Chatbot.js +43 -0
- package/dist/esm/Chatbot/index.d.ts +2 -0
- package/dist/esm/Chatbot/index.js +2 -0
- package/dist/esm/ChatbotAlert/ChatbotAlert.d.ts +8 -0
- package/dist/esm/ChatbotAlert/ChatbotAlert.js +21 -0
- package/dist/esm/ChatbotAlert/index.d.ts +2 -0
- package/dist/esm/ChatbotAlert/index.js +2 -0
- package/dist/esm/ChatbotContent/ChatbotContent.d.ts +9 -0
- package/dist/esm/ChatbotContent/ChatbotContent.js +20 -0
- package/dist/esm/ChatbotContent/index.d.ts +2 -0
- package/dist/esm/ChatbotContent/index.js +2 -0
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +14 -0
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +15 -0
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +52 -0
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +76 -0
- package/dist/esm/ChatbotConversationHistoryNav/index.d.ts +3 -0
- package/dist/esm/ChatbotConversationHistoryNav/index.js +3 -0
- package/dist/esm/ChatbotFooter/ChatbotFooter.d.ts +9 -0
- package/dist/esm/ChatbotFooter/ChatbotFooter.js +28 -0
- package/dist/esm/ChatbotFooter/ChatbotFootnote.d.ts +44 -0
- package/dist/esm/ChatbotFooter/ChatbotFootnote.js +49 -0
- package/dist/esm/ChatbotFooter/index.d.ts +3 -0
- package/dist/esm/ChatbotFooter/index.js +3 -0
- package/dist/esm/ChatbotHeader/ChatbotHeader.d.ts +9 -0
- package/dist/esm/ChatbotHeader/ChatbotHeader.js +6 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderActions.d.ts +9 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderActions.js +3 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderMain.d.ts +9 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderMain.js +3 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.d.ts +15 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +8 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +14 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +26 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +18 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +26 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.d.ts +20 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.js +26 -0
- package/dist/esm/ChatbotHeader/index.d.ts +8 -0
- package/dist/esm/ChatbotHeader/index.js +8 -0
- package/dist/esm/ChatbotModal/ChatbotModal.d.ts +10 -0
- package/dist/esm/ChatbotModal/ChatbotModal.js +27 -0
- package/dist/esm/ChatbotModal/index.d.ts +2 -0
- package/dist/esm/ChatbotModal/index.js +2 -0
- package/dist/esm/ChatbotPopover/ChatbotPopover.d.ts +4 -0
- package/dist/esm/ChatbotPopover/ChatbotPopover.js +22 -0
- package/dist/esm/ChatbotPopover/index.d.ts +2 -0
- package/dist/esm/ChatbotPopover/index.js +2 -0
- package/dist/esm/ChatbotToggle/ChatbotToggle.d.ts +20 -0
- package/dist/esm/ChatbotToggle/ChatbotToggle.js +30 -0
- package/dist/esm/ChatbotToggle/index.d.ts +2 -0
- package/dist/esm/ChatbotToggle/index.js +2 -0
- package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +23 -0
- package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +33 -0
- package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.d.ts +1 -0
- package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +44 -0
- package/dist/esm/ChatbotWelcomePrompt/index.d.ts +2 -0
- package/dist/esm/ChatbotWelcomePrompt/index.js +2 -0
- package/dist/esm/CodeModal/CodeModal.d.ts +34 -0
- package/dist/esm/CodeModal/CodeModal.js +75 -0
- package/dist/esm/CodeModal/index.d.ts +2 -0
- package/dist/esm/CodeModal/index.js +2 -0
- package/dist/esm/FileDetails/FileDetails.d.ts +922 -0
- package/dist/esm/FileDetails/FileDetails.js +947 -0
- package/dist/esm/FileDetails/FileDetails.test.d.ts +1 -0
- package/dist/esm/FileDetails/FileDetails.test.js +21 -0
- package/dist/esm/FileDetails/index.d.ts +2 -0
- package/dist/esm/FileDetails/index.js +2 -0
- package/dist/esm/FileDetailsLabel/FileDetailsLabel.d.ts +21 -0
- package/dist/esm/FileDetailsLabel/FileDetailsLabel.js +15 -0
- package/dist/esm/FileDetailsLabel/FileDetailsLabel.test.d.ts +1 -0
- package/dist/esm/FileDetailsLabel/FileDetailsLabel.test.js +56 -0
- package/dist/esm/FileDetailsLabel/index.d.ts +2 -0
- package/dist/esm/FileDetailsLabel/index.js +2 -0
- package/dist/esm/FileDropZone/FileDropZone.d.ts +17 -0
- package/dist/esm/FileDropZone/FileDropZone.js +23 -0
- package/dist/esm/FileDropZone/FileDropZone.test.d.ts +1 -0
- package/dist/esm/FileDropZone/FileDropZone.test.js +14 -0
- package/dist/esm/FileDropZone/index.d.ts +2 -0
- package/dist/esm/FileDropZone/index.js +2 -0
- package/dist/esm/LoadingMessage/LoadingMessage.d.ts +6 -0
- package/dist/esm/LoadingMessage/LoadingMessage.js +13 -0
- package/dist/esm/LoadingMessage/LoadingMessage.test.d.ts +1 -0
- package/dist/esm/LoadingMessage/LoadingMessage.test.js +15 -0
- package/dist/esm/LoadingMessage/index.d.ts +2 -0
- package/dist/esm/LoadingMessage/index.js +2 -0
- package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.d.ts +4 -0
- package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.js +56 -0
- package/dist/esm/Message/ListMessage/ListItemMessage.d.ts +4 -0
- package/dist/esm/Message/ListMessage/ListItemMessage.js +7 -0
- package/dist/esm/Message/ListMessage/OrderedListMessage.d.ts +4 -0
- package/dist/esm/Message/ListMessage/OrderedListMessage.js +8 -0
- package/dist/esm/Message/ListMessage/UnorderedListMessage.d.ts +4 -0
- package/dist/esm/Message/ListMessage/UnorderedListMessage.js +8 -0
- package/dist/esm/Message/Message.d.ts +65 -0
- package/dist/esm/Message/Message.js +62 -0
- package/dist/esm/Message/Message.test.d.ts +1 -0
- package/dist/esm/Message/Message.test.js +234 -0
- package/dist/esm/Message/MessageLoading.d.ts +5 -0
- package/dist/esm/Message/MessageLoading.js +8 -0
- package/dist/esm/Message/TextMessage/TextMessage.d.ts +4 -0
- package/dist/esm/Message/TextMessage/TextMessage.js +22 -0
- package/dist/esm/Message/index.d.ts +2 -0
- package/dist/esm/Message/index.js +2 -0
- package/dist/esm/MessageBar/AttachButton.d.ts +21 -0
- package/dist/esm/MessageBar/AttachButton.js +32 -0
- package/dist/esm/MessageBar/AttachButton.test.d.ts +1 -0
- package/dist/esm/MessageBar/AttachButton.test.js +61 -0
- package/dist/esm/MessageBar/MessageBar.d.ts +71 -0
- package/dist/esm/MessageBar/MessageBar.js +105 -0
- package/dist/esm/MessageBar/MessageBar.test.d.ts +1 -0
- package/dist/esm/MessageBar/MessageBar.test.js +232 -0
- package/dist/esm/MessageBar/MicrophoneButton.d.ts +21 -0
- package/dist/esm/MessageBar/MicrophoneButton.js +67 -0
- package/dist/esm/MessageBar/SendButton.d.ts +14 -0
- package/dist/esm/MessageBar/SendButton.js +25 -0
- package/dist/esm/MessageBar/SendButton.test.d.ts +1 -0
- package/dist/esm/MessageBar/SendButton.test.js +49 -0
- package/dist/esm/MessageBar/StopButton.d.ts +14 -0
- package/dist/esm/MessageBar/StopButton.js +25 -0
- package/dist/esm/MessageBar/StopButton.test.d.ts +1 -0
- package/dist/esm/MessageBar/StopButton.test.js +49 -0
- package/dist/esm/MessageBar/index.d.ts +5 -0
- package/dist/esm/MessageBar/index.js +5 -0
- package/dist/esm/MessageBox/JumpButton.d.ts +11 -0
- package/dist/esm/MessageBox/JumpButton.js +12 -0
- package/dist/esm/MessageBox/JumpButton.test.d.ts +1 -0
- package/dist/esm/MessageBox/JumpButton.test.js +34 -0
- package/dist/esm/MessageBox/MessageBox.d.ts +17 -0
- package/dist/esm/MessageBox/MessageBox.js +68 -0
- package/dist/esm/MessageBox/index.d.ts +3 -0
- package/dist/esm/MessageBox/index.js +3 -0
- package/dist/esm/PreviewAttachment/PreviewAttachment.d.ts +22 -0
- package/dist/esm/PreviewAttachment/PreviewAttachment.js +18 -0
- package/dist/esm/PreviewAttachment/index.d.ts +2 -0
- package/dist/esm/PreviewAttachment/index.js +2 -0
- package/dist/esm/ResponseActions/ResponseActionButton.d.ts +20 -0
- package/dist/esm/ResponseActions/ResponseActionButton.js +5 -0
- package/dist/esm/ResponseActions/ResponseActions.d.ts +30 -0
- package/dist/esm/ResponseActions/ResponseActions.js +29 -0
- package/dist/esm/ResponseActions/ResponseActions.test.d.ts +1 -0
- package/dist/esm/ResponseActions/ResponseActions.test.js +62 -0
- package/dist/esm/ResponseActions/index.d.ts +2 -0
- package/dist/esm/ResponseActions/index.js +2 -0
- package/dist/esm/SourceDetailsMenuItem/SourceDetailsMenuItem.d.ts +11 -0
- package/dist/esm/SourceDetailsMenuItem/SourceDetailsMenuItem.js +24 -0
- package/dist/esm/SourceDetailsMenuItem/index.d.ts +2 -0
- package/dist/esm/SourceDetailsMenuItem/index.js +2 -0
- package/dist/esm/SourcesCard/SourcesCard.d.ts +34 -0
- package/dist/esm/SourcesCard/SourcesCard.js +63 -0
- package/dist/esm/SourcesCard/SourcesCard.test.d.ts +1 -0
- package/dist/esm/SourcesCard/SourcesCard.test.js +162 -0
- package/dist/esm/SourcesCard/index.d.ts +2 -0
- package/dist/esm/SourcesCard/index.js +2 -0
- package/dist/esm/index.d.ts +48 -0
- package/dist/esm/index.js +49 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/generate-fed-package-json.js +75 -0
- package/generate-index.js +42 -0
- package/package.json +79 -0
- package/patternfly-a11y.config.js +28 -0
- package/patternfly-docs/content/extensions/chatbot/about-chatbot.md +29 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachMenu.tsx +149 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentEdit.tsx +26 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentError.tsx +13 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +87 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDetails.tsx +4 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDetailsLabel.tsx +54 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDropZone.tsx +60 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithAttachment.tsx +75 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithCustomResponseActions.tsx +39 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +44 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithResponseActions.tsx +25 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithSources.tsx +118 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +171 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/PaperclipIcon.svg +10 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/PreviewAttachment.tsx +25 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +37 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/patternfly_avatar.jpg +0 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/user_avatar.jpg +0 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotContainer.tsx +66 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFooter.tsx +14 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFootnote.tsx +26 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderBasic.tsx +189 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +93 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithActions.tsx +75 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderTitle.tsx +50 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBar.tsx +8 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarAttach.tsx +148 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarStop.tsx +10 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotModal.tsx +84 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotToggleBasic.tsx +13 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomeInteraction.tsx +144 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomePrompt.tsx +38 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/CustomClosedIcon.tsx +89 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/PF-HorizontalLogo-Color.svg +29 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/PF-HorizontalLogo-Reverse.svg +28 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/PF-IconLogo-Color.svg +17 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/PF-IconLogo-Reverse.svg +16 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/SkipToContent.tsx +40 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +336 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/AttachmentDemos.md +99 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +105 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.tsx +473 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +278 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +268 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +437 -0
- package/patternfly-docs/pages/index.js +27 -0
- package/patternfly-docs/patternfly-docs.config.js +8 -0
- package/patternfly-docs/patternfly-docs.css.js +9 -0
- package/patternfly-docs/patternfly-docs.routes.js +12 -0
- package/patternfly-docs/patternfly-docs.source.js +24 -0
- package/release.config.js +18 -0
- package/src/AttachMenu/AttachMenu.scss +62 -0
- package/src/AttachMenu/AttachMenu.tsx +81 -0
- package/src/AttachMenu/index.ts +3 -0
- package/src/AttachmentEdit/AttachmentEdit.tsx +63 -0
- package/src/AttachmentEdit/index.ts +3 -0
- package/src/Chatbot/Chatbot.scss +89 -0
- package/src/Chatbot/Chatbot.tsx +81 -0
- package/src/Chatbot/index.ts +3 -0
- package/src/ChatbotAlert/ChatbotAlert.scss +5 -0
- package/src/ChatbotAlert/ChatbotAlert.tsx +32 -0
- package/src/ChatbotAlert/index.ts +3 -0
- package/src/ChatbotContent/ChatbotContent.scss +23 -0
- package/src/ChatbotContent/ChatbotContent.tsx +23 -0
- package/src/ChatbotContent/index.ts +3 -0
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx +62 -0
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +166 -0
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +217 -0
- package/src/ChatbotConversationHistoryNav/index.ts +4 -0
- package/src/ChatbotFooter/ChatbotFooter.scss +54 -0
- package/src/ChatbotFooter/ChatbotFooter.tsx +33 -0
- package/src/ChatbotFooter/ChatbotFootnote.scss +12 -0
- package/src/ChatbotFooter/ChatbotFootnote.tsx +135 -0
- package/src/ChatbotFooter/index.ts +4 -0
- package/src/ChatbotHeader/ChatbotHeader.scss +140 -0
- package/src/ChatbotHeader/ChatbotHeader.tsx +22 -0
- package/src/ChatbotHeader/ChatbotHeaderActions.tsx +15 -0
- package/src/ChatbotHeader/ChatbotHeaderMain.tsx +15 -0
- package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +48 -0
- package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +73 -0
- package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +68 -0
- package/src/ChatbotHeader/ChatbotHeaderTitle.tsx +57 -0
- package/src/ChatbotHeader/index.ts +9 -0
- package/src/ChatbotModal/ChatbotModal.scss +93 -0
- package/src/ChatbotModal/ChatbotModal.tsx +43 -0
- package/src/ChatbotModal/index.ts +3 -0
- package/src/ChatbotPopover/ChatbotPopover.scss +27 -0
- package/src/ChatbotPopover/ChatbotPopover.tsx +15 -0
- package/src/ChatbotPopover/index.ts +3 -0
- package/src/ChatbotToggle/ChatbotToggle.scss +26 -0
- package/src/ChatbotToggle/ChatbotToggle.tsx +80 -0
- package/src/ChatbotToggle/index.ts +3 -0
- package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss +48 -0
- package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx +64 -0
- package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.tsx +66 -0
- package/src/ChatbotWelcomePrompt/__snapshots__/ChatbotWelcomePrompt.test.tsx.snap +29 -0
- package/src/ChatbotWelcomePrompt/index.ts +3 -0
- package/src/CodeModal/CodeModal.scss +76 -0
- package/src/CodeModal/CodeModal.tsx +153 -0
- package/src/CodeModal/index.ts +3 -0
- package/src/FileDetails/FileDetails.scss +25 -0
- package/src/FileDetails/FileDetails.test.tsx +23 -0
- package/src/FileDetails/FileDetails.tsx +990 -0
- package/src/FileDetails/__snapshots__/FileDetails.test.tsx.snap +74 -0
- package/src/FileDetails/index.ts +2 -0
- package/src/FileDetailsLabel/FileDetailsLabel.scss +66 -0
- package/src/FileDetailsLabel/FileDetailsLabel.test.tsx +48 -0
- package/src/FileDetailsLabel/FileDetailsLabel.tsx +66 -0
- package/src/FileDetailsLabel/__snapshots__/FileDetailsLabel.test.tsx.snap +90 -0
- package/src/FileDetailsLabel/index.ts +2 -0
- package/src/FileDropZone/FileDropZone.scss +36 -0
- package/src/FileDropZone/FileDropZone.test.tsx +15 -0
- package/src/FileDropZone/FileDropZone.tsx +56 -0
- package/src/FileDropZone/__snapshots__/FileDropZone.test.tsx.snap +18 -0
- package/src/FileDropZone/index.ts +3 -0
- package/src/LoadingMessage/LoadingMessage.test.tsx +16 -0
- package/src/LoadingMessage/LoadingMessage.tsx +27 -0
- package/src/LoadingMessage/__snapshots__/LoadingMessage.test.tsx.snap +52 -0
- package/src/LoadingMessage/index.ts +3 -0
- package/src/Message/CodeBlockMessage/CodeBlockMessage.scss +82 -0
- package/src/Message/CodeBlockMessage/CodeBlockMessage.tsx +88 -0
- package/src/Message/ListMessage/ListItemMessage.tsx +11 -0
- package/src/Message/ListMessage/ListMessage.scss +25 -0
- package/src/Message/ListMessage/OrderedListMessage.tsx +17 -0
- package/src/Message/ListMessage/UnorderedListMessage.tsx +15 -0
- package/src/Message/Message.scss +118 -0
- package/src/Message/Message.test.tsx +281 -0
- package/src/Message/Message.tsx +181 -0
- package/src/Message/MessageLoading.scss +53 -0
- package/src/Message/MessageLoading.tsx +15 -0
- package/src/Message/TextMessage/TextMessage.scss +51 -0
- package/src/Message/TextMessage/TextMessage.tsx +17 -0
- package/src/Message/index.ts +3 -0
- package/src/MessageBar/AttachButton.scss +20 -0
- package/src/MessageBar/AttachButton.test.tsx +53 -0
- package/src/MessageBar/AttachButton.tsx +81 -0
- package/src/MessageBar/MessageBar.scss +77 -0
- package/src/MessageBar/MessageBar.test.tsx +318 -0
- package/src/MessageBar/MessageBar.tsx +252 -0
- package/src/MessageBar/MicrophoneButton.scss +48 -0
- package/src/MessageBar/MicrophoneButton.tsx +114 -0
- package/src/MessageBar/SendButton.scss +29 -0
- package/src/MessageBar/SendButton.test.tsx +43 -0
- package/src/MessageBar/SendButton.tsx +54 -0
- package/src/MessageBar/StopButton.scss +22 -0
- package/src/MessageBar/StopButton.test.tsx +42 -0
- package/src/MessageBar/StopButton.tsx +57 -0
- package/src/MessageBar/index.ts +6 -0
- package/src/MessageBox/JumpButton.scss +46 -0
- package/src/MessageBox/JumpButton.test.tsx +26 -0
- package/src/MessageBox/JumpButton.tsx +37 -0
- package/src/MessageBox/MessageBox.scss +36 -0
- package/src/MessageBox/MessageBox.tsx +114 -0
- package/src/MessageBox/index.ts +4 -0
- package/src/PreviewAttachment/PreviewAttachment.tsx +67 -0
- package/src/PreviewAttachment/index.ts +3 -0
- package/src/ResponseActions/ResponseActionButton.tsx +56 -0
- package/src/ResponseActions/ResponseActions.scss +26 -0
- package/src/ResponseActions/ResponseActions.test.tsx +59 -0
- package/src/ResponseActions/ResponseActions.tsx +115 -0
- package/src/ResponseActions/index.ts +3 -0
- package/src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss +33 -0
- package/src/SourceDetailsMenuItem/SourceDetailsMenuItem.tsx +36 -0
- package/src/SourceDetailsMenuItem/index.ts +2 -0
- package/src/SourcesCard/SourcesCard.scss +74 -0
- package/src/SourcesCard/SourcesCard.test.tsx +238 -0
- package/src/SourcesCard/SourcesCard.tsx +159 -0
- package/src/SourcesCard/__snapshots__/SourcesCard.test.tsx.snap +34 -0
- package/src/SourcesCard/index.ts +3 -0
- package/src/index.ts +73 -0
- package/src/main.scss +89 -0
- package/tsconfig.cjs.json +8 -0
- package/tsconfig.json +73 -0
@@ -0,0 +1,54 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import FileDetailsLabel from '@patternfly/chatbot/dist/dynamic/FileDetailsLabel';
|
3
|
+
import { Radio } from '@patternfly/react-core/dist/dynamic/Radio';
|
4
|
+
import { FormGroup } from '@patternfly/react-core/dist/dynamic/FormGroup';
|
5
|
+
import { Stack } from '@patternfly/react-core/dist/dynamic/Stack';
|
6
|
+
|
7
|
+
export const FileDetailsLabelExample: React.FunctionComponent = () => {
|
8
|
+
const [variant, setVariant] = React.useState('plain');
|
9
|
+
|
10
|
+
return (
|
11
|
+
<Stack hasGutter>
|
12
|
+
<FormGroup role="radiogroup" isInline fieldId="basic-form-radio-group" label="Variant">
|
13
|
+
<Radio
|
14
|
+
isChecked={variant === 'plain'}
|
15
|
+
onChange={() => setVariant('plain')}
|
16
|
+
name="basic-inline-radio"
|
17
|
+
label="Plain"
|
18
|
+
id="plain"
|
19
|
+
/>
|
20
|
+
<Radio
|
21
|
+
isChecked={variant === 'closeable'}
|
22
|
+
onChange={() => setVariant('closeable')}
|
23
|
+
name="basic-inline-radio"
|
24
|
+
label="Closeable"
|
25
|
+
id="closeable"
|
26
|
+
/>
|
27
|
+
<Radio
|
28
|
+
isChecked={variant === 'clickable'}
|
29
|
+
onChange={() => setVariant('clickable')}
|
30
|
+
name="basic-inline-radio"
|
31
|
+
label="Clickable"
|
32
|
+
id="clickable"
|
33
|
+
/>
|
34
|
+
<Radio
|
35
|
+
isChecked={variant === 'loading'}
|
36
|
+
onChange={() => setVariant('loading')}
|
37
|
+
name="basic-inline-radio"
|
38
|
+
label="Loading"
|
39
|
+
id="loading"
|
40
|
+
/>
|
41
|
+
</FormGroup>
|
42
|
+
<div className="pf-chatbot__file-details-example">
|
43
|
+
<FileDetailsLabel
|
44
|
+
fileName="auth-operator.yml"
|
45
|
+
// eslint-disable-next-line no-console
|
46
|
+
{...(variant === 'closeable' && { onClose: () => console.log('clicked close button!') })}
|
47
|
+
// eslint-disable-next-line no-console
|
48
|
+
{...(variant === 'clickable' && { onClick: () => console.log('clicked entire button!') })}
|
49
|
+
{...(variant === 'loading' && { isLoading: true })}
|
50
|
+
/>
|
51
|
+
</div>
|
52
|
+
</Stack>
|
53
|
+
);
|
54
|
+
};
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import FileDropZone from '@patternfly/chatbot/dist/dynamic/FileDropZone';
|
3
|
+
import { DropEvent } from '@patternfly/react-core';
|
4
|
+
|
5
|
+
interface readFile {
|
6
|
+
fileName: string;
|
7
|
+
data?: string;
|
8
|
+
loadResult?: 'danger' | 'success';
|
9
|
+
loadError?: DOMException;
|
10
|
+
}
|
11
|
+
|
12
|
+
export const DropzoneExample: React.FunctionComponent = () => {
|
13
|
+
const [currentFiles, setCurrentFiles] = React.useState<File[]>([]);
|
14
|
+
const [readFileData, setReadFileData] = React.useState<readFile[]>([]);
|
15
|
+
|
16
|
+
// remove files from both state arrays based on their name
|
17
|
+
const removeFiles = (namesOfFilesToRemove: string[]) => {
|
18
|
+
const newCurrentFiles = currentFiles.filter(
|
19
|
+
(currentFile) => !namesOfFilesToRemove.some((fileName) => fileName === currentFile.name)
|
20
|
+
);
|
21
|
+
|
22
|
+
setCurrentFiles(newCurrentFiles);
|
23
|
+
|
24
|
+
const newReadFiles = readFileData.filter(
|
25
|
+
(readFile) => !namesOfFilesToRemove.some((fileName) => fileName === readFile.fileName)
|
26
|
+
);
|
27
|
+
|
28
|
+
setReadFileData(newReadFiles);
|
29
|
+
};
|
30
|
+
|
31
|
+
// callback that will be called by the react dropzone with the newly dropped file objects
|
32
|
+
const handleFileDrop = (_event: DropEvent, droppedFiles: File[]) => {
|
33
|
+
// any custom validation you'd like
|
34
|
+
if (droppedFiles.length > 1) {
|
35
|
+
alert('Error: Dropped too many files');
|
36
|
+
return;
|
37
|
+
}
|
38
|
+
if (droppedFiles[0].size > 25000000) {
|
39
|
+
alert('Error: File size too large');
|
40
|
+
return;
|
41
|
+
}
|
42
|
+
// identify what, if any, files are re-uploads of already uploaded files
|
43
|
+
const currentFileNames = currentFiles.map((file) => file.name);
|
44
|
+
const reUploads = droppedFiles.filter((droppedFile) => currentFileNames.includes(droppedFile.name));
|
45
|
+
|
46
|
+
/** this promise chain is needed because if the file removal is done at the same time as the file adding react
|
47
|
+
* won't realize that the status items for the re-uploaded files needs to be re-rendered */
|
48
|
+
Promise.resolve()
|
49
|
+
.then(() => removeFiles(reUploads.map((file) => file.name)))
|
50
|
+
.then(() => alert(`Dropped ${droppedFiles.map((file) => file.name)}`));
|
51
|
+
};
|
52
|
+
|
53
|
+
return (
|
54
|
+
<FileDropZone onFileDrop={handleFileDrop} displayMode="fullscreen">
|
55
|
+
<div className="pf-chatbot__file-drop-zone-example">
|
56
|
+
Content that shows when no dragging is happening (drag an item here to see the drop zone)
|
57
|
+
</div>
|
58
|
+
</FileDropZone>
|
59
|
+
);
|
60
|
+
};
|
package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithAttachment.tsx
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
|
3
|
+
import Message from '@patternfly/chatbot/dist/dynamic/Message';
|
4
|
+
import PreviewAttachment from '@patternfly/chatbot/dist/dynamic/PreviewAttachment';
|
5
|
+
import AttachmentEdit from '@patternfly/chatbot/dist/dynamic/AttachmentEdit';
|
6
|
+
import userAvatar from './user_avatar.jpg';
|
7
|
+
|
8
|
+
interface ModalData {
|
9
|
+
code: string;
|
10
|
+
fileName: string;
|
11
|
+
}
|
12
|
+
|
13
|
+
export const AttachmentMenuExample: React.FunctionComponent = () => {
|
14
|
+
const [isPreviewModalOpen, setIsPreviewModalOpen] = React.useState<boolean>(false);
|
15
|
+
const [isEditModalOpen, setIsEditModalOpen] = React.useState<boolean>(false);
|
16
|
+
const [currentModalData, setCurrentModalData] = React.useState<ModalData>();
|
17
|
+
|
18
|
+
const onClick = (event: React.MouseEvent, name: string) => {
|
19
|
+
setCurrentModalData({ fileName: name, code: 'test' });
|
20
|
+
setIsEditModalOpen(false);
|
21
|
+
setIsPreviewModalOpen(true);
|
22
|
+
};
|
23
|
+
|
24
|
+
const onClose = (event: React.MouseEvent, name: string, id: number | string | undefined) => {
|
25
|
+
// eslint-disable-next-line no-console
|
26
|
+
console.log(`Closed attachment with name: ${name} and id: ${id}`);
|
27
|
+
};
|
28
|
+
|
29
|
+
return (
|
30
|
+
<>
|
31
|
+
<Message
|
32
|
+
name="User"
|
33
|
+
role="user"
|
34
|
+
avatar={userAvatar}
|
35
|
+
content="Here is an uploaded file"
|
36
|
+
attachments={[{ name: 'auth-operator.yml', id: '1', onClick, onClose }]}
|
37
|
+
/>
|
38
|
+
<Message
|
39
|
+
name="User"
|
40
|
+
role="user"
|
41
|
+
avatar={userAvatar}
|
42
|
+
content="Here are two uploaded files"
|
43
|
+
attachments={[
|
44
|
+
{ name: 'auth-operator.yml', id: '1' },
|
45
|
+
{ name: 'patternfly.svg', id: '2' }
|
46
|
+
]}
|
47
|
+
/>
|
48
|
+
{currentModalData && (
|
49
|
+
<PreviewAttachment
|
50
|
+
code={currentModalData?.code}
|
51
|
+
fileName={currentModalData?.fileName}
|
52
|
+
isModalOpen={isPreviewModalOpen}
|
53
|
+
onEdit={() => {
|
54
|
+
setIsPreviewModalOpen(false);
|
55
|
+
setIsEditModalOpen(true);
|
56
|
+
}}
|
57
|
+
onDismiss={() => setCurrentModalData(undefined)}
|
58
|
+
handleModalToggle={() => setIsPreviewModalOpen(false)}
|
59
|
+
/>
|
60
|
+
)}
|
61
|
+
{currentModalData && (
|
62
|
+
<AttachmentEdit
|
63
|
+
code={currentModalData?.code}
|
64
|
+
fileName={currentModalData?.fileName}
|
65
|
+
isModalOpen={isEditModalOpen}
|
66
|
+
onSave={() => {
|
67
|
+
setIsEditModalOpen(false);
|
68
|
+
}}
|
69
|
+
onCancel={() => setCurrentModalData(undefined)}
|
70
|
+
handleModalToggle={() => setIsEditModalOpen(false)}
|
71
|
+
/>
|
72
|
+
)}
|
73
|
+
</>
|
74
|
+
);
|
75
|
+
};
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
|
3
|
+
import Message from '@patternfly/chatbot/dist/dynamic/Message';
|
4
|
+
import patternflyAvatar from './patternfly_avatar.jpg';
|
5
|
+
import InfoCircleIcon from '@patternfly/react-icons/dist/esm/icons/info-circle-icon';
|
6
|
+
import DownloadIcon from '@patternfly/react-icons/dist/esm/icons/download-icon';
|
7
|
+
import RedoIcon from '@patternfly/react-icons/dist/esm/icons/redo-icon';
|
8
|
+
|
9
|
+
export const CustomActionExample: React.FunctionComponent = () => (
|
10
|
+
<Message
|
11
|
+
name="Bot"
|
12
|
+
role="bot"
|
13
|
+
avatar={patternflyAvatar}
|
14
|
+
content="Example with custom actions"
|
15
|
+
actions={{
|
16
|
+
regenerate: {
|
17
|
+
ariaLabel: 'Regenerate',
|
18
|
+
// eslint-disable-next-line no-console
|
19
|
+
onClick: () => console.log('Clicked regenerate'),
|
20
|
+
tooltipContent: 'Regenerate',
|
21
|
+
icon: <RedoIcon />
|
22
|
+
},
|
23
|
+
download: {
|
24
|
+
ariaLabel: 'Download',
|
25
|
+
// eslint-disable-next-line no-console
|
26
|
+
onClick: () => console.log('Clicked download'),
|
27
|
+
tooltipContent: 'Download',
|
28
|
+
icon: <DownloadIcon />
|
29
|
+
},
|
30
|
+
info: {
|
31
|
+
ariaLabel: 'Info',
|
32
|
+
// eslint-disable-next-line no-console
|
33
|
+
onClick: () => console.log('Clicked info'),
|
34
|
+
tooltipContent: 'Info',
|
35
|
+
icon: <InfoCircleIcon />
|
36
|
+
}
|
37
|
+
}}
|
38
|
+
/>
|
39
|
+
);
|
package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import Message from '@patternfly/chatbot/dist/dynamic/Message';
|
3
|
+
import patternflyAvatar from './patternfly_avatar.jpg';
|
4
|
+
|
5
|
+
export const MessageWithQuickResponsesExample: React.FunctionComponent = () => (
|
6
|
+
<>
|
7
|
+
<Message
|
8
|
+
name="Bot"
|
9
|
+
role="bot"
|
10
|
+
avatar={patternflyAvatar}
|
11
|
+
content="Did you clear your cache?"
|
12
|
+
quickResponses={[
|
13
|
+
{ id: '1', content: 'Yes', onClick: () => alert('Clicked yes') },
|
14
|
+
{ id: '2', content: 'No', onClick: () => alert('Clicked no') }
|
15
|
+
]}
|
16
|
+
/>
|
17
|
+
<Message
|
18
|
+
name="Bot"
|
19
|
+
role="bot"
|
20
|
+
avatar={patternflyAvatar}
|
21
|
+
content="What browser are you noticing the issue in?"
|
22
|
+
quickResponses={[
|
23
|
+
{ id: '1', content: 'Microsoft Edge', onClick: () => alert('Clicked Edge') },
|
24
|
+
{ id: '2', content: 'Google Chrome', onClick: () => alert('Clicked Chrome') },
|
25
|
+
{ id: '3', content: 'Mozilla Firefox', onClick: () => alert('Clicked Firefox') },
|
26
|
+
{ id: '4', content: 'Apple Safari', onClick: () => alert('Clicked Safari') },
|
27
|
+
{ id: '5', content: 'Internet Explorer', onClick: () => alert('Clicked Internet Explorer') }
|
28
|
+
]}
|
29
|
+
/>
|
30
|
+
<Message
|
31
|
+
name="Bot"
|
32
|
+
role="bot"
|
33
|
+
avatar={patternflyAvatar}
|
34
|
+
content="Welcome back! How can I help?"
|
35
|
+
quickResponses={[
|
36
|
+
{ id: '1', content: 'Help me with an access issue', onClick: () => alert('Clicked id 1') },
|
37
|
+
{ id: '2', content: 'Show my critical vulnerabilities', onClick: () => alert('Clicked id 2') },
|
38
|
+
{ id: '3', content: 'Create new integrations', onClick: () => alert('Clicked id 3') },
|
39
|
+
{ id: '4', content: 'Get recommendations from an advisor', onClick: () => alert('Clicked id 4') },
|
40
|
+
{ id: '5', content: 'Something else', onClick: () => alert('Clicked id 5') }
|
41
|
+
]}
|
42
|
+
/>
|
43
|
+
</>
|
44
|
+
);
|
package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithResponseActions.tsx
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
|
3
|
+
import Message from '@patternfly/chatbot/dist/dynamic/Message';
|
4
|
+
import patternflyAvatar from './patternfly_avatar.jpg';
|
5
|
+
|
6
|
+
export const ResponseActionExample: React.FunctionComponent = () => (
|
7
|
+
<Message
|
8
|
+
name="Bot"
|
9
|
+
role="bot"
|
10
|
+
avatar={patternflyAvatar}
|
11
|
+
content="Example with all prebuilt actions"
|
12
|
+
actions={{
|
13
|
+
// eslint-disable-next-line no-console
|
14
|
+
positive: { onClick: () => console.log('Good response') },
|
15
|
+
// eslint-disable-next-line no-console
|
16
|
+
negative: { onClick: () => console.log('Bad response') },
|
17
|
+
// eslint-disable-next-line no-console
|
18
|
+
copy: { onClick: () => console.log('Copy') },
|
19
|
+
// eslint-disable-next-line no-console
|
20
|
+
share: { onClick: () => console.log('Share') },
|
21
|
+
// eslint-disable-next-line no-console
|
22
|
+
listen: { onClick: () => console.log('Listen') }
|
23
|
+
}}
|
24
|
+
/>
|
25
|
+
);
|
@@ -0,0 +1,118 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import Message from '@patternfly/chatbot/dist/dynamic/Message';
|
3
|
+
import patternflyAvatar from './patternfly_avatar.jpg';
|
4
|
+
|
5
|
+
export const MessageWithSourcesExample: React.FunctionComponent = () => {
|
6
|
+
const onSetPage = (_event: React.MouseEvent | React.KeyboardEvent | MouseEvent, newPage: number) => {
|
7
|
+
// eslint-disable-next-line no-console
|
8
|
+
console.log(`Page changed to ${newPage}`);
|
9
|
+
};
|
10
|
+
|
11
|
+
return (
|
12
|
+
<>
|
13
|
+
<Message
|
14
|
+
name="Bot"
|
15
|
+
role="bot"
|
16
|
+
avatar={patternflyAvatar}
|
17
|
+
content="Example with sources"
|
18
|
+
sources={{
|
19
|
+
sources: [
|
20
|
+
{
|
21
|
+
title: 'Getting started with Red Hat OpenShift',
|
22
|
+
link: '#',
|
23
|
+
body: 'Red Hat OpenShift on IBM Cloud is a managed offering to create your own cluster of compute hosts where you can deploy and manage containerized apps on IBM Cloud ...'
|
24
|
+
},
|
25
|
+
{
|
26
|
+
title: 'Azure Red Hat OpenShift documentation',
|
27
|
+
link: '#',
|
28
|
+
body: 'Microsoft Azure Red Hat OpenShift allows you to deploy a production ready Red Hat OpenShift cluster in Azure ...'
|
29
|
+
},
|
30
|
+
{
|
31
|
+
title: 'OKD Documentation: Home',
|
32
|
+
link: '#',
|
33
|
+
body: 'OKD is a distribution of Kubernetes optimized for continuous application development and multi-tenant deployment. OKD also serves as the upstream code base upon ...'
|
34
|
+
}
|
35
|
+
],
|
36
|
+
onSetPage
|
37
|
+
}}
|
38
|
+
/>
|
39
|
+
<Message
|
40
|
+
name="Bot"
|
41
|
+
role="bot"
|
42
|
+
avatar={patternflyAvatar}
|
43
|
+
content="Example with very long sources"
|
44
|
+
sources={{
|
45
|
+
sources: [
|
46
|
+
{
|
47
|
+
title: 'Getting started with Red Hat OpenShift AI and other products',
|
48
|
+
link: '#',
|
49
|
+
body: 'Red Hat OpenShift on IBM Cloud is a managed offering to create your own cluster of compute hosts where you can deploy and manage containerized apps on IBM Cloud ...'
|
50
|
+
},
|
51
|
+
{
|
52
|
+
title: 'Azure Red Hat OpenShift documentation | Red Hat',
|
53
|
+
link: '#',
|
54
|
+
body: 'Microsoft Azure Red Hat OpenShift allows you to deploy a production ready Red Hat OpenShift cluster in Azure ...'
|
55
|
+
}
|
56
|
+
],
|
57
|
+
onSetPage
|
58
|
+
}}
|
59
|
+
/>
|
60
|
+
<Message
|
61
|
+
name="Bot"
|
62
|
+
role="bot"
|
63
|
+
avatar={patternflyAvatar}
|
64
|
+
content="Example with only one source"
|
65
|
+
sources={{
|
66
|
+
sources: [
|
67
|
+
{
|
68
|
+
title: 'Getting started with Red Hat OpenShift',
|
69
|
+
link: '#',
|
70
|
+
body: 'Red Hat OpenShift on IBM Cloud is a managed offering to create your own cluster of compute hosts where you can deploy and manage containerized apps on IBM Cloud ...'
|
71
|
+
}
|
72
|
+
],
|
73
|
+
onSetPage
|
74
|
+
}}
|
75
|
+
/>
|
76
|
+
<Message
|
77
|
+
name="Bot"
|
78
|
+
role="bot"
|
79
|
+
avatar={patternflyAvatar}
|
80
|
+
content="Example with sources that include a title and link"
|
81
|
+
sources={{
|
82
|
+
sources: [
|
83
|
+
{ title: 'Getting started with Red Hat OpenShift', link: '#' },
|
84
|
+
{
|
85
|
+
title: 'Azure Red Hat OpenShift documentation',
|
86
|
+
link: '#'
|
87
|
+
},
|
88
|
+
{
|
89
|
+
title: 'OKD Documentation: Home',
|
90
|
+
link: '#'
|
91
|
+
}
|
92
|
+
],
|
93
|
+
onSetPage
|
94
|
+
}}
|
95
|
+
/>
|
96
|
+
<Message
|
97
|
+
name="Bot"
|
98
|
+
role="bot"
|
99
|
+
avatar={patternflyAvatar}
|
100
|
+
content="Example with link-only sources (not recommended)"
|
101
|
+
sources={{
|
102
|
+
sources: [
|
103
|
+
{
|
104
|
+
link: '#'
|
105
|
+
},
|
106
|
+
{
|
107
|
+
link: '#'
|
108
|
+
},
|
109
|
+
{
|
110
|
+
link: '#'
|
111
|
+
}
|
112
|
+
],
|
113
|
+
onSetPage
|
114
|
+
}}
|
115
|
+
/>
|
116
|
+
</>
|
117
|
+
);
|
118
|
+
};
|
@@ -0,0 +1,171 @@
|
|
1
|
+
---
|
2
|
+
# Sidenav top-level section
|
3
|
+
# should be the same for all markdown files
|
4
|
+
section: PatternFly-AI
|
5
|
+
subsection: ChatBot
|
6
|
+
# Sidenav secondary level section
|
7
|
+
# should be the same for all markdown files
|
8
|
+
id: Messages
|
9
|
+
# Tab (react | react-demos | html | html-demos | design-guidelines | accessibility)
|
10
|
+
source: react
|
11
|
+
# If you use typescript, the name of the interface to display props for
|
12
|
+
# These are found through the sourceProps function provided in patternfly-docs.source.js
|
13
|
+
propComponents:
|
14
|
+
[
|
15
|
+
'AttachMenu',
|
16
|
+
'AttachmentEdit',
|
17
|
+
'FileDetails',
|
18
|
+
'FileDetailsLabel',
|
19
|
+
'FileDropZone',
|
20
|
+
'PreviewAttachment',
|
21
|
+
'Message',
|
22
|
+
'PreviewAttachment',
|
23
|
+
'ActionProps',
|
24
|
+
'SourcesCardProps'
|
25
|
+
]
|
26
|
+
sortValue: 3
|
27
|
+
---
|
28
|
+
|
29
|
+
import Message from '@patternfly/chatbot/dist/dynamic/Message';
|
30
|
+
import SourcesCard from '@patternfly/chatbot/dist/dynamic/SourcesCard';
|
31
|
+
import { RobotIcon } from '@patternfly/react-icons/dist/esm/icons/robot-icon';
|
32
|
+
import InfoCircleIcon from '@patternfly/react-icons/dist/esm/icons/info-circle-icon';
|
33
|
+
import DownloadIcon from '@patternfly/react-icons/dist/esm/icons/download-icon';
|
34
|
+
import RedoIcon from '@patternfly/react-icons/dist/esm/icons/redo-icon';
|
35
|
+
import patternflyAvatar from './patternfly_avatar.jpg';
|
36
|
+
import userAvatar from './user_avatar.jpg';
|
37
|
+
import AttachmentEdit from '@patternfly/chatbot/dist/dynamic/AttachmentEdit';
|
38
|
+
import FileDetails from '@patternfly/chatbot/dist/dynamic/FileDetails';
|
39
|
+
import FileDetailsLabel from '@patternfly/chatbot/dist/dynamic/FileDetailsLabel';
|
40
|
+
import FileDropZone from '@patternfly/chatbot/dist/dynamic/FileDropZone';
|
41
|
+
import { PreviewAttachment } from '@patternfly/chatbot/dist/dynamic/PreviewAttachment';
|
42
|
+
import ChatbotAlert from '@patternfly/chatbot/dist/dynamic/ChatbotAlert';
|
43
|
+
|
44
|
+
The `content` prop of the `<Message>` component is passed to a `<Markdown>` component (from [react-markdown](https://remarkjs.github.io/react-markdown/)), which is configured to translate plain text strings into PatternFly [`<Content>` components](/components/content) and code blocks into PatternFly [`<CodeBlock>` components.](/components/code-block)
|
45
|
+
|
46
|
+
## Messages
|
47
|
+
|
48
|
+
### Bot messages
|
49
|
+
|
50
|
+
Messages from the chatbot will be marked with an "AI" label to clearly communicate the use of AI to users. The chatbot can display different `content` types, including plain text, code, or a loading animation (via `isLoading`).
|
51
|
+
|
52
|
+
<br />
|
53
|
+
|
54
|
+
By default, a date and timestamp is displayed with each message. We recommend using the `timestamp` prop in real chatbots, since it will allow you to set persistent dates and times on messages, even if the messages re-render. You can update `timestamp` with a different [date and time format](/ux-writing/numerics) as needed.
|
55
|
+
|
56
|
+
```js file="./BotMessage.tsx"
|
57
|
+
|
58
|
+
```
|
59
|
+
|
60
|
+
### Messages actions
|
61
|
+
|
62
|
+
You can add actions to a message, to allow users to interact with the message content. These actions can include:
|
63
|
+
|
64
|
+
- Feedback responses that allow users to rate a message as "good" or "bad".
|
65
|
+
- Copy and share controls that allow users to share the message content with others.
|
66
|
+
- A listen action, that will read the message content out loud.
|
67
|
+
|
68
|
+
**Note:** The logic for the actions is not built into the component and must be implemented by the consuming application.
|
69
|
+
|
70
|
+
```js file="./MessageWithResponseActions.tsx"
|
71
|
+
|
72
|
+
```
|
73
|
+
|
74
|
+
### Custom message actions
|
75
|
+
|
76
|
+
Beyond the standard message actions (positive, negative, copy, share, or listen), you can add custom actions to a bot message by passing an `actions` object to the `<Message>` component. This object can contain the following customizations: `ariaLabel`, `onClick`, `className`, `isDisabled`, `tooltipContent`, `tooltipProps`, and `icon`.
|
77
|
+
|
78
|
+
```js file="./MessageWithCustomResponseActions.tsx"
|
79
|
+
|
80
|
+
```
|
81
|
+
|
82
|
+
### Messages with quick responses
|
83
|
+
|
84
|
+
You can offer convenient, clickable responses to messages in the form of quick actions. Quick actions are [PatternFly labels](/components/label/) in a label group, configured to display up to 5 visible labels.
|
85
|
+
|
86
|
+
To add quick actions, pass `quickResponses` to `<Message>`. This can be overridden by passing additional `<LabelGroup>` props to `quickResponseContainerProps`, or additional `<Label>` props to `quickResponses`.
|
87
|
+
|
88
|
+
```js file="./MessageWithQuickResponses.tsx"
|
89
|
+
|
90
|
+
```
|
91
|
+
|
92
|
+
### Messages with sources
|
93
|
+
|
94
|
+
If you are using Retrieval-Augmented Generation, you may want to display sources in a message. Passing `sources` to `<Message>` allows you to paginate between the sources you provide.
|
95
|
+
|
96
|
+
The API for a source requires a link at minimum, but we strongly recommend providing a more descriptive title and body description so users have enough context. The title is limited to 1 line and the body is limited to 2 lines.
|
97
|
+
|
98
|
+
```js file="./MessageWithSources.tsx"
|
99
|
+
|
100
|
+
```
|
101
|
+
|
102
|
+
### User messages
|
103
|
+
|
104
|
+
Messages from users have a different background color to differentiate them from bot messages. You can also display a custom avatar that is uploaded by the user.
|
105
|
+
|
106
|
+
```js file="./UserMessage.tsx"
|
107
|
+
|
108
|
+
```
|
109
|
+
|
110
|
+
## File attachments
|
111
|
+
|
112
|
+
### Messages with attachments
|
113
|
+
|
114
|
+
When [attachments](/patternfly-ai/chatbot/messages#file-attachments) are shared and displayed in the chatbot window, users will see a selectable and dismissible message that contains file details in a label. Selecting the file label can open a preview modal, which allows users to view or make edits to the file contents.
|
115
|
+
|
116
|
+
The `<PreviewAttachment>` component displays a modal with a read-only view of the attached file's contents. Selecting the "edit" button will open the `<AttachmentEdit>` component, which provides an interactive environment where users can make changes to the file.
|
117
|
+
|
118
|
+
If a `displayMode` is not passed to `<PreviewAttachment>` or `<AttachmentEdit>`, they both default to overlaying the default `displayMode` of the `<Chatbot>` component.
|
119
|
+
|
120
|
+
**Note:** This example does not actually apply any edits to the attached file. That logic depends on the implementation.
|
121
|
+
|
122
|
+
```js file="./MessageWithAttachment.tsx"
|
123
|
+
|
124
|
+
```
|
125
|
+
|
126
|
+
We are using [react-dropzone](https://react-dropzone.js.org) for opening the file dialog and handling drag and drop. It does not process files or provide any way to make HTTP requests to a server. If you need this, [react-dropzone](https://react-dropzone.js.org) suggests [filepond](https://pqina.nl/filepond/) or [uppy.io.](https://uppy.io/). To handle edge cases, like restricting the number or size of files, you can pass a function to the `handleAttach` prop on `MessageBar` or `onFileDrop` prop in `FileDropZone.`
|
127
|
+
|
128
|
+
### Attachment label
|
129
|
+
|
130
|
+
When an attachment is successfully uploaded, a label will appear in the message box. There are several label variants that cover different attachment states, including:
|
131
|
+
|
132
|
+
- **Plain:** Default attachment labels, which display the filename and extension.
|
133
|
+
- **Closeable:** Attachments that can be dismissed.
|
134
|
+
- **Clickable:** Attachments that can be selected, typically to open file details.
|
135
|
+
- **Loading:** Attachments that are still being uploaded.
|
136
|
+
|
137
|
+
```js file="./FileDetailsLabel.tsx"
|
138
|
+
|
139
|
+
```
|
140
|
+
|
141
|
+
### Attachment preview
|
142
|
+
|
143
|
+
To allow users to preview the contents of an attachment, load a read-only view of the file contents in a new modal.
|
144
|
+
|
145
|
+
```js file="./PreviewAttachment.tsx"
|
146
|
+
|
147
|
+
```
|
148
|
+
|
149
|
+
### Editable attachments
|
150
|
+
|
151
|
+
To allow users to edit an attached file, load a new code editor within the chatbot window. On this screen, you can allow users to edit a file and save changes if they'd like. Return users to the main chatbot window once they dismiss the editor.
|
152
|
+
|
153
|
+
```js file="./AttachmentEdit.tsx"
|
154
|
+
|
155
|
+
```
|
156
|
+
|
157
|
+
### Failed attachment error
|
158
|
+
|
159
|
+
When an attachment upload fails, a [danger alert](/components/alert) is displayed to provide details about the reason for failure.
|
160
|
+
|
161
|
+
```js file="./AttachmentError.tsx"
|
162
|
+
|
163
|
+
```
|
164
|
+
|
165
|
+
### Attachment dropzone
|
166
|
+
|
167
|
+
An attachment dropzone allows users to upload files via drag and drop.
|
168
|
+
|
169
|
+
```js file="./FileDropZone.tsx"
|
170
|
+
|
171
|
+
```
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<svg width="18" height="20" viewBox="0 0 18 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<g clip-path="url(#clip0_3934_2737)">
|
3
|
+
<path d="M14.4766 3.27344C13.5234 2.32031 11.9766 2.32031 11.0234 3.27344L3.83594 10.4609C2.19141 12.1055 2.19141 14.7695 3.83594 16.4141C5.48047 18.0586 8.14453 18.0586 9.78906 16.4141L15.7266 10.4766C16.1523 10.0508 16.8477 10.0508 17.2734 10.4766C17.6992 10.9023 17.6992 11.5977 17.2734 12.0234L11.3359 17.9609C8.83594 20.4609 4.78906 20.4609 2.28906 17.9609C-0.210938 15.4609 -0.210938 11.4141 2.28906 8.91406L9.47656 1.72656C11.2852 -0.0820313 14.2148 -0.0820313 16.0234 1.72656C17.832 3.53516 17.832 6.46484 16.0234 8.27344L9.14844 15.1484C8.03125 16.2656 6.21875 16.2656 5.10156 15.1484C3.98438 14.0312 3.98438 12.2188 5.10156 11.1016L10.7266 5.47656C11.1523 5.05078 11.8477 5.05078 12.2734 5.47656C12.6992 5.90234 12.6992 6.59766 12.2734 7.02344L6.64844 12.6484C6.38672 12.9102 6.38672 13.3398 6.64844 13.6016C6.91016 13.8633 7.33984 13.8633 7.60156 13.6016L14.4766 6.72656C15.4297 5.77344 15.4297 4.22656 14.4766 3.27344Z" fill="white"/>
|
4
|
+
</g>
|
5
|
+
<defs>
|
6
|
+
<clipPath id="clip0_3934_2737">
|
7
|
+
<rect width="17.5" height="20" fill="white" transform="translate(0.25)"/>
|
8
|
+
</clipPath>
|
9
|
+
</defs>
|
10
|
+
</svg>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { Button } from '@patternfly/react-core';
|
3
|
+
import { PreviewAttachment } from '@patternfly/chatbot/dist/dynamic/PreviewAttachment';
|
4
|
+
|
5
|
+
export const PreviewAttachmentExample: React.FunctionComponent = () => {
|
6
|
+
const [isModalOpen, setIsModalOpen] = React.useState(false);
|
7
|
+
|
8
|
+
const handleModalToggle = (_event: React.MouseEvent | MouseEvent | KeyboardEvent) => {
|
9
|
+
setIsModalOpen(!isModalOpen);
|
10
|
+
};
|
11
|
+
|
12
|
+
return (
|
13
|
+
<>
|
14
|
+
<Button onClick={handleModalToggle}>Launch modal</Button>
|
15
|
+
<PreviewAttachment
|
16
|
+
code="I am a code snippet"
|
17
|
+
fileName="test.yaml"
|
18
|
+
handleModalToggle={handleModalToggle}
|
19
|
+
isModalOpen={isModalOpen}
|
20
|
+
onDismiss={() => null}
|
21
|
+
onEdit={() => null}
|
22
|
+
/>
|
23
|
+
</>
|
24
|
+
);
|
25
|
+
};
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
|
3
|
+
import Message from '@patternfly/chatbot/dist/dynamic/Message';
|
4
|
+
import userAvatar from './user_avatar.jpg';
|
5
|
+
|
6
|
+
export const UserMessageExample: React.FunctionComponent = () => {
|
7
|
+
const markdown = `A paragraph with *emphasis* and **strong importance**.
|
8
|
+
|
9
|
+
> A block quote with ~strikethrough~ and a URL: https://reactjs.org.
|
10
|
+
|
11
|
+
Here is an inline code - \`() => void\`
|
12
|
+
|
13
|
+
Here is an ordered list:
|
14
|
+
|
15
|
+
1. Item 1
|
16
|
+
2. Item 3
|
17
|
+
3. Item 4
|
18
|
+
|
19
|
+
Here is an unordered list:
|
20
|
+
|
21
|
+
* Item 1
|
22
|
+
* Item 2
|
23
|
+
* Item 3`;
|
24
|
+
|
25
|
+
return (
|
26
|
+
<>
|
27
|
+
<Message
|
28
|
+
name="User"
|
29
|
+
role="user"
|
30
|
+
content="Example content with updated timestamp text"
|
31
|
+
timestamp="1 hour ago"
|
32
|
+
avatar={userAvatar}
|
33
|
+
/>
|
34
|
+
<Message name="User" role="user" content={markdown} avatar={userAvatar} />
|
35
|
+
</>
|
36
|
+
);
|
37
|
+
};
|
Binary file
|