@patternfly/chatbot 6.3.0-prerelease.1 → 6.3.0-prerelease.11

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 (259) hide show
  1. package/dist/cjs/AttachmentEdit/AttachmentEdit.d.ts +2 -0
  2. package/dist/cjs/AttachmentEdit/AttachmentEdit.js +2 -2
  3. package/dist/cjs/Chatbot/Chatbot.d.ts +2 -0
  4. package/dist/cjs/Chatbot/Chatbot.js +2 -2
  5. package/dist/cjs/Chatbot/Chatbot.test.js +4 -0
  6. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +2 -0
  7. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +3 -3
  8. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +4 -0
  9. package/dist/cjs/ChatbotFooter/ChatbotFooter.d.ts +1 -0
  10. package/dist/cjs/ChatbotFooter/ChatbotFooter.js +2 -2
  11. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.d.ts +1 -1
  12. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.js +5 -0
  13. package/dist/cjs/ChatbotHeader/ChatbotHeader.js +1 -1
  14. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +4 -2
  15. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.js +20 -6
  16. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -1
  17. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.js +5 -0
  18. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.js +1 -1
  19. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.d.ts +3 -2
  20. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +20 -6
  21. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -1
  22. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.js +5 -0
  23. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +1 -0
  24. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -3
  25. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -1
  26. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +5 -0
  27. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +1 -0
  28. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +2 -2
  29. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -1
  30. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +5 -0
  31. package/dist/cjs/ChatbotModal/ChatbotModal.d.ts +3 -0
  32. package/dist/cjs/ChatbotModal/ChatbotModal.js +2 -2
  33. package/dist/cjs/ChatbotModal/ChatbotModal.test.d.ts +1 -0
  34. package/dist/cjs/ChatbotModal/ChatbotModal.test.js +28 -0
  35. package/dist/cjs/ChatbotPopover/ChatbotPopover.js +1 -1
  36. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +1 -0
  37. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +3 -3
  38. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +4 -0
  39. package/dist/cjs/CodeModal/CodeModal.d.ts +2 -0
  40. package/dist/cjs/CodeModal/CodeModal.js +3 -3
  41. package/dist/cjs/CodeModal/CodeModal.test.d.ts +1 -0
  42. package/dist/cjs/CodeModal/CodeModal.test.js +15 -0
  43. package/dist/cjs/FileDetails/FileDetails.js +1 -1
  44. package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.js +1 -1
  45. package/dist/cjs/Message/Message.d.ts +2 -0
  46. package/dist/cjs/Message/Message.js +6 -6
  47. package/dist/cjs/Message/Message.test.js +15 -3
  48. package/dist/cjs/Message/QuickResponse/QuickResponse.d.ts +2 -0
  49. package/dist/cjs/Message/QuickResponse/QuickResponse.js +2 -2
  50. package/dist/cjs/Message/QuickStarts/QuickStartTile.d.ts +2 -0
  51. package/dist/cjs/Message/QuickStarts/QuickStartTile.js +2 -2
  52. package/dist/cjs/Message/UserFeedback/UserFeedback.js +4 -4
  53. package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +4 -0
  54. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +4 -4
  55. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +4 -0
  56. package/dist/cjs/MessageBar/AttachButton.d.ts +1 -0
  57. package/dist/cjs/MessageBar/AttachButton.js +3 -3
  58. package/dist/cjs/MessageBar/AttachButton.test.js +11 -7
  59. package/dist/cjs/MessageBar/MessageBar.d.ts +5 -0
  60. package/dist/cjs/MessageBar/MessageBar.js +14 -13
  61. package/dist/cjs/MessageBar/MessageBar.test.js +41 -28
  62. package/dist/cjs/MessageBar/MicrophoneButton.d.ts +1 -0
  63. package/dist/cjs/MessageBar/MicrophoneButton.js +3 -3
  64. package/dist/cjs/MessageBar/SendButton.d.ts +1 -0
  65. package/dist/cjs/MessageBar/SendButton.js +3 -3
  66. package/dist/cjs/MessageBar/SendButton.test.js +9 -5
  67. package/dist/cjs/MessageBar/StopButton.d.ts +1 -0
  68. package/dist/cjs/MessageBar/StopButton.js +3 -3
  69. package/dist/cjs/MessageBar/StopButton.test.js +9 -5
  70. package/dist/cjs/MessageBox/JumpButton.js +1 -1
  71. package/dist/cjs/MessageBox/JumpButton.test.js +4 -4
  72. package/dist/cjs/MessageBox/MessageBox.d.ts +4 -0
  73. package/dist/cjs/MessageBox/MessageBox.js +16 -2
  74. package/dist/cjs/MessageBox/MessageBox.test.js +43 -0
  75. package/dist/cjs/PreviewAttachment/PreviewAttachment.d.ts +2 -0
  76. package/dist/cjs/PreviewAttachment/PreviewAttachment.js +2 -2
  77. package/dist/cjs/Settings/SettingsForm.d.ts +2 -0
  78. package/dist/cjs/Settings/SettingsForm.js +2 -2
  79. package/dist/cjs/Settings/SettingsForm.test.d.ts +1 -1
  80. package/dist/cjs/Settings/SettingsForm.test.js +12 -0
  81. package/dist/cjs/SourcesCard/SourcesCard.js +2 -2
  82. package/dist/cjs/TermsOfUse/TermsOfUse.d.ts +2 -0
  83. package/dist/cjs/TermsOfUse/TermsOfUse.js +5 -5
  84. package/dist/css/main.css +218 -15
  85. package/dist/css/main.css.map +1 -1
  86. package/dist/esm/AttachmentEdit/AttachmentEdit.d.ts +2 -0
  87. package/dist/esm/AttachmentEdit/AttachmentEdit.js +2 -2
  88. package/dist/esm/Chatbot/Chatbot.d.ts +2 -0
  89. package/dist/esm/Chatbot/Chatbot.js +2 -2
  90. package/dist/esm/Chatbot/Chatbot.test.js +4 -0
  91. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +2 -0
  92. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +3 -3
  93. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +4 -0
  94. package/dist/esm/ChatbotFooter/ChatbotFooter.d.ts +1 -0
  95. package/dist/esm/ChatbotFooter/ChatbotFooter.js +2 -2
  96. package/dist/esm/ChatbotFooter/ChatbotFooter.test.d.ts +1 -1
  97. package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +5 -0
  98. package/dist/esm/ChatbotHeader/ChatbotHeader.js +1 -1
  99. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +4 -2
  100. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.js +20 -6
  101. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -1
  102. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.js +5 -0
  103. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.js +1 -1
  104. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.d.ts +3 -2
  105. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +20 -6
  106. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -1
  107. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +5 -0
  108. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +1 -0
  109. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -3
  110. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -1
  111. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +5 -0
  112. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +1 -0
  113. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +2 -2
  114. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -1
  115. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +5 -0
  116. package/dist/esm/ChatbotModal/ChatbotModal.d.ts +3 -0
  117. package/dist/esm/ChatbotModal/ChatbotModal.js +2 -2
  118. package/dist/esm/ChatbotModal/ChatbotModal.test.d.ts +1 -0
  119. package/dist/esm/ChatbotModal/ChatbotModal.test.js +23 -0
  120. package/dist/esm/ChatbotPopover/ChatbotPopover.js +1 -1
  121. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +1 -0
  122. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +3 -3
  123. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +4 -0
  124. package/dist/esm/CodeModal/CodeModal.d.ts +2 -0
  125. package/dist/esm/CodeModal/CodeModal.js +3 -3
  126. package/dist/esm/CodeModal/CodeModal.test.d.ts +1 -0
  127. package/dist/esm/CodeModal/CodeModal.test.js +10 -0
  128. package/dist/esm/FileDetails/FileDetails.js +1 -1
  129. package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.js +1 -1
  130. package/dist/esm/Message/Message.d.ts +2 -0
  131. package/dist/esm/Message/Message.js +6 -6
  132. package/dist/esm/Message/Message.test.js +15 -3
  133. package/dist/esm/Message/QuickResponse/QuickResponse.d.ts +2 -0
  134. package/dist/esm/Message/QuickResponse/QuickResponse.js +2 -2
  135. package/dist/esm/Message/QuickStarts/QuickStartTile.d.ts +2 -0
  136. package/dist/esm/Message/QuickStarts/QuickStartTile.js +2 -2
  137. package/dist/esm/Message/UserFeedback/UserFeedback.js +4 -4
  138. package/dist/esm/Message/UserFeedback/UserFeedback.test.js +4 -0
  139. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +4 -4
  140. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +4 -0
  141. package/dist/esm/MessageBar/AttachButton.d.ts +1 -0
  142. package/dist/esm/MessageBar/AttachButton.js +3 -3
  143. package/dist/esm/MessageBar/AttachButton.test.js +11 -7
  144. package/dist/esm/MessageBar/MessageBar.d.ts +5 -0
  145. package/dist/esm/MessageBar/MessageBar.js +14 -13
  146. package/dist/esm/MessageBar/MessageBar.test.js +41 -28
  147. package/dist/esm/MessageBar/MicrophoneButton.d.ts +1 -0
  148. package/dist/esm/MessageBar/MicrophoneButton.js +3 -3
  149. package/dist/esm/MessageBar/SendButton.d.ts +1 -0
  150. package/dist/esm/MessageBar/SendButton.js +3 -3
  151. package/dist/esm/MessageBar/SendButton.test.js +9 -5
  152. package/dist/esm/MessageBar/StopButton.d.ts +1 -0
  153. package/dist/esm/MessageBar/StopButton.js +3 -3
  154. package/dist/esm/MessageBar/StopButton.test.js +9 -5
  155. package/dist/esm/MessageBox/JumpButton.js +1 -1
  156. package/dist/esm/MessageBox/JumpButton.test.js +4 -4
  157. package/dist/esm/MessageBox/MessageBox.d.ts +4 -0
  158. package/dist/esm/MessageBox/MessageBox.js +16 -2
  159. package/dist/esm/MessageBox/MessageBox.test.js +44 -1
  160. package/dist/esm/PreviewAttachment/PreviewAttachment.d.ts +2 -0
  161. package/dist/esm/PreviewAttachment/PreviewAttachment.js +2 -2
  162. package/dist/esm/Settings/SettingsForm.d.ts +2 -0
  163. package/dist/esm/Settings/SettingsForm.js +2 -2
  164. package/dist/esm/Settings/SettingsForm.test.d.ts +1 -1
  165. package/dist/esm/Settings/SettingsForm.test.js +12 -0
  166. package/dist/esm/SourcesCard/SourcesCard.js +2 -2
  167. package/dist/esm/TermsOfUse/TermsOfUse.d.ts +2 -0
  168. package/dist/esm/TermsOfUse/TermsOfUse.js +5 -5
  169. package/dist/tsconfig.tsbuildinfo +1 -1
  170. package/package.json +1 -1
  171. package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentEdit.tsx +10 -1
  172. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +33 -0
  173. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +24 -0
  174. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickStart.tsx +11 -0
  175. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithSources.tsx +21 -0
  176. package/patternfly-docs/content/extensions/chatbot/examples/Messages/PreviewAttachment.tsx +10 -1
  177. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +9 -0
  178. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithActions.tsx +9 -0
  179. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithSelection.tsx +11 -2
  180. package/patternfly-docs/content/extensions/chatbot/examples/UI/CompactSettings.tsx +289 -0
  181. package/patternfly-docs/content/extensions/chatbot/examples/UI/TermsOfUseCompact.tsx +136 -0
  182. package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +14 -0
  183. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +8 -1
  184. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotCompact.tsx +481 -0
  185. package/src/AttachmentEdit/AttachmentEdit.tsx +5 -1
  186. package/src/Chatbot/Chatbot.scss +7 -0
  187. package/src/Chatbot/Chatbot.test.tsx +9 -0
  188. package/src/Chatbot/Chatbot.tsx +4 -1
  189. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +38 -3
  190. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +18 -0
  191. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +9 -2
  192. package/src/ChatbotFooter/ChatbotFooter.scss +5 -0
  193. package/src/ChatbotFooter/ChatbotFooter.test.tsx +10 -0
  194. package/src/ChatbotFooter/ChatbotFooter.tsx +3 -1
  195. package/src/ChatbotHeader/ChatbotHeader.scss +25 -0
  196. package/src/ChatbotHeader/ChatbotHeader.tsx +1 -1
  197. package/src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx +6 -0
  198. package/src/ChatbotHeader/ChatbotHeaderCloseButton.tsx +12 -6
  199. package/src/ChatbotHeader/ChatbotHeaderMain.tsx +3 -1
  200. package/src/ChatbotHeader/ChatbotHeaderMenu.test.tsx +8 -0
  201. package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +10 -5
  202. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx +6 -0
  203. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +5 -2
  204. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx +10 -0
  205. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +4 -0
  206. package/src/ChatbotModal/ChatbotModal.scss +15 -4
  207. package/src/ChatbotModal/ChatbotModal.test.tsx +59 -0
  208. package/src/ChatbotModal/ChatbotModal.tsx +5 -1
  209. package/src/ChatbotPopover/ChatbotPopover.scss +9 -5
  210. package/src/ChatbotPopover/ChatbotPopover.tsx +1 -1
  211. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss +9 -1
  212. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx +13 -0
  213. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.tsx +13 -2
  214. package/src/ChatbotWelcomePrompt/__snapshots__/ChatbotWelcomePrompt.test.tsx.snap +1 -1
  215. package/src/CodeModal/CodeModal.scss +11 -3
  216. package/src/CodeModal/CodeModal.test.tsx +24 -0
  217. package/src/CodeModal/CodeModal.tsx +6 -2
  218. package/src/FileDetails/FileDetails.tsx +1 -1
  219. package/src/FileDetails/__snapshots__/FileDetails.test.tsx.snap +1 -1
  220. package/src/FileDetailsLabel/__snapshots__/FileDetailsLabel.test.tsx.snap +1 -1
  221. package/src/Message/CodeBlockMessage/CodeBlockMessage.tsx +1 -1
  222. package/src/Message/Message.scss +27 -0
  223. package/src/Message/Message.test.tsx +24 -3
  224. package/src/Message/Message.tsx +10 -3
  225. package/src/Message/QuickResponse/QuickResponse.tsx +5 -1
  226. package/src/Message/QuickStarts/QuickStartTile.tsx +5 -1
  227. package/src/Message/TextMessage/TextMessage.scss +25 -0
  228. package/src/Message/UserFeedback/UserFeedback.scss +24 -3
  229. package/src/Message/UserFeedback/UserFeedback.test.tsx +13 -0
  230. package/src/Message/UserFeedback/UserFeedback.tsx +4 -2
  231. package/src/Message/UserFeedback/UserFeedbackComplete.test.tsx +4 -0
  232. package/src/Message/UserFeedback/UserFeedbackComplete.tsx +10 -2
  233. package/src/MessageBar/AttachButton.scss +10 -0
  234. package/src/MessageBar/AttachButton.test.tsx +11 -7
  235. package/src/MessageBar/AttachButton.tsx +6 -3
  236. package/src/MessageBar/MessageBar.scss +17 -0
  237. package/src/MessageBar/MessageBar.test.tsx +41 -28
  238. package/src/MessageBar/MessageBar.tsx +23 -8
  239. package/src/MessageBar/MicrophoneButton.scss +10 -0
  240. package/src/MessageBar/MicrophoneButton.tsx +7 -3
  241. package/src/MessageBar/SendButton.scss +10 -0
  242. package/src/MessageBar/SendButton.test.tsx +10 -6
  243. package/src/MessageBar/SendButton.tsx +6 -3
  244. package/src/MessageBar/StopButton.scss +10 -0
  245. package/src/MessageBar/StopButton.test.tsx +10 -6
  246. package/src/MessageBar/StopButton.tsx +6 -3
  247. package/src/MessageBox/JumpButton.test.tsx +4 -4
  248. package/src/MessageBox/JumpButton.tsx +1 -1
  249. package/src/MessageBox/MessageBox.scss +6 -0
  250. package/src/MessageBox/MessageBox.test.tsx +45 -1
  251. package/src/MessageBox/MessageBox.tsx +11 -1
  252. package/src/PreviewAttachment/PreviewAttachment.tsx +5 -1
  253. package/src/Settings/Settings.scss +11 -0
  254. package/src/Settings/SettingsForm.test.tsx +17 -0
  255. package/src/Settings/SettingsForm.tsx +12 -2
  256. package/src/SourcesCard/SourcesCard.scss +8 -0
  257. package/src/SourcesCard/SourcesCard.tsx +2 -1
  258. package/src/TermsOfUse/TermsOfUse.scss +20 -0
  259. package/src/TermsOfUse/TermsOfUse.tsx +9 -4
