@patternfly/chatbot 2.2.0-prerelease.8 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (501) 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.js +3 -1
  31. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -0
  32. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.js +20 -0
  33. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.d.ts +1 -0
  34. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.js +18 -0
  35. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +3 -1
  36. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -0
  37. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.js +20 -0
  38. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -1
  39. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -0
  40. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +43 -0
  41. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +6 -4
  42. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -0
  43. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +41 -0
  44. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.d.ts +3 -1
  45. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.js +4 -2
  46. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +1 -0
  47. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.js +55 -0
  48. package/dist/cjs/ChatbotToggle/ChatbotToggle.js +3 -1
  49. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +19 -11
  50. package/dist/cjs/Compare/Compare.d.ts +17 -0
  51. package/dist/cjs/Compare/Compare.js +50 -0
  52. package/dist/cjs/Compare/Compare.test.d.ts +1 -0
  53. package/dist/cjs/Compare/Compare.test.js +20 -0
  54. package/dist/cjs/Compare/index.d.ts +2 -0
  55. package/dist/cjs/Compare/index.js +23 -0
  56. package/dist/cjs/Message/ErrorMessage/ErrorMessage.d.ts +4 -0
  57. package/dist/cjs/Message/ErrorMessage/ErrorMessage.js +26 -0
  58. package/dist/cjs/Message/ImageMessage/ImageMessage.d.ts +4 -0
  59. package/dist/cjs/Message/ImageMessage/ImageMessage.js +25 -0
  60. package/dist/cjs/Message/LinkMessage/LinkMessage.d.ts +4 -0
  61. package/dist/cjs/Message/LinkMessage/LinkMessage.js +30 -0
  62. package/dist/cjs/Message/Message.d.ts +49 -8
  63. package/dist/cjs/Message/Message.js +70 -18
  64. package/dist/cjs/Message/Message.test.js +269 -3
  65. package/dist/cjs/Message/QuickResponse/QuickResponse.d.ts +17 -0
  66. package/dist/cjs/Message/QuickResponse/QuickResponse.js +34 -0
  67. package/dist/cjs/Message/QuickStarts/FallbackImg.d.ts +13 -0
  68. package/dist/cjs/Message/QuickStarts/FallbackImg.js +34 -0
  69. package/dist/cjs/Message/QuickStarts/QuickStartTile.d.ts +27 -0
  70. package/dist/cjs/Message/QuickStarts/QuickStartTile.js +82 -0
  71. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.d.ts +23 -0
  72. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.js +64 -0
  73. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.d.ts +1 -0
  74. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.js +76 -0
  75. package/dist/cjs/Message/QuickStarts/QuickStartTileHeader.d.ts +11 -0
  76. package/dist/cjs/Message/QuickStarts/QuickStartTileHeader.js +30 -0
  77. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.d.ts +30 -0
  78. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.js +77 -0
  79. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart.d.ts +30 -0
  80. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart.js +77 -0
  81. package/dist/cjs/Message/QuickStarts/types.d.ts +132 -0
  82. package/dist/cjs/Message/QuickStarts/types.js +17 -0
  83. package/dist/cjs/Message/TableMessage/TableMessage.d.ts +20 -0
  84. package/dist/cjs/Message/TableMessage/TableMessage.js +67 -0
  85. package/dist/cjs/Message/TableMessage/TbodyMessage.d.ts +7 -0
  86. package/dist/cjs/Message/TableMessage/TbodyMessage.js +33 -0
  87. package/dist/cjs/Message/TableMessage/TdMessage.d.ts +5 -0
  88. package/dist/cjs/Message/TableMessage/TdMessage.js +26 -0
  89. package/dist/cjs/Message/TableMessage/ThMessage.d.ts +5 -0
  90. package/dist/cjs/Message/TableMessage/ThMessage.js +26 -0
  91. package/dist/cjs/Message/TableMessage/TheadMessage.d.ts +5 -0
  92. package/dist/cjs/Message/TableMessage/TheadMessage.js +26 -0
  93. package/dist/cjs/Message/TableMessage/TrMessage.d.ts +7 -0
  94. package/dist/cjs/Message/TableMessage/TrMessage.js +37 -0
  95. package/dist/cjs/Message/TextMessage/TextMessage.d.ts +2 -1
  96. package/dist/cjs/Message/TextMessage/TextMessage.js +2 -2
  97. package/dist/cjs/Message/UserFeedback/CloseButton.d.ts +10 -0
  98. package/dist/cjs/Message/UserFeedback/CloseButton.js +14 -0
  99. package/dist/cjs/Message/UserFeedback/UserFeedback.d.ts +39 -0
  100. package/dist/cjs/Message/UserFeedback/UserFeedback.js +54 -0
  101. package/dist/cjs/Message/UserFeedback/UserFeedback.test.d.ts +1 -0
  102. package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +133 -0
  103. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.d.ts +42 -0
  104. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +117 -0
  105. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.d.ts +1 -0
  106. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +249 -0
  107. package/dist/cjs/MessageBar/AttachButton.js +4 -2
  108. package/dist/cjs/MessageBar/MessageBar.d.ts +11 -4
  109. package/dist/cjs/MessageBar/MessageBar.js +127 -46
  110. package/dist/cjs/MessageBar/MessageBar.test.js +12 -4
  111. package/dist/cjs/MessageBar/MicrophoneButton.d.ts +1 -1
  112. package/dist/cjs/MessageBar/SendButton.js +3 -1
  113. package/dist/cjs/MessageBar/StopButton.js +3 -1
  114. package/dist/cjs/MessageBox/MessageBox.test.d.ts +1 -0
  115. package/dist/cjs/MessageBox/MessageBox.test.js +22 -0
  116. package/dist/cjs/PreviewAttachment/PreviewAttachment.test.d.ts +1 -0
  117. package/dist/cjs/PreviewAttachment/PreviewAttachment.test.js +28 -0
  118. package/dist/cjs/ResponseActions/ResponseActionButton.d.ts +4 -1
  119. package/dist/cjs/ResponseActions/ResponseActionButton.js +21 -6
  120. package/dist/cjs/ResponseActions/ResponseActions.d.ts +8 -2
  121. package/dist/cjs/ResponseActions/ResponseActions.js +7 -7
  122. package/dist/cjs/ResponseActions/ResponseActions.test.js +2 -2
  123. package/dist/cjs/Settings/SettingsForm.test.d.ts +1 -0
  124. package/dist/cjs/Settings/SettingsForm.test.js +26 -0
  125. package/dist/cjs/__mocks__/rehype-external-links.d.ts +2 -0
  126. package/dist/cjs/__mocks__/rehype-external-links.js +4 -0
  127. package/dist/cjs/__mocks__/rehype-sanitize.d.ts +2 -0
  128. package/dist/cjs/__mocks__/rehype-sanitize.js +4 -0
  129. package/dist/cjs/__mocks__/rehype-unwrap-images.d.ts +2 -0
  130. package/dist/cjs/__mocks__/rehype-unwrap-images.js +4 -0
  131. package/dist/cjs/index.d.ts +4 -0
  132. package/dist/cjs/index.js +7 -1
  133. package/dist/cjs/tracking/console_tracking_provider.d.ts +10 -0
  134. package/dist/cjs/tracking/console_tracking_provider.js +27 -0
  135. package/dist/cjs/tracking/index.d.ts +2 -0
  136. package/dist/cjs/tracking/index.js +23 -0
  137. package/dist/cjs/tracking/posthog_tracking_provider.d.ts +9 -0
  138. package/dist/cjs/tracking/posthog_tracking_provider.js +37 -0
  139. package/dist/cjs/tracking/segment_tracking_provider.d.ts +10 -0
  140. package/dist/cjs/tracking/segment_tracking_provider.js +50 -0
  141. package/dist/cjs/tracking/trackingProviderProxy.d.ts +9 -0
  142. package/dist/cjs/tracking/trackingProviderProxy.js +24 -0
  143. package/dist/cjs/tracking/tracking_api.d.ts +8 -0
  144. package/dist/cjs/tracking/tracking_api.js +2 -0
  145. package/dist/cjs/tracking/tracking_registry.d.ts +4 -0
  146. package/dist/cjs/tracking/tracking_registry.js +33 -0
  147. package/dist/cjs/tracking/tracking_spi.d.ts +9 -0
  148. package/dist/cjs/tracking/tracking_spi.js +2 -0
  149. package/dist/cjs/tracking/umami_tracking_provider.d.ts +14 -0
  150. package/dist/cjs/tracking/umami_tracking_provider.js +44 -0
  151. package/dist/css/main.css +438 -147
  152. package/dist/css/main.css.map +1 -1
  153. package/dist/dynamic/Compare/package.json +1 -0
  154. package/dist/dynamic/tracking/package.json +1 -0
  155. package/dist/esm/AttachmentEdit/AttachmentEdit.test.d.ts +1 -0
  156. package/dist/esm/AttachmentEdit/AttachmentEdit.test.js +47 -0
  157. package/dist/esm/Chatbot/Chatbot.d.ts +2 -1
  158. package/dist/esm/Chatbot/Chatbot.js +1 -0
  159. package/dist/esm/Chatbot/Chatbot.test.d.ts +1 -0
  160. package/dist/esm/Chatbot/Chatbot.test.js +23 -0
  161. package/dist/esm/ChatbotAlert/ChatbotAlert.test.d.ts +1 -0
  162. package/dist/esm/ChatbotAlert/ChatbotAlert.test.js +22 -0
  163. package/dist/esm/ChatbotContent/ChatbotContent.test.d.ts +1 -0
  164. package/dist/esm/ChatbotContent/ChatbotContent.test.js +13 -0
  165. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +3 -3
  166. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +3 -1
  167. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +27 -4
  168. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +24 -12
  169. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +99 -3
  170. package/dist/esm/ChatbotConversationHistoryNav/EmptyState.d.ts +11 -0
  171. package/dist/esm/ChatbotConversationHistoryNav/EmptyState.js +22 -0
  172. package/dist/esm/ChatbotConversationHistoryNav/LoadingState.d.ts +4 -0
  173. package/dist/esm/ChatbotConversationHistoryNav/LoadingState.js +38 -0
  174. package/dist/esm/ChatbotFooter/ChatbotFooter.test.d.ts +1 -0
  175. package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +13 -0
  176. package/dist/esm/ChatbotFooter/ChatbotFooternote.test.d.ts +1 -0
  177. package/dist/esm/ChatbotFooter/ChatbotFooternote.test.js +82 -0
  178. package/dist/esm/ChatbotFooter/ChatbotFootnote.d.ts +1 -1
  179. package/dist/esm/ChatbotFooter/ChatbotFootnote.js +1 -1
  180. package/dist/esm/ChatbotHeader/ChatbotHeader.test.d.ts +1 -0
  181. package/dist/esm/ChatbotHeader/ChatbotHeader.test.js +13 -0
  182. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.d.ts +1 -0
  183. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.js +13 -0
  184. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.js +3 -1
  185. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -0
  186. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.js +15 -0
  187. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.d.ts +1 -0
  188. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.js +13 -0
  189. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +3 -1
  190. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -0
  191. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +15 -0
  192. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -1
  193. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -0
  194. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +38 -0
  195. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +6 -4
  196. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -0
  197. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +36 -0
  198. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.d.ts +3 -1
  199. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.js +4 -2
  200. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +1 -0
  201. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.js +50 -0
  202. package/dist/esm/ChatbotToggle/ChatbotToggle.js +3 -1
  203. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +19 -11
  204. package/dist/esm/Compare/Compare.d.ts +17 -0
  205. package/dist/esm/Compare/Compare.js +43 -0
  206. package/dist/esm/Compare/Compare.test.d.ts +1 -0
  207. package/dist/esm/Compare/Compare.test.js +15 -0
  208. package/dist/esm/Compare/index.d.ts +2 -0
  209. package/dist/esm/Compare/index.js +2 -0
  210. package/dist/esm/Message/ErrorMessage/ErrorMessage.d.ts +4 -0
  211. package/dist/esm/Message/ErrorMessage/ErrorMessage.js +21 -0
  212. package/dist/esm/Message/ImageMessage/ImageMessage.d.ts +4 -0
  213. package/dist/esm/Message/ImageMessage/ImageMessage.js +20 -0
  214. package/dist/esm/Message/LinkMessage/LinkMessage.d.ts +4 -0
  215. package/dist/esm/Message/LinkMessage/LinkMessage.js +25 -0
  216. package/dist/esm/Message/Message.d.ts +49 -8
  217. package/dist/esm/Message/Message.js +68 -16
  218. package/dist/esm/Message/Message.test.js +269 -3
  219. package/dist/esm/Message/QuickResponse/QuickResponse.d.ts +17 -0
  220. package/dist/esm/Message/QuickResponse/QuickResponse.js +27 -0
  221. package/dist/esm/Message/QuickStarts/FallbackImg.d.ts +13 -0
  222. package/dist/esm/Message/QuickStarts/FallbackImg.js +9 -0
  223. package/dist/esm/Message/QuickStarts/QuickStartTile.d.ts +27 -0
  224. package/dist/esm/Message/QuickStarts/QuickStartTile.js +52 -0
  225. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.d.ts +23 -0
  226. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.js +35 -0
  227. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.d.ts +1 -0
  228. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.js +48 -0
  229. package/dist/esm/Message/QuickStarts/QuickStartTileHeader.d.ts +11 -0
  230. package/dist/esm/Message/QuickStarts/QuickStartTileHeader.js +5 -0
  231. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.d.ts +30 -0
  232. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.js +74 -0
  233. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart.d.ts +30 -0
  234. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart.js +74 -0
  235. package/dist/esm/Message/QuickStarts/types.d.ts +132 -0
  236. package/dist/esm/Message/QuickStarts/types.js +14 -0
  237. package/dist/esm/Message/TableMessage/TableMessage.d.ts +20 -0
  238. package/dist/esm/Message/TableMessage/TableMessage.js +62 -0
  239. package/dist/esm/Message/TableMessage/TbodyMessage.d.ts +7 -0
  240. package/dist/esm/Message/TableMessage/TbodyMessage.js +28 -0
  241. package/dist/esm/Message/TableMessage/TdMessage.d.ts +5 -0
  242. package/dist/esm/Message/TableMessage/TdMessage.js +21 -0
  243. package/dist/esm/Message/TableMessage/ThMessage.d.ts +5 -0
  244. package/dist/esm/Message/TableMessage/ThMessage.js +21 -0
  245. package/dist/esm/Message/TableMessage/TheadMessage.d.ts +5 -0
  246. package/dist/esm/Message/TableMessage/TheadMessage.js +21 -0
  247. package/dist/esm/Message/TableMessage/TrMessage.d.ts +7 -0
  248. package/dist/esm/Message/TableMessage/TrMessage.js +32 -0
  249. package/dist/esm/Message/TextMessage/TextMessage.d.ts +2 -1
  250. package/dist/esm/Message/TextMessage/TextMessage.js +3 -3
  251. package/dist/esm/Message/UserFeedback/CloseButton.d.ts +10 -0
  252. package/dist/esm/Message/UserFeedback/CloseButton.js +9 -0
  253. package/dist/esm/Message/UserFeedback/UserFeedback.d.ts +39 -0
  254. package/dist/esm/Message/UserFeedback/UserFeedback.js +49 -0
  255. package/dist/esm/Message/UserFeedback/UserFeedback.test.d.ts +1 -0
  256. package/dist/esm/Message/UserFeedback/UserFeedback.test.js +128 -0
  257. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.d.ts +42 -0
  258. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +112 -0
  259. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.d.ts +1 -0
  260. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +244 -0
  261. package/dist/esm/MessageBar/AttachButton.js +4 -2
  262. package/dist/esm/MessageBar/MessageBar.d.ts +11 -4
  263. package/dist/esm/MessageBar/MessageBar.js +127 -46
  264. package/dist/esm/MessageBar/MessageBar.test.js +12 -4
  265. package/dist/esm/MessageBar/MicrophoneButton.d.ts +1 -1
  266. package/dist/esm/MessageBar/SendButton.js +3 -1
  267. package/dist/esm/MessageBar/StopButton.js +3 -1
  268. package/dist/esm/MessageBox/MessageBox.test.d.ts +1 -0
  269. package/dist/esm/MessageBox/MessageBox.test.js +17 -0
  270. package/dist/esm/PreviewAttachment/PreviewAttachment.test.d.ts +1 -0
  271. package/dist/esm/PreviewAttachment/PreviewAttachment.test.js +23 -0
  272. package/dist/esm/ResponseActions/ResponseActionButton.d.ts +4 -1
  273. package/dist/esm/ResponseActions/ResponseActionButton.js +18 -3
  274. package/dist/esm/ResponseActions/ResponseActions.d.ts +8 -2
  275. package/dist/esm/ResponseActions/ResponseActions.js +7 -7
  276. package/dist/esm/ResponseActions/ResponseActions.test.js +2 -2
  277. package/dist/esm/Settings/SettingsForm.test.d.ts +1 -0
  278. package/dist/esm/Settings/SettingsForm.test.js +21 -0
  279. package/dist/esm/__mocks__/rehype-external-links.d.ts +2 -0
  280. package/dist/esm/__mocks__/rehype-external-links.js +2 -0
  281. package/dist/esm/__mocks__/rehype-sanitize.d.ts +2 -0
  282. package/dist/esm/__mocks__/rehype-sanitize.js +2 -0
  283. package/dist/esm/__mocks__/rehype-unwrap-images.d.ts +2 -0
  284. package/dist/esm/__mocks__/rehype-unwrap-images.js +2 -0
  285. package/dist/esm/index.d.ts +4 -0
  286. package/dist/esm/index.js +4 -0
  287. package/dist/esm/tracking/console_tracking_provider.d.ts +10 -0
  288. package/dist/esm/tracking/console_tracking_provider.js +23 -0
  289. package/dist/esm/tracking/index.d.ts +2 -0
  290. package/dist/esm/tracking/index.js +2 -0
  291. package/dist/esm/tracking/posthog_tracking_provider.d.ts +9 -0
  292. package/dist/esm/tracking/posthog_tracking_provider.js +33 -0
  293. package/dist/esm/tracking/segment_tracking_provider.d.ts +10 -0
  294. package/dist/esm/tracking/segment_tracking_provider.js +46 -0
  295. package/dist/esm/tracking/trackingProviderProxy.d.ts +9 -0
  296. package/dist/esm/tracking/trackingProviderProxy.js +22 -0
  297. package/dist/esm/tracking/tracking_api.d.ts +8 -0
  298. package/dist/esm/tracking/tracking_api.js +1 -0
  299. package/dist/esm/tracking/tracking_registry.d.ts +4 -0
  300. package/dist/esm/tracking/tracking_registry.js +26 -0
  301. package/dist/esm/tracking/tracking_spi.d.ts +9 -0
  302. package/dist/esm/tracking/tracking_spi.js +1 -0
  303. package/dist/esm/tracking/umami_tracking_provider.d.ts +14 -0
  304. package/dist/esm/tracking/umami_tracking_provider.js +40 -0
  305. package/dist/tsconfig.tsbuildinfo +1 -1
  306. package/package.json +8 -9
  307. package/patternfly-docs/content/extensions/chatbot/about-chatbot.md +8 -2
  308. package/patternfly-docs/content/extensions/chatbot/design-guidelines.md +192 -15
  309. package/patternfly-docs/content/extensions/chatbot/examples/Analytics/Analytics.md +219 -0
  310. package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentError.tsx +2 -2
  311. package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +214 -12
  312. package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDropZone.tsx +2 -1
  313. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithAttachment.tsx +2 -2
  314. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithCustomResponseActions.tsx +1 -1
  315. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +71 -0
  316. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedbackTimeout.tsx +27 -0
  317. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +1 -1
  318. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickStart.tsx +31 -0
  319. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithResponseActions.tsx +1 -1
  320. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithSources.tsx +1 -1
  321. package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +61 -9
  322. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +244 -14
  323. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessageWithExtraContent.tsx +54 -0
  324. package/patternfly-docs/content/extensions/chatbot/examples/Messages/explore-pipeline-quickstart.ts +65 -0
  325. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFooter.tsx +1 -1
  326. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFootnote.tsx +5 -5
  327. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderBasic.tsx +1 -1
  328. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +36 -3
  329. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerNavigation.tsx +67 -0
  330. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerResizable.tsx +94 -0
  331. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarAttach.tsx +1 -1
  332. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomeInteraction.tsx +1 -1
  333. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomePrompt.tsx +7 -7
  334. package/patternfly-docs/content/extensions/chatbot/examples/UI/SquareChatbotToggle.tsx +1 -1
  335. package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +21 -6
  336. package/patternfly-docs/content/extensions/chatbot/examples/demos/AttachmentDemos.md +14 -0
  337. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +39 -1
  338. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.tsx +48 -35
  339. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +2 -2
  340. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +3 -3
  341. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotInDrawer.tsx +453 -0
  342. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +11 -11
  343. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedComparisonChatbot.tsx +206 -0
  344. package/patternfly-docs/content/extensions/chatbot/examples/demos/Feedback.tsx +104 -0
  345. package/patternfly-docs/content/extensions/chatbot/img/ai-action-inpage.svg +85 -0
  346. package/patternfly-docs/content/extensions/chatbot/img/ai-action-message.svg +63 -0
  347. package/patternfly-docs/content/extensions/chatbot/img/analytics-example.svg +127 -0
  348. package/patternfly-docs/content/extensions/chatbot/img/attached-file.svg +24 -29
  349. package/patternfly-docs/content/extensions/chatbot/img/attachment-menu.svg +4 -4
  350. package/patternfly-docs/content/extensions/chatbot/img/attachment-unsent.svg +30 -58
  351. package/patternfly-docs/content/extensions/chatbot/img/chatbot-analytics.svg +51 -0
  352. package/patternfly-docs/content/extensions/chatbot/img/chatbot-elements.svg +11 -12
  353. package/patternfly-docs/content/extensions/chatbot/img/chatbot-quickstarts-tile.svg +58 -0
  354. package/patternfly-docs/content/extensions/chatbot/img/chatbot-settings.svg +83 -0
  355. package/patternfly-docs/content/extensions/chatbot/img/comparison.svg +45 -0
  356. package/patternfly-docs/content/extensions/chatbot/img/conversation-history.svg +6 -29
  357. package/patternfly-docs/content/extensions/chatbot/img/docked.svg +259 -241
  358. package/patternfly-docs/content/extensions/chatbot/img/drawer.svg +255 -0
  359. package/patternfly-docs/content/extensions/chatbot/img/error-state.svg +30 -0
  360. package/patternfly-docs/content/extensions/chatbot/img/feedback-form.svg +88 -0
  361. package/patternfly-docs/content/extensions/chatbot/img/footnote.svg +1 -1
  362. package/patternfly-docs/content/extensions/chatbot/img/fullscreen.svg +25 -16
  363. package/patternfly-docs/content/extensions/chatbot/img/listening-pulse.svg +22 -0
  364. package/patternfly-docs/content/extensions/chatbot/img/listening.svg +1 -1
  365. package/patternfly-docs/content/extensions/chatbot/img/loading-state.svg +28 -0
  366. package/patternfly-docs/content/extensions/chatbot/img/masthead-toggle-notification.svg +49 -0
  367. package/patternfly-docs/content/extensions/chatbot/img/masthead-toggle.svg +75 -0
  368. package/patternfly-docs/content/extensions/chatbot/img/message-bar-elements.svg +3 -3
  369. package/patternfly-docs/content/extensions/chatbot/img/message-elements.svg +84 -142
  370. package/patternfly-docs/content/extensions/chatbot/img/message-feedback.svg +52 -0
  371. package/patternfly-docs/content/extensions/chatbot/img/message-responses.svg +54 -0
  372. package/patternfly-docs/content/extensions/chatbot/img/new-chat-emptystate.svg +27 -0
  373. package/patternfly-docs/content/extensions/chatbot/img/no-results-emptystate.svg +27 -0
  374. package/patternfly-docs/content/extensions/chatbot/img/overlay.svg +54 -39
  375. package/patternfly-docs/content/extensions/chatbot/img/posthog.svg +30 -0
  376. package/patternfly-docs/content/extensions/chatbot/img/segment.svg +36 -0
  377. package/patternfly-docs/content/extensions/chatbot/img/settings-menu.svg +122 -0
  378. package/patternfly-docs/content/extensions/chatbot/img/source-tile.svg +62 -0
  379. package/patternfly-docs/content/extensions/chatbot/img/thank-you-card.svg +81 -0
  380. package/patternfly-docs/content/extensions/chatbot/img/toggle-customizations.svg +12 -0
  381. package/patternfly-docs/content/extensions/chatbot/img/toggle-tooltips.svg +38 -0
  382. package/patternfly-docs/content/extensions/chatbot/img/umami.svg +30 -0
  383. package/patternfly-docs/content/extensions/chatbot/img/welcome-elements.svg +82 -0
  384. package/patternfly-docs/content/extensions/chatbot/img/welcome-message.svg +94 -0
  385. package/src/AttachMenu/AttachMenu.scss +1 -1
  386. package/src/AttachmentEdit/AttachmentEdit.test.tsx +55 -0
  387. package/src/Chatbot/Chatbot.scss +20 -1
  388. package/src/Chatbot/Chatbot.test.tsx +31 -0
  389. package/src/Chatbot/Chatbot.tsx +2 -1
  390. package/src/ChatbotAlert/ChatbotAlert.test.tsx +31 -0
  391. package/src/ChatbotContent/ChatbotContent.scss +1 -0
  392. package/src/ChatbotContent/ChatbotContent.test.tsx +15 -0
  393. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx +10 -4
  394. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +24 -1
  395. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +242 -3
  396. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +94 -26
  397. package/src/ChatbotConversationHistoryNav/EmptyState.tsx +44 -0
  398. package/src/ChatbotConversationHistoryNav/LoadingState.tsx +38 -0
  399. package/src/ChatbotFooter/ChatbotFooter.scss +8 -4
  400. package/src/ChatbotFooter/ChatbotFooter.test.tsx +15 -0
  401. package/src/ChatbotFooter/ChatbotFooternote.test.tsx +84 -0
  402. package/src/ChatbotFooter/ChatbotFootnote.tsx +2 -2
  403. package/src/ChatbotHeader/ChatbotHeader.scss +5 -6
  404. package/src/ChatbotHeader/ChatbotHeader.test.tsx +15 -0
  405. package/src/ChatbotHeader/ChatbotHeaderActions.test.tsx +17 -0
  406. package/src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx +20 -0
  407. package/src/ChatbotHeader/ChatbotHeaderCloseButton.tsx +7 -1
  408. package/src/ChatbotHeader/ChatbotHeaderMain.test.tsx +17 -0
  409. package/src/ChatbotHeader/ChatbotHeaderMenu.test.tsx +19 -0
  410. package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +7 -1
  411. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx +45 -0
  412. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +8 -1
  413. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx +43 -0
  414. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +11 -4
  415. package/src/ChatbotHeader/ChatbotHeaderTitle.test.tsx +75 -0
  416. package/src/ChatbotHeader/ChatbotHeaderTitle.tsx +7 -2
  417. package/src/ChatbotModal/ChatbotModal.scss +12 -12
  418. package/src/ChatbotToggle/ChatbotToggle.tsx +6 -1
  419. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss +2 -0
  420. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx +26 -18
  421. package/src/ChatbotWelcomePrompt/__snapshots__/ChatbotWelcomePrompt.test.tsx.snap +2 -2
  422. package/src/CodeModal/CodeModal.scss +7 -4
  423. package/src/Compare/Compare.scss +72 -0
  424. package/src/Compare/Compare.test.tsx +31 -0
  425. package/src/Compare/Compare.tsx +98 -0
  426. package/src/Compare/index.ts +2 -0
  427. package/src/FileDetails/FileDetails.scss +1 -1
  428. package/src/FileDetailsLabel/FileDetailsLabel.scss +2 -2
  429. package/src/Message/CodeBlockMessage/CodeBlockMessage.scss +4 -4
  430. package/src/Message/ErrorMessage/ErrorMessage.tsx +14 -0
  431. package/src/Message/ImageMessage/ImageMessage.scss +9 -0
  432. package/src/Message/ImageMessage/ImageMessage.tsx +14 -0
  433. package/src/Message/LinkMessage/LinkMessage.tsx +34 -0
  434. package/src/Message/ListMessage/ListMessage.scss +6 -6
  435. package/src/Message/Message.scss +4 -26
  436. package/src/Message/Message.test.tsx +367 -3
  437. package/src/Message/Message.tsx +157 -31
  438. package/src/Message/MessageLoading.scss +2 -2
  439. package/src/Message/QuickResponse/QuickResponse.scss +33 -0
  440. package/src/Message/QuickResponse/QuickResponse.tsx +54 -0
  441. package/src/Message/QuickStarts/FallbackImg.tsx +24 -0
  442. package/src/Message/QuickStarts/QuickStartTile.scss +24 -0
  443. package/src/Message/QuickStarts/QuickStartTile.tsx +147 -0
  444. package/src/Message/QuickStarts/QuickStartTileDescription.test.tsx +57 -0
  445. package/src/Message/QuickStarts/QuickStartTileDescription.tsx +81 -0
  446. package/src/Message/QuickStarts/QuickStartTileHeader.tsx +21 -0
  447. package/src/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.ts +75 -0
  448. package/src/Message/QuickStarts/monitor-sampleapp-quickstart.ts +75 -0
  449. package/src/Message/QuickStarts/types.ts +154 -0
  450. package/src/Message/TableMessage/TableMessage.scss +23 -0
  451. package/src/Message/TableMessage/TableMessage.tsx +83 -0
  452. package/src/Message/TableMessage/TbodyMessage.tsx +20 -0
  453. package/src/Message/TableMessage/TdMessage.tsx +11 -0
  454. package/src/Message/TableMessage/ThMessage.tsx +11 -0
  455. package/src/Message/TableMessage/TheadMessage.tsx +11 -0
  456. package/src/Message/TableMessage/TrMessage.tsx +27 -0
  457. package/src/Message/TextMessage/TextMessage.scss +21 -12
  458. package/src/Message/TextMessage/TextMessage.tsx +3 -3
  459. package/src/Message/UserFeedback/CloseButton.tsx +21 -0
  460. package/src/Message/UserFeedback/UserFeedback.scss +53 -0
  461. package/src/Message/UserFeedback/UserFeedback.test.tsx +236 -0
  462. package/src/Message/UserFeedback/UserFeedback.tsx +128 -0
  463. package/src/Message/UserFeedback/UserFeedbackComplete.test.tsx +255 -0
  464. package/src/Message/UserFeedback/UserFeedbackComplete.tsx +211 -0
  465. package/src/MessageBar/AttachButton.scss +19 -3
  466. package/src/MessageBar/AttachButton.tsx +3 -1
  467. package/src/MessageBar/MessageBar.scss +58 -24
  468. package/src/MessageBar/MessageBar.test.tsx +12 -4
  469. package/src/MessageBar/MessageBar.tsx +164 -65
  470. package/src/MessageBar/MicrophoneButton.scss +8 -8
  471. package/src/MessageBar/MicrophoneButton.tsx +1 -1
  472. package/src/MessageBar/SendButton.tsx +2 -0
  473. package/src/MessageBar/StopButton.scss +17 -3
  474. package/src/MessageBar/StopButton.tsx +2 -0
  475. package/src/MessageBox/JumpButton.scss +6 -6
  476. package/src/MessageBox/MessageBox.scss +1 -0
  477. package/src/MessageBox/MessageBox.test.tsx +26 -0
  478. package/src/PreviewAttachment/PreviewAttachment.test.tsx +51 -0
  479. package/src/ResponseActions/ResponseActionButton.tsx +14 -2
  480. package/src/ResponseActions/ResponseActions.scss +2 -2
  481. package/src/ResponseActions/ResponseActions.test.tsx +4 -2
  482. package/src/ResponseActions/ResponseActions.tsx +26 -2
  483. package/src/Settings/Settings.scss +2 -2
  484. package/src/Settings/SettingsForm.test.tsx +28 -0
  485. package/src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss +2 -2
  486. package/src/SourcesCard/SourcesCard.scss +9 -3
  487. package/src/TermsOfUse/TermsOfUse.scss +1 -1
  488. package/src/__mocks__/rehype-external-links.ts +3 -0
  489. package/src/__mocks__/rehype-sanitize.ts +3 -0
  490. package/src/__mocks__/rehype-unwrap-images.tsx +3 -0
  491. package/src/index.ts +6 -0
  492. package/src/main.scss +6 -6
  493. package/src/tracking/console_tracking_provider.ts +30 -0
  494. package/src/tracking/index.ts +3 -0
  495. package/src/tracking/posthog_tracking_provider.ts +42 -0
  496. package/src/tracking/segment_tracking_provider.ts +62 -0
  497. package/src/tracking/trackingProviderProxy.ts +28 -0
  498. package/src/tracking/tracking_api.ts +11 -0
  499. package/src/tracking/tracking_registry.ts +33 -0
  500. package/src/tracking/tracking_spi.ts +14 -0
  501. package/src/tracking/umami_tracking_provider.ts +54 -0
