@patternfly/chatbot 6.4.0-prerelease.22 → 6.4.0-prerelease.24

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 (41) hide show
  1. package/dist/cjs/SourcesCard/SourcesCard.js +6 -30
  2. package/dist/cjs/SourcesCard/SourcesCard.test.js +2 -211
  3. package/dist/cjs/SourcesCardBase/SourcesCardBase.d.ts +57 -0
  4. package/dist/cjs/SourcesCardBase/SourcesCardBase.js +49 -0
  5. package/dist/cjs/SourcesCardBase/SourcesCardBase.test.d.ts +1 -0
  6. package/dist/cjs/SourcesCardBase/SourcesCardBase.test.js +171 -0
  7. package/dist/cjs/SourcesCardBase/index.d.ts +2 -0
  8. package/dist/cjs/SourcesCardBase/index.js +23 -0
  9. package/dist/cjs/ToolResponse/ToolResponse.d.ts +2 -2
  10. package/dist/cjs/ToolResponse/ToolResponse.js +1 -1
  11. package/dist/cjs/ToolResponse/ToolResponse.test.js +24 -0
  12. package/dist/cjs/index.d.ts +2 -0
  13. package/dist/cjs/index.js +4 -1
  14. package/dist/css/main.css +4 -7
  15. package/dist/css/main.css.map +1 -1
  16. package/dist/dynamic/SourcesCardBase/package.json +1 -0
  17. package/dist/esm/SourcesCard/SourcesCard.js +4 -31
  18. package/dist/esm/SourcesCard/SourcesCard.test.js +3 -212
  19. package/dist/esm/SourcesCardBase/SourcesCardBase.d.ts +57 -0
  20. package/dist/esm/SourcesCardBase/SourcesCardBase.js +47 -0
  21. package/dist/esm/SourcesCardBase/SourcesCardBase.test.d.ts +1 -0
  22. package/dist/esm/SourcesCardBase/SourcesCardBase.test.js +166 -0
  23. package/dist/esm/SourcesCardBase/index.d.ts +2 -0
  24. package/dist/esm/SourcesCardBase/index.js +2 -0
  25. package/dist/esm/ToolResponse/ToolResponse.d.ts +2 -2
  26. package/dist/esm/ToolResponse/ToolResponse.js +1 -1
  27. package/dist/esm/ToolResponse/ToolResponse.test.js +24 -0
  28. package/dist/esm/index.d.ts +2 -0
  29. package/dist/esm/index.js +2 -0
  30. package/dist/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +2 -2
  32. package/src/SourcesCard/SourcesCard.scss +4 -1
  33. package/src/SourcesCard/SourcesCard.test.tsx +2 -327
  34. package/src/SourcesCard/SourcesCard.tsx +8 -171
  35. package/src/SourcesCardBase/SourcesCardBase.test.tsx +236 -0
  36. package/src/SourcesCardBase/SourcesCardBase.tsx +242 -0
  37. package/src/SourcesCardBase/index.ts +3 -0
  38. package/src/ToolResponse/ToolResponse.test.tsx +30 -0
  39. package/src/ToolResponse/ToolResponse.tsx +9 -7
  40. package/src/index.ts +6 -3
  41. package/src/main.scss +0 -5
