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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (464) 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.test.d.ts +1 -0
  4. package/dist/cjs/Chatbot/Chatbot.test.js +28 -0
  5. package/dist/cjs/ChatbotAlert/ChatbotAlert.test.d.ts +1 -0
  6. package/dist/cjs/ChatbotAlert/ChatbotAlert.test.js +27 -0
  7. package/dist/cjs/ChatbotContent/ChatbotContent.test.d.ts +1 -0
  8. package/dist/cjs/ChatbotContent/ChatbotContent.test.js +18 -0
  9. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +3 -3
  10. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +3 -1
  11. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +27 -4
  12. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +23 -11
  13. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +99 -3
  14. package/dist/cjs/ChatbotConversationHistoryNav/EmptyState.d.ts +11 -0
  15. package/dist/cjs/ChatbotConversationHistoryNav/EmptyState.js +29 -0
  16. package/dist/cjs/ChatbotConversationHistoryNav/LoadingState.d.ts +4 -0
  17. package/dist/cjs/ChatbotConversationHistoryNav/LoadingState.js +45 -0
  18. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.d.ts +1 -0
  19. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.js +18 -0
  20. package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.d.ts +1 -0
  21. package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.js +87 -0
  22. package/dist/cjs/ChatbotFooter/ChatbotFootnote.d.ts +1 -1
  23. package/dist/cjs/ChatbotFooter/ChatbotFootnote.js +1 -1
  24. package/dist/cjs/ChatbotHeader/ChatbotHeader.test.d.ts +1 -0
  25. package/dist/cjs/ChatbotHeader/ChatbotHeader.test.js +18 -0
  26. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.d.ts +1 -0
  27. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.js +18 -0
  28. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +17 -0
  29. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.js +16 -0
  30. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -0
  31. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.js +20 -0
  32. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.d.ts +1 -0
  33. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.js +18 -0
  34. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.d.ts +2 -0
  35. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +4 -2
  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.test.d.ts +1 -0
  45. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.js +47 -0
  46. package/dist/cjs/ChatbotHeader/index.d.ts +1 -0
  47. package/dist/cjs/ChatbotHeader/index.js +1 -0
  48. package/dist/cjs/ChatbotToggle/ChatbotToggle.js +3 -1
  49. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +19 -11
  50. package/dist/cjs/CodeModal/CodeModal.js +2 -12
  51. package/dist/cjs/Compare/Compare.d.ts +17 -0
  52. package/dist/cjs/Compare/Compare.js +50 -0
  53. package/dist/cjs/Compare/Compare.test.d.ts +1 -0
  54. package/dist/cjs/Compare/Compare.test.js +20 -0
  55. package/dist/cjs/Compare/index.d.ts +2 -0
  56. package/dist/cjs/Compare/index.js +23 -0
  57. package/dist/cjs/Message/ImageMessage/ImageMessage.d.ts +4 -0
  58. package/dist/cjs/Message/ImageMessage/ImageMessage.js +25 -0
  59. package/dist/cjs/Message/LinkMessage/LinkMessage.d.ts +4 -0
  60. package/dist/cjs/Message/LinkMessage/LinkMessage.js +30 -0
  61. package/dist/cjs/Message/ListMessage/OrderedListMessage.d.ts +1 -1
  62. package/dist/cjs/Message/ListMessage/OrderedListMessage.js +2 -2
  63. package/dist/cjs/Message/Message.d.ts +47 -8
  64. package/dist/cjs/Message/Message.js +69 -18
  65. package/dist/cjs/Message/Message.test.js +265 -3
  66. package/dist/cjs/Message/QuickResponse/QuickResponse.d.ts +17 -0
  67. package/dist/cjs/Message/QuickResponse/QuickResponse.js +34 -0
  68. package/dist/cjs/Message/QuickStarts/FallbackImg.d.ts +13 -0
  69. package/dist/cjs/Message/QuickStarts/FallbackImg.js +34 -0
  70. package/dist/cjs/Message/QuickStarts/QuickStartTile.d.ts +27 -0
  71. package/dist/cjs/Message/QuickStarts/QuickStartTile.js +82 -0
  72. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.d.ts +23 -0
  73. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.js +64 -0
  74. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.d.ts +1 -0
  75. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.js +76 -0
  76. package/dist/cjs/Message/QuickStarts/QuickStartTileHeader.d.ts +11 -0
  77. package/dist/cjs/Message/QuickStarts/QuickStartTileHeader.js +30 -0
  78. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.d.ts +30 -0
  79. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.js +77 -0
  80. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart.d.ts +30 -0
  81. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart.js +77 -0
  82. package/dist/cjs/Message/QuickStarts/types.d.ts +132 -0
  83. package/dist/cjs/Message/QuickStarts/types.js +17 -0
  84. package/dist/cjs/Message/TableMessage/TableMessage.d.ts +20 -0
  85. package/dist/cjs/Message/TableMessage/TableMessage.js +67 -0
  86. package/dist/cjs/Message/TableMessage/TbodyMessage.d.ts +7 -0
  87. package/dist/cjs/Message/TableMessage/TbodyMessage.js +33 -0
  88. package/dist/cjs/Message/TableMessage/TdMessage.d.ts +5 -0
  89. package/dist/cjs/Message/TableMessage/TdMessage.js +26 -0
  90. package/dist/cjs/Message/TableMessage/ThMessage.d.ts +5 -0
  91. package/dist/cjs/Message/TableMessage/ThMessage.js +26 -0
  92. package/dist/cjs/Message/TableMessage/TheadMessage.d.ts +5 -0
  93. package/dist/cjs/Message/TableMessage/TheadMessage.js +26 -0
  94. package/dist/cjs/Message/TableMessage/TrMessage.d.ts +7 -0
  95. package/dist/cjs/Message/TableMessage/TrMessage.js +37 -0
  96. package/dist/cjs/Message/TextMessage/TextMessage.d.ts +2 -1
  97. package/dist/cjs/Message/TextMessage/TextMessage.js +2 -2
  98. package/dist/cjs/Message/UserFeedback/CloseButton.d.ts +10 -0
  99. package/dist/cjs/Message/UserFeedback/CloseButton.js +14 -0
  100. package/dist/cjs/Message/UserFeedback/UserFeedback.d.ts +39 -0
  101. package/dist/cjs/Message/UserFeedback/UserFeedback.js +55 -0
  102. package/dist/cjs/Message/UserFeedback/UserFeedback.test.d.ts +1 -0
  103. package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +146 -0
  104. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.d.ts +42 -0
  105. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +117 -0
  106. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.d.ts +1 -0
  107. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +249 -0
  108. package/dist/cjs/MessageBar/AttachButton.js +4 -2
  109. package/dist/cjs/MessageBar/MessageBar.d.ts +11 -4
  110. package/dist/cjs/MessageBar/MessageBar.js +122 -39
  111. package/dist/cjs/MessageBar/MessageBar.test.js +12 -4
  112. package/dist/cjs/MessageBar/MicrophoneButton.d.ts +1 -1
  113. package/dist/cjs/MessageBar/SendButton.js +3 -1
  114. package/dist/cjs/MessageBar/StopButton.js +3 -1
  115. package/dist/cjs/MessageBox/MessageBox.test.d.ts +1 -0
  116. package/dist/cjs/MessageBox/MessageBox.test.js +22 -0
  117. package/dist/cjs/PreviewAttachment/PreviewAttachment.test.d.ts +1 -0
  118. package/dist/cjs/PreviewAttachment/PreviewAttachment.test.js +28 -0
  119. package/dist/cjs/ResponseActions/ResponseActionButton.d.ts +10 -1
  120. package/dist/cjs/ResponseActions/ResponseActionButton.js +28 -5
  121. package/dist/cjs/ResponseActions/ResponseActionButton.test.d.ts +1 -0
  122. package/dist/cjs/ResponseActions/ResponseActionButton.test.js +54 -0
  123. package/dist/cjs/ResponseActions/ResponseActions.d.ts +12 -2
  124. package/dist/cjs/ResponseActions/ResponseActions.js +26 -9
  125. package/dist/cjs/ResponseActions/ResponseActions.test.js +79 -5
  126. package/dist/cjs/Settings/SettingsForm.d.ts +13 -0
  127. package/dist/cjs/Settings/SettingsForm.js +27 -0
  128. package/dist/cjs/Settings/SettingsForm.test.d.ts +1 -0
  129. package/dist/cjs/Settings/SettingsForm.test.js +26 -0
  130. package/dist/cjs/Settings/index.d.ts +2 -0
  131. package/dist/cjs/Settings/index.js +23 -0
  132. package/dist/cjs/TermsOfUse/TermsOfUse.d.ts +34 -0
  133. package/dist/cjs/TermsOfUse/TermsOfUse.js +49 -0
  134. package/dist/cjs/TermsOfUse/TermsOfUse.test.d.ts +1 -0
  135. package/dist/cjs/TermsOfUse/TermsOfUse.test.js +79 -0
  136. package/dist/cjs/TermsOfUse/index.d.ts +2 -0
  137. package/dist/cjs/TermsOfUse/index.js +23 -0
  138. package/dist/cjs/__mocks__/rehype-external-links.d.ts +2 -0
  139. package/dist/cjs/__mocks__/rehype-external-links.js +4 -0
  140. package/dist/cjs/__mocks__/rehype-sanitize.d.ts +2 -0
  141. package/dist/cjs/__mocks__/rehype-sanitize.js +4 -0
  142. package/dist/cjs/__mocks__/rehype-unwrap-images.d.ts +2 -0
  143. package/dist/cjs/__mocks__/rehype-unwrap-images.js +4 -0
  144. package/dist/cjs/index.d.ts +6 -0
  145. package/dist/cjs/index.js +10 -1
  146. package/dist/css/main.css +467 -123
  147. package/dist/css/main.css.map +1 -1
  148. package/dist/dynamic/Compare/package.json +1 -0
  149. package/dist/dynamic/Settings/package.json +1 -0
  150. package/dist/dynamic/TermsOfUse/package.json +1 -0
  151. package/dist/esm/AttachmentEdit/AttachmentEdit.test.d.ts +1 -0
  152. package/dist/esm/AttachmentEdit/AttachmentEdit.test.js +47 -0
  153. package/dist/esm/Chatbot/Chatbot.test.d.ts +1 -0
  154. package/dist/esm/Chatbot/Chatbot.test.js +23 -0
  155. package/dist/esm/ChatbotAlert/ChatbotAlert.test.d.ts +1 -0
  156. package/dist/esm/ChatbotAlert/ChatbotAlert.test.js +22 -0
  157. package/dist/esm/ChatbotContent/ChatbotContent.test.d.ts +1 -0
  158. package/dist/esm/ChatbotContent/ChatbotContent.test.js +13 -0
  159. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +3 -3
  160. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +3 -1
  161. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +27 -4
  162. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +23 -11
  163. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +99 -3
  164. package/dist/esm/ChatbotConversationHistoryNav/EmptyState.d.ts +11 -0
  165. package/dist/esm/ChatbotConversationHistoryNav/EmptyState.js +22 -0
  166. package/dist/esm/ChatbotConversationHistoryNav/LoadingState.d.ts +4 -0
  167. package/dist/esm/ChatbotConversationHistoryNav/LoadingState.js +38 -0
  168. package/dist/esm/ChatbotFooter/ChatbotFooter.test.d.ts +1 -0
  169. package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +13 -0
  170. package/dist/esm/ChatbotFooter/ChatbotFooternote.test.d.ts +1 -0
  171. package/dist/esm/ChatbotFooter/ChatbotFooternote.test.js +82 -0
  172. package/dist/esm/ChatbotFooter/ChatbotFootnote.d.ts +1 -1
  173. package/dist/esm/ChatbotFooter/ChatbotFootnote.js +1 -1
  174. package/dist/esm/ChatbotHeader/ChatbotHeader.test.d.ts +1 -0
  175. package/dist/esm/ChatbotHeader/ChatbotHeader.test.js +13 -0
  176. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.d.ts +1 -0
  177. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.js +13 -0
  178. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +17 -0
  179. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.js +10 -0
  180. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -0
  181. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.js +15 -0
  182. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.d.ts +1 -0
  183. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.js +13 -0
  184. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.d.ts +2 -0
  185. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +4 -2
  186. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -0
  187. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +15 -0
  188. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -1
  189. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -0
  190. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +38 -0
  191. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +6 -4
  192. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -0
  193. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +36 -0
  194. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +1 -0
  195. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.js +42 -0
  196. package/dist/esm/ChatbotHeader/index.d.ts +1 -0
  197. package/dist/esm/ChatbotHeader/index.js +1 -0
  198. package/dist/esm/ChatbotToggle/ChatbotToggle.js +3 -1
  199. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +19 -11
  200. package/dist/esm/CodeModal/CodeModal.js +2 -12
  201. package/dist/esm/Compare/Compare.d.ts +17 -0
  202. package/dist/esm/Compare/Compare.js +43 -0
  203. package/dist/esm/Compare/Compare.test.d.ts +1 -0
  204. package/dist/esm/Compare/Compare.test.js +15 -0
  205. package/dist/esm/Compare/index.d.ts +2 -0
  206. package/dist/esm/Compare/index.js +2 -0
  207. package/dist/esm/Message/ImageMessage/ImageMessage.d.ts +4 -0
  208. package/dist/esm/Message/ImageMessage/ImageMessage.js +20 -0
  209. package/dist/esm/Message/LinkMessage/LinkMessage.d.ts +4 -0
  210. package/dist/esm/Message/LinkMessage/LinkMessage.js +25 -0
  211. package/dist/esm/Message/ListMessage/OrderedListMessage.d.ts +1 -1
  212. package/dist/esm/Message/ListMessage/OrderedListMessage.js +2 -2
  213. package/dist/esm/Message/Message.d.ts +47 -8
  214. package/dist/esm/Message/Message.js +67 -16
  215. package/dist/esm/Message/Message.test.js +265 -3
  216. package/dist/esm/Message/QuickResponse/QuickResponse.d.ts +17 -0
  217. package/dist/esm/Message/QuickResponse/QuickResponse.js +27 -0
  218. package/dist/esm/Message/QuickStarts/FallbackImg.d.ts +13 -0
  219. package/dist/esm/Message/QuickStarts/FallbackImg.js +9 -0
  220. package/dist/esm/Message/QuickStarts/QuickStartTile.d.ts +27 -0
  221. package/dist/esm/Message/QuickStarts/QuickStartTile.js +52 -0
  222. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.d.ts +23 -0
  223. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.js +35 -0
  224. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.d.ts +1 -0
  225. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.js +48 -0
  226. package/dist/esm/Message/QuickStarts/QuickStartTileHeader.d.ts +11 -0
  227. package/dist/esm/Message/QuickStarts/QuickStartTileHeader.js +5 -0
  228. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.d.ts +30 -0
  229. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.js +74 -0
  230. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart.d.ts +30 -0
  231. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart.js +74 -0
  232. package/dist/esm/Message/QuickStarts/types.d.ts +132 -0
  233. package/dist/esm/Message/QuickStarts/types.js +14 -0
  234. package/dist/esm/Message/TableMessage/TableMessage.d.ts +20 -0
  235. package/dist/esm/Message/TableMessage/TableMessage.js +62 -0
  236. package/dist/esm/Message/TableMessage/TbodyMessage.d.ts +7 -0
  237. package/dist/esm/Message/TableMessage/TbodyMessage.js +28 -0
  238. package/dist/esm/Message/TableMessage/TdMessage.d.ts +5 -0
  239. package/dist/esm/Message/TableMessage/TdMessage.js +21 -0
  240. package/dist/esm/Message/TableMessage/ThMessage.d.ts +5 -0
  241. package/dist/esm/Message/TableMessage/ThMessage.js +21 -0
  242. package/dist/esm/Message/TableMessage/TheadMessage.d.ts +5 -0
  243. package/dist/esm/Message/TableMessage/TheadMessage.js +21 -0
  244. package/dist/esm/Message/TableMessage/TrMessage.d.ts +7 -0
  245. package/dist/esm/Message/TableMessage/TrMessage.js +32 -0
  246. package/dist/esm/Message/TextMessage/TextMessage.d.ts +2 -1
  247. package/dist/esm/Message/TextMessage/TextMessage.js +3 -3
  248. package/dist/esm/Message/UserFeedback/CloseButton.d.ts +10 -0
  249. package/dist/esm/Message/UserFeedback/CloseButton.js +9 -0
  250. package/dist/esm/Message/UserFeedback/UserFeedback.d.ts +39 -0
  251. package/dist/esm/Message/UserFeedback/UserFeedback.js +50 -0
  252. package/dist/esm/Message/UserFeedback/UserFeedback.test.d.ts +1 -0
  253. package/dist/esm/Message/UserFeedback/UserFeedback.test.js +141 -0
  254. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.d.ts +42 -0
  255. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +112 -0
  256. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.d.ts +1 -0
  257. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +244 -0
  258. package/dist/esm/MessageBar/AttachButton.js +4 -2
  259. package/dist/esm/MessageBar/MessageBar.d.ts +11 -4
  260. package/dist/esm/MessageBar/MessageBar.js +122 -39
  261. package/dist/esm/MessageBar/MessageBar.test.js +12 -4
  262. package/dist/esm/MessageBar/MicrophoneButton.d.ts +1 -1
  263. package/dist/esm/MessageBar/SendButton.js +3 -1
  264. package/dist/esm/MessageBar/StopButton.js +3 -1
  265. package/dist/esm/MessageBox/MessageBox.test.d.ts +1 -0
  266. package/dist/esm/MessageBox/MessageBox.test.js +17 -0
  267. package/dist/esm/PreviewAttachment/PreviewAttachment.test.d.ts +1 -0
  268. package/dist/esm/PreviewAttachment/PreviewAttachment.test.js +23 -0
  269. package/dist/esm/ResponseActions/ResponseActionButton.d.ts +10 -1
  270. package/dist/esm/ResponseActions/ResponseActionButton.js +25 -2
  271. package/dist/esm/ResponseActions/ResponseActionButton.test.d.ts +1 -0
  272. package/dist/esm/ResponseActions/ResponseActionButton.test.js +49 -0
  273. package/dist/esm/ResponseActions/ResponseActions.d.ts +12 -2
  274. package/dist/esm/ResponseActions/ResponseActions.js +26 -9
  275. package/dist/esm/ResponseActions/ResponseActions.test.js +79 -5
  276. package/dist/esm/Settings/SettingsForm.d.ts +13 -0
  277. package/dist/esm/Settings/SettingsForm.js +20 -0
  278. package/dist/esm/Settings/SettingsForm.test.d.ts +1 -0
  279. package/dist/esm/Settings/SettingsForm.test.js +21 -0
  280. package/dist/esm/Settings/index.d.ts +2 -0
  281. package/dist/esm/Settings/index.js +2 -0
  282. package/dist/esm/TermsOfUse/TermsOfUse.d.ts +34 -0
  283. package/dist/esm/TermsOfUse/TermsOfUse.js +42 -0
  284. package/dist/esm/TermsOfUse/TermsOfUse.test.d.ts +1 -0
  285. package/dist/esm/TermsOfUse/TermsOfUse.test.js +74 -0
  286. package/dist/esm/TermsOfUse/index.d.ts +2 -0
  287. package/dist/esm/TermsOfUse/index.js +2 -0
  288. package/dist/esm/__mocks__/rehype-external-links.d.ts +2 -0
  289. package/dist/esm/__mocks__/rehype-external-links.js +2 -0
  290. package/dist/esm/__mocks__/rehype-sanitize.d.ts +2 -0
  291. package/dist/esm/__mocks__/rehype-sanitize.js +2 -0
  292. package/dist/esm/__mocks__/rehype-unwrap-images.d.ts +2 -0
  293. package/dist/esm/__mocks__/rehype-unwrap-images.js +2 -0
  294. package/dist/esm/index.d.ts +6 -0
  295. package/dist/esm/index.js +6 -0
  296. package/dist/tsconfig.tsbuildinfo +1 -1
  297. package/package.json +10 -13
  298. package/patternfly-docs/content/extensions/chatbot/about-chatbot.md +5 -2
  299. package/patternfly-docs/content/extensions/chatbot/design-guidelines.md +41 -4
  300. package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentError.tsx +2 -2
  301. package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +191 -12
  302. package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDropZone.tsx +2 -1
  303. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithAttachment.tsx +2 -2
  304. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithCustomResponseActions.tsx +5 -1
  305. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +71 -0
  306. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedbackTimeout.tsx +27 -0
  307. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +1 -1
  308. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickStart.tsx +31 -0
  309. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithResponseActions.tsx +1 -1
  310. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithSources.tsx +1 -1
  311. package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +74 -11
  312. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +221 -14
  313. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessageWithExtraContent.tsx +54 -0
  314. package/patternfly-docs/content/extensions/chatbot/examples/Messages/explore-pipeline-quickstart.ts +65 -0
  315. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFooter.tsx +1 -1
  316. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFootnote.tsx +5 -5
  317. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderBasic.tsx +1 -1
  318. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +36 -3
  319. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerNavigation.tsx +67 -0
  320. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerResizable.tsx +94 -0
  321. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarAttach.tsx +1 -1
  322. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomeInteraction.tsx +1 -1
  323. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomePrompt.tsx +7 -7
  324. package/patternfly-docs/content/extensions/chatbot/examples/UI/PF-TermsAndConditionsHeader.svg +148 -0
  325. package/patternfly-docs/content/extensions/chatbot/examples/UI/Settings.tsx +289 -0
  326. package/patternfly-docs/content/extensions/chatbot/examples/UI/SquareChatbotToggle.tsx +1 -1
  327. package/patternfly-docs/content/extensions/chatbot/examples/UI/TermsOfUse.tsx +147 -0
  328. package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +49 -6
  329. package/patternfly-docs/content/extensions/chatbot/examples/demos/AttachmentDemos.md +14 -0
  330. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +26 -3
  331. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.tsx +11 -11
  332. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +21 -20
  333. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +3 -3
  334. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +11 -11
  335. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedComparisonChatbot.tsx +206 -0
  336. package/patternfly-docs/content/extensions/chatbot/examples/demos/Feedback.tsx +104 -0
  337. package/patternfly-docs/content/extensions/chatbot/img/attached-file.svg +24 -29
  338. package/patternfly-docs/content/extensions/chatbot/img/attachment-menu.svg +4 -4
  339. package/patternfly-docs/content/extensions/chatbot/img/attachment-unsent.svg +30 -57
  340. package/patternfly-docs/content/extensions/chatbot/img/chatbot-elements.svg +5 -5
  341. package/patternfly-docs/content/extensions/chatbot/img/chatbot-quickstarts-tile.svg +58 -0
  342. package/patternfly-docs/content/extensions/chatbot/img/chatbot-settings.svg +83 -0
  343. package/patternfly-docs/content/extensions/chatbot/img/conversation-history.svg +6 -29
  344. package/patternfly-docs/content/extensions/chatbot/img/docked.svg +68 -49
  345. package/patternfly-docs/content/extensions/chatbot/img/footnote.svg +1 -1
  346. package/patternfly-docs/content/extensions/chatbot/img/fullscreen.svg +25 -16
  347. package/patternfly-docs/content/extensions/chatbot/img/listening.svg +1 -1
  348. package/patternfly-docs/content/extensions/chatbot/img/message-bar-elements.svg +3 -3
  349. package/patternfly-docs/content/extensions/chatbot/img/message-elements.svg +85 -142
  350. package/patternfly-docs/content/extensions/chatbot/img/overlay.svg +52 -36
  351. package/patternfly-docs/content/extensions/chatbot/img/settings-menu.svg +122 -0
  352. package/patternfly-docs/content/extensions/chatbot/img/source-tile.svg +62 -0
  353. package/patternfly-docs/content/extensions/chatbot/img/toggle-customizations.svg +12 -0
  354. package/src/AttachMenu/AttachMenu.scss +1 -1
  355. package/src/AttachmentEdit/AttachmentEdit.test.tsx +55 -0
  356. package/src/Chatbot/Chatbot.scss +1 -1
  357. package/src/Chatbot/Chatbot.test.tsx +31 -0
  358. package/src/ChatbotAlert/ChatbotAlert.test.tsx +31 -0
  359. package/src/ChatbotContent/ChatbotContent.test.tsx +15 -0
  360. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx +10 -4
  361. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +22 -1
  362. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +242 -3
  363. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +93 -25
  364. package/src/ChatbotConversationHistoryNav/EmptyState.tsx +44 -0
  365. package/src/ChatbotConversationHistoryNav/LoadingState.tsx +38 -0
  366. package/src/ChatbotFooter/ChatbotFooter.scss +0 -5
  367. package/src/ChatbotFooter/ChatbotFooter.test.tsx +15 -0
  368. package/src/ChatbotFooter/ChatbotFooternote.test.tsx +84 -0
  369. package/src/ChatbotFooter/ChatbotFootnote.tsx +2 -2
  370. package/src/ChatbotHeader/ChatbotHeader.scss +2 -5
  371. package/src/ChatbotHeader/ChatbotHeader.test.tsx +15 -0
  372. package/src/ChatbotHeader/ChatbotHeaderActions.test.tsx +17 -0
  373. package/src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx +20 -0
  374. package/src/ChatbotHeader/ChatbotHeaderCloseButton.tsx +57 -0
  375. package/src/ChatbotHeader/ChatbotHeaderMain.test.tsx +17 -0
  376. package/src/ChatbotHeader/ChatbotHeaderMenu.test.tsx +19 -0
  377. package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +11 -2
  378. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx +45 -0
  379. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +8 -1
  380. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx +43 -0
  381. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +11 -4
  382. package/src/ChatbotHeader/ChatbotHeaderTitle.test.tsx +59 -0
  383. package/src/ChatbotHeader/index.ts +1 -0
  384. package/src/ChatbotModal/ChatbotModal.scss +1 -1
  385. package/src/ChatbotToggle/ChatbotToggle.tsx +6 -1
  386. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx +26 -18
  387. package/src/ChatbotWelcomePrompt/__snapshots__/ChatbotWelcomePrompt.test.tsx.snap +2 -2
  388. package/src/CodeModal/CodeModal.scss +9 -1
  389. package/src/CodeModal/CodeModal.tsx +2 -13
  390. package/src/Compare/Compare.scss +72 -0
  391. package/src/Compare/Compare.test.tsx +31 -0
  392. package/src/Compare/Compare.tsx +98 -0
  393. package/src/Compare/index.ts +2 -0
  394. package/src/FileDetails/FileDetails.scss +1 -1
  395. package/src/FileDropZone/__snapshots__/FileDropZone.test.tsx.snap +1 -1
  396. package/src/Message/CodeBlockMessage/CodeBlockMessage.scss +4 -4
  397. package/src/Message/ImageMessage/ImageMessage.scss +9 -0
  398. package/src/Message/ImageMessage/ImageMessage.tsx +14 -0
  399. package/src/Message/LinkMessage/LinkMessage.tsx +34 -0
  400. package/src/Message/ListMessage/ListMessage.scss +6 -6
  401. package/src/Message/ListMessage/OrderedListMessage.tsx +2 -2
  402. package/src/Message/Message.scss +4 -26
  403. package/src/Message/Message.test.tsx +357 -3
  404. package/src/Message/Message.tsx +148 -31
  405. package/src/Message/MessageLoading.scss +2 -2
  406. package/src/Message/QuickResponse/QuickResponse.scss +33 -0
  407. package/src/Message/QuickResponse/QuickResponse.tsx +54 -0
  408. package/src/Message/QuickStarts/FallbackImg.tsx +24 -0
  409. package/src/Message/QuickStarts/QuickStartTile.scss +24 -0
  410. package/src/Message/QuickStarts/QuickStartTile.tsx +147 -0
  411. package/src/Message/QuickStarts/QuickStartTileDescription.test.tsx +57 -0
  412. package/src/Message/QuickStarts/QuickStartTileDescription.tsx +81 -0
  413. package/src/Message/QuickStarts/QuickStartTileHeader.tsx +21 -0
  414. package/src/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.ts +75 -0
  415. package/src/Message/QuickStarts/monitor-sampleapp-quickstart.ts +75 -0
  416. package/src/Message/QuickStarts/types.ts +154 -0
  417. package/src/Message/TableMessage/TableMessage.scss +23 -0
  418. package/src/Message/TableMessage/TableMessage.tsx +83 -0
  419. package/src/Message/TableMessage/TbodyMessage.tsx +20 -0
  420. package/src/Message/TableMessage/TdMessage.tsx +11 -0
  421. package/src/Message/TableMessage/ThMessage.tsx +11 -0
  422. package/src/Message/TableMessage/TheadMessage.tsx +11 -0
  423. package/src/Message/TableMessage/TrMessage.tsx +27 -0
  424. package/src/Message/TextMessage/TextMessage.scss +21 -12
  425. package/src/Message/TextMessage/TextMessage.tsx +3 -3
  426. package/src/Message/UserFeedback/CloseButton.tsx +21 -0
  427. package/src/Message/UserFeedback/UserFeedback.scss +53 -0
  428. package/src/Message/UserFeedback/UserFeedback.test.tsx +257 -0
  429. package/src/Message/UserFeedback/UserFeedback.tsx +132 -0
  430. package/src/Message/UserFeedback/UserFeedbackComplete.test.tsx +255 -0
  431. package/src/Message/UserFeedback/UserFeedbackComplete.tsx +211 -0
  432. package/src/MessageBar/AttachButton.scss +19 -3
  433. package/src/MessageBar/AttachButton.tsx +3 -1
  434. package/src/MessageBar/MessageBar.scss +38 -20
  435. package/src/MessageBar/MessageBar.test.tsx +12 -4
  436. package/src/MessageBar/MessageBar.tsx +153 -58
  437. package/src/MessageBar/MicrophoneButton.scss +8 -8
  438. package/src/MessageBar/MicrophoneButton.tsx +1 -1
  439. package/src/MessageBar/SendButton.tsx +2 -0
  440. package/src/MessageBar/StopButton.scss +17 -3
  441. package/src/MessageBar/StopButton.tsx +2 -0
  442. package/src/MessageBox/JumpButton.scss +6 -6
  443. package/src/MessageBox/MessageBox.test.tsx +26 -0
  444. package/src/PreviewAttachment/PreviewAttachment.test.tsx +51 -0
  445. package/src/ResponseActions/ResponseActionButton.test.tsx +52 -0
  446. package/src/ResponseActions/ResponseActionButton.tsx +59 -28
  447. package/src/ResponseActions/ResponseActions.scss +11 -9
  448. package/src/ResponseActions/ResponseActions.test.tsx +105 -5
  449. package/src/ResponseActions/ResponseActions.tsx +80 -9
  450. package/src/Settings/Settings.scss +34 -0
  451. package/src/Settings/SettingsForm.test.tsx +28 -0
  452. package/src/Settings/SettingsForm.tsx +25 -0
  453. package/src/Settings/index.ts +3 -0
  454. package/src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss +1 -1
  455. package/src/SourcesCard/SourcesCard.scss +2 -2
  456. package/src/TermsOfUse/TermsOfUse.scss +66 -0
  457. package/src/TermsOfUse/TermsOfUse.test.tsx +138 -0
  458. package/src/TermsOfUse/TermsOfUse.tsx +117 -0
  459. package/src/TermsOfUse/index.ts +3 -0
  460. package/src/__mocks__/rehype-external-links.ts +3 -0
  461. package/src/__mocks__/rehype-sanitize.ts +3 -0
  462. package/src/__mocks__/rehype-unwrap-images.tsx +3 -0
  463. package/src/index.ts +9 -0
  464. package/src/main.scss +8 -6