@@ -19,23 +19,23 @@ const renderSend = (props) => {
19
19
  describe('Send button', () => {
20
20
  it('should render button correctly', () => {
21
21
  renderSend();
22
- expect(screen.getByRole('button', { name: 'Send button' })).toBeTruthy();
22
+ expect(screen.getByRole('button', { name: 'Send' })).toBeTruthy();
23
23
  });
24
24
  it('should handle onClick correctly', () => __awaiter(void 0, void 0, void 0, function* () {
25
25
  const spy = jest.fn();
26
26
  render(React.createElement(SendButton, { onClick: spy }));
27
- yield userEvent.click(screen.getByRole('button', { name: 'Send button' }));
27
+ yield userEvent.click(screen.getByRole('button', { name: 'Send' }));
28
28
  expect(screen.getByRole('tooltip', { name: 'Send' })).toBeTruthy();
29
29
  expect(spy).toHaveBeenCalledTimes(1);
30
30
  }));
31
31
  it('should handle custom tooltip correctly', () => __awaiter(void 0, void 0, void 0, function* () {
32
32
  render(React.createElement(SendButton, { onClick: jest.fn, tooltipContent: "Test" }));
33
- yield userEvent.click(screen.getByRole('button', { name: 'Send button' }));
33
+ yield userEvent.click(screen.getByRole('button', { name: 'Send' }));
34
34
  expect(screen.getByRole('tooltip', { name: 'Test' })).toBeTruthy();
35
35
  }));
36
36
  it('should handle className prop', () => {
37
37
  renderSend({ className: 'test' });
38
- expect(screen.getByRole('button', { name: 'Send button' })).toHaveClass('test');
38
+ expect(screen.getByRole('button', { name: 'Send' })).toHaveClass('test');
39
39
  });
40
40
  it('should handle spread props, including aria-label', () => {
41
41
  renderSend({ 'aria-label': 'test' });
@@ -43,7 +43,11 @@ describe('Send button', () => {
43
43
  });
44
44
  it('should handle tooltipProps prop', () => __awaiter(void 0, void 0, void 0, function* () {
45
45
  renderSend({ tooltipProps: { id: 'test' } });
46
- yield userEvent.click(screen.getByRole('button', { name: 'Send button' }));
46
+ yield userEvent.click(screen.getByRole('button', { name: 'Send' }));
47
47
  expect(screen.getByRole('tooltip', { name: 'Send' })).toHaveAttribute('id', 'test');
48
48
  }));
49
+ it('should handle isCompact', () => {
50
+ renderSend({ 'data-testid': 'button', isCompact: true });
51
+ expect(screen.getByTestId('button')).toHaveClass('pf-m-compact');
52
+ });
49
53
  });
@@ -9,6 +9,7 @@ export interface StopButtonProps extends ButtonProps {
9
9
  tooltipProps?: Omit<TooltipProps, 'content'>;
10
10
  /** English text "Stop" used in the tooltip */
11
11
  tooltipContent?: string;
12
+ isCompact?: boolean;
12
13
  }
13
14
  export declare const StopButton: React.FunctionComponent<StopButtonProps>;
14
15
  export default StopButton;
@@ -16,12 +16,12 @@ import React from 'react';
16
16
  // Import PatternFly components
17
17
  import { Button, Tooltip, Icon } from '@patternfly/react-core';
18
18
  export const StopButton = (_a) => {
19
- var { className, onClick, tooltipProps, tooltipContent = 'Stop' } = _a, props = __rest(_a, ["className", "onClick", "tooltipProps", "tooltipContent"]);
19
+ var { className, onClick, tooltipProps, tooltipContent = 'Stop', isCompact } = _a, props = __rest(_a, ["className", "onClick", "tooltipProps", "tooltipContent", "isCompact"]);
20
20
  return (React.createElement(Tooltip, Object.assign({ id: "pf-chatbot__tooltip--stop", content: tooltipContent, position: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.position) || 'top', entryDelay: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.entryDelay) || 0, exitDelay: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.exitDelay) || 0, distance: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.distance) || 8, animationDuration: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.animationDuration) || 0,
21
21
  // prevents VO announcements of both aria label and tooltip
22
22
  aria: "none" }, tooltipProps),
23
- React.createElement(Button, Object.assign({ className: `pf-chatbot__button--stop ${className !== null && className !== void 0 ? className : ''}`, variant: "link", "aria-label": props['aria-label'] || 'Stop button', onClick: onClick, icon: React.createElement(Icon, { iconSize: "xl", isInline: true },
23
+ React.createElement(Button, Object.assign({ className: `pf-chatbot__button--stop ${isCompact ? 'pf-m-compact' : ''} ${className !== null && className !== void 0 ? className : ''}`, variant: "link", "aria-label": props['aria-label'] || 'Stop', onClick: onClick, icon: React.createElement(Icon, { iconSize: isCompact ? 'lg' : 'xl', isInline: true },
24
24
  React.createElement("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
25
- React.createElement("path", { d: "M0.5 3C0.5 1.62109 1.62109 0.5 3 0.5H13C14.3789 0.5 15.5 1.62109 15.5 3V13C15.5 14.3789 14.3789 15.5 13 15.5H3C1.62109 15.5 0.5 14.3789 0.5 13V3Z", fill: "currentColor" }))) }, props))));
25
+ React.createElement("path", { d: "M0.5 3C0.5 1.62109 1.62109 0.5 3 0.5H13C14.3789 0.5 15.5 1.62109 15.5 3V13C15.5 14.3789 14.3789 15.5 13 15.5H3C1.62109 15.5 0.5 14.3789 0.5 13V3Z", fill: "currentColor" }))), size: isCompact ? 'sm' : undefined }, props))));
26
26
  };
