@patternfly/chatbot 2.1.0-prerelease.17

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 (534) hide show
  1. package/@types/index.d.ts +9 -0
  2. package/dist/cjs/AttachMenu/AttachMenu.d.ts +29 -0
  3. package/dist/cjs/AttachMenu/AttachMenu.js +33 -0
  4. package/dist/cjs/AttachMenu/index.d.ts +2 -0
  5. package/dist/cjs/AttachMenu/index.js +23 -0
  6. package/dist/cjs/AttachmentEdit/AttachmentEdit.d.ts +22 -0
  7. package/dist/cjs/AttachmentEdit/AttachmentEdit.js +25 -0
  8. package/dist/cjs/AttachmentEdit/index.d.ts +2 -0
  9. package/dist/cjs/AttachmentEdit/index.js +23 -0
  10. package/dist/cjs/Chatbot/Chatbot.d.ts +23 -0
  11. package/dist/cjs/Chatbot/Chatbot.js +49 -0
  12. package/dist/cjs/Chatbot/index.d.ts +2 -0
  13. package/dist/cjs/Chatbot/index.js +23 -0
  14. package/dist/cjs/ChatbotAlert/ChatbotAlert.d.ts +8 -0
  15. package/dist/cjs/ChatbotAlert/ChatbotAlert.js +28 -0
  16. package/dist/cjs/ChatbotAlert/index.d.ts +2 -0
  17. package/dist/cjs/ChatbotAlert/index.js +23 -0
  18. package/dist/cjs/ChatbotContent/ChatbotContent.d.ts +9 -0
  19. package/dist/cjs/ChatbotContent/ChatbotContent.js +27 -0
  20. package/dist/cjs/ChatbotContent/index.d.ts +2 -0
  21. package/dist/cjs/ChatbotContent/index.js +23 -0
  22. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +14 -0
  23. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +22 -0
  24. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +52 -0
  25. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +83 -0
  26. package/dist/cjs/ChatbotConversationHistoryNav/index.d.ts +3 -0
  27. package/dist/cjs/ChatbotConversationHistoryNav/index.js +24 -0
  28. package/dist/cjs/ChatbotFooter/ChatbotFooter.d.ts +9 -0
  29. package/dist/cjs/ChatbotFooter/ChatbotFooter.js +35 -0
  30. package/dist/cjs/ChatbotFooter/ChatbotFootnote.d.ts +44 -0
  31. package/dist/cjs/ChatbotFooter/ChatbotFootnote.js +56 -0
  32. package/dist/cjs/ChatbotFooter/index.d.ts +3 -0
  33. package/dist/cjs/ChatbotFooter/index.js +24 -0
  34. package/dist/cjs/ChatbotHeader/ChatbotHeader.d.ts +9 -0
  35. package/dist/cjs/ChatbotHeader/ChatbotHeader.js +13 -0
  36. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.d.ts +9 -0
  37. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.js +10 -0
  38. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.d.ts +9 -0
  39. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.js +10 -0
  40. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.d.ts +15 -0
  41. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +14 -0
  42. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +14 -0
  43. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +33 -0
  44. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +18 -0
  45. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +33 -0
  46. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.d.ts +20 -0
  47. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.js +33 -0
  48. package/dist/cjs/ChatbotHeader/index.d.ts +8 -0
  49. package/dist/cjs/ChatbotHeader/index.js +29 -0
  50. package/dist/cjs/ChatbotModal/ChatbotModal.d.ts +10 -0
  51. package/dist/cjs/ChatbotModal/ChatbotModal.js +34 -0
  52. package/dist/cjs/ChatbotModal/index.d.ts +2 -0
  53. package/dist/cjs/ChatbotModal/index.js +23 -0
  54. package/dist/cjs/ChatbotPopover/ChatbotPopover.d.ts +4 -0
  55. package/dist/cjs/ChatbotPopover/ChatbotPopover.js +29 -0
  56. package/dist/cjs/ChatbotPopover/index.d.ts +2 -0
  57. package/dist/cjs/ChatbotPopover/index.js +23 -0
  58. package/dist/cjs/ChatbotToggle/ChatbotToggle.d.ts +20 -0
  59. package/dist/cjs/ChatbotToggle/ChatbotToggle.js +35 -0
  60. package/dist/cjs/ChatbotToggle/index.d.ts +2 -0
  61. package/dist/cjs/ChatbotToggle/index.js +23 -0
  62. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +23 -0
  63. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +40 -0
  64. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.d.ts +1 -0
  65. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +49 -0
  66. package/dist/cjs/ChatbotWelcomePrompt/index.d.ts +2 -0
  67. package/dist/cjs/ChatbotWelcomePrompt/index.js +23 -0
  68. package/dist/cjs/CodeModal/CodeModal.d.ts +34 -0
  69. package/dist/cjs/CodeModal/CodeModal.js +105 -0
  70. package/dist/cjs/CodeModal/index.d.ts +2 -0
  71. package/dist/cjs/CodeModal/index.js +23 -0
  72. package/dist/cjs/FileDetails/FileDetails.d.ts +922 -0
  73. package/dist/cjs/FileDetails/FileDetails.js +954 -0
  74. package/dist/cjs/FileDetails/FileDetails.test.d.ts +1 -0
  75. package/dist/cjs/FileDetails/FileDetails.test.js +26 -0
  76. package/dist/cjs/FileDetails/index.d.ts +2 -0
  77. package/dist/cjs/FileDetails/index.js +23 -0
  78. package/dist/cjs/FileDetailsLabel/FileDetailsLabel.d.ts +21 -0
  79. package/dist/cjs/FileDetailsLabel/FileDetailsLabel.js +22 -0
  80. package/dist/cjs/FileDetailsLabel/FileDetailsLabel.test.d.ts +1 -0
  81. package/dist/cjs/FileDetailsLabel/FileDetailsLabel.test.js +61 -0
  82. package/dist/cjs/FileDetailsLabel/index.d.ts +2 -0
  83. package/dist/cjs/FileDetailsLabel/index.js +23 -0
  84. package/dist/cjs/FileDropZone/FileDropZone.d.ts +17 -0
  85. package/dist/cjs/FileDropZone/FileDropZone.js +28 -0
  86. package/dist/cjs/FileDropZone/FileDropZone.test.d.ts +1 -0
  87. package/dist/cjs/FileDropZone/FileDropZone.test.js +19 -0
  88. package/dist/cjs/FileDropZone/index.d.ts +2 -0
  89. package/dist/cjs/FileDropZone/index.js +23 -0
  90. package/dist/cjs/LoadingMessage/LoadingMessage.d.ts +6 -0
  91. package/dist/cjs/LoadingMessage/LoadingMessage.js +20 -0
  92. package/dist/cjs/LoadingMessage/LoadingMessage.test.d.ts +1 -0
  93. package/dist/cjs/LoadingMessage/LoadingMessage.test.js +20 -0
  94. package/dist/cjs/LoadingMessage/index.d.ts +2 -0
  95. package/dist/cjs/LoadingMessage/index.js +23 -0
  96. package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.d.ts +4 -0
  97. package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.js +61 -0
  98. package/dist/cjs/Message/ListMessage/ListItemMessage.d.ts +4 -0
  99. package/dist/cjs/Message/ListMessage/ListItemMessage.js +12 -0
  100. package/dist/cjs/Message/ListMessage/OrderedListMessage.d.ts +4 -0
  101. package/dist/cjs/Message/ListMessage/OrderedListMessage.js +13 -0
  102. package/dist/cjs/Message/ListMessage/UnorderedListMessage.d.ts +4 -0
  103. package/dist/cjs/Message/ListMessage/UnorderedListMessage.js +13 -0
  104. package/dist/cjs/Message/Message.d.ts +65 -0
  105. package/dist/cjs/Message/Message.js +69 -0
  106. package/dist/cjs/Message/Message.test.d.ts +1 -0
  107. package/dist/cjs/Message/Message.test.js +239 -0
  108. package/dist/cjs/Message/MessageLoading.d.ts +5 -0
  109. package/dist/cjs/Message/MessageLoading.js +13 -0
  110. package/dist/cjs/Message/TextMessage/TextMessage.d.ts +4 -0
  111. package/dist/cjs/Message/TextMessage/TextMessage.js +27 -0
  112. package/dist/cjs/Message/index.d.ts +2 -0
  113. package/dist/cjs/Message/index.js +23 -0
  114. package/dist/cjs/MessageBar/AttachButton.d.ts +21 -0
  115. package/dist/cjs/MessageBar/AttachButton.js +38 -0
  116. package/dist/cjs/MessageBar/AttachButton.test.d.ts +1 -0
  117. package/dist/cjs/MessageBar/AttachButton.test.js +66 -0
  118. package/dist/cjs/MessageBar/MessageBar.d.ts +71 -0
  119. package/dist/cjs/MessageBar/MessageBar.js +112 -0
  120. package/dist/cjs/MessageBar/MessageBar.test.d.ts +1 -0
  121. package/dist/cjs/MessageBar/MessageBar.test.js +237 -0
  122. package/dist/cjs/MessageBar/MicrophoneButton.d.ts +21 -0
  123. package/dist/cjs/MessageBar/MicrophoneButton.js +74 -0
  124. package/dist/cjs/MessageBar/SendButton.d.ts +14 -0
  125. package/dist/cjs/MessageBar/SendButton.js +32 -0
  126. package/dist/cjs/MessageBar/SendButton.test.d.ts +1 -0
  127. package/dist/cjs/MessageBar/SendButton.test.js +54 -0
  128. package/dist/cjs/MessageBar/StopButton.d.ts +14 -0
  129. package/dist/cjs/MessageBar/StopButton.js +32 -0
  130. package/dist/cjs/MessageBar/StopButton.test.d.ts +1 -0
  131. package/dist/cjs/MessageBar/StopButton.test.js +54 -0
  132. package/dist/cjs/MessageBar/index.d.ts +5 -0
  133. package/dist/cjs/MessageBar/index.js +26 -0
  134. package/dist/cjs/MessageBox/JumpButton.d.ts +11 -0
  135. package/dist/cjs/MessageBox/JumpButton.js +17 -0
  136. package/dist/cjs/MessageBox/JumpButton.test.d.ts +1 -0
  137. package/dist/cjs/MessageBox/JumpButton.test.js +39 -0
  138. package/dist/cjs/MessageBox/MessageBox.d.ts +17 -0
  139. package/dist/cjs/MessageBox/MessageBox.js +74 -0
  140. package/dist/cjs/MessageBox/index.d.ts +3 -0
  141. package/dist/cjs/MessageBox/index.js +24 -0
  142. package/dist/cjs/PreviewAttachment/PreviewAttachment.d.ts +22 -0
  143. package/dist/cjs/PreviewAttachment/PreviewAttachment.js +25 -0
  144. package/dist/cjs/PreviewAttachment/index.d.ts +2 -0
  145. package/dist/cjs/PreviewAttachment/index.js +23 -0
  146. package/dist/cjs/ResponseActions/ResponseActionButton.d.ts +20 -0
  147. package/dist/cjs/ResponseActions/ResponseActionButton.js +12 -0
  148. package/dist/cjs/ResponseActions/ResponseActions.d.ts +30 -0
  149. package/dist/cjs/ResponseActions/ResponseActions.js +36 -0
  150. package/dist/cjs/ResponseActions/ResponseActions.test.d.ts +1 -0
  151. package/dist/cjs/ResponseActions/ResponseActions.test.js +67 -0
  152. package/dist/cjs/ResponseActions/index.d.ts +2 -0
  153. package/dist/cjs/ResponseActions/index.js +23 -0
  154. package/dist/cjs/SourceDetailsMenuItem/SourceDetailsMenuItem.d.ts +11 -0
  155. package/dist/cjs/SourceDetailsMenuItem/SourceDetailsMenuItem.js +31 -0
  156. package/dist/cjs/SourceDetailsMenuItem/index.d.ts +2 -0
  157. package/dist/cjs/SourceDetailsMenuItem/index.js +23 -0
  158. package/dist/cjs/SourcesCard/SourcesCard.d.ts +34 -0
  159. package/dist/cjs/SourcesCard/SourcesCard.js +68 -0
  160. package/dist/cjs/SourcesCard/SourcesCard.test.d.ts +1 -0
  161. package/dist/cjs/SourcesCard/SourcesCard.test.js +167 -0
  162. package/dist/cjs/SourcesCard/index.d.ts +2 -0
  163. package/dist/cjs/SourcesCard/index.js +23 -0
  164. package/dist/cjs/index.d.ts +48 -0
  165. package/dist/cjs/index.js +93 -0
  166. package/dist/css/main.css +1583 -0
  167. package/dist/css/main.css.map +1 -0
  168. package/dist/dynamic/AttachMenu/package.json +1 -0
  169. package/dist/dynamic/AttachmentEdit/package.json +1 -0
  170. package/dist/dynamic/Chatbot/package.json +1 -0
  171. package/dist/dynamic/ChatbotAlert/package.json +1 -0
  172. package/dist/dynamic/ChatbotContent/package.json +1 -0
  173. package/dist/dynamic/ChatbotConversationHistoryNav/package.json +1 -0
  174. package/dist/dynamic/ChatbotFooter/package.json +1 -0
  175. package/dist/dynamic/ChatbotHeader/package.json +1 -0
  176. package/dist/dynamic/ChatbotModal/package.json +1 -0
  177. package/dist/dynamic/ChatbotPopover/package.json +1 -0
  178. package/dist/dynamic/ChatbotToggle/package.json +1 -0
  179. package/dist/dynamic/ChatbotWelcomePrompt/package.json +1 -0
  180. package/dist/dynamic/CodeModal/package.json +1 -0
  181. package/dist/dynamic/FileDetails/package.json +1 -0
  182. package/dist/dynamic/FileDetailsLabel/package.json +1 -0
  183. package/dist/dynamic/FileDropZone/package.json +1 -0
  184. package/dist/dynamic/LoadingMessage/package.json +1 -0
  185. package/dist/dynamic/Message/package.json +1 -0
  186. package/dist/dynamic/MessageBar/package.json +1 -0
  187. package/dist/dynamic/MessageBox/package.json +1 -0
  188. package/dist/dynamic/PreviewAttachment/package.json +1 -0
  189. package/dist/dynamic/ResponseActions/package.json +1 -0
  190. package/dist/dynamic/SourceDetailsMenuItem/package.json +1 -0
  191. package/dist/dynamic/SourcesCard/package.json +1 -0
  192. package/dist/esm/AttachMenu/AttachMenu.d.ts +29 -0
  193. package/dist/esm/AttachMenu/AttachMenu.js +26 -0
  194. package/dist/esm/AttachMenu/index.d.ts +2 -0
  195. package/dist/esm/AttachMenu/index.js +2 -0
  196. package/dist/esm/AttachmentEdit/AttachmentEdit.d.ts +22 -0
  197. package/dist/esm/AttachmentEdit/AttachmentEdit.js +18 -0
  198. package/dist/esm/AttachmentEdit/index.d.ts +2 -0
  199. package/dist/esm/AttachmentEdit/index.js +2 -0
  200. package/dist/esm/Chatbot/Chatbot.d.ts +23 -0
  201. package/dist/esm/Chatbot/Chatbot.js +43 -0
  202. package/dist/esm/Chatbot/index.d.ts +2 -0
  203. package/dist/esm/Chatbot/index.js +2 -0
  204. package/dist/esm/ChatbotAlert/ChatbotAlert.d.ts +8 -0
  205. package/dist/esm/ChatbotAlert/ChatbotAlert.js +21 -0
  206. package/dist/esm/ChatbotAlert/index.d.ts +2 -0
  207. package/dist/esm/ChatbotAlert/index.js +2 -0
  208. package/dist/esm/ChatbotContent/ChatbotContent.d.ts +9 -0
  209. package/dist/esm/ChatbotContent/ChatbotContent.js +20 -0
  210. package/dist/esm/ChatbotContent/index.d.ts +2 -0
  211. package/dist/esm/ChatbotContent/index.js +2 -0
  212. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.d.ts +14 -0
  213. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +15 -0
  214. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +52 -0
  215. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +76 -0
  216. package/dist/esm/ChatbotConversationHistoryNav/index.d.ts +3 -0
  217. package/dist/esm/ChatbotConversationHistoryNav/index.js +3 -0
  218. package/dist/esm/ChatbotFooter/ChatbotFooter.d.ts +9 -0
  219. package/dist/esm/ChatbotFooter/ChatbotFooter.js +28 -0
  220. package/dist/esm/ChatbotFooter/ChatbotFootnote.d.ts +44 -0
  221. package/dist/esm/ChatbotFooter/ChatbotFootnote.js +49 -0
  222. package/dist/esm/ChatbotFooter/index.d.ts +3 -0
  223. package/dist/esm/ChatbotFooter/index.js +3 -0
  224. package/dist/esm/ChatbotHeader/ChatbotHeader.d.ts +9 -0
  225. package/dist/esm/ChatbotHeader/ChatbotHeader.js +6 -0
  226. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.d.ts +9 -0
  227. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.js +3 -0
  228. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.d.ts +9 -0
  229. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.js +3 -0
  230. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.d.ts +15 -0
  231. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +8 -0
  232. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +14 -0
  233. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +26 -0
  234. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +18 -0
  235. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +26 -0
  236. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.d.ts +20 -0
  237. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.js +26 -0
  238. package/dist/esm/ChatbotHeader/index.d.ts +8 -0
  239. package/dist/esm/ChatbotHeader/index.js +8 -0
  240. package/dist/esm/ChatbotModal/ChatbotModal.d.ts +10 -0
  241. package/dist/esm/ChatbotModal/ChatbotModal.js +27 -0
  242. package/dist/esm/ChatbotModal/index.d.ts +2 -0
  243. package/dist/esm/ChatbotModal/index.js +2 -0
  244. package/dist/esm/ChatbotPopover/ChatbotPopover.d.ts +4 -0
  245. package/dist/esm/ChatbotPopover/ChatbotPopover.js +22 -0
  246. package/dist/esm/ChatbotPopover/index.d.ts +2 -0
  247. package/dist/esm/ChatbotPopover/index.js +2 -0
  248. package/dist/esm/ChatbotToggle/ChatbotToggle.d.ts +20 -0
  249. package/dist/esm/ChatbotToggle/ChatbotToggle.js +30 -0
  250. package/dist/esm/ChatbotToggle/index.d.ts +2 -0
  251. package/dist/esm/ChatbotToggle/index.js +2 -0
  252. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +23 -0
  253. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +33 -0
  254. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.d.ts +1 -0
  255. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +44 -0
  256. package/dist/esm/ChatbotWelcomePrompt/index.d.ts +2 -0
  257. package/dist/esm/ChatbotWelcomePrompt/index.js +2 -0
  258. package/dist/esm/CodeModal/CodeModal.d.ts +34 -0
  259. package/dist/esm/CodeModal/CodeModal.js +75 -0
  260. package/dist/esm/CodeModal/index.d.ts +2 -0
  261. package/dist/esm/CodeModal/index.js +2 -0
  262. package/dist/esm/FileDetails/FileDetails.d.ts +922 -0
  263. package/dist/esm/FileDetails/FileDetails.js +947 -0
  264. package/dist/esm/FileDetails/FileDetails.test.d.ts +1 -0
  265. package/dist/esm/FileDetails/FileDetails.test.js +21 -0
  266. package/dist/esm/FileDetails/index.d.ts +2 -0
  267. package/dist/esm/FileDetails/index.js +2 -0
  268. package/dist/esm/FileDetailsLabel/FileDetailsLabel.d.ts +21 -0
  269. package/dist/esm/FileDetailsLabel/FileDetailsLabel.js +15 -0
  270. package/dist/esm/FileDetailsLabel/FileDetailsLabel.test.d.ts +1 -0
  271. package/dist/esm/FileDetailsLabel/FileDetailsLabel.test.js +56 -0
  272. package/dist/esm/FileDetailsLabel/index.d.ts +2 -0
  273. package/dist/esm/FileDetailsLabel/index.js +2 -0
  274. package/dist/esm/FileDropZone/FileDropZone.d.ts +17 -0
  275. package/dist/esm/FileDropZone/FileDropZone.js +23 -0
  276. package/dist/esm/FileDropZone/FileDropZone.test.d.ts +1 -0
  277. package/dist/esm/FileDropZone/FileDropZone.test.js +14 -0
  278. package/dist/esm/FileDropZone/index.d.ts +2 -0
  279. package/dist/esm/FileDropZone/index.js +2 -0
  280. package/dist/esm/LoadingMessage/LoadingMessage.d.ts +6 -0
  281. package/dist/esm/LoadingMessage/LoadingMessage.js +13 -0
  282. package/dist/esm/LoadingMessage/LoadingMessage.test.d.ts +1 -0
  283. package/dist/esm/LoadingMessage/LoadingMessage.test.js +15 -0
  284. package/dist/esm/LoadingMessage/index.d.ts +2 -0
  285. package/dist/esm/LoadingMessage/index.js +2 -0
  286. package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.d.ts +4 -0
  287. package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.js +56 -0
  288. package/dist/esm/Message/ListMessage/ListItemMessage.d.ts +4 -0
  289. package/dist/esm/Message/ListMessage/ListItemMessage.js +7 -0
  290. package/dist/esm/Message/ListMessage/OrderedListMessage.d.ts +4 -0
  291. package/dist/esm/Message/ListMessage/OrderedListMessage.js +8 -0
  292. package/dist/esm/Message/ListMessage/UnorderedListMessage.d.ts +4 -0
  293. package/dist/esm/Message/ListMessage/UnorderedListMessage.js +8 -0
  294. package/dist/esm/Message/Message.d.ts +65 -0
  295. package/dist/esm/Message/Message.js +62 -0
  296. package/dist/esm/Message/Message.test.d.ts +1 -0
  297. package/dist/esm/Message/Message.test.js +234 -0
  298. package/dist/esm/Message/MessageLoading.d.ts +5 -0
  299. package/dist/esm/Message/MessageLoading.js +8 -0
  300. package/dist/esm/Message/TextMessage/TextMessage.d.ts +4 -0
  301. package/dist/esm/Message/TextMessage/TextMessage.js +22 -0
  302. package/dist/esm/Message/index.d.ts +2 -0
  303. package/dist/esm/Message/index.js +2 -0
  304. package/dist/esm/MessageBar/AttachButton.d.ts +21 -0
  305. package/dist/esm/MessageBar/AttachButton.js +32 -0
  306. package/dist/esm/MessageBar/AttachButton.test.d.ts +1 -0
  307. package/dist/esm/MessageBar/AttachButton.test.js +61 -0
  308. package/dist/esm/MessageBar/MessageBar.d.ts +71 -0
  309. package/dist/esm/MessageBar/MessageBar.js +105 -0
  310. package/dist/esm/MessageBar/MessageBar.test.d.ts +1 -0
  311. package/dist/esm/MessageBar/MessageBar.test.js +232 -0
  312. package/dist/esm/MessageBar/MicrophoneButton.d.ts +21 -0
  313. package/dist/esm/MessageBar/MicrophoneButton.js +67 -0
  314. package/dist/esm/MessageBar/SendButton.d.ts +14 -0
  315. package/dist/esm/MessageBar/SendButton.js +25 -0
  316. package/dist/esm/MessageBar/SendButton.test.d.ts +1 -0
  317. package/dist/esm/MessageBar/SendButton.test.js +49 -0
  318. package/dist/esm/MessageBar/StopButton.d.ts +14 -0
  319. package/dist/esm/MessageBar/StopButton.js +25 -0
  320. package/dist/esm/MessageBar/StopButton.test.d.ts +1 -0
  321. package/dist/esm/MessageBar/StopButton.test.js +49 -0
  322. package/dist/esm/MessageBar/index.d.ts +5 -0
  323. package/dist/esm/MessageBar/index.js +5 -0
  324. package/dist/esm/MessageBox/JumpButton.d.ts +11 -0
  325. package/dist/esm/MessageBox/JumpButton.js +12 -0
  326. package/dist/esm/MessageBox/JumpButton.test.d.ts +1 -0
  327. package/dist/esm/MessageBox/JumpButton.test.js +34 -0
  328. package/dist/esm/MessageBox/MessageBox.d.ts +17 -0
  329. package/dist/esm/MessageBox/MessageBox.js +68 -0
  330. package/dist/esm/MessageBox/index.d.ts +3 -0
  331. package/dist/esm/MessageBox/index.js +3 -0
  332. package/dist/esm/PreviewAttachment/PreviewAttachment.d.ts +22 -0
  333. package/dist/esm/PreviewAttachment/PreviewAttachment.js +18 -0
  334. package/dist/esm/PreviewAttachment/index.d.ts +2 -0
  335. package/dist/esm/PreviewAttachment/index.js +2 -0
  336. package/dist/esm/ResponseActions/ResponseActionButton.d.ts +20 -0
  337. package/dist/esm/ResponseActions/ResponseActionButton.js +5 -0
  338. package/dist/esm/ResponseActions/ResponseActions.d.ts +30 -0
  339. package/dist/esm/ResponseActions/ResponseActions.js +29 -0
  340. package/dist/esm/ResponseActions/ResponseActions.test.d.ts +1 -0
  341. package/dist/esm/ResponseActions/ResponseActions.test.js +62 -0
  342. package/dist/esm/ResponseActions/index.d.ts +2 -0
  343. package/dist/esm/ResponseActions/index.js +2 -0
  344. package/dist/esm/SourceDetailsMenuItem/SourceDetailsMenuItem.d.ts +11 -0
  345. package/dist/esm/SourceDetailsMenuItem/SourceDetailsMenuItem.js +24 -0
  346. package/dist/esm/SourceDetailsMenuItem/index.d.ts +2 -0
  347. package/dist/esm/SourceDetailsMenuItem/index.js +2 -0
  348. package/dist/esm/SourcesCard/SourcesCard.d.ts +34 -0
  349. package/dist/esm/SourcesCard/SourcesCard.js +63 -0
  350. package/dist/esm/SourcesCard/SourcesCard.test.d.ts +1 -0
  351. package/dist/esm/SourcesCard/SourcesCard.test.js +162 -0
  352. package/dist/esm/SourcesCard/index.d.ts +2 -0
  353. package/dist/esm/SourcesCard/index.js +2 -0
  354. package/dist/esm/index.d.ts +48 -0
  355. package/dist/esm/index.js +49 -0
  356. package/dist/tsconfig.tsbuildinfo +1 -0
  357. package/generate-fed-package-json.js +75 -0
  358. package/generate-index.js +42 -0
  359. package/package.json +79 -0
  360. package/patternfly-a11y.config.js +28 -0
  361. package/patternfly-docs/content/extensions/chatbot/about-chatbot.md +29 -0
  362. package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachMenu.tsx +149 -0
  363. package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentEdit.tsx +26 -0
  364. package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentError.tsx +13 -0
  365. package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +87 -0
  366. package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDetails.tsx +4 -0
  367. package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDetailsLabel.tsx +54 -0
  368. package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDropZone.tsx +60 -0
  369. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithAttachment.tsx +75 -0
  370. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithCustomResponseActions.tsx +39 -0
  371. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +44 -0
  372. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithResponseActions.tsx +25 -0
  373. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithSources.tsx +118 -0
  374. package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +171 -0
  375. package/patternfly-docs/content/extensions/chatbot/examples/Messages/PaperclipIcon.svg +10 -0
  376. package/patternfly-docs/content/extensions/chatbot/examples/Messages/PreviewAttachment.tsx +25 -0
  377. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +37 -0
  378. package/patternfly-docs/content/extensions/chatbot/examples/Messages/patternfly_avatar.jpg +0 -0
  379. package/patternfly-docs/content/extensions/chatbot/examples/Messages/user_avatar.jpg +0 -0
  380. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotContainer.tsx +66 -0
  381. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFooter.tsx +14 -0
  382. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFootnote.tsx +26 -0
  383. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderBasic.tsx +189 -0
  384. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +93 -0
  385. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithActions.tsx +75 -0
  386. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderTitle.tsx +50 -0
  387. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBar.tsx +8 -0
  388. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarAttach.tsx +148 -0
  389. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotMessageBarStop.tsx +10 -0
  390. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotModal.tsx +84 -0
  391. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotToggleBasic.tsx +13 -0
  392. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomeInteraction.tsx +144 -0
  393. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotWelcomePrompt.tsx +38 -0
  394. package/patternfly-docs/content/extensions/chatbot/examples/UI/CustomClosedIcon.tsx +89 -0
  395. package/patternfly-docs/content/extensions/chatbot/examples/UI/PF-HorizontalLogo-Color.svg +29 -0
  396. package/patternfly-docs/content/extensions/chatbot/examples/UI/PF-HorizontalLogo-Reverse.svg +28 -0
  397. package/patternfly-docs/content/extensions/chatbot/examples/UI/PF-IconLogo-Color.svg +17 -0
  398. package/patternfly-docs/content/extensions/chatbot/examples/UI/PF-IconLogo-Reverse.svg +16 -0
  399. package/patternfly-docs/content/extensions/chatbot/examples/UI/SkipToContent.tsx +40 -0
  400. package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +336 -0
  401. package/patternfly-docs/content/extensions/chatbot/examples/demos/AttachmentDemos.md +99 -0
  402. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +105 -0
  403. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.tsx +473 -0
  404. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +278 -0
  405. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +268 -0
  406. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +437 -0
  407. package/patternfly-docs/pages/index.js +27 -0
  408. package/patternfly-docs/patternfly-docs.config.js +8 -0
  409. package/patternfly-docs/patternfly-docs.css.js +9 -0
  410. package/patternfly-docs/patternfly-docs.routes.js +12 -0
  411. package/patternfly-docs/patternfly-docs.source.js +24 -0
  412. package/release.config.js +18 -0
  413. package/src/AttachMenu/AttachMenu.scss +62 -0
  414. package/src/AttachMenu/AttachMenu.tsx +81 -0
  415. package/src/AttachMenu/index.ts +3 -0
  416. package/src/AttachmentEdit/AttachmentEdit.tsx +63 -0
  417. package/src/AttachmentEdit/index.ts +3 -0
  418. package/src/Chatbot/Chatbot.scss +89 -0
  419. package/src/Chatbot/Chatbot.tsx +81 -0
  420. package/src/Chatbot/index.ts +3 -0
  421. package/src/ChatbotAlert/ChatbotAlert.scss +5 -0
  422. package/src/ChatbotAlert/ChatbotAlert.tsx +32 -0
  423. package/src/ChatbotAlert/index.ts +3 -0
  424. package/src/ChatbotContent/ChatbotContent.scss +23 -0
  425. package/src/ChatbotContent/ChatbotContent.tsx +23 -0
  426. package/src/ChatbotContent/index.ts +3 -0
  427. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx +62 -0
  428. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +166 -0
  429. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +217 -0
  430. package/src/ChatbotConversationHistoryNav/index.ts +4 -0
  431. package/src/ChatbotFooter/ChatbotFooter.scss +54 -0
  432. package/src/ChatbotFooter/ChatbotFooter.tsx +33 -0
  433. package/src/ChatbotFooter/ChatbotFootnote.scss +12 -0
  434. package/src/ChatbotFooter/ChatbotFootnote.tsx +135 -0
  435. package/src/ChatbotFooter/index.ts +4 -0
  436. package/src/ChatbotHeader/ChatbotHeader.scss +140 -0
  437. package/src/ChatbotHeader/ChatbotHeader.tsx +22 -0
  438. package/src/ChatbotHeader/ChatbotHeaderActions.tsx +15 -0
  439. package/src/ChatbotHeader/ChatbotHeaderMain.tsx +15 -0
  440. package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +48 -0
  441. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +73 -0
  442. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +68 -0
  443. package/src/ChatbotHeader/ChatbotHeaderTitle.tsx +57 -0
  444. package/src/ChatbotHeader/index.ts +9 -0
  445. package/src/ChatbotModal/ChatbotModal.scss +93 -0
  446. package/src/ChatbotModal/ChatbotModal.tsx +43 -0
  447. package/src/ChatbotModal/index.ts +3 -0
  448. package/src/ChatbotPopover/ChatbotPopover.scss +27 -0
  449. package/src/ChatbotPopover/ChatbotPopover.tsx +15 -0
  450. package/src/ChatbotPopover/index.ts +3 -0
  451. package/src/ChatbotToggle/ChatbotToggle.scss +26 -0
  452. package/src/ChatbotToggle/ChatbotToggle.tsx +80 -0
  453. package/src/ChatbotToggle/index.ts +3 -0
  454. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss +48 -0
  455. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx +64 -0
  456. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.tsx +66 -0
  457. package/src/ChatbotWelcomePrompt/__snapshots__/ChatbotWelcomePrompt.test.tsx.snap +29 -0
  458. package/src/ChatbotWelcomePrompt/index.ts +3 -0
  459. package/src/CodeModal/CodeModal.scss +76 -0
  460. package/src/CodeModal/CodeModal.tsx +153 -0
  461. package/src/CodeModal/index.ts +3 -0
  462. package/src/FileDetails/FileDetails.scss +25 -0
  463. package/src/FileDetails/FileDetails.test.tsx +23 -0
  464. package/src/FileDetails/FileDetails.tsx +990 -0
  465. package/src/FileDetails/__snapshots__/FileDetails.test.tsx.snap +74 -0
  466. package/src/FileDetails/index.ts +2 -0
  467. package/src/FileDetailsLabel/FileDetailsLabel.scss +66 -0
  468. package/src/FileDetailsLabel/FileDetailsLabel.test.tsx +48 -0
  469. package/src/FileDetailsLabel/FileDetailsLabel.tsx +66 -0
  470. package/src/FileDetailsLabel/__snapshots__/FileDetailsLabel.test.tsx.snap +90 -0
  471. package/src/FileDetailsLabel/index.ts +2 -0
  472. package/src/FileDropZone/FileDropZone.scss +36 -0
  473. package/src/FileDropZone/FileDropZone.test.tsx +15 -0
  474. package/src/FileDropZone/FileDropZone.tsx +56 -0
  475. package/src/FileDropZone/__snapshots__/FileDropZone.test.tsx.snap +18 -0
  476. package/src/FileDropZone/index.ts +3 -0
  477. package/src/LoadingMessage/LoadingMessage.test.tsx +16 -0
  478. package/src/LoadingMessage/LoadingMessage.tsx +27 -0
  479. package/src/LoadingMessage/__snapshots__/LoadingMessage.test.tsx.snap +52 -0
  480. package/src/LoadingMessage/index.ts +3 -0
  481. package/src/Message/CodeBlockMessage/CodeBlockMessage.scss +82 -0
  482. package/src/Message/CodeBlockMessage/CodeBlockMessage.tsx +88 -0
  483. package/src/Message/ListMessage/ListItemMessage.tsx +11 -0
  484. package/src/Message/ListMessage/ListMessage.scss +25 -0
  485. package/src/Message/ListMessage/OrderedListMessage.tsx +17 -0
  486. package/src/Message/ListMessage/UnorderedListMessage.tsx +15 -0
  487. package/src/Message/Message.scss +118 -0
  488. package/src/Message/Message.test.tsx +281 -0
  489. package/src/Message/Message.tsx +181 -0
  490. package/src/Message/MessageLoading.scss +53 -0
  491. package/src/Message/MessageLoading.tsx +15 -0
  492. package/src/Message/TextMessage/TextMessage.scss +51 -0
  493. package/src/Message/TextMessage/TextMessage.tsx +17 -0
  494. package/src/Message/index.ts +3 -0
  495. package/src/MessageBar/AttachButton.scss +20 -0
  496. package/src/MessageBar/AttachButton.test.tsx +53 -0
  497. package/src/MessageBar/AttachButton.tsx +81 -0
  498. package/src/MessageBar/MessageBar.scss +77 -0
  499. package/src/MessageBar/MessageBar.test.tsx +318 -0
  500. package/src/MessageBar/MessageBar.tsx +252 -0
  501. package/src/MessageBar/MicrophoneButton.scss +48 -0
  502. package/src/MessageBar/MicrophoneButton.tsx +114 -0
  503. package/src/MessageBar/SendButton.scss +29 -0
  504. package/src/MessageBar/SendButton.test.tsx +43 -0
  505. package/src/MessageBar/SendButton.tsx +54 -0
  506. package/src/MessageBar/StopButton.scss +22 -0
  507. package/src/MessageBar/StopButton.test.tsx +42 -0
  508. package/src/MessageBar/StopButton.tsx +57 -0
  509. package/src/MessageBar/index.ts +6 -0
  510. package/src/MessageBox/JumpButton.scss +46 -0
  511. package/src/MessageBox/JumpButton.test.tsx +26 -0
  512. package/src/MessageBox/JumpButton.tsx +37 -0
  513. package/src/MessageBox/MessageBox.scss +36 -0
  514. package/src/MessageBox/MessageBox.tsx +114 -0
  515. package/src/MessageBox/index.ts +4 -0
  516. package/src/PreviewAttachment/PreviewAttachment.tsx +67 -0
  517. package/src/PreviewAttachment/index.ts +3 -0
  518. package/src/ResponseActions/ResponseActionButton.tsx +56 -0
  519. package/src/ResponseActions/ResponseActions.scss +26 -0
  520. package/src/ResponseActions/ResponseActions.test.tsx +59 -0
  521. package/src/ResponseActions/ResponseActions.tsx +115 -0
  522. package/src/ResponseActions/index.ts +3 -0
  523. package/src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss +33 -0
  524. package/src/SourceDetailsMenuItem/SourceDetailsMenuItem.tsx +36 -0
  525. package/src/SourceDetailsMenuItem/index.ts +2 -0
  526. package/src/SourcesCard/SourcesCard.scss +74 -0
  527. package/src/SourcesCard/SourcesCard.test.tsx +238 -0
  528. package/src/SourcesCard/SourcesCard.tsx +159 -0
  529. package/src/SourcesCard/__snapshots__/SourcesCard.test.tsx.snap +34 -0
  530. package/src/SourcesCard/index.ts +3 -0
  531. package/src/index.ts +73 -0
  532. package/src/main.scss +89 -0
  533. package/tsconfig.cjs.json +8 -0
  534. package/tsconfig.json +73 -0
