@patternfly/chatbot 2.2.0-prerelease.4 → 2.2.0-prerelease.41

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 (545) hide show
  1. package/dist/cjs/AttachmentEdit/AttachmentEdit.test.d.ts +1 -0
  2. package/dist/cjs/AttachmentEdit/AttachmentEdit.test.js +52 -0
  3. package/dist/cjs/Chatbot/Chatbot.d.ts +2 -1
  4. package/dist/cjs/Chatbot/Chatbot.js +1 -0
  5. package/dist/cjs/Chatbot/Chatbot.test.d.ts +1 -0
  6. package/dist/cjs/Chatbot/Chatbot.test.js +28 -0
  7. package/dist/cjs/ChatbotAlert/ChatbotAlert.test.d.ts +1 -0
  8. package/dist/cjs/ChatbotAlert/ChatbotAlert.test.js +27 -0
  9. package/dist/cjs/ChatbotContent/ChatbotContent.test.d.ts +1 -0
  10. package/dist/cjs/ChatbotContent/ChatbotContent.test.js +18 -0
  11. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +3 -3
  12. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +3 -1
  13. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +27 -4
  14. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +24 -12
  15. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +99 -3
  16. package/dist/cjs/ChatbotConversationHistoryNav/EmptyState.d.ts +11 -0
  17. package/dist/cjs/ChatbotConversationHistoryNav/EmptyState.js +29 -0
  18. package/dist/cjs/ChatbotConversationHistoryNav/LoadingState.d.ts +4 -0
  19. package/dist/cjs/ChatbotConversationHistoryNav/LoadingState.js +45 -0
  20. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.d.ts +1 -0
  21. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.js +18 -0
  22. package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.d.ts +1 -0
  23. package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.js +87 -0
  24. package/dist/cjs/ChatbotFooter/ChatbotFootnote.d.ts +1 -1
  25. package/dist/cjs/ChatbotFooter/ChatbotFootnote.js +1 -1
  26. package/dist/cjs/ChatbotHeader/ChatbotHeader.test.d.ts +1 -0
  27. package/dist/cjs/ChatbotHeader/ChatbotHeader.test.js +18 -0
  28. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.d.ts +1 -0
  29. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.js +18 -0
  30. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +17 -0
  31. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.js +16 -0
  32. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -0
  33. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.js +20 -0
  34. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.d.ts +1 -0
  35. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.js +18 -0
  36. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.d.ts +2 -0
  37. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +4 -2
  38. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -0
  39. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.js +20 -0
  40. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -1
  41. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -0
  42. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +43 -0
  43. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +6 -4
  44. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -0
  45. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +41 -0
  46. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.d.ts +3 -1
  47. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.js +4 -2
  48. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +1 -0
  49. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.js +55 -0
  50. package/dist/cjs/ChatbotHeader/index.d.ts +1 -0
  51. package/dist/cjs/ChatbotHeader/index.js +1 -0
  52. package/dist/cjs/ChatbotToggle/ChatbotToggle.js +3 -1
  53. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +19 -11
  54. package/dist/cjs/CodeModal/CodeModal.js +2 -12
  55. package/dist/cjs/Compare/Compare.d.ts +17 -0
  56. package/dist/cjs/Compare/Compare.js +50 -0
  57. package/dist/cjs/Compare/Compare.test.d.ts +1 -0
  58. package/dist/cjs/Compare/Compare.test.js +20 -0
  59. package/dist/cjs/Compare/index.d.ts +2 -0
  60. package/dist/cjs/Compare/index.js +23 -0
  61. package/dist/cjs/Message/ErrorMessage/ErrorMessage.d.ts +4 -0
  62. package/dist/cjs/Message/ErrorMessage/ErrorMessage.js +26 -0
  63. package/dist/cjs/Message/ImageMessage/ImageMessage.d.ts +4 -0
  64. package/dist/cjs/Message/ImageMessage/ImageMessage.js +25 -0
  65. package/dist/cjs/Message/LinkMessage/LinkMessage.d.ts +4 -0
  66. package/dist/cjs/Message/LinkMessage/LinkMessage.js +30 -0
  67. package/dist/cjs/Message/ListMessage/OrderedListMessage.d.ts +1 -1
  68. package/dist/cjs/Message/ListMessage/OrderedListMessage.js +2 -2
  69. package/dist/cjs/Message/Message.d.ts +51 -8
  70. package/dist/cjs/Message/Message.js +70 -18
  71. package/dist/cjs/Message/Message.test.js +296 -3
  72. package/dist/cjs/Message/QuickResponse/QuickResponse.d.ts +17 -0
  73. package/dist/cjs/Message/QuickResponse/QuickResponse.js +34 -0
  74. package/dist/cjs/Message/QuickStarts/FallbackImg.d.ts +13 -0
  75. package/dist/cjs/Message/QuickStarts/FallbackImg.js +34 -0
  76. package/dist/cjs/Message/QuickStarts/QuickStartTile.d.ts +27 -0
  77. package/dist/cjs/Message/QuickStarts/QuickStartTile.js +82 -0
  78. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.d.ts +23 -0
  79. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.js +64 -0
  80. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.d.ts +1 -0
  81. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.js +76 -0
  82. package/dist/cjs/Message/QuickStarts/QuickStartTileHeader.d.ts +11 -0
  83. package/dist/cjs/Message/QuickStarts/QuickStartTileHeader.js +30 -0
  84. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.d.ts +30 -0
  85. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.js +77 -0
  86. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart.d.ts +30 -0
  87. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart.js +77 -0
  88. package/dist/cjs/Message/QuickStarts/types.d.ts +132 -0
  89. package/dist/cjs/Message/QuickStarts/types.js +17 -0
  90. package/dist/cjs/Message/TableMessage/TableMessage.d.ts +20 -0
  91. package/dist/cjs/Message/TableMessage/TableMessage.js +67 -0
  92. package/dist/cjs/Message/TableMessage/TbodyMessage.d.ts +7 -0
  93. package/dist/cjs/Message/TableMessage/TbodyMessage.js +33 -0
  94. package/dist/cjs/Message/TableMessage/TdMessage.d.ts +5 -0
  95. package/dist/cjs/Message/TableMessage/TdMessage.js +26 -0
  96. package/dist/cjs/Message/TableMessage/ThMessage.d.ts +5 -0
  97. package/dist/cjs/Message/TableMessage/ThMessage.js +26 -0
  98. package/dist/cjs/Message/TableMessage/TheadMessage.d.ts +5 -0
  99. package/dist/cjs/Message/TableMessage/TheadMessage.js +26 -0
  100. package/dist/cjs/Message/TableMessage/TrMessage.d.ts +7 -0
  101. package/dist/cjs/Message/TableMessage/TrMessage.js +37 -0
  102. package/dist/cjs/Message/TextMessage/TextMessage.d.ts +2 -1
  103. package/dist/cjs/Message/TextMessage/TextMessage.js +2 -2
  104. package/dist/cjs/Message/UserFeedback/CloseButton.d.ts +10 -0
  105. package/dist/cjs/Message/UserFeedback/CloseButton.js +14 -0
  106. package/dist/cjs/Message/UserFeedback/UserFeedback.d.ts +39 -0
  107. package/dist/cjs/Message/UserFeedback/UserFeedback.js +54 -0
  108. package/dist/cjs/Message/UserFeedback/UserFeedback.test.d.ts +1 -0
  109. package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +133 -0
  110. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.d.ts +42 -0
  111. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +117 -0
  112. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.d.ts +1 -0
  113. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +249 -0
  114. package/dist/cjs/MessageBar/AttachButton.js +4 -2
  115. package/dist/cjs/MessageBar/MessageBar.d.ts +11 -4
  116. package/dist/cjs/MessageBar/MessageBar.js +127 -46
  117. package/dist/cjs/MessageBar/MessageBar.test.js +12 -4
  118. package/dist/cjs/MessageBar/MicrophoneButton.d.ts +1 -1
  119. package/dist/cjs/MessageBar/SendButton.js +3 -1
  120. package/dist/cjs/MessageBar/StopButton.js +3 -1
  121. package/dist/cjs/MessageBox/MessageBox.test.d.ts +1 -0
  122. package/dist/cjs/MessageBox/MessageBox.test.js +22 -0
  123. package/dist/cjs/PreviewAttachment/PreviewAttachment.test.d.ts +1 -0
  124. package/dist/cjs/PreviewAttachment/PreviewAttachment.test.js +28 -0
  125. package/dist/cjs/ResponseActions/ResponseActionButton.d.ts +10 -1
  126. package/dist/cjs/ResponseActions/ResponseActionButton.js +28 -5
  127. package/dist/cjs/ResponseActions/ResponseActionButton.test.d.ts +1 -0
  128. package/dist/cjs/ResponseActions/ResponseActionButton.test.js +54 -0
  129. package/dist/cjs/ResponseActions/ResponseActions.d.ts +12 -2
  130. package/dist/cjs/ResponseActions/ResponseActions.js +26 -9
  131. package/dist/cjs/ResponseActions/ResponseActions.test.js +79 -5
  132. package/dist/cjs/Settings/SettingsForm.d.ts +13 -0
  133. package/dist/cjs/Settings/SettingsForm.js +27 -0
  134. package/dist/cjs/Settings/SettingsForm.test.d.ts +1 -0
  135. package/dist/cjs/Settings/SettingsForm.test.js +26 -0
  136. package/dist/cjs/Settings/index.d.ts +2 -0
  137. package/dist/cjs/Settings/index.js +23 -0
  138. package/dist/cjs/SourcesCard/SourcesCard.d.ts +1 -0
  139. package/dist/cjs/SourcesCard/SourcesCard.js +2 -1
  140. package/dist/cjs/SourcesCard/SourcesCard.test.js +0 -4
  141. package/dist/cjs/__mocks__/rehype-external-links.d.ts +2 -0
  142. package/dist/cjs/__mocks__/rehype-external-links.js +4 -0
  143. package/dist/cjs/__mocks__/rehype-sanitize.d.ts +2 -0
  144. package/dist/cjs/__mocks__/rehype-sanitize.js +4 -0
  145. package/dist/cjs/__mocks__/rehype-unwrap-images.d.ts +2 -0
  146. package/dist/cjs/__mocks__/rehype-unwrap-images.js +4 -0
  147. package/dist/cjs/index.d.ts +6 -0
  148. package/dist/cjs/index.js +10 -1
  149. package/dist/cjs/tracking/console_tracking_provider.d.ts +10 -0
  150. package/dist/cjs/tracking/console_tracking_provider.js +27 -0
  151. package/dist/cjs/tracking/index.d.ts +2 -0
  152. package/dist/cjs/tracking/index.js +23 -0
  153. package/dist/cjs/tracking/posthog_tracking_provider.d.ts +9 -0
  154. package/dist/cjs/tracking/posthog_tracking_provider.js +37 -0
  155. package/dist/cjs/tracking/segment_tracking_provider.d.ts +10 -0
  156. package/dist/cjs/tracking/segment_tracking_provider.js +50 -0
  157. package/dist/cjs/tracking/trackingProviderProxy.d.ts +9 -0
  158. package/dist/cjs/tracking/trackingProviderProxy.js +24 -0
  159. package/dist/cjs/tracking/tracking_api.d.ts +8 -0
  160. package/dist/cjs/tracking/tracking_api.js +2 -0
  161. package/dist/cjs/tracking/tracking_registry.d.ts +4 -0
  162. package/dist/cjs/tracking/tracking_registry.js +33 -0
  163. package/dist/cjs/tracking/tracking_spi.d.ts +9 -0
  164. package/dist/cjs/tracking/tracking_spi.js +2 -0
  165. package/dist/cjs/tracking/umami_tracking_provider.d.ts +14 -0
  166. package/dist/cjs/tracking/umami_tracking_provider.js +44 -0
  167. package/dist/css/main.css +486 -145
  168. package/dist/css/main.css.map +1 -1
  169. package/dist/dynamic/Compare/package.json +1 -0
  170. package/dist/dynamic/Settings/package.json +1 -0
  171. package/dist/dynamic/tracking/package.json +1 -0
  172. package/dist/esm/AttachmentEdit/AttachmentEdit.test.d.ts +1 -0
  173. package/dist/esm/AttachmentEdit/AttachmentEdit.test.js +47 -0
  174. package/dist/esm/Chatbot/Chatbot.d.ts +2 -1
  175. package/dist/esm/Chatbot/Chatbot.js +1 -0
  176. package/dist/esm/Chatbot/Chatbot.test.d.ts +1 -0
  177. package/dist/esm/Chatbot/Chatbot.test.js +23 -0
  178. package/dist/esm/ChatbotAlert/ChatbotAlert.test.d.ts +1 -0
  179. package/dist/esm/ChatbotAlert/ChatbotAlert.test.js +22 -0
  180. package/dist/esm/ChatbotContent/ChatbotContent.test.d.ts +1 -0
  181. package/dist/esm/ChatbotContent/ChatbotContent.test.js +13 -0
  182. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +3 -3
  183. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +3 -1
  184. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +27 -4
  185. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +24 -12
  186. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +99 -3
  187. package/dist/esm/ChatbotConversationHistoryNav/EmptyState.d.ts +11 -0
  188. package/dist/esm/ChatbotConversationHistoryNav/EmptyState.js +22 -0
  189. package/dist/esm/ChatbotConversationHistoryNav/LoadingState.d.ts +4 -0
  190. package/dist/esm/ChatbotConversationHistoryNav/LoadingState.js +38 -0
  191. package/dist/esm/ChatbotFooter/ChatbotFooter.test.d.ts +1 -0
  192. package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +13 -0
  193. package/dist/esm/ChatbotFooter/ChatbotFooternote.test.d.ts +1 -0
  194. package/dist/esm/ChatbotFooter/ChatbotFooternote.test.js +82 -0
  195. package/dist/esm/ChatbotFooter/ChatbotFootnote.d.ts +1 -1
  196. package/dist/esm/ChatbotFooter/ChatbotFootnote.js +1 -1
  197. package/dist/esm/ChatbotHeader/ChatbotHeader.test.d.ts +1 -0
  198. package/dist/esm/ChatbotHeader/ChatbotHeader.test.js +13 -0
  199. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.d.ts +1 -0
  200. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.js +13 -0
  201. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +17 -0
  202. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.js +10 -0
  203. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -0
  204. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.js +15 -0
  205. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.d.ts +1 -0
  206. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.js +13 -0
  207. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.d.ts +2 -0
  208. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +4 -2
  209. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -0
  210. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +15 -0
  211. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -1
  212. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -0
  213. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +38 -0
  214. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +6 -4
  215. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -0
  216. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +36 -0
  217. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.d.ts +3 -1
  218. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.js +4 -2
  219. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +1 -0
  220. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.js +50 -0
  221. package/dist/esm/ChatbotHeader/index.d.ts +1 -0
  222. package/dist/esm/ChatbotHeader/index.js +1 -0
  223. package/dist/esm/ChatbotToggle/ChatbotToggle.js +3 -1
  224. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +19 -11
  225. package/dist/esm/CodeModal/CodeModal.js +2 -12
  226. package/dist/esm/Compare/Compare.d.ts +17 -0
  227. package/dist/esm/Compare/Compare.js +43 -0
  228. package/dist/esm/Compare/Compare.test.d.ts +1 -0
  229. package/dist/esm/Compare/Compare.test.js +15 -0
  230. package/dist/esm/Compare/index.d.ts +2 -0
  231. package/dist/esm/Compare/index.js +2 -0
  232. package/dist/esm/Message/ErrorMessage/ErrorMessage.d.ts +4 -0
  233. package/dist/esm/Message/ErrorMessage/ErrorMessage.js +21 -0
  234. package/dist/esm/Message/ImageMessage/ImageMessage.d.ts +4 -0
  235. package/dist/esm/Message/ImageMessage/ImageMessage.js +20 -0
  236. package/dist/esm/Message/LinkMessage/LinkMessage.d.ts +4 -0
  237. package/dist/esm/Message/LinkMessage/LinkMessage.js +25 -0
  238. package/dist/esm/Message/ListMessage/OrderedListMessage.d.ts +1 -1
  239. package/dist/esm/Message/ListMessage/OrderedListMessage.js +2 -2
  240. package/dist/esm/Message/Message.d.ts +51 -8
  241. package/dist/esm/Message/Message.js +68 -16
  242. package/dist/esm/Message/Message.test.js +296 -3
  243. package/dist/esm/Message/QuickResponse/QuickResponse.d.ts +17 -0
  244. package/dist/esm/Message/QuickResponse/QuickResponse.js +27 -0
  245. package/dist/esm/Message/QuickStarts/FallbackImg.d.ts +13 -0
  246. package/dist/esm/Message/QuickStarts/FallbackImg.js +9 -0
  247. package/dist/esm/Message/QuickStarts/QuickStartTile.d.ts +27 -0
  248. package/dist/esm/Message/QuickStarts/QuickStartTile.js +52 -0
  249. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.d.ts +23 -0
  250. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.js +35 -0
  251. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.d.ts +1 -0
  252. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.js +48 -0
  253. package/dist/esm/Message/QuickStarts/QuickStartTileHeader.d.ts +11 -0
  254. package/dist/esm/Message/QuickStarts/QuickStartTileHeader.js +5 -0
  255. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.d.ts +30 -0
  256. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.js +74 -0
  257. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart.d.ts +30 -0
  258. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart.js +74 -0
  259. package/dist/esm/Message/QuickStarts/types.d.ts +132 -0
  260. package/dist/esm/Message/QuickStarts/types.js +14 -0
  261. package/dist/esm/Message/TableMessage/TableMessage.d.ts +20 -0
  262. package/dist/esm/Message/TableMessage/TableMessage.js +62 -0
  263. package/dist/esm/Message/TableMessage/TbodyMessage.d.ts +7 -0
  264. package/dist/esm/Message/TableMessage/TbodyMessage.js +28 -0
  265. package/dist/esm/Message/TableMessage/TdMessage.d.ts +5 -0
  266. package/dist/esm/Message/TableMessage/TdMessage.js +21 -0
  267. package/dist/esm/Message/TableMessage/ThMessage.d.ts +5 -0
  268. package/dist/esm/Message/TableMessage/ThMessage.js +21 -0
  269. package/dist/esm/Message/TableMessage/TheadMessage.d.ts +5 -0
  270. package/dist/esm/Message/TableMessage/TheadMessage.js +21 -0
  271. package/dist/esm/Message/TableMessage/TrMessage.d.ts +7 -0
  272. package/dist/esm/Message/TableMessage/TrMessage.js +32 -0
  273. package/dist/esm/Message/TextMessage/TextMessage.d.ts +2 -1
  274. package/dist/esm/Message/TextMessage/TextMessage.js +3 -3
  275. package/dist/esm/Message/UserFeedback/CloseButton.d.ts +10 -0
  276. package/dist/esm/Message/UserFeedback/CloseButton.js +9 -0
  277. package/dist/esm/Message/UserFeedback/UserFeedback.d.ts +39 -0
  278. package/dist/esm/Message/UserFeedback/UserFeedback.js +49 -0
  279. package/dist/esm/Message/UserFeedback/UserFeedback.test.d.ts +1 -0
  280. package/dist/esm/Message/UserFeedback/UserFeedback.test.js +128 -0
  281. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.d.ts +42 -0
  282. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +112 -0
  283. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.d.ts +1 -0
  284. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +244 -0
  285. package/dist/esm/MessageBar/AttachButton.js +4 -2
  286. package/dist/esm/MessageBar/MessageBar.d.ts +11 -4
  287. package/dist/esm/MessageBar/MessageBar.js +127 -46
  288. package/dist/esm/MessageBar/MessageBar.test.js +12 -4
  289. package/dist/esm/MessageBar/MicrophoneButton.d.ts +1 -1
  290. package/dist/esm/MessageBar/SendButton.js +3 -1
  291. package/dist/esm/MessageBar/StopButton.js +3 -1
  292. package/dist/esm/MessageBox/MessageBox.test.d.ts +1 -0
  293. package/dist/esm/MessageBox/MessageBox.test.js +17 -0
  294. package/dist/esm/PreviewAttachment/PreviewAttachment.test.d.ts +1 -0
  295. package/dist/esm/PreviewAttachment/PreviewAttachment.test.js +23 -0
  296. package/dist/esm/ResponseActions/ResponseActionButton.d.ts +10 -1
  297. package/dist/esm/ResponseActions/ResponseActionButton.js +25 -2
  298. package/dist/esm/ResponseActions/ResponseActionButton.test.d.ts +1 -0
  299. package/dist/esm/ResponseActions/ResponseActionButton.test.js +49 -0
  300. package/dist/esm/ResponseActions/ResponseActions.d.ts +12 -2
  301. package/dist/esm/ResponseActions/ResponseActions.js +26 -9
  302. package/dist/esm/ResponseActions/ResponseActions.test.js +79 -5
  303. package/dist/esm/Settings/SettingsForm.d.ts +13 -0
  304. package/dist/esm/Settings/SettingsForm.js +20 -0
  305. package/dist/esm/Settings/SettingsForm.test.d.ts +1 -0
  306. package/dist/esm/Settings/SettingsForm.test.js +21 -0
  307. package/dist/esm/Settings/index.d.ts +2 -0
  308. package/dist/esm/Settings/index.js +2 -0
  309. package/dist/esm/SourcesCard/SourcesCard.d.ts +1 -0
  310. package/dist/esm/SourcesCard/SourcesCard.js +2 -1
  311. package/dist/esm/SourcesCard/SourcesCard.test.js +0 -4
  312. package/dist/esm/__mocks__/rehype-external-links.d.ts +2 -0
  313. package/dist/esm/__mocks__/rehype-external-links.js +2 -0
  314. package/dist/esm/__mocks__/rehype-sanitize.d.ts +2 -0
  315. package/dist/esm/__mocks__/rehype-sanitize.js +2 -0
  316. package/dist/esm/__mocks__/rehype-unwrap-images.d.ts +2 -0
  317. package/dist/esm/__mocks__/rehype-unwrap-images.js +2 -0
  318. package/dist/esm/index.d.ts +6 -0
  319. package/dist/esm/index.js +6 -0
  320. package/dist/esm/tracking/console_tracking_provider.d.ts +10 -0
  321. package/dist/esm/tracking/console_tracking_provider.js +23 -0
  322. package/dist/esm/tracking/index.d.ts +2 -0
  323. package/dist/esm/tracking/index.js +2 -0
  324. package/dist/esm/tracking/posthog_tracking_provider.d.ts +9 -0
  325. package/dist/esm/tracking/posthog_tracking_provider.js +33 -0
  326. package/dist/esm/tracking/segment_tracking_provider.d.ts +10 -0
  327. package/dist/esm/tracking/segment_tracking_provider.js +46 -0
  328. package/dist/esm/tracking/trackingProviderProxy.d.ts +9 -0
  329. package/dist/esm/tracking/trackingProviderProxy.js +22 -0
  330. package/dist/esm/tracking/tracking_api.d.ts +8 -0
  331. package/dist/esm/tracking/tracking_api.js +1 -0
  332. package/dist/esm/tracking/tracking_registry.d.ts +4 -0
  333. package/dist/esm/tracking/tracking_registry.js +26 -0
  334. package/dist/esm/tracking/tracking_spi.d.ts +9 -0
  335. package/dist/esm/tracking/tracking_spi.js +1 -0
  336. package/dist/esm/tracking/umami_tracking_provider.d.ts +14 -0
  337. package/dist/esm/tracking/umami_tracking_provider.js +40 -0
  338. package/dist/tsconfig.tsbuildinfo +1 -1
  339. package/package.json +12 -13
  340. package/patternfly-docs/content/extensions/chatbot/about-chatbot.md +8 -2
  341. package/patternfly-docs/content/extensions/chatbot/design-guidelines.md +192 -15
  342. package/patternfly-docs/content/extensions/chatbot/examples/Analytics/Analytics.md +219 -0
  343. package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentError.tsx +2 -2
  344. package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +214 -12
  345. package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDropZone.tsx +2 -1
  346. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithAttachment.tsx +2 -2
  347. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithCustomResponseActions.tsx +5 -1
  348. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +71 -0
  349. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedbackTimeout.tsx +27 -0
  350. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +11 -1
  351. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickStart.tsx +31 -0
  352. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithResponseActions.tsx +1 -1
  353. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithSources.tsx +18 -10
  354. package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +76 -11
  355. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +244 -14
  356. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessageWithExtraContent.tsx +54 -0
  357. package/patternfly-docs/content/extensions/chatbot/examples/Messages/explore-pipeline-quickstart.ts +65 -0
  358. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFooter.tsx +1 -1
  359. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFootnote.tsx +5 -5
  360. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderBasic.tsx +1 -1
  361. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +36 -3
  362. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerNavigation.tsx +67 -0
  363. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerResizable.tsx +94 -0
  364. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarAttach.tsx +1 -1
  365. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomeInteraction.tsx +1 -1
  366. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomePrompt.tsx +7 -7
  367. package/patternfly-docs/content/extensions/chatbot/examples/UI/Settings.tsx +289 -0
  368. package/patternfly-docs/content/extensions/chatbot/examples/UI/SquareChatbotToggle.tsx +1 -1
  369. package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +35 -6
  370. package/patternfly-docs/content/extensions/chatbot/examples/demos/AttachmentDemos.md +14 -0
  371. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +41 -3
  372. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.tsx +48 -35
  373. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +21 -20
  374. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +3 -3
  375. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotInDrawer.tsx +453 -0
  376. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +11 -11
  377. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedComparisonChatbot.tsx +206 -0
  378. package/patternfly-docs/content/extensions/chatbot/examples/demos/Feedback.tsx +104 -0
  379. package/patternfly-docs/content/extensions/chatbot/img/ai-action-inpage.svg +85 -0
  380. package/patternfly-docs/content/extensions/chatbot/img/ai-action-message.svg +63 -0
  381. package/patternfly-docs/content/extensions/chatbot/img/analytics-example.svg +127 -0
  382. package/patternfly-docs/content/extensions/chatbot/img/attached-file.svg +24 -29
  383. package/patternfly-docs/content/extensions/chatbot/img/attachment-menu.svg +4 -4
  384. package/patternfly-docs/content/extensions/chatbot/img/attachment-unsent.svg +30 -58
  385. package/patternfly-docs/content/extensions/chatbot/img/chatbot-analytics.svg +51 -0
  386. package/patternfly-docs/content/extensions/chatbot/img/chatbot-elements.svg +11 -12
  387. package/patternfly-docs/content/extensions/chatbot/img/chatbot-quickstarts-tile.svg +58 -0
  388. package/patternfly-docs/content/extensions/chatbot/img/chatbot-settings.svg +83 -0
  389. package/patternfly-docs/content/extensions/chatbot/img/comparison.svg +45 -0
  390. package/patternfly-docs/content/extensions/chatbot/img/conversation-history.svg +6 -29
  391. package/patternfly-docs/content/extensions/chatbot/img/docked.svg +259 -241
  392. package/patternfly-docs/content/extensions/chatbot/img/drawer.svg +255 -0
  393. package/patternfly-docs/content/extensions/chatbot/img/error-state.svg +30 -0
  394. package/patternfly-docs/content/extensions/chatbot/img/feedback-form.svg +88 -0
  395. package/patternfly-docs/content/extensions/chatbot/img/footnote.svg +1 -1
  396. package/patternfly-docs/content/extensions/chatbot/img/fullscreen.svg +25 -16
  397. package/patternfly-docs/content/extensions/chatbot/img/listening-pulse.svg +22 -0
  398. package/patternfly-docs/content/extensions/chatbot/img/listening.svg +1 -1
  399. package/patternfly-docs/content/extensions/chatbot/img/loading-state.svg +28 -0
  400. package/patternfly-docs/content/extensions/chatbot/img/masthead-toggle-notification.svg +49 -0
  401. package/patternfly-docs/content/extensions/chatbot/img/masthead-toggle.svg +75 -0
  402. package/patternfly-docs/content/extensions/chatbot/img/message-bar-elements.svg +3 -3
  403. package/patternfly-docs/content/extensions/chatbot/img/message-elements.svg +84 -142
  404. package/patternfly-docs/content/extensions/chatbot/img/message-feedback.svg +52 -0
  405. package/patternfly-docs/content/extensions/chatbot/img/message-responses.svg +54 -0
  406. package/patternfly-docs/content/extensions/chatbot/img/new-chat-emptystate.svg +27 -0
  407. package/patternfly-docs/content/extensions/chatbot/img/no-results-emptystate.svg +27 -0
  408. package/patternfly-docs/content/extensions/chatbot/img/overlay.svg +54 -39
  409. package/patternfly-docs/content/extensions/chatbot/img/posthog.svg +30 -0
  410. package/patternfly-docs/content/extensions/chatbot/img/segment.svg +36 -0
  411. package/patternfly-docs/content/extensions/chatbot/img/settings-menu.svg +122 -0
  412. package/patternfly-docs/content/extensions/chatbot/img/source-tile.svg +62 -0
  413. package/patternfly-docs/content/extensions/chatbot/img/thank-you-card.svg +81 -0
  414. package/patternfly-docs/content/extensions/chatbot/img/toggle-customizations.svg +12 -0
  415. package/patternfly-docs/content/extensions/chatbot/img/toggle-tooltips.svg +38 -0
  416. package/patternfly-docs/content/extensions/chatbot/img/umami.svg +30 -0
  417. package/patternfly-docs/content/extensions/chatbot/img/welcome-elements.svg +82 -0
  418. package/patternfly-docs/content/extensions/chatbot/img/welcome-message.svg +94 -0
  419. package/src/AttachMenu/AttachMenu.scss +1 -1
  420. package/src/AttachmentEdit/AttachmentEdit.test.tsx +55 -0
  421. package/src/Chatbot/Chatbot.scss +20 -1
  422. package/src/Chatbot/Chatbot.test.tsx +31 -0
  423. package/src/Chatbot/Chatbot.tsx +2 -1
  424. package/src/ChatbotAlert/ChatbotAlert.test.tsx +31 -0
  425. package/src/ChatbotContent/ChatbotContent.scss +1 -0
  426. package/src/ChatbotContent/ChatbotContent.test.tsx +15 -0
  427. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx +10 -4
  428. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +24 -1
  429. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +242 -3
  430. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +94 -26
  431. package/src/ChatbotConversationHistoryNav/EmptyState.tsx +44 -0
  432. package/src/ChatbotConversationHistoryNav/LoadingState.tsx +38 -0
  433. package/src/ChatbotFooter/ChatbotFooter.scss +8 -4
  434. package/src/ChatbotFooter/ChatbotFooter.test.tsx +15 -0
  435. package/src/ChatbotFooter/ChatbotFooternote.test.tsx +84 -0
  436. package/src/ChatbotFooter/ChatbotFootnote.tsx +2 -2
  437. package/src/ChatbotHeader/ChatbotHeader.scss +5 -6
  438. package/src/ChatbotHeader/ChatbotHeader.test.tsx +15 -0
  439. package/src/ChatbotHeader/ChatbotHeaderActions.test.tsx +17 -0
  440. package/src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx +20 -0
  441. package/src/ChatbotHeader/ChatbotHeaderCloseButton.tsx +57 -0
  442. package/src/ChatbotHeader/ChatbotHeaderMain.test.tsx +17 -0
  443. package/src/ChatbotHeader/ChatbotHeaderMenu.test.tsx +19 -0
  444. package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +11 -2
  445. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx +45 -0
  446. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +8 -1
  447. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx +43 -0
  448. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +11 -4
  449. package/src/ChatbotHeader/ChatbotHeaderTitle.test.tsx +75 -0
  450. package/src/ChatbotHeader/ChatbotHeaderTitle.tsx +7 -2
  451. package/src/ChatbotHeader/index.ts +1 -0
  452. package/src/ChatbotModal/ChatbotModal.scss +12 -12
  453. package/src/ChatbotToggle/ChatbotToggle.tsx +6 -1
  454. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss +2 -0
  455. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx +26 -18
  456. package/src/ChatbotWelcomePrompt/__snapshots__/ChatbotWelcomePrompt.test.tsx.snap +2 -2
  457. package/src/CodeModal/CodeModal.scss +14 -3
  458. package/src/CodeModal/CodeModal.tsx +2 -13
  459. package/src/Compare/Compare.scss +72 -0
  460. package/src/Compare/Compare.test.tsx +31 -0
  461. package/src/Compare/Compare.tsx +98 -0
  462. package/src/Compare/index.ts +2 -0
  463. package/src/FileDetails/FileDetails.scss +1 -1
  464. package/src/FileDetailsLabel/FileDetailsLabel.scss +2 -2
  465. package/src/FileDropZone/__snapshots__/FileDropZone.test.tsx.snap +2 -1
  466. package/src/Message/CodeBlockMessage/CodeBlockMessage.scss +4 -4
  467. package/src/Message/ErrorMessage/ErrorMessage.tsx +14 -0
  468. package/src/Message/ImageMessage/ImageMessage.scss +9 -0
  469. package/src/Message/ImageMessage/ImageMessage.tsx +14 -0
  470. package/src/Message/LinkMessage/LinkMessage.tsx +34 -0
  471. package/src/Message/ListMessage/ListMessage.scss +6 -6
  472. package/src/Message/ListMessage/OrderedListMessage.tsx +2 -2
  473. package/src/Message/Message.scss +4 -26
  474. package/src/Message/Message.test.tsx +403 -3
  475. package/src/Message/Message.tsx +161 -31
  476. package/src/Message/MessageLoading.scss +2 -2
  477. package/src/Message/QuickResponse/QuickResponse.scss +33 -0
  478. package/src/Message/QuickResponse/QuickResponse.tsx +54 -0
  479. package/src/Message/QuickStarts/FallbackImg.tsx +24 -0
  480. package/src/Message/QuickStarts/QuickStartTile.scss +24 -0
  481. package/src/Message/QuickStarts/QuickStartTile.tsx +147 -0
  482. package/src/Message/QuickStarts/QuickStartTileDescription.test.tsx +57 -0
  483. package/src/Message/QuickStarts/QuickStartTileDescription.tsx +81 -0
  484. package/src/Message/QuickStarts/QuickStartTileHeader.tsx +21 -0
  485. package/src/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.ts +75 -0
  486. package/src/Message/QuickStarts/monitor-sampleapp-quickstart.ts +75 -0
  487. package/src/Message/QuickStarts/types.ts +154 -0
  488. package/src/Message/TableMessage/TableMessage.scss +23 -0
  489. package/src/Message/TableMessage/TableMessage.tsx +83 -0
  490. package/src/Message/TableMessage/TbodyMessage.tsx +20 -0
  491. package/src/Message/TableMessage/TdMessage.tsx +11 -0
  492. package/src/Message/TableMessage/ThMessage.tsx +11 -0
  493. package/src/Message/TableMessage/TheadMessage.tsx +11 -0
  494. package/src/Message/TableMessage/TrMessage.tsx +27 -0
  495. package/src/Message/TextMessage/TextMessage.scss +21 -12
  496. package/src/Message/TextMessage/TextMessage.tsx +3 -3
  497. package/src/Message/UserFeedback/CloseButton.tsx +21 -0
  498. package/src/Message/UserFeedback/UserFeedback.scss +53 -0
  499. package/src/Message/UserFeedback/UserFeedback.test.tsx +236 -0
  500. package/src/Message/UserFeedback/UserFeedback.tsx +128 -0
  501. package/src/Message/UserFeedback/UserFeedbackComplete.test.tsx +255 -0
  502. package/src/Message/UserFeedback/UserFeedbackComplete.tsx +211 -0
  503. package/src/MessageBar/AttachButton.scss +19 -3
  504. package/src/MessageBar/AttachButton.tsx +3 -1
  505. package/src/MessageBar/MessageBar.scss +58 -24
  506. package/src/MessageBar/MessageBar.test.tsx +12 -4
  507. package/src/MessageBar/MessageBar.tsx +164 -65
  508. package/src/MessageBar/MicrophoneButton.scss +8 -8
  509. package/src/MessageBar/MicrophoneButton.tsx +1 -1
  510. package/src/MessageBar/SendButton.tsx +2 -0
  511. package/src/MessageBar/StopButton.scss +17 -3
  512. package/src/MessageBar/StopButton.tsx +2 -0
  513. package/src/MessageBox/JumpButton.scss +6 -6
  514. package/src/MessageBox/MessageBox.scss +1 -0
  515. package/src/MessageBox/MessageBox.test.tsx +26 -0
  516. package/src/PreviewAttachment/PreviewAttachment.test.tsx +51 -0
  517. package/src/ResponseActions/ResponseActionButton.test.tsx +52 -0
  518. package/src/ResponseActions/ResponseActionButton.tsx +59 -28
  519. package/src/ResponseActions/ResponseActions.scss +11 -9
  520. package/src/ResponseActions/ResponseActions.test.tsx +105 -5
  521. package/src/ResponseActions/ResponseActions.tsx +80 -9
  522. package/src/Settings/Settings.scss +34 -0
  523. package/src/Settings/SettingsForm.test.tsx +28 -0
  524. package/src/Settings/SettingsForm.tsx +25 -0
  525. package/src/Settings/index.ts +3 -0
  526. package/src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss +2 -2
  527. package/src/SourcesCard/SourcesCard.scss +9 -3
  528. package/src/SourcesCard/SourcesCard.test.tsx +0 -5
  529. package/src/SourcesCard/SourcesCard.tsx +14 -2
  530. package/src/TermsOfUse/TermsOfUse.scss +1 -1
  531. package/src/__mocks__/rehype-external-links.ts +3 -0
  532. package/src/__mocks__/rehype-sanitize.ts +3 -0
  533. package/src/__mocks__/rehype-unwrap-images.tsx +3 -0
  534. package/src/index.ts +9 -0
  535. package/src/main.scss +7 -6
  536. package/src/tracking/console_tracking_provider.ts +30 -0
  537. package/src/tracking/index.ts +3 -0
  538. package/src/tracking/posthog_tracking_provider.ts +42 -0
  539. package/src/tracking/segment_tracking_provider.ts +62 -0
  540. package/src/tracking/trackingProviderProxy.ts +28 -0
  541. package/src/tracking/tracking_api.ts +11 -0
  542. package/src/tracking/tracking_registry.ts +33 -0
  543. package/src/tracking/tracking_spi.ts +14 -0
  544. package/src/tracking/umami_tracking_provider.ts +54 -0
  545. package/src/SourcesCard/__snapshots__/SourcesCard.test.tsx.snap +0 -34
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import Message from '@patternfly/chatbot/dist/dynamic/Message';
3
+ import patternflyAvatar from './patternfly_avatar.jpg';
4
+ import { explorePipelinesQuickStart } from './explore-pipeline-quickstart.ts';
5
+ import { monitorSampleAppQuickStart } from '@patternfly/chatbot/src/Message/QuickStarts/monitor-sampleapp-quickstart.ts';
6
+ import { QuickStart } from '@patternfly/chatbot/dist/esm/Message/QuickStarts/types';
7
+
8
+ export const MessageWithQuickStartExample: React.FunctionComponent = () => (
9
+ <>
10
+ <Message
11
+ name="Bot"
12
+ role="bot"
13
+ avatar={patternflyAvatar}
14
+ content="Follow this quick guide to install the Pipelines Operator."
15
+ quickStarts={{
16
+ quickStart: explorePipelinesQuickStart as QuickStart,
17
+ onSelectQuickStart: (id) => alert(id)
18
+ }}
19
+ />
20
+ <Message
21
+ name="Bot"
22
+ role="bot"
23
+ avatar={patternflyAvatar}
24
+ content="This quick start tile includes prerequisites and a default icon."
25
+ quickStarts={{
26
+ quickStart: monitorSampleAppQuickStart,
27
+ onSelectQuickStart: (id) => alert(id)
28
+ }}
29
+ />
30
+ </>
31
+ );
@@ -8,7 +8,7 @@ export const ResponseActionExample: React.FunctionComponent = () => (
8
8
  name="Bot"
9
9
  role="bot"
10
10
  avatar={patternflyAvatar}
11
- content="Example with all prebuilt actions"
11
+ content="I updated your account with those settings. You're ready to set up your first dashboard!"
12
12
  actions={{
13
13
  // eslint-disable-next-line no-console
14
14
  positive: { onClick: () => console.log('Good response') },
@@ -20,17 +20,20 @@ export const MessageWithSourcesExample: React.FunctionComponent = () => {
20
20
  {
21
21
  title: 'Getting started with Red Hat OpenShift',
22
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 ...'
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
+ isExternal: true
24
25
  },
25
26
  {
26
27
  title: 'Azure Red Hat OpenShift documentation',
27
28
  link: '#',
28
- body: 'Microsoft Azure Red Hat OpenShift allows you to deploy a production ready Red Hat OpenShift cluster in Azure ...'
29
+ body: 'Microsoft Azure Red Hat OpenShift allows you to deploy a production ready Red Hat OpenShift cluster in Azure ...',
30
+ isExternal: true
29
31
  },
30
32
  {
31
33
  title: 'OKD Documentation: Home',
32
34
  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 ...'
35
+ 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 ...',
36
+ isExternal: true
34
37
  }
35
38
  ],
36
39
  onSetPage
@@ -46,12 +49,14 @@ export const MessageWithSourcesExample: React.FunctionComponent = () => {
46
49
  {
47
50
  title: 'Getting started with Red Hat OpenShift AI and other products',
48
51
  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 ...'
52
+ 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 ...',
53
+ isExternal: true
50
54
  },
51
55
  {
52
56
  title: 'Azure Red Hat OpenShift documentation | Red Hat',
53
57
  link: '#',
54
- body: 'Microsoft Azure Red Hat OpenShift allows you to deploy a production ready Red Hat OpenShift cluster in Azure ...'
58
+ body: 'Microsoft Azure Red Hat OpenShift allows you to deploy a production ready Red Hat OpenShift cluster in Azure ...',
59
+ isExternal: true
55
60
  }
56
61
  ],
57
62
  onSetPage
@@ -61,13 +66,14 @@ export const MessageWithSourcesExample: React.FunctionComponent = () => {
61
66
  name="Bot"
62
67
  role="bot"
63
68
  avatar={patternflyAvatar}
64
- content="Example with only one source"
69
+ content="Example with only 1 source"
65
70
  sources={{
66
71
  sources: [
67
72
  {
68
73
  title: 'Getting started with Red Hat OpenShift',
69
74
  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 ...'
75
+ 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 ...',
76
+ isExternal: true
71
77
  }
72
78
  ],
73
79
  onSetPage
@@ -80,14 +86,16 @@ export const MessageWithSourcesExample: React.FunctionComponent = () => {
80
86
  content="Example with sources that include a title and link"
81
87
  sources={{
82
88
  sources: [
83
- { title: 'Getting started with Red Hat OpenShift', link: '#' },
89
+ { title: 'Getting started with Red Hat OpenShift', link: '#', isExternal: true },
84
90
  {
85
91
  title: 'Azure Red Hat OpenShift documentation',
86
- link: '#'
92
+ link: '#',
93
+ isExternal: true
87
94
  },
88
95
  {
89
96
  title: 'OKD Documentation: Home',
90
- link: '#'
97
+ link: '#',
98
+ isExternal: true
91
99
  }
92
100
  ],
93
101
  onSetPage
@@ -14,14 +14,18 @@ propComponents:
14
14
  [
15
15
  'AttachMenu',
16
16
  'AttachmentEdit',
17
- 'FileDetails',
18
- 'FileDetailsLabel',
17
+ 'FileDetailsProps',
18
+ 'FileDetailsLabelProps',
19
19
  'FileDropZone',
20
20
  'PreviewAttachment',
21
21
  'Message',
22
+ 'MessageExtraContent',
22
23
  'PreviewAttachment',
23
24
  'ActionProps',
24
- 'SourcesCardProps'
25
+ 'SourcesCardProps',
26
+ 'UserFeedbackProps',
27
+ 'UserFeedbackCompleteProps',
28
+ 'QuickResponseProps'
25
29
  ]
26
30
  sortValue: 3
27
31
  ---
@@ -39,7 +43,8 @@ import FileDetailsLabel from '@patternfly/chatbot/dist/dynamic/FileDetailsLabel'
39
43
  import FileDropZone from '@patternfly/chatbot/dist/dynamic/FileDropZone';
40
44
  import { PreviewAttachment } from '@patternfly/chatbot/dist/dynamic/PreviewAttachment';
41
45
  import ChatbotAlert from '@patternfly/chatbot/dist/dynamic/ChatbotAlert';
42
-
46
+ import { explorePipelinesQuickStart } from './explore-pipeline-quickstart.ts';
47
+ import { monitorSampleAppQuickStart } from '@patternfly/chatbot/src/Message/QuickStarts/monitor-sampleapp-quickstart.ts';
43
48
  import userAvatar from './user_avatar.svg';
44
49
  import squareImg from './PF-social-color-square.svg';
45
50
 
@@ -51,19 +56,15 @@ The `content` prop of the `<Message>` component is passed to a `<Markdown>` comp
51
56
 
52
57
  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`).
53
58
 
54
- <br />
55
-
56
59
  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.
57
60
 
58
- <br />
59
-
60
61
  You can further customize the avatar by applying an additional class or passing [PatternFly avatar props](/components/avatar) to the `<Message>` component via `avatarProps`.
61
62
 
62
63
  ```js file="./BotMessage.tsx"
63
64
 
64
65
  ```
65
66
 
66
- ### Messages actions
67
+ ### Message actions
67
68
 
68
69
  You can add actions to a message, to allow users to interact with the message content. These actions can include:
69
70
 
@@ -79,15 +80,57 @@ You can add actions to a message, to allow users to interact with the message co
79
80
 
80
81
  ### Custom message actions
81
82
 
82
- 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`.
83
+ Beyond the standard message actions (good response, bad response, 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:
84
+
85
+ - `ariaLabel`
86
+ - `onClick`
87
+ - `className`
88
+ - `isDisabled`
89
+ - `tooltipContent`
90
+ - `tooltipContent`
91
+ - `tooltipProps`
92
+ - `icon`
93
+
94
+ You can apply a `clickedAriaLabel` and `clickedTooltipContent` once a button is clicked. If either of these props are omitted, their values will default to the `ariaLabel` or `tooltipContent` supplied.
83
95
 
84
96
  ```js file="./MessageWithCustomResponseActions.tsx"
85
97
 
86
98
  ```
87
99
 
100
+ ### Message feedback
101
+
102
+ When a user selects a positive or negative [message action](#message-actions), you can display a message feedback card that acknowledges their response and provides space for additional written feedback. These cards can be manually dismissed via the close button and the thank-you card can be [configured to time out automatically](/patternfly-ai/chatbot/messages#message-feedback-with-timeouts).
103
+
104
+ You can see the full feedback flow [in the message demos](/patternfly-ai/chatbot/messages/demo#message-feedback).
105
+
106
+ The message feedback cards will immediately receive focus by default, but you can remove this behavior by passing `focusOnLoad: false` to the `<Message>` (as shown in the following examples). For better usability, you should generally keep the default focus behavior.
107
+
108
+ The following examples demonstrate:
109
+
110
+ - A basic feedback card. To toggle the text input area, select the **Has text area** checkbox.
111
+ - A thank-you card. To toggle the close button, select the **Has close button** checkbox.
112
+
113
+ ```js file="./MessageWithFeedback.tsx"
114
+
115
+ ```
116
+
117
+ ### Message feedback with timeouts
118
+
119
+ The feedback thank-you message can be configured to time out and automatically close after a period of time. The default time-out period is 8000 ms, but it can be customized via `timeout`.
120
+
121
+ To display the thank-you message in this example, click **Show card**.
122
+
123
+ The card will not dismiss within the default time if a user is hovering over it or if it has keyboard focus. Instead, it will dismiss after they remove focus, via `timeoutAnimation`, which is 3000 ms by default. You can adjust this duration and set an `onTimeout` callback, as well as optional `onMouseEnter` and `onMouseLeave` callbacks.
124
+
125
+ For accessibility purposes, be sure to announce when new content appears onscreen. `isLiveRegion` is set to true by default on `<Message>` so it will make appropriate announcements for you when the thank-you card appears.
126
+
127
+ ```js file="./MessageWithFeedbackTimeout.tsx"
128
+
129
+ ```
130
+
88
131
  ### Messages with quick responses
89
132
 
90
- 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.
133
+ 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. Only 1 response can be selected at a time.
91
134
 
92
135
  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`.
93
136
 
@@ -99,12 +142,24 @@ To add quick actions, pass `quickResponses` to `<Message>`. This can be overridd
99
142
 
100
143
  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.
101
144
 
145
+ If a source will open outside of the ChatBot window, add an external link icon via `isExternal`.
146
+
102
147
  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.
103
148
 
104
149
  ```js file="./MessageWithSources.tsx"
105
150
 
106
151
  ```
107
152
 
153
+ ### Messages with quick start tiles
154
+
155
+ [Quick start](/extensions/quick-starts/) tiles can be added to messages via the `quickStarts` prop. Users can initiate the quick start from a link within the message tile.
156
+
157
+ The quick start tile displayed below the message is based on the tile included in the [PatternFly quick starts extension](https://github.com/patternfly/patternfly-quickstarts), but with slightly more limited functionality. For example, it does not track the state of the extension. However, it supports an additional `onSelectQuickStart` prop, so that the name of the quick start can be captured on click. This can be used to trigger other behavior in your application, such as launching that quick start in your main UI.
158
+
159
+ ```js file="./MessageWithQuickStart.tsx"
160
+
161
+ ```
162
+
108
163
  ### User messages
109
164
 
110
165
  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. You can further customize the avatar by applying an additional class or passing [PatternFly avatar props](/components/avatar) to the `<Message>` component via `avatarProps`.
@@ -113,6 +168,16 @@ Messages from users have a different background color to differentiate them from
113
168
 
114
169
  ```
115
170
 
171
+ ### Custom message content
172
+
173
+ **Caution:** Take care when using this feature. It can cause you to stray from accessibility and design best practice standards. If you frequently need add the same component via custom message content, reach out to the PatternFly team. If there's a consistent need for a certain component, we can look into adding native support for additional features.
174
+
175
+ You can add custom content to specific parts of a `<Message>` via the `extraContent` prop, including additional components (like timestamps, badges, or custom elements). This prop allows you to create dynamic and reusable elements for various use cases, without changing the default message layout.
176
+
177
+ ```js file="./UserMessageWithExtraContent.tsx"
178
+
179
+ ```
180
+
116
181
  ## File attachments
117
182
 
118
183
  ### Messages with attachments
@@ -2,43 +2,273 @@ import React from 'react';
2
2
 
3
3
  import Message from '@patternfly/chatbot/dist/dynamic/Message';
4
4
  import userAvatar from './user_avatar.svg';
5
+ import { AlertActionLink, Form, FormGroup, Radio } from '@patternfly/react-core';
5
6
 
6
7
  export const UserMessageExample: React.FunctionComponent = () => {
7
- const markdown = `A paragraph with *emphasis* and **strong importance**.
8
+ const [variant, setVariant] = React.useState('code');
8
9
 
9
- > A block quote with ~strikethrough~ and a URL: https://reactjs.org.
10
+ /* eslint-disable indent */
11
+ const renderContent = () => {
12
+ switch (variant) {
13
+ case 'code':
14
+ return code;
15
+ case 'inlineCode':
16
+ return inlineCode;
17
+ case 'heading':
18
+ return heading;
19
+ case 'emphasis':
20
+ return emphasis;
21
+ case 'blockQuotes':
22
+ return blockQuotes;
23
+ case 'orderedList':
24
+ return orderedList;
25
+ case 'unorderedList':
26
+ return unorderedList;
27
+ case 'moreComplexList':
28
+ return moreComplexList;
29
+ case 'link':
30
+ return link;
31
+ case 'table':
32
+ return table;
33
+ case 'image':
34
+ return image;
35
+ default:
36
+ return;
37
+ }
38
+ };
39
+ /* eslint-enable indent */
10
40
 
11
- Here is an inline code - \`() => void\`
41
+ const code = `
42
+ Here is some YAML code:
12
43
 
13
- Here is an ordered list:
44
+ ~~~yaml
45
+ apiVersion: helm.openshift.io/v1beta1/
46
+ kind: HelmChartRepository
47
+ metadata:
48
+ name: azure-sample-repo0oooo00ooo
49
+ spec:
50
+ connectionConfig:
51
+ url: https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs
52
+ ~~~
14
53
 
15
- 1. Item 1
16
- 2. Item 3
17
- 3. Item 4
54
+ Here is some JavaScript code:
18
55
 
19
- Here is an unordered list:
56
+ ~~~js
57
+ import React from 'react';
58
+
59
+ const MessageLoading = () => (
60
+ <div className="pf-chatbot__message-loading">
61
+ <span className="pf-chatbot__message-loading-dots">
62
+ <span className="pf-v6-screen-reader">Loading message</span>
63
+ </span>
64
+ </div>
65
+ );
66
+
67
+ export default MessageLoading;
68
+
69
+ ~~~
70
+ `;
71
+
72
+ const heading = `
73
+ # h1 Heading
74
+
75
+ ## h2 Heading
76
+
77
+ ### h3 Heading
78
+
79
+ #### h4 Heading
80
+
81
+ ##### h5 Heading
82
+
83
+ ###### h6 Heading
84
+ `;
85
+
86
+ const emphasis = `
87
+ **Bold text, formatted with double asterisks**
88
+
89
+ __Bold text, formatted with double underscores__
90
+
91
+ *Italic text, formatted with single asterisks*
92
+
93
+ _Italic text, formatted with single underscores_
94
+
95
+ ~~Strikethrough~~
96
+ `;
97
+
98
+ const blockQuotes = `> Blockquotes can also be nested...
99
+ >> ...by using additional greater-than signs (>) right next to each other...
100
+ > > > ...or with spaces between each sign.`;
101
+
102
+ const orderedList = `
103
+ Here is an ordered list:
104
+
105
+ 1. Item 1
106
+ 2. Item 2
107
+ 3. Item 3`;
20
108
 
21
- * Item 1
22
- * Item 2
23
- * Item 3`;
109
+ const unorderedList = `
110
+ Here is an unordered list:
111
+
112
+ * Item 1
113
+ * Item 2
114
+ * Item 3`;
115
+
116
+ const moreComplexList = `You may be wondering whether you can display more complex lists with formatting. In response to your question, I will explain how to spread butter on toast.
117
+
118
+ 1. **Using a \`toaster\`:**
119
+
120
+ - Place \`bread\` in a \`toaster\`
121
+ - Once \`bread\` is lightly browned, remove from \`toaster\`
122
+
123
+ 2. **Using a \`knife\`:**
124
+
125
+ Acquire 1 tablespoon of room temperature \`butter\`. Use \`knife\` to spread butter on \`toast\`. Bon appétit!
126
+ `;
127
+
128
+ const link = `A paragraph with a URL: https://reactjs.org.`;
129
+
130
+ const inlineCode = `Here is an inline code - \`() => void\``;
131
+
132
+ const table = `To customize your table, you can use [PatternFly TableProps](/components/table#table)
133
+
134
+ | Version | GA date | User role
135
+ |-|-|-|
136
+ | 2.5 | September 30, 2024 | Administrator |
137
+ | 2.5 | June 27, 2023 | Editor |
138
+ | 3.0 | April 1, 2025 | Administrator
139
+ `;
140
+
141
+ const image = `![Multi-colored wavy lines on a black background](https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif)`;
142
+
143
+ const error = {
144
+ title: 'Could not load chat',
145
+ children: 'Wait a few minutes and check your network settings. If the issue persists: ',
146
+ actionLinks: (
147
+ <React.Fragment>
148
+ <AlertActionLink component="a" href="#">
149
+ Start a new chat
150
+ </AlertActionLink>
151
+ <AlertActionLink component="a" href="#">
152
+ Contact support
153
+ </AlertActionLink>
154
+ </React.Fragment>
155
+ )
156
+ };
24
157
 
25
158
  return (
26
159
  <>
27
160
  <Message
28
161
  name="User"
29
162
  role="user"
30
- content="Example content with updated timestamp text"
163
+ content="This is a user message with an updated timestamp."
31
164
  timestamp="1 hour ago"
32
165
  avatar={userAvatar}
33
166
  />
34
- <Message name="User" role="user" content={markdown} avatar={userAvatar} />
35
167
  <Message
36
168
  name="User"
37
169
  role="user"
38
- content="Example user message with `avatarProps` set to add a border"
170
+ content="This is a user message with `avatarProps` set to add a border."
39
171
  avatar={userAvatar}
40
172
  avatarProps={{ isBordered: true }}
41
173
  />
174
+ <Form>
175
+ <FormGroup role="radiogroup" isInline fieldId="user-message-type" label="Message content type">
176
+ <Radio
177
+ isChecked={variant === 'code'}
178
+ onChange={() => setVariant('code')}
179
+ name="user-message-type"
180
+ label="Code"
181
+ id="user-code"
182
+ />
183
+ <Radio
184
+ isChecked={variant === 'inlineCode'}
185
+ onChange={() => setVariant('inlineCode')}
186
+ name="user-message-type"
187
+ label="Inline code"
188
+ id="user-inline-code"
189
+ />
190
+ <Radio
191
+ isChecked={variant === 'heading'}
192
+ onChange={() => setVariant('heading')}
193
+ name="user-message-type"
194
+ label="Heading"
195
+ id="user-heading"
196
+ />
197
+ <Radio
198
+ isChecked={variant === 'blockQuotes'}
199
+ onChange={() => setVariant('blockQuotes')}
200
+ name="user-message-type"
201
+ label="Block quote"
202
+ id="user-block-quotes"
203
+ />
204
+ <Radio
205
+ isChecked={variant === 'emphasis'}
206
+ onChange={() => setVariant('emphasis')}
207
+ name="user-message-type"
208
+ label="Emphasis"
209
+ id="user-emphasis"
210
+ />
211
+ <Radio
212
+ isChecked={variant === 'link'}
213
+ onChange={() => setVariant('link')}
214
+ name="user-message-type"
215
+ label="Link"
216
+ id="user-link"
217
+ />
218
+ <Radio
219
+ isChecked={variant === 'unorderedList'}
220
+ onChange={() => setVariant('unorderedList')}
221
+ name="user-message-type"
222
+ label="Unordered list"
223
+ id="user-unordered-list"
224
+ />
225
+ <Radio
226
+ isChecked={variant === 'orderedList'}
227
+ onChange={() => setVariant('orderedList')}
228
+ name="user-message-type"
229
+ label="Ordered list"
230
+ id="user-ordered-list"
231
+ />
232
+ <Radio
233
+ isChecked={variant === 'moreComplexList'}
234
+ onChange={() => setVariant('moreComplexList')}
235
+ name="user-message-type"
236
+ label="More complex list"
237
+ id="user-more-complex-list"
238
+ />
239
+ <Radio
240
+ isChecked={variant === 'table'}
241
+ onChange={() => setVariant('table')}
242
+ name="user-message-type"
243
+ label="Table"
244
+ id="user-table"
245
+ />
246
+ <Radio
247
+ isChecked={variant === 'image'}
248
+ onChange={() => setVariant('image')}
249
+ name="user-message-type"
250
+ label="Image"
251
+ id="user-image"
252
+ />
253
+ <Radio
254
+ isChecked={variant === 'error'}
255
+ onChange={() => setVariant('error')}
256
+ name="user-message-error"
257
+ label="Error"
258
+ id="user-error"
259
+ />
260
+ </FormGroup>
261
+ </Form>
262
+ <Message
263
+ name="User"
264
+ role="user"
265
+ content={renderContent()}
266
+ avatar={userAvatar}
267
+ tableProps={
268
+ variant === 'table' ? { 'aria-label': 'App information and user roles for user messages' } : undefined
269
+ }
270
+ error={variant === 'error' ? error : undefined}
271
+ />
42
272
  </>
43
273
  );
44
274
  };
@@ -0,0 +1,54 @@
1
+ import React from 'react';
2
+
3
+ import Message from '@patternfly/chatbot/dist/dynamic/Message';
4
+ import userAvatar from './user_avatar.svg';
5
+ import { Alert, Badge, Button, Card, CardBody, CardFooter, CardTitle } from '@patternfly/react-core';
6
+
7
+ const UserActionEndContent = () => {
8
+ // eslint-disable-next-line no-console
9
+ const onClick = () => console.log('custom button click');
10
+ return (
11
+ <React.Fragment>
12
+ <Button variant="secondary" ouiaId="Secondary" onClick={onClick}>
13
+ End content button
14
+ </Button>
15
+ <Alert variant="danger" title="Danger alert title" ouiaId="DangerAlert" />
16
+ </React.Fragment>
17
+ );
18
+ };
19
+
20
+ const CardInformationAfterMainContent = () => (
21
+ <Card ouiaId="BasicCard">
22
+ <CardTitle>This is content card after main content</CardTitle>
23
+ <CardBody>Body</CardBody>
24
+ <CardFooter>Footer</CardFooter>
25
+ </Card>
26
+ );
27
+
28
+ const BeforeMainContent = () => (
29
+ <div>
30
+ <Badge key={1} isRead>
31
+ 7
32
+ </Badge>
33
+ <Badge key={2} isRead>
34
+ 24
35
+ </Badge>
36
+ </div>
37
+ );
38
+
39
+ export const UserMessageWithExtraContent: React.FunctionComponent = () => (
40
+ <>
41
+ <Message
42
+ avatar={userAvatar}
43
+ name="User"
44
+ role="user"
45
+ content="This is a main message."
46
+ timestamp="1 hour ago"
47
+ extraContent={{
48
+ beforeMainContent: <BeforeMainContent />,
49
+ afterMainContent: <CardInformationAfterMainContent />,
50
+ endContent: <UserActionEndContent />
51
+ }}
52
+ />
53
+ </>
54
+ );