@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,4 +1,15 @@
1
1
  "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
2
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
15
  };
@@ -9,7 +20,8 @@ exports.MessageBox = void 0;
9
20
  // ============================================================================
10
21
  const react_1 = __importDefault(require("react"));
11
22
  const JumpButton_1 = __importDefault(require("./JumpButton"));
12
- const MessageBoxBase = ({ announcement, ariaLabel = 'Scrollable message log', children, innerRef, className, position = 'top' }) => {
23
+ const MessageBoxBase = (_a) => {
24
+ 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"]);
13
25
  const [atTop, setAtTop] = react_1.default.useState(false);
14
26
  const [atBottom, setAtBottom] = react_1.default.useState(true);
15
27
  const [isOverflowing, setIsOverflowing] = react_1.default.useState(false);
@@ -42,12 +54,14 @@ const MessageBoxBase = ({ announcement, ariaLabel = 'Scrollable message log', ch
42
54
  if (element) {
43
55
  element.scrollTo({ top: 0, behavior: 'smooth' });
44
56
  }
57
+ onScrollToTopClick && onScrollToTopClick();
45
58
  }, [messageBoxRef]);
46
59
  const scrollToBottom = react_1.default.useCallback(() => {
47
60
  const element = messageBoxRef.current;
48
61
  if (element) {
49
62
  element.scrollTo({ top: element.scrollHeight, behavior: 'smooth' });
50
63
  }
64
+ onScrollToBottomClick && onScrollToBottomClick();
51
65
  }, [messageBoxRef]);
52
66
  // Detect scroll position
53
67
  react_1.default.useEffect(() => {
@@ -65,7 +79,7 @@ const MessageBoxBase = ({ announcement, ariaLabel = 'Scrollable message log', ch
65
79
  }, [checkOverflow, handleScroll, messageBoxRef]);
66
80
  return (react_1.default.createElement(react_1.default.Fragment, null,
67
81
  react_1.default.createElement(JumpButton_1.default, { position: "top", isHidden: isOverflowing && atTop, onClick: scrollToTop }),
68
- react_1.default.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 },
82
+ react_1.default.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),
69
83
  children,
70
84
  react_1.default.createElement("div", { className: "pf-chatbot__messagebox-announcement", "aria-live": "polite" }, announcement)),
71
85
  react_1.default.createElement(JumpButton_1.default, { position: "bottom", isHidden: isOverflowing && atBottom, onClick: scrollToBottom })));
@@ -1,4 +1,13 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
@@ -6,6 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
15
  const react_1 = __importDefault(require("react"));
7
16
  const react_2 = require("@testing-library/react");
8
17
  const MessageBox_1 = require("./MessageBox");
18
+ const user_event_1 = __importDefault(require("@testing-library/user-event"));
9
19
  describe('MessageBox', () => {
10
20
  it('should render Message box', () => {
11
21
  (0, react_2.render)(react_1.default.createElement(MessageBox_1.MessageBox, null,
@@ -19,4 +29,37 @@ describe('MessageBox', () => {
19
29
  expect(ref.current).not.toBeNull();
20
30
  expect(ref.current).toBeInstanceOf(HTMLDivElement);
21
31
  });
32
+ it('should call onScrollToBottomClick when scroll to top button is clicked', () => __awaiter(void 0, void 0, void 0, function* () {
33
+ const spy = jest.fn();
34
+ (0, react_2.render)(react_1.default.createElement(MessageBox_1.MessageBox, { onScrollToBottomClick: spy },
35
+ react_1.default.createElement("div", null, "Test message content")));
36
+ // this forces button to show
37
+ const region = react_2.screen.getByRole('region');
38
+ Object.defineProperty(region, 'scrollHeight', { configurable: true, value: 1000 });
39
+ Object.defineProperty(region, 'clientHeight', { configurable: true, value: 500 });
40
+ Object.defineProperty(region, 'scrollTop', { configurable: true, value: 0 });
41
+ region.dispatchEvent(new Event('scroll'));
42
+ yield (0, react_2.waitFor)(() => {
43
+ user_event_1.default.click(react_2.screen.getByRole('button', { name: /Jump bottom button/i }));
44
+ expect(spy).toHaveBeenCalled();
45
+ });
46
+ }));
47
+ it('should call onScrollToTopClick when scroll to top button is clicked', () => __awaiter(void 0, void 0, void 0, function* () {
48
+ const spy = jest.fn();
49
+ (0, react_2.render)(react_1.default.createElement(MessageBox_1.MessageBox, { onScrollToTopClick: spy },
50
+ react_1.default.createElement("div", null, "Test message content")));
51
+ // this forces button to show
52
+ const region = react_2.screen.getByRole('region');
53
+ Object.defineProperty(region, 'scrollHeight', { configurable: true, value: 1000 });
54
+ Object.defineProperty(region, 'clientHeight', { configurable: true, value: 500 });
55
+ Object.defineProperty(region, 'scrollTop', {
56
+ configurable: true,
57
+ value: 500
58
+ });
59
+ region.dispatchEvent(new Event('scroll'));
60
+ yield (0, react_2.waitFor)(() => {
61
+ user_event_1.default.click(react_2.screen.getByRole('button', { name: /Jump top button/i }));
62
+ expect(spy).toHaveBeenCalled();
63
+ });
64
+ }));
22
65
  });
@@ -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;
@@ -10,7 +10,7 @@ exports.PreviewAttachment = void 0;
10
10
  const react_1 = __importDefault(require("react"));
11
11
  const CodeModal_1 = __importDefault(require("../CodeModal"));
12
12
  const Chatbot_1 = require("../Chatbot");
13
- const PreviewAttachment = ({ fileName, code, handleModalToggle, isModalOpen, onDismiss = undefined, onEdit, title = 'Preview attachment', displayMode = Chatbot_1.ChatbotDisplayMode.default }) => {
13
+ const PreviewAttachment = ({ fileName, code, handleModalToggle, isModalOpen, onDismiss = undefined, onEdit, title = 'Preview attachment', displayMode = Chatbot_1.ChatbotDisplayMode.default, isCompact }) => {
14
14
  const handleEdit = (_event) => {
15
15
  handleModalToggle(_event);
16
16
  onEdit(_event);
@@ -19,7 +19,7 @@ const PreviewAttachment = ({ fileName, code, handleModalToggle, isModalOpen, onD
19
19
  handleModalToggle(_event);
20
20
  onDismiss && onDismiss(_event);
21
21
  };
22
- return (react_1.default.createElement(CodeModal_1.default, { 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 }));
22
+ return (react_1.default.createElement(CodeModal_1.default, { 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 }));
23
23
  };
24
24
  exports.PreviewAttachment = PreviewAttachment;
25
25
  exports.default = exports.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;
@@ -17,8 +17,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.SettingsForm = void 0;
18
18
  const react_1 = __importDefault(require("react"));
19
19
  const SettingsForm = (_a) => {
20
- var { className, fields = [] } = _a, props = __rest(_a, ["className", "fields"]);
21
- return (react_1.default.createElement("div", Object.assign({ className: `pf-chatbot__settings-form-container ${className}` }, props),
20
+ var { className, fields = [], isCompact } = _a, props = __rest(_a, ["className", "fields", "isCompact"]);
21
+ return (react_1.default.createElement("div", Object.assign({ className: `pf-chatbot__settings-form-container ${isCompact ? 'pf-m-compact' : ''} ${className ? ` ${className}` : ''}` }, props),
22
22
  react_1.default.createElement("form", { className: "pf-chatbot__settings-form" }, fields.map((field) => (react_1.default.createElement("div", { className: "pf-chatbot__settings-form-row", key: field.label },
23
23
  react_1.default.createElement("label", { className: "pf-chatbot__settings-label", htmlFor: field.id }, field.label),
24
24
  field.field))))));
@@ -1 +1 @@
1
- export {};
1
+ import '@testing-library/jest-dom';
@@ -7,6 +7,7 @@ const react_1 = __importDefault(require("react"));
7
7
  const react_core_1 = require("@patternfly/react-core");
8
8
  const react_2 = require("@testing-library/react");
9
9
  const SettingsForm_1 = require("./SettingsForm");
10
+ require("@testing-library/jest-dom");
10
11
  describe('SettingsForm', () => {
11
12
  it('should render settingsForm with custom classname', () => {
12
13
  const { container } = (0, react_2.render)(react_1.default.createElement(SettingsForm_1.SettingsForm, { className: "custom-settings" }));
@@ -23,4 +24,15 @@ describe('SettingsForm', () => {
23
24
  (0, react_2.render)(react_1.default.createElement(SettingsForm_1.SettingsForm, { fields: fields }));
24
25
  expect(react_2.screen.getByRole('button', { name: 'Archive chat' })).toBeTruthy();
25
26
  });
27
+ it('should render settingsForm with isCompact', () => {
28
+ const fields = [
29
+ {
30
+ id: 'archived-chat',
31
+ label: 'Archive chat',
32
+ field: (react_1.default.createElement(react_core_1.Button, { id: "archived-chat", variant: "secondary" }, "Archive chat"))
33
+ }
34
+ ];
35
+ (0, react_2.render)(react_1.default.createElement(SettingsForm_1.SettingsForm, { "data-testid": "settings-form", fields: fields, isCompact: true }));
36
+ expect(react_2.screen.getByTestId('settings-form')).toHaveClass('pf-m-compact');
37
+ });
26
38
  });
@@ -22,7 +22,7 @@ const react_1 = __importDefault(require("react"));
22
22
  const react_core_1 = require("@patternfly/react-core");
23
23
  const react_icons_1 = require("@patternfly/react-icons");
24
24
  const SourcesCard = (_a) => {
25
- 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"]);
25
+ 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"]);
26
26
  const [page, setPage] = react_1.default.useState(1);
27
27
  const [isExpanded, setIsExpanded] = react_1.default.useState(false);
28
28
  const onToggle = (_event, isExpanded) => {
@@ -40,7 +40,7 @@ const SourcesCard = (_a) => {
40
40
  };
41
41
  return (react_1.default.createElement("div", { className: "pf-chatbot__source" },
42
42
  react_1.default.createElement("span", null, (0, react_core_1.pluralize)(sources.length, sourceWord, sourceWordPlural)),
43
- react_1.default.createElement(react_core_1.Card, Object.assign({ className: "pf-chatbot__sources-card" }, props),
43
+ react_1.default.createElement(react_core_1.Card, Object.assign({ isCompact: isCompact, className: "pf-chatbot__sources-card" }, props),
44
44
  react_1.default.createElement(react_core_1.CardTitle, { className: "pf-chatbot__sources-card-title" },
45
45
  react_1.default.createElement(react_core_1.Button, { component: "a", variant: react_core_1.ButtonVariant.link, href: sources[page - 1].link, icon: sources[page - 1].isExternal ? react_1.default.createElement(react_icons_1.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))),
46
46
  sources[page - 1].body && (react_1.default.createElement(react_core_1.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>>;
@@ -23,7 +23,7 @@ const react_core_1 = require("@patternfly/react-core");
23
23
  const Chatbot_1 = require("../Chatbot");
24
24
  const ChatbotModal_1 = __importDefault(require("../ChatbotModal/ChatbotModal"));
25
25
  const TermsOfUseBase = (_a) => {
26
- var { handleModalToggle, isModalOpen, onPrimaryAction, onSecondaryAction, primaryActionBtn = 'Accept', secondaryActionBtn = 'Decline', title = 'Terms of use', image, altText, displayMode = Chatbot_1.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"]);
26
+ var { handleModalToggle, isModalOpen, onPrimaryAction, onSecondaryAction, primaryActionBtn = 'Accept', secondaryActionBtn = 'Decline', title = 'Terms of use', image, altText, displayMode = Chatbot_1.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"]);
27
27
  const handlePrimaryAction = (_event) => {
28
28
  handleModalToggle(_event);
29
29
  onPrimaryAction && onPrimaryAction(_event);
@@ -31,13 +31,13 @@ const TermsOfUseBase = (_a) => {
31
31
  const handleSecondaryAction = (_event) => {
32
32
  onSecondaryAction(_event);
33
33
  };
34
- const modal = (react_1.default.createElement(ChatbotModal_1.default, 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),
34
+ const modal = (react_1.default.createElement(ChatbotModal_1.default, 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),
35
35
  react_1.default.createElement("section", { className: `pf-chatbot__terms-of-use--section`, "aria-label": title, tabIndex: -1, ref: innerRef },
36
- react_1.default.createElement(react_core_1.ModalHeader, null,
36
+ react_1.default.createElement(react_core_1.ModalHeader, { className: "pf-chatbot__terms-of-use--modal-header" },
37
37
  react_1.default.createElement("div", { className: "pf-chatbot__terms-of-use--header" },
38
- image && altText && react_1.default.createElement("img", { src: image, className: "pf-chatbot__terms-of-use--image", alt: altText }),
38
+ !isCompact && image && altText && (react_1.default.createElement("img", { src: image, className: "pf-chatbot__terms-of-use--image", alt: altText })),
39
39
  react_1.default.createElement("h1", { className: "pf-chatbot__terms-of-use--title" }, title))),
40
- react_1.default.createElement(react_core_1.ModalBody, null,
40
+ react_1.default.createElement(react_core_1.ModalBody, { className: "pf-chatbot__terms-of-use--modal-body" },
41
41
  react_1.default.createElement(react_core_1.Content, null, children)),
42
42
  react_1.default.createElement(react_core_1.ModalFooter, { className: "pf-chatbot__terms-of-use--footer" },
43
43
  react_1.default.createElement(react_core_1.Button, { isBlock: true, key: "terms-of-use-modal-primary", variant: "primary", onClick: handlePrimaryAction, form: "terms-of-use-form", size: "lg" }, primaryActionBtn),
package/dist/css/main.css CHANGED
@@ -1,3 +1,4 @@
1
+ @charset "UTF-8";
1
2
  .pf-chatbot__menu.pf-v6-c-menu {
2
3
  --pf-v6-c-menu--BorderRadius: var(--pf-t--global--border--radius--large);
3
4
  --pf-v6-c-menu__list-item--hover--BackgroundColor: var(--pf-t--global--background--color--secondary--default);
@@ -159,6 +160,10 @@
159
160
  border-radius: var(--pf-t--global--border--radius--sharp);
160
161
  }
161
162
 
163
+ .pf-chatbot.pf-m-compact {
164
+ font-size: var(--pf-t--global--font--size--sm);
165
+ }
166
+
162
167
  .pf-chatbot__alert {
163
168
  position: sticky;
164
169
  top: var(--pf-t--global--spacer--lg);
@@ -191,8 +196,8 @@
191
196
  border-radius: var(--pf-t--global--border--radius--medium);
192
197
  }
193
198
  .pf-chatbot__history .pf-chatbot__input {
194
- padding-inline-start: var(--pf-t--global--spacer--xl);
195
- padding-inline-end: var(--pf-t--global--spacer--xl);
199
+ padding-inline-start: var(--pf-t--global--spacer--lg);
200
+ padding-inline-end: var(--pf-t--global--spacer--lg);
196
201
  }
197
202
  .pf-chatbot__history .pf-v6-c-menu {
198
203
  --pf-v6-c-menu--PaddingBlockStart: 0;
@@ -280,7 +285,6 @@
280
285
  border-radius: var(--pf-t--global--border--radius--pill);
281
286
  justify-content: center;
282
287
  align-items: center;
283
- border-radius: var(--pf-t--global--border--radius--small);
284
288
  }
285
289
  .pf-chatbot__history.pf-v6-c-drawer .pf-v6-c-drawer__body {
286
290
  --pf-v6-c-drawer__panel__body--PaddingBlockStart: 0;
@@ -341,6 +345,33 @@
341
345
  align-self: stretch;
342
346
  }
343
347
 
348
+ .pf-chatbot__history.pf-m-compact .pf-v6-c-drawer__main .pf-v6-c-drawer__panel {
349
+ --pf-v6-c-drawer__panel--PaddingBlockStart: var(--pf-t--global--spacer--sm);
350
+ --pf-v6-c-drawer__panel--PaddingBlockEnd: var(--pf-t--global--spacer--sm);
351
+ --pf-v6-c-drawer__head--PaddingInlineStart: var(--pf-t--global--spacer--md);
352
+ --pf-v6-c-drawer__head--PaddingInlineEnd: var(--pf-t--global--spacer--md);
353
+ --pf-v6-c-drawer__panel--RowGap: var(--pf-t--global--spacer--md);
354
+ }
355
+ .pf-chatbot__history.pf-m-compact .pf-v6-c-drawer__main .pf-v6-c-drawer__body {
356
+ --pf-v6-c-drawer__panel__body--PaddingInlineStart: var(--pf-t--global--spacer--md);
357
+ --pf-v6-c-drawer__panel__body--PaddingInlineEnd: var(--pf-t--global--spacer--md);
358
+ }
359
+ .pf-chatbot__history.pf-m-compact .pf-chatbot__menu-item {
360
+ font-size: var(--pf-t--global--font--size--body--md);
361
+ }
362
+ .pf-chatbot__history.pf-m-compact .pf-v6-c-drawer__head {
363
+ --pf-v6-c-drawer__head--PaddingInlineStart: var(--pf-t--global--spacer--lg);
364
+ --pf-v6-c-drawer__head--PaddingInlineEnd: var(--pf-t--global--spacer--lg);
365
+ }
366
+ .pf-chatbot__history.pf-m-compact .pf-v6-c-drawer__close .pf-v6-c-button {
367
+ width: 2rem;
368
+ height: 2rem;
369
+ --pf-v6-c-button--m-plain--PaddingInlineEnd: var(--pf-t--global--spacer--xs);
370
+ --pf-v6-c-button--m-plain--PaddingInlineStart: var(--pf-t--global--spacer--xs);
371
+ --pf-v6-c-button--PaddingBlockStart: var(--pf-t--global--spacer--xs);
372
+ --pf-v6-c-button--PaddingBlockEnd: var(--pf-t--global--spacer--xs);
373
+ }
374
+
344
375
  .pf-chatbot__footnote {
345
376
  align-self: center;
346
377
  }
@@ -390,6 +421,11 @@
390
421
  padding: var(--pf-t--global--spacer--sm) var(--pf-t--global--spacer--lg);
391
422
  }
392
423
 
424
+ .pf-chatbot__footer.pf-m-compact .pf-chatbot__footer-container {
425
+ padding: 0 var(--pf-t--global--spacer--sm) var(--pf-t--global--spacer--sm) var(--pf-t--global--spacer--sm);
426
+ row-gap: var(--pf-t--global--spacer--sm);
427
+ }
428
+
393
429
  .pf-chatbot__header-container {
394
430
  display: grid;
395
431
  }
@@ -507,6 +543,25 @@
507
543
  display: inline-flex;
508
544
  }
509
545
 
546
+ .pf-chatbot.pf-m-compact .pf-chatbot__header {
547
+ gap: var(--pf-t--global--spacer--sm);
548
+ padding: var(--pf-t--global--spacer--sm);
549
+ }
550
+ .pf-chatbot.pf-m-compact .pf-chatbot__header .pf-chatbot__title img {
551
+ max-height: 24px;
552
+ vertical-align: middle;
553
+ }
554
+
555
+ .pf-v6-c-menu-toggle.pf-chatbot__button--toggle-options.pf-m-compact,
556
+ .pf-chatbot__button--toggle-menu.pf-m-compact {
557
+ width: 2rem;
558
+ height: 2rem;
559
+ }
560
+
561
+ .pf-chatbot__header .pf-chatbot__actions .pf-v6-c-menu-toggle.pf-m-secondary.pf-m-compact {
562
+ width: initial;
563
+ }
564
+
510
565
  .pf-chatbot__chatbot-modal-backdrop {
511
566
  position: static !important;
512
567
  }
@@ -523,10 +578,6 @@
523
578
  .pf-chatbot__chatbot-modal .pf-v6-c-modal-box__title {
524
579
  --pf-v6-c-modal-box__title--FontSize: var(--pf-t--global--font--size--heading--h3);
525
580
  }
526
- .pf-chatbot__chatbot-modal .pf-v6-c-button.pf-m-primary.pf-m-block,
527
- .pf-chatbot__chatbot-modal .pf-v6-c-button.pf-m-link.pf-m-block {
528
- --pf-v6-c-button--FontWeight: var(--pf-t--global--font--weight--body--bold);
529
- }
530
581
  .pf-chatbot__chatbot-modal .pf-v6-c-modal-box__footer {
531
582
  padding-block-start: var(--pf-t--global--spacer--xl);
532
583
  padding-block-end: var(--pf-t--global--spacer--xl);
@@ -580,6 +631,14 @@
580
631
  position: absolute;
581
632
  }
582
633
 
634
+ .pf-chatbot__chatbot-modal.pf-m-compact .pf-v6-c-modal-box__header {
635
+ padding-block-end: 0;
636
+ }
637
+ .pf-chatbot__chatbot-modal.pf-m-compact .pf-v6-c-modal-box__footer {
638
+ padding-block-start: var(--pf-t--global--spacer--lg);
639
+ padding-block-end: var(--pf-t--global--spacer--lg);
640
+ }
641
+
583
642
  .pf-chatbot__popover .pf-v6-c-popover__arrow {
584
643
  display: none;
585
644
  }
@@ -632,7 +691,6 @@
632
691
  gap: var(--pf-t--global--spacer--lg);
633
692
  }
634
693
  .pf-chatbot--layout--welcome .pf-v6-c-content--h1 {
635
- --pf-v6-c-content--h1--FontSize: var(--pf-t--global--font--size--3xl);
636
694
  --pf-v6-c-content--h1--FontWeight: var(--pf-t--global--font--weight--400);
637
695
  --pf-v6-c-content--h1--MarginBlockEnd: 0;
638
696
  }
@@ -653,6 +711,14 @@
653
711
  height: 100%;
654
712
  }
655
713
 
714
+ .pf-chatbot--layout--welcome.pf-m-compact {
715
+ gap: var(--pf-t--global--spacer--md);
716
+ padding-block-end: var(--pf-t--global--spacer--md);
717
+ }
718
+ .pf-chatbot--layout--welcome.pf-m-compact .pf-chatbot__prompt-suggestions {
719
+ gap: var(--pf-t--global--spacer--md);
720
+ }
721
+
656
722
  @media screen and (min-width: 64rem) {
657
723
  .pf-chatbot--fullscreen .pf-chatbot--layout--welcome .pf-chatbot__prompt-suggestions,
658
724
  .pf-chatbot--embedded .pf-chatbot--layout--welcome .pf-chatbot__prompt-suggestions {
@@ -722,8 +788,8 @@
722
788
  .pf-chatbot__code-modal .pf-v6-c-code-editor__header-main {
723
789
  display: none;
724
790
  }
725
- .pf-chatbot__code-modal .pf-chatbot__code-modal-file-details {
726
- padding-inline-start: var(--pf-t--global--spacer--md);
791
+ .pf-chatbot__code-modal .pf-v6-c-modal-box__close .pf-v6-c-button.pf-m-plain {
792
+ --pf-v6-c-button__icon--Color: var(--pf-t--global--icon--color--subtle);
727
793
  }
728
794
 
729
795
  .pf-v6-theme-dark .pf-chatbot__code-modal .pf-v6-c-code-editor__controls > div > button {
@@ -731,7 +797,7 @@
731
797
  --pf-v6-c-button--hover__icon--Color: #c7c7c7;
732
798
  }
733
799
 
734
- .pf-chatbot__code-modal-body {
800
+ .pf-chatbot__code-modal-editor {
735
801
  flex: 1;
736
802
  }
737
803
 
@@ -739,6 +805,10 @@
739
805
  height: inherit !important;
740
806
  }
741
807
 
808
+ .pf-chatbot__code-modal.pf-m-compact .pf-chatbot__code-modal-body {
809
+ gap: var(--pf-t--global--spacer--md);
810
+ }
811
+
742
812
  .pf-chatbot__compare-container {
743
813
  display: flex;
744
814
  flex-direction: column;
@@ -1180,6 +1250,39 @@
1180
1250
  color: var(--pf-t--global--text--color--on-brand--default);
1181
1251
  }
1182
1252
 
1253
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-text .pf-v6-c-button.pf-m-link {
1254
+ font-size: var(--pf-t--global--font--size--sm);
1255
+ }
1256
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-text .pf-v6-c-content,
1257
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-text .pf-v6-c-content--small,
1258
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-text .pf-v6-c-content--blockquote,
1259
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-text p,
1260
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-text a {
1261
+ --pf-v6-c-content--FontSize: var(--pf-t--global--font--size--sm);
1262
+ }
1263
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-text .pf-v6-c-content--blockquote {
1264
+ --pf-v6-c-content--blockquote--PaddingBlockStart: 0;
1265
+ --pf-v6-c-content--blockquote--PaddingBlockEnd: 0;
1266
+ }
1267
+
1268
+ .pf-chatbot.pf-m-compact .pf-chatbot__message {
1269
+ gap: var(--pf-t--global--spacer--md);
1270
+ padding-bottom: var(--pf-t--global--spacer--sm);
1271
+ }
1272
+ .pf-chatbot.pf-m-compact .pf-chatbot__message .pf-chatbot__message-contents  {
1273
+ gap: var(--pf-t--global--spacer--xs);
1274
+ }
1275
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-name {
1276
+ font-size: var(--pf-t--global--font--size--xs);
1277
+ }
1278
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-avatar.pf-chatbot__message-avatar--round.pf-v6-c-avatar {
1279
+ --pf-v6-c-avatar--Width: 2rem;
1280
+ --pf-v6-c-avatar--Height: 2rem;
1281
+ }
1282
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-contents {
1283
+ gap: var(--pf-t--global--spacer--xs);
1284
+ }
1285
+
1183
1286
  .pf-chatbot__message-code-block {
1184
1287
  width: 100%;
1185
1288
  background-color: var(--pf-t--color--gray--80);
@@ -1299,6 +1402,21 @@
1299
1402
  color: var(--pf-t--global--text--color--on-brand--default);
1300
1403
  }
1301
1404
 
1405
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-text .pf-v6-c-button.pf-m-link {
1406
+ font-size: var(--pf-t--global--font--size--sm);
1407
+ }
1408
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-text .pf-v6-c-content,
1409
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-text .pf-v6-c-content--small,
1410
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-text .pf-v6-c-content--blockquote,
1411
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-text p,
1412
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-text a {
1413
+ --pf-v6-c-content--FontSize: var(--pf-t--global--font--size--sm);
1414
+ }
1415
+ .pf-chatbot.pf-m-compact .pf-chatbot__message-text .pf-v6-c-content--blockquote {
1416
+ --pf-v6-c-content--blockquote--PaddingBlockStart: 0;
1417
+ --pf-v6-c-content--blockquote--PaddingBlockEnd: 0;
1418
+ }
1419
+
1302
1420
  .pf-chatbot__message-ordered-list,
1303
1421
  .pf-chatbot__message-unordered-list {
1304
1422
  width: fit-content;
@@ -1445,6 +1563,7 @@
1445
1563
  flex-direction: column;
1446
1564
  gap: var(--pf-t--global--spacer--lg);
1447
1565
  align-items: center;
1566
+ text-align: center;
1448
1567
  }
1449
1568
 
1450
1569
  .pf-chatbot__feedback-complete-text {
@@ -1463,10 +1582,6 @@
1463
1582
  justify-content: center;
1464
1583
  }
1465
1584
 
1466
- .pf-chatbot__feedback-complete-body {
1467
- text-align: center;
1468
- }
1469
-
1470
1585
  .pf-chatbot__feedback-complete-title {
1471
1586
  font-family: var(--pf-t--global--font--family--heading);
1472
1587
  font-size: var(--pf-t--global--font--size--lg);
@@ -1489,6 +1604,20 @@
1489
1604
  font-weight: initial;
1490
1605
  }
1491
1606
 
1607
+ .pf-v6-c-card.pf-m-compact.pf-chatbot__feedback-card .pf-chatbot__feedback-card-form.pf-m-compact {
1608
+ --pf-v6-c-form--GridGap: var(--pf-t--global--spacer--md);
1609
+ }
1610
+
1611
+ .pf-v6-c-card.pf-m-compact.pf-chatbot__feedback-card.pf-chatbot__feedback-card-complete div.pf-chatbot__feedback-complete-body {
1612
+ gap: var(--pf-t--global--spacer--sm);
1613
+ }
1614
+ .pf-v6-c-card.pf-m-compact.pf-chatbot__feedback-card.pf-chatbot__feedback-card-complete .pf-chatbot__feedback-complete-image {
1615
+ width: 40px;
1616
+ }
1617
+ .pf-v6-c-card.pf-m-compact.pf-chatbot__feedback-card.pf-chatbot__feedback-card-complete .pf-chatbot__feedback-card-complete-empty-header .pf-v6-c-card__header:first-child {
1618
+ --pf-v6-c-card--first-child--PaddingBlockStart: var(--pf-t--global--spacer--sm);
1619
+ }
1620
+
1492
1621
  .pf-v6-c-button.pf-chatbot__button--attach {
1493
1622
  border-radius: var(--pf-t--global--border--radius--pill);
1494
1623
  padding: var(--pf-t--global--spacer--md);
@@ -1511,6 +1640,13 @@
1511
1640
  color: var(--pf-t--global--icon--color--inverse);
1512
1641
  }
1513
1642
 
1643
+ .pf-v6-c-button.pf-chatbot__button--attach.pf-m-compact {
1644
+ width: 1.5rem;
1645
+ height: 1.5rem;
1646
+ padding: var(--pf-t--global--spacer--sm);
1647
+ align-items: center;
1648
+ }
1649
+
1514
1650
  .pf-v6-c-button.pf-chatbot__button--microphone {
1515
1651
  border-radius: var(--pf-t--global--border--radius--pill);
1516
1652
  padding: var(--pf-t--global--spacer--md);
@@ -1542,6 +1678,13 @@
1542
1678
  box-shadow: 0 0 0 16px rgba(0, 102, 204, 0);
1543
1679
  }
1544
1680
  }
1681
+ .pf-v6-c-button.pf-chatbot__button--microphone.pf-m-compact {
1682
+ width: 1.5rem;
1683
+ height: 1.5rem;
1684
+ padding: var(--pf-t--global--spacer--sm);
1685
+ align-items: center;
1686
+ }
1687
+
1545
1688
  .pf-v6-c-button.pf-chatbot__button--send {
1546
1689
  border-radius: var(--pf-t--global--border--radius--pill);
1547
1690
  padding: var(--pf-t--global--spacer--md);
@@ -1584,6 +1727,13 @@
1584
1727
  transform: translate3d(0, 0, 0);
1585
1728
  }
1586
1729
  }
1730
+ .pf-v6-c-button.pf-chatbot__button--send.pf-m-compact {
1731
+ width: 1.5rem;
1732
+ height: 1.5rem;
1733
+ padding: var(--pf-t--global--spacer--sm);
1734
+ align-items: center;
1735
+ }
1736
+
1587
1737
  .pf-v6-c-button.pf-chatbot__button--stop {
1588
1738
  background-color: var(--pf-t--global--color--brand--default);
1589
1739
  border-radius: var(--pf-t--global--border--radius--pill);
@@ -1610,6 +1760,13 @@
1610
1760
  color: var(--pf-t--global--icon--color--on-brand--default);
1611
1761
  }
1612
1762
 
1763
+ .pf-v6-c-button.pf-chatbot__button--stop.pf-m-compact {
1764
+ width: 1.5rem;
1765
+ height: 1.5rem;
1766
+ padding: var(--pf-t--global--spacer--sm);
1767
+ align-items: center;
1768
+ }
1769
+
1613
1770
  .pf-chatbot__message-bar {
1614
1771
  --pf-chatbot__message-bar-child--PaddingBlockStart: var(--pf-t--global--spacer--xs);
1615
1772
  --pf-chatbot__message-bar-child--PaddingBlockEnd: var(--pf-t--global--spacer--xs);
@@ -1701,6 +1858,18 @@
1701
1858
  }
1702
1859
  }
1703
1860
 
1861
+ .pf-chatbot__message-bar-input.pf-m-compact {
1862
+ padding-block-start: 0;
1863
+ padding-block-end: 0;
1864
+ }
1865
+ .pf-chatbot__message-bar-input.pf-m-compact .pf-chatbot__message-textarea {
1866
+ font-size: var(--pf-t--global--font--size--sm) !important;
1867
+ }
1868
+ .pf-chatbot__message-bar-input.pf-m-compact .pf-chatbot__message-bar-actions {
1869
+ padding-block-start: var(--pf-t--global--spacer--md);
1870
+ padding-block-end: var(--pf-t--global--spacer--md);
1871
+ }
1872
+
1704
1873
  .pf-chatbot__jump {
1705
1874
  position: absolute !important;
1706
1875
  inset-inline-start: 75% !important;
@@ -1781,6 +1950,10 @@
1781
1950
  width: 100%;
1782
1951
  }
1783
1952
  }
1953
+ .pf-chatbot.pf-m-compact .pf-chatbot__messagebox {
1954
+ padding: var(--pf-t--global--spacer--md);
1955
+ }
1956
+
1784
1957
  .pf-chatbot__jump {
1785
1958
  position: absolute !important;
1786
1959
  inset-inline-start: 75% !important;
@@ -1882,6 +2055,15 @@
1882
2055
  text-align: center;
1883
2056
  }
1884
2057
 
2058
+ .pf-chatbot__settings-form-container.pf-m-compact .pf-chatbot__settings-form-row {
2059
+ padding: var(--pf-t--global--spacer--md);
2060
+ font-size: var(--pf-t--global--font--size--body--md);
2061
+ }
2062
+
2063
+ .pf-chatbot__header.pf-m-compact {
2064
+ padding-inline-start: var(--pf-t--global--spacer--md);
2065
+ }
2066
+
1885
2067
  .pf-chatbot__source {
1886
2068
  display: flex;
1887
2069
  flex-direction: column;
@@ -1950,6 +2132,11 @@
1950
2132
  color: var(--pf-t--global--icon--color--subtle);
1951
2133
  }
1952
2134
 
2135
+ .pf-v6-c-card.pf-m-compact.pf-chatbot__sources-card .pf-v6-c-card__footer.pf-chatbot__sources-card-footer-container {
2136
+ border-top: var(--pf-t--global--border--width--regular) solid var(--pf-t--global--border--color--default);
2137
+ padding: var(--pf-t--global--spacer--xs) var(--pf-t--global--spacer--sm) var(--pf-t--global--spacer--xs) var(--pf-t--global--spacer--xs) !important;
2138
+ }
2139
+
1953
2140
  .pf-chatbot__source-details-subhead {
1954
2141
  color: var(--pf-t--global--text--color--subtle);
1955
2142
  font-size: var(--pf-t--global--icon--size--font--xs);
@@ -2037,6 +2224,22 @@
2037
2224
  font-size: var(--pf-t--global--font--size--heading--2xl);
2038
2225
  }
2039
2226
 
2227
+ .pf-chatbot__terms-of-use-modal.pf-m-compact .pf-chatbot__terms-of-use--header {
2228
+ gap: var(--pf-t--global--spacer--md);
2229
+ align-items: flex-start;
2230
+ margin-block-start: var(--pf-t--global--spacer--lg);
2231
+ }
2232
+ .pf-chatbot__terms-of-use-modal.pf-m-compact .pf-chatbot__terms-of-use--modal-header {
2233
+ --pf-v6-c-modal-box__header--PaddingBlockStart: var(--pf-t--global--spacer--md);
2234
+ --pf-v6-c-modal-box__header--PaddingBlockEnd: var(--pf-t--global--spacer--md);
2235
+ --pf-v6-c-modal-box__header--PaddingInlineStart: var(--pf-t--global--spacer--md);
2236
+ --pf-v6-c-modal-box__header--PaddingInlineEnd: var(--pf-t--global--spacer--md);
2237
+ }
2238
+ .pf-chatbot__terms-of-use-modal.pf-m-compact .pf-chatbot__terms-of-use--modal-body {
2239
+ --pf-v6-c-modal-box__body--PaddingInlineStart: var(--pf-t--global--spacer--md);
2240
+ --pf-v6-c-modal-box__body--PaddingInlineEnd: var(--pf-t--global--spacer--md);
2241
+ }
2242
+
2040
2243
  :where(:root) {
2041
2244
  --pf-t--chatbot--heading--font-family: var(
2042
2245
  --pf-v6-c-content--heading--FontFamily,