@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,7 +1,7 @@
1
1
  // ============================================================================
2
2
  // Chatbot Attachment Menu
3
3
  // ============================================================================
4
- import React from 'react';
4
+ import type { FunctionComponent } from 'react';
5
5
 
6
6
  // Import PatternFly components
7
7
  import {
@@ -41,7 +41,7 @@ export interface AttachMenuProps extends DropdownProps {
41
41
  toggle: DropdownToggleProps | ((toggleRef: React.RefObject<any>) => React.ReactNode);
42
42
  }
43
43
 
44
- export const AttachMenu: React.FunctionComponent<AttachMenuProps> = ({
44
+ export const AttachMenu: FunctionComponent<AttachMenuProps> = ({
45
45
  className,
46
46
  filteredItems,
47
47
  handleTextInputChange,
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
- import { fireEvent, render, screen } from '@testing-library/react';
1
+ import { fireEvent, render, screen, within } from '@testing-library/react';
2
+ import '@testing-library/jest-dom';
3
3
  import AttachmentEdit, { AttachmentEditProps } from './AttachmentEdit';
4
4
 
5
5
  describe('AttachmentEdit', () => {
@@ -52,4 +52,48 @@ describe('AttachmentEdit', () => {
52
52
  fireEvent.click(screen.getByText('Cancel'));
53
53
  expect(onCancelHandler).toHaveBeenCalled();
54
54
  });
55
+
56
+ it('should render custom button text for footer actions buttons', () => {
57
+ render(
58
+ <AttachmentEdit
59
+ code="Hello world"
60
+ fileName="greetings.txt"
61
+ isModalOpen={true}
62
+ onCancel={jest.fn()}
63
+ onSave={jest.fn()}
64
+ handleModalToggle={jest.fn()}
65
+ primaryActionButtonText="Save"
66
+ secondaryActionButtonText="Close"
67
+ />
68
+ );
69
+
70
+ expect(screen.getByText('Save')).toBeInTheDocument();
71
+ expect(screen.getByText('Close')).toBeInTheDocument();
72
+ });
73
+
74
+ it('should render AttachmentEdit with custom classNames', async () => {
75
+ render(
76
+ <AttachmentEdit
77
+ code="Hello world"
78
+ fileName="greetings.txt"
79
+ isModalOpen={true}
80
+ onCancel={jest.fn()}
81
+ onSave={jest.fn()}
82
+ handleModalToggle={jest.fn()}
83
+ primaryActionButtonText="Save"
84
+ secondaryActionButtonText="Close"
85
+ modalHeaderClassName="custom-header-class"
86
+ modalBodyClassName="custom-body-class"
87
+ modalFooterClassName="custom-footer-class"
88
+ ></AttachmentEdit>
89
+ );
90
+
91
+ const modal = screen.getByRole('dialog');
92
+ const modalHeader = within(modal).getByRole('banner');
93
+ expect(modalHeader).toHaveClass('custom-header-class');
94
+ const modalBody = modal.querySelector('#code-modal-body');
95
+ expect(modalBody).toHaveClass('custom-body-class');
96
+ const modalfooter = within(modal).getByRole('contentinfo');
97
+ expect(modalfooter).toHaveClass('custom-footer-class');
98
+ });
55
99
  });
@@ -1,7 +1,7 @@
1
1
  // ============================================================================
2
2
  // Attachment Edit - Chatbot Code Snippet Editor
3
3
  // ============================================================================
4
- import React from 'react';
4
+ import type { FunctionComponent, MouseEvent as ReactMouseEvent } from 'react';
5
5
  import CodeModal from '../CodeModal';
6
6
  import { ChatbotDisplayMode } from '../Chatbot';
7
7
 
@@ -24,9 +24,19 @@ export interface AttachmentEditProps {
24
24
  displayMode?: ChatbotDisplayMode;
25
25
  /** Sets modal to compact styling. */
26
26
  isCompact?: boolean;
27
+ /** Primary action button text */
28
+ primaryActionButtonText?: string;
29
+ /** Secondary action button text */
30
+ secondaryActionButtonText?: string;
31
+ /** Class applied to modal header */
32
+ modalHeaderClassName?: string;
33
+ /** Class applied to modal body */
34
+ modalBodyClassName?: string;
35
+ /** Class applied to modal footer */
36
+ modalFooterClassName?: string;
27
37
  }
28
38
 
29
- export const AttachmentEdit: React.FunctionComponent<AttachmentEditProps> = ({
39
+ export const AttachmentEdit: FunctionComponent<AttachmentEditProps> = ({
30
40
  fileName,
31
41
  code,
32
42
  handleModalToggle,
@@ -35,14 +45,19 @@ export const AttachmentEdit: React.FunctionComponent<AttachmentEditProps> = ({
35
45
  onSave,
36
46
  title = 'Edit attachment',
37
47
  displayMode = ChatbotDisplayMode.default,
38
- isCompact
48
+ isCompact,
49
+ modalHeaderClassName,
50
+ modalBodyClassName,
51
+ modalFooterClassName,
52
+ primaryActionButtonText = 'Save',
53
+ secondaryActionButtonText = 'Cancel'
39
54
  }: AttachmentEditProps) => {
40
- const handleSave = (_event: React.MouseEvent | MouseEvent | KeyboardEvent, code) => {
55
+ const handleSave = (_event: ReactMouseEvent | MouseEvent | KeyboardEvent, code) => {
41
56
  handleModalToggle(_event);
42
57
  onSave(_event, code);
43
58
  };
44
59
 
45
- const handleCancel = (_event: React.MouseEvent | MouseEvent | KeyboardEvent) => {
60
+ const handleCancel = (_event: ReactMouseEvent | MouseEvent | KeyboardEvent) => {
46
61
  handleModalToggle(_event);
47
62
  onCancel(_event);
48
63
  };
@@ -55,11 +70,14 @@ export const AttachmentEdit: React.FunctionComponent<AttachmentEditProps> = ({
55
70
  isModalOpen={isModalOpen}
56
71
  onPrimaryAction={handleSave}
57
72
  onSecondaryAction={handleCancel}
58
- primaryActionBtn="Save"
59
- secondaryActionBtn="Cancel"
73
+ primaryActionBtn={primaryActionButtonText}
74
+ secondaryActionBtn={secondaryActionButtonText}
60
75
  title={title}
61
76
  displayMode={displayMode}
62
77
  isCompact={isCompact}
78
+ modalHeaderClassName={modalHeaderClassName}
79
+ modalBodyClassName={modalBodyClassName}
80
+ modalFooterClassName={modalFooterClassName}
63
81
  />
64
82
  );
65
83
  };
@@ -9,7 +9,7 @@
9
9
  flex-direction: column;
10
10
  width: 30rem;
11
11
  height: 70vh;
12
- background-color: var(--pf-t--chatbot--background);
12
+ background-color: var(--pf-t--global--background--color--secondary--default);
13
13
  border-radius: var(--pf-t--global--border--radius--medium);
14
14
  box-shadow: var(--pf-t--global--box-shadow--lg);
15
15
  font-size: var(--pf-t--global--font--size--md);
@@ -1,5 +1,4 @@
1
1
  import '@testing-library/jest-dom';
2
- import React from 'react';
3
2
  import { render, screen } from '@testing-library/react';
4
3
  import Chatbot from './Chatbot';
5
4
 
@@ -1,7 +1,9 @@
1
1
  // ============================================================================
2
2
  // Chatbot
3
3
  // ============================================================================
4
- import React from 'react';
4
+ import type { Ref, FunctionComponent } from 'react';
5
+
6
+ import { forwardRef } from 'react';
5
7
  import { motion } from 'framer-motion';
6
8
 
7
9
  export interface ChatbotProps {
@@ -29,7 +31,7 @@ export enum ChatbotDisplayMode {
29
31
  drawer = 'drawer'
30
32
  }
31
33
 
32
- const ChatbotBase: React.FunctionComponent<ChatbotProps> = ({
34
+ const ChatbotBase: FunctionComponent<ChatbotProps> = ({
33
35
  children,
34
36
  displayMode = ChatbotDisplayMode.default,
35
37
  isVisible = true,
@@ -69,7 +71,7 @@ const ChatbotBase: React.FunctionComponent<ChatbotProps> = ({
69
71
  );
70
72
  };
71
73
 
72
- const Chatbot = React.forwardRef((props: ChatbotProps, ref: React.Ref<HTMLDivElement>) => (
74
+ const Chatbot = forwardRef((props: ChatbotProps, ref: Ref<HTMLDivElement>) => (
73
75
  <ChatbotBase innerRef={ref} {...props} />
74
76
  ));
75
77
 
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { fireEvent, render, screen } from '@testing-library/react';
3
2
  import ChatbotAlert from './ChatbotAlert';
4
3
 
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import type { FunctionComponent } from 'react';
2
2
  import { Alert, AlertActionCloseButton, AlertProps } from '@patternfly/react-core';
3
3
 
4
4
  export interface ChatbotAlert extends AlertProps {
@@ -6,7 +6,7 @@ export interface ChatbotAlert extends AlertProps {
6
6
  onClose?: () => void;
7
7
  }
8
8
 
9
- export const ChatbotAlert: React.FunctionComponent<ChatbotAlert> = ({
9
+ export const ChatbotAlert: FunctionComponent<ChatbotAlert> = ({
10
10
  variant = 'info',
11
11
  title,
12
12
  children = '',
@@ -3,7 +3,7 @@
3
3
  // ============================================================================
4
4
  .pf-chatbot__content {
5
5
  position: relative;
6
- background-color: var(--pf-t--chatbot--background);
6
+ background-color: var(--pf-t--global--background--color--secondary--default);
7
7
  overflow-y: auto;
8
8
  overflow: hidden; // needed in Red Hat Developer Hub workspace
9
9
  flex: 1; // needed in Composer AI
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { render, screen } from '@testing-library/react';
3
2
  import ChatbotContent from './ChatbotContent';
4
3
 
@@ -1,16 +1,16 @@
1
1
  // ============================================================================
2
2
  // Chatbot Main
3
3
  // ============================================================================
4
- import React from 'react';
4
+ import type { HTMLProps, FunctionComponent } from 'react';
5
5
 
6
- export interface ChatbotContentProps extends React.HTMLProps<HTMLDivElement> {
6
+ export interface ChatbotContentProps extends HTMLProps<HTMLDivElement> {
7
7
  /** Content to be displayed in the chatbot */
8
8
  children: React.ReactNode;
9
9
  /** Custom classname for the ChatbotContent component */
10
10
  className?: string;
11
11
  }
12
12
 
13
- export const ChatbotContent: React.FunctionComponent<ChatbotContentProps> = ({
13
+ export const ChatbotContent: FunctionComponent<ChatbotContentProps> = ({
14
14
  children,
15
15
  className,
16
16
  ...props
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import '@testing-library/jest-dom';
3
2
  import { DropdownItem } from '@patternfly/react-core';
4
3
  import { fireEvent, render, screen, waitFor } from '@testing-library/react';
@@ -1,7 +1,9 @@
1
1
  // ============================================================================
2
2
  // Chatbot Header - Chatbot Conversation History Nav
3
3
  // ============================================================================
4
- import React from 'react';
4
+ import type { MouseEvent, FunctionComponent, Ref } from 'react';
5
+
6
+ import { useState } from 'react';
5
7
 
6
8
  // Import PatternFly components
7
9
  import { MenuToggleElement, Tooltip, MenuToggle, Dropdown, DropdownProps } from '@patternfly/react-core';
@@ -19,15 +21,15 @@ export interface ChatbotConversationHistoryDropdownProps extends Omit<DropdownPr
19
21
  onSelect?: (event?: React.MouseEvent, value?: string | number) => void;
20
22
  }
21
23
 
22
- export const ChatbotConversationHistoryDropdown: React.FunctionComponent<ChatbotConversationHistoryDropdownProps> = ({
24
+ export const ChatbotConversationHistoryDropdown: FunctionComponent<ChatbotConversationHistoryDropdownProps> = ({
23
25
  menuItems,
24
26
  menuClassName,
25
27
  onSelect,
26
28
  label
27
29
  }: ChatbotConversationHistoryDropdownProps) => {
28
- const [isOpen, setIsOpen] = React.useState(false);
30
+ const [isOpen, setIsOpen] = useState(false);
29
31
 
30
- const toggle = (toggleRef: React.Ref<MenuToggleElement>) => (
32
+ const toggle = (toggleRef: Ref<MenuToggleElement>) => (
31
33
  <Tooltip
32
34
  className="pf-chatbot__tooltip"
33
35
  content={label ?? 'Conversation options'}
@@ -9,10 +9,22 @@
9
9
  // Drawer input
10
10
  // ----------------------------------------------------------------------------
11
11
  .pf-chatbot__input {
12
+ }
13
+ // Drawer title
14
+ // ----------------------------------------------------------------------------
15
+ .pf-chatbot__title-container {
12
16
  padding-inline-start: var(--pf-t--global--spacer--lg);
13
17
  padding-inline-end: var(--pf-t--global--spacer--lg);
18
+ display: flex;
19
+ flex-direction: column;
20
+ row-gap: var(--pf-t--global--spacer--sm);
21
+ }
22
+ // Drawer title icon
23
+ // ----------------------------------------------------------------------------
24
+ .pf-chatbot__title-icon {
25
+ padding-inline-end: var(--pf-t--global--spacer--md);
26
+ padding-inline-start: var(--pf-t--global--spacer--sm);
14
27
  }
15
-
16
28
  // Drawer menu
17
29
  // ----------------------------------------------------------------------------
18
30
  .pf-v6-c-menu {
@@ -75,7 +87,7 @@
75
87
  --pf-v6-c-drawer__panel--BackgroundColor: var(--pf-t--global--background--color--floating--default);
76
88
  --pf-v6-c-drawer__panel--PaddingBlockStart: var(--pf-t--global--spacer--lg);
77
89
  --pf-v6-c-drawer__panel--PaddingBlockEnd: var(--pf-t--global--spacer--lg);
78
- --pf-v6-c-drawer__panel--RowGap: var(--pf-t--global--spacer--lg);
90
+ --pf-v6-c-drawer__panel--RowGap: var(--pf-t--global--spacer--gap--group-to-group--vertical--default);
79
91
  overflow-x: hidden;
80
92
  overflow-y: hidden;
81
93
  }
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import '@testing-library/jest-dom';
3
2
  import { fireEvent, render, screen, waitFor } from '@testing-library/react';
4
3
 
@@ -6,6 +5,7 @@ import { ChatbotDisplayMode } from '../Chatbot/Chatbot';
6
5
  import ChatbotConversationHistoryNav, { Conversation } from './ChatbotConversationHistoryNav';
7
6
  import { EmptyStateStatus, Spinner } from '@patternfly/react-core';
8
7
  import { OutlinedCommentsIcon, SearchIcon } from '@patternfly/react-icons';
8
+ import { ComponentType } from 'react';
9
9
 
10
10
  const ERROR = {
11
11
  bodyText: (
@@ -25,13 +25,13 @@ const ERROR = {
25
25
  const NO_RESULTS = {
26
26
  bodyText: 'Adjust your search query and try again. Check your spelling or try a more general term.',
27
27
  titleText: 'No results found',
28
- icon: SearchIcon
28
+ icon: SearchIcon as ComponentType<any>
29
29
  };
30
30
 
31
31
  const EMPTY_STATE = {
32
32
  bodyText: 'Access timely assistance by starting a conversation with an AI model.',
33
33
  titleText: 'Start a new chat',
34
- icon: OutlinedCommentsIcon
34
+ icon: OutlinedCommentsIcon as ComponentType<any>
35
35
  };
36
36
 
37
37
  const ERROR_WITHOUT_BUTTON = {
@@ -104,6 +104,23 @@ describe('ChatbotConversationHistoryNav', () => {
104
104
  expect(screen.getByTestId('chatbot-nav-drawer-actions')).toHaveClass('pf-v6-c-drawer__actions--reversed');
105
105
  });
106
106
 
107
+ it('should disable new chat button', () => {
108
+ render(
109
+ <ChatbotConversationHistoryNav
110
+ onDrawerToggle={onDrawerToggle}
111
+ isDrawerOpen={true}
112
+ displayMode={ChatbotDisplayMode.fullscreen}
113
+ setIsDrawerOpen={jest.fn()}
114
+ reverseButtonOrder
115
+ conversations={initialConversations}
116
+ newChatButtonProps={{ isDisabled: true }}
117
+ onNewChat={jest.fn()}
118
+ />
119
+ );
120
+
121
+ expect(screen.getByRole('button', { name: 'New chat' })).toBeDisabled();
122
+ });
123
+
107
124
  it('should not apply the reversed class when reverseButtonOrder is false', () => {
108
125
  render(
109
126
  <ChatbotConversationHistoryNav
@@ -433,4 +450,45 @@ describe('ChatbotConversationHistoryNav', () => {
433
450
  );
434
451
  expect(screen.getByTestId('drawer')).toHaveClass('pf-m-compact');
435
452
  });
453
+
454
+ it('should display the default title', () => {
455
+ render(
456
+ <ChatbotConversationHistoryNav
457
+ onDrawerToggle={onDrawerToggle}
458
+ isDrawerOpen={true}
459
+ displayMode={ChatbotDisplayMode.fullscreen}
460
+ setIsDrawerOpen={jest.fn()}
461
+ conversations={initialConversations}
462
+ />
463
+ );
464
+ expect(screen.getByText('Chat history')).toBeInTheDocument();
465
+ });
466
+
467
+ it('should display the custom title', () => {
468
+ render(
469
+ <ChatbotConversationHistoryNav
470
+ title="PatternFly history"
471
+ onDrawerToggle={onDrawerToggle}
472
+ isDrawerOpen={true}
473
+ displayMode={ChatbotDisplayMode.fullscreen}
474
+ setIsDrawerOpen={jest.fn()}
475
+ conversations={initialConversations}
476
+ />
477
+ );
478
+ expect(screen.getByText('PatternFly history')).toBeInTheDocument();
479
+ });
480
+
481
+ it('should display the clock icon', () => {
482
+ const { container } = render(
483
+ <ChatbotConversationHistoryNav
484
+ onDrawerToggle={onDrawerToggle}
485
+ isDrawerOpen={true}
486
+ displayMode={ChatbotDisplayMode.fullscreen}
487
+ setIsDrawerOpen={jest.fn()}
488
+ conversations={initialConversations}
489
+ />
490
+ );
491
+ const iconElement = container.querySelector('.pf-chatbot__title-icon');
492
+ expect(iconElement).toBeInTheDocument();
493
+ });
436
494
  });
@@ -1,7 +1,9 @@
1
1
  // ============================================================================
2
2
  // Chatbot Header - Chatbot Conversation History Nav
3
3
  // ============================================================================
4
- import React from 'react';
4
+ import type { KeyboardEvent, FunctionComponent } from 'react';
5
+
6
+ import { useRef, Fragment } from 'react';
5
7
 
6
8
  // Import PatternFly components
7
9
  import {
@@ -30,10 +32,13 @@ import {
30
32
  DrawerActionsProps,
31
33
  DrawerCloseButtonProps,
32
34
  DrawerPanelBodyProps,
33
- SkeletonProps
35
+ SkeletonProps,
36
+ Title,
37
+ Icon,
38
+ ButtonProps
34
39
  } from '@patternfly/react-core';
35
40
 
36
- import { OutlinedCommentAltIcon } from '@patternfly/react-icons';
41
+ import { OutlinedClockIcon, OutlinedCommentAltIcon } from '@patternfly/react-icons';
37
42
  import { ChatbotDisplayMode } from '../Chatbot/Chatbot';
38
43
  import ConversationHistoryDropdown from './ChatbotConversationHistoryDropdown';
39
44
  import LoadingState from './LoadingState';
@@ -72,6 +77,8 @@ export interface ChatbotConversationHistoryNavProps extends DrawerProps {
72
77
  onSelectActiveItem?: (event?: React.MouseEvent, itemId?: string | number) => void;
73
78
  /** Items shown in conversation history */
74
79
  conversations: Conversation[] | { [key: string]: Conversation[] };
80
+ /** Additional button props for new chat button. */
81
+ newChatButtonProps?: ButtonProps;
75
82
  /** Text shown in blue button */
76
83
  newChatButtonText?: string;
77
84
  /** Callback function for when blue button is clicked. Omit to hide blue "new chat button" */
@@ -118,9 +125,11 @@ export interface ChatbotConversationHistoryNavProps extends DrawerProps {
118
125
  noResultsState?: HistoryEmptyStateProps;
119
126
  /** Sets drawer to compact styling. */
120
127
  isCompact?: boolean;
128
+ /** Display title */
129
+ title?: string;
121
130
  }
122
131
 
123
- export const ChatbotConversationHistoryNav: React.FunctionComponent<ChatbotConversationHistoryNavProps> = ({
132
+ export const ChatbotConversationHistoryNav: FunctionComponent<ChatbotConversationHistoryNavProps> = ({
124
133
  onDrawerToggle,
125
134
  isDrawerOpen,
126
135
  setIsDrawerOpen,
@@ -130,6 +139,7 @@ export const ChatbotConversationHistoryNav: React.FunctionComponent<ChatbotConve
130
139
  newChatButtonText = 'New chat',
131
140
  drawerContent,
132
141
  onNewChat,
142
+ newChatButtonProps,
133
143
  searchInputPlaceholder = 'Search previous conversations...',
134
144
  searchInputAriaLabel = 'Filter menu items',
135
145
  handleTextInputChange,
@@ -150,9 +160,10 @@ export const ChatbotConversationHistoryNav: React.FunctionComponent<ChatbotConve
150
160
  emptyState,
151
161
  noResultsState,
152
162
  isCompact,
163
+ title = 'Chat history',
153
164
  ...props
154
165
  }: ChatbotConversationHistoryNavProps) => {
155
- const drawerRef = React.useRef<HTMLDivElement>(null);
166
+ const drawerRef = useRef<HTMLDivElement>(null);
156
167
 
157
168
  const onExpand = () => {
158
169
  drawerRef.current && drawerRef.current.focus();
@@ -190,7 +201,7 @@ export const ChatbotConversationHistoryNav: React.FunctionComponent<ChatbotConve
190
201
  return (
191
202
  <MenuList>
192
203
  {conversations.map((conversation) => (
193
- <React.Fragment key={conversation.id}>{getNavItem(conversation)}</React.Fragment>
204
+ <Fragment key={conversation.id}>{getNavItem(conversation)}</Fragment>
194
205
  ))}
195
206
  </MenuList>
196
207
  );
@@ -202,7 +213,7 @@ export const ChatbotConversationHistoryNav: React.FunctionComponent<ChatbotConve
202
213
  <MenuGroup className="pf-chatbot__menu-item-header" label={navGroup} key={navGroup}>
203
214
  <MenuList>
204
215
  {conversations[navGroup].map((conversation) => (
205
- <React.Fragment key={conversation.id}>{getNavItem(conversation)}</React.Fragment>
216
+ <Fragment key={conversation.id}>{getNavItem(conversation)}</Fragment>
206
217
  ))}
207
218
  </MenuList>
208
219
  </MenuGroup>
@@ -236,15 +247,6 @@ export const ChatbotConversationHistoryNav: React.FunctionComponent<ChatbotConve
236
247
 
237
248
  const renderDrawerContent = () => (
238
249
  <>
239
- {handleTextInputChange && (
240
- <div className="pf-chatbot__input">
241
- <SearchInput
242
- aria-label={searchInputAriaLabel}
243
- onChange={(_event, value) => handleTextInputChange(value)}
244
- placeholder={searchInputPlaceholder}
245
- />
246
- </div>
247
- )}
248
250
  <DrawerPanelBody {...drawerPanelBodyProps}>{renderMenuContent()}</DrawerPanelBody>
249
251
  </>
250
252
  );
@@ -260,12 +262,29 @@ export const ChatbotConversationHistoryNav: React.FunctionComponent<ChatbotConve
260
262
  >
261
263
  <DrawerCloseButton onClick={onDrawerToggle} {...drawerCloseButtonProps} />
262
264
  {onNewChat && (
263
- <Button size={isCompact ? 'sm' : undefined} onClick={onNewChat}>
265
+ <Button size={isCompact ? 'sm' : undefined} onClick={onNewChat} {...newChatButtonProps}>
264
266
  {newChatButtonText}
265
267
  </Button>
266
268
  )}
267
269
  </DrawerActions>
268
270
  </DrawerHead>
271
+ <div className="pf-chatbot__title-container">
272
+ <Title headingLevel="h3">
273
+ <Icon size="lg" className="pf-chatbot__title-icon">
274
+ <OutlinedClockIcon />
275
+ </Icon>
276
+ {title}
277
+ </Title>
278
+ {!isLoading && handleTextInputChange && (
279
+ <div className="pf-chatbot__input">
280
+ <SearchInput
281
+ aria-label={searchInputAriaLabel}
282
+ onChange={(_event, value) => handleTextInputChange(value)}
283
+ placeholder={searchInputPlaceholder}
284
+ />
285
+ </div>
286
+ )}
287
+ </div>
269
288
  {isLoading ? <LoadingState {...loadingState} /> : renderDrawerContent()}
270
289
  </>
271
290
  );
@@ -283,7 +302,7 @@ export const ChatbotConversationHistoryNav: React.FunctionComponent<ChatbotConve
283
302
 
284
303
  // An onKeyDown property must be passed to the Drawer component to handle closing
285
304
  // the drawer panel and deactivating the focus trap via the Escape key.
286
- const onEscape = (event: React.KeyboardEvent) => {
305
+ const onEscape = (event: KeyboardEvent) => {
287
306
  if (event.key === 'Escape') {
288
307
  // prevents using escape key on menu buttons from closing the panel, but I'm not sure if this is allowed
289
308
  if (event.target instanceof HTMLInputElement && event.target.type !== 'button') {
@@ -6,7 +6,7 @@ import {
6
6
  EmptyStateFooter,
7
7
  EmptyStateProps
8
8
  } from '@patternfly/react-core';
9
- import React from 'react';
9
+ import type { FunctionComponent } from 'react';
10
10
 
11
11
  export interface HistoryEmptyStateProps extends EmptyStateProps {
12
12
  onClick?: () => void;
@@ -16,7 +16,7 @@ export interface HistoryEmptyStateProps extends EmptyStateProps {
16
16
  hasButton?: boolean;
17
17
  }
18
18
 
19
- export const HistoryEmptyState: React.FunctionComponent<HistoryEmptyStateProps> = ({
19
+ export const HistoryEmptyState: FunctionComponent<HistoryEmptyStateProps> = ({
20
20
  bodyText,
21
21
  buttonIcon,
22
22
  buttonText,
@@ -1,7 +1,7 @@
1
1
  import { Skeleton, SkeletonProps } from '@patternfly/react-core';
2
- import React from 'react';
2
+ import type { FunctionComponent } from 'react';
3
3
 
4
- export const LoadingState: React.FunctionComponent<SkeletonProps> = ({ screenreaderText, ...rest }: SkeletonProps) => (
4
+ export const LoadingState: FunctionComponent<SkeletonProps> = ({ screenreaderText, ...rest }: SkeletonProps) => (
5
5
  <div className="pf-chatbot__history-loading">
6
6
  <div className="pf-chatbot__history-loading-block">
7
7
  <Skeleton
@@ -6,7 +6,7 @@
6
6
  // ============================================================================
7
7
  .pf-chatbot__footer {
8
8
  --pf-chatbot__footer--RowGap: var(--pf-t--global--spacer--md);
9
- background-color: var(--pf-t--chatbot--background);
9
+ background-color: var(--pf-t--global--background--color--secondary--default);
10
10
  display: flex;
11
11
  flex-direction: column;
12
12
  row-gap: var(--pf-chatbot__footer--RowGap);
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { render, screen } from '@testing-library/react';
3
2
  import ChatbotFooter from './ChatbotFooter';
4
3
  import '@testing-library/jest-dom';
@@ -8,11 +8,11 @@
8
8
  // - Footnote
9
9
  // - Footnote popover
10
10
 
11
- import React from 'react';
11
+ import type { HTMLProps, FunctionComponent } from 'react';
12
12
 
13
13
  import { Divider } from '@patternfly/react-core';
14
14
 
15
- export interface ChatbotFooterProps extends React.HTMLProps<HTMLDivElement> {
15
+ export interface ChatbotFooterProps extends HTMLProps<HTMLDivElement> {
16
16
  /** Children for the Footer that supports MessageBar and FootNote components*/
17
17
  children?: React.ReactNode;
18
18
  /** Custom classname for the Footer component */
@@ -20,7 +20,7 @@ export interface ChatbotFooterProps extends React.HTMLProps<HTMLDivElement> {
20
20
  isCompact?: boolean;
21
21
  }
22
22
 
23
- export const ChatbotFooter: React.FunctionComponent<ChatbotFooterProps> = ({
23
+ export const ChatbotFooter: FunctionComponent<ChatbotFooterProps> = ({
24
24
  children,
25
25
  className,
26
26
  isCompact,
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { act, fireEvent, render, screen, waitFor } from '@testing-library/react';
3
2
  import ChatbotFootnote from './ChatbotFootnote';
4
3