27
27
  export default StopButton;
@@ -19,23 +19,23 @@ const renderStop = (props) => {
19
19
  describe('Stop button', () => {
20
20
  it('should render button correctly', () => {
21
21
  renderStop();
22
- expect(screen.getByRole('button', { name: 'Stop button' })).toBeTruthy();
22
+ expect(screen.getByRole('button', { name: 'Stop' })).toBeTruthy();
23
23
  });
24
24
  it('should handle onClick correctly', () => __awaiter(void 0, void 0, void 0, function* () {
25
25
  const spy = jest.fn();
26
26
  render(React.createElement(StopButton, { onClick: spy }));
27
- yield userEvent.click(screen.getByRole('button', { name: 'Stop button' }));
27
+ yield userEvent.click(screen.getByRole('button', { name: 'Stop' }));
28
28
  expect(screen.getByRole('tooltip', { name: 'Stop' })).toBeTruthy();
29
29
  expect(spy).toHaveBeenCalledTimes(1);
30
30
  }));
31
31
  it('should handle custom tooltip correctly', () => __awaiter(void 0, void 0, void 0, function* () {
32
32
  render(React.createElement(StopButton, { onClick: jest.fn, tooltipContent: "Test" }));
33
- yield userEvent.click(screen.getByRole('button', { name: 'Stop button' }));
33
+ yield userEvent.click(screen.getByRole('button', { name: 'Stop' }));
34
34
  expect(screen.getByRole('tooltip', { name: 'Test' })).toBeTruthy();
35
35
  }));
36
36
  it('should handle className prop', () => {
37
37
  renderStop({ className: 'test' });
38
- expect(screen.getByRole('button', { name: 'Stop button' })).toHaveClass('test');
38
+ expect(screen.getByRole('button', { name: 'Stop' })).toHaveClass('test');
39
39
  });
40
40
  it('should handle spread props, including aria-label', () => {
41
41
  renderStop({ 'aria-label': 'test' });
@@ -43,7 +43,11 @@ describe('Stop button', () => {
43
43
  });
44
44
  it('should handle tooltipProps prop', () => __awaiter(void 0, void 0, void 0, function* () {
45
45
  renderStop({ tooltipProps: { id: 'test' } });
46
- yield userEvent.click(screen.getByRole('button', { name: 'Stop button' }));
46
+ yield userEvent.click(screen.getByRole('button', { name: 'Stop' }));
47
47
  expect(screen.getByRole('tooltip', { name: 'Stop' })).toHaveAttribute('id', 'test');
48
48
  }));
49
+ it('should handle isCompact', () => {
50
+ renderStop({ 'data-testid': 'button', isCompact: true });
51
+ expect(screen.getByTestId('button')).toHaveClass('pf-m-compact');
52
+ });
49
53
  });
@@ -7,6 +7,6 @@ import { Button, Tooltip, Icon } from '@patternfly/react-core';
7
7
  import { ArrowUpIcon } from '@patternfly/react-icons/dist/esm/icons/arrow-up-icon';
8
8
  import { ArrowDownIcon } from '@patternfly/react-icons/dist/esm/icons/arrow-down-icon';
9
9
  const JumpButton = ({ position, isHidden, onClick }) => isHidden ? null : (React.createElement(Tooltip, { id: `pf-chatbot__tooltip--jump-${position}`, content: `Back to ${position}`, position: "top" },
10
- React.createElement(Button, { variant: "plain", className: `pf-chatbot__jump pf-chatbot__jump--${position}`, "aria-label": `Jump ${position} button`, onClick: onClick },
10
+ React.createElement(Button, { variant: "plain", className: `pf-chatbot__jump pf-chatbot__jump--${position}`, "aria-label": `Jump ${position}`, onClick: onClick },
11
11
  React.createElement(Icon, { iconSize: "lg", isInline: true }, position === 'top' ? React.createElement(ArrowUpIcon, null) : React.createElement(ArrowDownIcon, null)))));
12
12
  export default JumpButton;
@@ -15,20 +15,20 @@ import userEvent from '@testing-library/user-event';
15
15
  describe('JumpButton', () => {
16
16
  it('should render top button correctly', () => {
17
17
  render(React.createElement(JumpButton, { position: "top", onClick: jest.fn() }));
18
- expect(screen.getByRole('button', { name: /Jump top button/i })).toBeTruthy();
18
+ expect(screen.getByRole('button', { name: /Jump top/i })).toBeTruthy();
19
19
  });
20
20
  it('should render bottom button correctly', () => {
21
21
  render(React.createElement(JumpButton, { position: "bottom", onClick: jest.fn() }));
22
- expect(screen.getByRole('button', { name: /Jump bottom button/i })).toBeTruthy();
22
+ expect(screen.getByRole('button', { name: /Jump bottom/i })).toBeTruthy();
23
23
  });
24
24
  it('should call onClick appropriately', () => __awaiter(void 0, void 0, void 0, function* () {
25
25
  const spy = jest.fn();
26
26
  render(React.createElement(JumpButton, { position: "bottom", onClick: spy }));
27
- yield userEvent.click(screen.getByRole('button', { name: /Jump bottom button/i }));
27
+ yield userEvent.click(screen.getByRole('button', { name: /Jump bottom/i }));
28
28
  expect(spy).toHaveBeenCalledTimes(1);
29
29
  }));
30
30
  it('should be hidden if isHidden prop is used', () => __awaiter(void 0, void 0, void 0, function* () {
31
31
  render(React.createElement(JumpButton, { position: "bottom", onClick: jest.fn(), isHidden: true }));
32
- expect(screen.queryByRole('button', { name: /Jump bottom button/i })).toBeFalsy();
32
+ expect(screen.queryByRole('button', { name: /Jump bottom/i })).toBeFalsy();
33
33
  }));
34
34
  });
@@ -12,6 +12,10 @@ export interface MessageBoxProps extends React.HTMLProps<HTMLDivElement> {
12
12
  innerRef?: React.Ref<HTMLDivElement>;
13
13
  /** Modifier that controls how content in MessageBox is positioned within the container */
14
14
  position?: 'top' | 'bottom';
15
+ /** Click handler for additional logic for when scroll to top jump button is clicked */
16
+ onScrollToTopClick?: () => void;
17
+ /** Click handler for additional logic for when scroll to bottom jump button is clicked */
18
+ onScrollToBottomClick?: () => void;
15
19
  }
16
20
  export declare const MessageBox: React.ForwardRefExoticComponent<Omit<MessageBoxProps, "ref"> & React.RefAttributes<any>>;
17
21
  export default MessageBox;
@@ -1,9 +1,21 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
1
12
  // ============================================================================
2
13
  // Chatbot Main - Messages
3
14
  // ============================================================================
4
15
  import React from 'react';
5
16
  import JumpButton from './JumpButton';
6
- const MessageBoxBase = ({ announcement, ariaLabel = 'Scrollable message log', children, innerRef, className, position = 'top' }) => {
17
+ const MessageBoxBase = (_a) => {
18
+ var { announcement, ariaLabel = 'Scrollable message log', children, innerRef, className, position = 'top', onScrollToTopClick, onScrollToBottomClick } = _a, props = __rest(_a, ["announcement", "ariaLabel", "children", "innerRef", "className", "position", "onScrollToTopClick", "onScrollToBottomClick"]);
7
19
  const [atTop, setAtTop] = React.useState(false);
8
20
  const [atBottom, setAtBottom] = React.useState(true);
9
21
  const [isOverflowing, setIsOverflowing] = React.useState(false);
@@ -36,12 +48,14 @@ const MessageBoxBase = ({ announcement, ariaLabel = 'Scrollable message log', ch
36
48
  if (element) {
37
49
  element.scrollTo({ top: 0, behavior: 'smooth' });
38
50
  }
51
+ onScrollToTopClick && onScrollToTopClick();
39
52
  }, [messageBoxRef]);
40
53
  const scrollToBottom = React.useCallback(() => {
41
54
  const element = messageBoxRef.current;
42
55
  if (element) {
43
56
  element.scrollTo({ top: element.scrollHeight, behavior: 'smooth' });
44
57
  }
58
+ onScrollToBottomClick && onScrollToBottomClick();
45
59
  }, [messageBoxRef]);
46
60
  // Detect scroll position
47
61
  React.useEffect(() => {
@@ -59,7 +73,7 @@ const MessageBoxBase = ({ announcement, ariaLabel = 'Scrollable message log', ch
59
73
  }, [checkOverflow, handleScroll, messageBoxRef]);
60
74
  return (React.createElement(React.Fragment, null,
61
75
  React.createElement(JumpButton, { position: "top", isHidden: isOverflowing && atTop, onClick: scrollToTop }),
62
- React.createElement("div", { role: "region", tabIndex: 0, "aria-label": ariaLabel, className: `pf-chatbot__messagebox ${position === 'bottom' && 'pf-chatbot__messagebox--bottom'} ${className !== null && className !== void 0 ? className : ''}`, ref: innerRef !== null && innerRef !== void 0 ? innerRef : messageBoxRef },
76
+ React.createElement("div", Object.assign({ role: "region", tabIndex: 0, "aria-label": ariaLabel, className: `pf-chatbot__messagebox ${position === 'bottom' && 'pf-chatbot__messagebox--bottom'} ${className !== null && className !== void 0 ? className : ''}`, ref: innerRef !== null && innerRef !== void 0 ? innerRef : messageBoxRef }, props),
63
77
  children,
64
78
  React.createElement("div", { className: "pf-chatbot__messagebox-announcement", "aria-live": "polite" }, announcement)),
65
79
  React.createElement(JumpButton, { position: "bottom", isHidden: isOverflowing && atBottom, onClick: scrollToBottom })));
@@ -1,6 +1,16 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
1
10
  import React from 'react';
2
- import { render, screen } from '@testing-library/react';
11
+ import { render, screen, waitFor } from '@testing-library/react';
3
12
  import { MessageBox } from './MessageBox';
13
+ import userEvent from '@testing-library/user-event';
4
14
  describe('MessageBox', () => {
5
15
  it('should render Message box', () => {
6
16
  render(React.createElement(MessageBox, null,
@@ -14,4 +24,37 @@ describe('MessageBox', () => {
14
24
  expect(ref.current).not.toBeNull();
15
25
  expect(ref.current).toBeInstanceOf(HTMLDivElement);
16
26
  });
27
+ it('should call onScrollToBottomClick when scroll to top button is clicked', () => __awaiter(void 0, void 0, void 0, function* () {
28
+ const spy = jest.fn();
29
+ render(React.createElement(MessageBox, { onScrollToBottomClick: spy },
30
+ React.createElement("div", null, "Test message content")));
31
+ // this forces button to show
32
+ const region = screen.getByRole('region');
33
+ Object.defineProperty(region, 'scrollHeight', { configurable: true, value: 1000 });
34
+ Object.defineProperty(region, 'clientHeight', { configurable: true, value: 500 });
35
+ Object.defineProperty(region, 'scrollTop', { configurable: true, value: 0 });
36
+ region.dispatchEvent(new Event('scroll'));
37
+ yield waitFor(() => {
38
+ userEvent.click(screen.getByRole('button', { name: /Jump bottom/i }));
39
+ expect(spy).toHaveBeenCalled();
40
+ });
41
+ }));
42
+ it('should call onScrollToTopClick when scroll to top button is clicked', () => __awaiter(void 0, void 0, void 0, function* () {
43
+ const spy = jest.fn();
44
+ render(React.createElement(MessageBox, { onScrollToTopClick: spy },
45
+ React.createElement("div", null, "Test message content")));
46
+ // this forces button to show
47
+ const region = screen.getByRole('region');
48
+ Object.defineProperty(region, 'scrollHeight', { configurable: true, value: 1000 });
49
+ Object.defineProperty(region, 'clientHeight', { configurable: true, value: 500 });
50
+ Object.defineProperty(region, 'scrollTop', {
51
+ configurable: true,
52
+ value: 500
53
+ });
54
+ region.dispatchEvent(new Event('scroll'));
55
+ yield waitFor(() => {
56
+ userEvent.click(screen.getByRole('button', { name: /Jump top/i }));
57
+ expect(spy).toHaveBeenCalled();
58
+ });
59
+ }));
17
60
  });
@@ -17,6 +17,8 @@ export interface PreviewAttachmentProps {
17
17
  title?: string;
18
18
  /** Display mode for the Chatbot parent; this influences the styles applied */
19
19
  displayMode?: ChatbotDisplayMode;
20
+ /** Sets modal to compact styling. */
21
+ isCompact?: boolean;
20
22
  }
21
23
  export declare const PreviewAttachment: React.FunctionComponent<PreviewAttachmentProps>;
22
24
  export default PreviewAttachment;
@@ -4,7 +4,7 @@
4
4
  import React from 'react';
5
5
  import CodeModal from '../CodeModal';
6
6
  import { ChatbotDisplayMode } from '../Chatbot';
7
- export const PreviewAttachment = ({ fileName, code, handleModalToggle, isModalOpen, onDismiss = undefined, onEdit, title = 'Preview attachment', displayMode = ChatbotDisplayMode.default }) => {
7
+ export const PreviewAttachment = ({ fileName, code, handleModalToggle, isModalOpen, onDismiss = undefined, onEdit, title = 'Preview attachment', displayMode = ChatbotDisplayMode.default, isCompact }) => {
8
8
  const handleEdit = (_event) => {
9
9
  handleModalToggle(_event);
10
10
  onEdit(_event);
@@ -13,6 +13,6 @@ export const PreviewAttachment = ({ fileName, code, handleModalToggle, isModalOp
13
13
  handleModalToggle(_event);
14
14
  onDismiss && onDismiss(_event);
15
15
  };
16
- return (React.createElement(CodeModal, { codeEditorControlClassName: "pf-chatbot__code-modal--controls", code: code, fileName: fileName, handleModalToggle: handleModalToggle, isCopyEnabled: true, isLineNumbersVisible: false, isModalOpen: isModalOpen, onPrimaryAction: handleEdit, onSecondaryAction: handleDismiss, primaryActionBtn: "Edit", secondaryActionBtn: "Dismiss", title: title, isReadOnly: true, displayMode: displayMode }));
16
+ return (React.createElement(CodeModal, { codeEditorControlClassName: "pf-chatbot__code-modal--controls", code: code, fileName: fileName, handleModalToggle: handleModalToggle, isCopyEnabled: true, isLineNumbersVisible: false, isModalOpen: isModalOpen, onPrimaryAction: handleEdit, onSecondaryAction: handleDismiss, primaryActionBtn: "Edit", secondaryActionBtn: "Dismiss", title: title, isReadOnly: true, displayMode: displayMode, isCompact: isCompact }));
17
17
  };
18
18
  export default PreviewAttachment;
@@ -8,6 +8,8 @@ export interface SettingsFormProps {
8
8
  label: string;
9
9
  field: React.ReactElement;
10
10
  }[];
11
+ /** Sets form to compact styling. */
12
+ isCompact?: boolean;
11
13
  }
12
14
  export declare const SettingsForm: React.FunctionComponent<SettingsFormProps>;
13
15
  export default SettingsForm;
@@ -11,8 +11,8 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  };
12
12
  import React from 'react';
13
13
  export const SettingsForm = (_a) => {
14
- var { className, fields = [] } = _a, props = __rest(_a, ["className", "fields"]);
15
- return (React.createElement("div", Object.assign({ className: `pf-chatbot__settings-form-container ${className}` }, props),
14
+ var { className, fields = [], isCompact } = _a, props = __rest(_a, ["className", "fields", "isCompact"]);
15
+ return (React.createElement("div", Object.assign({ className: `pf-chatbot__settings-form-container ${isCompact ? 'pf-m-compact' : ''} ${className ? ` ${className}` : ''}` }, props),
16
16
  React.createElement("form", { className: "pf-chatbot__settings-form" }, fields.map((field) => (React.createElement("div", { className: "pf-chatbot__settings-form-row", key: field.label },
17
17
  React.createElement("label", { className: "pf-chatbot__settings-label", htmlFor: field.id }, field.label),
18
18
  field.field))))));
@@ -1 +1 @@
1
- export {};
1
+ import '@testing-library/jest-dom';
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { Button } from '@patternfly/react-core';
3
3
  import { render, screen } from '@testing-library/react';
4
4
  import { SettingsForm } from './SettingsForm';
5
+ import '@testing-library/jest-dom';
5
6
  describe('SettingsForm', () => {
6
7
  it('should render settingsForm with custom classname', () => {
7
8
  const { container } = render(React.createElement(SettingsForm, { className: "custom-settings" }));
@@ -18,4 +19,15 @@ describe('SettingsForm', () => {
18
19
  render(React.createElement(SettingsForm, { fields: fields }));
19
20
  expect(screen.getByRole('button', { name: 'Archive chat' })).toBeTruthy();
20
21
  });
22
+ it('should render settingsForm with isCompact', () => {
23
+ const fields = [
24
+ {
25
+ id: 'archived-chat',
26
+ label: 'Archive chat',
27
+ field: (React.createElement(Button, { id: "archived-chat", variant: "secondary" }, "Archive chat"))
28
+ }
29
+ ];
30
+ render(React.createElement(SettingsForm, { "data-testid": "settings-form", fields: fields, isCompact: true }));
31
+ expect(screen.getByTestId('settings-form')).toHaveClass('pf-m-compact');
32
+ });
21
33
  });
@@ -17,7 +17,7 @@ import React from 'react';
17
17
  import { Button, ButtonVariant, Card, CardBody, CardFooter, CardTitle, ExpandableSection, ExpandableSectionVariant, Icon, pluralize, Truncate } from '@patternfly/react-core';
18
18
  import { ExternalLinkSquareAltIcon } from '@patternfly/react-icons';
19
19
  const SourcesCard = (_a) => {
20
- var { className, isDisabled, paginationAriaLabel = 'Pagination', sources, sourceWord = 'source', sourceWordPlural = 'sources', toNextPageAriaLabel = 'Go to next page', toPreviousPageAriaLabel = 'Go to previous page', onNextClick, onPreviousClick, onSetPage, showMoreWords = 'show more', showLessWords = 'show less' } = _a, props = __rest(_a, ["className", "isDisabled", "paginationAriaLabel", "sources", "sourceWord", "sourceWordPlural", "toNextPageAriaLabel", "toPreviousPageAriaLabel", "onNextClick", "onPreviousClick", "onSetPage", "showMoreWords", "showLessWords"]);
20
+ var { className, isDisabled, paginationAriaLabel = 'Pagination', sources, sourceWord = 'source', sourceWordPlural = 'sources', toNextPageAriaLabel = 'Go to next page', toPreviousPageAriaLabel = 'Go to previous page', onNextClick, onPreviousClick, onSetPage, showMoreWords = 'show more', showLessWords = 'show less', isCompact } = _a, props = __rest(_a, ["className", "isDisabled", "paginationAriaLabel", "sources", "sourceWord", "sourceWordPlural", "toNextPageAriaLabel", "toPreviousPageAriaLabel", "onNextClick", "onPreviousClick", "onSetPage", "showMoreWords", "showLessWords", "isCompact"]);
21
21
  const [page, setPage] = React.useState(1);
22
22
  const [isExpanded, setIsExpanded] = React.useState(false);
23
23
  const onToggle = (_event, isExpanded) => {
@@ -35,7 +35,7 @@ const SourcesCard = (_a) => {
35
35
  };
36
36
  return (React.createElement("div", { className: "pf-chatbot__source" },
37
37
  React.createElement("span", null, pluralize(sources.length, sourceWord, sourceWordPlural)),
38
- React.createElement(Card, Object.assign({ className: "pf-chatbot__sources-card" }, props),
38
+ React.createElement(Card, Object.assign({ isCompact: isCompact, className: "pf-chatbot__sources-card" }, props),
39
39
  React.createElement(CardTitle, { className: "pf-chatbot__sources-card-title" },
40
40
  React.createElement(Button, { component: "a", variant: ButtonVariant.link, href: sources[page - 1].link, icon: sources[page - 1].isExternal ? React.createElement(ExternalLinkSquareAltIcon, null) : undefined, iconPosition: "end", isInline: true, rel: sources[page - 1].isExternal ? 'noreferrer' : undefined, target: sources[page - 1].isExternal ? '_blank' : undefined }, renderTitle(sources[page - 1].title))),
41
41
  sources[page - 1].body && (React.createElement(CardBody, { className: `pf-chatbot__sources-card-body` }, sources[page - 1].hasShowMore ? (
@@ -28,6 +28,8 @@ export interface TermsOfUseProps extends ModalProps {
28
28
  innerRef?: React.Ref<HTMLDivElement>;
29
29
  /** OuiaID applied to modal */
30
30
  ouiaId?: string;
31
+ /** Sets modal to compact styling. */
32
+ isCompact?: boolean;
31
33
  }
32
34
  export declare const TermsOfUseBase: React.FunctionComponent<TermsOfUseProps>;
33
35
  declare const TermsOfUse: React.ForwardRefExoticComponent<Omit<TermsOfUseProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -17,7 +17,7 @@ import { Button, Content, ModalBody, ModalFooter, ModalHeader } from '@patternfl
17
17
  import { ChatbotDisplayMode } from '../Chatbot';
18
18
  import ChatbotModal from '../ChatbotModal/ChatbotModal';
19
19
  export const TermsOfUseBase = (_a) => {
20
- var { handleModalToggle, isModalOpen, onPrimaryAction, onSecondaryAction, primaryActionBtn = 'Accept', secondaryActionBtn = 'Decline', title = 'Terms of use', image, altText, displayMode = ChatbotDisplayMode.default, className, children, innerRef, ouiaId = 'TermsOfUse' } = _a, props = __rest(_a, ["handleModalToggle", "isModalOpen", "onPrimaryAction", "onSecondaryAction", "primaryActionBtn", "secondaryActionBtn", "title", "image", "altText", "displayMode", "className", "children", "innerRef", "ouiaId"]);
20
+ var { handleModalToggle, isModalOpen, onPrimaryAction, onSecondaryAction, primaryActionBtn = 'Accept', secondaryActionBtn = 'Decline', title = 'Terms of use', image, altText, displayMode = ChatbotDisplayMode.default, className, children, innerRef, ouiaId = 'TermsOfUse', isCompact } = _a, props = __rest(_a, ["handleModalToggle", "isModalOpen", "onPrimaryAction", "onSecondaryAction", "primaryActionBtn", "secondaryActionBtn", "title", "image", "altText", "displayMode", "className", "children", "innerRef", "ouiaId", "isCompact"]);
21
21
  const handlePrimaryAction = (_event) => {
22
22
  handleModalToggle(_event);
23
23
  onPrimaryAction && onPrimaryAction(_event);
@@ -25,13 +25,13 @@ export const TermsOfUseBase = (_a) => {
25
25
  const handleSecondaryAction = (_event) => {
26
26
  onSecondaryAction(_event);
27
27
  };
28
- const modal = (React.createElement(ChatbotModal, Object.assign({ isOpen: isModalOpen, ouiaId: ouiaId, "aria-labelledby": "terms-of-use-title", "aria-describedby": "terms-of-use-modal", className: `pf-chatbot__terms-of-use-modal pf-chatbot__terms-of-use-modal--${displayMode} ${className ? className : ''}`, displayMode: displayMode }, props),
28
+ const modal = (React.createElement(ChatbotModal, Object.assign({ isOpen: isModalOpen, ouiaId: ouiaId, "aria-labelledby": "terms-of-use-title", "aria-describedby": "terms-of-use-modal", className: `pf-chatbot__terms-of-use-modal pf-chatbot__terms-of-use-modal--${displayMode} ${isCompact ? 'pf-m-compact' : ''} ${className ? className : ''}`, displayMode: displayMode }, props),
29
29
  React.createElement("section", { className: `pf-chatbot__terms-of-use--section`, "aria-label": title, tabIndex: -1, ref: innerRef },
30
- React.createElement(ModalHeader, null,
30
+ React.createElement(ModalHeader, { className: "pf-chatbot__terms-of-use--modal-header" },
31
31
  React.createElement("div", { className: "pf-chatbot__terms-of-use--header" },
32
- image && altText && React.createElement("img", { src: image, className: "pf-chatbot__terms-of-use--image", alt: altText }),
32
+ !isCompact && image && altText && (React.createElement("img", { src: image, className: "pf-chatbot__terms-of-use--image", alt: altText })),
33
33
  React.createElement("h1", { className: "pf-chatbot__terms-of-use--title" }, title))),
34
- React.createElement(ModalBody, null,
34
+ React.createElement(ModalBody, { className: "pf-chatbot__terms-of-use--modal-body" },
35
35
  React.createElement(Content, null, children)),
36
36
  React.createElement(ModalFooter, { className: "pf-chatbot__terms-of-use--footer" },
37
37
  React.createElement(Button, { isBlock: true, key: "terms-of-use-modal-primary", variant: "primary", onClick: handlePrimaryAction, form: "terms-of-use-form", size: "lg" }, primaryActionBtn),
@@ -1 +1 @@
1
- {"root":["../src/index.ts","../src/AttachMenu/AttachMenu.tsx","../src/AttachMenu/index.ts","../src/AttachmentEdit/AttachmentEdit.test.tsx","../src/AttachmentEdit/AttachmentEdit.tsx","../src/AttachmentEdit/index.ts","../src/Chatbot/Chatbot.test.tsx","../src/Chatbot/Chatbot.tsx","../src/Chatbot/index.ts","../src/ChatbotAlert/ChatbotAlert.test.tsx","../src/ChatbotAlert/ChatbotAlert.tsx","../src/ChatbotAlert/index.ts","../src/ChatbotContent/ChatbotContent.test.tsx","../src/ChatbotContent/ChatbotContent.tsx","../src/ChatbotContent/index.ts","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx","../src/ChatbotConversationHistoryNav/EmptyState.tsx","../src/ChatbotConversationHistoryNav/LoadingState.tsx","../src/ChatbotConversationHistoryNav/index.ts","../src/ChatbotFooter/ChatbotFooter.test.tsx","../src/ChatbotFooter/ChatbotFooter.tsx","../src/ChatbotFooter/ChatbotFooternote.test.tsx","../src/ChatbotFooter/ChatbotFootnote.tsx","../src/ChatbotFooter/index.ts","../src/ChatbotHeader/ChatbotHeader.test.tsx","../src/ChatbotHeader/ChatbotHeader.tsx","../src/ChatbotHeader/ChatbotHeaderActions.test.tsx","../src/ChatbotHeader/ChatbotHeaderActions.tsx","../src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx","../src/ChatbotHeader/ChatbotHeaderCloseButton.tsx","../src/ChatbotHeader/ChatbotHeaderMain.test.tsx","../src/ChatbotHeader/ChatbotHeaderMain.tsx","../src/ChatbotHeader/ChatbotHeaderMenu.test.tsx","../src/ChatbotHeader/ChatbotHeaderMenu.tsx","../src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx","../src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx","../src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx","../src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx","../src/ChatbotHeader/ChatbotHeaderTitle.test.tsx","../src/ChatbotHeader/ChatbotHeaderTitle.tsx","../src/ChatbotHeader/index.ts","../src/ChatbotModal/ChatbotModal.tsx","../src/ChatbotModal/index.ts","../src/ChatbotPopover/ChatbotPopover.tsx","../src/ChatbotPopover/index.ts","../src/ChatbotToggle/ChatbotToggle.test.tsx","../src/ChatbotToggle/ChatbotToggle.tsx","../src/ChatbotToggle/index.ts","../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx","../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.tsx","../src/ChatbotWelcomePrompt/index.ts","../src/CodeModal/CodeModal.tsx","../src/CodeModal/index.ts","../src/Compare/Compare.test.tsx","../src/Compare/Compare.tsx","../src/Compare/index.ts","../src/FileDetails/FileDetails.test.tsx","../src/FileDetails/FileDetails.tsx","../src/FileDetails/index.ts","../src/FileDetailsLabel/FileDetailsLabel.test.tsx","../src/FileDetailsLabel/FileDetailsLabel.tsx","../src/FileDetailsLabel/index.ts","../src/FileDropZone/FileDropZone.test.tsx","../src/FileDropZone/FileDropZone.tsx","../src/FileDropZone/index.ts","../src/LoadingMessage/LoadingMessage.test.tsx","../src/LoadingMessage/LoadingMessage.tsx","../src/LoadingMessage/index.ts","../src/Message/Message.test.tsx","../src/Message/Message.tsx","../src/Message/MessageInput.tsx","../src/Message/MessageLoading.tsx","../src/Message/index.ts","../src/Message/CodeBlockMessage/CodeBlockMessage.tsx","../src/Message/ErrorMessage/ErrorMessage.tsx","../src/Message/ImageMessage/ImageMessage.tsx","../src/Message/LinkMessage/LinkMessage.tsx","../src/Message/ListMessage/ListItemMessage.tsx","../src/Message/ListMessage/OrderedListMessage.tsx","../src/Message/ListMessage/UnorderedListMessage.tsx","../src/Message/QuickResponse/QuickResponse.tsx","../src/Message/QuickStarts/FallbackImg.tsx","../src/Message/QuickStarts/QuickStartTile.tsx","../src/Message/QuickStarts/QuickStartTileDescription.test.tsx","../src/Message/QuickStarts/QuickStartTileDescription.tsx","../src/Message/QuickStarts/QuickStartTileHeader.tsx","../src/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.ts","../src/Message/QuickStarts/monitor-sampleapp-quickstart.ts","../src/Message/QuickStarts/types.ts","../src/Message/TableMessage/TableMessage.tsx","../src/Message/TableMessage/TbodyMessage.tsx","../src/Message/TableMessage/TdMessage.tsx","../src/Message/TableMessage/ThMessage.tsx","../src/Message/TableMessage/TheadMessage.tsx","../src/Message/TableMessage/TrMessage.tsx","../src/Message/TextMessage/TextMessage.tsx","../src/Message/UserFeedback/CloseButton.tsx","../src/Message/UserFeedback/UserFeedback.test.tsx","../src/Message/UserFeedback/UserFeedback.tsx","../src/Message/UserFeedback/UserFeedbackComplete.test.tsx","../src/Message/UserFeedback/UserFeedbackComplete.tsx","../src/MessageBar/AttachButton.test.tsx","../src/MessageBar/AttachButton.tsx","../src/MessageBar/MessageBar.test.tsx","../src/MessageBar/MessageBar.tsx","../src/MessageBar/MicrophoneButton.tsx","../src/MessageBar/SendButton.test.tsx","../src/MessageBar/SendButton.tsx","../src/MessageBar/StopButton.test.tsx","../src/MessageBar/StopButton.tsx","../src/MessageBar/index.ts","../src/MessageBox/JumpButton.test.tsx","../src/MessageBox/JumpButton.tsx","../src/MessageBox/MessageBox.test.tsx","../src/MessageBox/MessageBox.tsx","../src/MessageBox/index.ts","../src/PreviewAttachment/PreviewAttachment.test.tsx","../src/PreviewAttachment/PreviewAttachment.tsx","../src/PreviewAttachment/index.ts","../src/ResponseActions/ResponseActionButton.test.tsx","../src/ResponseActions/ResponseActionButton.tsx","../src/ResponseActions/ResponseActions.test.tsx","../src/ResponseActions/ResponseActions.tsx","../src/ResponseActions/index.ts","../src/Settings/SettingsForm.test.tsx","../src/Settings/SettingsForm.tsx","../src/Settings/index.ts","../src/SourceDetailsMenuItem/SourceDetailsMenuItem.tsx","../src/SourceDetailsMenuItem/index.ts","../src/SourcesCard/SourcesCard.test.tsx","../src/SourcesCard/SourcesCard.tsx","../src/SourcesCard/index.ts","../src/TermsOfUse/TermsOfUse.test.tsx","../src/TermsOfUse/TermsOfUse.tsx","../src/TermsOfUse/index.ts","../src/__mocks__/rehype-external-links.ts","../src/__mocks__/rehype-sanitize.ts","../src/__mocks__/rehype-unwrap-images.tsx","../src/tracking/console_tracking_provider.ts","../src/tracking/index.ts","../src/tracking/posthog_tracking_provider.ts","../src/tracking/segment_tracking_provider.ts","../src/tracking/trackingProviderProxy.ts","../src/tracking/tracking_api.ts","../src/tracking/tracking_registry.ts","../src/tracking/tracking_spi.ts","../src/tracking/umami_tracking_provider.ts"],"version":"5.6.3"}
1
+ {"root":["../src/index.ts","../src/AttachMenu/AttachMenu.tsx","../src/AttachMenu/index.ts","../src/AttachmentEdit/AttachmentEdit.test.tsx","../src/AttachmentEdit/AttachmentEdit.tsx","../src/AttachmentEdit/index.ts","../src/Chatbot/Chatbot.test.tsx","../src/Chatbot/Chatbot.tsx","../src/Chatbot/index.ts","../src/ChatbotAlert/ChatbotAlert.test.tsx","../src/ChatbotAlert/ChatbotAlert.tsx","../src/ChatbotAlert/index.ts","../src/ChatbotContent/ChatbotContent.test.tsx","../src/ChatbotContent/ChatbotContent.tsx","../src/ChatbotContent/index.ts","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx","../src/ChatbotConversationHistoryNav/EmptyState.tsx","../src/ChatbotConversationHistoryNav/LoadingState.tsx","../src/ChatbotConversationHistoryNav/index.ts","../src/ChatbotFooter/ChatbotFooter.test.tsx","../src/ChatbotFooter/ChatbotFooter.tsx","../src/ChatbotFooter/ChatbotFooternote.test.tsx","../src/ChatbotFooter/ChatbotFootnote.tsx","../src/ChatbotFooter/index.ts","../src/ChatbotHeader/ChatbotHeader.test.tsx","../src/ChatbotHeader/ChatbotHeader.tsx","../src/ChatbotHeader/ChatbotHeaderActions.test.tsx","../src/ChatbotHeader/ChatbotHeaderActions.tsx","../src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx","../src/ChatbotHeader/ChatbotHeaderCloseButton.tsx","../src/ChatbotHeader/ChatbotHeaderMain.test.tsx","../src/ChatbotHeader/ChatbotHeaderMain.tsx","../src/ChatbotHeader/ChatbotHeaderMenu.test.tsx","../src/ChatbotHeader/ChatbotHeaderMenu.tsx","../src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx","../src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx","../src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx","../src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx","../src/ChatbotHeader/ChatbotHeaderTitle.test.tsx","../src/ChatbotHeader/ChatbotHeaderTitle.tsx","../src/ChatbotHeader/index.ts","../src/ChatbotModal/ChatbotModal.test.tsx","../src/ChatbotModal/ChatbotModal.tsx","../src/ChatbotModal/index.ts","../src/ChatbotPopover/ChatbotPopover.tsx","../src/ChatbotPopover/index.ts","../src/ChatbotToggle/ChatbotToggle.test.tsx","../src/ChatbotToggle/ChatbotToggle.tsx","../src/ChatbotToggle/index.ts","../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx","../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.tsx","../src/ChatbotWelcomePrompt/index.ts","../src/CodeModal/CodeModal.test.tsx","../src/CodeModal/CodeModal.tsx","../src/CodeModal/index.ts","../src/Compare/Compare.test.tsx","../src/Compare/Compare.tsx","../src/Compare/index.ts","../src/FileDetails/FileDetails.test.tsx","../src/FileDetails/FileDetails.tsx","../src/FileDetails/index.ts","../src/FileDetailsLabel/FileDetailsLabel.test.tsx","../src/FileDetailsLabel/FileDetailsLabel.tsx","../src/FileDetailsLabel/index.ts","../src/FileDropZone/FileDropZone.test.tsx","../src/FileDropZone/FileDropZone.tsx","../src/FileDropZone/index.ts","../src/LoadingMessage/LoadingMessage.test.tsx","../src/LoadingMessage/LoadingMessage.tsx","../src/LoadingMessage/index.ts","../src/Message/Message.test.tsx","../src/Message/Message.tsx","../src/Message/MessageInput.tsx","../src/Message/MessageLoading.tsx","../src/Message/index.ts","../src/Message/CodeBlockMessage/CodeBlockMessage.tsx","../src/Message/ErrorMessage/ErrorMessage.tsx","../src/Message/ImageMessage/ImageMessage.tsx","../src/Message/LinkMessage/LinkMessage.tsx","../src/Message/ListMessage/ListItemMessage.tsx","../src/Message/ListMessage/OrderedListMessage.tsx","../src/Message/ListMessage/UnorderedListMessage.tsx","../src/Message/QuickResponse/QuickResponse.tsx","../src/Message/QuickStarts/FallbackImg.tsx","../src/Message/QuickStarts/QuickStartTile.tsx","../src/Message/QuickStarts/QuickStartTileDescription.test.tsx","../src/Message/QuickStarts/QuickStartTileDescription.tsx","../src/Message/QuickStarts/QuickStartTileHeader.tsx","../src/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.ts","../src/Message/QuickStarts/monitor-sampleapp-quickstart.ts","../src/Message/QuickStarts/types.ts","../src/Message/TableMessage/TableMessage.tsx","../src/Message/TableMessage/TbodyMessage.tsx","../src/Message/TableMessage/TdMessage.tsx","../src/Message/TableMessage/ThMessage.tsx","../src/Message/TableMessage/TheadMessage.tsx","../src/Message/TableMessage/TrMessage.tsx","../src/Message/TextMessage/TextMessage.tsx","../src/Message/UserFeedback/CloseButton.tsx","../src/Message/UserFeedback/UserFeedback.test.tsx","../src/Message/UserFeedback/UserFeedback.tsx","../src/Message/UserFeedback/UserFeedbackComplete.test.tsx","../src/Message/UserFeedback/UserFeedbackComplete.tsx","../src/MessageBar/AttachButton.test.tsx","../src/MessageBar/AttachButton.tsx","../src/MessageBar/MessageBar.test.tsx","../src/MessageBar/MessageBar.tsx","../src/MessageBar/MicrophoneButton.tsx","../src/MessageBar/SendButton.test.tsx","../src/MessageBar/SendButton.tsx","../src/MessageBar/StopButton.test.tsx","../src/MessageBar/StopButton.tsx","../src/MessageBar/index.ts","../src/MessageBox/JumpButton.test.tsx","../src/MessageBox/JumpButton.tsx","../src/MessageBox/MessageBox.test.tsx","../src/MessageBox/MessageBox.tsx","../src/MessageBox/index.ts","../src/PreviewAttachment/PreviewAttachment.test.tsx","../src/PreviewAttachment/PreviewAttachment.tsx","../src/PreviewAttachment/index.ts","../src/ResponseActions/ResponseActionButton.test.tsx","../src/ResponseActions/ResponseActionButton.tsx","../src/ResponseActions/ResponseActions.test.tsx","../src/ResponseActions/ResponseActions.tsx","../src/ResponseActions/index.ts","../src/Settings/SettingsForm.test.tsx","../src/Settings/SettingsForm.tsx","../src/Settings/index.ts","../src/SourceDetailsMenuItem/SourceDetailsMenuItem.tsx","../src/SourceDetailsMenuItem/index.ts","../src/SourcesCard/SourcesCard.test.tsx","../src/SourcesCard/SourcesCard.tsx","../src/SourcesCard/index.ts","../src/TermsOfUse/TermsOfUse.test.tsx","../src/TermsOfUse/TermsOfUse.tsx","../src/TermsOfUse/index.ts","../src/__mocks__/rehype-external-links.ts","../src/__mocks__/rehype-sanitize.ts","../src/__mocks__/rehype-unwrap-images.tsx","../src/tracking/console_tracking_provider.ts","../src/tracking/index.ts","../src/tracking/posthog_tracking_provider.ts","../src/tracking/segment_tracking_provider.ts","../src/tracking/trackingProviderProxy.ts","../src/tracking/tracking_api.ts","../src/tracking/tracking_registry.ts","../src/tracking/tracking_spi.ts","../src/tracking/umami_tracking_provider.ts"],"version":"5.6.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/chatbot",
3
- "version": "6.3.0-prerelease.1",
3
+ "version": "6.3.0-prerelease.11",
4
4
  "description": "This library provides React components based on PatternFly 6 that can be used to build chatbots.",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
- import { Button } from '@patternfly/react-core';
2
+ import { Button, Checkbox } from '@patternfly/react-core';
3
3
  import { AttachmentEdit } from '@patternfly/chatbot/dist/dynamic/AttachmentEdit';
4
4
 
5
5
  export const AttachmentEditModalExample: React.FunctionComponent = () => {
6
6
  const [isModalOpen, setIsModalOpen] = React.useState(false);
7
+ const [isCompact, setIsCompact] = React.useState(false);
7
8
 
8
9
  const handleModalToggle = (_event: React.MouseEvent | MouseEvent | KeyboardEvent) => {
9
10
  setIsModalOpen(!isModalOpen);
@@ -11,6 +12,13 @@ export const AttachmentEditModalExample: React.FunctionComponent = () => {
11
12
 
12
13
  return (
13
14
  <>
15
+ <Checkbox
16
+ label="Show compact version"
17
+ isChecked={isCompact}
18
+ onChange={() => setIsCompact(!isCompact)}
19
+ id="modal-compact-edit"
20
+ name="modal-compact-edit"
21
+ ></Checkbox>
14
22
  <Button onClick={handleModalToggle}>Launch modal</Button>
15
23
  <AttachmentEdit
16
24
  code="I am a code snippet"
@@ -20,6 +28,7 @@ export const AttachmentEditModalExample: React.FunctionComponent = () => {
20
28
  onCancel={() => null}
21
29
  // eslint-disable-next-line no-console
22
30
  onSave={(_event, code) => console.log(`The new code is "${code}"`)}
31
+ isCompact={isCompact}
23
32
  />
24
33
  </>
25
34
  );
@@ -40,6 +40,26 @@ export const MessageWithFeedbackExample: React.FunctionComponent = () => {
40
40
  focusOnLoad: false
41
41
  }}
42
42
  />
43
+ <Message
44
+ name="Bot"
45
+ role="bot"
46
+ avatar={patternflyAvatar}
47
+ content="This is a compact message with the feedback card:"
48
+ userFeedbackForm={{
49
+ quickResponses: [
50
+ { id: '1', content: 'Helpful information' },
51
+ { id: '2', content: 'Easy to understand' },
52
+ { id: '3', content: 'Resolved my issue' }
53
+ ],
54
+ onSubmit: (quickResponse, additionalFeedback) =>
55
+ alert(`Selected ${quickResponse} and received the additional feedback: ${additionalFeedback}`),
56
+ hasTextArea,
57
+ // eslint-disable-next-line no-console
58
+ onClose: () => console.log('closed feedback form'),
59
+ focusOnLoad: false
60
+ }}
61
+ isCompact
62
+ />
43
63
  </Stack>
44
64
  <Stack hasGutter>
45
65
  <FormGroup role="radiogroup" isInline fieldId="feedback-thank-you" label="Variant">
@@ -65,6 +85,19 @@ export const MessageWithFeedbackExample: React.FunctionComponent = () => {
65
85
  focusOnLoad: false
66
86
  }}
67
87
  />
88
+ <Message
89
+ name="Bot"
90
+ role="bot"
91
+ avatar={patternflyAvatar}
92
+ content="This is a compact thank-you message, which is displayed once the feedback card is submitted:"
93
+ // eslint-disable-next-line no-console
94
+ userFeedbackComplete={{
95
+ // eslint-disable-next-line no-console
96
+ onClose: hasCloseButton ? () => console.log('closed completion message') : undefined,
97
+ focusOnLoad: false
98
+ }}
99
+ isCompact
100
+ />
68
101
  </Stack>
69
102
  </>
70
103
  );
@@ -50,5 +50,29 @@ export const MessageWithQuickResponsesExample: React.FunctionComponent = () => (
50
50
  { id: '2', content: 'No', onClick: () => alert('Clicked no') }
51
51
  ]}
52
52
  />
53
+ <Message
54
+ name="Bot"
55
+ role="bot"
56
+ avatar={patternflyAvatar}
57
+ content="Welcome back, User! How can I help you today?"
58
+ quickResponses={[
59
+ { id: '1', content: 'Help me with an access issue', onClick: () => alert('Clicked id 1') },
60
+ { id: '2', content: 'Show my critical vulnerabilities', onClick: () => alert('Clicked id 2') },
61
+ { id: '3', content: 'Create new integrations', onClick: () => alert('Clicked id 3') },
62
+ { id: '4', content: 'Get recommendations from an advisor', onClick: () => alert('Clicked id 4') },
63
+ { id: '5', content: 'Something else', onClick: () => alert('Clicked id 5') }
64
+ ]}
65
+ />
66
+ <Message
67
+ name="Bot"
68
+ role="bot"
69
+ avatar={patternflyAvatar}
70
+ content="Example with compact responses"
71
+ quickResponses={[
72
+ { id: '1', content: 'Yes', onClick: () => alert('Clicked id 1') },
73
+ { id: '2', content: 'No', onClick: () => alert('Clicked id 2') }
74
+ ]}
75
+ isCompact
76
+ />
53
77
  </>
54
78
  );
@@ -27,5 +27,16 @@ export const MessageWithQuickStartExample: React.FunctionComponent = () => (
27
27
  onSelectQuickStart: (id) => alert(id)
28
28
  }}
29
29
  />
30
+ <Message
31
+ name="Bot"
32
+ role="bot"
33
+ avatar={patternflyAvatar}
34
+ content="This quick start tile is compact"
35
+ quickStarts={{
36
+ quickStart: monitorSampleAppQuickStart,
37
+ onSelectQuickStart: (id) => alert(id)
38
+ }}
39
+ isCompact
40
+ />
30
41
  </>
31
42
  );