@@ -34,22 +34,22 @@ import userAvatar from '../Messages/user_avatar.svg';
34
34
  import patternflyAvatar from '../Messages/patternfly_avatar.jpg';
35
35
 
36
36
  const footnoteProps = {
37
- label: 'Lightspeed uses AI. Check for mistakes.',
37
+ label: 'ChatBot uses AI. Check for mistakes.',
38
38
  popover: {
39
- title: 'Verify accuracy',
40
- 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.`,
39
+ title: 'Verify information',
40
+ 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.`,
41
41
  bannerImage: {
42
42
  src: 'https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif',
43
43
  alt: 'Example image for footnote popover'
44
44
  },
45
45
  cta: {
46
- label: 'Got it',
46
+ label: 'Dismiss',
47
47
  onClick: () => {
48
48
  alert('Do something!');
49
49
  }
50
50
  },
51
51
  link: {
52
- label: 'Learn more',
52
+ label: 'View AI policy',
53
53
  url: 'https://www.redhat.com/'
54
54
  }
55
55
  }
@@ -129,12 +129,12 @@ const initialMessages: MessageProps[] = [
129
129
 
130
130
  const welcomePrompts = [
131
131
  {
132
- title: 'Topic 1',
133
- message: 'Helpful prompt for Topic 1'
132
+ title: 'Set up account',
133
+ message: 'Choose the necessary settings and preferences for your account.'
134
134
  },
135
135
  {
136
- title: 'Topic 2',
137
- message: 'Helpful prompt for Topic 2'
136
+ title: 'Troubleshoot issue',
137
+ message: 'Find documentation and instructions to resolve your issue.'
138
138
  }
139
139
  ];
140
140
 
@@ -436,8 +436,8 @@ export const ChatbotDemo: React.FunctionComponent = () => {
436
436
  so that users of assistive devices receive sufficient context */}
437
437
  <MessageBox announcement={announcement}>
438
438
  <ChatbotWelcomePrompt
439
- title="Hello, Chatbot User"
440
- description="How may I help you today?"
439
+ title="Hi, ChatBot User!"
440
+ description="How can I help you today?"
441
441
  prompts={welcomePrompts}
442
442
  />
443
443
  {/* This code block enables scrolling to the top of the last message.
@@ -36,18 +36,26 @@ interface ModalData {
36
36
  }
37
37
 
38
38
  export const BasicDemo: React.FunctionComponent = () => {
39
- const onAttachmentClose = (attachmentId: string) => {
40
- const index = messages.findIndex((message) => message.attachmentId === attachmentId);
39
+ const onAttachmentClose = (event, name, id) => {
41
40
  const updatedMessages: MessageProps[] = [];
42
- if (index >= 0) {
43
- messages.forEach((message) => updatedMessages.push(message));
44
- delete updatedMessages[index].attachmentName;
45
- delete updatedMessages[index].attachmentId;
46
- delete updatedMessages[index].onAttachmentClick;
47
- delete updatedMessages[index].onAttachmentClose;
48
- setMessages(updatedMessages);
49
- }
41
+ messages.map((message) => {
42
+ if (message.attachments) {
43
+ const filteredAttachments = message.attachments.filter((attachment) => attachment.id !== id);
44
+ message.attachments = filteredAttachments;
45
+ updatedMessages.push(message);
46
+ } else {
47
+ updatedMessages.push(message);
48
+ }
49
+ });
50
+ setMessages(updatedMessages);
50
51
  };
52
+
53
+ const onAttachmentClick = () => {
54
+ setCurrentModalData({ fileName: 'auth-operator.yml', code: 'test' });
55
+ setIsEditModalOpen(false);
56
+ setIsPreviewModalOpen(true);
57
+ };
58
+
51
59
  const initialMessages: MessageProps[] = [
52
60
  {
53
61
  role: 'user',
@@ -55,14 +63,7 @@ export const BasicDemo: React.FunctionComponent = () => {
55
63
  name: 'User',
56
64
  avatar: userAvatar,
57
65
  avatarProps: { isBordered: true },
58
- attachmentName: 'auth-operator.yml',
59
- attachmentId: '1',
60
- onAttachmentClose,
61
- onAttachmentClick: () => {
62
- setCurrentModalData({ fileName: 'auth-operator.yml', code: 'test' });
63
- setIsEditModalOpen(false);
64
- setIsPreviewModalOpen(true);
65
- }
66
+ attachments: [{ name: 'auth-operator.yml', id: '1', onClick: onAttachmentClick, onClose: onAttachmentClose }]
66
67
  },
67
68
  {
68
69
  role: 'bot',
@@ -230,7 +231,7 @@ export const BasicDemo: React.FunctionComponent = () => {
230
231
  {error}
231
232
  </ChatbotAlert>
232
233
  )}
233
- <ChatbotWelcomePrompt title="Hello, Chatbot User" description="How may I help you today?" />
234
+ <ChatbotWelcomePrompt title="Hi, ChatBot User!" description="How can I help you today?" />
234
235
  {messages.map((message) => (
235
236
  <Message key={message.name} {...message} />
236
237
  ))}
@@ -243,7 +244,7 @@ export const BasicDemo: React.FunctionComponent = () => {
243
244
  </div>
244
245
  )}
245
246
  <MessageBar onSendMessage={handleSend} hasAttachButton handleAttach={handleAttach} />
246
- <ChatbotFootnote label="Lightspeed uses AI. Check for mistakes." />
247
+ <ChatbotFootnote label="ChatBot uses AI. Check for mistakes." />
247
248
  </ChatbotFooter>
248
249
  </FileDropZone>
249
250
  </Chatbot>
@@ -209,7 +209,7 @@ export const AttachmentMenuDemo: React.FunctionComponent = () => {
209
209
  return (
210
210
  <>
211
211
  {/* this is required for react-dropzone to work in Safari and Firefox */}
212
- <input {...getInputProps()} />
212
+ <input {...getInputProps()} hidden />
213
213
  <ChatbotToggle
214
214
  tooltipLabel="Chatbot"
215
215
  isChatbotVisible={chatbotVisible}
@@ -232,7 +232,7 @@ export const AttachmentMenuDemo: React.FunctionComponent = () => {
232
232
  {error}
233
233
  </ChatbotAlert>
234
234
  )}
235
- <ChatbotWelcomePrompt title="Hello, Chatbot User" description="How may I help you today?" />
235
+ <ChatbotWelcomePrompt title="Hi, ChatBot User!" description="How can I help you today?" />
236
236
  {messages.map((message) => (
237
237
  <Message key={message.name} {...message} />
238
238
  ))}
@@ -259,7 +259,7 @@ export const AttachmentMenuDemo: React.FunctionComponent = () => {
259
259
  onAttachMenuToggleClick: onToggleClick
260
260
  }}
261
261
  />
262
- <ChatbotFootnote label="Lightspeed uses AI. Check for mistakes." />
262
+ <ChatbotFootnote label="ChatBot uses AI. Check for mistakes." />
263
263
  </ChatbotFooter>
264
264
  </>
265
265
  </FileDropZone>
@@ -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.
@@ -0,0 +1,206 @@
1
+ import React from 'react';
2
+
3
+ import {
4
+ Page,
5
+ Masthead,
6
+ MastheadMain,
7
+ MastheadBrand,
8
+ MastheadLogo,
9
+ PageSidebarBody,
10
+ PageSidebar,
11
+ MastheadToggle,
12
+ PageToggleButton
13
+ } from '@patternfly/react-core';
14
+ import Chatbot, { ChatbotDisplayMode } from '@patternfly/chatbot/dist/dynamic/Chatbot';
15
+ import ChatbotContent from '@patternfly/chatbot/dist/dynamic/ChatbotContent';
16
+ import ChatbotWelcomePrompt from '@patternfly/chatbot/dist/dynamic/ChatbotWelcomePrompt';
17
+ import ChatbotFooter from '@patternfly/chatbot/dist/dynamic/ChatbotFooter';
18
+ import MessageBar from '@patternfly/chatbot/dist/dynamic/MessageBar';
19
+ import MessageBox from '@patternfly/chatbot/dist/dynamic/MessageBox';
20
+ import Message, { MessageProps } from '@patternfly/chatbot/dist/dynamic/Message';
21
+ import ChatbotHeader, { ChatbotHeaderMain } from '@patternfly/chatbot/dist/dynamic/ChatbotHeader';
22
+ import Compare from '@patternfly/chatbot/dist/dynamic/Compare';
23
+ import { BarsIcon } from '@patternfly/react-icons';
24
+ import userAvatar from '../Messages/user_avatar.svg';
25
+ import patternflyAvatar from '../Messages/patternfly_avatar.jpg';
26
+
27
+ export const CompareChild = ({ name, input, hasNewInput, setIsSendButtonDisabled }) => {
28
+ const [messages, setMessages] = React.useState<MessageProps[]>([]);
29
+ const [announcement, setAnnouncement] = React.useState<string>();
30
+ const scrollToBottomRef = React.useRef<HTMLDivElement>(null);
31
+ const displayMode = ChatbotDisplayMode.embedded;
32
+
33
+ // you will likely want to come up with your own unique id function; this is for demo purposes only
34
+ const generateId = () => {
35
+ const id = Date.now() + Math.random();
36
+ return id.toString();
37
+ };
38
+
39
+ const handleSend = (input: string) => {
40
+ const date = new Date();
41
+ const newMessages: MessageProps[] = [];
42
+ messages.forEach((message) => newMessages.push(message));
43
+ newMessages.push({
44
+ avatar: userAvatar,
45
+ avatarProps: { isBordered: true },
46
+ id: generateId(),
47
+ name: 'You',
48
+ role: 'user',
49
+ content: input,
50
+ timestamp: `${date?.toLocaleDateString()} ${date?.toLocaleTimeString()}`
51
+ });
52
+ newMessages.push({
53
+ avatar: patternflyAvatar,
54
+ id: generateId(),
55
+ name,
56
+ role: 'bot',
57
+ timestamp: `${date?.toLocaleDateString()} ${date?.toLocaleTimeString()}`,
58
+ isLoading: true
59
+ });
60
+ setMessages(newMessages);
61
+ // make announcement to assistive devices that new messages have been added
62
+ setAnnouncement(`Message from You: ${input}. Message from ${name} is loading.`);
63
+
64
+ // this is for demo purposes only; in a real situation, there would be an API response we would wait for
65
+ setTimeout(() => {
66
+ const loadedMessages: MessageProps[] = [];
67
+ // we can't use structuredClone since messages contains functions, but we can't mutate
68
+ // items that are going into state or the UI won't update correctly
69
+ newMessages.forEach((message) => loadedMessages.push(message));
70
+ loadedMessages.pop();
71
+ loadedMessages.push({
72
+ id: generateId(),
73
+ role: 'bot',
74
+ content: `API response from ${name} goes here`,
75
+ name,
76
+ avatar: patternflyAvatar,
77
+ isLoading: false,
78
+ actions: {
79
+ // eslint-disable-next-line no-console
80
+ positive: { onClick: () => console.log('Good response') },
81
+ // eslint-disable-next-line no-console
82
+ negative: { onClick: () => console.log('Bad response') },
83
+ // eslint-disable-next-line no-console
84
+ copy: { onClick: () => console.log('Copy') },
85
+ // eslint-disable-next-line no-console
86
+ share: { onClick: () => console.log('Share') },
87
+ // eslint-disable-next-line no-console
88
+ listen: { onClick: () => console.log('Listen') }
89
+ },
90
+ timestamp: date.toLocaleString()
91
+ });
92
+ setMessages(loadedMessages);
93
+ // make announcement to assistive devices that new message has loaded
94
+ setAnnouncement(`Message from ${name}: API response goes here`);
95
+ setIsSendButtonDisabled(false);
96
+ }, 5000);
97
+ };
98
+
99
+ React.useEffect(() => {
100
+ if (input) {
101
+ handleSend(input);
102
+ }
103
+ }, [hasNewInput]);
104
+
105
+ // Auto-scrolls to the latest message
106
+ React.useEffect(() => {
107
+ // don't scroll the first load, but scroll if there's a current stream or a new source has popped up
108
+ if (messages.length > 0) {
109
+ scrollToBottomRef.current?.scrollIntoView();
110
+ }
111
+ }, [messages]);
112
+
113
+ return (
114
+ <Chatbot displayMode={displayMode}>
115
+ <ChatbotHeader>
116
+ <ChatbotHeaderMain>{name}</ChatbotHeaderMain>
117
+ </ChatbotHeader>
118
+ <ChatbotContent>
119
+ <MessageBox ariaLabel={`Scrollable message log for ${name}`} announcement={announcement}>
120
+ <ChatbotWelcomePrompt title="Hi, ChatBot User!" description="How can I help you today?" />
121
+ {messages.map((message) => (
122
+ <Message key={message.id} {...message} />
123
+ ))}
124
+ <div ref={scrollToBottomRef}></div>
125
+ </MessageBox>
126
+ </ChatbotContent>
127
+ </Chatbot>
128
+ );
129
+ };
130
+
131
+ export const EmbeddedComparisonChatbotDemo: React.FunctionComponent = () => {
132
+ const [input, setInput] = React.useState<string>();
133
+ const [hasNewInput, setHasNewInput] = React.useState(false);
134
+ const [isSidebarOpen, setIsSidebarOpen] = React.useState(false);
135
+ const [isSendButtonDisabled, setIsSendButtonDisabled] = React.useState(false);
136
+
137
+ const handleSend = (value: string) => {
138
+ setInput(value);
139
+ setHasNewInput(!hasNewInput);
140
+ setIsSendButtonDisabled(true);
141
+ };
142
+
143
+ const masthead = (
144
+ <Masthead>
145
+ <MastheadMain>
146
+ <MastheadToggle>
147
+ <PageToggleButton
148
+ variant="plain"
149
+ aria-label="Global navigation"
150
+ isSidebarOpen={isSidebarOpen}
151
+ onSidebarToggle={() => setIsSidebarOpen(!isSidebarOpen)}
152
+ id="fill-nav-toggle"
153
+ >
154
+ <BarsIcon />
155
+ </PageToggleButton>
156
+ </MastheadToggle>
157
+ <MastheadBrand>
158
+ <MastheadLogo href="https://patternfly.org" target="_blank">
159
+ Logo
160
+ </MastheadLogo>
161
+ </MastheadBrand>
162
+ </MastheadMain>
163
+ </Masthead>
164
+ );
165
+
166
+ const sidebar = (
167
+ <PageSidebar isSidebarOpen={isSidebarOpen} id="fill-sidebar">
168
+ <PageSidebarBody>Navigation</PageSidebarBody>
169
+ </PageSidebar>
170
+ );
171
+
172
+ return (
173
+ <Page masthead={masthead} sidebar={sidebar} isContentFilled>
174
+ <div className="pf-chatbot__compare-container">
175
+ <Compare
176
+ firstChild={
177
+ <CompareChild
178
+ input={input}
179
+ hasNewInput={hasNewInput}
180
+ name="ChatBot 1"
181
+ setIsSendButtonDisabled={setIsSendButtonDisabled}
182
+ />
183
+ }
184
+ secondChild={
185
+ <CompareChild
186
+ input={input}
187
+ hasNewInput={hasNewInput}
188
+ name="ChatBot 2"
189
+ setIsSendButtonDisabled={setIsSendButtonDisabled}
190
+ />
191
+ }
192
+ firstChildDisplayName="ChatBot 1"
193
+ secondChildDisplayName="ChatBot 2"
194
+ />
195
+ <ChatbotFooter>
196
+ <MessageBar
197
+ onSendMessage={handleSend}
198
+ hasAttachButton={false}
199
+ alwayShowSendButton
200
+ isSendButtonDisabled={isSendButtonDisabled}
201
+ />
202
+ </ChatbotFooter>
203
+ </div>
204
+ </Page>
205
+ );
206
+ };
@@ -0,0 +1,104 @@
1
+ import React from 'react';
2
+ import Message from '@patternfly/chatbot/dist/dynamic/Message';
3
+ import patternflyAvatar from '../Messages/patternfly_avatar.jpg';
4
+
5
+ export const MessageWithFeedbackExample: React.FunctionComponent = () => {
6
+ const [showUserFeedbackForm, setShowUserFeedbackForm] = React.useState(false);
7
+ const [showCompletionForm, setShowCompletionForm] = React.useState(false);
8
+ const [launchButton, setLaunchButton] = React.useState<string>();
9
+ const positiveRef = React.useRef<HTMLButtonElement>(null);
10
+ const negativeRef = React.useRef<HTMLButtonElement>(null);
11
+ const feedbackId = 'user-feedback-form';
12
+ const completeId = 'user-feedback-received';
13
+
14
+ const getCurrentCard = () => {
15
+ if (showUserFeedbackForm) {
16
+ return feedbackId;
17
+ }
18
+ if (showCompletionForm) {
19
+ return completeId;
20
+ }
21
+ };
22
+
23
+ const isExpanded = showUserFeedbackForm || showCompletionForm;
24
+
25
+ const focusLaunchButton = () => {
26
+ if (launchButton === 'positive') {
27
+ positiveRef.current?.focus();
28
+ }
29
+ if (launchButton === 'negative') {
30
+ negativeRef.current?.focus();
31
+ }
32
+ };
33
+
34
+ return (
35
+ <Message
36
+ name="Bot"
37
+ role="bot"
38
+ avatar={patternflyAvatar}
39
+ content="Bot message with user feedback flow; click on a message action to launch the feedback flow. Click submit to see the thank-you message."
40
+ actions={{
41
+ positive: {
42
+ onClick: () => {
43
+ setShowUserFeedbackForm(true);
44
+ setShowCompletionForm(false);
45
+ setLaunchButton('positive');
46
+ },
47
+ /* These are important for accessibility */
48
+ 'aria-expanded': isExpanded,
49
+ 'aria-controls': getCurrentCard(),
50
+ ref: positiveRef
51
+ },
52
+ negative: {
53
+ onClick: () => {
54
+ setShowUserFeedbackForm(true);
55
+ setShowCompletionForm(false);
56
+ setLaunchButton('negative');
57
+ },
58
+ /* These are important for accessibility */
59
+ 'aria-expanded': isExpanded,
60
+ 'aria-controls': getCurrentCard(),
61
+ ref: negativeRef
62
+ }
63
+ }}
64
+ userFeedbackForm={
65
+ showUserFeedbackForm
66
+ ? /* eslint-disable indent */
67
+ {
68
+ quickResponses: [
69
+ { id: '1', content: 'Helpful information' },
70
+ { id: '2', content: 'Easy to understand' },
71
+ { id: '3', content: 'Resolved my issue' }
72
+ ],
73
+ onSubmit: (quickResponse, additionalFeedback) => {
74
+ alert(`Selected ${quickResponse} and received the additional feedback: ${additionalFeedback}`);
75
+ setShowUserFeedbackForm(false);
76
+ setShowCompletionForm(true);
77
+ focusLaunchButton();
78
+ },
79
+ hasTextArea: true,
80
+ onClose: () => {
81
+ setShowUserFeedbackForm(false);
82
+ focusLaunchButton();
83
+ },
84
+ id: feedbackId
85
+ }
86
+ : undefined
87
+ /* eslint-enable indent */
88
+ }
89
+ userFeedbackComplete={
90
+ showCompletionForm
91
+ ? /* eslint-disable indent */
92
+ {
93
+ onClose: () => {
94
+ setShowCompletionForm(false);
95
+ focusLaunchButton();
96
+ },
97
+ id: completeId
98
+ }
99
+ : undefined
100
+ /* eslint-enable indent */
101
+ }
102
+ />
103
+ );
104
+ };