@patternfly/chatbot 2.2.0-prerelease.2 → 2.2.0-prerelease.20

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 (370) 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.js +3 -1
  10. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +17 -1
  11. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +9 -9
  12. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +39 -3
  13. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.d.ts +1 -0
  14. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.js +18 -0
  15. package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.d.ts +1 -0
  16. package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.js +87 -0
  17. package/dist/cjs/ChatbotHeader/ChatbotHeader.test.d.ts +1 -0
  18. package/dist/cjs/ChatbotHeader/ChatbotHeader.test.js +18 -0
  19. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.d.ts +1 -0
  20. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.js +18 -0
  21. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +17 -0
  22. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.js +16 -0
  23. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -0
  24. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.js +20 -0
  25. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.d.ts +1 -0
  26. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.js +18 -0
  27. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.d.ts +2 -0
  28. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +4 -2
  29. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -0
  30. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.js +20 -0
  31. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -1
  32. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -0
  33. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +43 -0
  34. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +3 -1
  35. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -0
  36. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +41 -0
  37. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +1 -0
  38. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.js +47 -0
  39. package/dist/cjs/ChatbotHeader/index.d.ts +1 -0
  40. package/dist/cjs/ChatbotHeader/index.js +1 -0
  41. package/dist/cjs/ChatbotToggle/ChatbotToggle.js +3 -1
  42. package/dist/cjs/CodeModal/CodeModal.js +2 -12
  43. package/dist/cjs/Compare/Compare.d.ts +17 -0
  44. package/dist/cjs/Compare/Compare.js +50 -0
  45. package/dist/cjs/Compare/Compare.test.d.ts +1 -0
  46. package/dist/cjs/Compare/Compare.test.js +20 -0
  47. package/dist/cjs/Compare/index.d.ts +2 -0
  48. package/dist/cjs/Compare/index.js +23 -0
  49. package/dist/cjs/Message/ListMessage/OrderedListMessage.d.ts +1 -1
  50. package/dist/cjs/Message/ListMessage/OrderedListMessage.js +2 -2
  51. package/dist/cjs/Message/Message.d.ts +28 -7
  52. package/dist/cjs/Message/Message.js +29 -14
  53. package/dist/cjs/Message/Message.test.js +89 -3
  54. package/dist/cjs/Message/QuickResponse/QuickResponse.d.ts +17 -0
  55. package/dist/cjs/Message/QuickResponse/QuickResponse.js +34 -0
  56. package/dist/cjs/Message/QuickStarts/FallbackImg.d.ts +13 -0
  57. package/dist/cjs/Message/QuickStarts/FallbackImg.js +34 -0
  58. package/dist/cjs/Message/QuickStarts/QuickStartTile.d.ts +27 -0
  59. package/dist/cjs/Message/QuickStarts/QuickStartTile.js +82 -0
  60. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.d.ts +23 -0
  61. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.js +64 -0
  62. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.d.ts +1 -0
  63. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.js +76 -0
  64. package/dist/cjs/Message/QuickStarts/QuickStartTileHeader.d.ts +11 -0
  65. package/dist/cjs/Message/QuickStarts/QuickStartTileHeader.js +30 -0
  66. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.d.ts +30 -0
  67. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.js +77 -0
  68. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart.d.ts +30 -0
  69. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart.js +77 -0
  70. package/dist/cjs/Message/QuickStarts/types.d.ts +132 -0
  71. package/dist/cjs/Message/QuickStarts/types.js +17 -0
  72. package/dist/cjs/Message/TextMessage/TextMessage.d.ts +2 -1
  73. package/dist/cjs/Message/TextMessage/TextMessage.js +2 -2
  74. package/dist/cjs/Message/UserFeedback/CloseButton.d.ts +10 -0
  75. package/dist/cjs/Message/UserFeedback/CloseButton.js +14 -0
  76. package/dist/cjs/Message/UserFeedback/UserFeedback.d.ts +39 -0
  77. package/dist/cjs/Message/UserFeedback/UserFeedback.js +55 -0
  78. package/dist/cjs/Message/UserFeedback/UserFeedback.test.d.ts +1 -0
  79. package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +146 -0
  80. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.d.ts +42 -0
  81. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +117 -0
  82. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.d.ts +1 -0
  83. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +249 -0
  84. package/dist/cjs/MessageBar/AttachButton.js +4 -2
  85. package/dist/cjs/MessageBar/MessageBar.js +9 -12
  86. package/dist/cjs/MessageBar/MessageBar.test.js +4 -4
  87. package/dist/cjs/MessageBar/SendButton.js +3 -1
  88. package/dist/cjs/MessageBar/StopButton.js +3 -1
  89. package/dist/cjs/MessageBox/MessageBox.test.d.ts +1 -0
  90. package/dist/cjs/MessageBox/MessageBox.test.js +22 -0
  91. package/dist/cjs/PreviewAttachment/PreviewAttachment.test.d.ts +1 -0
  92. package/dist/cjs/PreviewAttachment/PreviewAttachment.test.js +28 -0
  93. package/dist/cjs/ResponseActions/ResponseActionButton.d.ts +10 -1
  94. package/dist/cjs/ResponseActions/ResponseActionButton.js +28 -5
  95. package/dist/cjs/ResponseActions/ResponseActionButton.test.d.ts +1 -0
  96. package/dist/cjs/ResponseActions/ResponseActionButton.test.js +54 -0
  97. package/dist/cjs/ResponseActions/ResponseActions.d.ts +12 -2
  98. package/dist/cjs/ResponseActions/ResponseActions.js +26 -9
  99. package/dist/cjs/ResponseActions/ResponseActions.test.js +79 -5
  100. package/dist/cjs/Settings/SettingsForm.d.ts +13 -0
  101. package/dist/cjs/Settings/SettingsForm.js +27 -0
  102. package/dist/cjs/Settings/SettingsForm.test.d.ts +1 -0
  103. package/dist/cjs/Settings/SettingsForm.test.js +26 -0
  104. package/dist/cjs/Settings/index.d.ts +2 -0
  105. package/dist/cjs/Settings/index.js +23 -0
  106. package/dist/cjs/TermsOfUse/TermsOfUse.d.ts +34 -0
  107. package/dist/cjs/TermsOfUse/TermsOfUse.js +49 -0
  108. package/dist/cjs/TermsOfUse/TermsOfUse.test.d.ts +1 -0
  109. package/dist/cjs/TermsOfUse/TermsOfUse.test.js +79 -0
  110. package/dist/cjs/TermsOfUse/index.d.ts +2 -0
  111. package/dist/cjs/TermsOfUse/index.js +23 -0
  112. package/dist/cjs/index.d.ts +6 -0
  113. package/dist/cjs/index.js +10 -1
  114. package/dist/css/main.css +372 -102
  115. package/dist/css/main.css.map +1 -1
  116. package/dist/dynamic/Compare/package.json +1 -0
  117. package/dist/dynamic/Settings/package.json +1 -0
  118. package/dist/dynamic/TermsOfUse/package.json +1 -0
  119. package/dist/esm/AttachmentEdit/AttachmentEdit.test.d.ts +1 -0
  120. package/dist/esm/AttachmentEdit/AttachmentEdit.test.js +47 -0
  121. package/dist/esm/Chatbot/Chatbot.test.d.ts +1 -0
  122. package/dist/esm/Chatbot/Chatbot.test.js +23 -0
  123. package/dist/esm/ChatbotAlert/ChatbotAlert.test.d.ts +1 -0
  124. package/dist/esm/ChatbotAlert/ChatbotAlert.test.js +22 -0
  125. package/dist/esm/ChatbotContent/ChatbotContent.test.d.ts +1 -0
  126. package/dist/esm/ChatbotContent/ChatbotContent.test.js +13 -0
  127. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +3 -1
  128. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +17 -1
  129. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +9 -9
  130. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +39 -3
  131. package/dist/esm/ChatbotFooter/ChatbotFooter.test.d.ts +1 -0
  132. package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +13 -0
  133. package/dist/esm/ChatbotFooter/ChatbotFooternote.test.d.ts +1 -0
  134. package/dist/esm/ChatbotFooter/ChatbotFooternote.test.js +82 -0
  135. package/dist/esm/ChatbotHeader/ChatbotHeader.test.d.ts +1 -0
  136. package/dist/esm/ChatbotHeader/ChatbotHeader.test.js +13 -0
  137. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.d.ts +1 -0
  138. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.js +13 -0
  139. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +17 -0
  140. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.js +10 -0
  141. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -0
  142. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.js +15 -0
  143. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.d.ts +1 -0
  144. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.js +13 -0
  145. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.d.ts +2 -0
  146. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +4 -2
  147. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -0
  148. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +15 -0
  149. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -1
  150. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -0
  151. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +38 -0
  152. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +3 -1
  153. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -0
  154. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +36 -0
  155. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +1 -0
  156. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.js +42 -0
  157. package/dist/esm/ChatbotHeader/index.d.ts +1 -0
  158. package/dist/esm/ChatbotHeader/index.js +1 -0
  159. package/dist/esm/ChatbotToggle/ChatbotToggle.js +3 -1
  160. package/dist/esm/CodeModal/CodeModal.js +2 -12
  161. package/dist/esm/Compare/Compare.d.ts +17 -0
  162. package/dist/esm/Compare/Compare.js +43 -0
  163. package/dist/esm/Compare/Compare.test.d.ts +1 -0
  164. package/dist/esm/Compare/Compare.test.js +15 -0
  165. package/dist/esm/Compare/index.d.ts +2 -0
  166. package/dist/esm/Compare/index.js +2 -0
  167. package/dist/esm/Message/ListMessage/OrderedListMessage.d.ts +1 -1
  168. package/dist/esm/Message/ListMessage/OrderedListMessage.js +2 -2
  169. package/dist/esm/Message/Message.d.ts +28 -7
  170. package/dist/esm/Message/Message.js +27 -12
  171. package/dist/esm/Message/Message.test.js +89 -3
  172. package/dist/esm/Message/QuickResponse/QuickResponse.d.ts +17 -0
  173. package/dist/esm/Message/QuickResponse/QuickResponse.js +27 -0
  174. package/dist/esm/Message/QuickStarts/FallbackImg.d.ts +13 -0
  175. package/dist/esm/Message/QuickStarts/FallbackImg.js +9 -0
  176. package/dist/esm/Message/QuickStarts/QuickStartTile.d.ts +27 -0
  177. package/dist/esm/Message/QuickStarts/QuickStartTile.js +52 -0
  178. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.d.ts +23 -0
  179. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.js +35 -0
  180. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.d.ts +1 -0
  181. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.js +48 -0
  182. package/dist/esm/Message/QuickStarts/QuickStartTileHeader.d.ts +11 -0
  183. package/dist/esm/Message/QuickStarts/QuickStartTileHeader.js +5 -0
  184. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.d.ts +30 -0
  185. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.js +74 -0
  186. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart.d.ts +30 -0
  187. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart.js +74 -0
  188. package/dist/esm/Message/QuickStarts/types.d.ts +132 -0
  189. package/dist/esm/Message/QuickStarts/types.js +14 -0
  190. package/dist/esm/Message/TextMessage/TextMessage.d.ts +2 -1
  191. package/dist/esm/Message/TextMessage/TextMessage.js +3 -3
  192. package/dist/esm/Message/UserFeedback/CloseButton.d.ts +10 -0
  193. package/dist/esm/Message/UserFeedback/CloseButton.js +9 -0
  194. package/dist/esm/Message/UserFeedback/UserFeedback.d.ts +39 -0
  195. package/dist/esm/Message/UserFeedback/UserFeedback.js +50 -0
  196. package/dist/esm/Message/UserFeedback/UserFeedback.test.d.ts +1 -0
  197. package/dist/esm/Message/UserFeedback/UserFeedback.test.js +141 -0
  198. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.d.ts +42 -0
  199. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +112 -0
  200. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.d.ts +1 -0
  201. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +244 -0
  202. package/dist/esm/MessageBar/AttachButton.js +4 -2
  203. package/dist/esm/MessageBar/MessageBar.js +9 -12
  204. package/dist/esm/MessageBar/MessageBar.test.js +4 -4
  205. package/dist/esm/MessageBar/SendButton.js +3 -1
  206. package/dist/esm/MessageBar/StopButton.js +3 -1
  207. package/dist/esm/MessageBox/MessageBox.test.d.ts +1 -0
  208. package/dist/esm/MessageBox/MessageBox.test.js +17 -0
  209. package/dist/esm/PreviewAttachment/PreviewAttachment.test.d.ts +1 -0
  210. package/dist/esm/PreviewAttachment/PreviewAttachment.test.js +23 -0
  211. package/dist/esm/ResponseActions/ResponseActionButton.d.ts +10 -1
  212. package/dist/esm/ResponseActions/ResponseActionButton.js +25 -2
  213. package/dist/esm/ResponseActions/ResponseActionButton.test.d.ts +1 -0
  214. package/dist/esm/ResponseActions/ResponseActionButton.test.js +49 -0
  215. package/dist/esm/ResponseActions/ResponseActions.d.ts +12 -2
  216. package/dist/esm/ResponseActions/ResponseActions.js +26 -9
  217. package/dist/esm/ResponseActions/ResponseActions.test.js +79 -5
  218. package/dist/esm/Settings/SettingsForm.d.ts +13 -0
  219. package/dist/esm/Settings/SettingsForm.js +20 -0
  220. package/dist/esm/Settings/SettingsForm.test.d.ts +1 -0
  221. package/dist/esm/Settings/SettingsForm.test.js +21 -0
  222. package/dist/esm/Settings/index.d.ts +2 -0
  223. package/dist/esm/Settings/index.js +2 -0
  224. package/dist/esm/TermsOfUse/TermsOfUse.d.ts +34 -0
  225. package/dist/esm/TermsOfUse/TermsOfUse.js +42 -0
  226. package/dist/esm/TermsOfUse/TermsOfUse.test.d.ts +1 -0
  227. package/dist/esm/TermsOfUse/TermsOfUse.test.js +74 -0
  228. package/dist/esm/TermsOfUse/index.d.ts +2 -0
  229. package/dist/esm/TermsOfUse/index.js +2 -0
  230. package/dist/esm/index.d.ts +6 -0
  231. package/dist/esm/index.js +6 -0
  232. package/dist/tsconfig.tsbuildinfo +1 -1
  233. package/package.json +7 -13
  234. package/patternfly-docs/content/extensions/chatbot/about-chatbot.md +5 -2
  235. package/patternfly-docs/content/extensions/chatbot/design-guidelines.md +41 -4
  236. package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +142 -13
  237. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithCustomResponseActions.tsx +4 -0
  238. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +71 -0
  239. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedbackTimeout.tsx +27 -0
  240. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickStart.tsx +31 -0
  241. package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +63 -11
  242. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +182 -12
  243. package/patternfly-docs/content/extensions/chatbot/examples/Messages/explore-pipeline-quickstart.ts +65 -0
  244. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFooter.tsx +1 -1
  245. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFootnote.tsx +2 -2
  246. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +2 -2
  247. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerNavigation.tsx +67 -0
  248. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerResizable.tsx +94 -0
  249. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarAttach.tsx +1 -1
  250. package/patternfly-docs/content/extensions/chatbot/examples/UI/PF-TermsAndConditionsHeader.svg +148 -0
  251. package/patternfly-docs/content/extensions/chatbot/examples/UI/Settings.tsx +289 -0
  252. package/patternfly-docs/content/extensions/chatbot/examples/UI/SquareChatbotToggle.tsx +1 -1
  253. package/patternfly-docs/content/extensions/chatbot/examples/UI/TermsOfUse.tsx +147 -0
  254. package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +49 -6
  255. package/patternfly-docs/content/extensions/chatbot/examples/demos/AttachmentDemos.md +14 -0
  256. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +26 -3
  257. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.tsx +2 -2
  258. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +20 -19
  259. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +2 -2
  260. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +2 -2
  261. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedComparisonChatbot.tsx +206 -0
  262. package/patternfly-docs/content/extensions/chatbot/examples/demos/Feedback.tsx +104 -0
  263. package/patternfly-docs/content/extensions/chatbot/img/attached-file.svg +24 -29
  264. package/patternfly-docs/content/extensions/chatbot/img/attachment-menu.svg +4 -4
  265. package/patternfly-docs/content/extensions/chatbot/img/attachment-unsent.svg +30 -57
  266. package/patternfly-docs/content/extensions/chatbot/img/chatbot-elements.svg +5 -5
  267. package/patternfly-docs/content/extensions/chatbot/img/chatbot-quickstarts-tile.svg +58 -0
  268. package/patternfly-docs/content/extensions/chatbot/img/chatbot-settings.svg +83 -0
  269. package/patternfly-docs/content/extensions/chatbot/img/conversation-history.svg +6 -29
  270. package/patternfly-docs/content/extensions/chatbot/img/docked.svg +68 -49
  271. package/patternfly-docs/content/extensions/chatbot/img/footnote.svg +1 -1
  272. package/patternfly-docs/content/extensions/chatbot/img/fullscreen.svg +25 -16
  273. package/patternfly-docs/content/extensions/chatbot/img/listening.svg +1 -1
  274. package/patternfly-docs/content/extensions/chatbot/img/message-bar-elements.svg +3 -3
  275. package/patternfly-docs/content/extensions/chatbot/img/message-elements.svg +85 -142
  276. package/patternfly-docs/content/extensions/chatbot/img/overlay.svg +52 -36
  277. package/patternfly-docs/content/extensions/chatbot/img/settings-menu.svg +122 -0
  278. package/patternfly-docs/content/extensions/chatbot/img/source-tile.svg +62 -0
  279. package/patternfly-docs/content/extensions/chatbot/img/toggle-customizations.svg +12 -0
  280. package/src/AttachMenu/AttachMenu.scss +1 -1
  281. package/src/AttachmentEdit/AttachmentEdit.test.tsx +55 -0
  282. package/src/Chatbot/Chatbot.test.tsx +31 -0
  283. package/src/ChatbotAlert/ChatbotAlert.test.tsx +31 -0
  284. package/src/ChatbotContent/ChatbotContent.test.tsx +15 -0
  285. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx +7 -1
  286. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +8 -1
  287. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +112 -3
  288. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +41 -8
  289. package/src/ChatbotFooter/ChatbotFooter.scss +2 -6
  290. package/src/ChatbotFooter/ChatbotFooter.test.tsx +15 -0
  291. package/src/ChatbotFooter/ChatbotFooternote.test.tsx +84 -0
  292. package/src/ChatbotHeader/ChatbotHeader.scss +2 -5
  293. package/src/ChatbotHeader/ChatbotHeader.test.tsx +15 -0
  294. package/src/ChatbotHeader/ChatbotHeaderActions.test.tsx +17 -0
  295. package/src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx +20 -0
  296. package/src/ChatbotHeader/ChatbotHeaderCloseButton.tsx +57 -0
  297. package/src/ChatbotHeader/ChatbotHeaderMain.test.tsx +17 -0
  298. package/src/ChatbotHeader/ChatbotHeaderMenu.test.tsx +19 -0
  299. package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +11 -2
  300. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx +45 -0
  301. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +8 -1
  302. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx +43 -0
  303. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +8 -1
  304. package/src/ChatbotHeader/ChatbotHeaderTitle.test.tsx +59 -0
  305. package/src/ChatbotHeader/index.ts +1 -0
  306. package/src/ChatbotModal/ChatbotModal.scss +1 -1
  307. package/src/ChatbotToggle/ChatbotToggle.tsx +6 -1
  308. package/src/CodeModal/CodeModal.scss +9 -1
  309. package/src/CodeModal/CodeModal.tsx +2 -13
  310. package/src/Compare/Compare.scss +72 -0
  311. package/src/Compare/Compare.test.tsx +31 -0
  312. package/src/Compare/Compare.tsx +98 -0
  313. package/src/Compare/index.ts +2 -0
  314. package/src/FileDetails/FileDetails.scss +1 -1
  315. package/src/FileDropZone/__snapshots__/FileDropZone.test.tsx.snap +1 -1
  316. package/src/Message/CodeBlockMessage/CodeBlockMessage.scss +4 -4
  317. package/src/Message/ListMessage/ListMessage.scss +5 -5
  318. package/src/Message/ListMessage/OrderedListMessage.tsx +2 -2
  319. package/src/Message/Message.scss +4 -26
  320. package/src/Message/Message.test.tsx +116 -3
  321. package/src/Message/Message.tsx +72 -22
  322. package/src/Message/MessageLoading.scss +2 -2
  323. package/src/Message/QuickResponse/QuickResponse.scss +33 -0
  324. package/src/Message/QuickResponse/QuickResponse.tsx +54 -0
  325. package/src/Message/QuickStarts/FallbackImg.tsx +24 -0
  326. package/src/Message/QuickStarts/QuickStartTile.scss +24 -0
  327. package/src/Message/QuickStarts/QuickStartTile.tsx +147 -0
  328. package/src/Message/QuickStarts/QuickStartTileDescription.test.tsx +57 -0
  329. package/src/Message/QuickStarts/QuickStartTileDescription.tsx +81 -0
  330. package/src/Message/QuickStarts/QuickStartTileHeader.tsx +21 -0
  331. package/src/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.ts +75 -0
  332. package/src/Message/QuickStarts/monitor-sampleapp-quickstart.ts +75 -0
  333. package/src/Message/QuickStarts/types.ts +154 -0
  334. package/src/Message/TextMessage/TextMessage.scss +8 -11
  335. package/src/Message/TextMessage/TextMessage.tsx +3 -3
  336. package/src/Message/UserFeedback/CloseButton.tsx +21 -0
  337. package/src/Message/UserFeedback/UserFeedback.scss +53 -0
  338. package/src/Message/UserFeedback/UserFeedback.test.tsx +257 -0
  339. package/src/Message/UserFeedback/UserFeedback.tsx +132 -0
  340. package/src/Message/UserFeedback/UserFeedbackComplete.test.tsx +255 -0
  341. package/src/Message/UserFeedback/UserFeedbackComplete.tsx +211 -0
  342. package/src/MessageBar/AttachButton.scss +19 -3
  343. package/src/MessageBar/AttachButton.tsx +3 -1
  344. package/src/MessageBar/MessageBar.scss +3 -2
  345. package/src/MessageBar/MessageBar.test.tsx +4 -4
  346. package/src/MessageBar/MessageBar.tsx +9 -12
  347. package/src/MessageBar/MicrophoneButton.scss +8 -8
  348. package/src/MessageBar/SendButton.tsx +2 -0
  349. package/src/MessageBar/StopButton.scss +17 -3
  350. package/src/MessageBar/StopButton.tsx +2 -0
  351. package/src/MessageBox/JumpButton.scss +6 -6
  352. package/src/MessageBox/MessageBox.test.tsx +26 -0
  353. package/src/PreviewAttachment/PreviewAttachment.test.tsx +51 -0
  354. package/src/ResponseActions/ResponseActionButton.test.tsx +52 -0
  355. package/src/ResponseActions/ResponseActionButton.tsx +59 -28
  356. package/src/ResponseActions/ResponseActions.scss +11 -9
  357. package/src/ResponseActions/ResponseActions.test.tsx +103 -5
  358. package/src/ResponseActions/ResponseActions.tsx +80 -9
  359. package/src/Settings/Settings.scss +34 -0
  360. package/src/Settings/SettingsForm.test.tsx +28 -0
  361. package/src/Settings/SettingsForm.tsx +25 -0
  362. package/src/Settings/index.ts +3 -0
  363. package/src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss +1 -1
  364. package/src/SourcesCard/SourcesCard.scss +2 -2
  365. package/src/TermsOfUse/TermsOfUse.scss +66 -0
  366. package/src/TermsOfUse/TermsOfUse.test.tsx +138 -0
  367. package/src/TermsOfUse/TermsOfUse.tsx +117 -0
  368. package/src/TermsOfUse/index.ts +3 -0
  369. package/src/index.ts +9 -0
  370. package/src/main.scss +6 -4
