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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) 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/Message.d.ts +2 -0
  45. package/dist/cjs/Message/Message.js +6 -6
  46. package/dist/cjs/Message/Message.test.js +12 -0
  47. package/dist/cjs/Message/QuickResponse/QuickResponse.d.ts +2 -0
  48. package/dist/cjs/Message/QuickResponse/QuickResponse.js +2 -2
  49. package/dist/cjs/Message/QuickStarts/QuickStartTile.d.ts +2 -0
  50. package/dist/cjs/Message/QuickStarts/QuickStartTile.js +2 -2
  51. package/dist/cjs/Message/UserFeedback/UserFeedback.js +4 -4
  52. package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +4 -0
  53. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +4 -4
  54. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +4 -0
  55. package/dist/cjs/MessageBar/AttachButton.d.ts +1 -0
  56. package/dist/cjs/MessageBar/AttachButton.js +3 -3
  57. package/dist/cjs/MessageBar/AttachButton.test.js +4 -0
  58. package/dist/cjs/MessageBar/MessageBar.d.ts +5 -0
  59. package/dist/cjs/MessageBar/MessageBar.js +14 -13
  60. package/dist/cjs/MessageBar/MessageBar.test.js +13 -0
  61. package/dist/cjs/MessageBar/MicrophoneButton.d.ts +1 -0
  62. package/dist/cjs/MessageBar/MicrophoneButton.js +3 -3
  63. package/dist/cjs/MessageBar/SendButton.d.ts +1 -0
  64. package/dist/cjs/MessageBar/SendButton.js +3 -3
  65. package/dist/cjs/MessageBar/SendButton.test.js +4 -0
  66. package/dist/cjs/MessageBar/StopButton.d.ts +1 -0
  67. package/dist/cjs/MessageBar/StopButton.js +3 -3
  68. package/dist/cjs/MessageBar/StopButton.test.js +4 -0
  69. package/dist/cjs/MessageBox/MessageBox.d.ts +4 -0
  70. package/dist/cjs/MessageBox/MessageBox.js +16 -2
  71. package/dist/cjs/MessageBox/MessageBox.test.js +43 -0
  72. package/dist/cjs/PreviewAttachment/PreviewAttachment.d.ts +2 -0
  73. package/dist/cjs/PreviewAttachment/PreviewAttachment.js +2 -2
  74. package/dist/cjs/Settings/SettingsForm.d.ts +2 -0
  75. package/dist/cjs/Settings/SettingsForm.js +2 -2
  76. package/dist/cjs/Settings/SettingsForm.test.d.ts +1 -1
  77. package/dist/cjs/Settings/SettingsForm.test.js +12 -0
  78. package/dist/cjs/SourcesCard/SourcesCard.js +2 -2
  79. package/dist/cjs/TermsOfUse/TermsOfUse.d.ts +2 -0
  80. package/dist/cjs/TermsOfUse/TermsOfUse.js +5 -5
  81. package/dist/css/main.css +218 -15
  82. package/dist/css/main.css.map +1 -1
  83. package/dist/esm/AttachmentEdit/AttachmentEdit.d.ts +2 -0
  84. package/dist/esm/AttachmentEdit/AttachmentEdit.js +2 -2
  85. package/dist/esm/Chatbot/Chatbot.d.ts +2 -0
  86. package/dist/esm/Chatbot/Chatbot.js +2 -2
  87. package/dist/esm/Chatbot/Chatbot.test.js +4 -0
  88. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +2 -0
  89. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +3 -3
  90. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +4 -0
  91. package/dist/esm/ChatbotFooter/ChatbotFooter.d.ts +1 -0
  92. package/dist/esm/ChatbotFooter/ChatbotFooter.js +2 -2
  93. package/dist/esm/ChatbotFooter/ChatbotFooter.test.d.ts +1 -1
  94. package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +5 -0
  95. package/dist/esm/ChatbotHeader/ChatbotHeader.js +1 -1
  96. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +4 -2
  97. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.js +20 -6
  98. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -1
  99. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.js +5 -0
  100. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.js +1 -1
  101. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.d.ts +3 -2
  102. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +20 -6
  103. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -1
  104. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +5 -0
  105. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +1 -0
  106. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -3
  107. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -1
  108. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +5 -0
  109. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +1 -0
  110. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +2 -2
  111. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -1
  112. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +5 -0
  113. package/dist/esm/ChatbotModal/ChatbotModal.d.ts +3 -0
  114. package/dist/esm/ChatbotModal/ChatbotModal.js +2 -2
  115. package/dist/esm/ChatbotModal/ChatbotModal.test.d.ts +1 -0
  116. package/dist/esm/ChatbotModal/ChatbotModal.test.js +23 -0
  117. package/dist/esm/ChatbotPopover/ChatbotPopover.js +1 -1
  118. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +1 -0
  119. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +3 -3
  120. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +4 -0
  121. package/dist/esm/CodeModal/CodeModal.d.ts +2 -0
  122. package/dist/esm/CodeModal/CodeModal.js +3 -3
  123. package/dist/esm/CodeModal/CodeModal.test.d.ts +1 -0
  124. package/dist/esm/CodeModal/CodeModal.test.js +10 -0
  125. package/dist/esm/FileDetails/FileDetails.js +1 -1
  126. package/dist/esm/Message/Message.d.ts +2 -0
  127. package/dist/esm/Message/Message.js +6 -6
  128. package/dist/esm/Message/Message.test.js +12 -0
  129. package/dist/esm/Message/QuickResponse/QuickResponse.d.ts +2 -0
  130. package/dist/esm/Message/QuickResponse/QuickResponse.js +2 -2
  131. package/dist/esm/Message/QuickStarts/QuickStartTile.d.ts +2 -0
  132. package/dist/esm/Message/QuickStarts/QuickStartTile.js +2 -2
  133. package/dist/esm/Message/UserFeedback/UserFeedback.js +4 -4
  134. package/dist/esm/Message/UserFeedback/UserFeedback.test.js +4 -0
  135. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +4 -4
  136. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +4 -0
  137. package/dist/esm/MessageBar/AttachButton.d.ts +1 -0
  138. package/dist/esm/MessageBar/AttachButton.js +3 -3
  139. package/dist/esm/MessageBar/AttachButton.test.js +4 -0
  140. package/dist/esm/MessageBar/MessageBar.d.ts +5 -0
  141. package/dist/esm/MessageBar/MessageBar.js +14 -13
  142. package/dist/esm/MessageBar/MessageBar.test.js +13 -0
  143. package/dist/esm/MessageBar/MicrophoneButton.d.ts +1 -0
  144. package/dist/esm/MessageBar/MicrophoneButton.js +3 -3
  145. package/dist/esm/MessageBar/SendButton.d.ts +1 -0
  146. package/dist/esm/MessageBar/SendButton.js +3 -3
  147. package/dist/esm/MessageBar/SendButton.test.js +4 -0
  148. package/dist/esm/MessageBar/StopButton.d.ts +1 -0
  149. package/dist/esm/MessageBar/StopButton.js +3 -3
  150. package/dist/esm/MessageBar/StopButton.test.js +4 -0
  151. package/dist/esm/MessageBox/MessageBox.d.ts +4 -0
  152. package/dist/esm/MessageBox/MessageBox.js +16 -2
  153. package/dist/esm/MessageBox/MessageBox.test.js +44 -1
  154. package/dist/esm/PreviewAttachment/PreviewAttachment.d.ts +2 -0
  155. package/dist/esm/PreviewAttachment/PreviewAttachment.js +2 -2
  156. package/dist/esm/Settings/SettingsForm.d.ts +2 -0
  157. package/dist/esm/Settings/SettingsForm.js +2 -2
  158. package/dist/esm/Settings/SettingsForm.test.d.ts +1 -1
  159. package/dist/esm/Settings/SettingsForm.test.js +12 -0
  160. package/dist/esm/SourcesCard/SourcesCard.js +2 -2
  161. package/dist/esm/TermsOfUse/TermsOfUse.d.ts +2 -0
  162. package/dist/esm/TermsOfUse/TermsOfUse.js +5 -5
  163. package/dist/tsconfig.tsbuildinfo +1 -1
  164. package/package.json +1 -1
  165. package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentEdit.tsx +10 -1
  166. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +33 -0
  167. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +24 -0
  168. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickStart.tsx +11 -0
  169. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithSources.tsx +21 -0
  170. package/patternfly-docs/content/extensions/chatbot/examples/Messages/PreviewAttachment.tsx +10 -1
  171. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +9 -0
  172. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithActions.tsx +9 -0
  173. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithSelection.tsx +11 -2
  174. package/patternfly-docs/content/extensions/chatbot/examples/UI/CompactSettings.tsx +289 -0
  175. package/patternfly-docs/content/extensions/chatbot/examples/UI/TermsOfUseCompact.tsx +136 -0
  176. package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +14 -0
  177. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +8 -1
  178. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotCompact.tsx +481 -0
  179. package/src/AttachmentEdit/AttachmentEdit.tsx +5 -1
  180. package/src/Chatbot/Chatbot.scss +7 -0
  181. package/src/Chatbot/Chatbot.test.tsx +9 -0
  182. package/src/Chatbot/Chatbot.tsx +4 -1
  183. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +38 -3
  184. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +18 -0
  185. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +9 -2
  186. package/src/ChatbotFooter/ChatbotFooter.scss +5 -0
  187. package/src/ChatbotFooter/ChatbotFooter.test.tsx +10 -0
  188. package/src/ChatbotFooter/ChatbotFooter.tsx +3 -1
  189. package/src/ChatbotHeader/ChatbotHeader.scss +25 -0
  190. package/src/ChatbotHeader/ChatbotHeader.tsx +1 -1
  191. package/src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx +6 -0
  192. package/src/ChatbotHeader/ChatbotHeaderCloseButton.tsx +12 -6
  193. package/src/ChatbotHeader/ChatbotHeaderMain.tsx +3 -1
  194. package/src/ChatbotHeader/ChatbotHeaderMenu.test.tsx +8 -0
  195. package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +10 -5
  196. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx +6 -0
  197. package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +5 -2
  198. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx +10 -0
  199. package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +4 -0
  200. package/src/ChatbotModal/ChatbotModal.scss +15 -4
  201. package/src/ChatbotModal/ChatbotModal.test.tsx +59 -0
  202. package/src/ChatbotModal/ChatbotModal.tsx +5 -1
  203. package/src/ChatbotPopover/ChatbotPopover.scss +9 -5
  204. package/src/ChatbotPopover/ChatbotPopover.tsx +1 -1
  205. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss +9 -1
  206. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx +13 -0
  207. package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.tsx +13 -2
  208. package/src/ChatbotWelcomePrompt/__snapshots__/ChatbotWelcomePrompt.test.tsx.snap +1 -1
  209. package/src/CodeModal/CodeModal.scss +11 -3
  210. package/src/CodeModal/CodeModal.test.tsx +24 -0
  211. package/src/CodeModal/CodeModal.tsx +6 -2
  212. package/src/FileDetails/FileDetails.tsx +1 -1
  213. package/src/FileDetails/__snapshots__/FileDetails.test.tsx.snap +1 -1
  214. package/src/FileDetailsLabel/__snapshots__/FileDetailsLabel.test.tsx.snap +1 -1
  215. package/src/Message/Message.scss +27 -0
  216. package/src/Message/Message.test.tsx +21 -0
  217. package/src/Message/Message.tsx +10 -3
  218. package/src/Message/QuickResponse/QuickResponse.tsx +5 -1
  219. package/src/Message/QuickStarts/QuickStartTile.tsx +5 -1
  220. package/src/Message/TextMessage/TextMessage.scss +25 -0
  221. package/src/Message/UserFeedback/UserFeedback.scss +24 -3
  222. package/src/Message/UserFeedback/UserFeedback.test.tsx +13 -0
  223. package/src/Message/UserFeedback/UserFeedback.tsx +4 -2
  224. package/src/Message/UserFeedback/UserFeedbackComplete.test.tsx +4 -0
  225. package/src/Message/UserFeedback/UserFeedbackComplete.tsx +10 -2
  226. package/src/MessageBar/AttachButton.scss +10 -0
  227. package/src/MessageBar/AttachButton.test.tsx +4 -0
  228. package/src/MessageBar/AttachButton.tsx +5 -2
  229. package/src/MessageBar/MessageBar.scss +17 -0
  230. package/src/MessageBar/MessageBar.test.tsx +13 -0
  231. package/src/MessageBar/MessageBar.tsx +23 -8
  232. package/src/MessageBar/MicrophoneButton.scss +10 -0
  233. package/src/MessageBar/MicrophoneButton.tsx +5 -2
  234. package/src/MessageBar/SendButton.scss +10 -0
  235. package/src/MessageBar/SendButton.test.tsx +5 -1
  236. package/src/MessageBar/SendButton.tsx +5 -2
  237. package/src/MessageBar/StopButton.scss +10 -0
  238. package/src/MessageBar/StopButton.test.tsx +5 -1
  239. package/src/MessageBar/StopButton.tsx +5 -2
  240. package/src/MessageBox/MessageBox.scss +6 -0
  241. package/src/MessageBox/MessageBox.test.tsx +45 -1
  242. package/src/MessageBox/MessageBox.tsx +11 -1
  243. package/src/PreviewAttachment/PreviewAttachment.tsx +5 -1
  244. package/src/Settings/Settings.scss +11 -0
  245. package/src/Settings/SettingsForm.test.tsx +17 -0
  246. package/src/Settings/SettingsForm.tsx +12 -2
  247. package/src/SourcesCard/SourcesCard.scss +8 -0
  248. package/src/SourcesCard/SourcesCard.tsx +2 -1
  249. package/src/TermsOfUse/TermsOfUse.scss +20 -0
  250. package/src/TermsOfUse/TermsOfUse.tsx +9 -4
@@ -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 button/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 button/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.10",
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
  );
@@ -150,6 +150,27 @@ export const MessageWithSourcesExample: React.FunctionComponent = () => {
150
150
  onSetPage
151
151
  }}
152
152
  />
153
+ <Message
154
+ name="Bot"
155
+ role="bot"
156
+ avatar={patternflyAvatar}
157
+ content="This example displays a compact sources card"
158
+ sources={{
159
+ sources: [
160
+ {
161
+ link: '#'
162
+ },
163
+ {
164
+ link: '#'
165
+ },
166
+ {
167
+ link: '#'
168
+ }
169
+ ],
170
+ onSetPage
171
+ }}
172
+ isCompact
173
+ />
153
174
  </>
154
175
  );
155
176
  };
@@ -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 { PreviewAttachment } from '@patternfly/chatbot/dist/dynamic/PreviewAttachment';
4
4
 
5
5
  export const PreviewAttachmentExample: 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 PreviewAttachmentExample: 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-preview"
20
+ name="modal-compact-preview"
21
+ ></Checkbox>
14
22
  <Button onClick={handleModalToggle}>Launch modal</Button>
15
23
  <PreviewAttachment
16
24
  code="I am a code snippet"
@@ -19,6 +27,7 @@ export const PreviewAttachmentExample: React.FunctionComponent = () => {
19
27
  isModalOpen={isModalOpen}
20
28
  onDismiss={() => null}
21
29
  onEdit={() => null}
30
+ isCompact={isCompact}
22
31
  />
23
32
  </>
24
33
  );
