@patternfly/chatbot 2.2.1 → 6.3.0-prerelease.10

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 (310) hide show
  1. package/dist/cjs/AttachmentEdit/AttachmentEdit.d.ts +2 -0
  2. package/dist/cjs/AttachmentEdit/AttachmentEdit.js +2 -2
  3. package/dist/cjs/Chatbot/Chatbot.d.ts +2 -0
  4. package/dist/cjs/Chatbot/Chatbot.js +2 -2
  5. package/dist/cjs/Chatbot/Chatbot.test.js +4 -0
  6. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +6 -0
  7. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +9 -3
  8. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +27 -0
  9. package/dist/cjs/ChatbotFooter/ChatbotFooter.d.ts +1 -0
  10. package/dist/cjs/ChatbotFooter/ChatbotFooter.js +2 -2
  11. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.d.ts +1 -1
  12. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.js +5 -0
  13. package/dist/cjs/ChatbotHeader/ChatbotHeader.js +1 -1
  14. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +4 -2
  15. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.js +20 -6
  16. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -1
  17. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.js +5 -0
  18. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.js +1 -1
  19. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.d.ts +3 -2
  20. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +20 -6
  21. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -1
  22. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.js +5 -0
  23. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +1 -0
  24. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -3
  25. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -1
  26. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +5 -0
  27. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +1 -0
  28. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +2 -2
  29. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -1
  30. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +5 -0
  31. package/dist/cjs/ChatbotModal/ChatbotModal.d.ts +3 -0
  32. package/dist/cjs/ChatbotModal/ChatbotModal.js +2 -2
  33. package/dist/cjs/ChatbotModal/ChatbotModal.test.d.ts +1 -0
  34. package/dist/cjs/ChatbotModal/ChatbotModal.test.js +28 -0
  35. package/dist/cjs/ChatbotPopover/ChatbotPopover.js +1 -1
  36. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +1 -0
  37. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +3 -3
  38. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +4 -0
  39. package/dist/cjs/CodeModal/CodeModal.d.ts +2 -0
  40. package/dist/cjs/CodeModal/CodeModal.js +3 -3
  41. package/dist/cjs/CodeModal/CodeModal.test.d.ts +1 -0
  42. package/dist/cjs/CodeModal/CodeModal.test.js +15 -0
  43. package/dist/cjs/FileDetails/FileDetails.js +1 -1
  44. package/dist/cjs/Message/Message.d.ts +19 -1
  45. package/dist/cjs/Message/Message.js +58 -39
  46. package/dist/cjs/Message/Message.test.js +64 -0
  47. package/dist/cjs/Message/MessageInput.d.ts +18 -0
  48. package/dist/cjs/Message/MessageInput.js +34 -0
  49. package/dist/cjs/Message/QuickResponse/QuickResponse.d.ts +2 -0
  50. package/dist/cjs/Message/QuickResponse/QuickResponse.js +2 -2
  51. package/dist/cjs/Message/QuickStarts/QuickStartTile.d.ts +2 -0
  52. package/dist/cjs/Message/QuickStarts/QuickStartTile.js +2 -2
  53. package/dist/cjs/Message/UserFeedback/UserFeedback.js +4 -4
  54. package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +4 -0
  55. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +4 -4
  56. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +4 -0
  57. package/dist/cjs/MessageBar/AttachButton.d.ts +1 -0
  58. package/dist/cjs/MessageBar/AttachButton.js +3 -3
  59. package/dist/cjs/MessageBar/AttachButton.test.js +4 -0
  60. package/dist/cjs/MessageBar/MessageBar.d.ts +5 -0
  61. package/dist/cjs/MessageBar/MessageBar.js +14 -13
  62. package/dist/cjs/MessageBar/MessageBar.test.js +13 -0
  63. package/dist/cjs/MessageBar/MicrophoneButton.d.ts +1 -0
  64. package/dist/cjs/MessageBar/MicrophoneButton.js +4 -4
  65. package/dist/cjs/MessageBar/SendButton.d.ts +1 -0
  66. package/dist/cjs/MessageBar/SendButton.js +3 -3
  67. package/dist/cjs/MessageBar/SendButton.test.js +4 -0
  68. package/dist/cjs/MessageBar/StopButton.d.ts +1 -0
  69. package/dist/cjs/MessageBar/StopButton.js +3 -3
  70. package/dist/cjs/MessageBar/StopButton.test.js +4 -0
  71. package/dist/cjs/MessageBox/MessageBox.d.ts +4 -0
  72. package/dist/cjs/MessageBox/MessageBox.js +21 -7
  73. package/dist/cjs/MessageBox/MessageBox.test.js +43 -0
  74. package/dist/cjs/PreviewAttachment/PreviewAttachment.d.ts +2 -0
  75. package/dist/cjs/PreviewAttachment/PreviewAttachment.js +2 -2
  76. package/dist/cjs/Settings/SettingsForm.d.ts +2 -0
  77. package/dist/cjs/Settings/SettingsForm.js +2 -2
  78. package/dist/cjs/Settings/SettingsForm.test.d.ts +1 -1
  79. package/dist/cjs/Settings/SettingsForm.test.js +12 -0
  80. package/dist/cjs/SourcesCard/SourcesCard.d.ts +7 -1
  81. package/dist/cjs/SourcesCard/SourcesCard.js +17 -11
  82. package/dist/cjs/SourcesCard/SourcesCard.test.js +25 -15
  83. package/dist/cjs/TermsOfUse/TermsOfUse.d.ts +2 -0
  84. package/dist/cjs/TermsOfUse/TermsOfUse.js +5 -5
  85. package/dist/cjs/tracking/console_tracking_provider.d.ts +4 -5
  86. package/dist/cjs/tracking/console_tracking_provider.js +22 -15
  87. package/dist/cjs/tracking/posthog_tracking_provider.d.ts +2 -2
  88. package/dist/cjs/tracking/posthog_tracking_provider.js +21 -12
  89. package/dist/cjs/tracking/segment_tracking_provider.d.ts +2 -2
  90. package/dist/cjs/tracking/segment_tracking_provider.js +21 -12
  91. package/dist/cjs/tracking/trackingProviderProxy.d.ts +1 -1
  92. package/dist/cjs/tracking/trackingProviderProxy.js +2 -2
  93. package/dist/cjs/tracking/tracking_api.d.ts +1 -1
  94. package/dist/cjs/tracking/tracking_registry.js +46 -12
  95. package/dist/cjs/tracking/tracking_spi.d.ts +15 -5
  96. package/dist/cjs/tracking/tracking_spi.js +9 -0
  97. package/dist/cjs/tracking/umami_tracking_provider.d.ts +6 -2
  98. package/dist/cjs/tracking/umami_tracking_provider.js +66 -22
  99. package/dist/css/main.css +225 -22
  100. package/dist/css/main.css.map +1 -1
  101. package/dist/esm/AttachmentEdit/AttachmentEdit.d.ts +2 -0
  102. package/dist/esm/AttachmentEdit/AttachmentEdit.js +2 -2
  103. package/dist/esm/Chatbot/Chatbot.d.ts +2 -0
  104. package/dist/esm/Chatbot/Chatbot.js +2 -2
  105. package/dist/esm/Chatbot/Chatbot.test.js +4 -0
  106. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +6 -0
  107. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +9 -3
  108. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +27 -0
  109. package/dist/esm/ChatbotFooter/ChatbotFooter.d.ts +1 -0
  110. package/dist/esm/ChatbotFooter/ChatbotFooter.js +2 -2
  111. package/dist/esm/ChatbotFooter/ChatbotFooter.test.d.ts +1 -1
  112. package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +5 -0
  113. package/dist/esm/ChatbotHeader/ChatbotHeader.js +1 -1
  114. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +4 -2
  115. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.js +20 -6
  116. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -1
  117. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.js +5 -0
  118. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.js +1 -1
  119. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.d.ts +3 -2
  120. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +20 -6
  121. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -1
  122. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +5 -0
  123. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +1 -0
  124. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -3
  125. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -1
  126. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +5 -0
  127. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +1 -0
  128. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +2 -2
  129. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -1
  130. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +5 -0
  131. package/dist/esm/ChatbotModal/ChatbotModal.d.ts +3 -0
  132. package/dist/esm/ChatbotModal/ChatbotModal.js +2 -2
  133. package/dist/esm/ChatbotModal/ChatbotModal.test.d.ts +1 -0
  134. package/dist/esm/ChatbotModal/ChatbotModal.test.js +23 -0
  135. package/dist/esm/ChatbotPopover/ChatbotPopover.js +1 -1
  136. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +1 -0
  137. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +3 -3
  138. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +4 -0
  139. package/dist/esm/CodeModal/CodeModal.d.ts +2 -0
  140. package/dist/esm/CodeModal/CodeModal.js +3 -3
  141. package/dist/esm/CodeModal/CodeModal.test.d.ts +1 -0
  142. package/dist/esm/CodeModal/CodeModal.test.js +10 -0
  143. package/dist/esm/FileDetails/FileDetails.js +1 -1
  144. package/dist/esm/Message/Message.d.ts +19 -1
  145. package/dist/esm/Message/Message.js +58 -39
  146. package/dist/esm/Message/Message.test.js +64 -0
  147. package/dist/esm/Message/MessageInput.d.ts +18 -0
  148. package/dist/esm/Message/MessageInput.js +29 -0
  149. package/dist/esm/Message/QuickResponse/QuickResponse.d.ts +2 -0
  150. package/dist/esm/Message/QuickResponse/QuickResponse.js +2 -2
  151. package/dist/esm/Message/QuickStarts/QuickStartTile.d.ts +2 -0
  152. package/dist/esm/Message/QuickStarts/QuickStartTile.js +2 -2
  153. package/dist/esm/Message/UserFeedback/UserFeedback.js +4 -4
  154. package/dist/esm/Message/UserFeedback/UserFeedback.test.js +4 -0
  155. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +4 -4
  156. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +4 -0
  157. package/dist/esm/MessageBar/AttachButton.d.ts +1 -0
  158. package/dist/esm/MessageBar/AttachButton.js +3 -3
  159. package/dist/esm/MessageBar/AttachButton.test.js +4 -0
  160. package/dist/esm/MessageBar/MessageBar.d.ts +5 -0
  161. package/dist/esm/MessageBar/MessageBar.js +14 -13
  162. package/dist/esm/MessageBar/MessageBar.test.js +13 -0
  163. package/dist/esm/MessageBar/MicrophoneButton.d.ts +1 -0
  164. package/dist/esm/MessageBar/MicrophoneButton.js +4 -4
  165. package/dist/esm/MessageBar/SendButton.d.ts +1 -0
  166. package/dist/esm/MessageBar/SendButton.js +3 -3
  167. package/dist/esm/MessageBar/SendButton.test.js +4 -0
  168. package/dist/esm/MessageBar/StopButton.d.ts +1 -0
  169. package/dist/esm/MessageBar/StopButton.js +3 -3
  170. package/dist/esm/MessageBar/StopButton.test.js +4 -0
  171. package/dist/esm/MessageBox/MessageBox.d.ts +4 -0
  172. package/dist/esm/MessageBox/MessageBox.js +21 -7
  173. package/dist/esm/MessageBox/MessageBox.test.js +44 -1
  174. package/dist/esm/PreviewAttachment/PreviewAttachment.d.ts +2 -0
  175. package/dist/esm/PreviewAttachment/PreviewAttachment.js +2 -2
  176. package/dist/esm/Settings/SettingsForm.d.ts +2 -0
  177. package/dist/esm/Settings/SettingsForm.js +2 -2
  178. package/dist/esm/Settings/SettingsForm.test.d.ts +1 -1
  179. package/dist/esm/Settings/SettingsForm.test.js +12 -0
  180. package/dist/esm/SourcesCard/SourcesCard.d.ts +7 -1
  181. package/dist/esm/SourcesCard/SourcesCard.js +18 -12
  182. package/dist/esm/SourcesCard/SourcesCard.test.js +25 -15
  183. package/dist/esm/TermsOfUse/TermsOfUse.d.ts +2 -0
  184. package/dist/esm/TermsOfUse/TermsOfUse.js +5 -5
  185. package/dist/esm/tracking/console_tracking_provider.d.ts +4 -5
  186. package/dist/esm/tracking/console_tracking_provider.js +22 -15
  187. package/dist/esm/tracking/posthog_tracking_provider.d.ts +2 -2
  188. package/dist/esm/tracking/posthog_tracking_provider.js +21 -12
  189. package/dist/esm/tracking/segment_tracking_provider.d.ts +2 -2
  190. package/dist/esm/tracking/segment_tracking_provider.js +21 -12
  191. package/dist/esm/tracking/trackingProviderProxy.d.ts +1 -1
  192. package/dist/esm/tracking/trackingProviderProxy.js +2 -2
  193. package/dist/esm/tracking/tracking_api.d.ts +1 -1
  194. package/dist/esm/tracking/tracking_registry.js +46 -12
  195. package/dist/esm/tracking/tracking_spi.d.ts +15 -5
  196. package/dist/esm/tracking/tracking_spi.js +8 -1
  197. package/dist/esm/tracking/umami_tracking_provider.d.ts +6 -2
  198. package/dist/esm/tracking/umami_tracking_provider.js +66 -22
  199. package/dist/tsconfig.tsbuildinfo +1 -1
  200. package/package.json +1 -1
  201. package/patternfly-docs/content/extensions/chatbot/examples/Analytics/Analytics.md +18 -14
  202. package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentEdit.tsx +10 -1
  203. package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +74 -104
  204. package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDetailsLabel.tsx +48 -37
  205. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +33 -0
  206. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +34 -0
  207. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickStart.tsx +11 -0
  208. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithSources.tsx +71 -13
  209. package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +3 -1
  210. package/patternfly-docs/content/extensions/chatbot/examples/Messages/PreviewAttachment.tsx +10 -1
  211. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +80 -104
  212. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +44 -2
  213. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerResizable.tsx +13 -2
  214. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithActions.tsx +9 -0
  215. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithSelection.tsx +11 -2
  216. package/patternfly-docs/content/extensions/chatbot/examples/UI/CompactSettings.tsx +289 -0
  217. package/patternfly-docs/content/extensions/chatbot/examples/UI/TermsOfUseCompact.tsx +136 -0
  218. package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +15 -1
  219. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +8 -1
  220. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.tsx +6 -3
  221. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +2 -0
  222. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +2 -0
  223. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotCompact.tsx +481 -0
  224. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotInDrawer.tsx +2 -0
  225. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +2 -0
  226. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedComparisonChatbot.tsx +62 -57
  227. package/patternfly-docs/content/extensions/chatbot/examples/demos/Feedback.tsx +2 -0
  228. package/src/AttachmentEdit/AttachmentEdit.tsx +5 -1
  229. package/src/Chatbot/Chatbot.scss +7 -0
  230. package/src/Chatbot/Chatbot.test.tsx +9 -0
  231. package/src/Chatbot/Chatbot.tsx +4 -1
  232. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +38 -3
  233. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +71 -0
  234. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +23 -2
  235. package/src/ChatbotFooter/ChatbotFooter.scss +5 -0
  236. package/src/ChatbotFooter/ChatbotFooter.test.tsx +10 -0
  237. package/src/ChatbotFooter/ChatbotFooter.tsx +3 -1
  238. package/src/ChatbotHeader/ChatbotHeader.scss +25 -0
  239. package/src/ChatbotHeader/ChatbotHeader.tsx +1 -1
  240. package/src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx +6 -0
  241. package/src/ChatbotHeader/ChatbotHeaderCloseButton.tsx +12 -6
  242. package/src/ChatbotHeader/ChatbotHeaderMain.tsx +3 -1
  243. package/src/ChatbotHeader/ChatbotHeaderMenu.test.tsx +8 -0
  244. package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +10 -5
  245. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx +6 -0
  246. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +5 -2
  247. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx +10 -0
  248. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +4 -0
  249. package/src/ChatbotModal/ChatbotModal.scss +15 -4
  250. package/src/ChatbotModal/ChatbotModal.test.tsx +59 -0
  251. package/src/ChatbotModal/ChatbotModal.tsx +5 -1
  252. package/src/ChatbotPopover/ChatbotPopover.scss +9 -5
  253. package/src/ChatbotPopover/ChatbotPopover.tsx +1 -1
  254. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss +9 -1
  255. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx +13 -0
  256. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.tsx +13 -2
  257. package/src/ChatbotWelcomePrompt/__snapshots__/ChatbotWelcomePrompt.test.tsx.snap +1 -1
  258. package/src/CodeModal/CodeModal.scss +11 -3
  259. package/src/CodeModal/CodeModal.test.tsx +24 -0
  260. package/src/CodeModal/CodeModal.tsx +6 -2
  261. package/src/FileDetails/FileDetails.tsx +1 -1
  262. package/src/FileDetails/__snapshots__/FileDetails.test.tsx.snap +1 -1
  263. package/src/FileDetailsLabel/__snapshots__/FileDetailsLabel.test.tsx.snap +1 -1
  264. package/src/Message/Message.scss +31 -0
  265. package/src/Message/Message.test.tsx +83 -0
  266. package/src/Message/Message.tsx +121 -56
  267. package/src/Message/MessageInput.tsx +59 -0
  268. package/src/Message/QuickResponse/QuickResponse.tsx +5 -1
  269. package/src/Message/QuickStarts/QuickStartTile.tsx +5 -1
  270. package/src/Message/TextMessage/TextMessage.scss +25 -0
  271. package/src/Message/UserFeedback/UserFeedback.scss +24 -3
  272. package/src/Message/UserFeedback/UserFeedback.test.tsx +13 -0
  273. package/src/Message/UserFeedback/UserFeedback.tsx +4 -2
  274. package/src/Message/UserFeedback/UserFeedbackComplete.test.tsx +4 -0
  275. package/src/Message/UserFeedback/UserFeedbackComplete.tsx +10 -2
  276. package/src/MessageBar/AttachButton.scss +10 -0
  277. package/src/MessageBar/AttachButton.test.tsx +4 -0
  278. package/src/MessageBar/AttachButton.tsx +5 -2
  279. package/src/MessageBar/MessageBar.scss +17 -0
  280. package/src/MessageBar/MessageBar.test.tsx +13 -0
  281. package/src/MessageBar/MessageBar.tsx +23 -8
  282. package/src/MessageBar/MicrophoneButton.scss +10 -0
  283. package/src/MessageBar/MicrophoneButton.tsx +6 -3
  284. package/src/MessageBar/SendButton.scss +10 -0
  285. package/src/MessageBar/SendButton.test.tsx +5 -1
  286. package/src/MessageBar/SendButton.tsx +5 -2
  287. package/src/MessageBar/StopButton.scss +10 -0
  288. package/src/MessageBar/StopButton.test.tsx +5 -1
  289. package/src/MessageBar/StopButton.tsx +5 -2
  290. package/src/MessageBox/MessageBox.scss +6 -0
  291. package/src/MessageBox/MessageBox.test.tsx +45 -1
  292. package/src/MessageBox/MessageBox.tsx +16 -6
  293. package/src/PreviewAttachment/PreviewAttachment.tsx +5 -1
  294. package/src/Settings/Settings.scss +11 -0
  295. package/src/Settings/SettingsForm.test.tsx +17 -0
  296. package/src/Settings/SettingsForm.tsx +12 -2
  297. package/src/SourcesCard/SourcesCard.scss +11 -7
  298. package/src/SourcesCard/SourcesCard.test.tsx +30 -22
  299. package/src/SourcesCard/SourcesCard.tsx +56 -13
  300. package/src/TermsOfUse/TermsOfUse.scss +20 -0
  301. package/src/TermsOfUse/TermsOfUse.tsx +9 -4
  302. package/src/tracking/console_tracking_provider.ts +21 -17
  303. package/src/tracking/posthog_tracking_provider.ts +20 -13
  304. package/src/tracking/segment_tracking_provider.ts +20 -13
  305. package/src/tracking/trackingProviderProxy.ts +2 -2
  306. package/src/tracking/tracking_api.ts +1 -1
  307. package/src/tracking/tracking_registry.ts +46 -13
  308. package/src/tracking/tracking_spi.ts +18 -7
  309. package/src/tracking/umami_tracking_provider.ts +76 -20
  310. package/src/SourcesCard/__snapshots__/SourcesCard.test.tsx.snap +0 -34