@@ -0,0 +1,42 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ // ============================================================================
13
+ // Terms of Use Modal - Chatbot Modal Extension
14
+ // ============================================================================
15
+ import React from 'react';
16
+ import { Button, Content, ModalBody, ModalFooter, ModalHeader } from '@patternfly/react-core';
17
+ import { ChatbotDisplayMode } from '../Chatbot';
18
+ import ChatbotModal from '../ChatbotModal/ChatbotModal';
19
+ export const TermsOfUseBase = (_a) => {
20
+ var { handleModalToggle, isModalOpen, onPrimaryAction, onSecondaryAction, primaryActionBtn = 'Accept', secondaryActionBtn = 'Decline', title = 'Terms of use', image, altText, displayMode = ChatbotDisplayMode.default, className, children, innerRef, ouiaId = 'TermsOfUse' } = _a, props = __rest(_a, ["handleModalToggle", "isModalOpen", "onPrimaryAction", "onSecondaryAction", "primaryActionBtn", "secondaryActionBtn", "title", "image", "altText", "displayMode", "className", "children", "innerRef", "ouiaId"]);
21
+ const handlePrimaryAction = (_event) => {
22
+ handleModalToggle(_event);
23
+ onPrimaryAction && onPrimaryAction(_event);
24
+ };
25
+ const handleSecondaryAction = (_event) => {
26
+ onSecondaryAction(_event);
27
+ };
28
+ const modal = (React.createElement(ChatbotModal, Object.assign({ isOpen: isModalOpen, ouiaId: ouiaId, "aria-labelledby": "terms-of-use-title", "aria-describedby": "terms-of-use-modal", className: `pf-chatbot__terms-of-use-modal pf-chatbot__terms-of-use-modal--${displayMode} ${className ? className : ''}`, displayMode: displayMode }, props),
29
+ React.createElement("section", { className: `pf-chatbot__terms-of-use--section`, "aria-label": title, tabIndex: -1, ref: innerRef },
30
+ React.createElement(ModalHeader, null,
31
+ React.createElement("div", { className: "pf-chatbot__terms-of-use--header" },
32
+ image && altText && React.createElement("img", { src: image, className: "pf-chatbot__terms-of-use--image", alt: altText }),
33
+ React.createElement("h1", { className: "pf-chatbot__terms-of-use--title" }, title))),
34
+ React.createElement(ModalBody, null,
35
+ React.createElement(Content, null, children)),
36
+ React.createElement(ModalFooter, { className: "pf-chatbot__terms-of-use--footer" },
37
+ React.createElement(Button, { isBlock: true, key: "terms-of-use-modal-primary", variant: "primary", onClick: handlePrimaryAction, form: "terms-of-use-form", size: "lg" }, primaryActionBtn),
38
+ React.createElement(Button, { isBlock: true, key: "terms-of-use-modal-secondary", variant: "secondary", onClick: handleSecondaryAction, size: "lg" }, secondaryActionBtn)))));
39
+ return modal;
40
+ };
41
+ const TermsOfUse = React.forwardRef((props, ref) => (React.createElement(TermsOfUseBase, Object.assign({ innerRef: ref }, props))));
42
+ export default TermsOfUse;
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom';
@@ -0,0 +1,74 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import React from 'react';
11
+ import { render, screen } from '@testing-library/react';
12
+ import '@testing-library/jest-dom';
13
+ import userEvent from '@testing-library/user-event';
14
+ import TermsOfUse from './TermsOfUse';
15
+ import { Content } from '@patternfly/react-core';
16
+ const handleModalToggle = jest.fn();
17
+ const onPrimaryAction = jest.fn();
18
+ const onSecondaryAction = jest.fn();
19
+ const body = (React.createElement(Content, null,
20
+ React.createElement("h1", null, "Heading 1"),
21
+ React.createElement("p", null, "Legal text")));
22
+ describe('TermsOfUse', () => {
23
+ afterEach(() => {
24
+ jest.clearAllMocks();
25
+ });
26
+ it('should render modal correctly', () => {
27
+ render(React.createElement(TermsOfUse, { isModalOpen: true, onSecondaryAction: onSecondaryAction, handleModalToggle: handleModalToggle, ouiaId: "Terms" }, body));
28
+ expect(screen.getByRole('heading', { name: /Terms of use/i })).toBeTruthy();
29
+ expect(screen.getByRole('button', { name: /Accept/i })).toBeTruthy();
30
+ expect(screen.getByRole('button', { name: /Decline/i })).toBeTruthy();
31
+ expect(screen.getByRole('heading', { name: /Heading 1/i })).toBeTruthy();
32
+ expect(screen.getByText(/Legal text/i)).toBeTruthy();
33
+ expect(screen.getByRole('dialog')).toHaveClass('pf-chatbot__terms-of-use-modal');
34
+ expect(screen.getByRole('dialog')).toHaveClass('pf-chatbot__terms-of-use-modal--default');
35
+ });
36
+ it('should handle image and altText props', () => {
37
+ render(React.createElement(TermsOfUse, { isModalOpen: true, onSecondaryAction: onSecondaryAction, handleModalToggle: handleModalToggle, image: "./image.png", altText: "Test image" }, body));
38
+ expect(screen.getByRole('img')).toBeTruthy();
39
+ expect(screen.getByRole('img')).toHaveAttribute('alt', 'Test image');
40
+ });
41
+ it('should handle className prop', () => {
42
+ render(React.createElement(TermsOfUse, { isModalOpen: true, onSecondaryAction: onSecondaryAction, handleModalToggle: handleModalToggle, className: "test" }, body));
43
+ expect(screen.getByRole('dialog')).toHaveClass('pf-chatbot__terms-of-use-modal');
44
+ expect(screen.getByRole('dialog')).toHaveClass('pf-chatbot__terms-of-use-modal--default');
45
+ expect(screen.getByRole('dialog')).toHaveClass('test');
46
+ });
47
+ it('should handle title prop', () => {
48
+ render(React.createElement(TermsOfUse, { isModalOpen: true, onSecondaryAction: onSecondaryAction, handleModalToggle: handleModalToggle, title: "Updated title" }, body));
49
+ expect(screen.getByRole('heading', { name: /Updated title/i })).toBeTruthy();
50
+ expect(screen.queryByRole('heading', { name: /Terms of use/i })).toBeFalsy();
51
+ });
52
+ it('should handle primary button prop', () => {
53
+ render(React.createElement(TermsOfUse, { isModalOpen: true, onSecondaryAction: onSecondaryAction, handleModalToggle: handleModalToggle, primaryActionBtn: "First" }, body));
54
+ expect(screen.getByRole('button', { name: /First/i })).toBeTruthy();
55
+ expect(screen.queryByRole('button', { name: /Accept/i })).toBeFalsy();
56
+ });
57
+ it('should handle secondary button prop', () => {
58
+ render(React.createElement(TermsOfUse, { isModalOpen: true, onSecondaryAction: onSecondaryAction, handleModalToggle: handleModalToggle, secondaryActionBtn: "Second" }, body));
59
+ expect(screen.getByRole('button', { name: /Second/i })).toBeTruthy();
60
+ expect(screen.queryByRole('button', { name: /Deny/i })).toBeFalsy();
61
+ });
62
+ it('should handle primary button click', () => __awaiter(void 0, void 0, void 0, function* () {
63
+ render(React.createElement(TermsOfUse, { isModalOpen: true, onPrimaryAction: onPrimaryAction, onSecondaryAction: onSecondaryAction, handleModalToggle: handleModalToggle }, body));
64
+ yield userEvent.click(screen.getByRole('button', { name: /Accept/i }));
65
+ expect(onPrimaryAction).toHaveBeenCalledTimes(1);
66
+ expect(handleModalToggle).toHaveBeenCalledTimes(1);
67
+ }));
68
+ it('should handle secondary button click', () => __awaiter(void 0, void 0, void 0, function* () {
69
+ render(React.createElement(TermsOfUse, { isModalOpen: true, onSecondaryAction: onSecondaryAction, handleModalToggle: handleModalToggle }, body));
70
+ yield userEvent.click(screen.getByRole('button', { name: /Decline/i }));
71
+ expect(onSecondaryAction).toHaveBeenCalledTimes(1);
72
+ expect(handleModalToggle).not.toHaveBeenCalled();
73
+ }));
74
+ });
@@ -0,0 +1,2 @@
1
+ export { default } from './TermsOfUse';
2
+ export * from './TermsOfUse';
@@ -0,0 +1,2 @@
1
+ export { default } from './TermsOfUse';
2
+ export * from './TermsOfUse';
@@ -24,6 +24,8 @@ export { default as ChatbotWelcomePrompt } from './ChatbotWelcomePrompt';
24
24
  export * from './ChatbotWelcomePrompt';
