@patternfly/chatbot 6.5.0-prerelease.3 → 6.5.0-prerelease.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/dist/cjs/AttachMenu/AttachMenu.d.ts +8 -2
  2. package/dist/cjs/AttachMenu/AttachMenu.js +2 -2
  3. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +9 -1
  4. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +9 -2
  5. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +38 -0
  6. package/dist/cjs/ChatbotFooter/ChatbotFooter.d.ts +5 -2
  7. package/dist/cjs/ChatbotFooter/ChatbotFooter.js +2 -2
  8. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.js +5 -1
  9. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +29 -2
  10. package/dist/cjs/CodeModal/CodeModal.d.ts +2 -0
  11. package/dist/cjs/CodeModal/CodeModal.js +53 -8
  12. package/dist/cjs/DeepThinking/DeepThinking.d.ts +13 -0
  13. package/dist/cjs/DeepThinking/DeepThinking.js +31 -3
  14. package/dist/cjs/DeepThinking/DeepThinking.test.js +80 -0
  15. package/dist/cjs/FileDetailsLabel/FileDetailsLabel.d.ts +2 -1
  16. package/dist/cjs/MarkdownContent/MarkdownContent.d.ts +44 -0
  17. package/dist/cjs/MarkdownContent/MarkdownContent.js +181 -0
  18. package/dist/cjs/MarkdownContent/MarkdownContent.test.d.ts +1 -0
  19. package/dist/cjs/MarkdownContent/MarkdownContent.test.js +192 -0
  20. package/dist/cjs/MarkdownContent/index.d.ts +2 -0
  21. package/dist/cjs/MarkdownContent/index.js +23 -0
  22. package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.d.ts +5 -1
  23. package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.js +16 -5
  24. package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.test.d.ts +1 -0
  25. package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.test.js +131 -0
  26. package/dist/cjs/Message/ErrorMessage/ErrorMessage.d.ts +15 -1
  27. package/dist/cjs/Message/ErrorMessage/ErrorMessage.js +5 -3
  28. package/dist/cjs/Message/ErrorMessage/ErrorMessage.test.d.ts +1 -0
  29. package/dist/cjs/Message/ErrorMessage/ErrorMessage.test.js +30 -0
  30. package/dist/cjs/Message/LinkMessage/LinkMessage.d.ts +5 -1
  31. package/dist/cjs/Message/LinkMessage/LinkMessage.js +4 -3
  32. package/dist/cjs/Message/ListMessage/OrderedListMessage.d.ts +9 -1
  33. package/dist/cjs/Message/ListMessage/OrderedListMessage.js +2 -1
  34. package/dist/cjs/Message/ListMessage/UnorderedListMessage.d.ts +7 -1
  35. package/dist/cjs/Message/ListMessage/UnorderedListMessage.js +2 -1
  36. package/dist/cjs/Message/Message.d.ts +22 -3
  37. package/dist/cjs/Message/Message.js +8 -161
  38. package/dist/cjs/Message/Message.test.js +161 -2
  39. package/dist/cjs/Message/MessageAndActions/MessageAndActions.d.ts +14 -0
  40. package/dist/cjs/Message/MessageAndActions/MessageAndActions.js +22 -0
  41. package/dist/cjs/Message/MessageAndActions/MessageAndActions.test.d.ts +1 -0
  42. package/dist/cjs/Message/MessageAndActions/MessageAndActions.test.js +25 -0
  43. package/dist/cjs/Message/MessageAndActions/index.d.ts +1 -0
  44. package/dist/cjs/Message/MessageAndActions/index.js +17 -0
  45. package/dist/cjs/Message/MessageAttachments/MessageAttachmentItem.d.ts +13 -0
  46. package/dist/cjs/Message/MessageAttachments/MessageAttachmentItem.js +22 -0
  47. package/dist/cjs/Message/MessageAttachments/MessageAttachmentItem.test.d.ts +1 -0
  48. package/dist/cjs/Message/MessageAttachments/MessageAttachmentItem.test.js +25 -0
  49. package/dist/cjs/Message/MessageAttachments/MessageAttachmentsContainer.d.ts +13 -0
  50. package/dist/cjs/Message/MessageAttachments/MessageAttachmentsContainer.js +22 -0
  51. package/dist/cjs/Message/MessageAttachments/MessageAttachmentsContainer.test.d.ts +1 -0
  52. package/dist/cjs/Message/MessageAttachments/MessageAttachmentsContainer.test.js +25 -0
  53. package/dist/cjs/Message/MessageAttachments/index.d.ts +2 -0
  54. package/dist/cjs/Message/MessageAttachments/index.js +18 -0
  55. package/dist/cjs/Message/MessageInput.d.ts +1 -1
  56. package/dist/cjs/Message/MessageInput.js +3 -1
  57. package/dist/cjs/Message/MessageLoading.d.ts +13 -3
  58. package/dist/cjs/Message/MessageLoading.js +19 -5
  59. package/dist/cjs/Message/MessageLoading.test.d.ts +1 -0
  60. package/dist/cjs/Message/MessageLoading.test.js +25 -0
  61. package/dist/cjs/Message/QuickResponse/QuickResponse.js +3 -2
  62. package/dist/cjs/Message/QuickResponse/QuickResponse.test.d.ts +1 -0
  63. package/dist/cjs/Message/QuickResponse/QuickResponse.test.js +109 -0
  64. package/dist/cjs/Message/QuickResponse/index.d.ts +1 -0
  65. package/dist/cjs/Message/QuickResponse/index.js +17 -0
  66. package/dist/cjs/Message/QuickStarts/QuickStartTile.d.ts +1 -1
  67. package/dist/cjs/Message/QuickStarts/QuickStartTile.js +3 -2
  68. package/dist/cjs/Message/QuickStarts/index.d.ts +2 -0
  69. package/dist/cjs/Message/QuickStarts/index.js +18 -0
  70. package/dist/cjs/Message/TableMessage/TableMessage.d.ts +9 -1
  71. package/dist/cjs/Message/TableMessage/TableMessage.js +3 -2
  72. package/dist/cjs/Message/TextMessage/TextMessage.d.ts +11 -1
  73. package/dist/cjs/Message/TextMessage/TextMessage.js +3 -2
  74. package/dist/cjs/Message/UserFeedback/UserFeedback.d.ts +3 -1
  75. package/dist/cjs/Message/UserFeedback/UserFeedback.js +8 -6
  76. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.d.ts +1 -1
  77. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +3 -2
  78. package/dist/cjs/Message/UserFeedback/index.d.ts +2 -0
  79. package/dist/cjs/Message/UserFeedback/index.js +18 -0
  80. package/dist/cjs/Message/index.d.ts +8 -0
  81. package/dist/cjs/Message/index.js +8 -0
  82. package/dist/cjs/MessageBar/AttachButton.d.ts +2 -0
  83. package/dist/cjs/MessageBar/AttachButton.js +2 -2
  84. package/dist/cjs/MessageBar/AttachButton.test.js +4 -0
  85. package/dist/cjs/MessageBar/MessageBar.d.ts +22 -6
  86. package/dist/cjs/MessageBar/MessageBar.js +43 -11
  87. package/dist/cjs/MessageBar/MessageBar.test.js +74 -0
  88. package/dist/cjs/Onboarding/Onboarding.d.ts +36 -0
  89. package/dist/cjs/Onboarding/Onboarding.js +37 -0
  90. package/dist/cjs/Onboarding/Onboarding.test.d.ts +1 -0
  91. package/dist/cjs/Onboarding/Onboarding.test.js +80 -0
  92. package/dist/cjs/Onboarding/index.d.ts +2 -0
  93. package/dist/cjs/Onboarding/index.js +23 -0
  94. package/dist/cjs/ResponseActions/ResponseActions.d.ts +7 -0
  95. package/dist/cjs/ResponseActions/ResponseActions.js +28 -7
  96. package/dist/cjs/ResponseActions/ResponseActions.test.js +67 -12
  97. package/dist/cjs/ResponseActions/ResponseActionsGroups.d.ts +13 -0
  98. package/dist/cjs/ResponseActions/ResponseActionsGroups.js +22 -0
  99. package/dist/cjs/ResponseActions/ResponseActionsGroups.test.d.ts +1 -0
  100. package/dist/cjs/ResponseActions/ResponseActionsGroups.test.js +25 -0
  101. package/dist/cjs/ResponseActions/index.d.ts +1 -0
  102. package/dist/cjs/ResponseActions/index.js +1 -0
  103. package/dist/cjs/ToolCall/ToolCall.d.ts +11 -0
  104. package/dist/cjs/ToolCall/ToolCall.js +24 -3
  105. package/dist/cjs/ToolCall/ToolCall.test.js +57 -0
  106. package/dist/cjs/ToolResponse/ToolResponse.d.ts +17 -0
  107. package/dist/cjs/ToolResponse/ToolResponse.js +49 -3
  108. package/dist/cjs/ToolResponse/ToolResponse.test.js +100 -0
  109. package/dist/cjs/__mocks__/monaco-editor.d.ts +11 -0
  110. package/dist/cjs/__mocks__/monaco-editor.js +18 -0
  111. package/dist/cjs/index.d.ts +4 -0
  112. package/dist/cjs/index.js +7 -1
  113. package/dist/css/main.css +336 -30
  114. package/dist/css/main.css.map +1 -1
  115. package/dist/dynamic/MarkdownContent/package.json +1 -0
  116. package/dist/dynamic/Onboarding/package.json +1 -0
  117. package/dist/esm/AttachMenu/AttachMenu.d.ts +8 -2
  118. package/dist/esm/AttachMenu/AttachMenu.js +2 -2
  119. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +9 -1
  120. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +10 -3
  121. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +38 -0
  122. package/dist/esm/ChatbotFooter/ChatbotFooter.d.ts +5 -2
  123. package/dist/esm/ChatbotFooter/ChatbotFooter.js +2 -2
  124. package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +5 -1
  125. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +30 -3
  126. package/dist/esm/CodeModal/CodeModal.d.ts +2 -0
  127. package/dist/esm/CodeModal/CodeModal.js +54 -9
  128. package/dist/esm/DeepThinking/DeepThinking.d.ts +13 -0
  129. package/dist/esm/DeepThinking/DeepThinking.js +28 -3
  130. package/dist/esm/DeepThinking/DeepThinking.test.js +80 -0
  131. package/dist/esm/FileDetailsLabel/FileDetailsLabel.d.ts +2 -1
  132. package/dist/esm/MarkdownContent/MarkdownContent.d.ts +44 -0
  133. package/dist/esm/MarkdownContent/MarkdownContent.js +174 -0
  134. package/dist/esm/MarkdownContent/MarkdownContent.test.d.ts +1 -0
  135. package/dist/esm/MarkdownContent/MarkdownContent.test.js +187 -0
  136. package/dist/esm/MarkdownContent/index.d.ts +2 -0
  137. package/dist/esm/MarkdownContent/index.js +2 -0
  138. package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.d.ts +5 -1
  139. package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.js +16 -5
  140. package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.test.d.ts +1 -0
  141. package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.test.js +126 -0
  142. package/dist/esm/Message/ErrorMessage/ErrorMessage.d.ts +15 -1
  143. package/dist/esm/Message/ErrorMessage/ErrorMessage.js +3 -3
  144. package/dist/esm/Message/ErrorMessage/ErrorMessage.test.d.ts +1 -0
  145. package/dist/esm/Message/ErrorMessage/ErrorMessage.test.js +25 -0
  146. package/dist/esm/Message/LinkMessage/LinkMessage.d.ts +5 -1
  147. package/dist/esm/Message/LinkMessage/LinkMessage.js +4 -3
  148. package/dist/esm/Message/ListMessage/OrderedListMessage.d.ts +9 -1
  149. package/dist/esm/Message/ListMessage/OrderedListMessage.js +2 -1
  150. package/dist/esm/Message/ListMessage/UnorderedListMessage.d.ts +7 -1
  151. package/dist/esm/Message/ListMessage/UnorderedListMessage.js +2 -1
  152. package/dist/esm/Message/Message.d.ts +22 -3
  153. package/dist/esm/Message/Message.js +9 -162
  154. package/dist/esm/Message/Message.test.js +161 -2
  155. package/dist/esm/Message/MessageAndActions/MessageAndActions.d.ts +14 -0
  156. package/dist/esm/Message/MessageAndActions/MessageAndActions.js +18 -0
  157. package/dist/esm/Message/MessageAndActions/MessageAndActions.test.d.ts +1 -0
  158. package/dist/esm/Message/MessageAndActions/MessageAndActions.test.js +20 -0
  159. package/dist/esm/Message/MessageAndActions/index.d.ts +1 -0
  160. package/dist/esm/Message/MessageAndActions/index.js +1 -0
  161. package/dist/esm/Message/MessageAttachments/MessageAttachmentItem.d.ts +13 -0
  162. package/dist/esm/Message/MessageAttachments/MessageAttachmentItem.js +18 -0
  163. package/dist/esm/Message/MessageAttachments/MessageAttachmentItem.test.d.ts +1 -0
  164. package/dist/esm/Message/MessageAttachments/MessageAttachmentItem.test.js +20 -0
  165. package/dist/esm/Message/MessageAttachments/MessageAttachmentsContainer.d.ts +13 -0
  166. package/dist/esm/Message/MessageAttachments/MessageAttachmentsContainer.js +18 -0
  167. package/dist/esm/Message/MessageAttachments/MessageAttachmentsContainer.test.d.ts +1 -0
  168. package/dist/esm/Message/MessageAttachments/MessageAttachmentsContainer.test.js +20 -0
  169. package/dist/esm/Message/MessageAttachments/index.d.ts +2 -0
  170. package/dist/esm/Message/MessageAttachments/index.js +2 -0
  171. package/dist/esm/Message/MessageInput.d.ts +1 -1
  172. package/dist/esm/Message/MessageInput.js +1 -1
  173. package/dist/esm/Message/MessageLoading.d.ts +13 -3
  174. package/dist/esm/Message/MessageLoading.js +16 -4
  175. package/dist/esm/Message/MessageLoading.test.d.ts +1 -0
  176. package/dist/esm/Message/MessageLoading.test.js +20 -0
  177. package/dist/esm/Message/QuickResponse/QuickResponse.js +3 -2
  178. package/dist/esm/Message/QuickResponse/QuickResponse.test.d.ts +1 -0
  179. package/dist/esm/Message/QuickResponse/QuickResponse.test.js +104 -0
  180. package/dist/esm/Message/QuickResponse/index.d.ts +1 -0
  181. package/dist/esm/Message/QuickResponse/index.js +1 -0
  182. package/dist/esm/Message/QuickStarts/QuickStartTile.d.ts +1 -1
  183. package/dist/esm/Message/QuickStarts/QuickStartTile.js +1 -1
  184. package/dist/esm/Message/QuickStarts/index.d.ts +2 -0
  185. package/dist/esm/Message/QuickStarts/index.js +2 -0
  186. package/dist/esm/Message/TableMessage/TableMessage.d.ts +9 -1
  187. package/dist/esm/Message/TableMessage/TableMessage.js +3 -2
  188. package/dist/esm/Message/TextMessage/TextMessage.d.ts +11 -1
  189. package/dist/esm/Message/TextMessage/TextMessage.js +3 -2
  190. package/dist/esm/Message/UserFeedback/UserFeedback.d.ts +3 -1
  191. package/dist/esm/Message/UserFeedback/UserFeedback.js +7 -7
  192. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.d.ts +1 -1
  193. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +1 -2
  194. package/dist/esm/Message/UserFeedback/index.d.ts +2 -0
  195. package/dist/esm/Message/UserFeedback/index.js +2 -0
  196. package/dist/esm/Message/index.d.ts +8 -0
  197. package/dist/esm/Message/index.js +8 -0
  198. package/dist/esm/MessageBar/AttachButton.d.ts +2 -0
  199. package/dist/esm/MessageBar/AttachButton.js +2 -2
  200. package/dist/esm/MessageBar/AttachButton.test.js +4 -0
  201. package/dist/esm/MessageBar/MessageBar.d.ts +22 -6
  202. package/dist/esm/MessageBar/MessageBar.js +43 -11
  203. package/dist/esm/MessageBar/MessageBar.test.js +74 -0
  204. package/dist/esm/Onboarding/Onboarding.d.ts +36 -0
  205. package/dist/esm/Onboarding/Onboarding.js +30 -0
  206. package/dist/esm/Onboarding/Onboarding.test.d.ts +1 -0
  207. package/dist/esm/Onboarding/Onboarding.test.js +75 -0
  208. package/dist/esm/Onboarding/index.d.ts +2 -0
  209. package/dist/esm/Onboarding/index.js +2 -0
  210. package/dist/esm/ResponseActions/ResponseActions.d.ts +7 -0
  211. package/dist/esm/ResponseActions/ResponseActions.js +28 -7
  212. package/dist/esm/ResponseActions/ResponseActions.test.js +67 -12
  213. package/dist/esm/ResponseActions/ResponseActionsGroups.d.ts +13 -0
  214. package/dist/esm/ResponseActions/ResponseActionsGroups.js +18 -0
  215. package/dist/esm/ResponseActions/ResponseActionsGroups.test.d.ts +1 -0
  216. package/dist/esm/ResponseActions/ResponseActionsGroups.test.js +20 -0
  217. package/dist/esm/ResponseActions/index.d.ts +1 -0
  218. package/dist/esm/ResponseActions/index.js +1 -0
  219. package/dist/esm/ToolCall/ToolCall.d.ts +11 -0
  220. package/dist/esm/ToolCall/ToolCall.js +21 -3
  221. package/dist/esm/ToolCall/ToolCall.test.js +57 -0
  222. package/dist/esm/ToolResponse/ToolResponse.d.ts +17 -0
  223. package/dist/esm/ToolResponse/ToolResponse.js +46 -3
  224. package/dist/esm/ToolResponse/ToolResponse.test.js +100 -0
  225. package/dist/esm/__mocks__/monaco-editor.d.ts +11 -0
  226. package/dist/esm/__mocks__/monaco-editor.js +18 -0
  227. package/dist/esm/index.d.ts +4 -0
  228. package/dist/esm/index.js +4 -0
  229. package/dist/tsconfig.tsbuildinfo +1 -1
  230. package/package.json +13 -2
  231. package/patternfly-docs/content/extensions/chatbot/chatbot.md +57 -0
  232. package/patternfly-docs/content/extensions/chatbot/design-guidelines.md +12 -12
  233. package/patternfly-docs/content/extensions/chatbot/examples/Analytics/Analytics.md +1 -1
  234. package/patternfly-docs/content/extensions/chatbot/examples/Customizing Messages/Customizing Messages.md +1 -1
  235. package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +1 -0
  236. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithCustomStructure.tsx +102 -0
  237. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithDeepThinking.tsx +25 -11
  238. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +14 -1
  239. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithMarkdownDeepThinking.tsx +26 -0
  240. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithMarkdownToolCall.tsx +29 -0
  241. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithMarkdownToolResponse.tsx +200 -0
  242. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithMultipleActionGroups.tsx +61 -0
  243. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithPersistedActions.tsx +22 -0
  244. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +11 -0
  245. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithToolCall.tsx +14 -1
  246. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithToolResponse.tsx +222 -105
  247. package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +123 -14
  248. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +1 -0
  249. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessageWithExtraContent.tsx +3 -1
  250. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithSearchActions.tsx +198 -0
  251. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarCustomActions.tsx +190 -0
  252. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarIndicatorThinking.tsx +15 -0
  253. package/patternfly-docs/content/extensions/chatbot/examples/UI/CompactOnboarding.tsx +141 -0
  254. package/patternfly-docs/content/extensions/chatbot/examples/UI/Onboarding.tsx +151 -0
  255. package/patternfly-docs/content/extensions/chatbot/examples/UI/RH-Hat-Image.svg +9 -0
  256. package/patternfly-docs/content/extensions/chatbot/examples/UI/Settings.tsx +1 -1
  257. package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +81 -30
  258. package/patternfly-docs/content/extensions/chatbot/examples/demos/AttachmentDemos.md +18 -18
  259. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +44 -22
  260. package/patternfly-docs/content/extensions/chatbot/examples/demos/WhiteEmbeddedChatbot.tsx +451 -0
  261. package/patternfly-docs/patternfly-docs.config.js +1 -1
  262. package/patternfly-docs/patternfly-docs.source.js +1 -1
  263. package/src/AttachMenu/AttachMenu.tsx +26 -11
  264. package/src/Chatbot/Chatbot.scss +23 -1
  265. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +43 -0
  266. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +95 -0
  267. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +51 -15
  268. package/src/ChatbotFooter/ChatbotFooter.scss +21 -0
  269. package/src/ChatbotFooter/ChatbotFooter.test.tsx +10 -1
  270. package/src/ChatbotFooter/ChatbotFooter.tsx +10 -3
  271. package/src/ChatbotHeader/ChatbotHeader.scss +19 -0
  272. package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +56 -14
  273. package/src/ChatbotModal/ChatbotModal.scss +3 -0
  274. package/src/CodeModal/CodeModal.tsx +72 -23
  275. package/src/DeepThinking/DeepThinking.scss +1 -1
  276. package/src/DeepThinking/DeepThinking.test.tsx +109 -0
  277. package/src/DeepThinking/DeepThinking.tsx +54 -5
  278. package/src/FileDetailsLabel/FileDetailsLabel.tsx +2 -2
  279. package/src/MarkdownContent/MarkdownContent.test.tsx +207 -0
  280. package/src/MarkdownContent/MarkdownContent.tsx +269 -0
  281. package/src/MarkdownContent/index.ts +2 -0
  282. package/src/Message/CodeBlockMessage/CodeBlockMessage.scss +17 -0
  283. package/src/Message/CodeBlockMessage/CodeBlockMessage.test.tsx +171 -0
  284. package/src/Message/CodeBlockMessage/CodeBlockMessage.tsx +21 -5
  285. package/src/Message/ErrorMessage/ErrorMessage.test.tsx +38 -0
  286. package/src/Message/ErrorMessage/ErrorMessage.tsx +17 -2
  287. package/src/Message/LinkMessage/LinkMessage.scss +5 -0
  288. package/src/Message/LinkMessage/LinkMessage.tsx +24 -2
  289. package/src/Message/ListMessage/ListMessage.scss +8 -0
  290. package/src/Message/ListMessage/OrderedListMessage.tsx +16 -2
  291. package/src/Message/ListMessage/UnorderedListMessage.tsx +12 -2
  292. package/src/Message/Message.scss +11 -7
  293. package/src/Message/Message.test.tsx +239 -2
  294. package/src/Message/Message.tsx +133 -241
  295. package/src/Message/MessageAndActions/MessageAndActions.test.tsx +23 -0
  296. package/src/Message/MessageAndActions/MessageAndActions.tsx +22 -0
  297. package/src/Message/MessageAndActions/index.ts +1 -0
  298. package/src/Message/MessageAttachments/MessageAttachmentItem.test.tsx +23 -0
  299. package/src/Message/MessageAttachments/MessageAttachmentItem.tsx +25 -0
  300. package/src/Message/MessageAttachments/MessageAttachmentsContainer.test.tsx +23 -0
  301. package/src/Message/MessageAttachments/MessageAttachmentsContainer.tsx +25 -0
  302. package/src/Message/MessageAttachments/index.ts +2 -0
  303. package/src/Message/MessageInput.tsx +1 -1
  304. package/src/Message/MessageLoading.scss +7 -0
  305. package/src/Message/MessageLoading.test.tsx +23 -0
  306. package/src/Message/MessageLoading.tsx +17 -2
  307. package/src/Message/QuickResponse/QuickResponse.scss +3 -1
  308. package/src/Message/QuickResponse/QuickResponse.test.tsx +131 -0
  309. package/src/Message/QuickResponse/QuickResponse.tsx +3 -2
  310. package/src/Message/QuickResponse/index.ts +1 -0
  311. package/src/Message/QuickStarts/QuickStartTile.tsx +1 -1
  312. package/src/Message/QuickStarts/index.ts +2 -0
  313. package/src/Message/TableMessage/TableMessage.scss +17 -1
  314. package/src/Message/TableMessage/TableMessage.tsx +22 -2
  315. package/src/Message/TextMessage/TextMessage.scss +18 -0
  316. package/src/Message/TextMessage/TextMessage.tsx +39 -3
  317. package/src/Message/UserFeedback/UserFeedback.scss +30 -2
  318. package/src/Message/UserFeedback/UserFeedback.tsx +23 -13
  319. package/src/Message/UserFeedback/UserFeedbackComplete.tsx +1 -4
  320. package/src/Message/UserFeedback/index.ts +2 -0
  321. package/src/Message/index.ts +8 -0
  322. package/src/MessageBar/AttachButton.scss +0 -1
  323. package/src/MessageBar/AttachButton.test.tsx +4 -0
  324. package/src/MessageBar/AttachButton.tsx +4 -1
  325. package/src/MessageBar/MessageBar.scss +66 -6
  326. package/src/MessageBar/MessageBar.test.tsx +129 -1
  327. package/src/MessageBar/MessageBar.tsx +150 -56
  328. package/src/MessageBar/MicrophoneButton.scss +0 -1
  329. package/src/MessageBar/SendButton.scss +0 -1
  330. package/src/MessageBar/StopButton.scss +0 -1
  331. package/src/Onboarding/Onboarding.scss +101 -0
  332. package/src/Onboarding/Onboarding.test.tsx +148 -0
  333. package/src/Onboarding/Onboarding.tsx +126 -0
  334. package/src/Onboarding/index.ts +3 -0
  335. package/src/ResponseActions/ResponseActions.scss +12 -1
  336. package/src/ResponseActions/ResponseActions.test.tsx +111 -12
  337. package/src/ResponseActions/ResponseActions.tsx +44 -10
  338. package/src/ResponseActions/ResponseActionsGroups.test.tsx +23 -0
  339. package/src/ResponseActions/ResponseActionsGroups.tsx +28 -0
  340. package/src/ResponseActions/index.ts +1 -0
  341. package/src/ToolCall/ToolCall.scss +1 -1
  342. package/src/ToolCall/ToolCall.test.tsx +91 -0
  343. package/src/ToolCall/ToolCall.tsx +49 -4
  344. package/src/ToolResponse/ToolResponse.scss +13 -3
  345. package/src/ToolResponse/ToolResponse.test.tsx +119 -0
  346. package/src/ToolResponse/ToolResponse.tsx +82 -7
  347. package/src/__mocks__/monaco-editor.ts +19 -0
  348. package/src/index.ts +6 -0
  349. package/src/main.scss +2 -0
  350. package/tsconfig.json +1 -1
  351. package/patternfly-docs/content/extensions/chatbot/about-chatbot.md +0 -44
@@ -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 = <>Do not share any personal or other sensitive information in your feedback.</>;
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
+ );
@@ -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
+ );
@@ -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
+ );
@@ -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
  );
@@ -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
  );