@patternfly/chatbot 2.2.0-prerelease.9 → 2.2.0

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 (459) 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.d.ts +2 -1
  4. package/dist/cjs/Chatbot/Chatbot.js +1 -0
  5. package/dist/cjs/Chatbot/Chatbot.test.d.ts +1 -0
  6. package/dist/cjs/Chatbot/Chatbot.test.js +28 -0
  7. package/dist/cjs/ChatbotAlert/ChatbotAlert.test.d.ts +1 -0
  8. package/dist/cjs/ChatbotAlert/ChatbotAlert.test.js +27 -0
  9. package/dist/cjs/ChatbotContent/ChatbotContent.test.d.ts +1 -0
  10. package/dist/cjs/ChatbotContent/ChatbotContent.test.js +18 -0
  11. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +3 -3
  12. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +3 -1
  13. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +27 -4
  14. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +24 -12
  15. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +99 -3
  16. package/dist/cjs/ChatbotConversationHistoryNav/EmptyState.d.ts +11 -0
  17. package/dist/cjs/ChatbotConversationHistoryNav/EmptyState.js +29 -0
  18. package/dist/cjs/ChatbotConversationHistoryNav/LoadingState.d.ts +4 -0
  19. package/dist/cjs/ChatbotConversationHistoryNav/LoadingState.js +45 -0
  20. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.d.ts +1 -0
  21. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.js +18 -0
  22. package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.d.ts +1 -0
  23. package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.js +87 -0
  24. package/dist/cjs/ChatbotFooter/ChatbotFootnote.d.ts +1 -1
  25. package/dist/cjs/ChatbotFooter/ChatbotFootnote.js +1 -1
  26. package/dist/cjs/ChatbotHeader/ChatbotHeader.test.d.ts +1 -0
  27. package/dist/cjs/ChatbotHeader/ChatbotHeader.test.js +18 -0
  28. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.d.ts +1 -0
  29. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.js +18 -0
  30. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.js +3 -1
  31. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -0
  32. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.js +20 -0
  33. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.d.ts +1 -0
  34. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.js +18 -0
  35. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +3 -1
  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.d.ts +3 -1
  45. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.js +4 -2
  46. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +1 -0
  47. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.js +55 -0
  48. package/dist/cjs/ChatbotToggle/ChatbotToggle.js +3 -1
  49. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +19 -11
  50. package/dist/cjs/Compare/Compare.d.ts +17 -0
  51. package/dist/cjs/Compare/Compare.js +50 -0
  52. package/dist/cjs/Compare/Compare.test.d.ts +1 -0
  53. package/dist/cjs/Compare/Compare.test.js +20 -0
  54. package/dist/cjs/Compare/index.d.ts +2 -0
  55. package/dist/cjs/Compare/index.js +23 -0
  56. package/dist/cjs/Message/ErrorMessage/ErrorMessage.d.ts +4 -0
  57. package/dist/cjs/Message/ErrorMessage/ErrorMessage.js +26 -0
  58. package/dist/cjs/Message/ImageMessage/ImageMessage.d.ts +4 -0
  59. package/dist/cjs/Message/ImageMessage/ImageMessage.js +25 -0
  60. package/dist/cjs/Message/LinkMessage/LinkMessage.d.ts +4 -0
  61. package/dist/cjs/Message/LinkMessage/LinkMessage.js +30 -0
  62. package/dist/cjs/Message/Message.d.ts +35 -8
  63. package/dist/cjs/Message/Message.js +68 -18
  64. package/dist/cjs/Message/Message.test.js +239 -3
  65. package/dist/cjs/Message/QuickResponse/QuickResponse.d.ts +17 -0
  66. package/dist/cjs/Message/QuickResponse/QuickResponse.js +34 -0
  67. package/dist/cjs/Message/TableMessage/TableMessage.d.ts +20 -0
  68. package/dist/cjs/Message/TableMessage/TableMessage.js +67 -0
  69. package/dist/cjs/Message/TableMessage/TbodyMessage.d.ts +7 -0
  70. package/dist/cjs/Message/TableMessage/TbodyMessage.js +33 -0
  71. package/dist/cjs/Message/TableMessage/TdMessage.d.ts +5 -0
  72. package/dist/cjs/Message/TableMessage/TdMessage.js +26 -0
  73. package/dist/cjs/Message/TableMessage/ThMessage.d.ts +5 -0
  74. package/dist/cjs/Message/TableMessage/ThMessage.js +26 -0
  75. package/dist/cjs/Message/TableMessage/TheadMessage.d.ts +5 -0
  76. package/dist/cjs/Message/TableMessage/TheadMessage.js +26 -0
  77. package/dist/cjs/Message/TableMessage/TrMessage.d.ts +7 -0
  78. package/dist/cjs/Message/TableMessage/TrMessage.js +37 -0
  79. package/dist/cjs/Message/TextMessage/TextMessage.d.ts +2 -1
  80. package/dist/cjs/Message/TextMessage/TextMessage.js +2 -2
  81. package/dist/cjs/Message/UserFeedback/CloseButton.d.ts +10 -0
  82. package/dist/cjs/Message/UserFeedback/CloseButton.js +14 -0
  83. package/dist/cjs/Message/UserFeedback/UserFeedback.d.ts +39 -0
  84. package/dist/cjs/Message/UserFeedback/UserFeedback.js +54 -0
  85. package/dist/cjs/Message/UserFeedback/UserFeedback.test.d.ts +1 -0
  86. package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +133 -0
  87. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.d.ts +42 -0
  88. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +117 -0
  89. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.d.ts +1 -0
  90. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +249 -0
  91. package/dist/cjs/MessageBar/AttachButton.js +4 -2
  92. package/dist/cjs/MessageBar/MessageBar.d.ts +11 -4
  93. package/dist/cjs/MessageBar/MessageBar.js +127 -46
  94. package/dist/cjs/MessageBar/MessageBar.test.js +12 -4
  95. package/dist/cjs/MessageBar/MicrophoneButton.d.ts +1 -1
  96. package/dist/cjs/MessageBar/SendButton.js +3 -1
  97. package/dist/cjs/MessageBar/StopButton.js +3 -1
  98. package/dist/cjs/MessageBox/MessageBox.test.d.ts +1 -0
  99. package/dist/cjs/MessageBox/MessageBox.test.js +22 -0
  100. package/dist/cjs/PreviewAttachment/PreviewAttachment.test.d.ts +1 -0
  101. package/dist/cjs/PreviewAttachment/PreviewAttachment.test.js +28 -0
  102. package/dist/cjs/ResponseActions/ResponseActionButton.d.ts +4 -1
  103. package/dist/cjs/ResponseActions/ResponseActionButton.js +21 -6
  104. package/dist/cjs/ResponseActions/ResponseActions.d.ts +8 -2
  105. package/dist/cjs/ResponseActions/ResponseActions.js +7 -7
  106. package/dist/cjs/ResponseActions/ResponseActions.test.js +2 -2
  107. package/dist/cjs/Settings/SettingsForm.test.d.ts +1 -0
  108. package/dist/cjs/Settings/SettingsForm.test.js +26 -0
  109. package/dist/cjs/__mocks__/rehype-external-links.d.ts +2 -0
  110. package/dist/cjs/__mocks__/rehype-external-links.js +4 -0
  111. package/dist/cjs/__mocks__/rehype-sanitize.d.ts +2 -0
  112. package/dist/cjs/__mocks__/rehype-sanitize.js +4 -0
  113. package/dist/cjs/__mocks__/rehype-unwrap-images.d.ts +2 -0
  114. package/dist/cjs/__mocks__/rehype-unwrap-images.js +4 -0
  115. package/dist/cjs/index.d.ts +4 -0
  116. package/dist/cjs/index.js +7 -1
  117. package/dist/cjs/tracking/console_tracking_provider.d.ts +10 -0
  118. package/dist/cjs/tracking/console_tracking_provider.js +27 -0
  119. package/dist/cjs/tracking/index.d.ts +2 -0
  120. package/dist/cjs/tracking/index.js +23 -0
  121. package/dist/cjs/tracking/posthog_tracking_provider.d.ts +9 -0
  122. package/dist/cjs/tracking/posthog_tracking_provider.js +37 -0
  123. package/dist/cjs/tracking/segment_tracking_provider.d.ts +10 -0
  124. package/dist/cjs/tracking/segment_tracking_provider.js +50 -0
  125. package/dist/cjs/tracking/trackingProviderProxy.d.ts +9 -0
  126. package/dist/cjs/tracking/trackingProviderProxy.js +24 -0
  127. package/dist/cjs/tracking/tracking_api.d.ts +8 -0
  128. package/dist/cjs/tracking/tracking_api.js +2 -0
  129. package/dist/cjs/tracking/tracking_registry.d.ts +4 -0
  130. package/dist/cjs/tracking/tracking_registry.js +33 -0
  131. package/dist/cjs/tracking/tracking_spi.d.ts +9 -0
  132. package/dist/cjs/tracking/tracking_spi.js +2 -0
  133. package/dist/cjs/tracking/umami_tracking_provider.d.ts +14 -0
  134. package/dist/cjs/tracking/umami_tracking_provider.js +44 -0
  135. package/dist/css/main.css +420 -148
  136. package/dist/css/main.css.map +1 -1
  137. package/dist/dynamic/Compare/package.json +1 -0
  138. package/dist/dynamic/tracking/package.json +1 -0
  139. package/dist/esm/AttachmentEdit/AttachmentEdit.test.d.ts +1 -0
  140. package/dist/esm/AttachmentEdit/AttachmentEdit.test.js +47 -0
  141. package/dist/esm/Chatbot/Chatbot.d.ts +2 -1
  142. package/dist/esm/Chatbot/Chatbot.js +1 -0
  143. package/dist/esm/Chatbot/Chatbot.test.d.ts +1 -0
  144. package/dist/esm/Chatbot/Chatbot.test.js +23 -0
  145. package/dist/esm/ChatbotAlert/ChatbotAlert.test.d.ts +1 -0
  146. package/dist/esm/ChatbotAlert/ChatbotAlert.test.js +22 -0
  147. package/dist/esm/ChatbotContent/ChatbotContent.test.d.ts +1 -0
  148. package/dist/esm/ChatbotContent/ChatbotContent.test.js +13 -0
  149. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +3 -3
  150. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +3 -1
  151. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +27 -4
  152. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +24 -12
  153. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +99 -3
  154. package/dist/esm/ChatbotConversationHistoryNav/EmptyState.d.ts +11 -0
  155. package/dist/esm/ChatbotConversationHistoryNav/EmptyState.js +22 -0
  156. package/dist/esm/ChatbotConversationHistoryNav/LoadingState.d.ts +4 -0
  157. package/dist/esm/ChatbotConversationHistoryNav/LoadingState.js +38 -0
  158. package/dist/esm/ChatbotFooter/ChatbotFooter.test.d.ts +1 -0
  159. package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +13 -0
  160. package/dist/esm/ChatbotFooter/ChatbotFooternote.test.d.ts +1 -0
  161. package/dist/esm/ChatbotFooter/ChatbotFooternote.test.js +82 -0
  162. package/dist/esm/ChatbotFooter/ChatbotFootnote.d.ts +1 -1
  163. package/dist/esm/ChatbotFooter/ChatbotFootnote.js +1 -1
  164. package/dist/esm/ChatbotHeader/ChatbotHeader.test.d.ts +1 -0
  165. package/dist/esm/ChatbotHeader/ChatbotHeader.test.js +13 -0
  166. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.d.ts +1 -0
  167. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.js +13 -0
  168. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.js +3 -1
  169. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -0
  170. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.js +15 -0
  171. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.d.ts +1 -0
  172. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.js +13 -0
  173. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +3 -1
  174. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -0
  175. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +15 -0
  176. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -1
  177. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -0
  178. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +38 -0
  179. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +6 -4
  180. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -0
  181. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +36 -0
  182. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.d.ts +3 -1
  183. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.js +4 -2
  184. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +1 -0
  185. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.js +50 -0
  186. package/dist/esm/ChatbotToggle/ChatbotToggle.js +3 -1
  187. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +19 -11
  188. package/dist/esm/Compare/Compare.d.ts +17 -0
  189. package/dist/esm/Compare/Compare.js +43 -0
  190. package/dist/esm/Compare/Compare.test.d.ts +1 -0
  191. package/dist/esm/Compare/Compare.test.js +15 -0
  192. package/dist/esm/Compare/index.d.ts +2 -0
  193. package/dist/esm/Compare/index.js +2 -0
  194. package/dist/esm/Message/ErrorMessage/ErrorMessage.d.ts +4 -0
  195. package/dist/esm/Message/ErrorMessage/ErrorMessage.js +21 -0
  196. package/dist/esm/Message/ImageMessage/ImageMessage.d.ts +4 -0
  197. package/dist/esm/Message/ImageMessage/ImageMessage.js +20 -0
  198. package/dist/esm/Message/LinkMessage/LinkMessage.d.ts +4 -0
  199. package/dist/esm/Message/LinkMessage/LinkMessage.js +25 -0
  200. package/dist/esm/Message/Message.d.ts +35 -8
  201. package/dist/esm/Message/Message.js +66 -16
  202. package/dist/esm/Message/Message.test.js +239 -3
  203. package/dist/esm/Message/QuickResponse/QuickResponse.d.ts +17 -0
  204. package/dist/esm/Message/QuickResponse/QuickResponse.js +27 -0
  205. package/dist/esm/Message/TableMessage/TableMessage.d.ts +20 -0
  206. package/dist/esm/Message/TableMessage/TableMessage.js +62 -0
  207. package/dist/esm/Message/TableMessage/TbodyMessage.d.ts +7 -0
  208. package/dist/esm/Message/TableMessage/TbodyMessage.js +28 -0
  209. package/dist/esm/Message/TableMessage/TdMessage.d.ts +5 -0
  210. package/dist/esm/Message/TableMessage/TdMessage.js +21 -0
  211. package/dist/esm/Message/TableMessage/ThMessage.d.ts +5 -0
  212. package/dist/esm/Message/TableMessage/ThMessage.js +21 -0
  213. package/dist/esm/Message/TableMessage/TheadMessage.d.ts +5 -0
  214. package/dist/esm/Message/TableMessage/TheadMessage.js +21 -0
  215. package/dist/esm/Message/TableMessage/TrMessage.d.ts +7 -0
  216. package/dist/esm/Message/TableMessage/TrMessage.js +32 -0
  217. package/dist/esm/Message/TextMessage/TextMessage.d.ts +2 -1
  218. package/dist/esm/Message/TextMessage/TextMessage.js +3 -3
  219. package/dist/esm/Message/UserFeedback/CloseButton.d.ts +10 -0
  220. package/dist/esm/Message/UserFeedback/CloseButton.js +9 -0
  221. package/dist/esm/Message/UserFeedback/UserFeedback.d.ts +39 -0
  222. package/dist/esm/Message/UserFeedback/UserFeedback.js +49 -0
  223. package/dist/esm/Message/UserFeedback/UserFeedback.test.d.ts +1 -0
  224. package/dist/esm/Message/UserFeedback/UserFeedback.test.js +128 -0
  225. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.d.ts +42 -0
  226. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +112 -0
  227. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.d.ts +1 -0
  228. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +244 -0
  229. package/dist/esm/MessageBar/AttachButton.js +4 -2
  230. package/dist/esm/MessageBar/MessageBar.d.ts +11 -4
  231. package/dist/esm/MessageBar/MessageBar.js +127 -46
  232. package/dist/esm/MessageBar/MessageBar.test.js +12 -4
  233. package/dist/esm/MessageBar/MicrophoneButton.d.ts +1 -1
  234. package/dist/esm/MessageBar/SendButton.js +3 -1
  235. package/dist/esm/MessageBar/StopButton.js +3 -1
  236. package/dist/esm/MessageBox/MessageBox.test.d.ts +1 -0
  237. package/dist/esm/MessageBox/MessageBox.test.js +17 -0
  238. package/dist/esm/PreviewAttachment/PreviewAttachment.test.d.ts +1 -0
  239. package/dist/esm/PreviewAttachment/PreviewAttachment.test.js +23 -0
  240. package/dist/esm/ResponseActions/ResponseActionButton.d.ts +4 -1
  241. package/dist/esm/ResponseActions/ResponseActionButton.js +18 -3
  242. package/dist/esm/ResponseActions/ResponseActions.d.ts +8 -2
  243. package/dist/esm/ResponseActions/ResponseActions.js +7 -7
  244. package/dist/esm/ResponseActions/ResponseActions.test.js +2 -2
  245. package/dist/esm/Settings/SettingsForm.test.d.ts +1 -0
  246. package/dist/esm/Settings/SettingsForm.test.js +21 -0
  247. package/dist/esm/__mocks__/rehype-external-links.d.ts +2 -0
  248. package/dist/esm/__mocks__/rehype-external-links.js +2 -0
  249. package/dist/esm/__mocks__/rehype-sanitize.d.ts +2 -0
  250. package/dist/esm/__mocks__/rehype-sanitize.js +2 -0
  251. package/dist/esm/__mocks__/rehype-unwrap-images.d.ts +2 -0
  252. package/dist/esm/__mocks__/rehype-unwrap-images.js +2 -0
  253. package/dist/esm/index.d.ts +4 -0
  254. package/dist/esm/index.js +4 -0
  255. package/dist/esm/tracking/console_tracking_provider.d.ts +10 -0
  256. package/dist/esm/tracking/console_tracking_provider.js +23 -0
  257. package/dist/esm/tracking/index.d.ts +2 -0
  258. package/dist/esm/tracking/index.js +2 -0
  259. package/dist/esm/tracking/posthog_tracking_provider.d.ts +9 -0
  260. package/dist/esm/tracking/posthog_tracking_provider.js +33 -0
  261. package/dist/esm/tracking/segment_tracking_provider.d.ts +10 -0
  262. package/dist/esm/tracking/segment_tracking_provider.js +46 -0
  263. package/dist/esm/tracking/trackingProviderProxy.d.ts +9 -0
  264. package/dist/esm/tracking/trackingProviderProxy.js +22 -0
  265. package/dist/esm/tracking/tracking_api.d.ts +8 -0
  266. package/dist/esm/tracking/tracking_api.js +1 -0
  267. package/dist/esm/tracking/tracking_registry.d.ts +4 -0
  268. package/dist/esm/tracking/tracking_registry.js +26 -0
  269. package/dist/esm/tracking/tracking_spi.d.ts +9 -0
  270. package/dist/esm/tracking/tracking_spi.js +1 -0
  271. package/dist/esm/tracking/umami_tracking_provider.d.ts +14 -0
  272. package/dist/esm/tracking/umami_tracking_provider.js +40 -0
  273. package/dist/tsconfig.tsbuildinfo +1 -1
  274. package/package.json +8 -3
  275. package/patternfly-docs/content/extensions/chatbot/about-chatbot.md +8 -2
  276. package/patternfly-docs/content/extensions/chatbot/design-guidelines.md +192 -15
  277. package/patternfly-docs/content/extensions/chatbot/examples/Analytics/Analytics.md +219 -0
  278. package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentError.tsx +2 -2
  279. package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +214 -12
  280. package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDropZone.tsx +2 -1
  281. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithAttachment.tsx +2 -2
  282. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithCustomResponseActions.tsx +1 -1
  283. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +71 -0
  284. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedbackTimeout.tsx +27 -0
  285. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +1 -1
  286. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickStart.tsx +2 -2
  287. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithResponseActions.tsx +1 -1
  288. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithSources.tsx +1 -1
  289. package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +49 -8
  290. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +244 -14
  291. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessageWithExtraContent.tsx +54 -0
  292. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFooter.tsx +1 -1
  293. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFootnote.tsx +5 -5
  294. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderBasic.tsx +1 -1
  295. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +36 -3
  296. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerNavigation.tsx +67 -0
  297. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerResizable.tsx +94 -0
  298. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarAttach.tsx +1 -1
  299. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomeInteraction.tsx +1 -1
  300. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomePrompt.tsx +7 -7
  301. package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +21 -6
  302. package/patternfly-docs/content/extensions/chatbot/examples/demos/AttachmentDemos.md +14 -0
  303. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +39 -1
  304. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.tsx +48 -35
  305. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +2 -2
  306. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +3 -3
  307. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotInDrawer.tsx +453 -0
  308. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +11 -11
  309. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedComparisonChatbot.tsx +206 -0
  310. package/patternfly-docs/content/extensions/chatbot/examples/demos/Feedback.tsx +104 -0
  311. package/patternfly-docs/content/extensions/chatbot/img/ai-action-inpage.svg +85 -0
  312. package/patternfly-docs/content/extensions/chatbot/img/ai-action-message.svg +63 -0
  313. package/patternfly-docs/content/extensions/chatbot/img/analytics-example.svg +127 -0
  314. package/patternfly-docs/content/extensions/chatbot/img/attached-file.svg +24 -29
  315. package/patternfly-docs/content/extensions/chatbot/img/attachment-menu.svg +4 -4
  316. package/patternfly-docs/content/extensions/chatbot/img/attachment-unsent.svg +30 -58
  317. package/patternfly-docs/content/extensions/chatbot/img/chatbot-analytics.svg +51 -0
  318. package/patternfly-docs/content/extensions/chatbot/img/chatbot-elements.svg +11 -12
  319. package/patternfly-docs/content/extensions/chatbot/img/chatbot-quickstarts-tile.svg +58 -0
  320. package/patternfly-docs/content/extensions/chatbot/img/chatbot-settings.svg +83 -0
  321. package/patternfly-docs/content/extensions/chatbot/img/comparison.svg +45 -0
  322. package/patternfly-docs/content/extensions/chatbot/img/conversation-history.svg +6 -29
  323. package/patternfly-docs/content/extensions/chatbot/img/docked.svg +259 -241
  324. package/patternfly-docs/content/extensions/chatbot/img/drawer.svg +255 -0
  325. package/patternfly-docs/content/extensions/chatbot/img/error-state.svg +30 -0
  326. package/patternfly-docs/content/extensions/chatbot/img/feedback-form.svg +88 -0
  327. package/patternfly-docs/content/extensions/chatbot/img/footnote.svg +1 -1
  328. package/patternfly-docs/content/extensions/chatbot/img/fullscreen.svg +25 -16
  329. package/patternfly-docs/content/extensions/chatbot/img/listening-pulse.svg +22 -0
  330. package/patternfly-docs/content/extensions/chatbot/img/listening.svg +1 -1
  331. package/patternfly-docs/content/extensions/chatbot/img/loading-state.svg +28 -0
  332. package/patternfly-docs/content/extensions/chatbot/img/masthead-toggle-notification.svg +49 -0
  333. package/patternfly-docs/content/extensions/chatbot/img/masthead-toggle.svg +75 -0
  334. package/patternfly-docs/content/extensions/chatbot/img/message-bar-elements.svg +3 -3
  335. package/patternfly-docs/content/extensions/chatbot/img/message-elements.svg +84 -142
  336. package/patternfly-docs/content/extensions/chatbot/img/message-feedback.svg +52 -0
  337. package/patternfly-docs/content/extensions/chatbot/img/message-responses.svg +54 -0
  338. package/patternfly-docs/content/extensions/chatbot/img/new-chat-emptystate.svg +27 -0
  339. package/patternfly-docs/content/extensions/chatbot/img/no-results-emptystate.svg +27 -0
  340. package/patternfly-docs/content/extensions/chatbot/img/overlay.svg +54 -39
  341. package/patternfly-docs/content/extensions/chatbot/img/posthog.svg +30 -0
  342. package/patternfly-docs/content/extensions/chatbot/img/segment.svg +36 -0
  343. package/patternfly-docs/content/extensions/chatbot/img/settings-menu.svg +122 -0
  344. package/patternfly-docs/content/extensions/chatbot/img/source-tile.svg +62 -0
  345. package/patternfly-docs/content/extensions/chatbot/img/thank-you-card.svg +81 -0
  346. package/patternfly-docs/content/extensions/chatbot/img/toggle-customizations.svg +12 -0
  347. package/patternfly-docs/content/extensions/chatbot/img/toggle-tooltips.svg +38 -0
  348. package/patternfly-docs/content/extensions/chatbot/img/umami.svg +30 -0
  349. package/patternfly-docs/content/extensions/chatbot/img/welcome-elements.svg +82 -0
  350. package/patternfly-docs/content/extensions/chatbot/img/welcome-message.svg +94 -0
  351. package/src/AttachMenu/AttachMenu.scss +1 -1
  352. package/src/AttachmentEdit/AttachmentEdit.test.tsx +55 -0
  353. package/src/Chatbot/Chatbot.scss +20 -1
  354. package/src/Chatbot/Chatbot.test.tsx +31 -0
  355. package/src/Chatbot/Chatbot.tsx +2 -1
  356. package/src/ChatbotAlert/ChatbotAlert.test.tsx +31 -0
  357. package/src/ChatbotContent/ChatbotContent.scss +1 -0
  358. package/src/ChatbotContent/ChatbotContent.test.tsx +15 -0
  359. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx +10 -4
  360. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +24 -1
  361. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +242 -3
  362. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +94 -26
  363. package/src/ChatbotConversationHistoryNav/EmptyState.tsx +44 -0
  364. package/src/ChatbotConversationHistoryNav/LoadingState.tsx +38 -0
  365. package/src/ChatbotFooter/ChatbotFooter.scss +8 -4
  366. package/src/ChatbotFooter/ChatbotFooter.test.tsx +15 -0
  367. package/src/ChatbotFooter/ChatbotFooternote.test.tsx +84 -0
  368. package/src/ChatbotFooter/ChatbotFootnote.tsx +2 -2
  369. package/src/ChatbotHeader/ChatbotHeader.scss +5 -6
  370. package/src/ChatbotHeader/ChatbotHeader.test.tsx +15 -0
  371. package/src/ChatbotHeader/ChatbotHeaderActions.test.tsx +17 -0
  372. package/src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx +20 -0
  373. package/src/ChatbotHeader/ChatbotHeaderCloseButton.tsx +7 -1
  374. package/src/ChatbotHeader/ChatbotHeaderMain.test.tsx +17 -0
  375. package/src/ChatbotHeader/ChatbotHeaderMenu.test.tsx +19 -0
  376. package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +7 -1
  377. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx +45 -0
  378. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +8 -1
  379. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx +43 -0
  380. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +11 -4
  381. package/src/ChatbotHeader/ChatbotHeaderTitle.test.tsx +75 -0
  382. package/src/ChatbotHeader/ChatbotHeaderTitle.tsx +7 -2
  383. package/src/ChatbotModal/ChatbotModal.scss +12 -12
  384. package/src/ChatbotToggle/ChatbotToggle.tsx +6 -1
  385. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss +2 -0
  386. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx +26 -18
  387. package/src/ChatbotWelcomePrompt/__snapshots__/ChatbotWelcomePrompt.test.tsx.snap +2 -2
  388. package/src/CodeModal/CodeModal.scss +7 -4
  389. package/src/Compare/Compare.scss +72 -0
  390. package/src/Compare/Compare.test.tsx +31 -0
  391. package/src/Compare/Compare.tsx +98 -0
  392. package/src/Compare/index.ts +2 -0
  393. package/src/FileDetails/FileDetails.scss +1 -1
  394. package/src/FileDetailsLabel/FileDetailsLabel.scss +2 -2
  395. package/src/Message/CodeBlockMessage/CodeBlockMessage.scss +4 -4
  396. package/src/Message/ErrorMessage/ErrorMessage.tsx +14 -0
  397. package/src/Message/ImageMessage/ImageMessage.scss +9 -0
  398. package/src/Message/ImageMessage/ImageMessage.tsx +14 -0
  399. package/src/Message/LinkMessage/LinkMessage.tsx +34 -0
  400. package/src/Message/ListMessage/ListMessage.scss +6 -6
  401. package/src/Message/Message.scss +4 -26
  402. package/src/Message/Message.test.tsx +313 -3
  403. package/src/Message/Message.tsx +130 -31
  404. package/src/Message/MessageLoading.scss +2 -2
  405. package/src/Message/QuickResponse/QuickResponse.scss +33 -0
  406. package/src/Message/QuickResponse/QuickResponse.tsx +54 -0
  407. package/src/Message/QuickStarts/QuickStartTile.scss +0 -1
  408. package/src/Message/TableMessage/TableMessage.scss +23 -0
  409. package/src/Message/TableMessage/TableMessage.tsx +83 -0
  410. package/src/Message/TableMessage/TbodyMessage.tsx +20 -0
  411. package/src/Message/TableMessage/TdMessage.tsx +11 -0
  412. package/src/Message/TableMessage/ThMessage.tsx +11 -0
  413. package/src/Message/TableMessage/TheadMessage.tsx +11 -0
  414. package/src/Message/TableMessage/TrMessage.tsx +27 -0
  415. package/src/Message/TextMessage/TextMessage.scss +21 -12
  416. package/src/Message/TextMessage/TextMessage.tsx +3 -3
  417. package/src/Message/UserFeedback/CloseButton.tsx +21 -0
  418. package/src/Message/UserFeedback/UserFeedback.scss +53 -0
  419. package/src/Message/UserFeedback/UserFeedback.test.tsx +236 -0
  420. package/src/Message/UserFeedback/UserFeedback.tsx +128 -0
  421. package/src/Message/UserFeedback/UserFeedbackComplete.test.tsx +255 -0
  422. package/src/Message/UserFeedback/UserFeedbackComplete.tsx +211 -0
  423. package/src/MessageBar/AttachButton.scss +19 -3
  424. package/src/MessageBar/AttachButton.tsx +3 -1
  425. package/src/MessageBar/MessageBar.scss +58 -24
  426. package/src/MessageBar/MessageBar.test.tsx +12 -4
  427. package/src/MessageBar/MessageBar.tsx +164 -65
  428. package/src/MessageBar/MicrophoneButton.scss +8 -8
  429. package/src/MessageBar/MicrophoneButton.tsx +1 -1
  430. package/src/MessageBar/SendButton.tsx +2 -0
  431. package/src/MessageBar/StopButton.scss +17 -3
  432. package/src/MessageBar/StopButton.tsx +2 -0
  433. package/src/MessageBox/JumpButton.scss +6 -6
  434. package/src/MessageBox/MessageBox.scss +1 -0
  435. package/src/MessageBox/MessageBox.test.tsx +26 -0
  436. package/src/PreviewAttachment/PreviewAttachment.test.tsx +51 -0
  437. package/src/ResponseActions/ResponseActionButton.tsx +14 -2
  438. package/src/ResponseActions/ResponseActions.scss +2 -2
  439. package/src/ResponseActions/ResponseActions.test.tsx +4 -2
  440. package/src/ResponseActions/ResponseActions.tsx +26 -2
  441. package/src/Settings/Settings.scss +2 -2
  442. package/src/Settings/SettingsForm.test.tsx +28 -0
  443. package/src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss +2 -2
  444. package/src/SourcesCard/SourcesCard.scss +9 -3
  445. package/src/TermsOfUse/TermsOfUse.scss +1 -1
  446. package/src/__mocks__/rehype-external-links.ts +3 -0
  447. package/src/__mocks__/rehype-sanitize.ts +3 -0
  448. package/src/__mocks__/rehype-unwrap-images.tsx +3 -0
  449. package/src/index.ts +6 -0
  450. package/src/main.scss +5 -6
  451. package/src/tracking/console_tracking_provider.ts +30 -0
  452. package/src/tracking/index.ts +3 -0
  453. package/src/tracking/posthog_tracking_provider.ts +42 -0
  454. package/src/tracking/segment_tracking_provider.ts +62 -0
  455. package/src/tracking/trackingProviderProxy.ts +28 -0
  456. package/src/tracking/tracking_api.ts +11 -0
  457. package/src/tracking/tracking_registry.ts +33 -0
  458. package/src/tracking/tracking_spi.ts +14 -0
  459. package/src/tracking/umami_tracking_provider.ts +54 -0