25
25
  export { default as CodeModal } from './CodeModal';
26
26
  export * from './CodeModal';
27
+ export { default as Compare } from './Compare';
28
+ export * from './Compare';
27
29
  export { default as FileDetails } from './FileDetails';
28
30
  export * from './FileDetails';
29
31
  export { default as FileDetailsLabel } from './FileDetailsLabel';
@@ -42,7 +44,11 @@ export { default as PreviewAttachment } from './PreviewAttachment';
42
44
  export * from './PreviewAttachment';
43
45
  export { default as ResponseActions } from './ResponseActions';
44
46
  export * from './ResponseActions';
47
+ export { default as Settings } from './Settings';
48
+ export * from './Settings';
45
49
  export { default as SourceDetailsMenuItem } from './SourceDetailsMenuItem';
46
50
  export * from './SourceDetailsMenuItem';
47
51
  export { default as SourcesCard } from './SourcesCard';
48
52
  export * from './SourcesCard';
53
+ export { default as TermsOfUse } from './TermsOfUse';
54
+ export * from './TermsOfUse';
package/dist/esm/index.js CHANGED
@@ -25,6 +25,8 @@ export { default as ChatbotWelcomePrompt } from './ChatbotWelcomePrompt';
25
25
  export * from './ChatbotWelcomePrompt';
