@patternfly/chatbot 6.8.0-prerelease.3 → 6.8.0-prerelease.5

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 (112) hide show
  1. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +2 -5
  2. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +3 -3
  3. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.js +1 -1
  4. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +2 -5
  5. package/dist/cjs/ChatbotHeader/ChatbotHeaderNewChatButton.js +2 -2
  6. package/dist/cjs/FileDropZone/FileDropZone.js +1 -1
  7. package/dist/cjs/MarkdownContent/MarkdownContent.js +15 -1
  8. package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.js +2 -2
  9. package/dist/cjs/Message/LinkMessage/LinkMessage.js +5 -1
  10. package/dist/cjs/Message/Message.test.js +1 -18
  11. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.js +2 -5
  12. package/dist/cjs/MessageBar/MessageBar.test.js +1 -1
  13. package/dist/cjs/MessageBox/JumpButton.test.js +2 -2
  14. package/dist/cjs/MessageBox/MessageBox.js +79 -28
  15. package/dist/cjs/MessageBox/MessageBox.test.d.ts +1 -1
  16. package/dist/cjs/MessageBox/MessageBox.test.js +59 -0
  17. package/dist/cjs/ResponseActions/ResponseActionButton.test.js +6 -6
  18. package/dist/cjs/ResponseActions/ResponseActions.test.js +6 -7
  19. package/dist/cjs/SourcesCardBase/SourcesCardBase.js +5 -5
  20. package/dist/cjs/index.d.ts +0 -2
  21. package/dist/cjs/index.js +1 -4
  22. package/dist/css/main.css +0 -13
  23. package/dist/css/main.css.map +1 -1
  24. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.js +2 -2
  25. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +4 -4
  26. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.js +2 -2
  27. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +2 -2
  28. package/dist/esm/ChatbotHeader/ChatbotHeaderNewChatButton.js +2 -2
  29. package/dist/esm/FileDropZone/FileDropZone.js +2 -2
  30. package/dist/esm/MarkdownContent/MarkdownContent.js +15 -1
  31. package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.js +2 -2
  32. package/dist/esm/Message/LinkMessage/LinkMessage.js +6 -2
  33. package/dist/esm/Message/Message.test.js +1 -18
  34. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.js +2 -2
  35. package/dist/esm/MessageBar/MessageBar.test.js +2 -2
  36. package/dist/esm/MessageBox/JumpButton.test.js +2 -2
  37. package/dist/esm/MessageBox/MessageBox.js +80 -29
  38. package/dist/esm/MessageBox/MessageBox.test.d.ts +1 -1
  39. package/dist/esm/MessageBox/MessageBox.test.js +59 -0
  40. package/dist/esm/ResponseActions/ResponseActionButton.test.js +7 -7
  41. package/dist/esm/ResponseActions/ResponseActions.test.js +7 -8
  42. package/dist/esm/SourcesCardBase/SourcesCardBase.js +7 -7
  43. package/dist/esm/index.d.ts +0 -2
  44. package/dist/esm/index.js +0 -2
  45. package/dist/tsconfig.tsbuildinfo +1 -1
  46. package/package.json +2 -2
  47. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithCustomResponseActions.tsx +3 -4
  48. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithMarkdownToolResponse.tsx +3 -3
  49. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +3 -3
  50. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithSources.tsx +3 -3
  51. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithToolResponse.tsx +5 -5
  52. package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +1 -1
  53. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessageWithExtraContent.tsx +7 -31
  54. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderBasic.tsx +4 -6
  55. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +3 -3
  56. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerResizable.tsx +2 -2
  57. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithPin.tsx +2 -2
  58. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithSearchActions.tsx +3 -3
  59. package/patternfly-docs/content/extensions/chatbot/examples/UI/CompactSettings.tsx +10 -5
  60. package/patternfly-docs/content/extensions/chatbot/examples/UI/Settings.tsx +10 -5
  61. package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +1 -15
  62. package/patternfly-docs/content/extensions/chatbot/examples/demos/AttachmentDemos.md +2 -4
  63. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +2 -5
  64. package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.tsx +4 -7
  65. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +4 -6
  66. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +13 -7
  67. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotCompact.tsx +4 -7
  68. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotDisplayMode.tsx +10 -8
  69. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotInDrawer.tsx +2 -2
  70. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotScrolling.tsx +4 -8
  71. package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotTranscripts.tsx +4 -7
  72. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +2 -2
  73. package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedComparisonChatbot.tsx +2 -2
  74. package/patternfly-docs/content/extensions/chatbot/examples/demos/WhiteEmbeddedChatbot.tsx +2 -2
  75. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx +2 -3
  76. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +4 -4
  77. package/src/ChatbotHeader/ChatbotHeaderCloseButton.tsx +2 -2
  78. package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +2 -2
  79. package/src/ChatbotHeader/ChatbotHeaderNewChatButton.tsx +2 -3
  80. package/src/FileDropZone/FileDropZone.tsx +2 -2
  81. package/src/MarkdownContent/MarkdownContent.tsx +14 -0
  82. package/src/Message/CodeBlockMessage/CodeBlockMessage.tsx +2 -2
  83. package/src/Message/LinkMessage/LinkMessage.tsx +21 -2
  84. package/src/Message/Message.test.tsx +4 -4
  85. package/src/Message/QuickStarts/QuickStartTileDescription.tsx +2 -2
  86. package/src/MessageBar/MessageBar.test.tsx +6 -6
  87. package/src/MessageBox/JumpButton.test.tsx +1 -1
  88. package/src/MessageBox/MessageBox.test.tsx +91 -0
  89. package/src/MessageBox/MessageBox.tsx +137 -40
  90. package/src/ResponseActions/ResponseActionButton.test.tsx +7 -7
  91. package/src/ResponseActions/ResponseActions.test.tsx +7 -8
  92. package/src/SourcesCard/SourcesCard.scss +0 -13
  93. package/src/SourcesCardBase/SourcesCardBase.tsx +7 -32
  94. package/dist/cjs/LoadingMessage/LoadingMessage.d.ts +0 -6
  95. package/dist/cjs/LoadingMessage/LoadingMessage.js +0 -12
  96. package/dist/cjs/LoadingMessage/LoadingMessage.test.d.ts +0 -1
  97. package/dist/cjs/LoadingMessage/LoadingMessage.test.js +0 -20
  98. package/dist/cjs/LoadingMessage/index.d.ts +0 -2
  99. package/dist/cjs/LoadingMessage/index.js +0 -23
  100. package/dist/dynamic/LoadingMessage/package.json +0 -1
  101. package/dist/esm/LoadingMessage/LoadingMessage.d.ts +0 -6
  102. package/dist/esm/LoadingMessage/LoadingMessage.js +0 -5
  103. package/dist/esm/LoadingMessage/LoadingMessage.test.d.ts +0 -1
  104. package/dist/esm/LoadingMessage/LoadingMessage.test.js +0 -15
  105. package/dist/esm/LoadingMessage/index.d.ts +0 -2
  106. package/dist/esm/LoadingMessage/index.js +0 -2
  107. package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachMenu.tsx +0 -149
  108. package/patternfly-docs/content/extensions/chatbot/examples/Messages/PaperclipIcon.svg +0 -10
  109. package/src/LoadingMessage/LoadingMessage.test.tsx +0 -15
  110. package/src/LoadingMessage/LoadingMessage.tsx +0 -27
  111. package/src/LoadingMessage/__snapshots__/LoadingMessage.test.tsx.snap +0 -64
  112. package/src/LoadingMessage/index.ts +0 -3