@@ -19,6 +19,8 @@ const Message_1 = __importDefault(require("./Message"));
19
19
  const user_event_1 = __importDefault(require("@testing-library/user-event"));
20
20
  const monitor_sampleapp_quickstart_1 = require("./QuickStarts/monitor-sampleapp-quickstart");
21
21
  const monitor_sampleapp_quickstart_with_image_1 = require("./QuickStarts/monitor-sampleapp-quickstart-with-image");
22
+ const rehype_external_links_1 = __importDefault(require("../__mocks__/rehype-external-links"));
23
+ const react_core_1 = require("@patternfly/react-core");
22
24
  const ALL_ACTIONS = [
23
25
  { label: /Good response/i },
24
26
  { label: /Bad response/i },
@@ -77,6 +79,74 @@ const ORDERED_LIST_WITH_CODE = `
77
79
 
78
80
  3. Item 3
79
81
  `;
82
+ const HEADING = `
83
+ # h1 Heading
84
+
85
+ ## h2 Heading
86
+
87
+ ### h3 Heading
88
+
89
+ #### h4 Heading
90
+
91
+ ##### h5 Heading
92
+
93
+ ###### h6 Heading
94
+ `;
95
+ const BLOCK_QUOTES = `> Blockquotes can also be nested...
96
+ >> ...by using additional greater-than signs (>) right next to each other...
97
+ > > > ...or with spaces between each sign.`;
98
+ const TABLE = `
99
+
100
+ | Column 1 | Column 2 |
101
+ |-|-|
102
+ | Cell 1 | Cell 2 |
103
+ | Cell 3 | Cell 4 |
104
+
105
+ `;
106
+ const ONE_COLUMN_TABLE = `
107
+
108
+ | Column 1 |
109
+ |-|
110
+ | Cell 1 |
111
+ | Cell 2 |
112
+
113
+ `;
114
+ const ONE_CELL_TABLE = `
115
+
116
+ | Column 1 |
117
+ |-|
118
+ | Cell 1 |
119
+
120
+ `;
121
+ const HEADERLESS_TABLE = `
122
+
123
+ | |
124
+ |-|
125
+ | Cell 1 |
126
+
127
+ `;
128
+ const CHILDLESS_TABLE = `
129
+
130
+ | Column 1 |
131
+ |-|
132
+ | |
133
+
134
+ `;
135
+ const EMPTY_TABLE = `
136
+
137
+ | |
138
+ |-|
139
+ | |
140
+
141
+ `;
142
+ const IMAGE = `![Multi-colored wavy lines on a black background](https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif)`;
143
+ const ERROR = {
144
+ title: 'Could not load chat',
145
+ children: 'Wait a few minutes and check your network settings. If the issue persists: ',
146
+ actionLinks: (react_1.default.createElement(react_1.default.Fragment, null,
147
+ react_1.default.createElement(react_core_1.AlertActionLink, { component: "a", href: "#" }, "Start a new chat"),
148
+ react_1.default.createElement(react_core_1.AlertActionLink, { component: "a", href: "#" }, "Contact support")))
149
+ };
80
150
  const checkListItemsRendered = () => {
81
151
  const items = ['Item 1', 'Item 2', 'Item 3'];
82
152
  expect(react_2.screen.getAllByRole('listitem')).toHaveLength(3);
@@ -86,6 +156,9 @@ const checkListItemsRendered = () => {
86
156
  });
87
157
  };