26
26
  export { default as CodeModal } from './CodeModal';
27
27
  export * from './CodeModal';
28
+ export { default as Compare } from './Compare';
29
+ export * from './Compare';
28
30
  export { default as FileDetails } from './FileDetails';
29
31
  export * from './FileDetails';
30
32
  export { default as FileDetailsLabel } from './FileDetailsLabel';
@@ -43,7 +45,11 @@ export { default as PreviewAttachment } from './PreviewAttachment';
43
45
  export * from './PreviewAttachment';
44
46
  export { default as ResponseActions } from './ResponseActions';
45
47
  export * from './ResponseActions';
48
+ export { default as Settings } from './Settings';
49
+ export * from './Settings';
46
50
  export { default as SourceDetailsMenuItem } from './SourceDetailsMenuItem';
47
51
  export * from './SourceDetailsMenuItem';
48
52
  export { default as SourcesCard } from './SourcesCard';
49
53
  export * from './SourcesCard';
54
+ export { default as TermsOfUse } from './TermsOfUse';
55
+ export * from './TermsOfUse';
@@ -1 +1 @@
1
- {"root":["../src/index.ts","../src/AttachMenu/AttachMenu.tsx","../src/AttachMenu/index.ts","../src/AttachmentEdit/AttachmentEdit.tsx","../src/AttachmentEdit/index.ts","../src/Chatbot/Chatbot.tsx","../src/Chatbot/index.ts","../src/ChatbotAlert/ChatbotAlert.tsx","../src/ChatbotAlert/index.ts","../src/ChatbotContent/ChatbotContent.tsx","../src/ChatbotContent/index.ts","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx","../src/ChatbotConversationHistoryNav/index.ts","../src/ChatbotFooter/ChatbotFooter.tsx","../src/ChatbotFooter/ChatbotFootnote.tsx","../src/ChatbotFooter/index.ts","../src/ChatbotHeader/ChatbotHeader.tsx","../src/ChatbotHeader/ChatbotHeaderActions.tsx","../src/ChatbotHeader/ChatbotHeaderMain.tsx","../src/ChatbotHeader/ChatbotHeaderMenu.tsx","../src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx","../src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx","../src/ChatbotHeader/ChatbotHeaderTitle.tsx","../src/ChatbotHeader/index.ts","../src/ChatbotModal/ChatbotModal.tsx","../src/ChatbotModal/index.ts","../src/ChatbotPopover/ChatbotPopover.tsx","../src/ChatbotPopover/index.ts","../src/ChatbotToggle/ChatbotToggle.test.tsx","../src/ChatbotToggle/ChatbotToggle.tsx","../src/ChatbotToggle/index.ts","../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx","../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.tsx","../src/ChatbotWelcomePrompt/index.ts","../src/CodeModal/CodeModal.tsx","../src/CodeModal/index.ts","../src/FileDetails/FileDetails.test.tsx","../src/FileDetails/FileDetails.tsx","../src/FileDetails/index.ts","../src/FileDetailsLabel/FileDetailsLabel.test.tsx","../src/FileDetailsLabel/FileDetailsLabel.tsx","../src/FileDetailsLabel/index.ts","../src/FileDropZone/FileDropZone.test.tsx","../src/FileDropZone/FileDropZone.tsx","../src/FileDropZone/index.ts","../src/LoadingMessage/LoadingMessage.test.tsx","../src/LoadingMessage/LoadingMessage.tsx","../src/LoadingMessage/index.ts","../src/Message/Message.test.tsx","../src/Message/Message.tsx","../src/Message/MessageLoading.tsx","../src/Message/index.ts","../src/Message/CodeBlockMessage/CodeBlockMessage.tsx","../src/Message/ListMessage/ListItemMessage.tsx","../src/Message/ListMessage/OrderedListMessage.tsx","../src/Message/ListMessage/UnorderedListMessage.tsx","../src/Message/TextMessage/TextMessage.tsx","../src/MessageBar/AttachButton.test.tsx","../src/MessageBar/AttachButton.tsx","../src/MessageBar/MessageBar.test.tsx","../src/MessageBar/MessageBar.tsx","../src/MessageBar/MicrophoneButton.tsx","../src/MessageBar/SendButton.test.tsx","../src/MessageBar/SendButton.tsx","../src/MessageBar/StopButton.test.tsx","../src/MessageBar/StopButton.tsx","../src/MessageBar/index.ts","../src/MessageBox/JumpButton.test.tsx","../src/MessageBox/JumpButton.tsx","../src/MessageBox/MessageBox.tsx","../src/MessageBox/index.ts","../src/PreviewAttachment/PreviewAttachment.tsx","../src/PreviewAttachment/index.ts","../src/ResponseActions/ResponseActionButton.tsx","../src/ResponseActions/ResponseActions.test.tsx","../src/ResponseActions/ResponseActions.tsx","../src/ResponseActions/index.ts","../src/SourceDetailsMenuItem/SourceDetailsMenuItem.tsx","../src/SourceDetailsMenuItem/index.ts","../src/SourcesCard/SourcesCard.test.tsx","../src/SourcesCard/SourcesCard.tsx","../src/SourcesCard/index.ts"],"version":"5.6.3"}
1
+ {"root":["../src/index.ts","../src/AttachMenu/AttachMenu.tsx","../src/AttachMenu/index.ts","../src/AttachmentEdit/AttachmentEdit.test.tsx","../src/AttachmentEdit/AttachmentEdit.tsx","../src/AttachmentEdit/index.ts","../src/Chatbot/Chatbot.test.tsx","../src/Chatbot/Chatbot.tsx","../src/Chatbot/index.ts","../src/ChatbotAlert/ChatbotAlert.test.tsx","../src/ChatbotAlert/ChatbotAlert.tsx","../src/ChatbotAlert/index.ts","../src/ChatbotContent/ChatbotContent.test.tsx","../src/ChatbotContent/ChatbotContent.tsx","../src/ChatbotContent/index.ts","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx","../src/ChatbotConversationHistoryNav/index.ts","../src/ChatbotFooter/ChatbotFooter.test.tsx","../src/ChatbotFooter/ChatbotFooter.tsx","../src/ChatbotFooter/ChatbotFooternote.test.tsx","../src/ChatbotFooter/ChatbotFootnote.tsx","../src/ChatbotFooter/index.ts","../src/ChatbotHeader/ChatbotHeader.test.tsx","../src/ChatbotHeader/ChatbotHeader.tsx","../src/ChatbotHeader/ChatbotHeaderActions.test.tsx","../src/ChatbotHeader/ChatbotHeaderActions.tsx","../src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx","../src/ChatbotHeader/ChatbotHeaderCloseButton.tsx","../src/ChatbotHeader/ChatbotHeaderMain.test.tsx","../src/ChatbotHeader/ChatbotHeaderMain.tsx","../src/ChatbotHeader/ChatbotHeaderMenu.test.tsx","../src/ChatbotHeader/ChatbotHeaderMenu.tsx","../src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx","../src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx","../src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx","../src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx","../src/ChatbotHeader/ChatbotHeaderTitle.test.tsx","../src/ChatbotHeader/ChatbotHeaderTitle.tsx","../src/ChatbotHeader/index.ts","../src/ChatbotModal/ChatbotModal.tsx","../src/ChatbotModal/index.ts","../src/ChatbotPopover/ChatbotPopover.tsx","../src/ChatbotPopover/index.ts","../src/ChatbotToggle/ChatbotToggle.test.tsx","../src/ChatbotToggle/ChatbotToggle.tsx","../src/ChatbotToggle/index.ts","../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx","../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.tsx","../src/ChatbotWelcomePrompt/index.ts","../src/CodeModal/CodeModal.tsx","../src/CodeModal/index.ts","../src/Compare/Compare.test.tsx","../src/Compare/Compare.tsx","../src/Compare/index.ts","../src/FileDetails/FileDetails.test.tsx","../src/FileDetails/FileDetails.tsx","../src/FileDetails/index.ts","../src/FileDetailsLabel/FileDetailsLabel.test.tsx","../src/FileDetailsLabel/FileDetailsLabel.tsx","../src/FileDetailsLabel/index.ts","../src/FileDropZone/FileDropZone.test.tsx","../src/FileDropZone/FileDropZone.tsx","../src/FileDropZone/index.ts","../src/LoadingMessage/LoadingMessage.test.tsx","../src/LoadingMessage/LoadingMessage.tsx","../src/LoadingMessage/index.ts","../src/Message/Message.test.tsx","../src/Message/Message.tsx","../src/Message/MessageLoading.tsx","../src/Message/index.ts","../src/Message/CodeBlockMessage/CodeBlockMessage.tsx","../src/Message/ListMessage/ListItemMessage.tsx","../src/Message/ListMessage/OrderedListMessage.tsx","../src/Message/ListMessage/UnorderedListMessage.tsx","../src/Message/QuickResponse/QuickResponse.tsx","../src/Message/QuickStarts/FallbackImg.tsx","../src/Message/QuickStarts/QuickStartTile.tsx","../src/Message/QuickStarts/QuickStartTileDescription.test.tsx","../src/Message/QuickStarts/QuickStartTileDescription.tsx","../src/Message/QuickStarts/QuickStartTileHeader.tsx","../src/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.ts","../src/Message/QuickStarts/monitor-sampleapp-quickstart.ts","../src/Message/QuickStarts/types.ts","../src/Message/TextMessage/TextMessage.tsx","../src/Message/UserFeedback/CloseButton.tsx","../src/Message/UserFeedback/UserFeedback.test.tsx","../src/Message/UserFeedback/UserFeedback.tsx","../src/Message/UserFeedback/UserFeedbackComplete.test.tsx","../src/Message/UserFeedback/UserFeedbackComplete.tsx","../src/MessageBar/AttachButton.test.tsx","../src/MessageBar/AttachButton.tsx","../src/MessageBar/MessageBar.test.tsx","../src/MessageBar/MessageBar.tsx","../src/MessageBar/MicrophoneButton.tsx","../src/MessageBar/SendButton.test.tsx","../src/MessageBar/SendButton.tsx","../src/MessageBar/StopButton.test.tsx","../src/MessageBar/StopButton.tsx","../src/MessageBar/index.ts","../src/MessageBox/JumpButton.test.tsx","../src/MessageBox/JumpButton.tsx","../src/MessageBox/MessageBox.test.tsx","../src/MessageBox/MessageBox.tsx","../src/MessageBox/index.ts","../src/PreviewAttachment/PreviewAttachment.test.tsx","../src/PreviewAttachment/PreviewAttachment.tsx","../src/PreviewAttachment/index.ts","../src/ResponseActions/ResponseActionButton.test.tsx","../src/ResponseActions/ResponseActionButton.tsx","../src/ResponseActions/ResponseActions.test.tsx","../src/ResponseActions/ResponseActions.tsx","../src/ResponseActions/index.ts","../src/Settings/SettingsForm.test.tsx","../src/Settings/SettingsForm.tsx","../src/Settings/index.ts","../src/SourceDetailsMenuItem/SourceDetailsMenuItem.tsx","../src/SourceDetailsMenuItem/index.ts","../src/SourcesCard/SourcesCard.test.tsx","../src/SourcesCard/SourcesCard.tsx","../src/SourcesCard/index.ts","../src/TermsOfUse/TermsOfUse.test.tsx","../src/TermsOfUse/TermsOfUse.tsx","../src/TermsOfUse/index.ts"],"version":"5.6.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/chatbot",
3
- "version": "2.2.0-prerelease.2",
3
+ "version": "2.2.0-prerelease.20",
4
4
  "description": "This library provides React components based on PatternFly 6 that can be used to build chatbots.",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -31,15 +31,13 @@
31
31
  "tag": "prerelease"
32
32
  },