@@ -0,0 +1,166 @@
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
+ };
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ import { render, screen } from '@testing-library/react';
12
+ import userEvent from '@testing-library/user-event';
13
+ import '@testing-library/jest-dom';
14
+ import SourcesCardBase from './SourcesCardBase';
15
+ describe('SourcesCardBase', () => {
16
+ it('should render card correctly if one source with only a link is passed in', () => {
17
+ render(_jsx(SourcesCardBase, { sources: [{ link: '' }] }));
18
+ expect(screen.getByText('Source 1')).toBeTruthy();
19
+ // no buttons or navigation when there is only 1 source
20
+ expect(screen.queryByRole('button')).toBeFalsy();
21
+ expect(screen.queryByText('1/1')).toBeFalsy();
22
+ });
23
+ it('should render card correctly if one source with a title is passed in', () => {
24
+ render(_jsx(SourcesCardBase, { sources: [{ title: 'How to make an apple pie', link: '' }] }));
25
+ expect(screen.getByText('How to make an apple pie')).toBeTruthy();
26
+ });
27
+ it('should render card correctly if one source with a body is passed in', () => {
28
+ render(_jsx(SourcesCardBase, { sources: [{ link: '', body: 'To make an apple pie, you must first...' }] }));
29
+ expect(screen.getByText('To make an apple pie, you must first...')).toBeTruthy();
30
+ });
31
+ it('should render card correctly if one source with a title and body is passed in', () => {
32
+ render(_jsx(SourcesCardBase, { sources: [{ title: 'How to make an apple pie', link: '', body: 'To make an apple pie, you must first...' }] }));
33
+ expect(screen.getByText('How to make an apple pie')).toBeTruthy();
34
+ expect(screen.getByText('To make an apple pie, you must first...')).toBeTruthy();
35
+ });
36
+ it('should render multiple cards correctly', () => {
37
+ render(_jsx(SourcesCardBase, { sources: [
38
+ { title: 'How to make an apple pie', link: '' },
39
+ { title: 'How to make cookies', link: '' }
40
+ ] }));
41
+ expect(screen.getByText('How to make an apple pie')).toBeTruthy();
42
+ expect(screen.getByText('1/2')).toBeTruthy();
43
+ screen.getByRole('button', { name: /Go to previous page/i });
44
+ screen.getByRole('button', { name: /Go to next page/i });
45
+ });
46
+ it('should navigate between cards correctly', () => __awaiter(void 0, void 0, void 0, function* () {
47
+ render(_jsx(SourcesCardBase, { sources: [
48
+ { title: 'How to make an apple pie', link: '' },
49
+ { title: 'How to make cookies', link: '' }
50
+ ] }));
51
+ expect(screen.getByText('How to make an apple pie')).toBeTruthy();
52
+ expect(screen.getByText('1/2')).toBeTruthy();
53
+ expect(screen.getByRole('button', { name: /Go to previous page/i })).toBeDisabled();
54
+ yield userEvent.click(screen.getByRole('button', { name: /Go to next page/i }));
55
+ expect(screen.queryByText('How to make an apple pie')).toBeFalsy();
56
+ expect(screen.getByText('How to make cookies')).toBeTruthy();
57
+ expect(screen.getByText('2/2')).toBeTruthy();
58
+ expect(screen.getByRole('button', { name: /Go to previous page/i })).toBeEnabled();
59
+ expect(screen.getByRole('button', { name: /Go to next page/i })).toBeDisabled();
60
+ }));
61
+ it('should apply className appropriately', () => {
62
+ render(_jsx(SourcesCardBase, { sources: [
63
+ { title: 'How to make an apple pie', link: '' },
64
+ { title: 'How to make cookies', link: '' }
65
+ ], className: "test" }));
66
+ const element = screen.getByRole('navigation');
67
+ expect(element).toHaveClass('test');
68
+ });
69
+ it('should disable pagination appropriately', () => {
70
+ render(_jsx(SourcesCardBase, { sources: [
71
+ { title: 'How to make an apple pie', link: '' },
72
+ { title: 'How to make cookies', link: '' }
73
+ ], isDisabled: true }));
74
+ expect(screen.getByRole('button', { name: /Go to previous page/i })).toBeDisabled();
75
+ expect(screen.getByRole('button', { name: /Go to next page/i })).toBeDisabled();
76
+ });
77
+ it('should render navigation aria label appropriately', () => {
78
+ render(_jsx(SourcesCardBase, { sources: [
79
+ { title: 'How to make an apple pie', link: '' },
80
+ { title: 'How to make cookies', link: '' }
81
+ ] }));
82
+ expect(screen.getByRole('navigation', { name: /Pagination/i })).toBeTruthy();
83
+ });
84
+ it('should change paginationAriaLabel appropriately', () => {
85
+ render(_jsx(SourcesCardBase, { sources: [
86
+ { title: 'How to make an apple pie', link: '' },
87
+ { title: 'How to make cookies', link: '' }
88
+ ], paginationAriaLabel: "Navegaci\u00F3n" }));
89
+ expect(screen.getByRole('navigation', { name: /Navegación/i })).toBeTruthy();
90
+ });
91
+ it('should change toNextPageAriaLabel appropriately', () => {
92
+ render(_jsx(SourcesCardBase, { sources: [
93
+ { title: 'How to make an apple pie', link: '' },
94
+ { title: 'How to make cookies', link: '' }
95
+ ], toNextPageAriaLabel: "Pase a la siguiente p\u00E1gina" }));
96
+ expect(screen.getByRole('button', { name: /Pase a la siguiente página/i })).toBeTruthy();
97
+ });
98
+ it('should change toPreviousPageAriaLabel appropriately', () => {
99
+ render(_jsx(SourcesCardBase, { sources: [
100
+ { title: 'How to make an apple pie', link: '' },
101
+ { title: 'How to make cookies', link: '' }
102
+ ], toPreviousPageAriaLabel: "Presione para regresar a la p\u00E1gina anterior" }));
103
+ expect(screen.getByRole('button', { name: /Presione para regresar a la página anterior/i })).toBeTruthy();
104
+ });
105
+ it('should call onNextClick appropriately', () => __awaiter(void 0, void 0, void 0, function* () {
106
+ const spy = jest.fn();
107
+ render(_jsx(SourcesCardBase, { sources: [
108
+ { title: 'How to make an apple pie', link: '' },
109
+ { title: 'How to make cookies', link: '' }
110
+ ], onNextClick: spy }));
111
+ yield userEvent.click(screen.getByRole('button', { name: /Go to next page/i }));
112
+ expect(spy).toHaveBeenCalled();
113
+ }));
114
+ it('should call onPreviousClick appropriately', () => __awaiter(void 0, void 0, void 0, function* () {
115
+ const spy = jest.fn();
116
+ render(_jsx(SourcesCardBase, { sources: [
117
+ { title: 'How to make an apple pie', link: '' },
118
+ { title: 'How to make cookies', link: '' }
119
+ ], onPreviousClick: spy }));
120
+ yield userEvent.click(screen.getByRole('button', { name: /Go to next page/i }));
121
+ yield userEvent.click(screen.getByRole('button', { name: /Go to previous page/i }));
122
+ expect(spy).toHaveBeenCalled();
123
+ }));
124
+ it('should call onSetPage appropriately', () => __awaiter(void 0, void 0, void 0, function* () {
125
+ const spy = jest.fn();
126
+ render(_jsx(SourcesCardBase, { sources: [
127
+ { title: 'How to make an apple pie', link: '' },
128
+ { title: 'How to make cookies', link: '' }
129
+ ], onSetPage: spy }));
130
+ yield userEvent.click(screen.getByRole('button', { name: /Go to next page/i }));
131
+ expect(spy).toHaveBeenCalledTimes(1);
132
+ yield userEvent.click(screen.getByRole('button', { name: /Go to previous page/i }));
133
+ expect(spy).toHaveBeenCalledTimes(2);
134
+ }));
135
+ it('should handle showMore appropriately', () => __awaiter(void 0, void 0, void 0, function* () {
136
+ render(_jsx(SourcesCardBase, { sources: [
137
+ {
138
+ title: 'Getting started with Red Hat OpenShift',
139
+ link: '#',
140
+ body: 'Red Hat OpenShift on IBM Cloud is a managed offering to create your own cluster of compute hosts where you can deploy and manage containerized apps on IBM Cloud ...',
141
+ hasShowMore: true
142
+ },
143
+ {
144
+ title: 'Azure Red Hat OpenShift documentation',
145
+ link: '#',
146
+ body: 'Microsoft Azure Red Hat OpenShift allows you to deploy a production ready Red Hat OpenShift cluster in Azure ...'
147
+ },
148
+ {
149
+ title: 'OKD Documentation: Home',
150
+ link: '#',
151
+ body: 'OKD is a distribution of Kubernetes optimized for continuous application development and multi-tenant deployment. OKD also serves as the upstream code base upon ...'
152
+ }
153
+ ] }));
154
+ expect(screen.getByRole('region')).toHaveAttribute('class', 'pf-v6-c-expandable-section__content');
155
+ }));
156
+ it('should call onClick appropriately', () => __awaiter(void 0, void 0, void 0, function* () {
157
+ const spy = jest.fn();
158
+ render(_jsx(SourcesCardBase, { sources: [{ title: 'How to make an apple pie', link: '', onClick: spy }] }));
159
+ yield userEvent.click(screen.getByRole('link', { name: /How to make an apple pie/i }));
160
+ expect(spy).toHaveBeenCalled();
161
+ }));
162
+ it('should apply titleProps appropriately', () => {
163
+ render(_jsx(SourcesCardBase, { sources: [{ title: 'How to make an apple pie', link: '', titleProps: { className: 'test' } }] }));
164
+ expect(screen.getByRole('link', { name: /How to make an apple pie/i })).toHaveClass('test');
165
+ });
166
+ });
@@ -0,0 +1,2 @@
1
+ export { default } from './SourcesCardBase';
2
+ export * from './SourcesCardBase';
@@ -0,0 +1,2 @@
1
+ export { default } from './SourcesCardBase';
2
+ export * from './SourcesCardBase';
@@ -10,9 +10,9 @@ export interface ToolResponseProps {
10
10
  /** Body text rendered inside expandable section */
11
11
  body?: React.ReactNode | string;
12
12
  /** Content passed into tool response card body */
13
- cardBody: React.ReactNode;
13
+ cardBody?: React.ReactNode;
14
14
  /** Content passed into tool response card title */
15
- cardTitle: React.ReactNode;
15
+ cardTitle?: React.ReactNode;
16
16
  /** Additional props passed to main card */
17
17
  cardProps?: CardProps;
18
18
  /** Additional props passed to main card body */
@@ -9,6 +9,6 @@ export const ToolResponse = ({ body, cardProps, expandableSectionProps, subheadi
9
9
  const onToggle = (_event, isExpanded) => {
10
10
  setIsExpanded(isExpanded);
11
11
  };
12
- return (_jsx(Card, Object.assign({ isCompact: true, className: "pf-chatbot__tool-response" }, cardProps, { children: _jsx(CardBody, Object.assign({}, cardBodyProps, { children: _jsx(ExpandableSection, Object.assign({ toggleContent: toggleContent, onToggle: onToggle, isExpanded: isExpanded, isIndented: true, className: "pf-chatbot__tool-response-expandable-section" }, expandableSectionProps, { children: _jsxs("div", { className: "pf-chatbot__tool-response-section", children: [subheading && (_jsx("div", { className: "pf-chatbot__tool-response-subheading", children: _jsx("span", { children: subheading }) })), body && _jsx("div", { className: "pf-chatbot__tool-response-body", children: body }), _jsxs(Card, Object.assign({ isCompact: true, className: "pf-chatbot__tool-response-card" }, toolResponseCardProps, { children: [_jsx(CardTitle, Object.assign({}, toolResponseCardTitleProps, { children: cardTitle })), _jsx(Divider, Object.assign({}, toolResponseCardDividerProps)), _jsx(CardBody, Object.assign({}, toolResponseCardBodyProps, { children: cardBody }))] }))] }) })) })) })));
12
+ return (_jsx(Card, Object.assign({ isCompact: true, className: "pf-chatbot__tool-response" }, cardProps, { children: _jsx(CardBody, Object.assign({}, cardBodyProps, { children: _jsx(ExpandableSection, Object.assign({ toggleContent: toggleContent, onToggle: onToggle, isExpanded: isExpanded, isIndented: true, className: "pf-chatbot__tool-response-expandable-section" }, expandableSectionProps, { children: _jsxs("div", { className: "pf-chatbot__tool-response-section", children: [subheading && (_jsx("div", { className: "pf-chatbot__tool-response-subheading", children: _jsx("span", { children: subheading }) })), body && _jsx("div", { className: "pf-chatbot__tool-response-body", children: body }), (cardTitle || cardBody) && (_jsxs(Card, Object.assign({ isCompact: true, className: "pf-chatbot__tool-response-card" }, toolResponseCardProps, { children: [cardTitle && _jsx(CardTitle, Object.assign({}, toolResponseCardTitleProps, { children: cardTitle })), cardTitle && cardBody && _jsx(Divider, Object.assign({}, toolResponseCardDividerProps)), cardBody && _jsx(CardBody, Object.assign({}, toolResponseCardBodyProps, { children: cardBody }))] })))] }) })) })) })));
13
13
  };
14
14
  export default ToolResponse;
@@ -52,4 +52,28 @@ describe('ToolResponse', () => {
52
52
  const subheadingContainer = container.querySelector('.pf-chatbot__tool-response-subheading');
53
53
  expect(subheadingContainer).toBeFalsy();
54
54
  });
55
+ it('should not render card when cardTitle and cardBody are not provided', () => {
56
+ const { container } = render(_jsx(ToolResponse, Object.assign({}, defaultProps, { cardTitle: undefined, cardBody: undefined })));
57
+ expect(container.querySelector('.pf-chatbot__tool-response-card')).toBeFalsy();
58
+ });
59
+ it('should render card when only cardTitle is provided', () => {
60
+ const { container } = render(_jsx(ToolResponse, Object.assign({}, defaultProps, { cardBody: undefined })));
61
+ expect(container.querySelector('.pf-chatbot__tool-response-card')).toBeTruthy();
62
+ });
63
+ it('should render card when only cardBody is provided', () => {
64
+ const { container } = render(_jsx(ToolResponse, Object.assign({}, defaultProps, { cardTitle: undefined })));
65
+ expect(container.querySelector('.pf-chatbot__tool-response-card')).toBeTruthy();
66
+ });
67
+ it('should render divider when cardBody and cardTitle are provided', () => {
68
+ const { container } = render(_jsx(ToolResponse, Object.assign({}, defaultProps)));
69
+ expect(container.querySelector('.pf-v6-c-divider')).toBeTruthy();
70
+ });
71
+ it('should not render divider when only cardBody is provided', () => {
72
+ const { container } = render(_jsx(ToolResponse, Object.assign({}, defaultProps, { cardTitle: undefined })));
73
+ expect(container.querySelector('.pf-v6-c-divider')).toBeFalsy();
74
+ });
75
+ it('should not render divider when only cardTitle is provided', () => {
76
+ const { container } = render(_jsx(ToolResponse, Object.assign({}, defaultProps, { cardBody: undefined })));
77
+ expect(container.querySelector('.pf-v6-c-divider')).toBeFalsy();
78
+ });
55
79
  });
