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

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 (521) hide show
  1. package/dist/cjs/AttachmentEdit/AttachmentEdit.test.d.ts +1 -0
  2. package/dist/cjs/AttachmentEdit/AttachmentEdit.test.js +52 -0
  3. package/dist/cjs/Chatbot/Chatbot.test.d.ts +1 -0
  4. package/dist/cjs/Chatbot/Chatbot.test.js +28 -0
  5. package/dist/cjs/ChatbotAlert/ChatbotAlert.test.d.ts +1 -0
  6. package/dist/cjs/ChatbotAlert/ChatbotAlert.test.js +27 -0
  7. package/dist/cjs/ChatbotContent/ChatbotContent.test.d.ts +1 -0
  8. package/dist/cjs/ChatbotContent/ChatbotContent.test.js +18 -0
  9. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +3 -3
  10. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +3 -1
  11. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +27 -4
  12. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +23 -11
  13. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +99 -3
  14. package/dist/cjs/ChatbotConversationHistoryNav/EmptyState.d.ts +11 -0
  15. package/dist/cjs/ChatbotConversationHistoryNav/EmptyState.js +29 -0
  16. package/dist/cjs/ChatbotConversationHistoryNav/LoadingState.d.ts +4 -0
  17. package/dist/cjs/ChatbotConversationHistoryNav/LoadingState.js +45 -0
  18. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.d.ts +1 -0
  19. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.js +18 -0
  20. package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.d.ts +1 -0
  21. package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.js +87 -0
  22. package/dist/cjs/ChatbotFooter/ChatbotFootnote.d.ts +1 -1
  23. package/dist/cjs/ChatbotFooter/ChatbotFootnote.js +1 -1
  24. package/dist/cjs/ChatbotHeader/ChatbotHeader.test.d.ts +1 -0
  25. package/dist/cjs/ChatbotHeader/ChatbotHeader.test.js +18 -0
  26. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.d.ts +1 -0
  27. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.js +18 -0
  28. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +17 -0
  29. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.js +16 -0
  30. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -0
  31. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.js +20 -0
  32. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.d.ts +1 -0
  33. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.js +18 -0
  34. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.d.ts +2 -0
  35. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +4 -2
  36. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -0
  37. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.js +20 -0
  38. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -1
  39. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -0
  40. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +43 -0
  41. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +6 -4
  42. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -0
  43. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +41 -0
  44. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +1 -0
  45. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.js +47 -0
  46. package/dist/cjs/ChatbotHeader/index.d.ts +1 -0
  47. package/dist/cjs/ChatbotHeader/index.js +1 -0
  48. package/dist/cjs/ChatbotToggle/ChatbotToggle.js +3 -1
  49. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +19 -11
  50. package/dist/cjs/CodeModal/CodeModal.js +2 -12
  51. package/dist/cjs/Compare/Compare.d.ts +17 -0
  52. package/dist/cjs/Compare/Compare.js +50 -0
  53. package/dist/cjs/Compare/Compare.test.d.ts +1 -0
  54. package/dist/cjs/Compare/Compare.test.js +20 -0
  55. package/dist/cjs/Compare/index.d.ts +2 -0
  56. package/dist/cjs/Compare/index.js +23 -0
  57. package/dist/cjs/Message/ErrorMessage/ErrorMessage.d.ts +4 -0
  58. package/dist/cjs/Message/ErrorMessage/ErrorMessage.js +26 -0
  59. package/dist/cjs/Message/ImageMessage/ImageMessage.d.ts +4 -0
  60. package/dist/cjs/Message/ImageMessage/ImageMessage.js +25 -0
  61. package/dist/cjs/Message/LinkMessage/LinkMessage.d.ts +4 -0
  62. package/dist/cjs/Message/LinkMessage/LinkMessage.js +30 -0
  63. package/dist/cjs/Message/ListMessage/OrderedListMessage.d.ts +1 -1
  64. package/dist/cjs/Message/ListMessage/OrderedListMessage.js +2 -2
  65. package/dist/cjs/Message/Message.d.ts +49 -8
  66. package/dist/cjs/Message/Message.js +70 -18
  67. package/dist/cjs/Message/Message.test.js +290 -3
  68. package/dist/cjs/Message/QuickResponse/QuickResponse.d.ts +17 -0
  69. package/dist/cjs/Message/QuickResponse/QuickResponse.js +34 -0
  70. package/dist/cjs/Message/QuickStarts/FallbackImg.d.ts +13 -0
  71. package/dist/cjs/Message/QuickStarts/FallbackImg.js +34 -0
  72. package/dist/cjs/Message/QuickStarts/QuickStartTile.d.ts +27 -0
  73. package/dist/cjs/Message/QuickStarts/QuickStartTile.js +82 -0
  74. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.d.ts +23 -0
  75. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.js +64 -0
  76. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.d.ts +1 -0
  77. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.js +76 -0
  78. package/dist/cjs/Message/QuickStarts/QuickStartTileHeader.d.ts +11 -0
  79. package/dist/cjs/Message/QuickStarts/QuickStartTileHeader.js +30 -0
  80. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.d.ts +30 -0
  81. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.js +77 -0
  82. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart.d.ts +30 -0
  83. package/dist/cjs/Message/QuickStarts/monitor-sampleapp-quickstart.js +77 -0
  84. package/dist/cjs/Message/QuickStarts/types.d.ts +132 -0
  85. package/dist/cjs/Message/QuickStarts/types.js +17 -0
  86. package/dist/cjs/Message/TableMessage/TableMessage.d.ts +20 -0
  87. package/dist/cjs/Message/TableMessage/TableMessage.js +67 -0
  88. package/dist/cjs/Message/TableMessage/TbodyMessage.d.ts +7 -0
  89. package/dist/cjs/Message/TableMessage/TbodyMessage.js +33 -0
  90. package/dist/cjs/Message/TableMessage/TdMessage.d.ts +5 -0
  91. package/dist/cjs/Message/TableMessage/TdMessage.js +26 -0
  92. package/dist/cjs/Message/TableMessage/ThMessage.d.ts +5 -0
  93. package/dist/cjs/Message/TableMessage/ThMessage.js +26 -0
  94. package/dist/cjs/Message/TableMessage/TheadMessage.d.ts +5 -0
  95. package/dist/cjs/Message/TableMessage/TheadMessage.js +26 -0
  96. package/dist/cjs/Message/TableMessage/TrMessage.d.ts +7 -0
  97. package/dist/cjs/Message/TableMessage/TrMessage.js +37 -0
  98. package/dist/cjs/Message/TextMessage/TextMessage.d.ts +2 -1
  99. package/dist/cjs/Message/TextMessage/TextMessage.js +2 -2
  100. package/dist/cjs/Message/UserFeedback/CloseButton.d.ts +10 -0
  101. package/dist/cjs/Message/UserFeedback/CloseButton.js +14 -0
  102. package/dist/cjs/Message/UserFeedback/UserFeedback.d.ts +39 -0
  103. package/dist/cjs/Message/UserFeedback/UserFeedback.js +55 -0
  104. package/dist/cjs/Message/UserFeedback/UserFeedback.test.d.ts +1 -0
  105. package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +146 -0
  106. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.d.ts +42 -0
  107. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +117 -0
  108. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.d.ts +1 -0
  109. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +249 -0
  110. package/dist/cjs/MessageBar/AttachButton.js +4 -2
  111. package/dist/cjs/MessageBar/MessageBar.d.ts +11 -4
  112. package/dist/cjs/MessageBar/MessageBar.js +122 -39
  113. package/dist/cjs/MessageBar/MessageBar.test.js +12 -4
  114. package/dist/cjs/MessageBar/MicrophoneButton.d.ts +1 -1
  115. package/dist/cjs/MessageBar/SendButton.js +3 -1
  116. package/dist/cjs/MessageBar/StopButton.js +3 -1
  117. package/dist/cjs/MessageBox/MessageBox.test.d.ts +1 -0
  118. package/dist/cjs/MessageBox/MessageBox.test.js +22 -0
  119. package/dist/cjs/PreviewAttachment/PreviewAttachment.test.d.ts +1 -0
  120. package/dist/cjs/PreviewAttachment/PreviewAttachment.test.js +28 -0
  121. package/dist/cjs/ResponseActions/ResponseActionButton.d.ts +10 -1
  122. package/dist/cjs/ResponseActions/ResponseActionButton.js +28 -5
  123. package/dist/cjs/ResponseActions/ResponseActionButton.test.d.ts +1 -0
  124. package/dist/cjs/ResponseActions/ResponseActionButton.test.js +54 -0
  125. package/dist/cjs/ResponseActions/ResponseActions.d.ts +12 -2
  126. package/dist/cjs/ResponseActions/ResponseActions.js +26 -9
  127. package/dist/cjs/ResponseActions/ResponseActions.test.js +79 -5
  128. package/dist/cjs/Settings/SettingsForm.d.ts +13 -0
  129. package/dist/cjs/Settings/SettingsForm.js +27 -0
  130. package/dist/cjs/Settings/SettingsForm.test.d.ts +1 -0
  131. package/dist/cjs/Settings/SettingsForm.test.js +26 -0
  132. package/dist/cjs/Settings/index.d.ts +2 -0
  133. package/dist/cjs/Settings/index.js +23 -0
  134. package/dist/cjs/TermsOfUse/TermsOfUse.d.ts +34 -0
  135. package/dist/cjs/TermsOfUse/TermsOfUse.js +49 -0
  136. package/dist/cjs/TermsOfUse/TermsOfUse.test.d.ts +1 -0
  137. package/dist/cjs/TermsOfUse/TermsOfUse.test.js +79 -0
  138. package/dist/cjs/TermsOfUse/index.d.ts +2 -0
  139. package/dist/cjs/TermsOfUse/index.js +23 -0
  140. package/dist/cjs/__mocks__/rehype-external-links.d.ts +2 -0
  141. package/dist/cjs/__mocks__/rehype-external-links.js +4 -0
  142. package/dist/cjs/__mocks__/rehype-sanitize.d.ts +2 -0
  143. package/dist/cjs/__mocks__/rehype-sanitize.js +4 -0
  144. package/dist/cjs/__mocks__/rehype-unwrap-images.d.ts +2 -0
  145. package/dist/cjs/__mocks__/rehype-unwrap-images.js +4 -0
  146. package/dist/cjs/index.d.ts +8 -0
  147. package/dist/cjs/index.js +13 -1
  148. package/dist/cjs/tracking/console_tracking_provider.d.ts +10 -0
  149. package/dist/cjs/tracking/console_tracking_provider.js +27 -0
  150. package/dist/cjs/tracking/index.d.ts +2 -0
  151. package/dist/cjs/tracking/index.js +23 -0
  152. package/dist/cjs/tracking/posthog_tracking_provider.d.ts +9 -0
  153. package/dist/cjs/tracking/posthog_tracking_provider.js +37 -0
  154. package/dist/cjs/tracking/segment_tracking_provider.d.ts +10 -0
  155. package/dist/cjs/tracking/segment_tracking_provider.js +50 -0
  156. package/dist/cjs/tracking/trackingProviderProxy.d.ts +9 -0
  157. package/dist/cjs/tracking/trackingProviderProxy.js +24 -0
  158. package/dist/cjs/tracking/tracking_api.d.ts +8 -0
  159. package/dist/cjs/tracking/tracking_api.js +2 -0
  160. package/dist/cjs/tracking/tracking_registry.d.ts +4 -0
  161. package/dist/cjs/tracking/tracking_registry.js +33 -0
  162. package/dist/cjs/tracking/tracking_spi.d.ts +9 -0
  163. package/dist/cjs/tracking/tracking_spi.js +2 -0
  164. package/dist/cjs/tracking/umami_tracking_provider.d.ts +14 -0
  165. package/dist/cjs/tracking/umami_tracking_provider.js +44 -0
  166. package/dist/css/main.css +467 -123
  167. package/dist/css/main.css.map +1 -1
  168. package/dist/dynamic/Compare/package.json +1 -0
  169. package/dist/dynamic/Settings/package.json +1 -0
  170. package/dist/dynamic/TermsOfUse/package.json +1 -0
  171. package/dist/dynamic/tracking/package.json +1 -0
  172. package/dist/esm/AttachmentEdit/AttachmentEdit.test.d.ts +1 -0
  173. package/dist/esm/AttachmentEdit/AttachmentEdit.test.js +47 -0
  174. package/dist/esm/Chatbot/Chatbot.test.d.ts +1 -0
  175. package/dist/esm/Chatbot/Chatbot.test.js +23 -0
  176. package/dist/esm/ChatbotAlert/ChatbotAlert.test.d.ts +1 -0
  177. package/dist/esm/ChatbotAlert/ChatbotAlert.test.js +22 -0
  178. package/dist/esm/ChatbotContent/ChatbotContent.test.d.ts +1 -0
  179. package/dist/esm/ChatbotContent/ChatbotContent.test.js +13 -0
  180. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +3 -3
  181. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +3 -1
  182. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +27 -4
  183. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +23 -11
  184. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +99 -3
  185. package/dist/esm/ChatbotConversationHistoryNav/EmptyState.d.ts +11 -0
  186. package/dist/esm/ChatbotConversationHistoryNav/EmptyState.js +22 -0
  187. package/dist/esm/ChatbotConversationHistoryNav/LoadingState.d.ts +4 -0
  188. package/dist/esm/ChatbotConversationHistoryNav/LoadingState.js +38 -0
  189. package/dist/esm/ChatbotFooter/ChatbotFooter.test.d.ts +1 -0
  190. package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +13 -0
  191. package/dist/esm/ChatbotFooter/ChatbotFooternote.test.d.ts +1 -0
  192. package/dist/esm/ChatbotFooter/ChatbotFooternote.test.js +82 -0
  193. package/dist/esm/ChatbotFooter/ChatbotFootnote.d.ts +1 -1
  194. package/dist/esm/ChatbotFooter/ChatbotFootnote.js +1 -1
  195. package/dist/esm/ChatbotHeader/ChatbotHeader.test.d.ts +1 -0
  196. package/dist/esm/ChatbotHeader/ChatbotHeader.test.js +13 -0
  197. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.d.ts +1 -0
  198. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.js +13 -0
  199. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +17 -0
  200. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.js +10 -0
  201. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -0
  202. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.js +15 -0
  203. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.d.ts +1 -0
  204. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.js +13 -0
  205. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.d.ts +2 -0
  206. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +4 -2
  207. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -0
  208. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +15 -0
  209. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -1
  210. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -0
  211. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +38 -0
  212. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +6 -4
  213. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -0
  214. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +36 -0
  215. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +1 -0
  216. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.js +42 -0
  217. package/dist/esm/ChatbotHeader/index.d.ts +1 -0
  218. package/dist/esm/ChatbotHeader/index.js +1 -0
  219. package/dist/esm/ChatbotToggle/ChatbotToggle.js +3 -1
  220. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +19 -11
  221. package/dist/esm/CodeModal/CodeModal.js +2 -12
  222. package/dist/esm/Compare/Compare.d.ts +17 -0
  223. package/dist/esm/Compare/Compare.js +43 -0
  224. package/dist/esm/Compare/Compare.test.d.ts +1 -0
  225. package/dist/esm/Compare/Compare.test.js +15 -0
  226. package/dist/esm/Compare/index.d.ts +2 -0
  227. package/dist/esm/Compare/index.js +2 -0
  228. package/dist/esm/Message/ErrorMessage/ErrorMessage.d.ts +4 -0
  229. package/dist/esm/Message/ErrorMessage/ErrorMessage.js +21 -0
  230. package/dist/esm/Message/ImageMessage/ImageMessage.d.ts +4 -0
  231. package/dist/esm/Message/ImageMessage/ImageMessage.js +20 -0
  232. package/dist/esm/Message/LinkMessage/LinkMessage.d.ts +4 -0
  233. package/dist/esm/Message/LinkMessage/LinkMessage.js +25 -0
  234. package/dist/esm/Message/ListMessage/OrderedListMessage.d.ts +1 -1
  235. package/dist/esm/Message/ListMessage/OrderedListMessage.js +2 -2
  236. package/dist/esm/Message/Message.d.ts +49 -8
  237. package/dist/esm/Message/Message.js +68 -16
  238. package/dist/esm/Message/Message.test.js +290 -3
  239. package/dist/esm/Message/QuickResponse/QuickResponse.d.ts +17 -0
  240. package/dist/esm/Message/QuickResponse/QuickResponse.js +27 -0
  241. package/dist/esm/Message/QuickStarts/FallbackImg.d.ts +13 -0
  242. package/dist/esm/Message/QuickStarts/FallbackImg.js +9 -0
  243. package/dist/esm/Message/QuickStarts/QuickStartTile.d.ts +27 -0
  244. package/dist/esm/Message/QuickStarts/QuickStartTile.js +52 -0
  245. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.d.ts +23 -0
  246. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.js +35 -0
  247. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.d.ts +1 -0
  248. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.js +48 -0
  249. package/dist/esm/Message/QuickStarts/QuickStartTileHeader.d.ts +11 -0
  250. package/dist/esm/Message/QuickStarts/QuickStartTileHeader.js +5 -0
  251. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.d.ts +30 -0
  252. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.js +74 -0
  253. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart.d.ts +30 -0
  254. package/dist/esm/Message/QuickStarts/monitor-sampleapp-quickstart.js +74 -0
  255. package/dist/esm/Message/QuickStarts/types.d.ts +132 -0
  256. package/dist/esm/Message/QuickStarts/types.js +14 -0
  257. package/dist/esm/Message/TableMessage/TableMessage.d.ts +20 -0
  258. package/dist/esm/Message/TableMessage/TableMessage.js +62 -0
  259. package/dist/esm/Message/TableMessage/TbodyMessage.d.ts +7 -0
  260. package/dist/esm/Message/TableMessage/TbodyMessage.js +28 -0
  261. package/dist/esm/Message/TableMessage/TdMessage.d.ts +5 -0
  262. package/dist/esm/Message/TableMessage/TdMessage.js +21 -0
  263. package/dist/esm/Message/TableMessage/ThMessage.d.ts +5 -0
  264. package/dist/esm/Message/TableMessage/ThMessage.js +21 -0
  265. package/dist/esm/Message/TableMessage/TheadMessage.d.ts +5 -0
  266. package/dist/esm/Message/TableMessage/TheadMessage.js +21 -0
  267. package/dist/esm/Message/TableMessage/TrMessage.d.ts +7 -0
  268. package/dist/esm/Message/TableMessage/TrMessage.js +32 -0
  269. package/dist/esm/Message/TextMessage/TextMessage.d.ts +2 -1
  270. package/dist/esm/Message/TextMessage/TextMessage.js +3 -3
  271. package/dist/esm/Message/UserFeedback/CloseButton.d.ts +10 -0
  272. package/dist/esm/Message/UserFeedback/CloseButton.js +9 -0
  273. package/dist/esm/Message/UserFeedback/UserFeedback.d.ts +39 -0
  274. package/dist/esm/Message/UserFeedback/UserFeedback.js +50 -0
  275. package/dist/esm/Message/UserFeedback/UserFeedback.test.d.ts +1 -0
  276. package/dist/esm/Message/UserFeedback/UserFeedback.test.js +141 -0
  277. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.d.ts +42 -0
  278. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +112 -0
  279. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.d.ts +1 -0
  280. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +244 -0
  281. package/dist/esm/MessageBar/AttachButton.js +4 -2
  282. package/dist/esm/MessageBar/MessageBar.d.ts +11 -4
  283. package/dist/esm/MessageBar/MessageBar.js +122 -39
  284. package/dist/esm/MessageBar/MessageBar.test.js +12 -4
  285. package/dist/esm/MessageBar/MicrophoneButton.d.ts +1 -1
  286. package/dist/esm/MessageBar/SendButton.js +3 -1
  287. package/dist/esm/MessageBar/StopButton.js +3 -1
  288. package/dist/esm/MessageBox/MessageBox.test.d.ts +1 -0
  289. package/dist/esm/MessageBox/MessageBox.test.js +17 -0
  290. package/dist/esm/PreviewAttachment/PreviewAttachment.test.d.ts +1 -0
  291. package/dist/esm/PreviewAttachment/PreviewAttachment.test.js +23 -0
  292. package/dist/esm/ResponseActions/ResponseActionButton.d.ts +10 -1
  293. package/dist/esm/ResponseActions/ResponseActionButton.js +25 -2
  294. package/dist/esm/ResponseActions/ResponseActionButton.test.d.ts +1 -0
  295. package/dist/esm/ResponseActions/ResponseActionButton.test.js +49 -0
  296. package/dist/esm/ResponseActions/ResponseActions.d.ts +12 -2
  297. package/dist/esm/ResponseActions/ResponseActions.js +26 -9
  298. package/dist/esm/ResponseActions/ResponseActions.test.js +79 -5
  299. package/dist/esm/Settings/SettingsForm.d.ts +13 -0
  300. package/dist/esm/Settings/SettingsForm.js +20 -0
  301. package/dist/esm/Settings/SettingsForm.test.d.ts +1 -0
  302. package/dist/esm/Settings/SettingsForm.test.js +21 -0
  303. package/dist/esm/Settings/index.d.ts +2 -0
  304. package/dist/esm/Settings/index.js +2 -0
  305. package/dist/esm/TermsOfUse/TermsOfUse.d.ts +34 -0
  306. package/dist/esm/TermsOfUse/TermsOfUse.js +42 -0
  307. package/dist/esm/TermsOfUse/TermsOfUse.test.d.ts +1 -0
  308. package/dist/esm/TermsOfUse/TermsOfUse.test.js +74 -0
  309. package/dist/esm/TermsOfUse/index.d.ts +2 -0
  310. package/dist/esm/TermsOfUse/index.js +2 -0
  311. package/dist/esm/__mocks__/rehype-external-links.d.ts +2 -0
  312. package/dist/esm/__mocks__/rehype-external-links.js +2 -0
  313. package/dist/esm/__mocks__/rehype-sanitize.d.ts +2 -0
  314. package/dist/esm/__mocks__/rehype-sanitize.js +2 -0
  315. package/dist/esm/__mocks__/rehype-unwrap-images.d.ts +2 -0
  316. package/dist/esm/__mocks__/rehype-unwrap-images.js +2 -0
  317. package/dist/esm/index.d.ts +8 -0
  318. package/dist/esm/index.js +8 -0
  319. package/dist/esm/tracking/console_tracking_provider.d.ts +10 -0
  320. package/dist/esm/tracking/console_tracking_provider.js +23 -0
  321. package/dist/esm/tracking/index.d.ts +2 -0
  322. package/dist/esm/tracking/index.js +2 -0
  323. package/dist/esm/tracking/posthog_tracking_provider.d.ts +9 -0
  324. package/dist/esm/tracking/posthog_tracking_provider.js +33 -0
  325. package/dist/esm/tracking/segment_tracking_provider.d.ts +10 -0
  326. package/dist/esm/tracking/segment_tracking_provider.js +46 -0
  327. package/dist/esm/tracking/trackingProviderProxy.d.ts +9 -0
  328. package/dist/esm/tracking/trackingProviderProxy.js +22 -0
  329. package/dist/esm/tracking/tracking_api.d.ts +8 -0
  330. package/dist/esm/tracking/tracking_api.js +1 -0
  331. package/dist/esm/tracking/tracking_registry.d.ts +4 -0
  332. package/dist/esm/tracking/tracking_registry.js +26 -0
  333. package/dist/esm/tracking/tracking_spi.d.ts +9 -0
  334. package/dist/esm/tracking/tracking_spi.js +1 -0
  335. package/dist/esm/tracking/umami_tracking_provider.d.ts +14 -0
  336. package/dist/esm/tracking/umami_tracking_provider.js +40 -0
  337. package/dist/tsconfig.tsbuildinfo +1 -1
  338. package/package.json +10 -13
  339. package/patternfly-docs/content/extensions/chatbot/about-chatbot.md +8 -2
  340. package/patternfly-docs/content/extensions/chatbot/design-guidelines.md +41 -4
  341. package/patternfly-docs/content/extensions/chatbot/examples/Analytics/Analytics.md +214 -0
  342. package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentError.tsx +2 -2
  343. package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +214 -12
  344. package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDropZone.tsx +2 -1
  345. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithAttachment.tsx +2 -2
  346. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithCustomResponseActions.tsx +5 -1
  347. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +71 -0
  348. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedbackTimeout.tsx +27 -0
  349. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +1 -1
  350. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickStart.tsx +31 -0
  351. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithResponseActions.tsx +1 -1
  352. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithSources.tsx +1 -1
  353. package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +74 -11
  354. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +244 -14
  355. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessageWithExtraContent.tsx +54 -0
  356. package/patternfly-docs/content/extensions/chatbot/examples/Messages/explore-pipeline-quickstart.ts +65 -0
  357. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFooter.tsx +1 -1
  358. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFootnote.tsx +5 -5
  359. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderBasic.tsx +1 -1
  360. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +36 -3
  361. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerNavigation.tsx +67 -0
  362. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerResizable.tsx +94 -0
  363. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarAttach.tsx +1 -1
  364. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomeInteraction.tsx +1 -1
  365. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomePrompt.tsx +7 -7
  366. package/patternfly-docs/content/extensions/chatbot/examples/UI/PF-TermsAndConditionsHeader.svg +148 -0
  367. package/patternfly-docs/content/extensions/chatbot/examples/UI/Settings.tsx +289 -0
  368. package/patternfly-docs/content/extensions/chatbot/examples/UI/SquareChatbotToggle.tsx +1 -1
  369. package/patternfly-docs/content/extensions/chatbot/examples/UI/TermsOfUse.tsx +147 -0
  370. package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +49 -6
  371. package/patternfly-docs/content/extensions/chatbot/examples/demos/AttachmentDemos.md +14 -0
  372. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +28 -3
  373. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.tsx +48 -35
  374. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +21 -20
  375. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +3 -3
  376. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +11 -11
  377. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedComparisonChatbot.tsx +206 -0
  378. package/patternfly-docs/content/extensions/chatbot/examples/demos/Feedback.tsx +104 -0
  379. package/patternfly-docs/content/extensions/chatbot/img/analytics-example.svg +118 -0
  380. package/patternfly-docs/content/extensions/chatbot/img/attached-file.svg +24 -29
  381. package/patternfly-docs/content/extensions/chatbot/img/attachment-menu.svg +4 -4
  382. package/patternfly-docs/content/extensions/chatbot/img/attachment-unsent.svg +30 -57
  383. package/patternfly-docs/content/extensions/chatbot/img/chatbot-analytics.svg +51 -0
  384. package/patternfly-docs/content/extensions/chatbot/img/chatbot-elements.svg +5 -5
  385. package/patternfly-docs/content/extensions/chatbot/img/chatbot-quickstarts-tile.svg +58 -0
  386. package/patternfly-docs/content/extensions/chatbot/img/chatbot-settings.svg +83 -0
  387. package/patternfly-docs/content/extensions/chatbot/img/conversation-history.svg +6 -29
  388. package/patternfly-docs/content/extensions/chatbot/img/docked.svg +68 -49
  389. package/patternfly-docs/content/extensions/chatbot/img/footnote.svg +1 -1
  390. package/patternfly-docs/content/extensions/chatbot/img/fullscreen.svg +25 -16
  391. package/patternfly-docs/content/extensions/chatbot/img/listening.svg +1 -1
  392. package/patternfly-docs/content/extensions/chatbot/img/message-bar-elements.svg +3 -3
  393. package/patternfly-docs/content/extensions/chatbot/img/message-elements.svg +85 -142
  394. package/patternfly-docs/content/extensions/chatbot/img/overlay.svg +52 -36
  395. package/patternfly-docs/content/extensions/chatbot/img/posthog.svg +30 -0
  396. package/patternfly-docs/content/extensions/chatbot/img/segment.svg +36 -0
  397. package/patternfly-docs/content/extensions/chatbot/img/settings-menu.svg +122 -0
  398. package/patternfly-docs/content/extensions/chatbot/img/source-tile.svg +62 -0
  399. package/patternfly-docs/content/extensions/chatbot/img/toggle-customizations.svg +12 -0
  400. package/patternfly-docs/content/extensions/chatbot/img/umami.svg +30 -0
  401. package/src/AttachMenu/AttachMenu.scss +1 -1
  402. package/src/AttachmentEdit/AttachmentEdit.test.tsx +55 -0
  403. package/src/Chatbot/Chatbot.scss +1 -1
  404. package/src/Chatbot/Chatbot.test.tsx +31 -0
  405. package/src/ChatbotAlert/ChatbotAlert.test.tsx +31 -0
  406. package/src/ChatbotContent/ChatbotContent.test.tsx +15 -0
  407. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx +10 -4
  408. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +22 -1
  409. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +242 -3
  410. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +93 -25
  411. package/src/ChatbotConversationHistoryNav/EmptyState.tsx +44 -0
  412. package/src/ChatbotConversationHistoryNav/LoadingState.tsx +38 -0
  413. package/src/ChatbotFooter/ChatbotFooter.scss +0 -5
  414. package/src/ChatbotFooter/ChatbotFooter.test.tsx +15 -0
  415. package/src/ChatbotFooter/ChatbotFooternote.test.tsx +84 -0
  416. package/src/ChatbotFooter/ChatbotFootnote.tsx +2 -2
  417. package/src/ChatbotHeader/ChatbotHeader.scss +2 -5
  418. package/src/ChatbotHeader/ChatbotHeader.test.tsx +15 -0
  419. package/src/ChatbotHeader/ChatbotHeaderActions.test.tsx +17 -0
  420. package/src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx +20 -0
  421. package/src/ChatbotHeader/ChatbotHeaderCloseButton.tsx +57 -0
  422. package/src/ChatbotHeader/ChatbotHeaderMain.test.tsx +17 -0
  423. package/src/ChatbotHeader/ChatbotHeaderMenu.test.tsx +19 -0
  424. package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +11 -2
  425. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx +45 -0
  426. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +8 -1
  427. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx +43 -0
  428. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +11 -4
  429. package/src/ChatbotHeader/ChatbotHeaderTitle.test.tsx +59 -0
  430. package/src/ChatbotHeader/index.ts +1 -0
  431. package/src/ChatbotModal/ChatbotModal.scss +1 -1
  432. package/src/ChatbotToggle/ChatbotToggle.tsx +6 -1
  433. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx +26 -18
  434. package/src/ChatbotWelcomePrompt/__snapshots__/ChatbotWelcomePrompt.test.tsx.snap +2 -2
  435. package/src/CodeModal/CodeModal.scss +9 -1
  436. package/src/CodeModal/CodeModal.tsx +2 -13
  437. package/src/Compare/Compare.scss +72 -0
  438. package/src/Compare/Compare.test.tsx +31 -0
  439. package/src/Compare/Compare.tsx +98 -0
  440. package/src/Compare/index.ts +2 -0
  441. package/src/FileDetails/FileDetails.scss +1 -1
  442. package/src/FileDropZone/__snapshots__/FileDropZone.test.tsx.snap +1 -1
  443. package/src/Message/CodeBlockMessage/CodeBlockMessage.scss +4 -4
  444. package/src/Message/ErrorMessage/ErrorMessage.tsx +14 -0
  445. package/src/Message/ImageMessage/ImageMessage.scss +9 -0
  446. package/src/Message/ImageMessage/ImageMessage.tsx +14 -0
  447. package/src/Message/LinkMessage/LinkMessage.tsx +34 -0
  448. package/src/Message/ListMessage/ListMessage.scss +6 -6
  449. package/src/Message/ListMessage/OrderedListMessage.tsx +2 -2
  450. package/src/Message/Message.scss +4 -26
  451. package/src/Message/Message.test.tsx +389 -3
  452. package/src/Message/Message.tsx +157 -31
  453. package/src/Message/MessageLoading.scss +2 -2
  454. package/src/Message/QuickResponse/QuickResponse.scss +33 -0
  455. package/src/Message/QuickResponse/QuickResponse.tsx +54 -0
  456. package/src/Message/QuickStarts/FallbackImg.tsx +24 -0
  457. package/src/Message/QuickStarts/QuickStartTile.scss +24 -0
  458. package/src/Message/QuickStarts/QuickStartTile.tsx +147 -0
  459. package/src/Message/QuickStarts/QuickStartTileDescription.test.tsx +57 -0
  460. package/src/Message/QuickStarts/QuickStartTileDescription.tsx +81 -0
  461. package/src/Message/QuickStarts/QuickStartTileHeader.tsx +21 -0
  462. package/src/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.ts +75 -0
  463. package/src/Message/QuickStarts/monitor-sampleapp-quickstart.ts +75 -0
  464. package/src/Message/QuickStarts/types.ts +154 -0
  465. package/src/Message/TableMessage/TableMessage.scss +23 -0
  466. package/src/Message/TableMessage/TableMessage.tsx +83 -0
  467. package/src/Message/TableMessage/TbodyMessage.tsx +20 -0
  468. package/src/Message/TableMessage/TdMessage.tsx +11 -0
  469. package/src/Message/TableMessage/ThMessage.tsx +11 -0
  470. package/src/Message/TableMessage/TheadMessage.tsx +11 -0
  471. package/src/Message/TableMessage/TrMessage.tsx +27 -0
  472. package/src/Message/TextMessage/TextMessage.scss +21 -12
  473. package/src/Message/TextMessage/TextMessage.tsx +3 -3
  474. package/src/Message/UserFeedback/CloseButton.tsx +21 -0
  475. package/src/Message/UserFeedback/UserFeedback.scss +53 -0
  476. package/src/Message/UserFeedback/UserFeedback.test.tsx +257 -0
  477. package/src/Message/UserFeedback/UserFeedback.tsx +132 -0
  478. package/src/Message/UserFeedback/UserFeedbackComplete.test.tsx +255 -0
  479. package/src/Message/UserFeedback/UserFeedbackComplete.tsx +211 -0
  480. package/src/MessageBar/AttachButton.scss +19 -3
  481. package/src/MessageBar/AttachButton.tsx +3 -1
  482. package/src/MessageBar/MessageBar.scss +38 -20
  483. package/src/MessageBar/MessageBar.test.tsx +12 -4
  484. package/src/MessageBar/MessageBar.tsx +153 -58
  485. package/src/MessageBar/MicrophoneButton.scss +8 -8
  486. package/src/MessageBar/MicrophoneButton.tsx +1 -1
  487. package/src/MessageBar/SendButton.tsx +2 -0
  488. package/src/MessageBar/StopButton.scss +17 -3
  489. package/src/MessageBar/StopButton.tsx +2 -0
  490. package/src/MessageBox/JumpButton.scss +6 -6
  491. package/src/MessageBox/MessageBox.test.tsx +26 -0
  492. package/src/PreviewAttachment/PreviewAttachment.test.tsx +51 -0
  493. package/src/ResponseActions/ResponseActionButton.test.tsx +52 -0
  494. package/src/ResponseActions/ResponseActionButton.tsx +59 -28
  495. package/src/ResponseActions/ResponseActions.scss +11 -9
  496. package/src/ResponseActions/ResponseActions.test.tsx +105 -5
  497. package/src/ResponseActions/ResponseActions.tsx +80 -9
  498. package/src/Settings/Settings.scss +34 -0
  499. package/src/Settings/SettingsForm.test.tsx +28 -0
  500. package/src/Settings/SettingsForm.tsx +25 -0
  501. package/src/Settings/index.ts +3 -0
  502. package/src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss +1 -1
  503. package/src/SourcesCard/SourcesCard.scss +2 -2
  504. package/src/TermsOfUse/TermsOfUse.scss +66 -0
  505. package/src/TermsOfUse/TermsOfUse.test.tsx +138 -0
  506. package/src/TermsOfUse/TermsOfUse.tsx +117 -0
  507. package/src/TermsOfUse/index.ts +3 -0
  508. package/src/__mocks__/rehype-external-links.ts +3 -0
  509. package/src/__mocks__/rehype-sanitize.ts +3 -0
  510. package/src/__mocks__/rehype-unwrap-images.tsx +3 -0
  511. package/src/index.ts +12 -0
  512. package/src/main.scss +8 -6
  513. package/src/tracking/console_tracking_provider.ts +30 -0
  514. package/src/tracking/index.ts +3 -0
  515. package/src/tracking/posthog_tracking_provider.ts +42 -0
  516. package/src/tracking/segment_tracking_provider.ts +62 -0
  517. package/src/tracking/trackingProviderProxy.ts +28 -0
  518. package/src/tracking/tracking_api.ts +11 -0
  519. package/src/tracking/tracking_registry.ts +33 -0
  520. package/src/tracking/tracking_spi.ts +14 -0
  521. package/src/tracking/umami_tracking_provider.ts +54 -0
@@ -76,9 +76,6 @@
76
76
  .pf-chatbot__header {
77
77
  background-color: var(--pf-t--chatbot--background);
78
78
  }
79
- .pf-chatbot__header__divider {
80
- display: none;
81
- }
82
79
  }
83
80
 
84
81
  // ============================================================================
@@ -95,7 +92,7 @@
95
92
  .pf-v6-c-button__icon,
96
93
  .pf-v6-c-menu-toggle__icon,
97
94
  .pf-v6-c-icon__content {
98
- color: var(--pf-t--chatbot--icon--fill);
95
+ color: var(--pf-t--global--icon--color--subtle);
99
96
  }
100
97
 
101
98
  .pf-v6-c-button__icon,
@@ -111,7 +108,7 @@
111
108
  .pf-v6-c-button__icon,
112
109
  .pf-v6-c-menu-toggle__icon,
113
110
  .pf-v6-c-icon__content {
114
- color: var(--pf-t--chatbot--icon--fill--hover);
111
+ color: var(--pf-t--global--icon--color--regular);
115
112
  }
116
113
  }
117
114
  }
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { render, screen } from '@testing-library/react';
3
+ import ChatbotHeader from './ChatbotHeader';
4
+
5
+ describe('ChatbotHeader', () => {
6
+ it('should render ChatbotHeader with children', () => {
7
+ render(<ChatbotHeader>Chatbot Header</ChatbotHeader>);
8
+ expect(screen.getByText('Chatbot Header')).toBeTruthy();
9
+ });
10
+
11
+ it('should render ChatbotHeader with custom classname', () => {
12
+ const { container } = render(<ChatbotHeader className="custom-header-class">Chatbot Content</ChatbotHeader>);
13
+ expect(container.querySelector('.custom-header-class')).toBeTruthy();
14
+ });
15
+ });
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { render, screen } from '@testing-library/react';
3
+ import ChatbotHeaderActions from './ChatbotHeaderActions';
4
+
5
+ describe('ChatbotHeaderActions', () => {
6
+ it('should render ChatbotHeaderActions with children', () => {
7
+ render(<ChatbotHeaderActions>Chatbot Header</ChatbotHeaderActions>);
8
+ expect(screen.getByText('Chatbot Header')).toBeTruthy();
9
+ });
10
+
11
+ it('should render ChatbotHeaderActions with custom classname', () => {
12
+ const { container } = render(
13
+ <ChatbotHeaderActions className="custom-header-action-class">Chatbot Content</ChatbotHeaderActions>
14
+ );
15
+ expect(container.querySelector('.custom-header-action-class')).toBeTruthy();
16
+ });
17
+ });
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { fireEvent, render, screen } from '@testing-library/react';
3
+ import { ChatbotHeaderCloseButton } from './ChatbotHeaderCloseButton';
4
+
5
+ describe('ChatbotHeaderCloseButton', () => {
6
+ it('should render ChatbotHeaderCloseButton', () => {
7
+ const { container } = render(
8
+ <ChatbotHeaderCloseButton className="custom-header-close-button" onClick={jest.fn()} />
9
+ );
10
+
11
+ expect(container.querySelector('.custom-header-close-button')).toBeTruthy();
12
+ });
13
+
14
+ it('should call onClick handler when close button is pressed', () => {
15
+ const onClick = jest.fn();
16
+ render(<ChatbotHeaderCloseButton className="custom-header-close-button" onClick={onClick} />);
17
+ fireEvent.click(screen.getByRole('button', { name: 'Close' }));
18
+ expect(onClick).toHaveBeenCalled();
19
+ });
20
+ });
@@ -0,0 +1,57 @@
1
+ import React from 'react';
2
+
3
+ import { Button, Icon, Tooltip, TooltipProps } from '@patternfly/react-core';
4
+ import { CloseIcon } from '@patternfly/react-icons';
5
+
6
+ export interface ChatbotHeaderCloseButtonProps {
7
+ /** Callback function for when button is clicked */
8
+ onClick: () => void;
9
+ /** Custom classname for the header component */
10
+ className?: string;
11
+ /** Props spread to the PF Tooltip component wrapping the display mode dropdown */
12
+ tooltipProps?: TooltipProps;
13
+ /** Aria label for menu */
14
+ menuAriaLabel?: string;
15
+ /** Ref applied to menu */
16
+ innerRef?: React.Ref<HTMLButtonElement>;
17
+ /** Content used in tooltip */
18
+ tooltipContent?: string;
19
+ }
20
+
21
+ const ChatbotHeaderCloseButtonBase: React.FunctionComponent<ChatbotHeaderCloseButtonProps> = ({
22
+ className,
23
+ onClick,
24
+ tooltipProps,
25
+ menuAriaLabel = 'Close',
26
+ innerRef,
27
+ tooltipContent = 'Close'
28
+ }: ChatbotHeaderCloseButtonProps) => (
29
+ <div className={`pf-chatbot__menu ${className}`}>
30
+ <Tooltip
31
+ content={tooltipContent}
32
+ position="bottom"
33
+ // prevents VO announcements of both aria label and tooltip
34
+ aria="none"
35
+ {...tooltipProps}
36
+ >
37
+ <Button
38
+ className="pf-chatbot__button--toggle-menu"
39
+ variant="plain"
40
+ onClick={onClick}
41
+ aria-label={menuAriaLabel}
42
+ ref={innerRef}
43
+ icon={
44
+ <Icon size="xl" isInline>
45
+ <CloseIcon />
46
+ </Icon>
47
+ }
48
+ />
49
+ </Tooltip>
50
+ </div>
51
+ );
52
+
53
+ export const ChatbotHeaderCloseButton = React.forwardRef(
54
+ (props: ChatbotHeaderCloseButtonProps, ref: React.Ref<HTMLButtonElement>) => (
55
+ <ChatbotHeaderCloseButtonBase innerRef={ref} {...props} />
56
+ )
57
+ );
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { render, screen } from '@testing-library/react';
3
+ import ChatbotHeaderMain from './ChatbotHeaderMain';
4
+
5
+ describe('ChatbotHeaderMain', () => {
6
+ it('should render ChatbotHeaderMain with children', () => {
7
+ render(<ChatbotHeaderMain>Chatbot Header Main</ChatbotHeaderMain>);
8
+ expect(screen.getByText('Chatbot Header Main')).toBeTruthy();
9
+ });
10
+
11
+ it('should render ChatbotHeaderMain with custom classname', () => {
12
+ const { container } = render(
13
+ <ChatbotHeaderMain className="custom-header-class">Chatbot Content</ChatbotHeaderMain>
14
+ );
15
+ expect(container.querySelector('.custom-header-class')).toBeTruthy();
16
+ });
17
+ });
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { fireEvent, render, screen } from '@testing-library/react';
3
+ import { ChatbotHeaderMenu } from './ChatbotHeaderMenu';
4
+
5
+ describe('ChatbotHeaderMenu', () => {
6
+ it('should render ChatbotHeaderMenu with custom class', () => {
7
+ const { container } = render(<ChatbotHeaderMenu className="custom-header-menu" onMenuToggle={jest.fn()} />);
8
+
9
+ expect(container.querySelector('.custom-header-menu')).toBeTruthy();
10
+ });
11
+
12
+ it('should call onMenuToggle when ChatbotHeaderMenu button is clicked', () => {
13
+ const onMenuToggle = jest.fn();
14
+ render(<ChatbotHeaderMenu className="custom-header-menu" onMenuToggle={onMenuToggle} />);
15
+ fireEvent.click(screen.getByRole('button', { name: 'Toggle menu' }));
16
+
17
+ expect(onMenuToggle).toHaveBeenCalled();
18
+ });
19
+ });
@@ -14,6 +14,8 @@ export interface ChatbotHeaderMenuProps {
14
14
  menuAriaLabel?: string;
15
15
  /** Ref applied to menu */
16
16
  innerRef?: React.Ref<HTMLButtonElement>;
17
+ /** Content used in tooltip */
18
+ tooltipContent?: string;
17
19
  }