@@ -0,0 +1,437 @@
1
+ import React from 'react';
2
+
3
+ import {
4
+ Bullseye,
5
+ Brand,
6
+ DropdownList,
7
+ DropdownItem,
8
+ Page,
9
+ Masthead,
10
+ MastheadMain,
11
+ MastheadBrand,
12
+ MastheadLogo,
13
+ PageSidebarBody,
14
+ PageSidebar,
15
+ MastheadToggle,
16
+ PageToggleButton,
17
+ SkipToContent
18
+ } from '@patternfly/react-core';
19
+
20
+ import Chatbot, { ChatbotDisplayMode } from '@patternfly/chatbot/dist/dynamic/Chatbot';
21
+ import ChatbotContent from '@patternfly/chatbot/dist/dynamic/ChatbotContent';
22
+ import ChatbotWelcomePrompt from '@patternfly/chatbot/dist/dynamic/ChatbotWelcomePrompt';
23
+ import ChatbotFooter, { ChatbotFootnote } from '@patternfly/chatbot/dist/dynamic/ChatbotFooter';
24
+ import MessageBar from '@patternfly/chatbot/dist/dynamic/MessageBar';
25
+ import MessageBox from '@patternfly/chatbot/dist/dynamic/MessageBox';
26
+ import Message, { MessageProps } from '@patternfly/chatbot/dist/dynamic/Message';
27
+ import ChatbotConversationHistoryNav, {
28
+ Conversation
29
+ } from '@patternfly/chatbot/dist/dynamic/ChatbotConversationHistoryNav';
30
+ import ChatbotHeader, {
31
+ ChatbotHeaderMenu,
32
+ ChatbotHeaderMain,
33
+ ChatbotHeaderTitle,
34
+ ChatbotHeaderActions,
35
+ ChatbotHeaderSelectorDropdown
36
+ } from '@patternfly/chatbot/dist/dynamic/ChatbotHeader';
37
+
38
+ import PFHorizontalLogoColor from '../UI/PF-HorizontalLogo-Color.svg';
39
+ import PFHorizontalLogoReverse from '../UI/PF-HorizontalLogo-Reverse.svg';
40
+ import { BarsIcon } from '@patternfly/react-icons';
41
+ import userAvatar from '../Messages/user_avatar.jpg';
42
+ import patternflyAvatar from '../Messages/patternfly_avatar.jpg';
43
+
44
+ const footnoteProps = {
45
+ label: 'Lightspeed uses AI. Check for mistakes.',
46
+ popover: {
47
+ title: 'Verify accuracy',
48
+ description: `While Lightspeed strives for accuracy, there's always a possibility of errors. It's a good practice to verify critical information from reliable sources, especially if it's crucial for decision-making or actions.`,
49
+ bannerImage: {
50
+ src: 'https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif',
51
+ alt: 'Example image for footnote popover'
52
+ },
53
+ cta: {
54
+ label: 'Got it',
55
+ onClick: () => {
56
+ alert('Do something!');
57
+ }
58
+ },
59
+ link: {
60
+ label: 'Learn more',
61
+ url: 'https://www.redhat.com/'
62
+ }
63
+ }
64
+ };
65
+
66
+ const markdown = `A paragraph with *emphasis* and **strong importance**.
67
+
68
+ > A block quote with ~strikethrough~ and a URL: https://reactjs.org.
69
+
70
+ Here is an inline code - \`() => void\`
71
+
72
+ Here is some YAML code:
73
+
74
+ ~~~yaml
75
+ apiVersion: helm.openshift.io/v1beta1/
76
+ kind: HelmChartRepository
77
+ metadata:
78
+ name: azure-sample-repo0oooo00ooo
79
+ spec:
80
+ connectionConfig:
81
+ url: https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs
82
+ ~~~
83
+
84
+ Here is some JavaScript code:
85
+
86
+ ~~~js
87
+ import React from 'react';
88
+
89
+ const MessageLoading = () => (
90
+ <div className="pf-chatbot__message-loading">
91
+ <span className="pf-chatbot__message-loading-dots">
92
+ <span className="pf-v6-screen-reader">Loading message</span>
93
+ </span>
94
+ </div>
95
+ );
96
+
97
+ export default MessageLoading;
98
+
99
+ ~~~
100
+ `;
101
+
102
+ // It's important to set a date and timestamp prop since the Message components re-render.
103
+ // The timestamps re-render with them.
104
+ const date = new Date();
105
+
106
+ const initialMessages: MessageProps[] = [
107
+ {
108
+ id: '1',
109
+ role: 'user',
110
+ content: 'Hello, can you give me an example of what you can do?',
111
+ name: 'User',
112
+ avatar: userAvatar,
113
+ timestamp: date.toLocaleString()
114
+ },
115
+ {
116
+ id: '2',
117
+ role: 'bot',
118
+ content: markdown,
119
+ name: 'Bot',
120
+ avatar: patternflyAvatar,
121
+ timestamp: date.toLocaleString(),
122
+ actions: {
123
+ // eslint-disable-next-line no-console
124
+ positive: { onClick: () => console.log('Good response') },
125
+ // eslint-disable-next-line no-console
126
+ negative: { onClick: () => console.log('Bad response') },
127
+ // eslint-disable-next-line no-console
128
+ copy: { onClick: () => console.log('Copy') },
129
+ // eslint-disable-next-line no-console
130
+ share: { onClick: () => console.log('Share') },
131
+ // eslint-disable-next-line no-console
132
+ listen: { onClick: () => console.log('Listen') }
133
+ }
134
+ }
135
+ ];
136
+
137
+ const welcomePrompts = [
138
+ {
139
+ title: 'Topic 1',
140
+ message: 'Helpful prompt for Topic 1'
141
+ },
142
+ {
143
+ title: 'Topic 2',
144
+ message: 'Helpful prompt for Topic 2'
145
+ }
146
+ ];
147
+
148
+ const initialConversations = {
149
+ Today: [{ id: '1', text: 'Hello, can you give me an example of what you can do?' }],
150
+ 'This month': [
151
+ {
152
+ id: '2',
153
+ text: 'Enterprise Linux installation and setup'
154
+ },
155
+ { id: '3', text: 'Troubleshoot system crash' }
156
+ ],
157
+ March: [
158
+ { id: '4', text: 'Ansible security and updates' },
159
+ { id: '5', text: 'Red Hat certification' },
160
+ { id: '6', text: 'Lightspeed user documentation' }
161
+ ],
162
+ February: [
163
+ { id: '7', text: 'Crashing pod assistance' },
164
+ { id: '8', text: 'OpenShift AI pipelines' },
165
+ { id: '9', text: 'Updating subscription plan' },
166
+ { id: '10', text: 'Red Hat licensing options' }
167
+ ],
168
+ January: [
169
+ { id: '11', text: 'RHEL system performance' },
170
+ { id: '12', text: 'Manage user accounts' }
171
+ ]
172
+ };
173
+
174
+ export const EmbeddedChatbotDemo: React.FunctionComponent = () => {
175
+ const [messages, setMessages] = React.useState<MessageProps[]>(initialMessages);
176
+ const [selectedModel, setSelectedModel] = React.useState('Granite 7B');
177
+ const [isSendButtonDisabled, setIsSendButtonDisabled] = React.useState(false);
178
+ const [isDrawerOpen, setIsDrawerOpen] = React.useState(false);
179
+ const [conversations, setConversations] = React.useState<Conversation[] | { [key: string]: Conversation[] }>(
180
+ initialConversations
181
+ );
182
+ const [isSidebarOpen, setIsSidebarOpen] = React.useState(false);
183
+ const [announcement, setAnnouncement] = React.useState<string>();
184
+ const scrollToBottomRef = React.useRef<HTMLDivElement>(null);
185
+ const historyRef = React.useRef<HTMLButtonElement>(null);
186
+
187
+ const displayMode = ChatbotDisplayMode.embedded;
188
+ // Autu-scrolls to the latest message
189
+ React.useEffect(() => {
190
+ // don't scroll the first load - in this demo, we know we start with two messages
191
+ if (messages.length > 2) {
192
+ scrollToBottomRef.current?.scrollIntoView({ behavior: 'smooth' });
193
+ }
194
+ }, [messages]);
195
+
196
+ const onSelectModel = (
197
+ _event: React.MouseEvent<Element, MouseEvent> | undefined,
198
+ value: string | number | undefined
199
+ ) => {
200
+ setSelectedModel(value as string);
201
+ };
202
+
203
+ // you will likely want to come up with your own unique id function; this is for demo purposes only
204
+ const generateId = () => {
205
+ const id = Date.now() + Math.random();
206
+ return id.toString();
207
+ };
208
+
209
+ const handleSend = (message: string) => {
210
+ setIsSendButtonDisabled(true);
211
+ const newMessages: MessageProps[] = [];
212
+ // We can't use structuredClone since messages contains functions, but we can't mutate
213
+ // items that are going into state or the UI won't update correctly
214
+ messages.forEach((message) => newMessages.push(message));
215
+ // It's important to set a timestamp prop since the Message components re-render.
216
+ // The timestamps re-render with them.
217
+ const date = new Date();
218
+ newMessages.push({
219
+ id: generateId(),
220
+ role: 'user',
221
+ content: message,
222
+ name: 'User',
223
+ avatar: userAvatar,
224
+ timestamp: date.toLocaleString()
225
+ });
226
+ newMessages.push({
227
+ id: generateId(),
228
+ role: 'bot',
229
+ content: 'API response goes here',
230
+ name: 'Bot',
231
+ avatar: patternflyAvatar,
232
+ isLoading: true,
233
+ timestamp: date.toLocaleString()
234
+ });
235
+ setMessages(newMessages);
236
+ // make announcement to assistive devices that new messages have been added
237
+ setAnnouncement(`Message from User: ${message}. Message from Bot is loading.`);
238
+
239
+ // this is for demo purposes only; in a real situation, there would be an API response we would wait for
240
+ setTimeout(() => {
241
+ const loadedMessages: MessageProps[] = [];
242
+ // we can't use structuredClone since messages contains functions, but we can't mutate
243
+ // items that are going into state or the UI won't update correctly
244
+ newMessages.forEach((message) => loadedMessages.push(message));
245
+ loadedMessages.pop();
246
+ loadedMessages.push({
247
+ id: generateId(),
248
+ role: 'bot',
249
+ content: 'API response goes here',
250
+ name: 'Bot',
251
+ avatar: patternflyAvatar,
252
+ isLoading: false,
253
+ actions: {
254
+ // eslint-disable-next-line no-console
255
+ positive: { onClick: () => console.log('Good response') },
256
+ // eslint-disable-next-line no-console
257
+ negative: { onClick: () => console.log('Bad response') },
258
+ // eslint-disable-next-line no-console
259
+ copy: { onClick: () => console.log('Copy') },
260
+ // eslint-disable-next-line no-console
261
+ share: { onClick: () => console.log('Share') },
262
+ // eslint-disable-next-line no-console
263
+ listen: { onClick: () => console.log('Listen') }
264
+ },
265
+ timestamp: date.toLocaleString()
266
+ });
267
+ setMessages(loadedMessages);
268
+ // make announcement to assistive devices that new message has loaded
269
+ setAnnouncement(`Message from Bot: API response goes here`);
270
+ setIsSendButtonDisabled(false);
271
+ }, 5000);
272
+ };
273
+
274
+ const findMatchingItems = (targetValue: string) => {
275
+ let filteredConversations = Object.entries(initialConversations).reduce((acc, [key, items]) => {
276
+ const filteredItems = items.filter((item) => item.text.toLowerCase().includes(targetValue.toLowerCase()));
277
+ if (filteredItems.length > 0) {
278
+ acc[key] = filteredItems;
279
+ }
280
+ return acc;
281
+ }, {});
282
+
283
+ // append message if no items are found
284
+ if (Object.keys(filteredConversations).length === 0) {
285
+ filteredConversations = [{ id: '13', noIcon: true, text: 'No results found' }];
286
+ }
287
+ return filteredConversations;
288
+ };
289
+
290
+ const horizontalLogo = (
291
+ <Bullseye>
292
+ <Brand className="show-light" src={PFHorizontalLogoColor} alt="PatternFly" />
293
+ <Brand className="show-dark" src={PFHorizontalLogoReverse} alt="PatternFly" />
294
+ </Bullseye>
295
+ );
296
+
297
+ const masthead = (
298
+ <Masthead>
299
+ <MastheadMain>
300
+ <MastheadToggle>
301
+ <PageToggleButton
302
+ variant="plain"
303
+ aria-label="Global navigation"
304
+ isSidebarOpen={isSidebarOpen}
305
+ onSidebarToggle={() => setIsSidebarOpen(!isSidebarOpen)}
306
+ id="fill-nav-toggle"
307
+ >
308
+ <BarsIcon />
309
+ </PageToggleButton>
310
+ </MastheadToggle>
311
+ <MastheadBrand>
312
+ <MastheadLogo href="https://patternfly.org" target="_blank">
313
+ Logo
314
+ </MastheadLogo>
315
+ </MastheadBrand>
316
+ </MastheadMain>
317
+ </Masthead>
318
+ );
319
+
320
+ const sidebar = (
321
+ <PageSidebar isSidebarOpen={isSidebarOpen} id="fill-sidebar">
322
+ <PageSidebarBody>Navigation</PageSidebarBody>
323
+ </PageSidebar>
324
+ );
325
+
326
+ const skipToChatbot = (event: React.MouseEvent) => {
327
+ event.preventDefault();
328
+ if (historyRef.current) {
329
+ historyRef.current.focus();
330
+ }
331
+ };
332
+
333
+ const skipToContent = (
334
+ /* You can also add a SkipToContent for your main content here */
335
+ <SkipToContent href="#" onClick={skipToChatbot}>
336
+ Skip to chatbot
337
+ </SkipToContent>
338
+ );
339
+
340
+ return (
341
+ <Page skipToContent={skipToContent} masthead={masthead} sidebar={sidebar} isContentFilled>
342
+ <Chatbot displayMode={displayMode}>
343
+ <ChatbotConversationHistoryNav
344
+ displayMode={displayMode}
345
+ onDrawerToggle={() => {
346
+ setIsDrawerOpen(!isDrawerOpen);
347
+ setConversations(initialConversations);
348
+ }}
349
+ isDrawerOpen={isDrawerOpen}
350
+ setIsDrawerOpen={setIsDrawerOpen}
351
+ activeItemId="1"
352
+ // eslint-disable-next-line no-console
353
+ onSelectActiveItem={(e, selectedItem) => console.log(`Selected history item with id ${selectedItem}`)}
354
+ conversations={conversations}
355
+ onNewChat={() => {
356
+ setIsDrawerOpen(!isDrawerOpen);
357
+ setMessages([]);
358
+ setConversations(initialConversations);
359
+ }}
360
+ handleTextInputChange={(value: string) => {
361
+ if (value === '') {
362
+ setConversations(initialConversations);
363
+ }
364
+ // this is where you would perform search on the items in the drawer
365
+ // and update the state
366
+ const newConversations: { [key: string]: Conversation[] } = findMatchingItems(value);
367
+ setConversations(newConversations);
368
+ }}
369
+ drawerContent={
370
+ <>
371
+ <ChatbotHeader>
372
+ <ChatbotHeaderMain>
373
+ <ChatbotHeaderMenu
374
+ ref={historyRef}
375
+ aria-expanded={isDrawerOpen}
376
+ onMenuToggle={() => setIsDrawerOpen(!isDrawerOpen)}
377
+ />
378
+ <ChatbotHeaderTitle>{horizontalLogo}</ChatbotHeaderTitle>
379
+ </ChatbotHeaderMain>
380
+ <ChatbotHeaderActions>
381
+ <ChatbotHeaderSelectorDropdown value={selectedModel} onSelect={onSelectModel}>
382
+ <DropdownList>
383
+ <DropdownItem value="Granite 7B" key="granite">
384
+ Granite 7B
385
+ </DropdownItem>
386
+ <DropdownItem value="Llama 3.0" key="llama">
387
+ Llama 3.0
388
+ </DropdownItem>
389
+ <DropdownItem value="Mistral 3B" key="mistral">
390
+ Mistral 3B
391
+ </DropdownItem>
392
+ </DropdownList>
393
+ </ChatbotHeaderSelectorDropdown>
394
+ </ChatbotHeaderActions>
395
+ </ChatbotHeader>
396
+ <ChatbotContent>
397
+ {/* Update the announcement prop on MessageBox whenever a new message is sent
398
+ so that users of assistive devices receive sufficient context */}
399
+ <MessageBox announcement={announcement}>
400
+ <ChatbotWelcomePrompt
401
+ title="Hello, Chatbot User"
402
+ description="How may I help you today?"
403
+ prompts={welcomePrompts}
404
+ />
405
+ {/* This code block enables scrolling to the top of the last message.
406
+ You can instead choose to move the div with scrollToBottomRef on it below
407
+ the map of messages, so that users are forced to scroll to the bottom.
408
+ If you are using streaming, you will want to take a different approach;
409
+ see: https://github.com/patternfly/chatbot/issues/201#issuecomment-2400725173 */}
410
+ {messages.map((message, index) => {
411
+ if (index === messages.length - 1) {
412
+ return (
413
+ <>
414
+ <div ref={scrollToBottomRef}></div>
415
+ <Message key={message.id} {...message} />
416
+ </>
417
+ );
418
+ }
419
+ return <Message key={message.id} {...message} />;
420
+ })}
421
+ </MessageBox>
422
+ </ChatbotContent>
423
+ <ChatbotFooter>
424
+ <MessageBar
425
+ onSendMessage={handleSend}
426
+ hasMicrophoneButton
427
+ isSendButtonDisabled={isSendButtonDisabled}
428
+ />
429
+ <ChatbotFootnote {...footnoteProps} />
430
+ </ChatbotFooter>
431
+ </>
432
+ }
433
+ ></ChatbotConversationHistoryNav>
434
+ </Chatbot>
435
+ </Page>
436
+ );
437
+ };
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import { Title, PageSection } from '@patternfly/react-core';
3
+
4
+ const centerStyle = {
5
+ flexGrow: 1,
6
+ display: 'flex',
7
+ alignItems: 'center',
8
+ justifyContent: 'center'
9
+ };
10
+
11
+ const IndexPage = () => {
12
+ return (
13
+ <PageSection variant="light" style={centerStyle}>
14
+ <div style={{ flex: 'none', textAlign: 'center' }}>
15
+ <Title size="4xl" headingLevel="h1">
16
+ My extension docs
17
+ </Title>
18
+ <Title size="2xl" headingLevel="h2">
19
+ {'Hi people!'}
20
+ </Title>
21
+ <p>Welcome to my extension docs.</p>
22
+ </div>
23
+ </PageSection>
24
+ );
25
+ };
26
+
27
+ export default IndexPage;
@@ -0,0 +1,8 @@
1
+ // This module is shared between NodeJS and babelled ES5
2
+ module.exports = {
3
+ sideNavItems: [{ section: 'PatternFly-AI' }],
4
+ topNavItems: [],
5
+ hasDarkThemeSwitcher: true,
6
+ hasRTLSwitcher: true,
7
+ port: 8006
8
+ };
@@ -0,0 +1,9 @@
1
+ // Patternfly
2
+ import '@patternfly/patternfly/patternfly.css';
3
+ // Patternfly utilities
4
+ import '@patternfly/patternfly/patternfly-addons.css';
5
+ // Global theme CSS
6
+ import '@patternfly/documentation-framework/global.css';
7
+
8
+ // Add your extension CSS below
9
+ import '@patternfly/chatbot/dist/css/main.css';
@@ -0,0 +1,12 @@
1
+ // This module is shared between NodeJS and babelled ES5
2
+ const isClient = Boolean(process.env.NODE_ENV);
3
+
4
+ module.exports = {
5
+ '/': {
6
+ SyncComponent: isClient && require('./pages/index').default
7
+ },
8
+ '/404': {
9
+ SyncComponent: isClient && require('@patternfly/documentation-framework/pages/404/index').default,
10
+ title: '404 Error'
11
+ }
12
+ };
@@ -0,0 +1,24 @@
1
+ const path = require('path');
2
+
3
+ module.exports = (sourceMD, sourceProps) => {
4
+ // Parse source content for props so that we can display them
5
+ const propsIgnore = ['**/*.test.tsx', '**/examples/*.tsx'];
6
+ const extensionPath = path.join(__dirname, '../src');
7
+ sourceProps(path.join(extensionPath, '/**/*.tsx'), propsIgnore);
8
+
9
+ // Parse md files
10
+ const contentBase = path.join(__dirname, './content');
11
+ sourceMD(path.join(contentBase, 'extensions/**/*.md'), 'PatternFly-AI');
12
+
13
+ /**
14
+ If you want to parse content from node_modules instead of providing a relative/absolute path,
15
+ you can do something similar to this:
16
+ const extensionPath = require
17
+ .resolve('@patternfly/react-log-viewer/package.json')
18
+ .replace('package.json', 'src');
19
+ sourceProps(path.join(extensionPath, '/**\/*.tsx'), propsIgnore);
20
+ sourceMD(path.join(extensionPath, '../patternfly-docs/**\/examples/*.md'), 'react');
21
+ sourceMD(path.join(extensionPath, '../patternfly-docs/**\/demos/*.md'), 'react-demos');
22
+ sourceMD(path.join(extensionPath, '../patternfly-docs/**\/design-guidelines/*.md'), 'design-guidelines');
23
+ */
24
+ };
@@ -0,0 +1,18 @@
1
+ module.exports = {
2
+ branches: [
3
+ 'do-not-delete',
4
+ { name: 'main', channel: 'prerelease', prerelease: 'prerelease' },
5
+ { name: 'v5', channel: 'prerelease-5', range: '5.x' }
6
+ ],
7
+ analyzeCommits: {
8
+ preset: 'angular'
9
+ },
10
+ plugins: [
11
+ '@semantic-release/commit-analyzer',
12
+ '@semantic-release/release-notes-generator',
13
+ '@semantic-release/github',
14
+ '@semantic-release/npm'
15
+ ],
16
+ tagFormat: 'prerelease-v${version}',
17
+ dryRun: false
18
+ };
@@ -0,0 +1,62 @@
1
+ .pf-chatbot__menu.pf-v6-c-menu {
2
+ --pf-v6-c-menu--BorderRadius: var(--pf-t--global--border--radius--large);
3
+ --pf-v6-c-menu__list-item--hover--BackgroundColor: var(--pf-t--global--background--color--secondary--default);
4
+ }
5
+
6
+ .pf-chatbot__menu {
7
+ /* search input */
8
+ .pf-v6-c-text-input-group {
9
+ --pf-v6-c-text-input-group__text--BorderStartStartRadius: var(--pf-t--global--border--radius--pill);
10
+ --pf-v6-c-text-input-group__text--BorderStartEndRadius: var(--pf-t--global--border--radius--pill);
11
+ --pf-v6-c-text-input-group__text--BorderEndStartRadius: var(--pf-t--global--border--radius--pill);
12
+ --pf-v6-c-text-input-group__text--BorderEndEndRadius: var(--pf-t--global--border--radius--pill);
13
+ }
14
+ .pf-v6-c-text-input-group__text-input:focus-visible {
15
+ border-radius: var(--pf-t--global--border--radius--pill);
16
+ }
17
+
18
+ .pf-v6-c-menu__group {
19
+ /* there is spacing between groups because of this normally, even if there's no title */
20
+ .pf-v6-c-menu__group-title {
21
+ height: 0;
22
+ --pf-v6-c-menu__group-title--PaddingBlockStart: var(--pf-t--global--spacer--sm);
23
+ --pf-v6-c-menu__group-title--PaddingBlockEnd: 0;
24
+ --pf-v6-c-menu__group-title--PaddingInlineStart: 0;
25
+ --pf-v6-c-menu__group-title--PaddingInlineEnd: 0;
26
+ }
27
+ }
28
+
29
+ /* spacing between icon and text in menu item */
30
+ .pf-v6-c-menu__item-main {
31
+ --pf-v6-c-menu__item-main--ColumnGap: var(--pf-t--global--spacer--md);
32
+ }
33
+
34
+ .pf-v6-c-menu__list {
35
+ padding: 0rem var(--pf-t--global--spacer--md) 0rem var(--pf-t--global--spacer--md);
36
+ }
37
+
38
+ /* handles hover state, which uses a background */
39
+ .pf-v6-c-menu__list-item {
40
+ border-radius: var(--pf-t--global--border--radius--small);
41
+ overflow: hidden;
42
+ }
43
+
44
+ .pf-v6-c-menu__item {
45
+ padding-inline-start: var(--pf-t--global--spacer--md);
46
+ padding-inline-end: var(--pf-t--global--spacer--md);
47
+ }
48
+
49
+ .pf-v6-c-menu__item-icon {
50
+ display: flex;
51
+ justify-content: center;
52
+ width: 21px;
53
+ }
54
+
55
+ .pf-v6-c-menu__item-description {
56
+ font-weight: 500;
57
+ }
58
+
59
+ .pf-v6-c-divider {
60
+ padding: 0 var(--pf-t--global--spacer--md) 0 var(--pf-t--global--spacer--md);
61
+ }
62
+ }
@@ -0,0 +1,81 @@
1
+ // ============================================================================
2
+ // Chatbot Attachment Menu
3
+ // ============================================================================
4
+ import React from 'react';
5
+
6
+ // Import PatternFly components
7
+ import {
8
+ MenuSearch,
9
+ MenuSearchInput,
10
+ SearchInput,
11
+ DropdownProps,
12
+ Dropdown,
13
+ DropdownToggleProps,
14
+ DropdownPopperProps
15
+ } from '@patternfly/react-core';
16
+
17
+ export interface ExtendedDropdownPopperProps extends DropdownPopperProps {
18
+ distance: string;
19
+ }
20
+
21
+ export interface AttachMenuProps extends DropdownProps {
22
+ /** Items in menu */
23
+ filteredItems: React.ReactNode;
24
+ /** A callback for when the input value changes. */
25
+ handleTextInputChange: (value: string) => void;
26
+ /** Flag to indicate if menu is opened. */
27
+ isOpen: boolean;
28
+ /** Additional properties to pass to the Popper */
29
+ popperProps?: ExtendedDropdownPopperProps;
30
+ /** Callback to change the open state of the menu. Triggered by clicking outside of the menu. */
31
+ onOpenChange: (isOpen: boolean) => void;
32
+ /** Keys that trigger onOpenChange, defaults to tab and escape. It is highly recommended to include Escape in the array, while Tab may be omitted if the menu contains non-menu items that are focusable. */
33
+ onOpenChangeKeys?: string[];
34
+ /** Function callback called when user selects item. */
35
+ onSelect?: (event?: React.MouseEvent<Element, MouseEvent>, value?: string | number) => void;
36
+ /** Placeholder for search input */
37
+ searchInputPlaceholder?: string;
38
+ /** Aria label for search input */
39
+ searchInputAriaLabel?: string;
40
+ /** Toggle to be rendered */
41
+ toggle: DropdownToggleProps | ((toggleRef: React.RefObject<any>) => React.ReactNode);
42
+ }
43
+
44
+ export const AttachMenu: React.FunctionComponent<AttachMenuProps> = ({
45
+ className,
46
+ filteredItems,
47
+ handleTextInputChange,
48
+ isOpen,
49
+ popperProps = undefined,
50
+ onOpenChange,
51
+ onOpenChangeKeys,
52
+ onSelect,
53
+ searchInputPlaceholder,
54
+ searchInputAriaLabel = 'Filter menu items',
55
+ toggle,
56
+ ...props
57
+ }: AttachMenuProps) => (
58
+ <Dropdown
59
+ className={`pf-chatbot__menu ${className ?? ''}`}
60
+ isOpen={isOpen}
61
+ onOpenChange={(isOpen) => onOpenChange(isOpen)}
62
+ onOpenChangeKeys={onOpenChangeKeys ?? ['Esc']}
63
+ toggle={toggle}
64
+ popperProps={popperProps}
65
+ onSelect={onSelect}
66
+ {...props}
67
+ >
68
+ <MenuSearch>
69
+ <MenuSearchInput>
70
+ <SearchInput
71
+ aria-label={searchInputAriaLabel}
72
+ onChange={(_event, value) => handleTextInputChange(value)}
73
+ placeholder={searchInputPlaceholder}
74
+ />
75
+ </MenuSearchInput>
76
+ </MenuSearch>
77
+ {filteredItems}
78
+ </Dropdown>
79
+ );
80
+
81
+ export default AttachMenu;
@@ -0,0 +1,3 @@
1
+ export { default } from './AttachMenu';
2
+
3
+ export * from './AttachMenu';