33
33
  "dependencies": {
34
- "@patternfly/react-core": "^6.0.0",
35
- "@patternfly/react-code-editor": "^6.0.0",
36
- "@patternfly/react-icons": "^6.0.0",
34
+ "@patternfly/react-core": "^6.1.0",
35
+ "@patternfly/react-code-editor": "^6.1.0",
36
+ "@patternfly/react-icons": "^6.1.0",
37
37
  "clsx": "^2.1.0",
38
38
  "framer-motion": "^11.3.28",
39
- "react-jss": "^10.10.0",
40
39
  "react-markdown": "^9.0.1",
41
40
  "react-syntax-highlighter": "^15.5.0",
42
- "react-textarea-auto-witdth-height": "^1.0.3",
43
41
  "remark-gfm": "^4.0.0",
44
42
  "path-browserify": "^1.0.1"
45
43
  },
@@ -48,18 +46,14 @@
48
46
  "react-dom": "^17 || ^18"
49
47
  },
50
48
  "devDependencies": {
51
- "@patternfly/documentation-framework": "^6.0.6",
52
- "@patternfly/patternfly": "^6.0.0",
49
+ "@patternfly/documentation-framework": "^6.5.0",
50
+ "@patternfly/patternfly": "^6.1.0",
53
51
  "@patternfly/patternfly-a11y": "^5.0.0",
54
- "@patternfly/react-table": "^6.0.0",
52
+ "@patternfly/react-table": "^6.1.0",
55
53
  "@types/dom-speech-recognition": "^0.0.4",
56
54
  "@types/react": "^18.2.61",
57
- "@types/react-dom": "^18.2.19",
58
- "@types/react-router-dom": "^5.3.3",
59
55
  "react": "^18.2.0",
60
56
  "react-dom": "^18.2.0",
61
- "react-router": "^6.22.2",
62
- "react-router-dom": "^6.22.2",
63
57
  "rimraf": "^2.7.1",
64
58
  "typescript": "^5.3.3",
65
59
  "@octokit/rest": "^18.0.0",
@@ -12,11 +12,13 @@ It is important to leverage AI in a way that improves the experiences of your us
12
12
 
13
13
  _Only use this ChatBot when it adds value to your users' experiences._ Don't use it simply for the sake of novelty&mdash;your users will only be excited to interact with a new ChatBot feature if it directly helps them reach their goals.
14
14
 
15
- ## How to use the ChatBot
15
+ ## ChatBot demos
16
16
 
17
- To illustrate the capabilities of the ChatBot, we offer a few demos:
17
+ To illustrate the capabilities of the ChatBot, including more complex interaction patterns, we've created these demos:
18
18
  - [Basic ChatBot](/patternfly-ai/chatbot/overview/demo#basic-chatbot)
19
19
  - [Embedded ChatBot](/patternfly-ai/chatbot/overview/demo#embedded-chatbot)
20
+ - [Comparing ChatBots](/patternfly-ai/chatbot/overview/demo/#comparing-chatbots)
21
+ - [Message feedback](/patternfly-ai/chatbot/messages/demo#message-feedback)
20
22
  - [ChatBot attachments via file upload](/patternfly-ai/chatbot/messages/demo#attach-via-upload-button-in-message-bar)
21
23
  - [ChatBot attachments via built-in menu](/patternfly-ai/chatbot/messages/demo#attach-via-menu-of-options-in-message-bar)
22
24
 
@@ -31,6 +33,7 @@ Explore our documentation, which covers both ChatBot UI components and message-r
31
33
  - [Header](/patternfly-ai/chatbot/ui#header)
32
34
  - [Footer](/patternfly-ai/chatbot/ui#footer)
33
35
  - [Navigation](/patternfly-ai/chatbot/ui#navigation)
36
+ - [Modals](/patternfly-ai/chatbot/ui#modals)
34
37
  - Messages
35
38
  - [Bot and user messages](/patternfly-ai/chatbot/messages)
36
39
  - [File attachments](/patternfly-ai/chatbot/messages#attachments)
@@ -8,16 +8,16 @@ source: design-guidelines
8
8
 
9
9
  import "./images.css"
10
10
 
11
- ## Elements
11
+ ## Elements
12
12
 
13
- <div class="ws-docs-content-img">
13
+ <div class="ws-docs-content-img" >
14
14
  ![Main elements of a ChatBot.](./img/chatbot-elements.svg)
15
15
  </div>
16
16
 
17
17
  1. **Container:** The window that contains the entire ChatBot experience and all of its components.
18
18
  1. **Header:** A persistent region at the top of the ChatBot window that contains navigation, branding, and actions.
19
19
  1. **Navigation:** A menu that contains navigational options, including access to the conversation history.
20
- 1. **Options menu:** Contains display options and other settings. More details can be found in the [ChatBot variations section](#variations).
20
+ 1. **Options menu:** A menu that contains settings that are relevant to your product. This typically includes display options (more details in the [ChatBot variations section](#variations)) and other general settings (more details in the [ChatBot settings and preferences section](#chatbot-settings-and-preferences)).
21
21
  1. **Messages:** Elements of the conversation between a ChatBot and user. More details can be found in the [message guidelines](#messages).
22
22
  1. **Attachments:** Details about files that a user has uploaded to the ChatBot.
23
23
  1. **Footer:** A persistent region at the bottom of the ChatBot window that contains the message bar and the footnote.
@@ -37,9 +37,26 @@ import "./images.css"
37
37
  1. **Timestamp:** The relative or absolute time that a message was sent.
38
38
  1. **Label:** Labels ChatBot messages as "AI."
39
39
  1. **Quick responses:** Programmable, clickable actions that allow users to quickly answer questions from the ChatBot.
40
- 1. **Sources:** Cards that link to documentation or other external resources. When multiple sources are included, users can paginate through the different options.
41
40
  1. **Response actions:** Actions that allow users to interact with a bot message. these typically include providing feedback, copying, sharing, or reading aloud, but [custom message actions](/patternfly-ai/chatbot/messages#custom-message-actions) are also supported.
42
41
 
42
+ #### Source tiles
43
+
44
+ A ChatBot can share relevant sources with users, like documentation that could provide the information a user is searching for. These sources will be contained in a single tile, which users can paginate through and select to navigate to other resources.
45
+
46
+ To provide users with enough context, sources should have descriptive titles and descriptions. The title is limited to 1 line and the body is limited to 2 lines.
47
+
48
+ <div class="ws-docs-content-img">
49
+ ![Bot message that include multiple source tiles.](./img/source-tile.svg)
50
+ </div>
51
+
52
+ #### Quick start tiles
53
+
54
+ A ChatBot can share a link to a [quick start](/extensions/quick-starts) that will help users complete a given task. Users can either select **Start** or the tile's title to initiate the linked quick start.
55
+
56
+ <div class="ws-docs-content-img">
57
+ ![Bot message that links a quick start tile.](./img/chatbot-quickstarts-tile.svg)
58
+ </div>
59
+
43
60
  ### Message bar
44
61
 
45
62
  To message the ChatBot, users can type directly into the message bar in the footer or click any included actions.
@@ -126,6 +143,12 @@ When there is an unread message from the ChatBot, a notification badge should be
126
143
  ![Toggle with notification badge.](./img/chatbot-toggle-notification.svg)
127
144
  </div>
128
145
 
146
+ If necessary for brand consistency, you can customize the toggle shape and icon.
147
+
148
+ <div class="ws-docs-content-img">
149
+ ![Different toggle shapes and icons.](./img/toggle-customizations.svg)
150
+ </div>
151
+
129
152
  ### Using the navigation menu
130
153
 
131
154
  The ChatBot navigation menu primarily contains a users' conversation history with the ChatBot. Clicking the menu icon opens a side drawer in the ChatBot window.
@@ -136,6 +159,20 @@ By clicking into the navigation menu, users can search through previous conversa
136
159
  ![Conversation history with an options menu opened on a previous conversation.](./img/conversation-history.svg)
137
160
  </div>
138
161
 
162
+ ### ChatBot settings and preferences
163
+
164
+ Users can access ChatBot settings and preferences via the options menu.
165
+
166
+ <div class="ws-docs-content-img">
167
+ ![ChatBot options menu dropdown.](./img/settings-menu.svg)
168
+ </div>
169
+
170
+ Within the settings menu, users can select their preferences for a variety of ChatBot features, like theme or language. You can also support additional content management here, like adding or deleting chats. This menu can be customized to meet the needs of your ChatBot's users.
171
+
172
+ <div class="ws-docs-content-img">
173
+ ![ChatBot global settings menu.](./img/chatbot-settings.svg)
174
+ </div>
175
+
139
176
  ### Attaching files
140
177
 
141
178
  Using [the attach button](/patternfly-ai/chatbot/overview/design-guidelines#message-bar) in the message bar, users can [attach files](/patternfly-ai/chatbot/messages#file-attachments) to their message to share with the ChatBot.
@@ -2,9 +2,39 @@ import React from 'react';
2
2
  import Message from '@patternfly/chatbot/dist/dynamic/Message';
3
3
  import patternflyAvatar from './patternfly_avatar.jpg';
4
4
  import squareImg from './PF-social-color-square.svg';
5
+ import { Form, FormGroup, Radio } from '@patternfly/react-core';
5
6
 
6
7
  export const BotMessageExample: React.FunctionComponent = () => {
7
- const markdown = `
8
+ const [variant, setVariant] = React.useState('code');
9
+
10
+ /* eslint-disable indent */
11
+ const renderContent = () => {
12
+ switch (variant) {
13
+ case 'code':
14
+ return code;
15
+ case 'heading':
16
+ return heading;
17
+ case 'emphasis':
18
+ return emphasis;
19
+ case 'blockQuotes':
20
+ return blockQuotes;
21
+ case 'orderedList':
22
+ return orderedList;
23
+ case 'unorderedList':
24
+ return unorderedList;
25
+ case 'moreComplexList':
26
+ return moreComplexList;
27
+ case 'inlineCode':
28
+ return inlineCode;
29
+ case 'link':
30
+ return link;
31
+ default:
32
+ return;
33
+ }
34
+ };
35
+ /* eslint-enable indent */
36
+
37
+ const code = `
8
38
  Here is some YAML code:
9
39
 
10
40
  ~~~yaml
@@ -35,6 +65,36 @@ export default MessageLoading;
35
65
  ~~~
36
66
  `;
37
67
 
68
+ const heading = `
69
+ # h1 Heading
70
+
71
+ ## h2 Heading
72
+
73
+ ### h3 Heading
74
+
75
+ #### h4 Heading
76
+
77
+ ##### h5 Heading
78
+
79
+ ###### h6 Heading
80
+ `;
81
+
82
+ const emphasis = `
83
+ **Bold text, formatted with double asterisks**
84
+
85
+ __Bold text, formatted with double underscores__
86
+
87
+ *Italic text, formatted with single asterisks*
88
+
89
+ _Italic text, formatted with single underscores_
90
+
91
+ ~~Strikethrough~~
92
+ `;
93
+
94
+ const blockQuotes = `> Blockquotes can also be nested...
95
+ >> ...by using additional greater-than signs (>) right next to each other...
96
+ > > > ...or with spaces between each sign.`;
97
+
38
98
  const orderedList = `
39
99
  Here is an ordered list:
40
100
 
@@ -61,21 +121,13 @@ export default MessageLoading;
61
121
  Acquire 1 tablespoon of room temperature \`butter\`. Use \`knife\` to spread butter on \`toast\`. Bon appétit!
62
122
  `;
63
123
 
124
+ const link = `A paragraph with a URL: https://reactjs.org.`;
125
+
126
+ const inlineCode = `Here is an inline code - \`() => void\``;
127
+
64
128
  return (
65
129
  <>
66
130
  <Message name="Bot" role="bot" avatar={patternflyAvatar} content={`Text-based message from a bot named "Bot"`} />
67
- <Message
68
- name="Bot"
69
- role="bot"
70
- avatar={patternflyAvatar}
71
- content={`Text-based message from a bot named "Bot," with updated timestamp`}
72
- timestamp="1 hour ago"
73
- />
74
- <Message name="Bot" role="bot" avatar={patternflyAvatar} content={markdown} />
75
- <Message name="Bot" role="bot" avatar={patternflyAvatar} content={orderedList} />
76
- <Message name="Bot" role="bot" avatar={patternflyAvatar} content={unorderedList} />
77
- <Message name="Bot" role="bot" avatar={patternflyAvatar} content={moreComplexList} />
78
- <Message name="Bot" role="bot" avatar={patternflyAvatar} content="Example content" isLoading />
79
131
  <Message role="bot" avatar={patternflyAvatar} content="Text-based message from a nameless bot" />
80
132
  <Message
81
133
  name="Default Openshift Container Platform Assistant That Can Help With Any Query You Might Need Help With"
@@ -90,6 +142,83 @@ export default MessageLoading;
90
142
  content="Text-based message from a bot with a square avatar. You can further customize the avatar by applying an additional class or passing [PatternFly avatar props](/components/avatar) to the `<Message>` component via `avatarProps`."
91
143
  hasRoundAvatar={false}
92
144
  />
145
+ <Message
146
+ name="Bot"
147
+ role="bot"
148
+ avatar={patternflyAvatar}
149
+ content={`Text-based message from a bot named "Bot," with updated timestamp`}
150
+ timestamp="1 hour ago"
151
+ />
152
+ <Message name="Bot" role="bot" avatar={patternflyAvatar} content="Example content" isLoading />
153
+
154
+ <Form>
155
+ <FormGroup role="radiogroup" isInline fieldId="bot-message-type" label="Message content type">
156
+ <Radio
157
+ isChecked={variant === 'code'}
158
+ onChange={() => setVariant('code')}
159
+ name="bot-message-type"
160
+ label="Code"
161
+ id="code"
162
+ />
163
+ <Radio
164
+ isChecked={variant === 'inlineCode'}
165
+ onChange={() => setVariant('inlineCode')}
166
+ name="bot-message-type"
167
+ label="Inline code"
168
+ id="inline-code"
169
+ />
170
+ <Radio
171
+ isChecked={variant === 'heading'}
172
+ onChange={() => setVariant('heading')}
173
+ name="bot-message-type"
174
+ label="Heading"
175
+ id="heading"
176
+ />
177
+ <Radio
178
+ isChecked={variant === 'blockQuotes'}
179
+ onChange={() => setVariant('blockQuotes')}
180
+ name="bot-message-type"
181
+ label="Block quote"
182
+ id="block-quotes"
183
+ />
184
+ <Radio
185
+ isChecked={variant === 'emphasis'}
186
+ onChange={() => setVariant('emphasis')}
187
+ name="bot-message-type"
188
+ label="Emphasis"
189
+ id="emphasis"
190
+ />
191
+ <Radio
192
+ isChecked={variant === 'link'}
193
+ onChange={() => setVariant('link')}
194
+ name="bot-message-type"
195
+ label="Link"
196
+ id="link"
197
+ />
198
+ <Radio
199
+ isChecked={variant === 'unorderedList'}
200
+ onChange={() => setVariant('unorderedList')}
201
+ name="bot-message-type"
202
+ label="Unordered list"
203
+ id="unordered-list"
204
+ />
205
+ <Radio
206
+ isChecked={variant === 'orderedList'}
207
+ onChange={() => setVariant('orderedList')}
208
+ name="bot-message-type"
209
+ label="Ordered list"
210
+ id="ordered-list"
211
+ />
212
+ <Radio
213
+ isChecked={variant === 'moreComplexList'}
214
+ onChange={() => setVariant('moreComplexList')}
215
+ name="bot-message-type"
216
+ label="More complex list"
217
+ id="more-complex-list"
218
+ />
219
+ </FormGroup>
220
+ </Form>
221
+ <Message name="Bot" role="bot" avatar={patternflyAvatar} content={renderContent()} />
93
222
  </>
94
223
  );
95
224
  };
@@ -15,16 +15,20 @@ export const CustomActionExample: React.FunctionComponent = () => (
15
15
  actions={{
16
16
  regenerate: {
17
17
  ariaLabel: 'Regenerate',
18
+ clickedAriaLabel: 'Regenerated',
18
19
  // eslint-disable-next-line no-console
19
20
  onClick: () => console.log('Clicked regenerate'),
20
21
  tooltipContent: 'Regenerate',
22
+ clickedTooltipContent: 'Regenerated',
21
23
  icon: <RedoIcon />
22
24
  },
23
25
  download: {
24
26
  ariaLabel: 'Download',
27
+ clickedAriaLabel: 'Downloaded',
25
28
  // eslint-disable-next-line no-console
26
29
  onClick: () => console.log('Clicked download'),
27
30
  tooltipContent: 'Download',
31
+ clickedTooltipContent: 'Downloaded',
28
32
  icon: <DownloadIcon />
29
33
  },
30
34
  info: {
@@ -0,0 +1,71 @@
1
+ import React from 'react';
2
+ import Message from '@patternfly/chatbot/dist/dynamic/Message';
3
+ import patternflyAvatar from './patternfly_avatar.jpg';
4
+ import { Checkbox, FormGroup, Stack } from '@patternfly/react-core';
5
+
6
+ export const MessageWithFeedbackExample: React.FunctionComponent = () => {
7
+ const [hasCloseButton, setHasCloseButton] = React.useState(false);
8
+ const [hasTextArea, setHasTextArea] = React.useState(false);
9
+
10
+ return (
11
+ <>
12
+ <Stack hasGutter>
13
+ <FormGroup role="radiogroup" isInline fieldId="feedback-card" label="Variant">
14
+ <Checkbox
15
+ isChecked={hasTextArea}
16
+ onChange={() => {
17
+ setHasTextArea(!hasTextArea);
18
+ }}
19
+ name="basic-inline-radio"
20
+ label="Has text area"
21
+ id="has-text-area"
22
+ />
23
+ </FormGroup>
24
+ <Message
25
+ name="Bot"
26
+ role="bot"
27
+ avatar={patternflyAvatar}
28
+ content="This is a message with the feedback card:"
29
+ userFeedbackForm={{
30
+ quickResponses: [
31
+ { id: '1', content: 'Helpful information' },
32
+ { id: '2', content: 'Easy to understand' },
33
+ { id: '3', content: 'Resolved my issue' }
34
+ ],
35
+ onSubmit: (quickResponse, additionalFeedback) =>
36
+ alert(`Selected ${quickResponse} and received the additional feedback: ${additionalFeedback}`),
37
+ hasTextArea,
38
+ // eslint-disable-next-line no-console
39
+ onClose: () => console.log('closed feedback form'),
40
+ focusOnLoad: false
41
+ }}
42
+ />
43
+ </Stack>
44
+ <Stack hasGutter>
45
+ <FormGroup role="radiogroup" isInline fieldId="feedback-thank-you" label="Variant">
46
+ <Checkbox
47
+ isChecked={hasCloseButton}
48
+ onChange={() => {
49
+ setHasCloseButton(!hasCloseButton);
50
+ }}
51
+ name="basic-inline-radio"
52
+ label="Has close button"
53
+ id="has-close"
54
+ />
55
+ </FormGroup>
56
+ <Message
57
+ name="Bot"
58
+ role="bot"
59
+ avatar={patternflyAvatar}
60
+ content="This is a thank-you message, which is displayed once the feedback card is submitted:"
61
+ // eslint-disable-next-line no-console
62
+ userFeedbackComplete={{
63
+ // eslint-disable-next-line no-console
64
+ onClose: hasCloseButton ? () => console.log('closed completion message') : undefined,
65
+ focusOnLoad: false
66
+ }}
67
+ />
68
+ </Stack>
69
+ </>
70
+ );
71
+ };