18
20
 
19
21
  const ChatbotHeaderMenuBase: React.FunctionComponent<ChatbotHeaderMenuProps> = ({
@@ -21,10 +23,17 @@ const ChatbotHeaderMenuBase: React.FunctionComponent<ChatbotHeaderMenuProps> = (
21
23
  onMenuToggle,
22
24
  tooltipProps,
23
25
  menuAriaLabel = 'Toggle menu',
24
- innerRef
26
+ innerRef,
27
+ tooltipContent = 'Menu'
25
28
  }: ChatbotHeaderMenuProps) => (
26
29
  <div className={`pf-chatbot__menu ${className}`}>
27
- <Tooltip content="Menu" position="bottom" {...tooltipProps}>
30
+ <Tooltip
31
+ content={tooltipContent}
32
+ position="bottom"
33
+ // prevents VO announcements of both aria label and tooltip
34
+ aria="none"
35
+ {...tooltipProps}
36
+ >
28
37
  <Button
29
38
  className="pf-chatbot__button--toggle-menu"
30
39
  variant="plain"
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ import { DropdownItem } from '@patternfly/react-core';
3
+ import { act, fireEvent, render, screen, waitFor } from '@testing-library/react';
4
+ import { ChatbotHeaderOptionsDropdown } from './ChatbotHeaderOptionsDropdown';
5
+
6
+ describe('ChatbotHeaderOptionsDropdown', () => {
7
+ const dropdownItems = (
8
+ <>
9
+ <DropdownItem>Option 1</DropdownItem>
10
+ <DropdownItem>Option 2</DropdownItem>
11
+ <DropdownItem>Option 3</DropdownItem>
12
+ </>
13
+ );
14
+
15
+ it('should render ChatbotHeaderOptionsDropdown', () => {
16
+ render(<ChatbotHeaderOptionsDropdown>{dropdownItems}</ChatbotHeaderOptionsDropdown>);
17
+
18
+ expect(screen.getByRole('button', { name: 'Chatbot options' })).toBeTruthy();
19
+ });
20
+
21
+ it('should call onselect handler when a dropdown item is clicked', async () => {
22
+ const onSelect = jest.fn();
23
+ const { container } = render(
24
+ <ChatbotHeaderOptionsDropdown className="custom-header-options-dropdown" onSelect={onSelect}>
25
+ {dropdownItems}
26
+ </ChatbotHeaderOptionsDropdown>
27
+ );
28
+
29
+ act(() => {
30
+ fireEvent.click(screen.getByRole('button', { name: 'Chatbot options' }));
31
+ });
32
+
33
+ await waitFor(() => {
34
+ expect(container.querySelector('.custom-header-options-dropdown')).toBeTruthy();
35
+
36
+ expect(screen.getByText('Option 1'));
37
+ expect(screen.getByText('Option 2'));
38
+ expect(screen.getByText('Option 3'));
39
+
40
+ fireEvent.click(screen.getByText('Option 3'));
41
+
42
+ expect(onSelect).toHaveBeenCalled();
43
+ });
44
+ });
45
+ });
@@ -33,7 +33,14 @@ export const ChatbotHeaderOptionsDropdown: React.FunctionComponent<ChatbotHeader
33
33
  const [isOptionsMenuOpen, setIsOptionsMenuOpen] = React.useState(false);
34
34
 
35
35
  const toggle = (toggleRef: React.Ref<MenuToggleElement>) => (
36
- <Tooltip className="pf-chatbot__tooltip" content="Chatbot options" position="bottom" {...tooltipProps}>
36
+ <Tooltip
37
+ className="pf-chatbot__tooltip"
38
+ content="Chatbot options"
39
+ position="bottom"
40
+ // prevents VO announcements of both aria label and tooltip
41
+ aria="none"
42
+ {...tooltipProps}
43
+ >
37
44
  <MenuToggle
38
45
  className="pf-chatbot__button--toggle-options"
39
46
  variant="plain"
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import { DropdownItem } from '@patternfly/react-core';
3
+ import { act, fireEvent, render, screen, waitFor } from '@testing-library/react';
4
+ import { ChatbotHeaderSelectorDropdown } from './ChatbotHeaderSelectorDropdown';
5
+
6
+ describe('ChatbotHeaderSelectorDropdown', () => {
7
+ const dropdownItems = (
8
+ <>
9
+ <DropdownItem>Option 1</DropdownItem>
10
+ <DropdownItem>Option 2</DropdownItem>
11
+ <DropdownItem>Option 3</DropdownItem>
12
+ </>
13
+ );
14
+
15
+ it('should render ChatbotHeaderSelectorDropdown', () => {
16
+ render(<ChatbotHeaderSelectorDropdown value="Option 1">{dropdownItems}</ChatbotHeaderSelectorDropdown>);
17
+
18
+ expect(screen.getByRole('button', { name: /Select model/i })).toBeTruthy();
19
+ });
20
+
21
+ it('should call onselect handler when a dropdown item is clicked', async () => {
22
+ const onSelect = jest.fn();
23
+ const { container } = render(
24
+ <ChatbotHeaderSelectorDropdown value="Option 1" className="custom-header-selector-dropdown" onSelect={onSelect}>
25
+ {dropdownItems}
26
+ </ChatbotHeaderSelectorDropdown>
27
+ );
28
+
29
+ act(() => {
30
+ fireEvent.click(screen.getByRole('button', { name: /Select model/i }));
31
+ });
32
+
33
+ await waitFor(() => {
34
+ expect(container.querySelector('.custom-header-selector-dropdown')).toBeTruthy();
35
+
36
+ expect(screen.getByText('Option 3'));
37
+
38
+ fireEvent.click(screen.getByText('Option 3'));
39
+
40
+ expect(onSelect).toHaveBeenCalled();
41
+ });
42
+ });
43
+ });
@@ -23,15 +23,22 @@ export const ChatbotHeaderSelectorDropdown: React.FunctionComponent<ChatbotHeade
23
23
  children,
24
24
  onSelect,
25
25
  tooltipProps,
26
- tooltipContent = 'Chatbot selector',
26
+ tooltipContent = 'Select model',
27
27
  menuToggleAriaLabel,
28
28
  ...props
29
29
  }: ChatbotHeaderSelectorDropdownProps) => {
30
30
  const [isOptionsMenuOpen, setIsOptionsMenuOpen] = React.useState(false);
31
- const [defaultAriaLabel, setDefaultAriaLabel] = React.useState('Chatbot selector');
31
+ const [defaultAriaLabel, setDefaultAriaLabel] = React.useState('Select model');
32
32
 
33
33
  const toggle = (toggleRef: React.Ref<MenuToggleElement>) => (
34
- <Tooltip className="pf-chatbot__tooltip" content={tooltipContent} position="bottom" {...tooltipProps}>
34
+ <Tooltip
35
+ className="pf-chatbot__tooltip"
36
+ content={tooltipContent}
37
+ position="bottom"
38
+ // prevents VO announcements of both aria label and tooltip
39
+ aria="none"
40
+ {...tooltipProps}
41
+ >
35
42
  <MenuToggle
36
43
  variant="secondary"
37
44
  aria-label={menuToggleAriaLabel ?? defaultAriaLabel}
@@ -50,7 +57,7 @@ export const ChatbotHeaderSelectorDropdown: React.FunctionComponent<ChatbotHeade
50
57
  isOpen={isOptionsMenuOpen}
51
58
  onSelect={(e, value) => {
52
59
  onSelect && onSelect(e, value);
53
- setDefaultAriaLabel(`Chatbot selector: ${value}`);
60
+ setDefaultAriaLabel(`Select model: ${value}`);
54
61
  setIsOptionsMenuOpen(false);
55
62
  }}
56
63
  onOpenChange={(isOpen) => setIsOptionsMenuOpen(isOpen)}
@@ -0,0 +1,59 @@
1
+ import React from 'react';
2
+ import { render, screen } from '@testing-library/react';
3
+ import { ChatbotDisplayMode } from '../Chatbot/Chatbot';
4
+ import ChatbotHeaderTitle from './ChatbotHeaderTitle';
5
+
6
+ describe('ChatbotHeaderTitle', () => {
7
+ it('should render ChatbotHeaderTitle with children', () => {
8
+ render(<ChatbotHeaderTitle>Chatbot Header Title</ChatbotHeaderTitle>);
9
+ expect(screen.getByText('Chatbot Header Title')).toBeTruthy();
10
+ });
11
+
12
+ it('should render ChatbotHeaderTitle with custom classname', () => {
13
+ const { container } = render(
14
+ <ChatbotHeaderTitle className="custom-header-class">Chatbot Header Title</ChatbotHeaderTitle>
15
+ );
16
+ expect(container.querySelector('.custom-header-class')).toBeTruthy();
17
+ });
18
+
19
+ it('should render title for default display mode', () => {
20
+ render(<ChatbotHeaderTitle displayMode={ChatbotDisplayMode.default} showOnDefault={'Default header title'} />);
21
+ expect(screen.getByText('Default header title')).toBeTruthy();
22
+ });
23
+
24
+ it('should render title for docked display mode', () => {
25
+ render(<ChatbotHeaderTitle displayMode={ChatbotDisplayMode.docked} showOnDocked={'Docked header title'} />);
26
+ expect(screen.getByText('Docked header title')).toBeTruthy();
27
+ });
28
+
29
+ it('should fallback to default title when docked display mode title is not configured', () => {
30
+ render(<ChatbotHeaderTitle displayMode={ChatbotDisplayMode.docked} showOnDefault={'Default header title'} />);
31
+ expect(screen.getByText('Default header title')).toBeTruthy();
32
+ });
33
+
34
+ it('should render title for embedded display mode', () => {
35
+ render(<ChatbotHeaderTitle displayMode={ChatbotDisplayMode.embedded} showOnEmbedded={'Embedded header title'} />);
36
+ expect(screen.getByText('Embedded header title')).toBeTruthy();
37
+ });
38
+
39
+ it('should fallback to default title when embedded display mode title is not configured', () => {
40
+ render(<ChatbotHeaderTitle displayMode={ChatbotDisplayMode.embedded} showOnDefault={'Default header title'} />);
41
+ expect(screen.getByText('Default header title')).toBeTruthy();
42
+ });
43
+
44
+ it('should render title for fullscreen display mode', () => {
45
+ render(
46
+ <ChatbotHeaderTitle
47
+ displayMode={ChatbotDisplayMode.fullscreen}
48
+ showOnFullScreen={'Fullscreen header title'}
49
+ className="custom-header-class"
50
+ />
51
+ );
52
+ expect(screen.getByText('Fullscreen header title')).toBeTruthy();
53
+ });
54
+
55
+ it('should fallback to default title when fullscreen display mode title is not configured', () => {
56
+ render(<ChatbotHeaderTitle displayMode={ChatbotDisplayMode.fullscreen} showOnDefault={'Default header title'} />);
57
+ expect(screen.getByText('Default header title')).toBeTruthy();
58
+ });
59
+ });
@@ -7,3 +7,4 @@ export * from './ChatbotHeaderMenu';
7
7
  export * from './ChatbotHeaderTitle';
8
8
  export * from './ChatbotHeaderOptionsDropdown';
9
9
  export * from './ChatbotHeaderSelectorDropdown';
10
+ export * from './ChatbotHeaderCloseButton';
@@ -16,7 +16,7 @@
16
16
  }
17
17
  .pf-v6-c-button.pf-m-primary.pf-m-block,
18
18
  .pf-v6-c-button.pf-m-link.pf-m-block {
19
- --pf-v6-c-button--FontWeight: 500;
19
+ --pf-v6-c-button--FontWeight: var(--pf-t--global--font--weight--body--bold);
20
20
  }
21
21
  .pf-v6-c-modal-box__footer {
22
22
  padding-block-start: var(--pf-t--global--spacer--xl);
@@ -65,7 +65,12 @@ const ChatbotToggleBase: React.FunctionComponent<ChatbotToggleProps> = ({
65
65
  const icon = isChatbotVisible ? <AngleDownIcon data-testid={openIconTestId} /> : closedIcon;
66
66
 
67
67
  return (
68
- <Tooltip content={tooltipLabel} {...tooltipProps}>
68
+ <Tooltip
69
+ content={tooltipLabel}
70
+ // prevents VO announcements of both aria label and tooltip
71
+ aria="none"
72
+ {...tooltipProps}
73
+ >
69
74
  <Button
70
75
  className={`pf-chatbot__button ${isChatbotVisible ? 'pf-chatbot__button--active' : ''} ${isRound ? 'pf-chatbot__button--round' : ''} ${className ? className : ''}`}
71
76
  variant="plain"
@@ -7,53 +7,61 @@ import userEvent from '@testing-library/user-event';
7
7
  describe('ChatbotWelcomePrompt', () => {
8
8
  it('should render welcome prompt', () => {
9
9
  const { container } = render(
10
- <ChatbotWelcomePrompt title="Hello, Chatbot User" description="How may I help you today?" />
10
+ <ChatbotWelcomePrompt title="Hi, ChatBot User!" description="How can I help you today?" />
11
11
  );
12
12
  expect(container).toMatchSnapshot();
13
13
  });
14
14
 
15
15
  it('should render correctly', () => {
16
- render(<ChatbotWelcomePrompt title="Hello, Chatbot User" description="How may I help you today?" />);
17
- expect(screen.getByText('Hello, Chatbot User')).toBeTruthy();
18
- expect(screen.getByText('How may I help you today?')).toBeTruthy();
16
+ render(<ChatbotWelcomePrompt title="Hi, ChatBot User!" description="How can I help you today?" />);
17
+ expect(screen.getByText('Hi, ChatBot User!')).toBeTruthy();
18
+ expect(screen.getByText('How can I help you today?')).toBeTruthy();
19
19
  });
20
20
  it('should render prompts with titles correctly', () => {
21
21
  render(
22
22
  <ChatbotWelcomePrompt
23
- title="Hello, Chatbot User"
24
- description="How may I help you today?"
25
- prompts={[{ title: 'Topic 1' }]}
23
+ title="Hi, ChatBot User!"
24
+ description="How can I help you today?"
25
+ prompts={[{ title: 'Set up account' }]}
26
26
  />
27
27
  );
28
- expect(screen.getByText('Topic 1')).toBeTruthy();
28
+ expect(screen.getByText('Set up account')).toBeTruthy();
29
29
  });
30
30
  it('should render prompts with messages correctly', () => {
31
31
  render(
32
32
  <ChatbotWelcomePrompt
33
- title="Hello, Chatbot User"
34
- description="How may I help you today?"
35
- prompts={[{ title: 'Topic 1', message: 'Helpful prompt for Topic 1' }]}
33
+ title="Hi, ChatBot User!"
34
+ description="How can I help you today?"
35
+ prompts={[
36
+ { title: 'Set up account', message: 'Choose the necessary settings and preferences for your account.' }
37
+ ]}
36
38
  />
37
39
  );
38
- expect(screen.getByText('Helpful prompt for Topic 1')).toBeTruthy();
40
+ expect(screen.getByText('Choose the necessary settings and preferences for your account.')).toBeTruthy();
39
41
  });
40
42
  it('should render prompts with onClick correctly', async () => {
41
43
  const spy = jest.fn();
42
44
  render(
43
45
  <ChatbotWelcomePrompt
44
- title="Hello, Chatbot User"
45
- description="How may I help you today?"
46
- prompts={[{ title: 'Topic 1', message: 'Helpful prompt for Topic 1', onClick: spy }]}
46
+ title="Hi, ChatBot User!"
47
+ description="How can I help you today?"
48
+ prompts={[
49
+ {
50
+ title: 'Set up account',
51
+ message: 'Choose the necessary settings and preferences for your account.',
52
+ onClick: spy
53
+ }
54
+ ]}
47
55
  />
48
56
  );
49
- await userEvent.click(screen.getByRole('button', { name: /Topic 1/i }));
57
+ await userEvent.click(screen.getByRole('button', { name: /Set up account/i }));
50
58
  expect(spy).toHaveBeenCalled();
51
59
  });
52
60
  it('should apply className appropriately', () => {
53
61
  render(
54
62
  <ChatbotWelcomePrompt
55
- title="Hello, Chatbot User"
56
- description="How may I help you today?"
63
+ title="Hi, ChatBot User!"
64
+ description="How can I help you today?"
57
65
  className="test"
58
66
  testId="welcome-prompt"
59
67
  />
@@ -15,13 +15,13 @@ exports[`ChatbotWelcomePrompt should render welcome prompt 1`] = `
15
15
  <span
16
16
  class="pf-chatbot__hello"
17
17
  >
18
- Hello, Chatbot User
18
+ Hi, ChatBot User!
19
19
  </span>
20
20
  <br />
21
21
  <span
22
22
  class="pf-chatbot__question"
23
23
  >
24
- How may I help you today?
24
+ How can I help you today?
25
25
  </span>
26
26
  </h1>
27
27
  </div>
@@ -38,7 +38,7 @@
38
38
  border: none;
39
39
  --pf-v6-c-code-editor__tab--BorderStartEndRadius: 0;
40
40
  border-start-start-radius: var(--pf-t--global--border--radius--small);
41
- --pf-t--global--font--weight--body--default: 500;
41
+ --pf-t--global--font--weight--body--default: var(--pf-t--global--font--weight--body--bold);
42
42
  }
43
43
  .pf-v6-c-code-editor__tab-icon {
44
44
  display: none;
@@ -74,3 +74,11 @@
74
74
  }
75
75
  }
76
76
  }
77
+
78
+ .pf-chatbot__code-modal-body {
79
+ flex: 1;
80
+ }
81
+
82
+ .pf-chatbot__code-modal--fullscreen {
83
+ height: inherit; // override shared modal so code editor works in full screen
84
+ }
@@ -87,17 +87,6 @@ export const CodeModal: React.FunctionComponent<CodeModalProps> = ({
87
87
  }
88
88
  };
89
89
 
90
- /* eslint-disable indent */
91
- const getHeight = (displayMode: ChatbotDisplayMode) => {
92
- switch (displayMode) {
93
- case ChatbotDisplayMode.docked:
94
- return '100vh';
95
- default:
96
- return '45vh';
97
- }
98
- };
99
- /* eslint-enable indent */
100
-
101
90
  const modal = (
102
91
  <ChatbotModal
103
92
  isOpen={isModalOpen}
@@ -114,7 +103,7 @@ export const CodeModal: React.FunctionComponent<CodeModalProps> = ({
114
103
  <StackItem className="pf-chatbot__code-modal-file-details">
115
104
  <FileDetails fileName={fileName} />
116
105
  </StackItem>
117
- <StackItem>
106
+ <StackItem className="pf-chatbot__code-modal-body">
118
107
  <CodeEditor
119
108
  isDarkTheme
120
109
  isLineNumbersVisible={isLineNumbersVisible}
@@ -126,7 +115,7 @@ export const CodeModal: React.FunctionComponent<CodeModalProps> = ({
126
115
  onEditorDidMount={onEditorDidMount}
127
116
  onCodeChange={onCodeChange}
128
117
  className={codeEditorClassName}
129
- height={getHeight(displayMode)}
118
+ isFullHeight
130
119
  options={{
131
120
  glyphMargin: false,
132
121
  folding: false