@@ -62,6 +62,7 @@ const EMPTY_STATE = {
62
62
  export const ChatbotHeaderTitleDemo: React.FunctionComponent = () => {
63
63
  const [isOpen, setIsOpen] = React.useState(true);
64
64
  const [isButtonOrderReversed, setIsButtonOrderReversed] = React.useState(false);
65
+ const [isCompact, setIsCompact] = React.useState(false);
65
66
  const [conversations, setConversations] = React.useState<Conversation[] | { [key: string]: Conversation[] }>(
66
67
  initialConversations
67
68
  );
@@ -136,6 +137,13 @@ export const ChatbotHeaderTitleDemo: React.FunctionComponent = () => {
136
137
  id="drawer-has-no-results"
137
138
  name="drawer-has-no-results"
138
139
  ></Checkbox>
140
+ <Checkbox
141
+ label="Show compact version"
142
+ isChecked={isCompact}
143
+ onChange={() => setIsCompact(!isCompact)}
144
+ id="drawer-compact"
145
+ name="drawer-compact"
146
+ ></Checkbox>
139
147
  <ChatbotConversationHistoryNav
140
148
  displayMode={displayMode}
141
149
  onDrawerToggle={() => setIsOpen(!isOpen)}
@@ -162,6 +170,7 @@ export const ChatbotHeaderTitleDemo: React.FunctionComponent = () => {
162
170
  errorState={hasError ? ERROR : undefined}
163
171
  emptyState={isEmpty ? EMPTY_STATE : undefined}
164
172
  noResultsState={hasNoResults ? NO_RESULTS : undefined}
173
+ isCompact={isCompact}
165
174
  />
166
175
  </>
167
176
  );
@@ -51,6 +51,7 @@ const conversations: { [key: string]: Conversation[] } = {
51
51
 
52
52
  export const ChatbotHeaderTitleDemo: React.FunctionComponent = () => {
53
53
  const [isDrawerOpen, setIsDrawerOpen] = React.useState(true);
54
+ const [isCompact, setIsCompact] = React.useState(false);
54
55
  const displayMode = ChatbotDisplayMode.embedded;
55
56
 
56
57
  return (
@@ -62,6 +63,13 @@ export const ChatbotHeaderTitleDemo: React.FunctionComponent = () => {
62
63
  id="drawer-actions-visible"
63
64
  name="drawer-actions-visible"
64
65
  ></Checkbox>
66
+ <Checkbox
67
+ label="Show compact version"
68
+ isChecked={isCompact}
69
+ onChange={() => setIsCompact(!isCompact)}
70
+ id="drawer-actions-compact"
71
+ name="drawer-actions-compact"
72
+ ></Checkbox>
65
73
  <ChatbotConversationHistoryNav
66
74
  displayMode={displayMode}
67
75
  onDrawerToggle={() => setIsDrawerOpen(!isDrawerOpen)}
@@ -69,6 +77,7 @@ export const ChatbotHeaderTitleDemo: React.FunctionComponent = () => {
69
77
  setIsDrawerOpen={setIsDrawerOpen}
70
78
  conversations={conversations}
71
79
  drawerContent={<div>Drawer content</div>}
80
+ isCompact={isCompact}
72
81
  />
73
82
  </>
74
83
  );
@@ -25,6 +25,7 @@ const menuItems = [
25
25
  export const ChatbotHeaderDrawerWithSelection: React.FunctionComponent = () => {
26
26
  const [isDrawerOpen, setIsDrawerOpen] = React.useState(true);
27
27
  const [currentSelection, setCurrentSelection] = React.useState('2');
28
+ const [isCompact, setIsCompact] = React.useState(false);
28
29
  const displayMode = ChatbotDisplayMode.embedded;
29
30
 
30
31
  const conversations: { [key: string]: Conversation[] } = {
@@ -60,8 +61,15 @@ export const ChatbotHeaderDrawerWithSelection: React.FunctionComponent = () => {
60
61
  label="Display drawer"
61
62
  isChecked={isDrawerOpen}
62
63
  onChange={() => setIsDrawerOpen(!isDrawerOpen)}
63
- id="drawer-actions-visible"
64
- name="drawer-actions-visible"
64
+ id="drawer-selected-visible"
65
+ name="drawer-selected-visible"
66
+ ></Checkbox>
67
+ <Checkbox
68
+ label="Show compact version"
69
+ isChecked={isCompact}
70
+ onChange={() => setIsCompact(!isCompact)}
71
+ id="drawer-selected-compact"
72
+ name="drawer-selected-compact"
65
73
  ></Checkbox>
66
74
  <ChatbotConversationHistoryNav
67
75
  displayMode={displayMode}
@@ -72,6 +80,7 @@ export const ChatbotHeaderDrawerWithSelection: React.FunctionComponent = () => {
72
80
  drawerContent={<div>Drawer content</div>}
73
81
  activeItemId={currentSelection}
74
82
  onSelectActiveItem={(_e, id) => setCurrentSelection(id as string)}
83
+ isCompact={isCompact}
75
84
  />
76
85
  </>
77
86
  );