@@ -0,0 +1,453 @@
1
+ import React from 'react';
2
+
3
+ import {
4
+ Brand,
5
+ DropdownList,
6
+ DropdownItem,
7
+ Page,
8
+ Masthead,
9
+ MastheadMain,
10
+ MastheadBrand,
11
+ MastheadLogo,
12
+ PageSidebarBody,
13
+ PageSidebar,
14
+ MastheadToggle,
15
+ PageToggleButton,
16
+ SkipToContent,
17
+ Drawer,
18
+ DrawerContent,
19
+ DrawerContentBody,
20
+ DrawerPanelContent
21
+ } from '@patternfly/react-core';
22
+
23
+ import Chatbot, { ChatbotDisplayMode } from '@patternfly/chatbot/dist/dynamic/Chatbot';
24
+ import ChatbotContent from '@patternfly/chatbot/dist/dynamic/ChatbotContent';
25
+ import ChatbotWelcomePrompt from '@patternfly/chatbot/dist/dynamic/ChatbotWelcomePrompt';
26
+ import ChatbotFooter, { ChatbotFootnote } from '@patternfly/chatbot/dist/dynamic/ChatbotFooter';
27
+ import MessageBar from '@patternfly/chatbot/dist/dynamic/MessageBar';
28
+ import MessageBox from '@patternfly/chatbot/dist/dynamic/MessageBox';
29
+ import Message, { MessageProps } from '@patternfly/chatbot/dist/dynamic/Message';
30
+ import ChatbotConversationHistoryNav, {
31
+ Conversation
32
+ } from '@patternfly/chatbot/dist/dynamic/ChatbotConversationHistoryNav';
33
+ import ChatbotHeader, {
34
+ ChatbotHeaderMenu,
35
+ ChatbotHeaderMain,
36
+ ChatbotHeaderTitle,
37
+ ChatbotHeaderActions,
38
+ ChatbotHeaderSelectorDropdown
39
+ } from '@patternfly/chatbot/dist/dynamic/ChatbotHeader';
40
+ import PFIconLogoColor from '../UI/PF-IconLogo-Color.svg';
41
+ import PFIconLogoReverse from '../UI/PF-IconLogo-Reverse.svg';
42
+ import { BarsIcon } from '@patternfly/react-icons';
43
+ import userAvatar from '../Messages/user_avatar.svg';
44
+ import patternflyAvatar from '../Messages/patternfly_avatar.jpg';
45
+
46
+ const footnoteProps = {
47
+ label: 'ChatBot uses AI. Check for mistakes.',
48
+ popover: {
49
+ title: 'Verify accuracy',
50
+ description: `While ChatBot strives for accuracy, there's always a possibility of errors. It's a good practice to verify critical information from reliable sources, especially if it's crucial for decision-making or actions.`,
51
+ bannerImage: {
52
+ src: 'https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif',
53
+ alt: 'Example image for footnote popover'
54
+ },
55
+ cta: {
56
+ label: 'Got it',
57
+ onClick: () => {
58
+ alert('Do something!');
59
+ }
60
+ },
61
+ link: {
62
+ label: 'Learn more',
63
+ url: 'https://www.redhat.com/'
64
+ }
65
+ }
66
+ };
67
+
68
+ const markdown = `A paragraph with *emphasis* and **strong importance**.
69
+
70
+ > A block quote with ~strikethrough~ and a URL: https://reactjs.org.
71
+
72
+ Here is an inline code - \`() => void\`
73
+
74
+ Here is some YAML code:
75
+
76
+ ~~~yaml
77
+ apiVersion: helm.openshift.io/v1beta1/
78
+ kind: HelmChartRepository
79
+ metadata:
80
+ name: azure-sample-repo0oooo00ooo
81
+ spec:
82
+ connectionConfig:
83
+ url: https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs
84
+ ~~~
85
+
86
+ Here is some JavaScript code:
87
+
88
+ ~~~js
89
+ import React from 'react';
90
+
91
+ const MessageLoading = () => (
92
+ <div className="pf-chatbot__message-loading">
93
+ <span className="pf-chatbot__message-loading-dots">
94
+ <span className="pf-v6-screen-reader">Loading message</span>
95
+ </span>
96
+ </div>
97
+ );
98
+
99
+ export default MessageLoading;
100
+
101
+ ~~~
102
+ `;
103
+
104
+ // It's important to set a date and timestamp prop since the Message components re-render.
105
+ // The timestamps re-render with them.
106
+ const date = new Date();
107
+
108
+ const initialMessages: MessageProps[] = [
109
+ {
110
+ id: '1',
111
+ role: 'user',
112
+ content: 'Hello, can you give me an example of what you can do?',
113
+ name: 'User',
114
+ avatar: userAvatar,
115
+ timestamp: date.toLocaleString(),
116
+ avatarProps: { isBordered: true }
117
+ },
118
+ {
119
+ id: '2',
120
+ role: 'bot',
121
+ content: markdown,
122
+ name: 'Bot',
123
+ avatar: patternflyAvatar,
124
+ timestamp: date.toLocaleString(),
125
+ actions: {
126
+ // eslint-disable-next-line no-console
127
+ positive: { onClick: () => console.log('Good response') },
128
+ // eslint-disable-next-line no-console
129
+ negative: { onClick: () => console.log('Bad response') },
130
+ // eslint-disable-next-line no-console
131
+ copy: { onClick: () => console.log('Copy') },
132
+ // eslint-disable-next-line no-console
133
+ share: { onClick: () => console.log('Share') },
134
+ // eslint-disable-next-line no-console
135
+ listen: { onClick: () => console.log('Listen') }
136
+ }
137
+ }
138
+ ];
139
+
140
+ const welcomePrompts = [
141
+ {
142
+ title: 'Topic 1',
143
+ message: 'Helpful prompt for Topic 1'
144
+ },
145
+ {
146
+ title: 'Topic 2',
147
+ message: 'Helpful prompt for Topic 2'
148
+ }
149
+ ];
150
+
151
+ const initialConversations = {
152
+ Today: [{ id: '1', text: 'Hello, can you give me an example of what you can do?' }],
153
+ 'This month': [
154
+ {
155
+ id: '2',
156
+ text: 'Enterprise Linux installation and setup'
157
+ },
158
+ { id: '3', text: 'Troubleshoot system crash' }
159
+ ],
160
+ March: [
161
+ { id: '4', text: 'Ansible security and updates' },
162
+ { id: '5', text: 'Red Hat certification' },
163
+ { id: '6', text: 'Lightspeed user documentation' }
164
+ ],
165
+ February: [
166
+ { id: '7', text: 'Crashing pod assistance' },
167
+ { id: '8', text: 'OpenShift AI pipelines' },
168
+ { id: '9', text: 'Updating subscription plan' },
169
+ { id: '10', text: 'Red Hat licensing options' }
170
+ ],
171
+ January: [
172
+ { id: '11', text: 'RHEL system performance' },
173
+ { id: '12', text: 'Manage user accounts' }
174
+ ]
175
+ };
176
+
177
+ export const EmbeddedChatbotDemo: React.FunctionComponent = () => {
178
+ const [messages, setMessages] = React.useState<MessageProps[]>(initialMessages);
179
+ const [selectedModel, setSelectedModel] = React.useState('Granite 7B');
180
+ const [isSendButtonDisabled, setIsSendButtonDisabled] = React.useState(false);
181
+ const [isDrawerOpen, setIsDrawerOpen] = React.useState(false);
182
+ const [conversations, setConversations] = React.useState<Conversation[] | { [key: string]: Conversation[] }>(
183
+ initialConversations
184
+ );
185
+ const [isSidebarOpen, setIsSidebarOpen] = React.useState(false);
186
+ const [announcement, setAnnouncement] = React.useState<string>();
187
+ const scrollToBottomRef = React.useRef<HTMLDivElement>(null);
188
+ const historyRef = React.useRef<HTMLButtonElement>(null);
189
+ const drawerRef = React.useRef<HTMLDivElement>();
190
+
191
+ const displayMode = ChatbotDisplayMode.drawer;
192
+ const isExpanded = true;
193
+
194
+ const onExpand = () => {
195
+ drawerRef.current && drawerRef.current.focus();
196
+ };
197
+
198
+ // Auto-scrolls to the latest message
199
+ React.useEffect(() => {
200
+ // don't scroll the first load - in this demo, we know we start with two messages
201
+ if (messages.length > 2) {
202
+ scrollToBottomRef.current?.scrollIntoView({ behavior: 'smooth' });
203
+ }
204
+ }, [messages]);
205
+
206
+ const onSelectModel = (
207
+ _event: React.MouseEvent<Element, MouseEvent> | undefined,
208
+ value: string | number | undefined
209
+ ) => {
210
+ setSelectedModel(value as string);
211
+ };
212
+
213
+ // you will likely want to come up with your own unique id function; this is for demo purposes only
214
+ const generateId = () => {
215
+ const id = Date.now() + Math.random();
216
+ return id.toString();
217
+ };
218
+
219
+ const handleSend = (message: string) => {
220
+ setIsSendButtonDisabled(true);
221
+ const newMessages: MessageProps[] = [];
222
+ // We can't use structuredClone since messages contains functions, but we can't mutate
223
+ // items that are going into state or the UI won't update correctly
224
+ messages.forEach((message) => newMessages.push(message));
225
+ // It's important to set a timestamp prop since the Message components re-render.
226
+ // The timestamps re-render with them.
227
+ const date = new Date();
228
+ newMessages.push({
229
+ id: generateId(),
230
+ role: 'user',
231
+ content: message,
232
+ name: 'User',
233
+ avatar: userAvatar,
234
+ timestamp: date.toLocaleString(),
235
+ avatarProps: { isBordered: true }
236
+ });
237
+ newMessages.push({
238
+ id: generateId(),
239
+ role: 'bot',
240
+ content: 'API response goes here',
241
+ name: 'Bot',
242
+ avatar: patternflyAvatar,
243
+ isLoading: true,
244
+ timestamp: date.toLocaleString()
245
+ });
246
+ setMessages(newMessages);
247
+ // make announcement to assistive devices that new messages have been added
248
+ setAnnouncement(`Message from User: ${message}. Message from Bot is loading.`);
249
+
250
+ // this is for demo purposes only; in a real situation, there would be an API response we would wait for
251
+ setTimeout(() => {
252
+ const loadedMessages: MessageProps[] = [];
253
+ // we can't use structuredClone since messages contains functions, but we can't mutate
254
+ // items that are going into state or the UI won't update correctly
255
+ newMessages.forEach((message) => loadedMessages.push(message));
256
+ loadedMessages.pop();
257
+ loadedMessages.push({
258
+ id: generateId(),
259
+ role: 'bot',
260
+ content: 'API response goes here',
261
+ name: 'Bot',
262
+ avatar: patternflyAvatar,
263
+ isLoading: false,
264
+ actions: {
265
+ // eslint-disable-next-line no-console
266
+ positive: { onClick: () => console.log('Good response') },
267
+ // eslint-disable-next-line no-console
268
+ negative: { onClick: () => console.log('Bad response') },
269
+ // eslint-disable-next-line no-console
270
+ copy: { onClick: () => console.log('Copy') },
271
+ // eslint-disable-next-line no-console
272
+ share: { onClick: () => console.log('Share') },
273
+ // eslint-disable-next-line no-console
274
+ listen: { onClick: () => console.log('Listen') }
275
+ },
276
+ timestamp: date.toLocaleString()
277
+ });
278
+ setMessages(loadedMessages);
279
+ // make announcement to assistive devices that new message has loaded
280
+ setAnnouncement(`Message from Bot: API response goes here`);
281
+ setIsSendButtonDisabled(false);
282
+ }, 5000);
283
+ };
284
+
285
+ const findMatchingItems = (targetValue: string) => {
286
+ let filteredConversations = Object.entries(initialConversations).reduce((acc, [key, items]) => {
287
+ const filteredItems = items.filter((item) => item.text.toLowerCase().includes(targetValue.toLowerCase()));
288
+ if (filteredItems.length > 0) {
289
+ acc[key] = filteredItems;
290
+ }
291
+ return acc;
292
+ }, {});
293
+
294
+ // append message if no items are found
295
+ if (Object.keys(filteredConversations).length === 0) {
296
+ filteredConversations = [{ id: '13', noIcon: true, text: 'No results found' }];
297
+ }
298
+ return filteredConversations;
299
+ };
300
+
301
+ const iconLogo = (
302
+ <>
303
+ <Brand className="show-light" src={PFIconLogoColor} alt="PatternFly" />
304
+ <Brand className="show-dark" src={PFIconLogoReverse} alt="PatternFly" />
305
+ </>
306
+ );
307
+ const masthead = (
308
+ <Masthead>
309
+ <MastheadMain>
310
+ <MastheadToggle>
311
+ <PageToggleButton
312
+ variant="plain"
313
+ aria-label="Global navigation"
314
+ isSidebarOpen={isSidebarOpen}
315
+ onSidebarToggle={() => setIsSidebarOpen(!isSidebarOpen)}
316
+ id="fill-nav-toggle"
317
+ >
318
+ <BarsIcon />
319
+ </PageToggleButton>
320
+ </MastheadToggle>
321
+ <MastheadBrand>
322
+ <MastheadLogo href="https://patternfly.org" target="_blank">
323
+ Logo
324
+ </MastheadLogo>
325
+ </MastheadBrand>
326
+ </MastheadMain>
327
+ </Masthead>
328
+ );
329
+
330
+ const sidebar = (
331
+ <PageSidebar isSidebarOpen={isSidebarOpen} id="fill-sidebar">
332
+ <PageSidebarBody>Navigation</PageSidebarBody>
333
+ </PageSidebar>
334
+ );
335
+
336
+ const skipToChatbot = (event: React.MouseEvent) => {
337
+ event.preventDefault();
338
+ if (historyRef.current) {
339
+ historyRef.current.focus();
340
+ }
341
+ };
342
+
343
+ const skipToContent = (
344
+ /* You can also add a SkipToContent for your main content here */
345
+ <SkipToContent href="#" onClick={skipToChatbot}>
346
+ Skip to chatbot
347
+ </SkipToContent>
348
+ );
349
+
350
+ const chatbot = (
351
+ <Chatbot displayMode={displayMode}>
352
+ <ChatbotConversationHistoryNav
353
+ displayMode={displayMode}
354
+ onDrawerToggle={() => {
355
+ setIsDrawerOpen(!isDrawerOpen);
356
+ setConversations(initialConversations);
357
+ }}
358
+ isDrawerOpen={isDrawerOpen}
359
+ setIsDrawerOpen={setIsDrawerOpen}
360
+ activeItemId="1"
361
+ // eslint-disable-next-line no-console
362
+ onSelectActiveItem={(e, selectedItem) => console.log(`Selected history item with id ${selectedItem}`)}
363
+ conversations={conversations}
364
+ onNewChat={() => {
365
+ setIsDrawerOpen(!isDrawerOpen);
366
+ setMessages([]);
367
+ setConversations(initialConversations);
368
+ }}
369
+ handleTextInputChange={(value: string) => {
370
+ if (value === '') {
371
+ setConversations(initialConversations);
372
+ }
373
+ // this is where you would perform search on the items in the drawer
374
+ // and update the state
375
+ const newConversations: { [key: string]: Conversation[] } = findMatchingItems(value);
376
+ setConversations(newConversations);
377
+ }}
378
+ drawerContent={
379
+ <>
380
+ <ChatbotHeader>
381
+ <ChatbotHeaderMain>
382
+ <ChatbotHeaderMenu
383
+ ref={historyRef}
384
+ aria-expanded={isDrawerOpen}
385
+ onMenuToggle={() => setIsDrawerOpen(!isDrawerOpen)}
386
+ />
387
+ <ChatbotHeaderTitle>{iconLogo}</ChatbotHeaderTitle>
388
+ </ChatbotHeaderMain>
389
+ <ChatbotHeaderActions>
390
+ <ChatbotHeaderSelectorDropdown value={selectedModel} onSelect={onSelectModel}>
391
+ <DropdownList>
392
+ <DropdownItem value="Granite 7B" key="granite">
393
+ Granite 7B
394
+ </DropdownItem>
395
+ <DropdownItem value="Llama 3.0" key="llama">
396
+ Llama 3.0
397
+ </DropdownItem>
398
+ <DropdownItem value="Mistral 3B" key="mistral">
399
+ Mistral 3B
400
+ </DropdownItem>
401
+ </DropdownList>
402
+ </ChatbotHeaderSelectorDropdown>
403
+ </ChatbotHeaderActions>
404
+ </ChatbotHeader>
405
+ <ChatbotContent>
406
+ {/* Update the announcement prop on MessageBox whenever a new message is sent
407
+ so that users of assistive devices receive sufficient context */}
408
+ <MessageBox announcement={announcement}>
409
+ <ChatbotWelcomePrompt
410
+ title="Hello, Chatbot User"
411
+ description="How may I help you today?"
412
+ prompts={welcomePrompts}
413
+ />
414
+ {/* This code block enables scrolling to the top of the last message.
415
+ You can instead choose to move the div with scrollToBottomRef on it below
416
+ the map of messages, so that users are forced to scroll to the bottom.
417
+ If you are using streaming, you will want to take a different approach;
418
+ see: https://github.com/patternfly/chatbot/issues/201#issuecomment-2400725173 */}
419
+ {messages.map((message, index) => {
420
+ if (index === messages.length - 1) {
421
+ return (
422
+ <>
423
+ <div ref={scrollToBottomRef}></div>
424
+ <Message key={message.id} {...message} />
425
+ </>
426
+ );
427
+ }
428
+ return <Message key={message.id} {...message} />;
429
+ })}
430
+ </MessageBox>
431
+ </ChatbotContent>
432
+ <ChatbotFooter>
433
+ <MessageBar onSendMessage={handleSend} hasMicrophoneButton isSendButtonDisabled={isSendButtonDisabled} />
434
+ <ChatbotFootnote {...footnoteProps} />
435
+ </ChatbotFooter>
436
+ </>
437
+ }
438
+ ></ChatbotConversationHistoryNav>
439
+ </Chatbot>
440
+ );
441
+
442
+ const panelContent = <DrawerPanelContent>{chatbot}</DrawerPanelContent>;
443
+
444
+ return (
445
+ <Drawer isExpanded={isExpanded} isInline onExpand={onExpand}>
446
+ <DrawerContent panelContent={panelContent}>
447
+ <DrawerContentBody>
448
+ <Page skipToContent={skipToContent} masthead={masthead} sidebar={sidebar} isContentFilled></Page>
449
+ </DrawerContentBody>
450
+ </DrawerContent>
451
+ </Drawer>
452
+ );
453
+ };
@@ -42,22 +42,22 @@ import userAvatar from '../Messages/user_avatar.svg';
42
42
  import patternflyAvatar from '../Messages/patternfly_avatar.jpg';
43
43
 
44
44
  const footnoteProps = {
45
- label: 'Lightspeed uses AI. Check for mistakes.',
45
+ label: 'ChatBot uses AI. Check for mistakes.',
46
46
  popover: {
47
- title: 'Verify accuracy',
48
- description: `While Lightspeed strives for accuracy, there's always a possibility of errors. It's a good practice to verify critical information from reliable sources, especially if it's crucial for decision-making or actions.`,
47
+ title: 'Verify information',
48
+ description: `While ChatBot strives for accuracy, AI is experimental and can make mistakes. We cannot guarantee that all information provided by ChatBot is up to date or without error. You should always verify responses using reliable sources, especially for crucial information and decision making.`,
49
49
  bannerImage: {
50
50
  src: 'https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif',
51
51
  alt: 'Example image for footnote popover'
52
52
  },
53
53
  cta: {
54
- label: 'Got it',
54
+ label: 'Dismiss',
55
55
  onClick: () => {
56
56
  alert('Do something!');
57
57
  }
58
58
  },
59
59
  link: {
60
- label: 'Learn more',
60
+ label: 'View AI policy',
61
61
  url: 'https://www.redhat.com/'
62
62
  }
63
63
  }
@@ -137,12 +137,12 @@ const initialMessages: MessageProps[] = [
137
137
 
138
138
  const welcomePrompts = [
139
139
  {
140
- title: 'Topic 1',
141
- message: 'Helpful prompt for Topic 1'
140
+ title: 'Set up account',
141
+ message: 'Choose the necessary settings and preferences for your account.'
142
142
  },
143
143
  {
144
- title: 'Topic 2',
145
- message: 'Helpful prompt for Topic 2'
144
+ title: 'Troubleshoot issue',
145
+ message: 'Find documentation and instructions to resolve your issue.'
146
146
  }
147
147
  ];
148
148
 
@@ -400,8 +400,8 @@ export const EmbeddedChatbotDemo: React.FunctionComponent = () => {
400
400
  so that users of assistive devices receive sufficient context */}
401
401
  <MessageBox announcement={announcement}>
402
402
  <ChatbotWelcomePrompt
403
- title="Hello, Chatbot User"
404
- description="How may I help you today?"
403
+ title="Hi, ChatBot User!"
404
+ description="How can I help you today?"
405
405
  prompts={welcomePrompts}
406
406
  />
407
407
  {/* This code block enables scrolling to the top of the last message.