88
158
  describe('Message', () => {
159
+ beforeEach(() => {
160
+ jest.clearAllMocks();
161
+ });
89
162
  it('should render user messages correctly', () => {
90
163
  (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: "Hi" }));
91
164
  expect(react_2.screen.getByText('User')).toBeTruthy();
@@ -312,12 +385,16 @@ describe('Message', () => {
312
385
  (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: CODE_MESSAGE }));
313
386
  expect(react_2.screen.getByText('Here is some YAML code:')).toBeTruthy();
314
387
  expect(react_2.screen.getByRole('button', { name: 'Copy code button' })).toBeTruthy();
315
- expect(react_2.screen.getByText(/apiVersion: helm.openshift.io\/v1beta1/i)).toBeTruthy();
388
+ expect(react_2.screen.getByText(/yaml/)).toBeTruthy();
389
+ expect(react_2.screen.getByText(/apiVersion:/i)).toBeTruthy();
390
+ expect(react_2.screen.getByText(/helm.openshift.io\/v1beta1/i)).toBeTruthy();
316
391
  expect(react_2.screen.getByText(/metadata:/i)).toBeTruthy();
317
- expect(react_2.screen.getByText(/name: azure-sample-repo0oooo00ooo/i)).toBeTruthy();
392
+ expect(react_2.screen.getByText(/name:/i)).toBeTruthy();
393
+ expect(react_2.screen.getByText(/azure-sample-repo0oooo00ooo/i)).toBeTruthy();
318
394
  expect(react_2.screen.getByText(/spec/i)).toBeTruthy();
319
395
  expect(react_2.screen.getByText(/connectionConfig:/i)).toBeTruthy();
320
- expect(react_2.screen.getByText(/url: https:\/\/raw.githubusercontent.com\/Azure-Samples\/helm-charts\/master\/docs/i)).toBeTruthy();
396
+ expect(react_2.screen.getByText(/url:/i)).toBeTruthy();
397
+ expect(react_2.screen.getByText(/https:\/\/raw.githubusercontent.com\/Azure-Samples\/helm-charts\/master\/docs/i)).toBeTruthy();
321
398
  });
