@patternfly/chatbot 6.3.0-prerelease.9 → 6.4.0-prerelease.2

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 (595) hide show
  1. package/dist/cjs/AttachMenu/AttachMenu.d.ts +2 -2
  2. package/dist/cjs/AttachMenu/AttachMenu.js +2 -12
  3. package/dist/cjs/AttachmentEdit/AttachmentEdit.d.ts +12 -2
  4. package/dist/cjs/AttachmentEdit/AttachmentEdit.js +3 -6
  5. package/dist/cjs/AttachmentEdit/AttachmentEdit.test.d.ts +1 -1
  6. package/dist/cjs/AttachmentEdit/AttachmentEdit.test.js +33 -8
  7. package/dist/cjs/Chatbot/Chatbot.d.ts +1 -2
  8. package/dist/cjs/Chatbot/Chatbot.js +4 -9
  9. package/dist/cjs/Chatbot/Chatbot.test.js +11 -11
  10. package/dist/cjs/ChatbotAlert/ChatbotAlert.d.ts +2 -2
  11. package/dist/cjs/ChatbotAlert/ChatbotAlert.js +4 -8
  12. package/dist/cjs/ChatbotAlert/ChatbotAlert.test.js +10 -10
  13. package/dist/cjs/ChatbotContent/ChatbotContent.d.ts +3 -3
  14. package/dist/cjs/ChatbotContent/ChatbotContent.js +2 -8
  15. package/dist/cjs/ChatbotContent/ChatbotContent.test.js +5 -5
  16. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +2 -2
  17. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +7 -11
  18. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.js +31 -33
  19. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +7 -3
  20. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +17 -34
  21. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +73 -64
  22. package/dist/cjs/ChatbotConversationHistoryNav/EmptyState.d.ts +2 -2
  23. package/dist/cjs/ChatbotConversationHistoryNav/EmptyState.js +2 -9
  24. package/dist/cjs/ChatbotConversationHistoryNav/LoadingState.d.ts +2 -2
  25. package/dist/cjs/ChatbotConversationHistoryNav/LoadingState.js +2 -25
  26. package/dist/cjs/ChatbotFooter/ChatbotFooter.d.ts +3 -3
  27. package/dist/cjs/ChatbotFooter/ChatbotFooter.js +2 -15
  28. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.js +7 -7
  29. package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.js +28 -28
  30. package/dist/cjs/ChatbotFooter/ChatbotFootnote.d.ts +3 -3
  31. package/dist/cjs/ChatbotFooter/ChatbotFootnote.js +10 -23
  32. package/dist/cjs/ChatbotHeader/ChatbotHeader.d.ts +3 -3
  33. package/dist/cjs/ChatbotHeader/ChatbotHeader.js +2 -7
  34. package/dist/cjs/ChatbotHeader/ChatbotHeader.test.js +5 -5
  35. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.d.ts +2 -2
  36. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.js +2 -5
  37. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.js +5 -5
  38. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +1 -2
  39. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.js +5 -10
  40. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.js +7 -10
  41. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.d.ts +2 -2
  42. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.js +2 -5
  43. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.js +5 -5
  44. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.d.ts +2 -2
  45. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +5 -7
  46. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.js +7 -10
  47. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +6 -3
  48. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +8 -9
  49. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +19 -21
  50. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +8 -3
  51. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +11 -12
  52. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +17 -19
  53. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.d.ts +2 -2
  54. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.js +2 -5
  55. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.js +23 -23
  56. package/dist/cjs/ChatbotModal/ChatbotModal.d.ts +2 -2
  57. package/dist/cjs/ChatbotModal/ChatbotModal.js +3 -9
  58. package/dist/cjs/ChatbotModal/ChatbotModal.test.js +4 -16
  59. package/dist/cjs/ChatbotPopover/ChatbotPopover.d.ts +2 -2
  60. package/dist/cjs/ChatbotPopover/ChatbotPopover.js +2 -8
  61. package/dist/cjs/ChatbotToggle/ChatbotToggle.d.ts +1 -2
  62. package/dist/cjs/ChatbotToggle/ChatbotToggle.js +8 -13
  63. package/dist/cjs/ChatbotToggle/ChatbotToggle.test.js +25 -25
  64. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +2 -2
  65. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +6 -20
  66. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +16 -16
  67. package/dist/cjs/CodeModal/CodeModal.d.ts +8 -2
  68. package/dist/cjs/CodeModal/CodeModal.js +8 -20
  69. package/dist/cjs/CodeModal/CodeModal.test.js +23 -4
  70. package/dist/cjs/Compare/Compare.d.ts +2 -2
  71. package/dist/cjs/Compare/Compare.js +7 -16
  72. package/dist/cjs/Compare/Compare.test.js +7 -9
  73. package/dist/cjs/FileDetails/FileDetails.d.ts +2 -2
  74. package/dist/cjs/FileDetails/FileDetails.js +2 -15
  75. package/dist/cjs/FileDetails/FileDetails.test.js +10 -10
  76. package/dist/cjs/FileDetailsLabel/FileDetailsLabel.d.ts +2 -2
  77. package/dist/cjs/FileDetailsLabel/FileDetailsLabel.js +2 -5
  78. package/dist/cjs/FileDetailsLabel/FileDetailsLabel.test.js +21 -21
  79. package/dist/cjs/FileDropZone/FileDropZone.d.ts +23 -3
  80. package/dist/cjs/FileDropZone/FileDropZone.js +11 -9
  81. package/dist/cjs/FileDropZone/FileDropZone.test.js +86 -5
  82. package/dist/cjs/LoadingMessage/LoadingMessage.d.ts +2 -2
  83. package/dist/cjs/LoadingMessage/LoadingMessage.js +2 -10
  84. package/dist/cjs/LoadingMessage/LoadingMessage.test.js +6 -6
  85. package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.d.ts +20 -3
  86. package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.js +30 -21
  87. package/dist/cjs/Message/ErrorMessage/ErrorMessage.d.ts +1 -2
  88. package/dist/cjs/Message/ErrorMessage/ErrorMessage.js +5 -8
  89. package/dist/cjs/Message/ImageMessage/ImageMessage.d.ts +1 -2
  90. package/dist/cjs/Message/ImageMessage/ImageMessage.js +2 -8
  91. package/dist/cjs/Message/LinkMessage/LinkMessage.d.ts +1 -2
  92. package/dist/cjs/Message/LinkMessage/LinkMessage.js +6 -9
  93. package/dist/cjs/Message/ListMessage/ListItemMessage.d.ts +1 -2
  94. package/dist/cjs/Message/ListMessage/ListItemMessage.js +2 -8
  95. package/dist/cjs/Message/ListMessage/OrderedListMessage.d.ts +1 -2
  96. package/dist/cjs/Message/ListMessage/OrderedListMessage.js +2 -9
  97. package/dist/cjs/Message/ListMessage/UnorderedListMessage.d.ts +1 -2
  98. package/dist/cjs/Message/ListMessage/UnorderedListMessage.js +2 -9
  99. package/dist/cjs/Message/Message.d.ts +28 -10
  100. package/dist/cjs/Message/Message.js +50 -72
  101. package/dist/cjs/Message/Message.test.js +138 -82
  102. package/dist/cjs/Message/MessageInput.d.ts +4 -2
  103. package/dist/cjs/Message/MessageInput.js +6 -15
  104. package/dist/cjs/Message/MessageLoading.d.ts +1 -2
  105. package/dist/cjs/Message/MessageLoading.js +3 -8
  106. package/dist/cjs/Message/Plugins/index.d.ts +1 -0
  107. package/dist/cjs/Message/Plugins/index.js +5 -0
  108. package/dist/cjs/Message/Plugins/rehypeCodeBlockToggle.d.ts +2 -0
  109. package/dist/cjs/Message/Plugins/rehypeCodeBlockToggle.js +24 -0
  110. package/dist/cjs/Message/Plugins/rehypeMoveImagesOutOfParagraphs.d.ts +2 -0
  111. package/dist/cjs/Message/Plugins/rehypeMoveImagesOutOfParagraphs.js +47 -0
  112. package/dist/cjs/Message/QuickResponse/QuickResponse.d.ts +2 -2
  113. package/dist/cjs/Message/QuickResponse/QuickResponse.js +7 -9
  114. package/dist/cjs/Message/QuickStarts/FallbackImg.d.ts +2 -2
  115. package/dist/cjs/Message/QuickStarts/FallbackImg.js +5 -27
  116. package/dist/cjs/Message/QuickStarts/QuickStartTile.d.ts +2 -2
  117. package/dist/cjs/Message/QuickStarts/QuickStartTile.js +7 -43
  118. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.d.ts +2 -2
  119. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.js +9 -38
  120. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.js +16 -16
  121. package/dist/cjs/Message/QuickStarts/QuickStartTileHeader.d.ts +2 -2
  122. package/dist/cjs/Message/QuickStarts/QuickStartTileHeader.js +2 -26
  123. package/dist/cjs/Message/QuickStarts/types.d.ts +4 -3
  124. package/dist/cjs/Message/TableMessage/TableMessage.d.ts +1 -2
  125. package/dist/cjs/Message/TableMessage/TableMessage.js +8 -10
  126. package/dist/cjs/Message/TableMessage/TbodyMessage.d.ts +2 -3
  127. package/dist/cjs/Message/TableMessage/TbodyMessage.js +7 -9
  128. package/dist/cjs/Message/TableMessage/TdMessage.d.ts +1 -2
  129. package/dist/cjs/Message/TableMessage/TdMessage.js +2 -8
  130. package/dist/cjs/Message/TableMessage/ThMessage.d.ts +1 -2
  131. package/dist/cjs/Message/TableMessage/ThMessage.js +2 -8
  132. package/dist/cjs/Message/TableMessage/TheadMessage.d.ts +1 -2
  133. package/dist/cjs/Message/TableMessage/TheadMessage.js +2 -8
  134. package/dist/cjs/Message/TableMessage/TrMessage.d.ts +2 -3
  135. package/dist/cjs/Message/TableMessage/TrMessage.js +8 -10
  136. package/dist/cjs/Message/TextMessage/TextMessage.d.ts +1 -2
  137. package/dist/cjs/Message/TextMessage/TextMessage.js +2 -9
  138. package/dist/cjs/Message/UserFeedback/CloseButton.d.ts +2 -2
  139. package/dist/cjs/Message/UserFeedback/CloseButton.js +2 -8
  140. package/dist/cjs/Message/UserFeedback/UserFeedback.d.ts +2 -2
  141. package/dist/cjs/Message/UserFeedback/UserFeedback.js +12 -23
  142. package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +53 -53
  143. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.d.ts +2 -2
  144. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +20 -44
  145. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +81 -91
  146. package/dist/cjs/Message/index.d.ts +1 -0
  147. package/dist/cjs/Message/index.js +3 -1
  148. package/dist/cjs/MessageBar/AttachButton.d.ts +26 -3
  149. package/dist/cjs/MessageBar/AttachButton.js +10 -20
  150. package/dist/cjs/MessageBar/AttachButton.test.js +102 -24
  151. package/dist/cjs/MessageBar/MessageBar.d.ts +32 -4
  152. package/dist/cjs/MessageBar/MessageBar.js +30 -32
  153. package/dist/cjs/MessageBar/MessageBar.test.js +122 -108
  154. package/dist/cjs/MessageBar/MicrophoneButton.d.ts +2 -2
  155. package/dist/cjs/MessageBar/MicrophoneButton.js +7 -14
  156. package/dist/cjs/MessageBar/SendButton.d.ts +3 -2
  157. package/dist/cjs/MessageBar/SendButton.js +3 -11
  158. package/dist/cjs/MessageBar/SendButton.test.js +15 -15
  159. package/dist/cjs/MessageBar/StopButton.d.ts +3 -2
  160. package/dist/cjs/MessageBar/StopButton.js +3 -12
  161. package/dist/cjs/MessageBar/StopButton.test.js +15 -15
  162. package/dist/cjs/MessageBox/JumpButton.d.ts +2 -2
  163. package/dist/cjs/MessageBox/JumpButton.js +2 -10
  164. package/dist/cjs/MessageBox/JumpButton.test.js +10 -10
  165. package/dist/cjs/MessageBox/MessageBox.d.ts +21 -5
  166. package/dist/cjs/MessageBox/MessageBox.js +170 -45
  167. package/dist/cjs/MessageBox/MessageBox.test.js +219 -6
  168. package/dist/cjs/MessageDivider/MessageDivider.d.ts +9 -0
  169. package/dist/cjs/MessageDivider/MessageDivider.js +23 -0
  170. package/dist/cjs/MessageDivider/MessageDivider.test.d.ts +1 -0
  171. package/dist/cjs/MessageDivider/MessageDivider.test.js +29 -0
  172. package/dist/cjs/MessageDivider/index.d.ts +2 -0
  173. package/dist/cjs/MessageDivider/index.js +23 -0
  174. package/dist/cjs/PreviewAttachment/PreviewAttachment.d.ts +12 -2
  175. package/dist/cjs/PreviewAttachment/PreviewAttachment.js +3 -6
  176. package/dist/cjs/PreviewAttachment/PreviewAttachment.test.d.ts +1 -1
  177. package/dist/cjs/PreviewAttachment/PreviewAttachment.test.js +34 -12
  178. package/dist/cjs/ResponseActions/ResponseActionButton.d.ts +5 -5
  179. package/dist/cjs/ResponseActions/ResponseActionButton.js +5 -8
  180. package/dist/cjs/ResponseActions/ResponseActionButton.test.js +19 -19
  181. package/dist/cjs/ResponseActions/ResponseActions.d.ts +8 -3
  182. package/dist/cjs/ResponseActions/ResponseActions.js +39 -18
  183. package/dist/cjs/ResponseActions/ResponseActions.test.js +125 -41
  184. package/dist/cjs/Settings/SettingsForm.d.ts +2 -2
  185. package/dist/cjs/Settings/SettingsForm.js +2 -8
  186. package/dist/cjs/Settings/SettingsForm.test.js +9 -12
  187. package/dist/cjs/SourceDetailsMenuItem/SourceDetailsMenuItem.d.ts +2 -2
  188. package/dist/cjs/SourceDetailsMenuItem/SourceDetailsMenuItem.js +2 -11
  189. package/dist/cjs/SourcesCard/SourcesCard.d.ts +12 -3
  190. package/dist/cjs/SourcesCard/SourcesCard.js +17 -42
  191. package/dist/cjs/SourcesCard/SourcesCard.test.js +70 -60
  192. package/dist/cjs/TermsOfUse/TermsOfUse.d.ts +3 -3
  193. package/dist/cjs/TermsOfUse/TermsOfUse.js +4 -16
  194. package/dist/cjs/TermsOfUse/TermsOfUse.test.js +31 -33
  195. package/dist/cjs/index.d.ts +2 -0
  196. package/dist/cjs/index.js +4 -1
  197. package/dist/css/main.css +71 -62
  198. package/dist/css/main.css.map +1 -1
  199. package/dist/dynamic/MessageDivider/package.json +1 -0
  200. package/dist/esm/AttachMenu/AttachMenu.d.ts +2 -2
  201. package/dist/esm/AttachMenu/AttachMenu.js +2 -9
  202. package/dist/esm/AttachmentEdit/AttachmentEdit.d.ts +12 -2
  203. package/dist/esm/AttachmentEdit/AttachmentEdit.js +3 -6
  204. package/dist/esm/AttachmentEdit/AttachmentEdit.test.d.ts +1 -1
  205. package/dist/esm/AttachmentEdit/AttachmentEdit.test.js +30 -5
  206. package/dist/esm/Chatbot/Chatbot.d.ts +1 -2
  207. package/dist/esm/Chatbot/Chatbot.js +4 -6
  208. package/dist/esm/Chatbot/Chatbot.test.js +6 -6
  209. package/dist/esm/ChatbotAlert/ChatbotAlert.d.ts +2 -2
  210. package/dist/esm/ChatbotAlert/ChatbotAlert.js +4 -5
  211. package/dist/esm/ChatbotAlert/ChatbotAlert.test.js +4 -4
  212. package/dist/esm/ChatbotContent/ChatbotContent.d.ts +3 -3
  213. package/dist/esm/ChatbotContent/ChatbotContent.js +2 -5
  214. package/dist/esm/ChatbotContent/ChatbotContent.test.js +3 -3
  215. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +2 -2
  216. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +7 -11
  217. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.js +8 -10
  218. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +7 -3
  219. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +19 -36
  220. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +43 -34
  221. package/dist/esm/ChatbotConversationHistoryNav/EmptyState.d.ts +2 -2
  222. package/dist/esm/ChatbotConversationHistoryNav/EmptyState.js +2 -6
  223. package/dist/esm/ChatbotConversationHistoryNav/LoadingState.d.ts +2 -2
  224. package/dist/esm/ChatbotConversationHistoryNav/LoadingState.js +2 -22
  225. package/dist/esm/ChatbotFooter/ChatbotFooter.d.ts +3 -3
  226. package/dist/esm/ChatbotFooter/ChatbotFooter.js +2 -12
  227. package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +4 -4
  228. package/dist/esm/ChatbotFooter/ChatbotFooternote.test.js +5 -5
  229. package/dist/esm/ChatbotFooter/ChatbotFootnote.d.ts +3 -3
  230. package/dist/esm/ChatbotFooter/ChatbotFootnote.js +10 -23
  231. package/dist/esm/ChatbotHeader/ChatbotHeader.d.ts +3 -3
  232. package/dist/esm/ChatbotHeader/ChatbotHeader.js +2 -4
  233. package/dist/esm/ChatbotHeader/ChatbotHeader.test.js +3 -3
  234. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.d.ts +2 -2
  235. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.js +2 -2
  236. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.js +3 -3
  237. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +1 -2
  238. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.js +5 -7
  239. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.js +4 -4
  240. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.d.ts +2 -2
  241. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.js +2 -2
  242. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.js +3 -3
  243. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.d.ts +2 -2
  244. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +5 -7
  245. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +4 -4
  246. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +6 -3
  247. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +8 -9
  248. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +9 -8
  249. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +8 -3
  250. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +11 -9
  251. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +9 -8
  252. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.d.ts +2 -2
  253. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.js +2 -2
  254. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.js +12 -12
  255. package/dist/esm/ChatbotModal/ChatbotModal.d.ts +2 -2
  256. package/dist/esm/ChatbotModal/ChatbotModal.js +3 -6
  257. package/dist/esm/ChatbotModal/ChatbotModal.test.js +2 -14
  258. package/dist/esm/ChatbotPopover/ChatbotPopover.d.ts +2 -2
  259. package/dist/esm/ChatbotPopover/ChatbotPopover.js +2 -5
  260. package/dist/esm/ChatbotToggle/ChatbotToggle.d.ts +1 -2
  261. package/dist/esm/ChatbotToggle/ChatbotToggle.js +8 -13
  262. package/dist/esm/ChatbotToggle/ChatbotToggle.test.js +8 -8
  263. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +2 -2
  264. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +6 -17
  265. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +8 -8
  266. package/dist/esm/CodeModal/CodeModal.d.ts +8 -2
  267. package/dist/esm/CodeModal/CodeModal.js +8 -20
  268. package/dist/esm/CodeModal/CodeModal.test.js +22 -3
  269. package/dist/esm/Compare/Compare.d.ts +2 -2
  270. package/dist/esm/Compare/Compare.js +7 -13
  271. package/dist/esm/Compare/Compare.test.js +4 -6
  272. package/dist/esm/FileDetails/FileDetails.d.ts +2 -2
  273. package/dist/esm/FileDetails/FileDetails.js +2 -15
  274. package/dist/esm/FileDetails/FileDetails.test.js +4 -4
  275. package/dist/esm/FileDetailsLabel/FileDetailsLabel.d.ts +2 -2
  276. package/dist/esm/FileDetailsLabel/FileDetailsLabel.js +2 -5
  277. package/dist/esm/FileDetailsLabel/FileDetailsLabel.test.js +9 -9
  278. package/dist/esm/FileDropZone/FileDropZone.d.ts +23 -3
  279. package/dist/esm/FileDropZone/FileDropZone.js +11 -6
  280. package/dist/esm/FileDropZone/FileDropZone.test.js +84 -3
  281. package/dist/esm/LoadingMessage/LoadingMessage.d.ts +2 -2
  282. package/dist/esm/LoadingMessage/LoadingMessage.js +2 -10
  283. package/dist/esm/LoadingMessage/LoadingMessage.test.js +3 -3
  284. package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.d.ts +20 -3
  285. package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.js +31 -19
  286. package/dist/esm/Message/ErrorMessage/ErrorMessage.d.ts +1 -2
  287. package/dist/esm/Message/ErrorMessage/ErrorMessage.js +5 -5
  288. package/dist/esm/Message/ImageMessage/ImageMessage.d.ts +1 -2
  289. package/dist/esm/Message/ImageMessage/ImageMessage.js +2 -5
  290. package/dist/esm/Message/LinkMessage/LinkMessage.d.ts +1 -2
  291. package/dist/esm/Message/LinkMessage/LinkMessage.js +6 -6
  292. package/dist/esm/Message/ListMessage/ListItemMessage.d.ts +1 -2
  293. package/dist/esm/Message/ListMessage/ListItemMessage.js +2 -5
  294. package/dist/esm/Message/ListMessage/OrderedListMessage.d.ts +1 -2
  295. package/dist/esm/Message/ListMessage/OrderedListMessage.js +2 -6
  296. package/dist/esm/Message/ListMessage/UnorderedListMessage.d.ts +1 -2
  297. package/dist/esm/Message/ListMessage/UnorderedListMessage.js +2 -6
  298. package/dist/esm/Message/Message.d.ts +28 -10
  299. package/dist/esm/Message/Message.js +50 -72
  300. package/dist/esm/Message/Message.test.js +138 -82
  301. package/dist/esm/Message/MessageInput.d.ts +4 -2
  302. package/dist/esm/Message/MessageInput.js +6 -12
  303. package/dist/esm/Message/MessageLoading.d.ts +1 -2
  304. package/dist/esm/Message/MessageLoading.js +2 -4
  305. package/dist/esm/Message/Plugins/index.d.ts +1 -0
  306. package/dist/esm/Message/Plugins/index.js +1 -0
  307. package/dist/esm/Message/Plugins/rehypeCodeBlockToggle.d.ts +2 -0
  308. package/dist/esm/Message/Plugins/rehypeCodeBlockToggle.js +20 -0
  309. package/dist/esm/Message/Plugins/rehypeMoveImagesOutOfParagraphs.d.ts +2 -0
  310. package/dist/esm/Message/Plugins/rehypeMoveImagesOutOfParagraphs.js +43 -0
  311. package/dist/esm/Message/QuickResponse/QuickResponse.d.ts +2 -2
  312. package/dist/esm/Message/QuickResponse/QuickResponse.js +7 -6
  313. package/dist/esm/Message/QuickStarts/FallbackImg.d.ts +2 -2
  314. package/dist/esm/Message/QuickStarts/FallbackImg.js +5 -4
  315. package/dist/esm/Message/QuickStarts/QuickStartTile.d.ts +2 -2
  316. package/dist/esm/Message/QuickStarts/QuickStartTile.js +7 -20
  317. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.d.ts +2 -2
  318. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.js +9 -15
  319. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.js +5 -5
  320. package/dist/esm/Message/QuickStarts/QuickStartTileHeader.d.ts +2 -2
  321. package/dist/esm/Message/QuickStarts/QuickStartTileHeader.js +2 -3
  322. package/dist/esm/Message/QuickStarts/types.d.ts +4 -3
  323. package/dist/esm/Message/TableMessage/TableMessage.d.ts +1 -2
  324. package/dist/esm/Message/TableMessage/TableMessage.js +8 -7
  325. package/dist/esm/Message/TableMessage/TbodyMessage.d.ts +2 -3
  326. package/dist/esm/Message/TableMessage/TbodyMessage.js +7 -6
  327. package/dist/esm/Message/TableMessage/TdMessage.d.ts +1 -2
  328. package/dist/esm/Message/TableMessage/TdMessage.js +2 -5
  329. package/dist/esm/Message/TableMessage/ThMessage.d.ts +1 -2
  330. package/dist/esm/Message/TableMessage/ThMessage.js +2 -5
  331. package/dist/esm/Message/TableMessage/TheadMessage.d.ts +1 -2
  332. package/dist/esm/Message/TableMessage/TheadMessage.js +2 -5
  333. package/dist/esm/Message/TableMessage/TrMessage.d.ts +2 -3
  334. package/dist/esm/Message/TableMessage/TrMessage.js +8 -7
  335. package/dist/esm/Message/TextMessage/TextMessage.d.ts +1 -2
  336. package/dist/esm/Message/TextMessage/TextMessage.js +2 -6
  337. package/dist/esm/Message/UserFeedback/CloseButton.d.ts +2 -2
  338. package/dist/esm/Message/UserFeedback/CloseButton.js +2 -5
  339. package/dist/esm/Message/UserFeedback/UserFeedback.d.ts +2 -2
  340. package/dist/esm/Message/UserFeedback/UserFeedback.js +12 -23
  341. package/dist/esm/Message/UserFeedback/UserFeedback.test.js +21 -21
  342. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.d.ts +2 -2
  343. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +20 -44
  344. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +26 -36
  345. package/dist/esm/Message/index.d.ts +1 -0
  346. package/dist/esm/Message/index.js +1 -0
  347. package/dist/esm/MessageBar/AttachButton.d.ts +26 -3
  348. package/dist/esm/MessageBar/AttachButton.js +10 -17
  349. package/dist/esm/MessageBar/AttachButton.test.js +95 -17
  350. package/dist/esm/MessageBar/MessageBar.d.ts +32 -4
  351. package/dist/esm/MessageBar/MessageBar.js +28 -30
  352. package/dist/esm/MessageBar/MessageBar.test.js +87 -73
  353. package/dist/esm/MessageBar/MicrophoneButton.d.ts +2 -2
  354. package/dist/esm/MessageBar/MicrophoneButton.js +7 -11
  355. package/dist/esm/MessageBar/SendButton.d.ts +3 -2
  356. package/dist/esm/MessageBar/SendButton.js +3 -8
  357. package/dist/esm/MessageBar/SendButton.test.js +9 -9
  358. package/dist/esm/MessageBar/StopButton.d.ts +3 -2
  359. package/dist/esm/MessageBar/StopButton.js +3 -9
  360. package/dist/esm/MessageBar/StopButton.test.js +9 -9
  361. package/dist/esm/MessageBox/JumpButton.d.ts +2 -2
  362. package/dist/esm/MessageBox/JumpButton.js +2 -7
  363. package/dist/esm/MessageBox/JumpButton.test.js +9 -9
  364. package/dist/esm/MessageBox/MessageBox.d.ts +21 -5
  365. package/dist/esm/MessageBox/MessageBox.js +170 -45
  366. package/dist/esm/MessageBox/MessageBox.test.js +220 -7
  367. package/dist/esm/MessageDivider/MessageDivider.d.ts +9 -0
  368. package/dist/esm/MessageDivider/MessageDivider.js +21 -0
  369. package/dist/esm/MessageDivider/MessageDivider.test.d.ts +1 -0
  370. package/dist/esm/MessageDivider/MessageDivider.test.js +24 -0
  371. package/dist/esm/MessageDivider/index.d.ts +2 -0
  372. package/dist/esm/MessageDivider/index.js +2 -0
  373. package/dist/esm/PreviewAttachment/PreviewAttachment.d.ts +12 -2
  374. package/dist/esm/PreviewAttachment/PreviewAttachment.js +3 -6
  375. package/dist/esm/PreviewAttachment/PreviewAttachment.test.d.ts +1 -1
  376. package/dist/esm/PreviewAttachment/PreviewAttachment.test.js +30 -5
  377. package/dist/esm/ResponseActions/ResponseActionButton.d.ts +5 -5
  378. package/dist/esm/ResponseActions/ResponseActionButton.js +5 -5
  379. package/dist/esm/ResponseActions/ResponseActionButton.test.js +7 -7
  380. package/dist/esm/ResponseActions/ResponseActions.d.ts +8 -3
  381. package/dist/esm/ResponseActions/ResponseActions.js +40 -19
  382. package/dist/esm/ResponseActions/ResponseActions.test.js +100 -16
  383. package/dist/esm/Settings/SettingsForm.d.ts +2 -2
  384. package/dist/esm/Settings/SettingsForm.js +2 -5
  385. package/dist/esm/Settings/SettingsForm.test.js +6 -6
  386. package/dist/esm/SourceDetailsMenuItem/SourceDetailsMenuItem.d.ts +2 -2
  387. package/dist/esm/SourceDetailsMenuItem/SourceDetailsMenuItem.js +2 -8
  388. package/dist/esm/SourcesCard/SourcesCard.d.ts +12 -3
  389. package/dist/esm/SourcesCard/SourcesCard.js +17 -39
  390. package/dist/esm/SourcesCard/SourcesCard.test.js +29 -19
  391. package/dist/esm/TermsOfUse/TermsOfUse.d.ts +3 -3
  392. package/dist/esm/TermsOfUse/TermsOfUse.js +4 -16
  393. package/dist/esm/TermsOfUse/TermsOfUse.test.js +10 -12
  394. package/dist/esm/index.d.ts +2 -0
  395. package/dist/esm/index.js +2 -0
  396. package/dist/tsconfig.tsbuildinfo +1 -1
  397. package/package.json +9 -8
  398. package/patternfly-docs/content/extensions/chatbot/design-guidelines.md +10 -0
  399. package/patternfly-docs/content/extensions/chatbot/examples/Customizing Messages/Customizing Messages.md +51 -0
  400. package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachMenu.tsx +9 -9
  401. package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentEdit.tsx +5 -5
  402. package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentError.tsx +2 -2
  403. package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +24 -20
  404. package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDetails.tsx +2 -2
  405. package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDetailsLabel.tsx +9 -9
  406. package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDropZone.tsx +4 -4
  407. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithAttachment.tsx +7 -7
  408. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithClickedResponseActions.tsx +25 -0
  409. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithCustomResponseActions.tsx +3 -12
  410. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithDividers.tsx +24 -0
  411. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +4 -4
  412. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedbackTimeout.tsx +3 -3
  413. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +2 -2
  414. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickStart.tsx +2 -2
  415. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithResponseActions.tsx +3 -3
  416. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithSources.tsx +3 -3
  417. package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +33 -0
  418. package/patternfly-docs/content/extensions/chatbot/examples/Messages/PreviewAttachment.tsx +5 -5
  419. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +61 -18
  420. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessageWithExtraContent.tsx +4 -4
  421. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotContainer.tsx +59 -36
  422. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFooter.tsx +2 -2
  423. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFootnote.tsx +2 -2
  424. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderBasic.tsx +10 -13
  425. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +19 -10
  426. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerNavigation.tsx +5 -5
  427. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerResizable.tsx +5 -5
  428. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithActions.tsx +6 -6
  429. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithPin.tsx +196 -0
  430. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithSelection.tsx +7 -7
  431. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderTitle.tsx +59 -34
  432. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBar.tsx +2 -2
  433. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarAttach.tsx +9 -9
  434. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarDisabled.tsx +3 -3
  435. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarLanguage.tsx +2 -2
  436. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarStop.tsx +2 -2
  437. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotModal.tsx +74 -37
  438. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotToggleBasic.tsx +3 -3
  439. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomeInteraction.tsx +8 -8
  440. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomePrompt.tsx +3 -3
  441. package/patternfly-docs/content/extensions/chatbot/examples/UI/CompactSettings.tsx +16 -23
  442. package/patternfly-docs/content/extensions/chatbot/examples/UI/CustomClosedIcon.tsx +3 -3
  443. package/patternfly-docs/content/extensions/chatbot/examples/UI/Settings.tsx +16 -23
  444. package/patternfly-docs/content/extensions/chatbot/examples/UI/SkipToContent.tsx +5 -5
  445. package/patternfly-docs/content/extensions/chatbot/examples/UI/SquareChatbotToggle.tsx +3 -3
  446. package/patternfly-docs/content/extensions/chatbot/examples/UI/TermsOfUse.tsx +91 -48
  447. package/patternfly-docs/content/extensions/chatbot/examples/UI/TermsOfUseCompact.tsx +82 -39
  448. package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +12 -1
  449. package/patternfly-docs/content/extensions/chatbot/examples/demos/AttachmentDemos.md +37 -0
  450. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +34 -1
  451. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.tsx +19 -25
  452. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +42 -15
  453. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +15 -14
  454. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotCompact.tsx +19 -25
  455. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotDisplayMode.tsx +486 -0
  456. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotInDrawer.tsx +17 -22
  457. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotScrolling.tsx +536 -0
  458. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotTranscripts.tsx +565 -0
  459. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +17 -22
  460. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedComparisonChatbot.tsx +13 -13
  461. package/patternfly-docs/content/extensions/chatbot/examples/demos/Feedback.tsx +7 -7
  462. package/patternfly-docs/content/extensions/chatbot/img/quick-response-confirmation.svg +67 -0
  463. package/src/AttachMenu/AttachMenu.tsx +2 -2
  464. package/src/AttachmentEdit/AttachmentEdit.test.tsx +46 -2
  465. package/src/AttachmentEdit/AttachmentEdit.tsx +25 -7
  466. package/src/Chatbot/Chatbot.scss +1 -1
  467. package/src/Chatbot/Chatbot.test.tsx +0 -1
  468. package/src/Chatbot/Chatbot.tsx +5 -3
  469. package/src/ChatbotAlert/ChatbotAlert.test.tsx +0 -1
  470. package/src/ChatbotAlert/ChatbotAlert.tsx +2 -2
  471. package/src/ChatbotContent/ChatbotContent.scss +1 -1
  472. package/src/ChatbotContent/ChatbotContent.test.tsx +0 -1
  473. package/src/ChatbotContent/ChatbotContent.tsx +3 -3
  474. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.tsx +0 -1
  475. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx +6 -4
  476. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +14 -2
  477. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +61 -3
  478. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +37 -18
  479. package/src/ChatbotConversationHistoryNav/EmptyState.tsx +2 -2
  480. package/src/ChatbotConversationHistoryNav/LoadingState.tsx +2 -2
  481. package/src/ChatbotFooter/ChatbotFooter.scss +1 -1
  482. package/src/ChatbotFooter/ChatbotFooter.test.tsx +0 -1
  483. package/src/ChatbotFooter/ChatbotFooter.tsx +3 -3
  484. package/src/ChatbotFooter/ChatbotFooternote.test.tsx +0 -1
  485. package/src/ChatbotFooter/ChatbotFootnote.tsx +6 -4
  486. package/src/ChatbotHeader/ChatbotHeader.scss +3 -3
  487. package/src/ChatbotHeader/ChatbotHeader.test.tsx +0 -1
  488. package/src/ChatbotHeader/ChatbotHeader.tsx +3 -6
  489. package/src/ChatbotHeader/ChatbotHeaderActions.test.tsx +0 -1
  490. package/src/ChatbotHeader/ChatbotHeaderActions.tsx +2 -2
  491. package/src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx +0 -1
  492. package/src/ChatbotHeader/ChatbotHeaderCloseButton.tsx +5 -4
  493. package/src/ChatbotHeader/ChatbotHeaderMain.test.tsx +0 -1
  494. package/src/ChatbotHeader/ChatbotHeaderMain.tsx +2 -2
  495. package/src/ChatbotHeader/ChatbotHeaderMenu.test.tsx +0 -1
  496. package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +7 -7
  497. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx +9 -1
  498. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +12 -5
  499. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx +9 -1
  500. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +26 -6
  501. package/src/ChatbotHeader/ChatbotHeaderTitle.test.tsx +0 -1
  502. package/src/ChatbotHeader/ChatbotHeaderTitle.tsx +2 -2
  503. package/src/ChatbotModal/ChatbotModal.test.tsx +0 -1
  504. package/src/ChatbotModal/ChatbotModal.tsx +2 -2
  505. package/src/ChatbotPopover/ChatbotPopover.tsx +3 -3
  506. package/src/ChatbotToggle/ChatbotToggle.scss +2 -2
  507. package/src/ChatbotToggle/ChatbotToggle.test.tsx +0 -1
  508. package/src/ChatbotToggle/ChatbotToggle.tsx +5 -3
  509. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx +0 -1
  510. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.tsx +2 -2
  511. package/src/CodeModal/CodeModal.test.tsx +29 -2
  512. package/src/CodeModal/CodeModal.tsx +18 -8
  513. package/src/Compare/Compare.test.tsx +0 -1
  514. package/src/Compare/Compare.tsx +7 -6
  515. package/src/FileDetails/FileDetails.test.tsx +0 -1
  516. package/src/FileDetails/FileDetails.tsx +1 -1
  517. package/src/FileDetailsLabel/FileDetailsLabel.test.tsx +0 -1
  518. package/src/FileDetailsLabel/FileDetailsLabel.tsx +1 -1
  519. package/src/FileDropZone/FileDropZone.test.tsx +112 -1
  520. package/src/FileDropZone/FileDropZone.tsx +45 -5
  521. package/src/LoadingMessage/LoadingMessage.test.tsx +0 -1
  522. package/src/LoadingMessage/LoadingMessage.tsx +2 -2
  523. package/src/Message/CodeBlockMessage/CodeBlockMessage.scss +7 -0
  524. package/src/Message/CodeBlockMessage/CodeBlockMessage.tsx +104 -20
  525. package/src/Message/ErrorMessage/ErrorMessage.tsx +0 -1
  526. package/src/Message/ImageMessage/ImageMessage.tsx +1 -2
  527. package/src/Message/LinkMessage/LinkMessage.tsx +0 -1
  528. package/src/Message/ListMessage/ListItemMessage.tsx +0 -1
  529. package/src/Message/ListMessage/OrderedListMessage.tsx +0 -1
  530. package/src/Message/ListMessage/UnorderedListMessage.tsx +0 -1
  531. package/src/Message/Message.scss +9 -7
  532. package/src/Message/Message.test.tsx +84 -6
  533. package/src/Message/Message.tsx +39 -18
  534. package/src/Message/MessageInput.tsx +9 -5
  535. package/src/Message/MessageLoading.tsx +0 -2
  536. package/src/Message/Plugins/index.ts +1 -0
  537. package/src/Message/Plugins/rehypeCodeBlockToggle.ts +24 -0
  538. package/src/Message/Plugins/rehypeMoveImagesOutOfParagraphs.ts +53 -0
  539. package/src/Message/QuickResponse/QuickResponse.tsx +4 -3
  540. package/src/Message/QuickStarts/FallbackImg.tsx +4 -3
  541. package/src/Message/QuickStarts/QuickStartTile.tsx +3 -3
  542. package/src/Message/QuickStarts/QuickStartTileDescription.test.tsx +0 -1
  543. package/src/Message/QuickStarts/QuickStartTileDescription.tsx +4 -3
  544. package/src/Message/QuickStarts/QuickStartTileHeader.tsx +2 -2
  545. package/src/Message/QuickStarts/types.ts +4 -3
  546. package/src/Message/TableMessage/TableMessage.tsx +4 -4
  547. package/src/Message/TableMessage/TbodyMessage.tsx +3 -3
  548. package/src/Message/TableMessage/TdMessage.tsx +1 -2
  549. package/src/Message/TableMessage/ThMessage.tsx +1 -2
  550. package/src/Message/TableMessage/TheadMessage.tsx +3 -2
  551. package/src/Message/TableMessage/TrMessage.tsx +4 -4
  552. package/src/Message/TextMessage/TextMessage.scss +2 -5
  553. package/src/Message/TextMessage/TextMessage.tsx +1 -2
  554. package/src/Message/UserFeedback/CloseButton.tsx +2 -2
  555. package/src/Message/UserFeedback/UserFeedback.test.tsx +0 -1
  556. package/src/Message/UserFeedback/UserFeedback.tsx +8 -6
  557. package/src/Message/UserFeedback/UserFeedbackComplete.test.tsx +0 -1
  558. package/src/Message/UserFeedback/UserFeedbackComplete.tsx +16 -14
  559. package/src/Message/index.ts +1 -0
  560. package/src/MessageBar/AttachButton.test.tsx +127 -8
  561. package/src/MessageBar/AttachButton.tsx +50 -7
  562. package/src/MessageBar/MessageBar.test.tsx +81 -30
  563. package/src/MessageBar/MessageBar.tsx +86 -20
  564. package/src/MessageBar/MicrophoneButton.tsx +10 -7
  565. package/src/MessageBar/SendButton.scss +3 -3
  566. package/src/MessageBar/SendButton.test.tsx +5 -6
  567. package/src/MessageBar/SendButton.tsx +4 -3
  568. package/src/MessageBar/StopButton.test.tsx +5 -6
  569. package/src/MessageBar/StopButton.tsx +4 -3
  570. package/src/MessageBox/JumpButton.scss +1 -1
  571. package/src/MessageBox/JumpButton.test.tsx +4 -5
  572. package/src/MessageBox/JumpButton.tsx +3 -3
  573. package/src/MessageBox/MessageBox.test.tsx +295 -5
  574. package/src/MessageBox/MessageBox.tsx +301 -84
  575. package/src/MessageDivider/MessageDivider.scss +45 -0
  576. package/src/MessageDivider/MessageDivider.test.tsx +24 -0
  577. package/src/MessageDivider/MessageDivider.tsx +35 -0
  578. package/src/MessageDivider/index.ts +3 -0
  579. package/src/PreviewAttachment/PreviewAttachment.test.tsx +44 -2
  580. package/src/PreviewAttachment/PreviewAttachment.tsx +24 -6
  581. package/src/ResponseActions/ResponseActionButton.test.tsx +0 -1
  582. package/src/ResponseActions/ResponseActionButton.tsx +6 -5
  583. package/src/ResponseActions/ResponseActions.test.tsx +126 -4
  584. package/src/ResponseActions/ResponseActions.tsx +92 -12
  585. package/src/Settings/SettingsForm.test.tsx +0 -1
  586. package/src/Settings/SettingsForm.tsx +2 -7
  587. package/src/SourceDetailsMenuItem/SourceDetailsMenuItem.tsx +2 -2
  588. package/src/SourcesCard/SourcesCard.test.tsx +14 -1
  589. package/src/SourcesCard/SourcesCard.tsx +19 -7
  590. package/src/TermsOfUse/TermsOfUse.test.tsx +0 -1
  591. package/src/TermsOfUse/TermsOfUse.tsx +6 -5
  592. package/src/index.ts +3 -0
  593. package/src/main.scss +1 -52
  594. package/tsconfig.cjs.json +0 -1
  595. package/tsconfig.json +3 -3