@@ -2,38 +2,48 @@ import React from 'react';
2
2
 
3
3
  import Message from '@patternfly/chatbot/dist/dynamic/Message';
4
4
  import userAvatar from './user_avatar.svg';
5
- import { AlertActionLink, Form, FormGroup, Radio } from '@patternfly/react-core';
5
+ import {
6
+ AlertActionLink,
7
+ MenuToggle,
8
+ MenuToggleElement,
9
+ Select,
10
+ SelectList,
11
+ SelectOption
12
+ } from '@patternfly/react-core';
6
13
 
7
14
  export const UserMessageExample: React.FunctionComponent = () => {
8
- const [variant, setVariant] = React.useState('code');
15
+ const [variant, setVariant] = React.useState<string>('Code');
16
+ const [isEditable, setIsEditable] = React.useState<boolean>(true);
17
+ const [isOpen, setIsOpen] = React.useState<boolean>(false);
18
+ const [selected, setSelected] = React.useState<string>('Message content type');
9
19
 
10
20
  /* eslint-disable indent */
11
21
  const renderContent = () => {
12
22
  switch (variant) {
13
- case 'code':
23
+ case 'Code':
14
24
  return code;
15
- case 'inlineCode':
25
+ case 'Inline code':
16
26
  return inlineCode;
17
- case 'heading':
27
+ case 'Heading':
18
28
  return heading;
19
- case 'emphasis':
29
+ case 'Emphasis':
20
30
  return emphasis;
21
- case 'blockQuotes':
31
+ case 'Block quotes':
22
32
  return blockQuotes;
23
- case 'orderedList':
33
+ case 'Ordered list':
24
34
  return orderedList;
25
- case 'unorderedList':
35
+ case 'Unordered list':
26
36
  return unorderedList;
27
- case 'moreComplexList':
37
+ case 'More complex list':
28
38
  return moreComplexList;
29
- case 'link':
39
+ case 'Link':
30
40
  return link;
31
- case 'table':
41
+ case 'Table':
32
42
  return table;
33
- case 'image':
43
+ case 'Image':
34
44
  return image;
35
45
  default:
36
- return;
46
+ return '';
37
47
  }
38
48
  };
39
49
  /* eslint-enable indent */
@@ -155,6 +165,32 @@ _Italic text, formatted with single underscores_
155
165
  )
156
166
  };
157
167
 
168
+ const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, value: string | number | undefined) => {
169
+ setVariant(value);
170
+ setSelected(value as string);
171
+ setIsOpen(false);
172
+ };
173
+
174
+ const onToggleClick = () => {
175
+ setIsOpen(!isOpen);
176
+ };
177
+
178
+ const toggle = (toggleRef: React.Ref<MenuToggleElement>) => (
179
+ <MenuToggle
180
+ className="pf-v6-u-mb-md"
181
+ ref={toggleRef}
182
+ onClick={onToggleClick}
183
+ isExpanded={isOpen}
184
+ style={
185
+ {
186
+ width: '200px'
187
+ } as React.CSSProperties
188
+ }
189
+ >
190
+ {selected}
191
+ </MenuToggle>
192
+ );
193
+
158
194
  return (
159
195
  <>
160
196
  <Message
@@ -171,103 +207,43 @@ _Italic text, formatted with single underscores_
171
207
  avatar={userAvatar}
172
208
  avatarProps={{ isBordered: true }}
173
209
  />
174
- <Form>
175
- <FormGroup role="radiogroup" isInline fieldId="user-message-type" label="Message content type">
176
- <Radio
177
- isChecked={variant === 'code'}
178
- onChange={() => setVariant('code')}
179
- name="user-message-type"
180
- label="Code"
181
- id="user-code"
182
- />
183
- <Radio
184
- isChecked={variant === 'inlineCode'}
185
- onChange={() => setVariant('inlineCode')}
186
- name="user-message-type"
187
- label="Inline code"
188
- id="user-inline-code"
189
- />
190
- <Radio
191
- isChecked={variant === 'heading'}
192
- onChange={() => setVariant('heading')}
193
- name="user-message-type"
194
- label="Heading"
195
- id="user-heading"
196
- />
197
- <Radio
198
- isChecked={variant === 'blockQuotes'}
199
- onChange={() => setVariant('blockQuotes')}
200
- name="user-message-type"
201
- label="Block quote"
202
- id="user-block-quotes"
203
- />
204
- <Radio
205
- isChecked={variant === 'emphasis'}
206
- onChange={() => setVariant('emphasis')}
207
- name="user-message-type"
208
- label="Emphasis"
209
- id="user-emphasis"
210
- />
211
- <Radio
212
- isChecked={variant === 'link'}
213
- onChange={() => setVariant('link')}
214
- name="user-message-type"
215
- label="Link"
216
- id="user-link"
217
- />
218
- <Radio
219
- isChecked={variant === 'unorderedList'}
220
- onChange={() => setVariant('unorderedList')}
221
- name="user-message-type"
222
- label="Unordered list"
223
- id="user-unordered-list"
224
- />
225
- <Radio
226
- isChecked={variant === 'orderedList'}
227
- onChange={() => setVariant('orderedList')}
228
- name="user-message-type"
229
- label="Ordered list"
230
- id="user-ordered-list"
231
- />
232
- <Radio
233
- isChecked={variant === 'moreComplexList'}
234
- onChange={() => setVariant('moreComplexList')}
235
- name="user-message-type"
236
- label="More complex list"
237
- id="user-more-complex-list"
238
- />
239
- <Radio
240
- isChecked={variant === 'table'}
241
- onChange={() => setVariant('table')}
242
- name="user-message-type"
243
- label="Table"
244
- id="user-table"
245
- />
246
- <Radio
247
- isChecked={variant === 'image'}
248
- onChange={() => setVariant('image')}
249
- name="user-message-type"
250
- label="Image"
251
- id="user-image"
252
- />
253
- <Radio
254
- isChecked={variant === 'error'}
255
- onChange={() => setVariant('error')}
256
- name="user-message-error"
257
- label="Error"
258
- id="user-error"
259
- />
260
- </FormGroup>
261
- </Form>
210
+ <Select
211
+ id="single-select"
212
+ isOpen={isOpen}
213
+ selected={selected}
214
+ onSelect={onSelect}
215
+ onOpenChange={(isOpen) => setIsOpen(isOpen)}
216
+ toggle={toggle}
217
+ shouldFocusToggleOnSelect
218
+ >
219
+ <SelectList>
220
+ <SelectOption value="Code">Code</SelectOption>
221
+ <SelectOption value="Inline code">Inline code</SelectOption>
222
+ <SelectOption value="Heading">Heading</SelectOption>
223
+ <SelectOption value="Block quotes">Block quotes</SelectOption>
224
+ <SelectOption value="Emphasis">Emphasis</SelectOption>
225
+ <SelectOption value="Link">Link</SelectOption>
226
+ <SelectOption value="Unordered list">Unordered list</SelectOption>
227
+ <SelectOption value="Ordered list">Ordered list</SelectOption>
228
+ <SelectOption value="More complex list">More complex list</SelectOption>
229
+ <SelectOption value="Table">Table</SelectOption>
230
+ <SelectOption value="Image">Image</SelectOption>
231
+ <SelectOption value="Error">Error</SelectOption>
232
+ <SelectOption value="Editable">Editable</SelectOption>
233
+ </SelectList>
234
+ </Select>
262
235
  <Message
263
236
  name="User"
264
237
  role="user"
265
238
  content={renderContent()}
266
239
  avatar={userAvatar}
267
240
  tableProps={
268
- variant === 'table' ? { 'aria-label': 'App information and user roles for user messages' } : undefined
241
+ variant === 'Table' ? { 'aria-label': 'App information and user roles for user messages' } : undefined
269
242
  }
270
- error={variant === 'error' ? error : undefined}
243
+ isEditable={variant === 'Editable' ? isEditable : false}
244
+ error={variant === 'Error' ? error : undefined}
245
+ onEditUpdate={() => setIsEditable(false)}
246
+ onEditCancel={() => setIsEditable(false)}
271
247
  />
272
248
  </>
273
249
  );
