@patternfly/chatbot 6.5.0-prerelease.8 → 6.5.0
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/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +9 -1
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +9 -2
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +38 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +29 -2
- package/dist/cjs/CodeModal/CodeModal.d.ts +2 -0
- package/dist/cjs/CodeModal/CodeModal.js +53 -12
- package/dist/cjs/DeepThinking/DeepThinking.d.ts +13 -0
- package/dist/cjs/DeepThinking/DeepThinking.js +31 -3
- package/dist/cjs/DeepThinking/DeepThinking.test.js +80 -0
- package/dist/cjs/MarkdownContent/MarkdownContent.d.ts +44 -0
- package/dist/cjs/MarkdownContent/MarkdownContent.js +181 -0
- package/dist/cjs/MarkdownContent/MarkdownContent.test.d.ts +1 -0
- package/dist/cjs/MarkdownContent/MarkdownContent.test.js +192 -0
- package/dist/cjs/MarkdownContent/index.d.ts +2 -0
- package/dist/cjs/MarkdownContent/index.js +23 -0
- package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.d.ts +3 -1
- package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.js +15 -4
- package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.test.d.ts +1 -0
- package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.test.js +131 -0
- package/dist/cjs/Message/ErrorMessage/ErrorMessage.d.ts +15 -1
- package/dist/cjs/Message/ErrorMessage/ErrorMessage.js +5 -3
- package/dist/cjs/Message/ErrorMessage/ErrorMessage.test.d.ts +1 -0
- package/dist/cjs/Message/ErrorMessage/ErrorMessage.test.js +30 -0
- package/dist/cjs/Message/LinkMessage/LinkMessage.d.ts +5 -1
- package/dist/cjs/Message/LinkMessage/LinkMessage.js +4 -3
- package/dist/cjs/Message/ListMessage/OrderedListMessage.d.ts +9 -1
- package/dist/cjs/Message/ListMessage/OrderedListMessage.js +2 -1
- package/dist/cjs/Message/ListMessage/UnorderedListMessage.d.ts +7 -1
- package/dist/cjs/Message/ListMessage/UnorderedListMessage.js +2 -1
- package/dist/cjs/Message/Message.d.ts +20 -3
- package/dist/cjs/Message/Message.js +7 -160
- package/dist/cjs/Message/Message.test.js +129 -2
- package/dist/cjs/Message/MessageAndActions/MessageAndActions.d.ts +14 -0
- package/dist/cjs/Message/MessageAndActions/MessageAndActions.js +22 -0
- package/dist/cjs/Message/MessageAndActions/MessageAndActions.test.d.ts +1 -0
- package/dist/cjs/Message/MessageAndActions/MessageAndActions.test.js +25 -0
- package/dist/cjs/Message/MessageAndActions/index.d.ts +1 -0
- package/dist/cjs/Message/MessageAndActions/index.js +17 -0
- package/dist/cjs/Message/MessageAttachments/MessageAttachmentItem.d.ts +13 -0
- package/dist/cjs/Message/MessageAttachments/MessageAttachmentItem.js +22 -0
- package/dist/cjs/Message/MessageAttachments/MessageAttachmentItem.test.d.ts +1 -0
- package/dist/cjs/Message/MessageAttachments/MessageAttachmentItem.test.js +25 -0
- package/dist/cjs/Message/MessageAttachments/MessageAttachmentsContainer.d.ts +13 -0
- package/dist/cjs/Message/MessageAttachments/MessageAttachmentsContainer.js +22 -0
- package/dist/cjs/Message/MessageAttachments/MessageAttachmentsContainer.test.d.ts +1 -0
- package/dist/cjs/Message/MessageAttachments/MessageAttachmentsContainer.test.js +25 -0
- package/dist/cjs/Message/MessageAttachments/index.d.ts +2 -0
- package/dist/cjs/Message/MessageAttachments/index.js +18 -0
- package/dist/cjs/Message/MessageInput.d.ts +1 -1
- package/dist/cjs/Message/MessageInput.js +3 -1
- package/dist/cjs/Message/MessageLoading.d.ts +13 -4
- package/dist/cjs/Message/MessageLoading.js +19 -5
- package/dist/cjs/Message/MessageLoading.test.d.ts +1 -0
- package/dist/cjs/Message/MessageLoading.test.js +25 -0
- package/dist/cjs/Message/QuickResponse/QuickResponse.js +3 -2
- package/dist/cjs/Message/QuickResponse/QuickResponse.test.d.ts +1 -0
- package/dist/cjs/Message/QuickResponse/QuickResponse.test.js +109 -0
- package/dist/cjs/Message/QuickResponse/index.d.ts +1 -0
- package/dist/cjs/Message/QuickResponse/index.js +17 -0
- package/dist/cjs/Message/QuickStarts/QuickStartTile.d.ts +1 -1
- package/dist/cjs/Message/QuickStarts/QuickStartTile.js +3 -2
- package/dist/cjs/Message/QuickStarts/index.d.ts +2 -0
- package/dist/cjs/Message/QuickStarts/index.js +18 -0
- package/dist/cjs/Message/TableMessage/TableMessage.d.ts +6 -1
- package/dist/cjs/Message/TableMessage/TableMessage.js +3 -2
- package/dist/cjs/Message/TextMessage/TextMessage.d.ts +8 -1
- package/dist/cjs/Message/TextMessage/TextMessage.js +3 -2
- package/dist/cjs/Message/UserFeedback/UserFeedback.d.ts +3 -1
- package/dist/cjs/Message/UserFeedback/UserFeedback.js +8 -6
- package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.d.ts +1 -1
- package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +3 -2
- package/dist/cjs/Message/UserFeedback/index.d.ts +2 -0
- package/dist/cjs/Message/UserFeedback/index.js +18 -0
- package/dist/cjs/Message/index.d.ts +8 -0
- package/dist/cjs/Message/index.js +8 -0
- package/dist/cjs/MessageBar/MessageBar.d.ts +4 -0
- package/dist/cjs/MessageBar/MessageBar.js +20 -5
- package/dist/cjs/MessageBar/MessageBar.test.js +8 -0
- package/dist/cjs/Onboarding/Onboarding.d.ts +36 -0
- package/dist/cjs/Onboarding/Onboarding.js +37 -0
- package/dist/cjs/Onboarding/Onboarding.test.d.ts +1 -0
- package/dist/cjs/Onboarding/Onboarding.test.js +80 -0
- package/dist/cjs/Onboarding/index.d.ts +2 -0
- package/dist/cjs/Onboarding/index.js +23 -0
- package/dist/cjs/ResponseActions/ResponseActions.d.ts +7 -0
- package/dist/cjs/ResponseActions/ResponseActions.js +28 -7
- package/dist/cjs/ResponseActions/ResponseActions.test.js +67 -12
- package/dist/cjs/ResponseActions/ResponseActionsGroups.d.ts +13 -0
- package/dist/cjs/ResponseActions/ResponseActionsGroups.js +22 -0
- package/dist/cjs/ResponseActions/ResponseActionsGroups.test.d.ts +1 -0
- package/dist/cjs/ResponseActions/ResponseActionsGroups.test.js +25 -0
- package/dist/cjs/ResponseActions/index.d.ts +1 -0
- package/dist/cjs/ResponseActions/index.js +1 -0
- package/dist/cjs/ToolCall/ToolCall.d.ts +11 -0
- package/dist/cjs/ToolCall/ToolCall.js +24 -3
- package/dist/cjs/ToolCall/ToolCall.test.js +57 -0
- package/dist/cjs/ToolResponse/ToolResponse.d.ts +17 -0
- package/dist/cjs/ToolResponse/ToolResponse.js +49 -3
- package/dist/cjs/ToolResponse/ToolResponse.test.js +100 -0
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/index.js +7 -1
- package/dist/css/main.css +268 -30
- package/dist/css/main.css.map +1 -1
- package/dist/dynamic/MarkdownContent/package.json +1 -0
- package/dist/dynamic/Onboarding/package.json +1 -0
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +9 -1
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +10 -3
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +38 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +30 -3
- package/dist/esm/CodeModal/CodeModal.d.ts +2 -0
- package/dist/esm/CodeModal/CodeModal.js +54 -13
- package/dist/esm/DeepThinking/DeepThinking.d.ts +13 -0
- package/dist/esm/DeepThinking/DeepThinking.js +28 -3
- package/dist/esm/DeepThinking/DeepThinking.test.js +80 -0
- package/dist/esm/MarkdownContent/MarkdownContent.d.ts +44 -0
- package/dist/esm/MarkdownContent/MarkdownContent.js +174 -0
- package/dist/esm/MarkdownContent/MarkdownContent.test.d.ts +1 -0
- package/dist/esm/MarkdownContent/MarkdownContent.test.js +187 -0
- package/dist/esm/MarkdownContent/index.d.ts +2 -0
- package/dist/esm/MarkdownContent/index.js +2 -0
- package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.d.ts +3 -1
- package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.js +15 -4
- package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.test.d.ts +1 -0
- package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.test.js +126 -0
- package/dist/esm/Message/ErrorMessage/ErrorMessage.d.ts +15 -1
- package/dist/esm/Message/ErrorMessage/ErrorMessage.js +3 -3
- package/dist/esm/Message/ErrorMessage/ErrorMessage.test.d.ts +1 -0
- package/dist/esm/Message/ErrorMessage/ErrorMessage.test.js +25 -0
- package/dist/esm/Message/LinkMessage/LinkMessage.d.ts +5 -1
- package/dist/esm/Message/LinkMessage/LinkMessage.js +4 -3
- package/dist/esm/Message/ListMessage/OrderedListMessage.d.ts +9 -1
- package/dist/esm/Message/ListMessage/OrderedListMessage.js +2 -1
- package/dist/esm/Message/ListMessage/UnorderedListMessage.d.ts +7 -1
- package/dist/esm/Message/ListMessage/UnorderedListMessage.js +2 -1
- package/dist/esm/Message/Message.d.ts +20 -3
- package/dist/esm/Message/Message.js +8 -161
- package/dist/esm/Message/Message.test.js +129 -2
- package/dist/esm/Message/MessageAndActions/MessageAndActions.d.ts +14 -0
- package/dist/esm/Message/MessageAndActions/MessageAndActions.js +18 -0
- package/dist/esm/Message/MessageAndActions/MessageAndActions.test.d.ts +1 -0
- package/dist/esm/Message/MessageAndActions/MessageAndActions.test.js +20 -0
- package/dist/esm/Message/MessageAndActions/index.d.ts +1 -0
- package/dist/esm/Message/MessageAndActions/index.js +1 -0
- package/dist/esm/Message/MessageAttachments/MessageAttachmentItem.d.ts +13 -0
- package/dist/esm/Message/MessageAttachments/MessageAttachmentItem.js +18 -0
- package/dist/esm/Message/MessageAttachments/MessageAttachmentItem.test.d.ts +1 -0
- package/dist/esm/Message/MessageAttachments/MessageAttachmentItem.test.js +20 -0
- package/dist/esm/Message/MessageAttachments/MessageAttachmentsContainer.d.ts +13 -0
- package/dist/esm/Message/MessageAttachments/MessageAttachmentsContainer.js +18 -0
- package/dist/esm/Message/MessageAttachments/MessageAttachmentsContainer.test.d.ts +1 -0
- package/dist/esm/Message/MessageAttachments/MessageAttachmentsContainer.test.js +20 -0
- package/dist/esm/Message/MessageAttachments/index.d.ts +2 -0
- package/dist/esm/Message/MessageAttachments/index.js +2 -0
- package/dist/esm/Message/MessageInput.d.ts +1 -1
- package/dist/esm/Message/MessageInput.js +1 -1
- package/dist/esm/Message/MessageLoading.d.ts +13 -4
- package/dist/esm/Message/MessageLoading.js +16 -4
- package/dist/esm/Message/MessageLoading.test.d.ts +1 -0
- package/dist/esm/Message/MessageLoading.test.js +20 -0
- package/dist/esm/Message/QuickResponse/QuickResponse.js +3 -2
- package/dist/esm/Message/QuickResponse/QuickResponse.test.d.ts +1 -0
- package/dist/esm/Message/QuickResponse/QuickResponse.test.js +104 -0
- package/dist/esm/Message/QuickResponse/index.d.ts +1 -0
- package/dist/esm/Message/QuickResponse/index.js +1 -0
- package/dist/esm/Message/QuickStarts/QuickStartTile.d.ts +1 -1
- package/dist/esm/Message/QuickStarts/QuickStartTile.js +1 -1
- package/dist/esm/Message/QuickStarts/index.d.ts +2 -0
- package/dist/esm/Message/QuickStarts/index.js +2 -0
- package/dist/esm/Message/TableMessage/TableMessage.d.ts +6 -1
- package/dist/esm/Message/TableMessage/TableMessage.js +3 -2
- package/dist/esm/Message/TextMessage/TextMessage.d.ts +8 -1
- package/dist/esm/Message/TextMessage/TextMessage.js +3 -2
- package/dist/esm/Message/UserFeedback/UserFeedback.d.ts +3 -1
- package/dist/esm/Message/UserFeedback/UserFeedback.js +7 -7
- package/dist/esm/Message/UserFeedback/UserFeedbackComplete.d.ts +1 -1
- package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +1 -2
- package/dist/esm/Message/UserFeedback/index.d.ts +2 -0
- package/dist/esm/Message/UserFeedback/index.js +2 -0
- package/dist/esm/Message/index.d.ts +8 -0
- package/dist/esm/Message/index.js +8 -0
- package/dist/esm/MessageBar/MessageBar.d.ts +4 -0
- package/dist/esm/MessageBar/MessageBar.js +20 -5
- package/dist/esm/MessageBar/MessageBar.test.js +8 -0
- package/dist/esm/Onboarding/Onboarding.d.ts +36 -0
- package/dist/esm/Onboarding/Onboarding.js +30 -0
- package/dist/esm/Onboarding/Onboarding.test.d.ts +1 -0
- package/dist/esm/Onboarding/Onboarding.test.js +75 -0
- package/dist/esm/Onboarding/index.d.ts +2 -0
- package/dist/esm/Onboarding/index.js +2 -0
- package/dist/esm/ResponseActions/ResponseActions.d.ts +7 -0
- package/dist/esm/ResponseActions/ResponseActions.js +28 -7
- package/dist/esm/ResponseActions/ResponseActions.test.js +67 -12
- package/dist/esm/ResponseActions/ResponseActionsGroups.d.ts +13 -0
- package/dist/esm/ResponseActions/ResponseActionsGroups.js +18 -0
- package/dist/esm/ResponseActions/ResponseActionsGroups.test.d.ts +1 -0
- package/dist/esm/ResponseActions/ResponseActionsGroups.test.js +20 -0
- package/dist/esm/ResponseActions/index.d.ts +1 -0
- package/dist/esm/ResponseActions/index.js +1 -0
- package/dist/esm/ToolCall/ToolCall.d.ts +11 -0
- package/dist/esm/ToolCall/ToolCall.js +21 -3
- package/dist/esm/ToolCall/ToolCall.test.js +57 -0
- package/dist/esm/ToolResponse/ToolResponse.d.ts +17 -0
- package/dist/esm/ToolResponse/ToolResponse.js +46 -3
- package/dist/esm/ToolResponse/ToolResponse.test.js +100 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +4 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -3
- package/patternfly-docs/content/extensions/chatbot/chatbot.md +57 -0
- package/patternfly-docs/content/extensions/chatbot/design-guidelines.md +12 -12
- package/patternfly-docs/content/extensions/chatbot/examples/Analytics/Analytics.md +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Customizing Messages/Customizing Messages.md +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +1 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithCustomStructure.tsx +102 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithDeepThinking.tsx +25 -11
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +14 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithMarkdownDeepThinking.tsx +26 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithMarkdownToolCall.tsx +29 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithMarkdownToolResponse.tsx +200 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithMultipleActionGroups.tsx +61 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithPersistedActions.tsx +22 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +11 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithToolCall.tsx +14 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithToolResponse.tsx +222 -105
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +123 -14
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +1 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithSearchActions.tsx +198 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarIndicatorThinking.tsx +15 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/CompactOnboarding.tsx +141 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/Onboarding.tsx +151 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/RH-Hat-Image.svg +9 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +67 -29
- package/patternfly-docs/content/extensions/chatbot/examples/demos/AttachmentDemos.md +18 -18
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +33 -19
- package/patternfly-docs/patternfly-docs.config.js +1 -1
- package/patternfly-docs/patternfly-docs.source.js +1 -1
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +43 -0
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +95 -0
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +51 -15
- package/src/ChatbotHeader/ChatbotHeader.scss +4 -0
- package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +56 -14
- package/src/ChatbotModal/ChatbotModal.scss +3 -0
- package/src/CodeModal/CodeModal.tsx +71 -26
- package/src/DeepThinking/DeepThinking.scss +1 -1
- package/src/DeepThinking/DeepThinking.test.tsx +109 -0
- package/src/DeepThinking/DeepThinking.tsx +54 -5
- package/src/MarkdownContent/MarkdownContent.test.tsx +207 -0
- package/src/MarkdownContent/MarkdownContent.tsx +269 -0
- package/src/MarkdownContent/index.ts +2 -0
- package/src/Message/CodeBlockMessage/CodeBlockMessage.scss +13 -0
- package/src/Message/CodeBlockMessage/CodeBlockMessage.test.tsx +171 -0
- package/src/Message/CodeBlockMessage/CodeBlockMessage.tsx +17 -4
- package/src/Message/ErrorMessage/ErrorMessage.test.tsx +38 -0
- package/src/Message/ErrorMessage/ErrorMessage.tsx +17 -2
- package/src/Message/LinkMessage/LinkMessage.scss +5 -0
- package/src/Message/LinkMessage/LinkMessage.tsx +24 -2
- package/src/Message/ListMessage/ListMessage.scss +8 -0
- package/src/Message/ListMessage/OrderedListMessage.tsx +16 -2
- package/src/Message/ListMessage/UnorderedListMessage.tsx +12 -2
- package/src/Message/Message.scss +11 -7
- package/src/Message/Message.test.tsx +202 -2
- package/src/Message/Message.tsx +129 -241
- package/src/Message/MessageAndActions/MessageAndActions.test.tsx +23 -0
- package/src/Message/MessageAndActions/MessageAndActions.tsx +22 -0
- package/src/Message/MessageAndActions/index.ts +1 -0
- package/src/Message/MessageAttachments/MessageAttachmentItem.test.tsx +23 -0
- package/src/Message/MessageAttachments/MessageAttachmentItem.tsx +25 -0
- package/src/Message/MessageAttachments/MessageAttachmentsContainer.test.tsx +23 -0
- package/src/Message/MessageAttachments/MessageAttachmentsContainer.tsx +25 -0
- package/src/Message/MessageAttachments/index.ts +2 -0
- package/src/Message/MessageInput.tsx +1 -1
- package/src/Message/MessageLoading.test.tsx +23 -0
- package/src/Message/MessageLoading.tsx +17 -2
- package/src/Message/QuickResponse/QuickResponse.scss +3 -1
- package/src/Message/QuickResponse/QuickResponse.test.tsx +131 -0
- package/src/Message/QuickResponse/QuickResponse.tsx +3 -2
- package/src/Message/QuickResponse/index.ts +1 -0
- package/src/Message/QuickStarts/QuickStartTile.tsx +1 -1
- package/src/Message/QuickStarts/index.ts +2 -0
- package/src/Message/TableMessage/TableMessage.scss +13 -1
- package/src/Message/TableMessage/TableMessage.tsx +18 -2
- package/src/Message/TextMessage/TextMessage.scss +12 -0
- package/src/Message/TextMessage/TextMessage.tsx +29 -2
- package/src/Message/UserFeedback/UserFeedback.scss +28 -1
- package/src/Message/UserFeedback/UserFeedback.tsx +23 -13
- package/src/Message/UserFeedback/UserFeedbackComplete.tsx +1 -4
- package/src/Message/UserFeedback/index.ts +2 -0
- package/src/Message/index.ts +8 -0
- package/src/MessageBar/AttachButton.scss +0 -1
- package/src/MessageBar/MessageBar.scss +48 -6
- package/src/MessageBar/MessageBar.test.tsx +12 -0
- package/src/MessageBar/MessageBar.tsx +38 -4
- package/src/MessageBar/MicrophoneButton.scss +0 -1
- package/src/MessageBar/SendButton.scss +0 -1
- package/src/MessageBar/StopButton.scss +0 -1
- package/src/Onboarding/Onboarding.scss +101 -0
- package/src/Onboarding/Onboarding.test.tsx +148 -0
- package/src/Onboarding/Onboarding.tsx +126 -0
- package/src/Onboarding/index.ts +3 -0
- package/src/ResponseActions/ResponseActions.scss +12 -1
- package/src/ResponseActions/ResponseActions.test.tsx +111 -12
- package/src/ResponseActions/ResponseActions.tsx +44 -10
- package/src/ResponseActions/ResponseActionsGroups.test.tsx +23 -0
- package/src/ResponseActions/ResponseActionsGroups.tsx +28 -0
- package/src/ResponseActions/index.ts +1 -0
- package/src/ToolCall/ToolCall.scss +1 -1
- package/src/ToolCall/ToolCall.test.tsx +91 -0
- package/src/ToolCall/ToolCall.tsx +49 -4
- package/src/ToolResponse/ToolResponse.scss +13 -3
- package/src/ToolResponse/ToolResponse.test.tsx +119 -0
- package/src/ToolResponse/ToolResponse.tsx +82 -7
- package/src/index.ts +6 -0
- package/src/main.scss +2 -0
- package/tsconfig.json +1 -1
- package/patternfly-docs/content/extensions/chatbot/about-chatbot.md +0 -44
package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithCustomStructure.tsx
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { FunctionComponent } from 'react';
|
|
2
|
+
import Message, {
|
|
3
|
+
ErrorMessage,
|
|
4
|
+
MessageAndActions,
|
|
5
|
+
MessageAttachmentItem,
|
|
6
|
+
MessageAttachmentsContainer,
|
|
7
|
+
MessageLoading
|
|
8
|
+
} from '@patternfly/chatbot/dist/dynamic/Message';
|
|
9
|
+
import MarkdownContent from '@patternfly/chatbot/dist/dynamic/MarkdownContent';
|
|
10
|
+
import ToolCall from '@patternfly/chatbot/dist/dynamic/ToolCall';
|
|
11
|
+
import ToolResponse from '@patternfly/chatbot/dist/dynamic/ToolResponse';
|
|
12
|
+
import FileDetailsLabel from '@patternfly/chatbot/dist/dynamic/FileDetailsLabel';
|
|
13
|
+
import ResponseActions, { ResponseActionsGroups } from '@patternfly/chatbot/dist/dynamic/ResponseActions';
|
|
14
|
+
import patternflyAvatar from './patternfly_avatar.jpg';
|
|
15
|
+
import userAvatar from './user_avatar.svg';
|
|
16
|
+
|
|
17
|
+
const handlePositiveResponse = () => {
|
|
18
|
+
// Handle positive response
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const handleNegativeResponse = () => {
|
|
22
|
+
// Handle negative response
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const handleCopy = () => {
|
|
26
|
+
// Handle copy action
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const handleDownload = () => {
|
|
30
|
+
// Handle download action
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const handleListen = () => {
|
|
34
|
+
// Handle listen action
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export const MessageWithCustomStructure: FunctionComponent = () => (
|
|
38
|
+
<>
|
|
39
|
+
<Message name="Bot" role="bot" avatar={patternflyAvatar}>
|
|
40
|
+
<MessageAndActions>
|
|
41
|
+
<MarkdownContent
|
|
42
|
+
content={`This is a basic message with a more custom, fine-tuned structure. You can pass markdown to the MarkdownContent component, such as **bold content with double asterisks** or _italic content with single underscores_.`}
|
|
43
|
+
/>
|
|
44
|
+
<ToolCall titleText="Calling 'awesome_tool'" loadingText="Loading 'awesome_tool'" isLoading={true} />
|
|
45
|
+
<ToolResponse
|
|
46
|
+
toggleContent="Tool response: fetch_user_data"
|
|
47
|
+
subheading="Executed in 0.3 seconds"
|
|
48
|
+
body="Successfully retrieved user data from the database."
|
|
49
|
+
cardTitle="User Data Response"
|
|
50
|
+
cardBody="The tool returned 150 user records matching the specified criteria."
|
|
51
|
+
/>
|
|
52
|
+
<ErrorMessage title="An issue placed within this custom structure." />
|
|
53
|
+
<MarkdownContent
|
|
54
|
+
isMarkdownDisabled
|
|
55
|
+
textComponent={`You can also pass plain text without markdown to the MarkdownContent component by passing the isMarkdownDisabled prop. Optionally, you can also use the textComponent prop instead of content.`}
|
|
56
|
+
/>
|
|
57
|
+
<ToolCall titleText="Calling 'more_awesome_tool'" loadingText="Loading 'more_awesome_tool'" isLoading={true} />
|
|
58
|
+
<ToolCall titleText="Calling 'even_more_awesome_tool'" loadingText="Loading 'even_more_awesome_tool'" />
|
|
59
|
+
<MarkdownContent content={`You can even place a message loading state in the middle of a message:`} />
|
|
60
|
+
<MessageLoading loadingWord="Loading something in the middle of a custom structured message" />
|
|
61
|
+
<ResponseActionsGroups>
|
|
62
|
+
<ResponseActions
|
|
63
|
+
actions={{
|
|
64
|
+
positive: { onClick: handlePositiveResponse, ariaLabel: 'Good response' },
|
|
65
|
+
negative: { onClick: handleNegativeResponse, ariaLabel: 'Bad response' }
|
|
66
|
+
}}
|
|
67
|
+
persistActionSelection={true}
|
|
68
|
+
/>
|
|
69
|
+
<ResponseActions
|
|
70
|
+
actions={{
|
|
71
|
+
copy: { onClick: handleCopy, ariaLabel: 'Copy' },
|
|
72
|
+
download: { onClick: handleDownload, ariaLabel: 'Download' }
|
|
73
|
+
}}
|
|
74
|
+
persistActionSelection={false}
|
|
75
|
+
/>
|
|
76
|
+
<ResponseActions
|
|
77
|
+
actions={{
|
|
78
|
+
listen: { onClick: handleListen, ariaLabel: 'Listen' }
|
|
79
|
+
}}
|
|
80
|
+
persistActionSelection={true}
|
|
81
|
+
/>
|
|
82
|
+
</ResponseActionsGroups>
|
|
83
|
+
</MessageAndActions>
|
|
84
|
+
</Message>
|
|
85
|
+
<Message name="User" role="user" avatar={userAvatar}>
|
|
86
|
+
<MessageAndActions>
|
|
87
|
+
<MarkdownContent content="This message is in the MessageAndActions container, and the file attachments below are in their own separate MessageAttachmentsContainer!" />
|
|
88
|
+
</MessageAndActions>
|
|
89
|
+
<MessageAttachmentsContainer>
|
|
90
|
+
<MessageAttachmentItem>
|
|
91
|
+
<FileDetailsLabel fileName="project-report.pdf" />
|
|
92
|
+
</MessageAttachmentItem>
|
|
93
|
+
<MessageAttachmentItem>
|
|
94
|
+
<FileDetailsLabel fileName="data-analysis.csv" />
|
|
95
|
+
</MessageAttachmentItem>
|
|
96
|
+
<MessageAttachmentItem>
|
|
97
|
+
<FileDetailsLabel fileName="presentation-slides.pptx" />
|
|
98
|
+
</MessageAttachmentItem>
|
|
99
|
+
</MessageAttachmentsContainer>
|
|
100
|
+
</Message>
|
|
101
|
+
</>
|
|
102
|
+
);
|
package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithDeepThinking.tsx
CHANGED
|
@@ -3,15 +3,29 @@ import Message from '@patternfly/chatbot/dist/dynamic/Message';
|
|
|
3
3
|
import patternflyAvatar from './patternfly_avatar.jpg';
|
|
4
4
|
|
|
5
5
|
export const MessageWithDeepThinkingExample: FunctionComponent = () => (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
<>
|
|
7
|
+
<Message
|
|
8
|
+
name="Bot"
|
|
9
|
+
role="bot"
|
|
10
|
+
avatar={patternflyAvatar}
|
|
11
|
+
content="This example has a body description that's within the recommended limit of 2 lines."
|
|
12
|
+
deepThinking={{
|
|
13
|
+
toggleContent: 'Show thinking',
|
|
14
|
+
subheading: 'Thought for 3 seconds',
|
|
15
|
+
body: "Here's why I said this."
|
|
16
|
+
}}
|
|
17
|
+
/>
|
|
18
|
+
<Message
|
|
19
|
+
name="Bot"
|
|
20
|
+
role="bot"
|
|
21
|
+
avatar={patternflyAvatar}
|
|
22
|
+
content="This example has deep thinking that is collapsed by default:"
|
|
23
|
+
deepThinking={{
|
|
24
|
+
isDefaultExpanded: false,
|
|
25
|
+
toggleContent: 'Show thinking',
|
|
26
|
+
subheading: 'Thought for 3 seconds',
|
|
27
|
+
body: "Here's why I said this."
|
|
28
|
+
}}
|
|
29
|
+
/>
|
|
30
|
+
</>
|
|
17
31
|
);
|
package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx
CHANGED
|
@@ -7,8 +7,10 @@ export const MessageWithFeedbackExample: FunctionComponent = () => {
|
|
|
7
7
|
const [hasCloseButton, setHasCloseButton] = useState(false);
|
|
8
8
|
const [hasTextArea, setHasTextArea] = useState(false);
|
|
9
9
|
const [hasChildren, setHasChildren] = useState(false);
|
|
10
|
+
const [hasPrivacyStatement, setHasPrivacyStatement] = useState(false);
|
|
10
11
|
|
|
11
|
-
const children = <>
|
|
12
|
+
const children = <>This is additional content.</>;
|
|
13
|
+
const privacyStatement = 'Do not share any personal or other sensitive information in your feedback.';
|
|
12
14
|
|
|
13
15
|
return (
|
|
14
16
|
<>
|
|
@@ -33,6 +35,15 @@ export const MessageWithFeedbackExample: FunctionComponent = () => {
|
|
|
33
35
|
label="Has additional content"
|
|
34
36
|
id="has-children"
|
|
35
37
|
/>
|
|
38
|
+
<Checkbox
|
|
39
|
+
isChecked={hasPrivacyStatement}
|
|
40
|
+
onChange={() => {
|
|
41
|
+
setHasPrivacyStatement(!hasPrivacyStatement);
|
|
42
|
+
}}
|
|
43
|
+
name="feedback-card-with-privacy"
|
|
44
|
+
label="Has privacy statement"
|
|
45
|
+
id="has-privacy"
|
|
46
|
+
/>
|
|
36
47
|
</FormGroup>
|
|
37
48
|
</FlexItem>
|
|
38
49
|
<FlexItem>
|
|
@@ -51,6 +62,7 @@ export const MessageWithFeedbackExample: FunctionComponent = () => {
|
|
|
51
62
|
alert(`Selected ${quickResponse} and received the additional feedback: ${additionalFeedback}`),
|
|
52
63
|
hasTextArea,
|
|
53
64
|
children: hasChildren ? children : undefined,
|
|
65
|
+
privacyStatement: hasPrivacyStatement ? privacyStatement : undefined,
|
|
54
66
|
// eslint-disable-next-line no-console
|
|
55
67
|
onClose: () => console.log('closed feedback form'),
|
|
56
68
|
focusOnLoad: false
|
|
@@ -73,6 +85,7 @@ export const MessageWithFeedbackExample: FunctionComponent = () => {
|
|
|
73
85
|
alert(`Selected ${quickResponse} and received the additional feedback: ${additionalFeedback}`),
|
|
74
86
|
hasTextArea,
|
|
75
87
|
children: hasChildren ? children : undefined,
|
|
88
|
+
privacyStatement: hasPrivacyStatement ? privacyStatement : undefined,
|
|
76
89
|
// eslint-disable-next-line no-console
|
|
77
90
|
onClose: () => console.log('closed feedback form'),
|
|
78
91
|
focusOnLoad: false
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FunctionComponent } from 'react';
|
|
2
|
+
import Message from '@patternfly/chatbot/dist/dynamic/Message';
|
|
3
|
+
import patternflyAvatar from './patternfly_avatar.jpg';
|
|
4
|
+
|
|
5
|
+
export const MessageWithMarkdownDeepThinkingExample: FunctionComponent = () => (
|
|
6
|
+
<Message
|
|
7
|
+
name="Bot"
|
|
8
|
+
role="bot"
|
|
9
|
+
avatar={patternflyAvatar}
|
|
10
|
+
content="This example shows how to use Markdown formatting in deep thinking content. Note the use of shouldRetainStyles to maintain proper formatting:"
|
|
11
|
+
deepThinking={{
|
|
12
|
+
shouldRetainStyles: true,
|
|
13
|
+
toggleContent: 'Show thinking',
|
|
14
|
+
subheading: '> Thought for 3 seconds',
|
|
15
|
+
isSubheadingMarkdown: true,
|
|
16
|
+
body: `I considered **multiple approaches** to answer your question:
|
|
17
|
+
|
|
18
|
+
1. *Direct response* - Quick but less comprehensive
|
|
19
|
+
2. *Research-based* - Thorough but time-consuming
|
|
20
|
+
3. **Balanced approach** - Combines speed and accuracy
|
|
21
|
+
|
|
22
|
+
I chose option 3 because it provides the best user experience.`,
|
|
23
|
+
isBodyMarkdown: true
|
|
24
|
+
}}
|
|
25
|
+
/>
|
|
26
|
+
);
|
package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithMarkdownToolCall.tsx
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { FunctionComponent } from 'react';
|
|
2
|
+
import Message from '@patternfly/chatbot/dist/dynamic/Message';
|
|
3
|
+
import patternflyAvatar from './patternfly_avatar.jpg';
|
|
4
|
+
|
|
5
|
+
export const MessageWithMarkdownToolCallExample: FunctionComponent = () => (
|
|
6
|
+
<Message
|
|
7
|
+
name="Bot"
|
|
8
|
+
role="bot"
|
|
9
|
+
avatar={patternflyAvatar}
|
|
10
|
+
content="This example shows how to use Markdown formatting in tool call content. Note the use of shouldRetainStyles to maintain proper formatting:"
|
|
11
|
+
toolCall={{
|
|
12
|
+
shouldRetainStyles: true,
|
|
13
|
+
titleText: "Calling 'data_processor'",
|
|
14
|
+
expandableContent: `**Processing data** from the following sources:
|
|
15
|
+
|
|
16
|
+
- Database query results
|
|
17
|
+
- API responses
|
|
18
|
+
- *Local cache*
|
|
19
|
+
|
|
20
|
+
\`\`\`json
|
|
21
|
+
{
|
|
22
|
+
"status": "processing",
|
|
23
|
+
"items": 42
|
|
24
|
+
}
|
|
25
|
+
\`\`\``,
|
|
26
|
+
isExpandableContentMarkdown: true
|
|
27
|
+
}}
|
|
28
|
+
/>
|
|
29
|
+
);
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { useState, FunctionComponent, MouseEvent as ReactMouseEvent } from 'react';
|
|
2
|
+
import Message from '@patternfly/chatbot/dist/dynamic/Message';
|
|
3
|
+
import patternflyAvatar from './patternfly_avatar.jpg';
|
|
4
|
+
import { CopyIcon, WrenchIcon } from '@patternfly/react-icons';
|
|
5
|
+
import {
|
|
6
|
+
Button,
|
|
7
|
+
DescriptionList,
|
|
8
|
+
DescriptionListDescription,
|
|
9
|
+
DescriptionListGroup,
|
|
10
|
+
DescriptionListTerm,
|
|
11
|
+
ExpandableSection,
|
|
12
|
+
ExpandableSectionVariant,
|
|
13
|
+
Flex,
|
|
14
|
+
FlexItem,
|
|
15
|
+
Label
|
|
16
|
+
} from '@patternfly/react-core';
|
|
17
|
+
export const MessageWithToolResponseExample: FunctionComponent = () => {
|
|
18
|
+
const [isExpanded, setIsExpanded] = useState(false);
|
|
19
|
+
const onToggle = (_event: ReactMouseEvent, isExpanded: boolean) => {
|
|
20
|
+
setIsExpanded(isExpanded);
|
|
21
|
+
};
|
|
22
|
+
const toolResponseBody = `The tool processed **3 database queries** and returned the following results:
|
|
23
|
+
|
|
24
|
+
1. User data - *42 records*
|
|
25
|
+
2. Transaction history - *128 records*
|
|
26
|
+
3. Analytics metrics - *15 data points*
|
|
27
|
+
|
|
28
|
+
\`\`\`json
|
|
29
|
+
{
|
|
30
|
+
"status": "success",
|
|
31
|
+
"execution_time": "0.12s"
|
|
32
|
+
}
|
|
33
|
+
\`\`\``;
|
|
34
|
+
return (
|
|
35
|
+
<Message
|
|
36
|
+
name="Bot"
|
|
37
|
+
role="bot"
|
|
38
|
+
avatar={patternflyAvatar}
|
|
39
|
+
content="This example shows how to use Markdown formatting in tool response content. Note the use of shouldRetainStyles to maintain proper formatting:"
|
|
40
|
+
toolResponse={{
|
|
41
|
+
shouldRetainStyles: true,
|
|
42
|
+
isToggleContentMarkdown: true,
|
|
43
|
+
toggleContent: '**Tool response:** data_query_tool',
|
|
44
|
+
isSubheadingMarkdown: true,
|
|
45
|
+
subheading: '> Completed in 0.12 seconds',
|
|
46
|
+
body: toolResponseBody,
|
|
47
|
+
isBodyMarkdown: true,
|
|
48
|
+
cardTitle: (
|
|
49
|
+
<Flex
|
|
50
|
+
alignItems={{
|
|
51
|
+
default: 'alignItemsCenter'
|
|
52
|
+
}}
|
|
53
|
+
justifyContent={{
|
|
54
|
+
default: 'justifyContentSpaceBetween'
|
|
55
|
+
}}
|
|
56
|
+
>
|
|
57
|
+
<FlexItem>
|
|
58
|
+
<Flex
|
|
59
|
+
direction={{
|
|
60
|
+
default: 'column'
|
|
61
|
+
}}
|
|
62
|
+
gap={{
|
|
63
|
+
default: 'gapXs'
|
|
64
|
+
}}
|
|
65
|
+
>
|
|
66
|
+
<FlexItem
|
|
67
|
+
grow={{
|
|
68
|
+
default: 'grow'
|
|
69
|
+
}}
|
|
70
|
+
>
|
|
71
|
+
<Flex
|
|
72
|
+
gap={{
|
|
73
|
+
default: 'gapXs'
|
|
74
|
+
}}
|
|
75
|
+
>
|
|
76
|
+
<FlexItem>
|
|
77
|
+
<WrenchIcon
|
|
78
|
+
style={{
|
|
79
|
+
color: 'var(--pf-t--global--icon--color--brand--default'
|
|
80
|
+
}}
|
|
81
|
+
/>
|
|
82
|
+
</FlexItem>
|
|
83
|
+
<FlexItem>toolName</FlexItem>
|
|
84
|
+
</Flex>
|
|
85
|
+
</FlexItem>
|
|
86
|
+
<FlexItem>
|
|
87
|
+
<Flex
|
|
88
|
+
gap={{
|
|
89
|
+
default: 'gapSm'
|
|
90
|
+
}}
|
|
91
|
+
style={{
|
|
92
|
+
fontSize: '12px',
|
|
93
|
+
fontWeight: '400'
|
|
94
|
+
}}
|
|
95
|
+
>
|
|
96
|
+
<FlexItem>Execution time:</FlexItem>
|
|
97
|
+
<FlexItem>0.12 seconds</FlexItem>
|
|
98
|
+
</Flex>
|
|
99
|
+
</FlexItem>
|
|
100
|
+
</Flex>
|
|
101
|
+
</FlexItem>
|
|
102
|
+
<FlexItem>
|
|
103
|
+
<Button
|
|
104
|
+
variant="plain"
|
|
105
|
+
aria-label="Copy tool response to clipboard"
|
|
106
|
+
icon={
|
|
107
|
+
<CopyIcon
|
|
108
|
+
style={{
|
|
109
|
+
color: 'var(--pf-t--global--icon--color--subtle)'
|
|
110
|
+
}}
|
|
111
|
+
/>
|
|
112
|
+
}
|
|
113
|
+
></Button>
|
|
114
|
+
</FlexItem>
|
|
115
|
+
</Flex>
|
|
116
|
+
),
|
|
117
|
+
cardBody: (
|
|
118
|
+
<>
|
|
119
|
+
<DescriptionList
|
|
120
|
+
style={{
|
|
121
|
+
'--pf-v6-c-description-list--RowGap': 'var(--pf-t--global--spacer--md)'
|
|
122
|
+
}}
|
|
123
|
+
aria-label="Tool response"
|
|
124
|
+
>
|
|
125
|
+
<DescriptionListGroup
|
|
126
|
+
style={{
|
|
127
|
+
'--pf-v6-c-description-list__group--RowGap': 'var(--pf-t--global--spacer--xs)'
|
|
128
|
+
}}
|
|
129
|
+
>
|
|
130
|
+
<DescriptionListTerm>Parameters</DescriptionListTerm>
|
|
131
|
+
<DescriptionListDescription>
|
|
132
|
+
<Flex
|
|
133
|
+
direction={{
|
|
134
|
+
default: 'column'
|
|
135
|
+
}}
|
|
136
|
+
>
|
|
137
|
+
<FlexItem>Optional description text for parameters.</FlexItem>
|
|
138
|
+
<FlexItem>
|
|
139
|
+
<Flex
|
|
140
|
+
gap={{
|
|
141
|
+
default: 'gapSm'
|
|
142
|
+
}}
|
|
143
|
+
>
|
|
144
|
+
<FlexItem>
|
|
145
|
+
<Label variant="outline" color="blue">
|
|
146
|
+
type
|
|
147
|
+
</Label>
|
|
148
|
+
</FlexItem>
|
|
149
|
+
<FlexItem>
|
|
150
|
+
<Label variant="outline" color="blue">
|
|
151
|
+
properties
|
|
152
|
+
</Label>
|
|
153
|
+
</FlexItem>
|
|
154
|
+
<FlexItem>
|
|
155
|
+
<Label variant="outline" color="blue">
|
|
156
|
+
label
|
|
157
|
+
</Label>
|
|
158
|
+
</FlexItem>
|
|
159
|
+
<FlexItem>
|
|
160
|
+
<Label variant="outline" color="blue">
|
|
161
|
+
label
|
|
162
|
+
</Label>
|
|
163
|
+
</FlexItem>
|
|
164
|
+
</Flex>
|
|
165
|
+
</FlexItem>
|
|
166
|
+
</Flex>
|
|
167
|
+
</DescriptionListDescription>
|
|
168
|
+
</DescriptionListGroup>
|
|
169
|
+
<DescriptionListGroup
|
|
170
|
+
style={{
|
|
171
|
+
'--pf-v6-c-description-list__group--RowGap': 'var(--pf-t--global--spacer--xs)'
|
|
172
|
+
}}
|
|
173
|
+
>
|
|
174
|
+
<DescriptionListTerm>Response</DescriptionListTerm>
|
|
175
|
+
<DescriptionListDescription>
|
|
176
|
+
<ExpandableSection
|
|
177
|
+
variant={ExpandableSectionVariant.truncate}
|
|
178
|
+
toggleTextExpanded="show less of response"
|
|
179
|
+
toggleTextCollapsed="show more of response"
|
|
180
|
+
onToggle={onToggle}
|
|
181
|
+
isExpanded={isExpanded}
|
|
182
|
+
style={{
|
|
183
|
+
'--pf-v6-c-expandable-section__content--Opacity': '1',
|
|
184
|
+
'--pf-v6-c-expandable-section__content--PaddingInlineStart': 0,
|
|
185
|
+
'--pf-v6-c-expandable-section__content--TranslateY': 0,
|
|
186
|
+
'--pf-v6-c-expandable-section--m-expand-top__content--TranslateY': 0
|
|
187
|
+
}}
|
|
188
|
+
>
|
|
189
|
+
Descriptive text about the tool response, including completion status, details on the data that was
|
|
190
|
+
processed, or anything else relevant to the use case.
|
|
191
|
+
</ExpandableSection>
|
|
192
|
+
</DescriptionListDescription>
|
|
193
|
+
</DescriptionListGroup>
|
|
194
|
+
</DescriptionList>
|
|
195
|
+
</>
|
|
196
|
+
)
|
|
197
|
+
}}
|
|
198
|
+
/>
|
|
199
|
+
);
|
|
200
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { FunctionComponent } from 'react';
|
|
2
|
+
|
|
3
|
+
import Message from '@patternfly/chatbot/dist/dynamic/Message';
|
|
4
|
+
import patternflyAvatar from './patternfly_avatar.jpg';
|
|
5
|
+
|
|
6
|
+
export const MessageWithMultipleActionGroups: FunctionComponent = () => (
|
|
7
|
+
<>
|
|
8
|
+
<Message
|
|
9
|
+
name="Bot"
|
|
10
|
+
role="bot"
|
|
11
|
+
avatar={patternflyAvatar}
|
|
12
|
+
content="This message contains multiple action groups, each with their own selection persistence: \n1. Feedback actions (thumbs up/down) with persistent selections \n2. Utility actions (copy, download) with non-persistent selections \n3. Listen action with persistent selection"
|
|
13
|
+
actions={[
|
|
14
|
+
{
|
|
15
|
+
actions: {
|
|
16
|
+
// eslint-disable-next-line no-console
|
|
17
|
+
positive: { onClick: () => console.log('Good response') },
|
|
18
|
+
// eslint-disable-next-line no-console
|
|
19
|
+
negative: { onClick: () => console.log('Bad response') }
|
|
20
|
+
},
|
|
21
|
+
persistActionSelection: true
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
actions: {
|
|
25
|
+
// eslint-disable-next-line no-console
|
|
26
|
+
copy: { onClick: () => console.log('Copy') },
|
|
27
|
+
// eslint-disable-next-line no-console
|
|
28
|
+
download: { onClick: () => console.log('Download') }
|
|
29
|
+
},
|
|
30
|
+
persistActionSelection: false
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
actions: {
|
|
34
|
+
// eslint-disable-next-line no-console
|
|
35
|
+
listen: { onClick: () => console.log('Listen') }
|
|
36
|
+
},
|
|
37
|
+
persistActionSelection: true
|
|
38
|
+
}
|
|
39
|
+
]}
|
|
40
|
+
/>
|
|
41
|
+
<Message
|
|
42
|
+
name="Bot"
|
|
43
|
+
role="bot"
|
|
44
|
+
avatar={patternflyAvatar}
|
|
45
|
+
content="This message contains multiple action groups, both of which persist selections."
|
|
46
|
+
actions={[
|
|
47
|
+
{
|
|
48
|
+
// eslint-disable-next-line no-console
|
|
49
|
+
positive: { onClick: () => console.log('Good response') },
|
|
50
|
+
// eslint-disable-next-line no-console
|
|
51
|
+
negative: { onClick: () => console.log('Bad response') }
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
// eslint-disable-next-line no-console
|
|
55
|
+
listen: { onClick: () => console.log('Listen') }
|
|
56
|
+
}
|
|
57
|
+
]}
|
|
58
|
+
persistActionSelection={true}
|
|
59
|
+
/>
|
|
60
|
+
</>
|
|
61
|
+
);
|
package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithPersistedActions.tsx
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FunctionComponent } from 'react';
|
|
2
|
+
|
|
3
|
+
import Message from '@patternfly/chatbot/dist/dynamic/Message';
|
|
4
|
+
import patternflyAvatar from './patternfly_avatar.jpg';
|
|
5
|
+
|
|
6
|
+
export const MessageWithPersistedActions: FunctionComponent = () => (
|
|
7
|
+
<Message
|
|
8
|
+
name="Bot"
|
|
9
|
+
role="bot"
|
|
10
|
+
avatar={patternflyAvatar}
|
|
11
|
+
content="I updated your account with those settings. You're ready to set up your first dashboard! Click a button and then click outside the message - notice the selection persists."
|
|
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
|
+
listen: { onClick: () => console.log('Listen') }
|
|
19
|
+
}}
|
|
20
|
+
persistActionSelection
|
|
21
|
+
/>
|
|
22
|
+
);
|
package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { FunctionComponent } from 'react';
|
|
2
2
|
import Message from '@patternfly/chatbot/dist/dynamic/Message';
|
|
3
3
|
import patternflyAvatar from './patternfly_avatar.jpg';
|
|
4
|
+
import { CopyIcon, WrenchIcon } from '@patternfly/react-icons';
|
|
4
5
|
|
|
5
6
|
export const MessageWithQuickResponsesExample: FunctionComponent = () => (
|
|
6
7
|
<>
|
|
@@ -74,5 +75,15 @@ export const MessageWithQuickResponsesExample: FunctionComponent = () => (
|
|
|
74
75
|
]}
|
|
75
76
|
isCompact
|
|
76
77
|
/>
|
|
78
|
+
<Message
|
|
79
|
+
name="Bot"
|
|
80
|
+
role="bot"
|
|
81
|
+
avatar={patternflyAvatar}
|
|
82
|
+
content="Example with icons"
|
|
83
|
+
quickResponses={[
|
|
84
|
+
{ id: '1', content: 'Update your settings', onClick: () => alert('Clicked yes'), icon: <WrenchIcon /> },
|
|
85
|
+
{ id: '2', content: 'Copy', onClick: () => alert('Clicked no'), icon: <CopyIcon /> }
|
|
86
|
+
]}
|
|
87
|
+
/>
|
|
77
88
|
</>
|
|
78
89
|
);
|
package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithToolCall.tsx
CHANGED
|
@@ -31,7 +31,7 @@ export const MessageWithToolCallExample: FunctionComponent = () => {
|
|
|
31
31
|
name="Bot"
|
|
32
32
|
role="bot"
|
|
33
33
|
avatar={patternflyAvatar}
|
|
34
|
-
content="This example has an expandable tool call title, with an additional description
|
|
34
|
+
content="This example has an expandable tool call title, with an additional description:"
|
|
35
35
|
toolCall={{
|
|
36
36
|
titleText: "Calling 'awesome_tool_expansion'",
|
|
37
37
|
expandableContent: 'This is the expandable content for the tool call.',
|
|
@@ -39,6 +39,19 @@ export const MessageWithToolCallExample: FunctionComponent = () => {
|
|
|
39
39
|
loadingText: "Loading 'awesome_tool_expansion'"
|
|
40
40
|
}}
|
|
41
41
|
/>
|
|
42
|
+
<Message
|
|
43
|
+
name="Bot"
|
|
44
|
+
role="bot"
|
|
45
|
+
avatar={patternflyAvatar}
|
|
46
|
+
content="This example has an expandable tool call that is expanded by default:"
|
|
47
|
+
toolCall={{
|
|
48
|
+
isDefaultExpanded: true,
|
|
49
|
+
titleText: "Calling 'awesome_tool_expansion'",
|
|
50
|
+
expandableContent: 'This is the expandable content for the tool call.',
|
|
51
|
+
isLoading: toolCallsAreLoading,
|
|
52
|
+
loadingText: "Loading 'awesome_tool_expansion'"
|
|
53
|
+
}}
|
|
54
|
+
/>
|
|
42
55
|
</FlexItem>
|
|
43
56
|
</Flex>
|
|
44
57
|
);
|