322
399
  it('can click copy code button', () => __awaiter(void 0, void 0, void 0, function* () {
323
400
  // need explicit setup since RTL stubs clipboard if you do this
@@ -383,4 +460,163 @@ describe('Message', () => {
383
460
  } }));
384
461
  expect(react_2.screen.getAllByRole('img')[1]).toHaveAttribute('src', 'test.png');
385
462
  }));
463
+ it('should handle block quote correctly', () => {
464
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: BLOCK_QUOTES }));
465
+ expect(react_2.screen.getByText(/Blockquotes can also be nested.../)).toBeTruthy();
466
+ expect(react_2.screen.getByText('...by using additional greater-than signs (>) right next to each other...')).toBeTruthy();
467
+ expect(react_2.screen.getByText(/...or with spaces between each sign./)).toBeTruthy();
468
+ });
469
+ it('should handle heading correctly', () => {
470
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: HEADING }));
471
+ expect(react_2.screen.getByRole('heading', { name: /h1 Heading/i })).toBeTruthy();
472
+ expect(react_2.screen.getByRole('heading', { name: /h2 Heading/i })).toBeTruthy();
473
+ expect(react_2.screen.getByRole('heading', { name: /h3 Heading/i })).toBeTruthy();
474
+ expect(react_2.screen.getByRole('heading', { name: /h4 Heading/i })).toBeTruthy();
475
+ expect(react_2.screen.getByRole('heading', { name: /h5 Heading/i })).toBeTruthy();
476
+ expect(react_2.screen.getByRole('heading', { name: /h6 Heading/i })).toBeTruthy();
477
+ });
478
+ it('should render table correctly', () => {
479
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: TABLE }));
480
+ expect(react_2.screen.getByRole('row', { name: /Column 1 Column 2/i })).toBeTruthy();
481
+ expect(react_2.screen.getByRole('row', { name: /Cell 1 Cell 2/i })).toBeTruthy();
482
+ expect(react_2.screen.getByRole('row', { name: /Cell 3 Cell 4/i })).toBeTruthy();
483
+ expect(react_2.screen.getByRole('columnheader', { name: /Column 1/i })).toBeTruthy();
484
+ expect(react_2.screen.getByRole('columnheader', { name: /Column 2/i })).toBeTruthy();
485
+ expect(react_2.screen.getByRole('cell', { name: /Cell 1/i })).toBeTruthy();
486
+ expect(react_2.screen.getByRole('cell', { name: /Cell 2/i })).toBeTruthy();
487
+ expect(react_2.screen.getByRole('cell', { name: /Cell 3/i })).toBeTruthy();
488
+ expect(react_2.screen.getByRole('cell', { name: /Cell 4/i })).toBeTruthy();
489
+ });
490
+ it('should render table data labels correctly for mobile breakpoint', () => {
491
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: TABLE }));
492
+ expect(react_2.screen.getByRole('row', { name: /Cell 1 Cell 2/i })).toHaveAttribute('extraHeaders', 'Column 1,Column 2');
493
+ expect(react_2.screen.getByRole('row', { name: /Cell 3 Cell 4/i })).toHaveAttribute('extraHeaders', 'Column 1,Column 2');
494
+ expect(react_2.screen.getByRole('cell', { name: /Cell 1/i })).toHaveAttribute('data-label', 'Column 1');
495
+ expect(react_2.screen.getByRole('cell', { name: /Cell 2/i })).toHaveAttribute('data-label', 'Column 2');
496
+ expect(react_2.screen.getByRole('cell', { name: /Cell 3/i })).toHaveAttribute('data-label', 'Column 1');
497
+ expect(react_2.screen.getByRole('cell', { name: /Cell 4/i })).toHaveAttribute('data-label', 'Column 2');
498
+ });
499
+ it('should render table data labels correctly for mobile breakpoint for one column table', () => {
500
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: ONE_COLUMN_TABLE }));
501
+ expect(react_2.screen.getByRole('row', { name: /Cell 1/i })).toHaveAttribute('extraHeaders', 'Column 1');
502
+ expect(react_2.screen.getByRole('row', { name: /Cell 2/i })).toHaveAttribute('extraHeaders', 'Column 1');
503
+ expect(react_2.screen.getByRole('cell', { name: /Cell 1/i })).toHaveAttribute('data-label', 'Column 1');
504
+ expect(react_2.screen.getByRole('cell', { name: /Cell 2/i })).toHaveAttribute('data-label', 'Column 1');
505
+ });
506
+ it('should render table data labels correctly for mobile breakpoint for one cell table', () => {
507
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: ONE_CELL_TABLE }));
508
+ expect(react_2.screen.getByRole('row', { name: /Cell 1/i })).toHaveAttribute('extraHeaders', 'Column 1');
509
+ expect(react_2.screen.getByRole('cell', { name: /Cell 1/i })).toHaveAttribute('data-label', 'Column 1');
510
+ });
511
+ it('should render table data labels correctly for mobile breakpoint for headerless', () => {
512
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: HEADERLESS_TABLE }));
513
+ expect(react_2.screen.getByRole('row', { name: /Cell 1/i })).toHaveAttribute('extraHeaders', '');
514
+ expect(react_2.screen.getByRole('cell', { name: /Cell 1/i })).not.toHaveAttribute('data-label');
515
+ });
516
+ it('should render table data labels correctly for mobile breakpoint for childless', () => {
517
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: CHILDLESS_TABLE }));
518
+ expect(react_2.screen.getByRole('cell')).not.toHaveAttribute('extraHeaders', 'Column 1');
519
+ });
520
+ it('should render table data labels correctly for mobile breakpoint for empty', () => {
521
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: EMPTY_TABLE }));
522
+ expect(react_2.screen.getByRole('cell')).not.toHaveAttribute('extraHeaders', '');
523
+ });
524
+ it('should render custom table aria label correctly', () => {
525
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: TABLE, tableProps: { 'aria-label': 'Test' } }));
526
+ expect(react_2.screen.getByRole('grid', { name: /Test/i })).toBeTruthy();
527
+ });
528
+ it('should render beforeMainContent with main content', () => {
529
+ const mainContent = 'Main message content';
530
+ const beforeMainContentText = 'Before main content';
531
+ const beforeMainContent = react_1.default.createElement("div", null, beforeMainContentText);
532
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: mainContent, extraContent: { beforeMainContent } }));
533
+ expect(react_2.screen.getByText(beforeMainContentText)).toBeTruthy();
534
+ expect(react_2.screen.getByText(mainContent)).toBeTruthy();
535
+ });
536
+ it('should render afterMainContent with main content', () => {
537
+ const mainContent = 'Main message content';
538
+ const afterMainContentText = 'After main content';
539
+ const afterMainContent = react_1.default.createElement("div", null, afterMainContentText);
540
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: mainContent, extraContent: { afterMainContent } }));
541
+ expect(react_2.screen.getByText(afterMainContentText)).toBeTruthy();
542
+ expect(react_2.screen.getByText(mainContent)).toBeTruthy();
543
+ });
544
+ it('should render endContent with main content', () => {
545
+ const mainContent = 'Main message content';
546
+ const endMainContentText = 'End content';
547
+ const endContent = react_1.default.createElement("div", null, endMainContentText);
548
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: mainContent, extraContent: { endContent } }));
549
+ expect(react_2.screen.getByText(endMainContentText)).toBeTruthy();
550
+ expect(react_2.screen.getByText(mainContent)).toBeTruthy();
551
+ });
552
+ it('should render all parts of extraContent with main content', () => {
553
+ const beforeMainContent = react_1.default.createElement("div", null, "Before main content");
554
+ const afterMainContent = react_1.default.createElement("div", null, "After main content");
555
+ const endContent = react_1.default.createElement("div", null, "End content");
556
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: "Main message content", extraContent: { beforeMainContent, afterMainContent, endContent } }));
557
+ expect(react_2.screen.getByText('Before main content')).toBeTruthy();
558
+ expect(react_2.screen.getByText('Main message content')).toBeTruthy();
559
+ expect(react_2.screen.getByText('After main content')).toBeTruthy();
560
+ expect(react_2.screen.getByText('End content')).toBeTruthy();
561
+ });
562
+ it('should not render extraContent when not provided', () => {
563
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: "Main message content" }));
564
+ // Ensure no extraContent is rendered
565
+ expect(react_2.screen.getByText('Main message content')).toBeTruthy();
566
+ expect(react_2.screen.queryByText('Before main content')).toBeFalsy();
567
+ expect(react_2.screen.queryByText('After main content')).toBeFalsy();
568
+ expect(react_2.screen.queryByText('end message content')).toBeFalsy();
569
+ });
570
+ it('should handle undefined or null values in extraContent gracefully', () => {
571
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: "Main message content", extraContent: { beforeMainContent: null, afterMainContent: undefined, endContent: null } }));
572
+ // Ensure that no extraContent is rendered if they are null or undefined
573
+ expect(react_2.screen.getByText('Main message content')).toBeTruthy();
574
+ expect(react_2.screen.queryByText('Before main content')).toBeFalsy();
575
+ expect(react_2.screen.queryByText('After main content')).toBeFalsy();
576
+ expect(react_2.screen.queryByText('end message content')).toBeFalsy();
577
+ });
578
+ it('should render JSX in extraContent correctly', () => {
579
+ const beforeMainContent = (react_1.default.createElement("div", { "data-testid": "before-main-content" },
580
+ react_1.default.createElement("strong", null, "Bold before content")));
581
+ const afterMainContent = (react_1.default.createElement("div", { "data-testid": "after-main-content" },
582
+ react_1.default.createElement("strong", null, "Bold after content")));
583
+ const endContent = (react_1.default.createElement("div", { "data-testid": "end-main-content" },
584
+ react_1.default.createElement("strong", null, "Bold end content")));
585
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: "Main message content", extraContent: { beforeMainContent, afterMainContent, endContent } }));
586
+ // Check that the JSX is correctly rendered
587
+ expect(react_2.screen.getByTestId('before-main-content')).toContainHTML('<strong>Bold before content</strong>');
588
+ expect(react_2.screen.getByTestId('after-main-content')).toContainHTML('<strong>Bold after content</strong>');
589
+ expect(react_2.screen.getByTestId('end-main-content')).toContainHTML('<strong>Bold end content</strong>');
590
+ });
591
+ it('should handle image correctly', () => {
592
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: IMAGE }));
593
+ expect(react_2.screen.getByRole('img', { name: /Multi-colored wavy lines on a black background/i })).toBeTruthy();
594
+ });
595
+ it('should handle external links correctly', () => {
596
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: `[PatternFly](https://www.patternfly.org/)` }));
597
+ // we are mocking rehype libraries, so we can't test target _blank addition on links directly with RTL
598
+ expect(rehype_external_links_1.default).toHaveBeenCalledTimes(1);
599
+ });
600
+ it('should handle external links correctly', () => {
601
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", content: `[PatternFly](https://www.patternfly.org/)`, openLinkInNewTab: false }));
602
+ // we are mocking rehype libraries, so we can't test target _blank addition on links directly with RTL
603
+ expect(rehype_external_links_1.default).not.toHaveBeenCalled();
604
+ });
605
+ it('should handle error correctly', () => {
606
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", error: ERROR }));
607
+ expect(react_2.screen.getByRole('heading', { name: /Could not load chat/i })).toBeTruthy();
608
+ expect(react_2.screen.getByRole('link', { name: /Start a new chat/i })).toBeTruthy();
609
+ expect(react_2.screen.getByRole('link', { name: /Contact support/i })).toBeTruthy();
610
+ expect(react_2.screen.getByText('Wait a few minutes and check your network settings. If the issue persists:')).toBeTruthy();
611
+ });
612
+ it('should handle error correctly when loading', () => {
613
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", error: ERROR, isLoading: true }));
614
+ expect(react_2.screen.queryByRole('heading', { name: /Could not load chat/i })).toBeFalsy();
615
+ expect(react_2.screen.getByText('Loading message')).toBeTruthy();
616
+ });
617
+ it('should handle error correctly when these is content', () => {
618
+ (0, react_2.render)(react_1.default.createElement(Message_1.default, { avatar: "./img", role: "user", name: "User", error: ERROR, content: "Test" }));
619
+ expect(react_2.screen.getByRole('heading', { name: /Could not load chat/i })).toBeTruthy();
620
+ expect(react_2.screen.queryByText('Test')).toBeFalsy();
621
+ });
386
622
  });
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { LabelGroupProps, LabelProps } from '@patternfly/react-core';
3
+ export interface QuickResponse extends Omit<LabelProps, 'children'> {
4
+ content: string;
5
+ id: string;
6
+ onClick?: () => void;
7
+ }
8
+ export interface QuickResponseProps {
9
+ /** Props for quick responses */
10
+ quickResponses: QuickResponse[];
11
+ /** Props for quick responses container */
12
+ quickResponseContainerProps?: Omit<LabelGroupProps, 'ref'>;
13
+ /** Callback when a response is clicked; used in feedback cards */
14
+ onSelect?: (id: string) => void;
15
+ }
16
+ export declare const QuickResponse: React.FunctionComponent<QuickResponseProps>;
17
+ export default QuickResponse;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.QuickResponse = void 0;
18
+ const react_1 = __importDefault(require("react"));
19
+ const react_core_1 = require("@patternfly/react-core");
20
+ const react_icons_1 = require("@patternfly/react-icons");
21
+ const QuickResponse = ({ quickResponses, quickResponseContainerProps = { numLabels: 5 }, onSelect }) => {
22
+ const [selectedQuickResponse, setSelectedQuickResponse] = react_1.default.useState();
23
+ const handleQuickResponseClick = (id, onClick) => {
24
+ setSelectedQuickResponse(id);
25
+ onClick && onClick();
26
+ onSelect && onSelect(id);
27
+ };
28
+ return (react_1.default.createElement(react_core_1.LabelGroup, Object.assign({ className: `pf-chatbot__message-quick-response ${(quickResponseContainerProps === null || quickResponseContainerProps === void 0 ? void 0 : quickResponseContainerProps.className) ? quickResponseContainerProps === null || quickResponseContainerProps === void 0 ? void 0 : quickResponseContainerProps.className : ''}` }, quickResponseContainerProps), quickResponses.map((_a) => {
29
+ var { id, onClick, content, className } = _a, props = __rest(_a, ["id", "onClick", "content", "className"]);
30
+ return (react_1.default.createElement(react_core_1.Label, Object.assign({ variant: id === selectedQuickResponse ? undefined : 'outline', icon: id === selectedQuickResponse ? react_1.default.createElement(react_icons_1.CheckIcon, null) : undefined, color: "blue", key: id, onClick: () => handleQuickResponseClick(id, onClick), className: `${id === selectedQuickResponse ? 'pf-chatbot__message-quick-response--selected' : ''} ${className ? className : ''}` }, props), content));
31
+ })));
32
+ };
33
+ exports.QuickResponse = QuickResponse;
34
+ exports.default = exports.QuickResponse;
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { ExtraProps } from 'react-markdown';
3
+ import { TableProps } from '@patternfly/react-table';
4
+ interface Properties {
5
+ line: number;
6
+ column: number;
7
+ offset: number;
8
+ }
9
+ export interface TableNode {
10
+ children?: TableNode[];
11
+ value?: string;
12
+ position: {
13
+ start: Properties;
14
+ end: Properties;
15
+ };
16
+ tagName: string;
17
+ type: string;
18
+ }
19
+ declare const TableMessage: ({ children, ...props }: TableProps & ExtraProps) => React.JSX.Element;
20
+ export default TableMessage;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ // ============================================================================
3
+ // Chatbot Main - Message - Content - Table
4
+ // ============================================================================
5
+ var __rest = (this && this.__rest) || function (s, e) {
6
+ var t = {};
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
8
+ t[p] = s[p];
9
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
10
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
11
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12
+ t[p[i]] = s[p[i]];
13
+ }
14
+ return t;
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ const react_1 = __importDefault(require("react"));
21
+ const react_table_1 = require("@patternfly/react-table");
22
+ const TableMessage = (_a) => {
23
+ var _b;
24
+ var { children } = _a, props = __rest(_a, ["children"]);
25
+ const { className } = props, rest = __rest(props, ["className"]);
26
+ // This allows us to parse the nested data we get back from the 3rd party Markdown parser
27
+ // Open to feedback here if there is a better way to do this
28
+ // This looks for ths and spits them all out so we can filter them later, looking for text values
29
+ const findHeaders = (array) => {
30
+ const headers = [];
31
+ if (!array) {
32
+ return headers;
33
+ }
34
+ const traverse = (items) => {
35
+ for (const item of items) {
36
+ if (item.tagName === 'th') {
37
+ headers.push(item);
38
+ }
39
+ if (item.children) {
40
+ traverse(item.children);
41
+ }
42
+ }
43
+ };
44
+ traverse(array);
45
+ return headers;
46
+ };
47
+ const headers = findHeaders((_b = rest.node) === null || _b === void 0 ? void 0 : _b.children);
48
+ const headerTextValues = headers.map((header) => { var _a, _b; return (_b = (_a = header === null || header === void 0 ? void 0 : header.children) === null || _a === void 0 ? void 0 : _a.filter((c) => (c === null || c === void 0 ? void 0 : c.type) === 'text')[0]) === null || _b === void 0 ? void 0 : _b.value; });
49
+ // We are sending these header text values down to child tds by passing them through children, since mobile view for tables expects a dataLabel prop
50
+ // The data structure does not otherwise know this information at that level
51
+ // This is somewhat opinionated and may break if 3rd party library changes
52
+ // See Tr and Tbody for other usage
53
+ const modifyChildren = (children) => react_1.default.Children.map(children, (child) => {
54
+ if (child && (headerTextValues === null || headerTextValues === void 0 ? void 0 : headerTextValues.length) > 0) {
55
+ return react_1.default.cloneElement(child, { extraHeaders: headerTextValues });
56
+ }
57
+ return child;
58
+ });
59
+ if (!props['aria-label']) {
60
+ // eslint-disable-next-line no-console
61
+ console.warn('For accessibility reasons an aria-label should be specified for the Table via the <Message /> tableProps prop');
62
+ }
63
+ return (
64
+ // gridBreakPoint is so we show mobile-styled-PF table
65
+ react_1.default.createElement(react_table_1.Table, Object.assign({ "aria-label": props['aria-label'], gridBreakPoint: "grid", className: `pf-chatbot__message-table ${className ? className : ''}` }, rest), modifyChildren(children)));
66
+ };
67
+ exports.default = TableMessage;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { ExtraProps } from 'react-markdown';
3
+ import { TbodyProps } from '@patternfly/react-table';
4
+ declare const TbodyProps: ({ children, ...props }: TbodyProps & ExtraProps & {
5
+ extraHeaders?: string[];
6
+ }) => React.JSX.Element;
7
+ export default TbodyProps;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ // ============================================================================
3
+ // Chatbot Main - Message - Content - Table
4
+ // ============================================================================
5
+ var __rest = (this && this.__rest) || function (s, e) {
6
+ var t = {};
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
8
+ t[p] = s[p];
9
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
10
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
11
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12
+ t[p[i]] = s[p[i]];
13
+ }
14
+ return t;
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ const react_1 = __importDefault(require("react"));
21
+ const react_table_1 = require("@patternfly/react-table");
22
+ const TbodyProps = (_a) => {
23
+ var { children } = _a, props = __rest(_a, ["children"]);
24
+ // passthrough so we can place dataLabel on tds
25
+ const modifyChildren = (children) => {
26
+ if (children && props.extraHeaders) {
27
+ return react_1.default.Children.map(children, (child) => react_1.default.cloneElement(child, { extraHeaders: props.extraHeaders }));
28
+ }
29
+ return children;
30
+ };
31
+ return react_1.default.createElement(react_table_1.Tbody, Object.assign({}, props), modifyChildren(children));
32
+ };
33
+ exports.default = TbodyProps;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { ExtraProps } from 'react-markdown';
3
+ import { TdProps } from '@patternfly/react-table';
4
+ declare const TdMessage: ({ children, ...props }: TdProps & ExtraProps) => React.JSX.Element;
5
+ export default TdMessage;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ // ============================================================================
3
+ // Chatbot Main - Message - Content - Table
4
+ // ============================================================================
5
+ var __rest = (this && this.__rest) || function (s, e) {
6
+ var t = {};
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
8
+ t[p] = s[p];
9
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
10
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
11
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12
+ t[p[i]] = s[p[i]];
13
+ }
14
+ return t;
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ const react_1 = __importDefault(require("react"));
21
+ const react_table_1 = require("@patternfly/react-table");
22
+ const TdMessage = (_a) => {
23
+ var { children } = _a, props = __rest(_a, ["children"]);
24
+ return react_1.default.createElement(react_table_1.Td, Object.assign({}, props), children);
25
+ };
26
+ exports.default = TdMessage;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { ExtraProps } from 'react-markdown';
3
+ import { ThProps } from '@patternfly/react-table';
4
+ declare const ThMessage: ({ children, ...props }: ThProps & ExtraProps) => React.JSX.Element;
5
+ export default ThMessage;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ // ============================================================================
3
+ // Chatbot Main - Message - Content - Table
4
+ // ============================================================================
5
+ var __rest = (this && this.__rest) || function (s, e) {
6
+ var t = {};
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
8
+ t[p] = s[p];
9
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
10
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
11
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12
+ t[p[i]] = s[p[i]];
13
+ }
14
+ return t;
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ const react_1 = __importDefault(require("react"));
21
+ const react_table_1 = require("@patternfly/react-table");
22
+ const ThMessage = (_a) => {
23
+ var { children } = _a, props = __rest(_a, ["children"]);
24
+ return react_1.default.createElement(react_table_1.Th, Object.assign({}, props), children);
25
+ };
26
+ exports.default = ThMessage;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { ExtraProps } from 'react-markdown';
3
+ import { TheadProps } from '@patternfly/react-table';
4
+ declare const TheadMessage: ({ children, ...props }: TheadProps & ExtraProps) => React.JSX.Element;
5
+ export default TheadMessage;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ // ============================================================================
3
+ // Chatbot Main - Message - Content - Table
4
+ // ============================================================================
5
+ var __rest = (this && this.__rest) || function (s, e) {
6
+ var t = {};
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
8
+ t[p] = s[p];
9
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
10
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
11
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12
+ t[p[i]] = s[p[i]];
13
+ }
14
+ return t;
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ const react_1 = __importDefault(require("react"));
21
+ const react_table_1 = require("@patternfly/react-table");
22
+ const TheadMessage = (_a) => {
23
+ var { children } = _a, props = __rest(_a, ["children"]);
24
+ return react_1.default.createElement(react_table_1.Thead, Object.assign({}, props), children);
25
+ };
26
+ exports.default = TheadMessage;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { ExtraProps } from 'react-markdown';
3
+ import { TrProps } from '@patternfly/react-table';
4
+ declare const TrMessage: ({ children, ...props }: TrProps & ExtraProps & {
5
+ extraHeaders?: string[];
6
+ }) => React.JSX.Element;
7
+ export default TrMessage;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ // ============================================================================
3
+ // Chatbot Main - Message - Content - Table
4
+ // ============================================================================
5
+ var __rest = (this && this.__rest) || function (s, e) {
6
+ var t = {};
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
8
+ t[p] = s[p];
9
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
10
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
11
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
12
+ t[p[i]] = s[p[i]];
13
+ }
14
+ return t;
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ const react_1 = __importDefault(require("react"));
21
+ const react_table_1 = require("@patternfly/react-table");
22
+ const TrMessage = (_a) => {
23
+ var { children } = _a, props = __rest(_a, ["children"]);
24
+ let tdIndex = 0;
25
+ // passthrough so we can place dataLabel on tds
26
+ // places column name on correct child
27
+ const modifyChildren = (children) => react_1.default.Children.map(children, (child) => {
28
+ if (child.type.name === 'td' && props.extraHeaders) {
29
+ const clonedChild = react_1.default.cloneElement(child, { dataLabel: props.extraHeaders[tdIndex] });
30
+ tdIndex = tdIndex + 1;
31
+ return clonedChild;
32
+ }
33
+ return child;
34
+ });
35
+ return react_1.default.createElement(react_table_1.Tr, Object.assign({}, props), modifyChildren(children));
36
+ };
37
+ exports.default = TrMessage;
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
2
  import { ExtraProps } from 'react-markdown';
3
- declare const TextMessage: ({ children, ...props }: JSX.IntrinsicElements["p"] & ExtraProps) => React.JSX.Element;
3
+ import { ContentProps } from '@patternfly/react-core';
4
+ declare const TextMessage: ({ component, children, ...props }: ContentProps & ExtraProps) => React.JSX.Element;
4
5
  export default TextMessage;
@@ -20,8 +20,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
20
20
  const react_1 = __importDefault(require("react"));
21
21
  const react_core_1 = require("@patternfly/react-core");
22
22
  const TextMessage = (_a) => {
23
- var { children } = _a, props = __rest(_a, ["children"]);
23
+ var { component, children } = _a, props = __rest(_a, ["component", "children"]);
24
24
  return (react_1.default.createElement("span", { className: "pf-chatbot__message-text" },
25
- react_1.default.createElement(react_core_1.Content, Object.assign({ component: react_core_1.ContentVariants.p }, props), children)));
25
+ react_1.default.createElement(react_core_1.Content, Object.assign({ component: component }, props), children)));
26
26
  };
27
27
  exports.default = TextMessage;