@@ -58,6 +58,8 @@ export { default as SourceDetailsMenuItem } from './SourceDetailsMenuItem';
58
58
  export * from './SourceDetailsMenuItem';
59
59
  export { default as SourcesCard } from './SourcesCard';
60
60
  export * from './SourcesCard';
61
+ export { default as SourcesCardBase } from './SourcesCardBase';
62
+ export * from './SourcesCardBase';
61
63
  export { default as TermsOfUse } from './TermsOfUse';
62
64
  export * from './TermsOfUse';
63
65
  export { default as ToolCall } from './ToolCall';
package/dist/esm/index.js CHANGED
@@ -59,6 +59,8 @@ export { default as SourceDetailsMenuItem } from './SourceDetailsMenuItem';
59
59
  export * from './SourceDetailsMenuItem';
60
60
  export { default as SourcesCard } from './SourcesCard';
61
61
  export * from './SourcesCard';
62
+ export { default as SourcesCardBase } from './SourcesCardBase';
63
+ export * from './SourcesCardBase';
62
64
  export { default as TermsOfUse } from './TermsOfUse';
63
65
  export * from './TermsOfUse';
64
66
  export { default as ToolCall } from './ToolCall';
@@ -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/ChatbotHeaderNewChatButton.test.tsx","../src/ChatbotHeader/ChatbotHeaderNewChatButton.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/DeepThinking/DeepThinking.test.tsx","../src/DeepThinking/DeepThinking.tsx","../src/DeepThinking/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/FilePreview/FilePreview.test.tsx","../src/FilePreview/FilePreview.tsx","../src/FilePreview/index.ts","../src/ImagePreview/ImagePreview.test.tsx","../src/ImagePreview/ImagePreview.tsx","../src/ImagePreview/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/Plugins/index.ts","../src/Message/Plugins/rehypeCodeBlockToggle.ts","../src/Message/Plugins/rehypeMoveImagesOutOfParagraphs.ts","../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/SuperscriptMessage/SuperscriptMessage.tsx","../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/MessageDivider/MessageDivider.test.tsx","../src/MessageDivider/MessageDivider.tsx","../src/MessageDivider/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/ToolCall/ToolCall.test.tsx","../src/ToolCall/ToolCall.tsx","../src/ToolCall/index.ts","../src/ToolResponse/ToolResponse.test.tsx","../src/ToolResponse/ToolResponse.tsx","../src/ToolResponse/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/ChatbotHeaderNewChatButton.test.tsx","../src/ChatbotHeader/ChatbotHeaderNewChatButton.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/DeepThinking/DeepThinking.test.tsx","../src/DeepThinking/DeepThinking.tsx","../src/DeepThinking/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/FilePreview/FilePreview.test.tsx","../src/FilePreview/FilePreview.tsx","../src/FilePreview/index.ts","../src/ImagePreview/ImagePreview.test.tsx","../src/ImagePreview/ImagePreview.tsx","../src/ImagePreview/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/Plugins/index.ts","../src/Message/Plugins/rehypeCodeBlockToggle.ts","../src/Message/Plugins/rehypeMoveImagesOutOfParagraphs.ts","../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/SuperscriptMessage/SuperscriptMessage.tsx","../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/MessageDivider/MessageDivider.test.tsx","../src/MessageDivider/MessageDivider.tsx","../src/MessageDivider/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/SourcesCardBase/SourcesCardBase.test.tsx","../src/SourcesCardBase/SourcesCardBase.tsx","../src/SourcesCardBase/index.ts","../src/TermsOfUse/TermsOfUse.test.tsx","../src/TermsOfUse/TermsOfUse.tsx","../src/TermsOfUse/index.ts","../src/ToolCall/ToolCall.test.tsx","../src/ToolCall/ToolCall.tsx","../src/ToolCall/index.ts","../src/ToolResponse/ToolResponse.test.tsx","../src/ToolResponse/ToolResponse.tsx","../src/ToolResponse/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.4.0-prerelease.22",
3
+ "version": "6.4.0-prerelease.24",
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",
@@ -53,7 +53,7 @@
53
53
  "react-dom": "^18 || ^19"
54
54
  },
55
55
  "devDependencies": {
56
- "@patternfly/documentation-framework": "6.19.0",
56
+ "@patternfly/documentation-framework": "6.22.7",
57
57
  "@patternfly/patternfly": "^6.1.0",
58
58
  "@patternfly/patternfly-a11y": "^5.0.0",
59
59
  "@types/dom-speech-recognition": "^0.0.4",
@@ -1,10 +1,13 @@
1
- .pf-chatbot__source {
1
+ .pf-chatbot__source,
2
+ .pf-chatbot__sources-card-base {
2
3
  display: flex;
3
4
  flex-direction: column;
4
5
  gap: var(--pf-t--global--spacer--sm);
5
6
  padding-block-start: var(--pf-t--global--spacer--sm);
6
7
  max-width: 22.5rem;
8
+ }
7
9
 
10
+ .pf-chatbot__sources-card-base {
8
11
  a {
9
12
  color: var(--pf-t--global--text--color--link--default) !important;
10
13
  -webkit-text-decoration: var(--pf-t--global--text-decoration--link--line--default) !important;