@@ -4,6 +4,7 @@ import ChatbotConversationHistoryNav, {
4
4
  Conversation
5
5
  } from '@patternfly/chatbot/dist/dynamic/ChatbotConversationHistoryNav';
6
6
  import { Checkbox, EmptyStateStatus, Spinner } from '@patternfly/react-core';
7
+ import { OutlinedCommentsIcon, SearchIcon } from '@patternfly/react-icons';
7
8
 
8
9
  const initialConversations: { [key: string]: Conversation[] } = {
9
10
  Today: [{ id: '1', text: 'Red Hat products and services' }],
@@ -46,18 +47,33 @@ const ERROR = {
46
47
  onClick: () => alert('Clicked Reload')
47
48
  };
48
49
 
50
+ const NO_RESULTS = {
51
+ bodyText: 'Adjust your search query and try again. Check your spelling or try a more general term.',
52
+ titleText: 'No results found',
53
+ icon: SearchIcon
54
+ };
55
+
56
+ const EMPTY_STATE = {
57
+ bodyText: 'Access timely assistance by starting a conversation with an AI model.',
58
+ titleText: 'Start a new chat',
59
+ icon: OutlinedCommentsIcon
60
+ };
61
+
49
62
  export const ChatbotHeaderTitleDemo: React.FunctionComponent = () => {
50
63
  const [isOpen, setIsOpen] = React.useState(true);
51
64
  const [isButtonOrderReversed, setIsButtonOrderReversed] = React.useState(false);
65
+ const [isCompact, setIsCompact] = React.useState(false);
52
66
  const [conversations, setConversations] = React.useState<Conversation[] | { [key: string]: Conversation[] }>(
53
67
  initialConversations
54
68
  );
55
69
  const [isLoading, setIsLoading] = React.useState(false);
56
70
  const [hasError, setHasError] = React.useState(false);
71
+ const [isEmpty, setIsEmpty] = React.useState(false);
72
+ const [hasNoResults, setHasNoResults] = React.useState(false);
57
73
  const displayMode = ChatbotDisplayMode.embedded;
58
74
 
59
75
  const findMatchingItems = (targetValue: string) => {
60
- let filteredConversations = Object.entries(initialConversations).reduce((acc, [key, items]) => {
76
+ const filteredConversations = Object.entries(initialConversations).reduce((acc, [key, items]) => {
61
77
  const filteredItems = items.filter((item) => item.text.toLowerCase().includes(targetValue.toLowerCase()));
62
78
  if (filteredItems.length > 0) {
63
79
  acc[key] = filteredItems;
@@ -67,7 +83,9 @@ export const ChatbotHeaderTitleDemo: React.FunctionComponent = () => {
67
83
 
68
84
  // append message if no items are found
69
85
  if (Object.keys(filteredConversations).length === 0) {
70
- filteredConversations = [{ id: '13', noIcon: true, text: 'No results found' }];
86
+ setHasNoResults(true);
87
+ } else {
88
+ setHasNoResults(false);
71
89
  }
72
90
  return filteredConversations;
73
91
  };
@@ -105,6 +123,27 @@ export const ChatbotHeaderTitleDemo: React.FunctionComponent = () => {
105
123
  id="drawer-has-error"
106
124
  name="drawer-has-error"
107
125
  ></Checkbox>
126
+ <Checkbox
127
+ label="Show empty state"
128
+ isChecked={isEmpty}
129
+ onChange={() => setIsEmpty(!isEmpty)}
130
+ id="drawer-is-empty"
131
+ name="drawer-is-empty"
132
+ ></Checkbox>
133
+ <Checkbox
134
+ label="Show no results state"
135
+ isChecked={hasNoResults}
136
+ onChange={() => setHasNoResults(!hasNoResults)}
137
+ id="drawer-has-no-results"
138
+ name="drawer-has-no-results"
139
+ ></Checkbox>
140
+ <Checkbox
141
+ label="Show compact version"
142
+ isChecked={isCompact}
143
+ onChange={() => setIsCompact(!isCompact)}
144
+ id="drawer-compact"
145
+ name="drawer-compact"
146
+ ></Checkbox>
108
147
  <ChatbotConversationHistoryNav
109
148
  displayMode={displayMode}
110
149
  onDrawerToggle={() => setIsOpen(!isOpen)}
@@ -129,6 +168,9 @@ export const ChatbotHeaderTitleDemo: React.FunctionComponent = () => {
129
168
  drawerContent={<div>Drawer content</div>}
130
169
  isLoading={isLoading}
131
170
  errorState={hasError ? ERROR : undefined}
171
+ emptyState={isEmpty ? EMPTY_STATE : undefined}
172
+ noResultsState={hasNoResults ? NO_RESULTS : undefined}
173
+ isCompact={isCompact}
132
174
  />
133
175
  </>
134
176
  );
@@ -4,6 +4,7 @@ import ChatbotConversationHistoryNav, {
4
4
  Conversation
5
5
  } from '@patternfly/chatbot/dist/dynamic/ChatbotConversationHistoryNav';
6
6
  import { Checkbox } from '@patternfly/react-core';
7
+ import { SearchIcon } from '@patternfly/react-icons';
7
8
 
8
9
  const initialConversations: { [key: string]: Conversation[] } = {
9
10
  Today: [{ id: '1', text: 'Red Hat products and services' }],
@@ -31,15 +32,22 @@ const initialConversations: { [key: string]: Conversation[] } = {
31
32
  ]
32
33
  };
33
34
 
35
+ const NO_RESULTS = {
36
+ bodyText: 'Adjust your search query and try again. Check your spelling or try a more general term.',
37
+ titleText: 'No results found',
38
+ icon: SearchIcon
39
+ };
40
+
34
41
  export const ChatbotHeaderDrawerResizableDemo: React.FunctionComponent = () => {
35
42
  const [isOpen, setIsOpen] = React.useState(true);
36
43
  const [conversations, setConversations] = React.useState<Conversation[] | { [key: string]: Conversation[] }>(
37
44
  initialConversations
38
45
  );
46
+ const [showNoResults, setShowNoResults] = React.useState(false);
39
47
  const displayMode = ChatbotDisplayMode.embedded;
40
48
 
41
49
  const findMatchingItems = (targetValue: string) => {
42
- let filteredConversations = Object.entries(initialConversations).reduce((acc, [key, items]) => {
50
+ const filteredConversations = Object.entries(initialConversations).reduce((acc, [key, items]) => {
43
51
  const filteredItems = items.filter((item) => item.text.toLowerCase().includes(targetValue.toLowerCase()));
44
52
  if (filteredItems.length > 0) {
45
53
  acc[key] = filteredItems;
@@ -49,7 +57,9 @@ export const ChatbotHeaderDrawerResizableDemo: React.FunctionComponent = () => {
49
57
 
50
58
  // append message if no items are found
51
59
  if (Object.keys(filteredConversations).length === 0) {
52
- filteredConversations = [{ id: '13', noIcon: true, text: 'No results found' }];
60
+ setShowNoResults(true);
61
+ } else {
62
+ setShowNoResults(false);
53
63
  }
54
64
  return filteredConversations;
55
65
  };
@@ -88,6 +98,7 @@ export const ChatbotHeaderDrawerResizableDemo: React.FunctionComponent = () => {
88
98
  }}
89
99
  drawerContent={<div>Drawer content</div>}
90
100
  drawerPanelContentProps={{ isResizable: true, minSize: '200px' }}
101
+ emptyState={showNoResults ? NO_RESULTS : undefined}
91
102
  />
92
103
  </>
93
104
  );
@@ -51,6 +51,7 @@ const conversations: { [key: string]: Conversation[] } = {
51
51
 
52
52
  export const ChatbotHeaderTitleDemo: React.FunctionComponent = () => {
53
53
  const [isDrawerOpen, setIsDrawerOpen] = React.useState(true);
54
+ const [isCompact, setIsCompact] = React.useState(false);
54
55
  const displayMode = ChatbotDisplayMode.embedded;
55
56
 
56
57
  return (
@@ -62,6 +63,13 @@ export const ChatbotHeaderTitleDemo: React.FunctionComponent = () => {
62
63
  id="drawer-actions-visible"
63
64
  name="drawer-actions-visible"
64
65
  ></Checkbox>
66
+ <Checkbox
67
+ label="Show compact version"
68
+ isChecked={isCompact}
69
+ onChange={() => setIsCompact(!isCompact)}
70
+ id="drawer-actions-compact"
71
+ name="drawer-actions-compact"
72
+ ></Checkbox>
65
73
  <ChatbotConversationHistoryNav
66
74
  displayMode={displayMode}
67
75
  onDrawerToggle={() => setIsDrawerOpen(!isDrawerOpen)}
@@ -69,6 +77,7 @@ export const ChatbotHeaderTitleDemo: React.FunctionComponent = () => {
69
77
  setIsDrawerOpen={setIsDrawerOpen}
70
78
  conversations={conversations}
71
79
  drawerContent={<div>Drawer content</div>}
80
+ isCompact={isCompact}
72
81
  />
73
82
  </>
74
83
  );
@@ -25,6 +25,7 @@ const menuItems = [
25
25
  export const ChatbotHeaderDrawerWithSelection: React.FunctionComponent = () => {
26
26
  const [isDrawerOpen, setIsDrawerOpen] = React.useState(true);
27
27
  const [currentSelection, setCurrentSelection] = React.useState('2');
28
+ const [isCompact, setIsCompact] = React.useState(false);
28
29
  const displayMode = ChatbotDisplayMode.embedded;
29
30
 
30
31
  const conversations: { [key: string]: Conversation[] } = {
@@ -60,8 +61,15 @@ export const ChatbotHeaderDrawerWithSelection: React.FunctionComponent = () => {
60
61
  label="Display drawer"
61
62
  isChecked={isDrawerOpen}
62
63
  onChange={() => setIsDrawerOpen(!isDrawerOpen)}
63
- id="drawer-actions-visible"
64
- name="drawer-actions-visible"
64
+ id="drawer-selected-visible"
65
+ name="drawer-selected-visible"
66
+ ></Checkbox>
67
+ <Checkbox
68
+ label="Show compact version"
69
+ isChecked={isCompact}
70
+ onChange={() => setIsCompact(!isCompact)}
71
+ id="drawer-selected-compact"
72
+ name="drawer-selected-compact"
65
73
  ></Checkbox>
66
74
  <ChatbotConversationHistoryNav
67
75
  displayMode={displayMode}
@@ -72,6 +80,7 @@ export const ChatbotHeaderDrawerWithSelection: React.FunctionComponent = () => {
72
80
  drawerContent={<div>Drawer content</div>}
73
81
  activeItemId={currentSelection}
74
82
  onSelectActiveItem={(_e, id) => setCurrentSelection(id as string)}
83
+ isCompact={isCompact}
75
84
  />
76
85
  </>
77
86
  );