@@ -1,149 +0,0 @@
1
- import { useState, isValidElement, cloneElement, Children, FunctionComponent, ReactNode } from 'react';
2
- import AttachMenu from '@patternfly/chatbot/dist/dynamic/AttachMenu';
3
- import SourceDetailsMenuItem from '@patternfly/chatbot/dist/dynamic/SourceDetailsMenuItem';
4
- import { Button, Divider, DropdownGroup, DropdownItem, DropdownList } from '@patternfly/react-core';
5
- import { BellIcon, CodeIcon, ClipboardIcon, CalendarAltIcon, UploadIcon } from '@patternfly/react-icons';
6
- import PaperclipIcon from './PaperclipIcon';
7
-
8
- const initialMenuItems = [
9
- <DropdownList key="list-1">
10
- <DropdownItem className="pf-chatbot-source-details-dropdown-item" value="auth-operator Pod" id="0">
11
- <SourceDetailsMenuItem
12
- icon={
13
- <svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
14
- <path
15
- d="M0 12.5C0 5.87258 5.37258 0.5 12 0.5C18.6274 0.5 24 5.87258 24 12.5C24 19.1274 18.6274 24.5 12 24.5C5.37258 24.5 0 19.1274 0 12.5Z"
16
- fill="currentColor"
17
- />
18
- <g clipPath="url(#clip0_3280_27488)">
19
- <path
20
- d="M8.25 8.75C8.25 7.92266 8.92266 7.25 9.75 7.25H12C14.0719 7.25 15.75 8.92812 15.75 11C15.75 13.0719 14.0719 14.75 12 14.75H9.75V17C9.75 17.4148 9.41484 17.75 9 17.75C8.58516 17.75 8.25 17.4148 8.25 17V14V8.75ZM9.75 13.25H12C13.2422 13.25 14.25 12.2422 14.25 11C14.25 9.75781 13.2422 8.75 12 8.75H9.75V13.25Z"
21
- fill="white"
22
- />
23
- </g>
24
- <defs>
25
- <clipPath id="clip0_3280_27488">
26
- <rect width="7.5" height="12" fill="white" transform="translate(8.25 6.5)" />
27
- </clipPath>
28
- </defs>
29
- </svg>
30
- }
31
- name="auth-operator"
32
- type="Pod"
33
- />
34
- </DropdownItem>
35
- </DropdownList>,
36
- <DropdownGroup key="group2">
37
- <DropdownList>
38
- <DropdownItem value="Alerts" id="1" icon={<BellIcon />}>
39
- Alerts
40
- </DropdownItem>
41
- <DropdownItem value="Events" id="2" icon={<CalendarAltIcon />}>
42
- Events
43
- </DropdownItem>
44
- <DropdownItem value="Logs" id="3" icon={<ClipboardIcon />}>
45
- Logs
46
- </DropdownItem>
47
- <DropdownItem value="YAML - Status" id="4" icon={<CodeIcon />}>
48
- YAML - Status
49
- </DropdownItem>
50
- <DropdownItem value="YAML - All contents" id="5" icon={<CodeIcon />}>
51
- YAML - All contents
52
- </DropdownItem>
53
- </DropdownList>
54
- </DropdownGroup>
55
- ];
56
-
57
- const uploadMenuItems = [
58
- <Divider key="divider" />,
59
- <DropdownList key="list-2">
60
- <DropdownItem key="upload" value="upload" id="upload" icon={<UploadIcon />}>
61
- Upload from computer
62
- </DropdownItem>
63
- </DropdownList>
64
- ];
65
-
66
- export const AttachmentMenuExample: FunctionComponent = () => {
67
- const [isOpen, setIsOpen] = useState<boolean>(false);
68
- const [userFacingMenuItems, setUserFacingMenuItems] = useState<ReactNode>([]);
69
-
70
- const onToggleClick = () => {
71
- setIsOpen(!isOpen);
72
- setUserFacingMenuItems(initialMenuItems.concat(uploadMenuItems));
73
- };
74
-
75
- const findMatchingElements = (elements: ReactNode[], targetValue: string) => {
76
- let matchingElements = [] as ReactNode[];
77
-
78
- elements.forEach((element) => {
79
- if (isValidElement(element)) {
80
- // Check if the element's value matches the targetValue
81
- if (element.props.value && element.props.value.toLowerCase().includes(targetValue.toLowerCase())) {
82
- matchingElements.push(cloneElement(element, { key: element.props.value }));
83
- }
84
-
85
- // Recursively check the element's children
86
- const children = Children.toArray(element.props.children);
87
- matchingElements = matchingElements.concat(findMatchingElements(children, targetValue));
88
- }
89
- });
90
-
91
- return matchingElements;
92
- };
93
-
94
- const onTextChange = (textValue: string) => {
95
- if (textValue === '') {
96
- setUserFacingMenuItems(initialMenuItems.concat(uploadMenuItems));
97
- return;
98
- }
99
-
100
- const newMenuItems = findMatchingElements(initialMenuItems, textValue);
101
- // this is necessary because the React nodes we find traversing the recursive search
102
- // aren't correctly wrapped in a DropdownList. This leads to problems with the
103
- // auth-operator item where it winds up floating in a bad place in the DOM and never
104
- // gets removed
105
- setUserFacingMenuItems(
106
- <>
107
- <DropdownList>
108
- {newMenuItems.length === 0 ? (
109
- <DropdownItem key="no-items">No results found</DropdownItem>
110
- ) : (
111
- newMenuItems.map((item) => item)
112
- )}
113
- </DropdownList>
114
- {uploadMenuItems.map((item) => item)}
115
- </>
116
- );
117
- };
118
-
119
- return (
120
- <AttachMenu
121
- filteredItems={userFacingMenuItems}
122
- isOpen={isOpen}
123
- onOpenChange={(isOpen) => setIsOpen(isOpen)}
124
- onOpenChangeKeys={['Escape']}
125
- // eslint-disable-next-line no-console
126
- onSelect={(_ev, value) => console.log('selected', value)}
127
- handleTextInputChange={onTextChange}
128
- popperProps={{ direction: 'up', distance: 8 }}
129
- searchInputPlaceholder="Search cluster resources..."
130
- toggle={(toggleRef) => (
131
- <Button
132
- style={{
133
- alignItems: 'center',
134
- borderRadius: '50%',
135
- display: 'flex',
136
- height: '48px',
137
- justifyContent: 'center',
138
- padding: '0',
139
- width: '48px',
140
- lineHeight: '1rem'
141
- }}
142
- ref={toggleRef}
143
- onClick={onToggleClick}
144
- icon={<img src={PaperclipIcon} alt="Add an attachment" />}
145
- />
146
- )}
147
- />
148
- );
149
- };
@@ -1,10 +0,0 @@
1
- <svg width="18" height="20" viewBox="0 0 18 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <g clip-path="url(#clip0_3934_2737)">
3
- <path d="M14.4766 3.27344C13.5234 2.32031 11.9766 2.32031 11.0234 3.27344L3.83594 10.4609C2.19141 12.1055 2.19141 14.7695 3.83594 16.4141C5.48047 18.0586 8.14453 18.0586 9.78906 16.4141L15.7266 10.4766C16.1523 10.0508 16.8477 10.0508 17.2734 10.4766C17.6992 10.9023 17.6992 11.5977 17.2734 12.0234L11.3359 17.9609C8.83594 20.4609 4.78906 20.4609 2.28906 17.9609C-0.210938 15.4609 -0.210938 11.4141 2.28906 8.91406L9.47656 1.72656C11.2852 -0.0820313 14.2148 -0.0820313 16.0234 1.72656C17.832 3.53516 17.832 6.46484 16.0234 8.27344L9.14844 15.1484C8.03125 16.2656 6.21875 16.2656 5.10156 15.1484C3.98438 14.0312 3.98438 12.2188 5.10156 11.1016L10.7266 5.47656C11.1523 5.05078 11.8477 5.05078 12.2734 5.47656C12.6992 5.90234 12.6992 6.59766 12.2734 7.02344L6.64844 12.6484C6.38672 12.9102 6.38672 13.3398 6.64844 13.6016C6.91016 13.8633 7.33984 13.8633 7.60156 13.6016L14.4766 6.72656C15.4297 5.77344 15.4297 4.22656 14.4766 3.27344Z" fill="white"/>
4
- </g>
5
- <defs>
6
- <clipPath id="clip0_3934_2737">
7
- <rect width="17.5" height="20" fill="white" transform="translate(0.25)"/>
8
- </clipPath>
9
- </defs>
10
- </svg>
@@ -1,15 +0,0 @@
1
- import { render, screen } from '@testing-library/react';
2
- import '@testing-library/jest-dom';
3
- import LoadingMessage from './LoadingMessage';
4
-
5
- describe('LoadingMessage', () => {
6
- it('should render loading message', () => {
7
- const { container } = render(<LoadingMessage />);
8
- expect(container).toMatchSnapshot();
9
- });
10
- it('should render loading message correctly', () => {
11
- render(<LoadingMessage />);
12
- expect(screen.getAllByText('.')).toBeTruthy();
13
- expect(screen.getAllByText('.')).toHaveLength(3);
14
- });
15
- });
@@ -1,27 +0,0 @@
1
- import type { FunctionComponent } from 'react';
2
- import { Icon, Split, SplitItem } from '@patternfly/react-core';
3
-
4
- import RobotIcon from '@patternfly/react-icons/dist/js/icons/robot-icon';
5
-
6
- export interface LoadingMessageProps {
7
- icon?: React.ComponentType;
8
- }
9
-
10
- export const LoadingMessage: FunctionComponent<LoadingMessageProps> = ({ icon: IconComponent = RobotIcon }) => (
11
- <Split>
12
- <SplitItem>
13
- <Icon size="lg" className="pf-v6-u-mr-sm pf-v6-u-pt-md">
14
- <IconComponent />
15
- </Icon>
16
- </SplitItem>
17
- <SplitItem className="pf-u-background-color-200">
18
- <div className="pf-v6-u-display-flex pf-u-align-items-center">
19
- <div>.</div>
20
- <div>.</div>
21
- <div>.</div>
22
- </div>
23
- </SplitItem>
24
- </Split>
25
- );
26
-
27
- export default LoadingMessage;
@@ -1,64 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`LoadingMessage should render loading message 1`] = `
4
- <div>
5
- <div
6
- class="pf-v6-l-split"
7
- >
8
- <div
9
- class="pf-v6-l-split__item"
10
- >
11
- <span
12
- class="pf-v6-c-icon pf-m-lg pf-v6-u-mr-sm pf-v6-u-pt-md"
13
- >
14
- <span
15
- class="pf-v6-c-icon__content"
16
- >
17
- <svg
18
- aria-hidden="true"
19
- class="pf-v6-svg"
20
- fill="currentColor"
21
- height="1em"
22
- role="img"
23
- width="1em"
24
- >
25
- <svg
26
- class="pf-v6-icon-default"
27
- viewBox="0 0 640 512"
28
- >
29
- <path
30
- d="M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z"
31
- />
32
- </svg>
33
- <svg
34
- class="pf-v6-icon-rh-ui"
35
- viewBox="0 0 32 32"
36
- >
37
- <path
38
- d="M29 22.5V29a1 1 0 1 1-2 0v-6H5v6a1 1 0 1 1-2 0v-6.5c0-.827.673-1.5 1.5-1.5h23c.827 0 1.5.673 1.5 1.5ZM3 11a1 1 0 0 1 1-1h2V5.5C6 4.673 6.673 4 7.5 4H12V2a1 1 0 1 1 2 0v2h4V2a1 1 0 1 1 2 0v2h4.5c.827 0 1.5.673 1.5 1.5V10h2a1 1 0 1 1 0 2h-2v4.5c0 .827-.673 1.5-1.5 1.5h-17c-.827 0-1.5-.673-1.5-1.5V12H4a1 1 0 0 1-1-1Zm5 5h16V6H8v10Zm5-6.612a1.626 1.626 0 1 0 .001 3.251A1.626 1.626 0 0 0 13 9.388Zm6-.01a1.626 1.626 0 1 0 .001 3.251A1.626 1.626 0 0 0 19 9.378Z"
39
- />
40
- </svg>
41
- </svg>
42
- </span>
43
- </span>
44
- </div>
45
- <div
46
- class="pf-v6-l-split__item pf-u-background-color-200"
47
- >
48
- <div
49
- class="pf-v6-u-display-flex pf-u-align-items-center"
50
- >
51
- <div>
52
- .
53
- </div>
54
- <div>
55
- .
56
- </div>
57
- <div>
58
- .
59
- </div>
60
- </div>
61
- </div>
62
- </div>
63
- </div>
64
- `;
@@ -1,3 +0,0 @@
1
- export { default } from './LoadingMessage';
2
-
3
- export * from './LoadingMessage';