@@ -1,5 +1,4 @@
1
- import React from 'react';
2
-
1
+ import { useState, FormEvent, FunctionComponent, MouseEvent } from 'react';
3
2
  import SettingsForm from '@patternfly/chatbot/dist/dynamic/Settings';
4
3
  import {
5
4
  Button,
@@ -23,13 +22,13 @@ import ChatbotHeader, {
23
22
  } from '@patternfly/chatbot/dist/dynamic/ChatbotHeader';
24
23
  import { CogIcon, ExpandIcon, OpenDrawerRightIcon, OutlinedWindowRestoreIcon } from '@patternfly/react-icons';
25
24
 
26
- export const CompactSettingsDemo: React.FunctionComponent = () => {
27
- const [isChecked, setIsChecked] = React.useState<boolean>(true);
28
- const [isThemeOpen, setIsThemeOpen] = React.useState(false);
29
- const [isLanguageOpen, setIsLanguageOpen] = React.useState(false);
30
- const [isVoiceOpen, setIsVoiceOpen] = React.useState(false);
31
- const [displayMode, setDisplayMode] = React.useState(ChatbotDisplayMode.default);
32
- const [areSettingsOpen, setAreSettingsOpen] = React.useState(true);
25
+ export const CompactSettingsDemo: FunctionComponent = () => {
26
+ const [isChecked, setIsChecked] = useState<boolean>(true);
27
+ const [isThemeOpen, setIsThemeOpen] = useState(false);
28
+ const [isLanguageOpen, setIsLanguageOpen] = useState(false);
29
+ const [isVoiceOpen, setIsVoiceOpen] = useState(false);
30
+ const [displayMode, setDisplayMode] = useState(ChatbotDisplayMode.default);
31
+ const [areSettingsOpen, setAreSettingsOpen] = useState(true);
33
32
  const chatbotVisible = true;
34
33
 
35
34
  const onFocus = (id: string) => {
@@ -41,10 +40,7 @@ export const CompactSettingsDemo: React.FunctionComponent = () => {
41
40
  setIsThemeOpen(!isThemeOpen);
42
41
  };
43
42
 
44
- const onThemeSelect = (
45
- _event: React.MouseEvent<Element, MouseEvent> | undefined,
46
- value: string | number | undefined
47
- ) => {
43
+ const onThemeSelect = (_event: MouseEvent<Element, MouseEvent> | undefined, value: string | number | undefined) => {
48
44
  // eslint-disable-next-line no-console
49
45
  console.log('selected', value);
50
46
  onFocus('theme');
@@ -56,7 +52,7 @@ export const CompactSettingsDemo: React.FunctionComponent = () => {
56
52
  };
57
53
 
58
54
  const onLanguageSelect = (
59
- _event: React.MouseEvent<Element, MouseEvent> | undefined,
55
+ _event: MouseEvent<Element, MouseEvent> | undefined,
60
56
  value: string | number | undefined
61
57
  ) => {
62
58
  // eslint-disable-next-line no-console
@@ -70,16 +66,13 @@ export const CompactSettingsDemo: React.FunctionComponent = () => {
70
66
  setIsVoiceOpen(!isVoiceOpen);
71
67
  };
72
68
 
73
- const onVoiceSelect = (
74
- _event: React.MouseEvent<Element, MouseEvent> | undefined,
75
- value: string | number | undefined
76
- ) => {
69
+ const onVoiceSelect = (_event: MouseEvent<Element, MouseEvent> | undefined, value: string | number | undefined) => {
77
70
  // eslint-disable-next-line no-console
78
71
  console.log('selected', value);
79
72
  setIsVoiceOpen(false);
80
73
  };
81
74
 
82
- const handleChange = (_event: React.FormEvent<HTMLInputElement>, checked: boolean) => {
75
+ const handleChange = (_event: FormEvent<HTMLInputElement>, checked: boolean) => {
83
76
  setIsChecked(checked);
84
77
  };
85
78
 
@@ -91,7 +84,7 @@ export const CompactSettingsDemo: React.FunctionComponent = () => {
91
84
  shouldFocusToggleOnSelect
92
85
  shouldFocusFirstItemOnOpen
93
86
  shouldPreventScrollOnItemFocus
94
- toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
87
+ toggle={(toggleRef: Ref<MenuToggleElement>) => (
95
88
  // We want to add the id property here as well so the label is coupled
96
89
  // with t he button on screen readers.
97
90
  <MenuToggle size="sm" id="theme" ref={toggleRef} onClick={onThemeToggleClick} isExpanded={isThemeOpen}>
@@ -116,7 +109,7 @@ export const CompactSettingsDemo: React.FunctionComponent = () => {
116
109
  shouldFocusToggleOnSelect
117
110
  shouldFocusFirstItemOnOpen
118
111
  shouldPreventScrollOnItemFocus
119
- toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
112
+ toggle={(toggleRef: Ref<MenuToggleElement>) => (
120
113
  // We want to add the id property here as well so the label is coupled
121
114
  // with the button on screen readers.
122
115
  <MenuToggle size="sm" id="language" ref={toggleRef} onClick={onLanguageToggleClick} isExpanded={isLanguageOpen}>
@@ -140,7 +133,7 @@ export const CompactSettingsDemo: React.FunctionComponent = () => {
140
133
  shouldFocusToggleOnSelect
141
134
  shouldFocusFirstItemOnOpen
142
135
  shouldPreventScrollOnItemFocus
143
- toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
136
+ toggle={(toggleRef: Ref<MenuToggleElement>) => (
144
137
  // We want to add the id property here as well so the label is coupled
145
138
  // with the button on screen readers.
146
139
  <MenuToggle size="sm" id="voice" ref={toggleRef} onClick={onVoiceToggleClick} isExpanded={isVoiceOpen}>
@@ -210,7 +203,7 @@ export const CompactSettingsDemo: React.FunctionComponent = () => {
210
203
  ];
211
204
 
212
205
  const onSelectDropdownItem = (
213
- _event: React.MouseEvent<Element, MouseEvent> | undefined,
206
+ _event: MouseEvent<Element, MouseEvent> | undefined,
214
207
  value: string | number | undefined
215
208
  ) => {
216
209
  if (value === 'Settings') {
@@ -1,8 +1,8 @@
1
- import React from 'react';
1
+ import { FunctionComponent, useState } from 'react';
2
2
  import ChatbotToggle from '@patternfly/chatbot/dist/dynamic/ChatbotToggle';
3
3
 
4
- export const BasicDemo: React.FunctionComponent = () => {
5
- const [chatbotVisible, setChatbotVisible] = React.useState<boolean>(false);
4
+ export const BasicDemo: FunctionComponent = () => {
5
+ const [chatbotVisible, setChatbotVisible] = useState<boolean>(false);
6
6
 
7
7
  const closedToggleIcon: () => JSX.Element = () => (
8
8
  <svg
@@ -1,5 +1,4 @@
1
- import React from 'react';
2
-
1
+ import { useState, FunctionComponent, MouseEvent, Ref } from 'react';
3
2
  import SettingsForm from '@patternfly/chatbot/dist/dynamic/Settings';
4
3
  import {
5
4
  Button,
@@ -23,13 +22,13 @@ import ChatbotHeader, {
23
22
  } from '@patternfly/chatbot/dist/dynamic/ChatbotHeader';
24
23
  import { CogIcon, ExpandIcon, OpenDrawerRightIcon, OutlinedWindowRestoreIcon } from '@patternfly/react-icons';
25
24
 
26
- export const SettingsDemo: React.FunctionComponent = () => {
27
- const [isChecked, setIsChecked] = React.useState<boolean>(true);
28
- const [isThemeOpen, setIsThemeOpen] = React.useState(false);
29
- const [isLanguageOpen, setIsLanguageOpen] = React.useState(false);
30
- const [isVoiceOpen, setIsVoiceOpen] = React.useState(false);
31
- const [displayMode, setDisplayMode] = React.useState(ChatbotDisplayMode.default);
32
- const [areSettingsOpen, setAreSettingsOpen] = React.useState(true);
25
+ export const SettingsDemo: FunctionComponent = () => {
26
+ const [isChecked, setIsChecked] = useState<boolean>(true);
27
+ const [isThemeOpen, setIsThemeOpen] = useState(false);
28
+ const [isLanguageOpen, setIsLanguageOpen] = useState(false);
29
+ const [isVoiceOpen, setIsVoiceOpen] = useState(false);
30
+ const [displayMode, setDisplayMode] = useState(ChatbotDisplayMode.default);
31
+ const [areSettingsOpen, setAreSettingsOpen] = useState(true);
33
32
  const chatbotVisible = true;
34
33
 
35
34
  const onFocus = (id: string) => {
@@ -41,10 +40,7 @@ export const SettingsDemo: React.FunctionComponent = () => {
41
40
  setIsThemeOpen(!isThemeOpen);
42
41
  };
43
42
 
44
- const onThemeSelect = (
45
- _event: React.MouseEvent<Element, MouseEvent> | undefined,
46
- value: string | number | undefined
47
- ) => {
43
+ const onThemeSelect = (_event: MouseEvent<Element, MouseEvent> | undefined, value: string | number | undefined) => {
48
44
  // eslint-disable-next-line no-console
49
45
  console.log('selected', value);
50
46
  onFocus('theme');
@@ -56,7 +52,7 @@ export const SettingsDemo: React.FunctionComponent = () => {
56
52
  };
57
53
 
58
54
  const onLanguageSelect = (
59
- _event: React.MouseEvent<Element, MouseEvent> | undefined,
55
+ _event: MouseEvent<Element, MouseEvent> | undefined,
60
56
  value: string | number | undefined
61
57
  ) => {
62
58
  // eslint-disable-next-line no-console
@@ -70,16 +66,13 @@ export const SettingsDemo: React.FunctionComponent = () => {
70
66
  setIsVoiceOpen(!isVoiceOpen);
71
67
  };
72
68
 
73
- const onVoiceSelect = (
74
- _event: React.MouseEvent<Element, MouseEvent> | undefined,
75
- value: string | number | undefined
76
- ) => {
69
+ const onVoiceSelect = (_event: MouseEvent<Element, MouseEvent> | undefined, value: string | number | undefined) => {
77
70
  // eslint-disable-next-line no-console
78
71
  console.log('selected', value);
79
72
  setIsVoiceOpen(false);
80
73
  };
81
74
 
82
- const handleChange = (_event: React.FormEvent<HTMLInputElement>, checked: boolean) => {
75
+ const handleChange = (_event: FormEvent<HTMLInputElement>, checked: boolean) => {
83
76
  setIsChecked(checked);
84
77
  };
85
78
 
@@ -91,7 +84,7 @@ export const SettingsDemo: React.FunctionComponent = () => {
91
84
  shouldFocusToggleOnSelect
92
85
  shouldFocusFirstItemOnOpen
93
86
  shouldPreventScrollOnItemFocus
94
- toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
87
+ toggle={(toggleRef: Ref<MenuToggleElement>) => (
95
88
  // We want to add the id property here as well so the label is coupled
96
89
  // with the button on screen readers.
97
90
  <MenuToggle id="theme" ref={toggleRef} onClick={onThemeToggleClick} isExpanded={isThemeOpen}>
@@ -116,7 +109,7 @@ export const SettingsDemo: React.FunctionComponent = () => {
116
109
  shouldFocusToggleOnSelect
117
110
  shouldFocusFirstItemOnOpen
118
111
  shouldPreventScrollOnItemFocus
119
- toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
112
+ toggle={(toggleRef: Ref<MenuToggleElement>) => (
120
113
  // We want to add the id property here as well so the label is coupled
121
114
  // with the button on screen readers.
122
115
  <MenuToggle id="language" ref={toggleRef} onClick={onLanguageToggleClick} isExpanded={isLanguageOpen}>
@@ -140,7 +133,7 @@ export const SettingsDemo: React.FunctionComponent = () => {
140
133
  shouldFocusToggleOnSelect
141
134
  shouldFocusFirstItemOnOpen
142
135
  shouldPreventScrollOnItemFocus
143
- toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
136
+ toggle={(toggleRef: Ref<MenuToggleElement>) => (
144
137
  // We want to add the id property here as well so the label is coupled
145
138
  // with the button on screen readers.
146
139
  <MenuToggle id="voice" ref={toggleRef} onClick={onVoiceToggleClick} isExpanded={isVoiceOpen}>
@@ -210,7 +203,7 @@ export const SettingsDemo: React.FunctionComponent = () => {
210
203
  ];
211
204
 
212
205
  const onSelectDropdownItem = (
213
- _event: React.MouseEvent<Element, MouseEvent> | undefined,
206
+ _event: MouseEvent<Element, MouseEvent> | undefined,
214
207
  value: string | number | undefined
215
208
  ) => {
216
209
  if (value === 'Settings') {
@@ -1,13 +1,13 @@
1
- import React from 'react';
1
+ import { useState, useRef, FunctionComponent } from 'react';
2
2
 
3
3
  import { SkipToContent } from '@patternfly/react-core';
4
4
  import ChatbotToggle from '@patternfly/chatbot/dist/dynamic/ChatbotToggle';
5
5
  import Chatbot, { ChatbotDisplayMode } from '@patternfly/chatbot/dist/dynamic/Chatbot';
6
6
 
7
- export const ChatbotDemo: React.FunctionComponent = () => {
8
- const [chatbotVisible, setChatbotVisible] = React.useState<boolean>(true);
9
- const toggleRef = React.useRef<HTMLButtonElement>(null);
10
- const chatbotRef = React.useRef<HTMLDivElement>(null);
7
+ export const ChatbotDemo: FunctionComponent = () => {
8
+ const [chatbotVisible, setChatbotVisible] = useState<boolean>(true);
9
+ const toggleRef = useRef<HTMLButtonElement>(null);
10
+ const chatbotRef = useRef<HTMLDivElement>(null);
11
11
  const displayMode = ChatbotDisplayMode.default;
12
12
 
13
13
  const handleSkipToContent = (e) => {
@@ -1,8 +1,8 @@
1
- import React from 'react';
1
+ import { FunctionComponent, useState } from 'react';
2
2
  import ChatbotToggle from '@patternfly/chatbot/dist/dynamic/ChatbotToggle';
3
3
 
4
- export const SquareChatbotToggle: React.FunctionComponent = () => {
5
- const [chatbotVisible, setChatbotVisible] = React.useState<boolean>(false);
4
+ export const SquareChatbotToggle: FunctionComponent = () => {
5
+ const [chatbotVisible, setChatbotVisible] = useState<boolean>(false);
6
6
  return (
7
7
  <ChatbotToggle
8
8
  tooltipLabel="Chatbot"
@@ -1,15 +1,35 @@
1
- import React from 'react';
2
- import { Button, Checkbox, FormGroup, Radio, SkipToContent } from '@patternfly/react-core';
1
+ import {
2
+ useRef,
3
+ useState,
4
+ FunctionComponent,
5
+ MouseEvent,
6
+ CSSProperties,
7
+ Ref,
8
+ MouseEvent as ReactMouseEvent
9
+ } from 'react';
10
+ import {
11
+ Button,
12
+ Checkbox,
13
+ SkipToContent,
14
+ MenuToggle,
15
+ MenuToggleElement,
16
+ Select,
17
+ SelectList,
18
+ SelectOption,
19
+ Stack
20
+ } from '@patternfly/react-core';
3
21
  import TermsOfUse from '@patternfly/chatbot/dist/dynamic/TermsOfUse';
4
22
  import Chatbot, { ChatbotDisplayMode } from '@patternfly/chatbot/dist/dynamic/Chatbot';
5
23
  import termsAndConditionsHeader from './PF-TermsAndConditionsHeader.svg';
6
24
 
7
- export const TermsOfUseExample: React.FunctionComponent = () => {
8
- const [isModalOpen, setIsModalOpen] = React.useState(true);
9
- const [displayMode, setDisplayMode] = React.useState(ChatbotDisplayMode.default);
10
- const [hasImage, setHasImage] = React.useState(true);
11
- const chatbotRef = React.useRef<HTMLDivElement>(null);
12
- const termsRef = React.useRef<HTMLDivElement>(null);
25
+ export const TermsOfUseExample: FunctionComponent = () => {
26
+ const [isModalOpen, setIsModalOpen] = useState(true);
27
+ const [displayMode, setDisplayMode] = useState(ChatbotDisplayMode.default);
28
+ const [hasImage, setHasImage] = useState(true);
29
+ const chatbotRef = useRef<HTMLDivElement>(null);
30
+ const termsRef = useRef<HTMLDivElement>(null);
31
+ const [isOpen, setIsOpen] = useState(false);
32
+ const [selected, setSelected] = useState<string>('Select display mode');
13
33
 
14
34
  const handleSkipToContent = (e) => {
15
35
  e.preventDefault();
@@ -21,7 +41,7 @@ export const TermsOfUseExample: React.FunctionComponent = () => {
21
41
  }
22
42
  };
23
43
 
24
- const handleModalToggle = (_event: React.MouseEvent | MouseEvent | KeyboardEvent) => {
44
+ const handleModalToggle = (_event: MouseEvent | MouseEvent | KeyboardEvent) => {
25
45
  setIsModalOpen(!isModalOpen);
26
46
  };
27
47
 
@@ -34,6 +54,41 @@ export const TermsOfUseExample: React.FunctionComponent = () => {
34
54
  // eslint-disable-next-line no-console
35
55
  console.log('Clicked secondary action');
36
56
  };
57
+ const onSelect = (_event: ReactMouseEvent<Element, MouseEvent> | undefined, value: string | number | undefined) => {
58
+ setSelected(value as string);
59
+ setIsOpen(false);
60
+ if (value === 'Default') {
61
+ setDisplayMode(ChatbotDisplayMode.default);
62
+ }
63
+ if (value === 'Docked') {
64
+ setDisplayMode(ChatbotDisplayMode.docked);
65
+ }
66
+ if (value === 'Fullscreen') {
67
+ setDisplayMode(ChatbotDisplayMode.fullscreen);
68
+ }
69
+ if (value === 'Embedded') {
70
+ setDisplayMode(ChatbotDisplayMode.embedded);
71
+ }
72
+ };
73
+
74
+ const onToggleClick = () => {
75
+ setIsOpen(!isOpen);
76
+ };
77
+
78
+ const toggle = (toggleRef: Ref<MenuToggleElement>) => (
79
+ <MenuToggle
80
+ ref={toggleRef}
81
+ onClick={onToggleClick}
82
+ isExpanded={isOpen}
83
+ style={
84
+ {
85
+ width: '200px'
86
+ } as CSSProperties
87
+ }
88
+ >
89
+ {selected}
90
+ </MenuToggle>
91
+ );
37
92
 
38
93
  const introduction = (
39
94
  <>
@@ -89,45 +144,33 @@ export const TermsOfUseExample: React.FunctionComponent = () => {
89
144
  boxShadow: 'var(--pf-t--global--box-shadow--lg)'
90
145
  }}
91
146
  >
92
- <FormGroup role="radiogroup" isInline fieldId="basic-form-radio-group" label="Display mode">
93
- <Radio
94
- isChecked={displayMode === ChatbotDisplayMode.default}
95
- onChange={() => setDisplayMode(ChatbotDisplayMode.default)}
96
- name="basic-inline-radio"
97
- label="Default"
98
- id="default"
99
- />
100
- <Radio
101
- isChecked={displayMode === ChatbotDisplayMode.docked}
102
- onChange={() => setDisplayMode(ChatbotDisplayMode.docked)}
103
- name="basic-inline-radio"
104
- label="Docked"
105
- id="docked"
106
- />
107
- <Radio
108
- isChecked={displayMode === ChatbotDisplayMode.fullscreen}
109
- onChange={() => setDisplayMode(ChatbotDisplayMode.fullscreen)}
110
- name="basic-inline-radio"
111
- label="Fullscreen"
112
- id="fullscreen"
113
- />
114
- <Radio
115
- isChecked={displayMode === ChatbotDisplayMode.embedded}
116
- onChange={() => setDisplayMode(ChatbotDisplayMode.embedded)}
117
- name="basic-inline-radio"
118
- label="Embedded"
119
- id="embedded"
120
- />
121
- </FormGroup>
122
- <Checkbox
123
- isChecked={hasImage}
124
- aria-label="Toggle whether terms and conditions has a header image"
125
- id="toggle-header-image"
126
- name="toggle-header-image"
127
- label="Has image in header"
128
- onChange={(_event, checked) => setHasImage(checked)}
129
- ></Checkbox>
130
- <Button onClick={handleModalToggle}>Launch modal</Button>
147
+ <Stack hasGutter>
148
+ <Select
149
+ id="single-select"
150
+ isOpen={isOpen}
151
+ selected={selected}
152
+ onSelect={onSelect}
153
+ onOpenChange={(isOpen) => setIsOpen(isOpen)}
154
+ toggle={toggle}
155
+ shouldFocusToggleOnSelect
156
+ >
157
+ <SelectList>
158
+ <SelectOption value="Default">Default</SelectOption>
159
+ <SelectOption value="Docked">Docked</SelectOption>
160
+ <SelectOption value="Fullscreen">Fullscreen</SelectOption>
161
+ <SelectOption value="Embedded">Embedded</SelectOption>
162
+ </SelectList>
163
+ </Select>
164
+ <Checkbox
165
+ isChecked={hasImage}
166
+ aria-label="Toggle whether terms and conditions has a header image"
167
+ id="toggle-header-image"
168
+ name="toggle-header-image"
169
+ label="Has image in header"
170
+ onChange={(_event, checked) => setHasImage(checked)}
171
+ ></Checkbox>
172
+ <Button onClick={handleModalToggle}>Launch modal</Button>
173
+ </Stack>
131
174
  </div>
132
175
  <Chatbot ref={chatbotRef} displayMode={displayMode} isVisible></Chatbot>
133
176
  <TermsOfUse
@@ -1,13 +1,32 @@
1
- import React from 'react';
2
- import { Button, FormGroup, Radio, SkipToContent } from '@patternfly/react-core';
1
+ import {
2
+ useRef,
3
+ useState,
4
+ FunctionComponent,
5
+ MouseEvent,
6
+ CSSProperties,
7
+ Ref,
8
+ MouseEvent as ReactMouseEvent
9
+ } from 'react';
10
+ import {
11
+ Button,
12
+ SkipToContent,
13
+ MenuToggle,
14
+ MenuToggleElement,
15
+ Select,
16
+ SelectList,
17
+ SelectOption,
18
+ Stack
19
+ } from '@patternfly/react-core';
3
20
  import TermsOfUse from '@patternfly/chatbot/dist/dynamic/TermsOfUse';
4
21
  import Chatbot, { ChatbotDisplayMode } from '@patternfly/chatbot/dist/dynamic/Chatbot';
5
22
 
6
- export const TermsOfUseCompactExample: React.FunctionComponent = () => {
7
- const [isModalOpen, setIsModalOpen] = React.useState(true);
8
- const [displayMode, setDisplayMode] = React.useState(ChatbotDisplayMode.default);
9
- const chatbotRef = React.useRef<HTMLDivElement>(null);
10
- const termsRef = React.useRef<HTMLDivElement>(null);
23
+ export const TermsOfUseCompactExample: FunctionComponent = () => {
24
+ const [isModalOpen, setIsModalOpen] = useState(true);
25
+ const [displayMode, setDisplayMode] = useState(ChatbotDisplayMode.default);
26
+ const chatbotRef = useRef<HTMLDivElement>(null);
27
+ const termsRef = useRef<HTMLDivElement>(null);
28
+ const [isOpen, setIsOpen] = useState(false);
29
+ const [selected, setSelected] = useState<string>('Select display mode');
11
30
 
12
31
  const handleSkipToContent = (e) => {
13
32
  e.preventDefault();
@@ -19,7 +38,7 @@ export const TermsOfUseCompactExample: React.FunctionComponent = () => {
19
38
  }
20
39
  };
21
40
 
22
- const handleModalToggle = (_event: React.MouseEvent | MouseEvent | KeyboardEvent) => {
41
+ const handleModalToggle = (_event: ReactMouseEvent | MouseEvent | KeyboardEvent) => {
23
42
  setIsModalOpen(!isModalOpen);
24
43
  };
25
44
 
@@ -33,6 +52,42 @@ export const TermsOfUseCompactExample: React.FunctionComponent = () => {
33
52
  console.log('Clicked secondary action');
34
53
  };
35
54
 
55
+ const onSelect = (_event: ReactMouseEvent<Element, MouseEvent> | undefined, value: string | number | undefined) => {
56
+ setSelected(value as string);
57
+ setIsOpen(false);
58
+ if (value === 'Default') {
59
+ setDisplayMode(ChatbotDisplayMode.default);
60
+ }
61
+ if (value === 'Docked') {
62
+ setDisplayMode(ChatbotDisplayMode.docked);
63
+ }
64
+ if (value === 'Fullscreen') {
65
+ setDisplayMode(ChatbotDisplayMode.fullscreen);
66
+ }
67
+ if (value === 'Embedded') {
68
+ setDisplayMode(ChatbotDisplayMode.embedded);
69
+ }
70
+ };
71
+
72
+ const onToggleClick = () => {
73
+ setIsOpen(!isOpen);
74
+ };
75
+
76
+ const toggle = (toggleRef: Ref<MenuToggleElement>) => (
77
+ <MenuToggle
78
+ ref={toggleRef}
79
+ onClick={onToggleClick}
80
+ isExpanded={isOpen}
81
+ style={
82
+ {
83
+ width: '200px'
84
+ } as CSSProperties
85
+ }
86
+ >
87
+ {selected}
88
+ </MenuToggle>
89
+ );
90
+
36
91
  const introduction = (
37
92
  <>
38
93
  <p>
@@ -87,37 +142,25 @@ export const TermsOfUseCompactExample: React.FunctionComponent = () => {
87
142
  boxShadow: 'var(--pf-t--global--box-shadow--lg)'
88
143
  }}
89
144
  >
90
- <FormGroup role="radiogroup" isInline fieldId="basic-form-radio-group" label="Display mode">
91
- <Radio
92
- isChecked={displayMode === ChatbotDisplayMode.default}
93
- onChange={() => setDisplayMode(ChatbotDisplayMode.default)}
94
- name="basic-inline-radio"
95
- label="Default"
96
- id="default"
97
- />
98
- <Radio
99
- isChecked={displayMode === ChatbotDisplayMode.docked}
100
- onChange={() => setDisplayMode(ChatbotDisplayMode.docked)}
101
- name="basic-inline-radio"
102
- label="Docked"
103
- id="docked"
104
- />
105
- <Radio
106
- isChecked={displayMode === ChatbotDisplayMode.fullscreen}
107
- onChange={() => setDisplayMode(ChatbotDisplayMode.fullscreen)}
108
- name="basic-inline-radio"
109
- label="Fullscreen"
110
- id="fullscreen"
111
- />
112
- <Radio
113
- isChecked={displayMode === ChatbotDisplayMode.embedded}
114
- onChange={() => setDisplayMode(ChatbotDisplayMode.embedded)}
115
- name="basic-inline-radio"
116
- label="Embedded"
117
- id="embedded"
118
- />
119
- </FormGroup>
120
- <Button onClick={handleModalToggle}>Launch modal</Button>
145
+ <Stack hasGutter>
146
+ <Select
147
+ id="single-select"
148
+ isOpen={isOpen}
149
+ selected={selected}
150
+ onSelect={onSelect}
151
+ onOpenChange={(isOpen) => setIsOpen(isOpen)}
152
+ toggle={toggle}
153
+ shouldFocusToggleOnSelect
154
+ >
155
+ <SelectList>
156
+ <SelectOption value="Default">Default</SelectOption>
157
+ <SelectOption value="Docked">Docked</SelectOption>
158
+ <SelectOption value="Fullscreen">Fullscreen</SelectOption>
159
+ <SelectOption value="Embedded">Embedded</SelectOption>
160
+ </SelectList>
161
+ </Select>
162
+ <Button onClick={handleModalToggle}>Launch modal</Button>
163
+ </Stack>
121
164
  </div>
122
165
  <Chatbot ref={chatbotRef} displayMode={displayMode} isVisible></Chatbot>
123
166
  <TermsOfUse
@@ -68,7 +68,7 @@ import { MessageBar } from '@patternfly/chatbot/dist/dynamic/MessageBar';
68
68
  import SourceDetailsMenuItem from '@patternfly/chatbot/dist/dynamic/SourceDetailsMenuItem';
69
69
  import { ChatbotModal } from '@patternfly/chatbot/dist/dynamic/ChatbotModal';
70
70
  import SettingsForm from '@patternfly/chatbot/dist/dynamic/Settings';
71
- import { BellIcon, CalendarAltIcon, ClipboardIcon, CodeIcon, UploadIcon } from '@patternfly/react-icons';
71
+ import { BellIcon, CalendarAltIcon, ClipboardIcon, CodeIcon, ThumbtackIcon, UploadIcon } from '@patternfly/react-icons';
72
72
  import { useDropzone } from 'react-dropzone';
73
73
 
74
74
  import ChatbotConversationHistoryNav from '@patternfly/chatbot/dist/dynamic/ChatbotConversationHistoryNav';
@@ -84,6 +84,7 @@ import userAvatar from '../Messages/user_avatar.svg';
84
84
  import patternflyAvatar from '../Messages/patternfly_avatar.jpg';
85
85
  import termsAndConditionsHeader from './PF-TermsAndConditionsHeader.svg';
86
86
  import { CloseIcon, SearchIcon, OutlinedCommentsIcon } from '@patternfly/react-icons';
87
+ import { FunctionComponent, FormEvent, useState, useRef, MouseEvent, isValidElement, cloneElement, Children, ReactNode, Ref, MouseEvent as ReactMouseEvent, CSSProperties} from 'react';
87
88
 
88
89
  ## Structure
89
90
 
@@ -360,6 +361,14 @@ Actions can be added to conversations with `menuItems`. Optionally, you can also
360
361
 
361
362
  ```
362
363
 
364
+ ### Pinning conversations
365
+
366
+ To help users track important conversations, add a "pin" option to the conversation action menus. This action moves a conversation to a dedicated "pinned" section at the top of the history drawer for quick access. Pinned items should contain an "unpin" option, so that users can remove pinned conversations as needed.
367
+
368
+ ```js file="./ChatbotHeaderDrawerWithPin.tsx"
369
+
370
+ ```
371
+
363
372
  ### Drawer with active conversation
364
373
 
365
374
  If you're showing a conversation that is already active, you can set the `activeItemId` prop on your `<ChatbotConversationHistoryNav>` to apply an active visual state.
@@ -399,6 +408,7 @@ This example also includes an example of how to use [skip to content](/patternfl
399
408
  ### Compact terms of use
400
409
 
401
410
  To apply compact styling to the terms of use modal, pass `isCompact` to `<TermsOfUse>`. This will remove the header image and adjust the spacing of text, so that there is less white space in the modal.
411
+
402
412
  ```js file="./TermsOfUseCompact.tsx" isFullscreen
403
413
 
404
414
  ```
@@ -416,6 +426,7 @@ In this demo, you can toggle the settings page by clicking the "Settings" button
416
426
  ### Compact settings
417
427
 
418
428
  To make the settings menu compact, with less spacing between the menu contents, pass `isCompact` to the `<SettingsForm>`.
429
+
419
430
  ```js file="./CompactSettings.tsx" isFullscreen
420
431
 
421
432
  ```
@@ -44,6 +44,9 @@ import PFIconLogoColor from '../UI/PF-IconLogo-Color.svg';
44
44
  import PFIconLogoReverse from '../UI/PF-IconLogo-Reverse.svg';
45
45
  import userAvatar from '../Messages/user_avatar.svg';
46
46
  import patternflyAvatar from '../Messages/patternfly_avatar.jpg';
47
+ import { FunctionComponent, useState, useRef, isValidElement, cloneElement, Children, ReactNode, MouseEvent } from 'react';
48
+ import { getTrackingProviders } from "@patternfly/chatbot/dist/dynamic/tracking";
49
+ import ChatbotConversationHistoryNav from '@patternfly/chatbot/dist/dynamic/ChatbotConversationHistoryNav';
47
50
 
48
51
  ## Demos
49
52
 
@@ -61,6 +64,40 @@ It is also important to announce when new content appears onscreen for accessibi
61
64
 
62
65
  ```
63
66
 
67
+ ### Message auto-scrolling
68
+
69
+ This demo shows auto-scrolling functionality, which automatically scrolls to the bottom of the active chat.
70
+
71
+ To enable auto-scroll behavior pass the `enableSmartScroll` prop to the [`<MessageBox>`](/patternfly-ai/chatbot/ui#message-box) component.
72
+
73
+ When enabled:
74
+
75
+ - Scroll position is automatically managed based on user interaction.
76
+ - Scrolling is _not_ forced to the bottom when new messages arrive, unless explicitly triggered via the `scrollToBottom()` method.
77
+ - If the user scrolls up or interacts with UI controls like "Back to top" or "Back to bottom", the component pauses auto-scroll to respect user intent.
78
+ - Auto-scroll resumes only when the user scrolls back down manually or programmatically via the `scrollToBottom({resumeSmartScroll: true})` method.
79
+
80
+ #### Imperative methods via `ref`
81
+
82
+ When using `ref`, the `<MessageBox>` component exposes the following methods:
83
+
84
+ - `scrollToBottom()`: Scrolls to the bottom of the message container.
85
+ - `scrollToTop()`: Scrolls to the top of the message container.
86
+ - `isSmartScrollActive()`: Returns `true` if smart auto-scroll is currently active.
87
+ - Native `HTMLDivElement` methods like `scrollTo()`.
88
+
89
+ This demo includes broader ChatBot features, including:
90
+
91
+ 1. A [`<ChatbotToggle>`](/patternfly-ai/chatbot/ui#toggle) that controls the [`<Chatbot>`](/patternfly-ai/chatbot/ui#container) container.
92
+ 2. A `<ChatbotContent>` and [`<MessageBox>`](/patternfly-ai/chatbot/ui#content-and-message-box) with:
93
+ - A `<ChatbotWelcomePrompt>`
94
+ - An initial user message and initial bot message
95
+ 3. A [`<ChatbotFooter>`](/patternfly-ai/chatbot/ui#footer) with a [`<ChatbotFootnote>`](/patternfly-ai/chatbot/ui#footnote-with-popover) and a `<MessageBar>`
96
+
97
+ ```js file="./ChatbotScrolling.tsx" isFullscreen
98
+
99
+ ```
100
+
64
101
  ### Attach via upload button in message bar
65
102
 
66
103
  This demo displays unique attachment features, including: