@patternfly/chatbot 6.6.0-prerelease.6 → 6.6.0-prerelease.7
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.
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +1 -1
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +1 -1
- package/dist/cjs/ChatbotConversationHistoryNav/LoadingState.js +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.js +1 -1
- package/dist/css/main.css +17 -10
- package/dist/css/main.css.map +1 -1
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +1 -1
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +1 -1
- package/dist/esm/ChatbotConversationHistoryNav/LoadingState.js +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +1 -1
- package/package.json +1 -1
- package/patternfly-docs/content/extensions/chatbot/chatbot.md +1 -1
- package/patternfly-docs/content/extensions/chatbot/design-guidelines.md +10 -12
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderBasic.tsx +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +16 -16
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +3 -3
- package/src/Chatbot/Chatbot.scss +8 -1
- package/src/ChatbotContent/ChatbotContent.scss +5 -1
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +1 -1
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +1 -1
- package/src/ChatbotConversationHistoryNav/LoadingState.tsx +1 -5
- package/src/ChatbotFooter/ChatbotFooter.scss +8 -1
- package/src/ChatbotHeader/ChatbotHeader.scss +5 -2
- package/src/ChatbotHeader/ChatbotHeaderMenu.test.tsx +1 -1
- package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +2 -2
- package/src/MessageBar/MessageBar.scss +8 -5
|
@@ -34,7 +34,7 @@ export interface ChatbotConversationHistoryNavProps extends DrawerProps {
|
|
|
34
34
|
activeItemId?: string | number;
|
|
35
35
|
/** Callback function for when an item is selected */
|
|
36
36
|
onSelectActiveItem?: (event?: React.MouseEvent, itemId?: string | number) => void;
|
|
37
|
-
/** Items shown in
|
|
37
|
+
/** Items shown in chat history */
|
|
38
38
|
conversations: Conversation[] | {
|
|
39
39
|
[key: string]: Conversation[];
|
|
40
40
|
};
|
|
@@ -138,7 +138,7 @@ describe('ChatbotConversationHistoryNav', () => {
|
|
|
138
138
|
});
|
|
139
139
|
it('should show loading state if triggered', () => {
|
|
140
140
|
(0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, handleTextInputChange: jest.fn(), conversations: initialConversations, isLoading: true }));
|
|
141
|
-
expect(react_1.screen.getByRole('dialog', { name: /Loading chatbot
|
|
141
|
+
expect(react_1.screen.getByRole('dialog', { name: /Loading chatbot chat history/i })).toBeTruthy();
|
|
142
142
|
expect(react_1.screen.getByRole('button', { name: /Close drawer panel/i })).toBeTruthy();
|
|
143
143
|
});
|
|
144
144
|
it('should pass alternative aria label to loading state', () => {
|
|
@@ -16,7 +16,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
16
16
|
const react_core_1 = require("@patternfly/react-core");
|
|
17
17
|
const LoadingState = (_a) => {
|
|
18
18
|
var { screenreaderText } = _a, rest = __rest(_a, ["screenreaderText"]);
|
|
19
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: "pf-chatbot__history-loading", children: [(0, jsx_runtime_1.jsx)("div", { className: "pf-chatbot__history-loading-block", children: (0, jsx_runtime_1.jsx)(react_core_1.Skeleton, Object.assign({ screenreaderText: screenreaderText !== null && screenreaderText !== void 0 ? screenreaderText : 'Loading chatbot
|
|
19
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "pf-chatbot__history-loading", children: [(0, jsx_runtime_1.jsx)("div", { className: "pf-chatbot__history-loading-block", children: (0, jsx_runtime_1.jsx)(react_core_1.Skeleton, Object.assign({ screenreaderText: screenreaderText !== null && screenreaderText !== void 0 ? screenreaderText : 'Loading chatbot chat history', fontSize: "3xl" }, rest)) }), (0, jsx_runtime_1.jsxs)("div", { className: "pf-chatbot__history-loading-block", children: [(0, jsx_runtime_1.jsx)(react_core_1.Skeleton, Object.assign({ fontSize: "sm", width: "70%" }, rest)), (0, jsx_runtime_1.jsx)(react_core_1.Skeleton, Object.assign({ fontSize: "3xl" }, rest)), (0, jsx_runtime_1.jsx)(react_core_1.Skeleton, Object.assign({ fontSize: "3xl" }, rest))] }), (0, jsx_runtime_1.jsxs)("div", { className: "pf-chatbot__history-loading-block", children: [(0, jsx_runtime_1.jsx)(react_core_1.Skeleton, Object.assign({ fontSize: "sm", width: "70%" }, rest)), (0, jsx_runtime_1.jsx)(react_core_1.Skeleton, Object.assign({ fontSize: "3xl" }, rest)), (0, jsx_runtime_1.jsx)(react_core_1.Skeleton, Object.assign({ fontSize: "3xl" }, rest)), (0, jsx_runtime_1.jsx)(react_core_1.Skeleton, Object.assign({ fontSize: "3xl" }, rest))] }), (0, jsx_runtime_1.jsxs)("div", { className: "pf-chatbot__history-loading-block", children: [(0, jsx_runtime_1.jsx)(react_core_1.Skeleton, Object.assign({ fontSize: "sm", width: "70%" }, rest)), (0, jsx_runtime_1.jsx)(react_core_1.Skeleton, Object.assign({ fontSize: "3xl" }, rest)), (0, jsx_runtime_1.jsx)(react_core_1.Skeleton, Object.assign({ fontSize: "3xl" }, rest)), (0, jsx_runtime_1.jsx)(react_core_1.Skeleton, Object.assign({ fontSize: "3xl" }, rest)), (0, jsx_runtime_1.jsx)(react_core_1.Skeleton, Object.assign({ fontSize: "3xl" }, rest))] }), (0, jsx_runtime_1.jsxs)("div", { className: "pf-chatbot__history-loading-block", children: [(0, jsx_runtime_1.jsx)(react_core_1.Skeleton, Object.assign({ fontSize: "sm", width: "70%" }, rest)), (0, jsx_runtime_1.jsx)(react_core_1.Skeleton, Object.assign({ fontSize: "3xl" }, rest))] })] }));
|
|
20
20
|
};
|
|
21
21
|
exports.LoadingState = LoadingState;
|
|
22
22
|
exports.default = exports.LoadingState;
|
|
@@ -20,7 +20,7 @@ const react_1 = require("react");
|
|
|
20
20
|
const react_core_1 = require("@patternfly/react-core");
|
|
21
21
|
const bars_icon_1 = __importDefault(require("@patternfly/react-icons/dist/esm/icons/bars-icon"));
|
|
22
22
|
const ChatbotHeaderMenuBase = (_a) => {
|
|
23
|
-
var { className, onMenuToggle, tooltipProps, menuAriaLabel = 'Chat history
|
|
23
|
+
var { className, onMenuToggle, tooltipProps, menuAriaLabel = 'Chat history drawer', innerRef, tooltipContent = 'Chat history drawer', isCompact } = _a, props = __rest(_a, ["className", "onMenuToggle", "tooltipProps", "menuAriaLabel", "innerRef", "tooltipContent", "isCompact"]);
|
|
24
24
|
const [isDrawerAnimating, setIsDrawerAnimating] = (0, react_1.useState)(false);
|
|
25
25
|
// I'd like to use a prop here later if this works
|
|
26
26
|
const drawerState = props['aria-expanded'];
|
|
@@ -12,7 +12,7 @@ describe('ChatbotHeaderMenu', () => {
|
|
|
12
12
|
it('should call onMenuToggle when ChatbotHeaderMenu button is clicked', () => {
|
|
13
13
|
const onMenuToggle = jest.fn();
|
|
14
14
|
(0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotHeaderMenu_1.ChatbotHeaderMenu, { className: "custom-header-menu", onMenuToggle: onMenuToggle }));
|
|
15
|
-
react_1.fireEvent.click(react_1.screen.getByRole('button', { name: 'Chat history
|
|
15
|
+
react_1.fireEvent.click(react_1.screen.getByRole('button', { name: 'Chat history drawer' }));
|
|
16
16
|
expect(onMenuToggle).toHaveBeenCalled();
|
|
17
17
|
});
|
|
18
18
|
it('should handle isCompact', () => {
|
package/dist/css/main.css
CHANGED
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
flex-direction: column;
|
|
63
63
|
width: 30rem;
|
|
64
64
|
height: 70vh;
|
|
65
|
-
background-color: var(--pf-t--global--background--color--secondary--default);
|
|
65
|
+
background-color: var(--pf-t--global--background--color--floating--secondary--default, --pf-t--global--background--color--secondary--default);
|
|
66
66
|
border-radius: var(--pf-t--global--border--radius--medium);
|
|
67
67
|
box-shadow: var(--pf-t--global--box-shadow--lg);
|
|
68
68
|
font-size: var(--pf-t--global--font--size--md);
|
|
@@ -111,6 +111,7 @@
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
.pf-chatbot--fullscreen {
|
|
114
|
+
background-color: var(--pf-t--global--background--color--secondary--default);
|
|
114
115
|
border: unset;
|
|
115
116
|
inset-block-end: 0;
|
|
116
117
|
inset-inline-end: 0;
|
|
@@ -122,6 +123,7 @@
|
|
|
122
123
|
}
|
|
123
124
|
|
|
124
125
|
.pf-chatbot--embedded {
|
|
126
|
+
background-color: var(--pf-t--global--background--color--secondary--default);
|
|
125
127
|
border: unset;
|
|
126
128
|
position: static;
|
|
127
129
|
width: 100%;
|
|
@@ -192,7 +194,7 @@
|
|
|
192
194
|
|
|
193
195
|
.pf-chatbot__content {
|
|
194
196
|
position: relative;
|
|
195
|
-
background-color: var(--pf-t--global--background--color--secondary--default);
|
|
197
|
+
background-color: var(--pf-t--global--background--color--floating--secondary--default, --pf-t--global--background--color--secondary--default);
|
|
196
198
|
overflow-y: auto;
|
|
197
199
|
overflow: hidden;
|
|
198
200
|
flex: 1;
|
|
@@ -210,6 +212,7 @@
|
|
|
210
212
|
.pf-chatbot--drawer .pf-chatbot__content,
|
|
211
213
|
.pf-chatbot--fullscreen .pf-chatbot__content,
|
|
212
214
|
.pf-chatbot--embedded .pf-chatbot__content {
|
|
215
|
+
background-color: var(--pf-t--global--background--color--secondary--default);
|
|
213
216
|
display: flex;
|
|
214
217
|
justify-content: center;
|
|
215
218
|
}
|
|
@@ -449,7 +452,7 @@
|
|
|
449
452
|
|
|
450
453
|
.pf-chatbot__footer {
|
|
451
454
|
--pf-chatbot__footer--RowGap: var(--pf-t--global--spacer--md);
|
|
452
|
-
background-color: var(--pf-t--global--background--color--secondary--default);
|
|
455
|
+
background-color: var(--pf-t--global--background--color--floating--secondary--default, --pf-t--global--background--color--secondary--default);
|
|
453
456
|
display: flex;
|
|
454
457
|
flex-direction: column;
|
|
455
458
|
row-gap: var(--pf-chatbot__footer--RowGap);
|
|
@@ -476,6 +479,10 @@
|
|
|
476
479
|
.pf-chatbot--fullscreen .pf-chatbot__footer .pf-v6-c-divider {
|
|
477
480
|
display: none;
|
|
478
481
|
}
|
|
482
|
+
.pf-chatbot--embedded .pf-chatbot__footer,
|
|
483
|
+
.pf-chatbot--fullscreen .pf-chatbot__footer {
|
|
484
|
+
background-color: var(--pf-t--global--background--color--secondary--default);
|
|
485
|
+
}
|
|
479
486
|
.pf-chatbot--embedded .pf-chatbot__footer-container,
|
|
480
487
|
.pf-chatbot--fullscreen .pf-chatbot__footer-container {
|
|
481
488
|
width: 90%;
|
|
@@ -512,7 +519,7 @@
|
|
|
512
519
|
grid-template-columns: 1fr auto;
|
|
513
520
|
gap: var(--pf-t--global--spacer--sm);
|
|
514
521
|
position: relative;
|
|
515
|
-
background-color: var(--pf-t--global--background--color--secondary--default);
|
|
522
|
+
background-color: var(--pf-t--global--background--color--floating--secondary--default, --pf-t--global--background--color--secondary--default);
|
|
516
523
|
justify-content: space-between;
|
|
517
524
|
padding: var(--pf-t--global--spacer--lg);
|
|
518
525
|
}
|
|
@@ -562,7 +569,7 @@
|
|
|
562
569
|
}
|
|
563
570
|
.pf-chatbot--drawer .pf-chatbot__header,
|
|
564
571
|
.pf-chatbot--docked .pf-chatbot__header {
|
|
565
|
-
background-color: var(--pf-t--global--background--color--secondary--default);
|
|
572
|
+
background-color: var(--pf-t--global--background--color--secondary--floating--default);
|
|
566
573
|
}
|
|
567
574
|
|
|
568
575
|
.pf-chatbot__button--toggle-options,
|
|
@@ -2244,7 +2251,7 @@ li[id*=user-content-fn-]:has(> span > span > .pf-chatbot__message-text + .pf-cha
|
|
|
2244
2251
|
flex-wrap: wrap;
|
|
2245
2252
|
align-items: center;
|
|
2246
2253
|
justify-content: flex-end;
|
|
2247
|
-
background-color: var(--pf-t--global--background--color--primary--default);
|
|
2254
|
+
background-color: var(--pf-t--global--background--color--control--default, --pf-t--global--background--color--primary--default);
|
|
2248
2255
|
border-radius: calc(var(--pf-t--global--border--radius--medium) * 2);
|
|
2249
2256
|
transition: border-color var(--pf-t--global--motion--timing-function--accelerate) var(--pf-t--global--motion--duration--sm);
|
|
2250
2257
|
position: relative;
|
|
@@ -2261,14 +2268,14 @@ li[id*=user-content-fn-]:has(> span > span > .pf-chatbot__message-text + .pf-cha
|
|
|
2261
2268
|
transition: border-color var(--pf-t--global--motion--timing-function--accelerate) var(--pf-t--global--motion--duration--sm), border-width var(--pf-t--global--motion--timing-function--accelerate) var(--pf-t--global--motion--duration--sm);
|
|
2262
2269
|
}
|
|
2263
2270
|
.pf-chatbot__message-bar.pf-m-primary::after {
|
|
2264
|
-
border-color: var(--pf-t--global--border--color--default);
|
|
2271
|
+
border-color: var(--pf-t--global--border--color--control--default, --pf-t--global--border--color--default);
|
|
2265
2272
|
}
|
|
2266
2273
|
.pf-chatbot__message-bar:hover::after {
|
|
2267
|
-
border-color: var(--pf-t--global--border--color--default);
|
|
2274
|
+
border-color: var(--pf-t--global--border--color--control--default, --pf-t--global--border--color--default);
|
|
2268
2275
|
border-width: var(--pf-t--global--border--width--control--hover);
|
|
2269
2276
|
}
|
|
2270
2277
|
.pf-chatbot__message-bar:focus-within::after {
|
|
2271
|
-
border-color: var(--pf-t--global--color--
|
|
2278
|
+
border-color: var(--pf-t--global--border--color--control--default, --pf-t--global--border--color--default);
|
|
2272
2279
|
border-width: var(--pf-t--global--border--width--control--clicked);
|
|
2273
2280
|
}
|
|
2274
2281
|
.pf-chatbot__message-bar-actions {
|
|
@@ -2372,7 +2379,7 @@ li[id*=user-content-fn-]:has(> span > span > .pf-chatbot__message-text + .pf-cha
|
|
|
2372
2379
|
}
|
|
2373
2380
|
|
|
2374
2381
|
:root:where(.pf-v6-theme-high-contrast) .pf-chatbot__message-bar::after {
|
|
2375
|
-
border-color: var(--pf-t--global--border--color--default);
|
|
2382
|
+
border-color: var(--pf-t--global--border--color--control--default, --pf-t--global--border--color--default);
|
|
2376
2383
|
}
|
|
2377
2384
|
|
|
2378
2385
|
.pf-chatbot__jump {
|
package/dist/css/main.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../src/AttachMenu/AttachMenu.scss","../../src/Chatbot/Chatbot.scss","../../src/ChatbotAlert/ChatbotAlert.scss","../../src/ChatbotContent/ChatbotContent.scss","../../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss","../../src/ChatbotFooter/ChatbotFootnote.scss","../../src/ChatbotFooter/ChatbotFooter.scss","../../src/ChatbotHeader/ChatbotHeader.scss","../../src/ChatbotModal/ChatbotModal.scss","../../src/ChatbotPopover/ChatbotPopover.scss","../../src/ChatbotToggle/ChatbotToggle.scss","../../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss","../../src/CodeModal/CodeModal.scss","../../src/Compare/Compare.scss","../../src/DeepThinking/DeepThinking.scss","../../src/FileDetails/FileDetails.scss","../../src/FileDetailsLabel/FileDetailsLabel.scss","../../src/FileDropZone/FileDropZone.scss","../../src/FilePreview/FilePreview.scss","../../src/ImagePreview/ImagePreview.scss","../../src/Message/Message.scss","../../src/Message/MessageLoading.scss","../../src/Message/CodeBlockMessage/CodeBlockMessage.scss","../../src/Message/TextMessage/TextMessage.scss","../../src/Message/SuperscriptMessage/SuperscriptMessage.scss","../../src/Message/ImageMessage/ImageMessage.scss","../../src/Message/LinkMessage/LinkMessage.scss","../../src/Message/ListMessage/ListMessage.scss","../../src/Message/TableMessage/TableMessage.scss","../../src/Message/QuickStarts/QuickStartTile.scss","../../src/Message/QuickResponse/QuickResponse.scss","../../src/Message/UserFeedback/UserFeedback.scss","../../src/MessageBar/AttachButton.scss","../../src/MessageBar/MicrophoneButton.scss","../../src/MessageBar/SendButton.scss","../../src/MessageBar/StopButton.scss","../../src/MessageBar/MessageBar.scss","../../src/MessageBox/JumpButton.scss","../../src/MessageBox/MessageBox.scss","../../src/MessageDivider/MessageDivider.scss","../../src/Onboarding/Onboarding.scss","../../src/ResponseActions/ResponseActions.scss","../../src/Settings/Settings.scss","../../src/SourcesCard/SourcesCard.scss","../../src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss","../../src/TermsOfUse/TermsOfUse.scss","../../src/ToolResponse/ToolResponse.scss","../../src/ToolCall/ToolCall.scss","../../src/main.scss"],"names":[],"mappings":";AAAA;EACE;EACA;;;AAGF;AACE;AAsBA;AASA;;AA9BA;EACE;EACA;EACA;EACA;;AAEF;EACE;;AAGF;AACE;;AACA;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;;AAGF;EACE;;AAIF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;;ACxDJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAYF;;AAVA;EACE;EACA;EACA;;AAEF;EACE;EACA;;AAQF;EAjCF;IAkCI;IACA;;;AAIF;EAvCF;IAwCI;;;;AAOJ;EAEE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EAfF;IAgBI;;;;AAOJ;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMF;EAEE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAIF;EAdF;IAeI;;;;AAIJ;EACE;;;AAGF;AAAA;AAAA;EAGE;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EAdF;IAgBI;;;;AAMF;EACE;;;AAOJ;EACE;;;ACjKF;EACE;EACA;EACA;;;ACAF;EACE;EACA;EACA;EACA;EACA;;AAGA;EARF;IASI;;;AAGF;EACE;;;AAOJ;EAII;AAAA;AAAA;IACE;IACA;;;ACzBJ;EACE;EACA;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAKA;EACE;EACA;;AAIJ;EACE;;AAKF;EACE;EACA;EAEA;EACA;EACA;;AAEF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EAEA;;AAIF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EAEA;;AAGF;EACE;;;AAMJ;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAIF;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAKA;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAKA;EACE;;;AASJ;EACE;;;AASF;AAAA;EACE;;AACA;AAAA;EACE;;;AASJ;EACE;;AACA;EACE;EACA;;AAEF;EACE;;;AAUF;AAAA;AAAA;AAAA;EACE;;;AAKN;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAKE;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;;ACvSN;EACE;;AAEA;EACE;EACA;;;ACHJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAGJ;EACE;EACA;EACA;EACA;EACA;;;AAMF;EAGI;AAAA;IACE;;EACA;AAAA;IACE;;EAGJ;AAAA;IACE;IACA;IACA;;;AASJ;EACE;;;AAQF;EACE;;;AAIJ;EACE;EACA;;;AAQA;EAIM;AAAA;IACE;;;;AC5EV;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;;AAQN;EAGI;AAAA;IACE;;EAEF;AAAA;IACE;;;AAUJ;AAAA;EACE;;;AAOJ;AAAA;EAEE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;;AAOJ;EACE;;;AAOJ;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;;;AAOA;EACE;EACA;;AAGF;EACE;EACA;;;AAIJ;AAAA;EAEE;EACA;;;AAGF;EACE;;;AAQA;EAGI;AAAA;IACE;;;;AClLR;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAIF;EACE;;;AAOJ;EACE;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;;AAGJ;EACE;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;;AAOJ;EACE;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAQE;EACE;;;AAQN;EACE;;;AAOA;EACE;;AAGF;EACE;EACA;;;ACpGF;EACE;;AAMA;EACE;;AAEF;EACE;;AAEF;EACE;;AAIF;EACE;EACA;;AAEF;EACE;;;ACxBN;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;;AAGF;EACE;;AAIF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;;;AC3BF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;;AAIJ;EACE;EACA;;AAEA;EACE;;;AAOJ;EAIM;AAAA;IACE;IACA;;;ACpDN;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;AACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;AAAA;AAAA;EAGA;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AAGA;EACE;;;AAUF;EACE;EACA;;;AAKN;EACE;;;AAGF;EACE;;;AAIA;EACE;;;AC9FJ;EACE;EACA;EACA;EACA;;;AAEF;EACE;;AAEA;EACE;EACA;EACA;;;AAGJ;EACE;EACA;EACA;;AAEA;EALF;IAMI;;;AAGF;EACE;;AAEA;EAHF;IAII;;;;AAKN;EACE;;AAEA;EACE;;AAGF;EACE;;AAIA;EADF;IAEI;;;;AAIN;EACE;;AAEA;EAHF;IAII;;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EARF;IASI;IACA;IACA;;;;ACrEJ;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;ACtBF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAIF;EACE;EACA;EACA;EACA;EACA;;;ACjCF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EAEA;EACA;EACA;;AACA;EACE;;AAGF;AAAA;EAEE;EACA;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;;;AAKF;EACE;;AAGF;EACE;;;AAIJ;AAAA;EAEE;EACA;;AAEA;AAAA;EACE;;;AAKF;EACE;;;AAMF;AAAA;EACE;;;AC/DJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;;AAGA;EANF;IAOI;;;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;AACA;EACE;EACA;EACA;EACA;;;AAME;EADF;IAEI;IACA;IACA;;EAEA;IACE;;;;ACnDR;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;ACpBF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEF;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;AAAA;EACE;;AAGJ;EACE;EACA;;AAKA;AAAA;EACE;;AAGJ;EACE;;;ACvDJ;EACE;EACA;EACA;EACA;;AAIA;EACE;EACA;EACA;EACA;EACA;;AAGF;EAKE;;AAJA;EACE;EACA;;AAOJ;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAGA;EACE;EAQA;EACA;;AAIF;EACE;EACA;;AAIF;EACE;;AAEF;EACE;;AAMJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;AAAA;EAEE;;AAIF;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;EACA;EACA;EACA;EACA;EACA;;AAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQE;;AAIJ;EACE;;AAIF;EACE;;AAEA;EACE;;;AAON;EACE;EACA;EACA;;;AAGF;EACE;;;ACrKF;EACE;EACA;EACA;EACA;EAEA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EAEE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;IACE;;EAEF;IAEE;;;AAIJ;EACE;;;ACtDJ;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EAEE;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;;;AAIJ;EACE;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAKF;EACE;EACA;;;ACrGJ;EACE;;AAGE;EACE;;;AAMN;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EACE;;AAIJ;EACE;;AAEF;EACE;EACA;;;AAUJ;EAIE;;;AAIF;EAKE;;;AAIA;EACE;;;AAKF;EACE;EACA;EACA;EACA;;AACA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;AAIJ;EACE;;AAGF;EACE;EACA;;;AASF;EACE;;AACA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;;AC/IN;EACE;EACA;;AACA;EACE;EACA;;;AJ+KF;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;;AAIA;EACE;EACA;;AAIJ;EACE;;;AEtMJ;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EAEE;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;;;AAIJ;EACE;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAKF;EACE;EACA;;;AGzGJ;EACE;EACA;EACA;EACA;EAGA;;;ACNA;EACE;;;AHEJ;EACE;;AAGE;EACE;;;AAMN;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EACE;;AAIJ;EACE;;AAEF;EACE;EACA;;;AAUJ;EAIE;;;AAIF;EAKE;;;AAIA;EACE;;;AAKF;EACE;EACA;EACA;EACA;;AACA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;AAIJ;EACE;;AAGF;EACE;EACA;;;AASF;EACE;;AACA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;;AI3IN;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;;AAMJ;AAAA;EAEE;EACA;EACA;;AAGA;AAAA;EACE;;AAMF;EACE;EACA;;AAIJ;EACE;;;AC/CJ;EACE;EACA;EACA;EAEA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;;APhCN;EACE;EACA;EACA;EACA;EAEA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EAEE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;IACE;;EAEF;IAEE;;;AAIJ;EACE;;;AQzDJ;EACE;EACA;;AAEA;EAJF;IAKI;IACA;;;AAKA;EACE;;;AAOF;EACE;;;AClBF;EACE;;AAGF;EALF;IAMI;;;AAGF;EATF;IAUI;;;AAKF;EACE;EACA;;AAIJ;AAAA;EAEE;EACA;;AAIF;EACE;EACA;EACA;;;AC/BJ;EACE;EAEA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAKA;EACE;;;AAGJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAIF;EACE;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;;AAGF;EACE;;;AAMJ;EACE;;AAGF;EACE;;AAIA;EACE;;;AC/FN;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKA;EACE;;AAIJ;EAEE;;AAEA;EACE;;AAKA;EACE;;;AASR;EACE;EACA;EACA;;;ACxCF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAMA;EACE;;AAKJ;EACE;EACA;;AAGA;EACE;;AAKA;EACE;;;AAMR;EACE;IACE;;EAEF;IACE;;;AAOJ;EACE;EACA;EACA;;;ACpDF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EAEE;EACA;;AAEA;EACE;;;AAMJ;EACE;;AACA;EACE;;AAIJ;EACE;EACA;;AAGF;AAAA;EAEE;;;AAIJ;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AAOJ;EACE;EACA;EACA;;;ACzDF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAEA;EACE;;AAKA;EACE;;;AASR;EACE;EACA;EACA;;;ACjCF;EACE;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;AAKF;EACE;;AAKF;EACE;EACA;;AAKF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;IACE;IACA;;;AAKF;EACE;IACE;IACA;;;;AAQN;EACE;EACA;;AAEA;EACE;;;AAKF;AAAA;EAEE;EACA;;;AAOJ;EACE;;;AAQE;EACE;;;ACrLN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAIF;;AAEA;EACE;;AAGF;EAEE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAIF;EA3CF;IA4CI;;;;AC9CJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAIA;EAVF;IAWI;;;AAGF;EAdF;IAeI;;;;AAIJ;EACE;;;AAGF;EAII;AAAA;AAAA;IACE;IACA;;;AAMJ;EACE;;;ACnCJ;EACE;EACA;;AAEA;AAAA;EAEE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKF;EACE;EACA;EAEA;;AAGF;EACE;;AAKF;AAAA;EAEE;;;AFrCN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAIF;;AAEA;EACE;;AAGF;EAEE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAIF;EA3CF;IA4CI;;;;AGhDJ;EACE;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;;AAIF;EACE;IACE;IACA;;;;AASF;AAAA;AAAA;EACE;EACA;;;AAKN;AAAA;EAGE;;AAEA;AAAA;EACE;;;AAKF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AClGJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;EACE;EACA;;;AAMJ;AAAA;EAEE;;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;;;AC5CF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAIA;EACE;EACA;;;AAIJ;EACE;;;AC3CF;AAAA;EAEE;EACA;EACA;EACA;;AAEA;AAAA;EACE;;;AAKF;EACE;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;AAAA;EACE;;AAGJ;EACE;EACA;;AAKA;AAAA;EACE;;AAGJ;EACE;;;AAON;EACE;EACA;;;AChHJ;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAIF;EACE;EACA;;;AAGA;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AC9BA;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAIF;EACE;IACE;IACA;;;;AAKN;AAAA;EAGE;;AAGE;AAAA;EACE;;AAIJ;AAAA;EACE;;;AAKF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;;ACnFJ;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;;;AAIA;EACE;;;AC3CJ;EACE;EACA;EAEA;EACA;;AAEA;EACE;EACA;EACA;;AAIA;EACE;EACA;EACA;;AAIJ;EACE;;AAGF;EACE;;AAEA;EACE;;AAIJ;EACE;;;ACWJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA","file":"main.css"}
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../src/AttachMenu/AttachMenu.scss","../../src/Chatbot/Chatbot.scss","../../src/ChatbotAlert/ChatbotAlert.scss","../../src/ChatbotContent/ChatbotContent.scss","../../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss","../../src/ChatbotFooter/ChatbotFootnote.scss","../../src/ChatbotFooter/ChatbotFooter.scss","../../src/ChatbotHeader/ChatbotHeader.scss","../../src/ChatbotModal/ChatbotModal.scss","../../src/ChatbotPopover/ChatbotPopover.scss","../../src/ChatbotToggle/ChatbotToggle.scss","../../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss","../../src/CodeModal/CodeModal.scss","../../src/Compare/Compare.scss","../../src/DeepThinking/DeepThinking.scss","../../src/FileDetails/FileDetails.scss","../../src/FileDetailsLabel/FileDetailsLabel.scss","../../src/FileDropZone/FileDropZone.scss","../../src/FilePreview/FilePreview.scss","../../src/ImagePreview/ImagePreview.scss","../../src/Message/Message.scss","../../src/Message/MessageLoading.scss","../../src/Message/CodeBlockMessage/CodeBlockMessage.scss","../../src/Message/TextMessage/TextMessage.scss","../../src/Message/SuperscriptMessage/SuperscriptMessage.scss","../../src/Message/ImageMessage/ImageMessage.scss","../../src/Message/LinkMessage/LinkMessage.scss","../../src/Message/ListMessage/ListMessage.scss","../../src/Message/TableMessage/TableMessage.scss","../../src/Message/QuickStarts/QuickStartTile.scss","../../src/Message/QuickResponse/QuickResponse.scss","../../src/Message/UserFeedback/UserFeedback.scss","../../src/MessageBar/AttachButton.scss","../../src/MessageBar/MicrophoneButton.scss","../../src/MessageBar/SendButton.scss","../../src/MessageBar/StopButton.scss","../../src/MessageBar/MessageBar.scss","../../src/MessageBox/JumpButton.scss","../../src/MessageBox/MessageBox.scss","../../src/MessageDivider/MessageDivider.scss","../../src/Onboarding/Onboarding.scss","../../src/ResponseActions/ResponseActions.scss","../../src/Settings/Settings.scss","../../src/SourcesCard/SourcesCard.scss","../../src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss","../../src/TermsOfUse/TermsOfUse.scss","../../src/ToolResponse/ToolResponse.scss","../../src/ToolCall/ToolCall.scss","../../src/main.scss"],"names":[],"mappings":";AAAA;EACE;EACA;;;AAGF;AACE;AAsBA;AASA;;AA9BA;EACE;EACA;EACA;EACA;;AAEF;EACE;;AAGF;AACE;;AACA;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;;AAGF;EACE;;AAIF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;;ACxDJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAYF;;AAVA;EACE;EACA;EACA;;AAEF;EACE;EACA;;AAQF;EApCF;IAqCI;IACA;;;AAIF;EA1CF;IA2CI;;;;AAOJ;EAEE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EAfF;IAgBI;;;;AAOJ;EACE;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMF;EACE;EAGA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAIF;EAdF;IAeI;;;;AAIJ;EACE;;;AAGF;AAAA;AAAA;EAGE;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EAdF;IAgBI;;;;AAMF;EACE;;;AAOJ;EACE;;;ACxKF;EACE;EACA;EACA;;;ACAF;EACE;EACA;EAIA;EACA;EACA;;AAGA;EAXF;IAYI;;;AAGF;EACE;;;AAOJ;EAII;AAAA;AAAA;IACE;IACA;IACA;;;AC7BJ;EACE;EACA;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAKA;EACE;EACA;;AAIJ;EACE;;AAKF;EACE;EACA;EAEA;EACA;EACA;;AAEF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EAEA;;AAIF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EAEA;;AAGF;EACE;;;AAMJ;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAIF;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAKA;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAKA;EACE;;;AASJ;EACE;;;AASF;AAAA;EACE;;AACA;AAAA;EACE;;;AASJ;EACE;;AACA;EACE;EACA;;AAEF;EACE;;;AAUF;AAAA;AAAA;AAAA;EACE;;;AAKN;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAKE;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;;ACvSN;EACE;;AAEA;EACE;EACA;;;ACHJ;EACE;EACA;EAIA;EACA;EACA;EACA;;AAEA;EACE;;;AAGJ;EACE;EACA;EACA;EACA;EACA;;;AAMF;EAGI;AAAA;IACE;;EACA;AAAA;IACE;;EAGJ;AAAA;IACE;;EAGF;AAAA;IACE;IACA;IACA;;;AASJ;EACE;;;AAQF;EACE;;;AAIJ;EACE;EACA;;;AAQA;EAIM;AAAA;IACE;;;;ACnFV;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EAIA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;;AAQN;EAGI;AAAA;IACE;;EAEF;AAAA;IACE;;;AAUJ;AAAA;EACE;;;AAOJ;AAAA;EAEE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;;AAOJ;EACE;;;AAOJ;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;;;AAOA;EACE;EACA;;AAGF;EACE;EACA;;;AAIJ;AAAA;EAEE;EACA;;;AAGF;EACE;;;AAQA;EAGI;AAAA;IACE;;;;ACrLR;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAIF;EACE;;;AAOJ;EACE;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;;AAGJ;EACE;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;;AAOJ;EACE;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAQE;EACE;;;AAQN;EACE;;;AAOA;EACE;;AAGF;EACE;EACA;;;ACpGF;EACE;;AAMA;EACE;;AAEF;EACE;;AAEF;EACE;;AAIF;EACE;EACA;;AAEF;EACE;;;ACxBN;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;;AAGF;EACE;;AAIF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;;;AC3BF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;;AAIJ;EACE;EACA;;AAEA;EACE;;;AAOJ;EAIM;AAAA;IACE;IACA;;;ACpDN;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;AACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;AAAA;AAAA;EAGA;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AAGA;EACE;;;AAUF;EACE;EACA;;;AAKN;EACE;;;AAGF;EACE;;;AAIA;EACE;;;AC9FJ;EACE;EACA;EACA;EACA;;;AAEF;EACE;;AAEA;EACE;EACA;EACA;;;AAGJ;EACE;EACA;EACA;;AAEA;EALF;IAMI;;;AAGF;EACE;;AAEA;EAHF;IAII;;;;AAKN;EACE;;AAEA;EACE;;AAGF;EACE;;AAIA;EADF;IAEI;;;;AAIN;EACE;;AAEA;EAHF;IAII;;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EARF;IASI;IACA;IACA;;;;ACrEJ;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;ACtBF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAIF;EACE;EACA;EACA;EACA;EACA;;;ACjCF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EAEA;EACA;EACA;;AACA;EACE;;AAGF;AAAA;EAEE;EACA;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;;;AAKF;EACE;;AAGF;EACE;;;AAIJ;AAAA;EAEE;EACA;;AAEA;AAAA;EACE;;;AAKF;EACE;;;AAMF;AAAA;EACE;;;AC/DJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;;AAGA;EANF;IAOI;;;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;AACA;EACE;EACA;EACA;EACA;;;AAME;EADF;IAEI;IACA;IACA;;EAEA;IACE;;;;ACnDR;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;ACpBF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEF;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;AAAA;EACE;;AAGJ;EACE;EACA;;AAKA;AAAA;EACE;;AAGJ;EACE;;;ACvDJ;EACE;EACA;EACA;EACA;;AAIA;EACE;EACA;EACA;EACA;EACA;;AAGF;EAKE;;AAJA;EACE;EACA;;AAOJ;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAGA;EACE;EAQA;EACA;;AAIF;EACE;EACA;;AAIF;EACE;;AAEF;EACE;;AAMJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;AAAA;EAEE;;AAIF;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;EACA;EACA;EACA;EACA;EACA;;AAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQE;;AAIJ;EACE;;AAIF;EACE;;AAEA;EACE;;;AAON;EACE;EACA;EACA;;;AAGF;EACE;;;ACrKF;EACE;EACA;EACA;EACA;EAEA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EAEE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;IACE;;EAEF;IAEE;;;AAIJ;EACE;;;ACtDJ;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EAEE;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;;;AAIJ;EACE;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAKF;EACE;EACA;;;ACrGJ;EACE;;AAGE;EACE;;;AAMN;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EACE;;AAIJ;EACE;;AAEF;EACE;EACA;;;AAUJ;EAIE;;;AAIF;EAKE;;;AAIA;EACE;;;AAKF;EACE;EACA;EACA;EACA;;AACA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;AAIJ;EACE;;AAGF;EACE;EACA;;;AASF;EACE;;AACA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;;AC/IN;EACE;EACA;;AACA;EACE;EACA;;;AJ+KF;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;;AAIA;EACE;EACA;;AAIJ;EACE;;;AEtMJ;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EAEE;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;;;AAIJ;EACE;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAKF;EACE;EACA;;;AGzGJ;EACE;EACA;EACA;EACA;EAGA;;;ACNA;EACE;;;AHEJ;EACE;;AAGE;EACE;;;AAMN;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EACE;;AAIJ;EACE;;AAEF;EACE;EACA;;;AAUJ;EAIE;;;AAIF;EAKE;;;AAIA;EACE;;;AAKF;EACE;EACA;EACA;EACA;;AACA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;AAIJ;EACE;;AAGF;EACE;EACA;;;AASF;EACE;;AACA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;;AI3IN;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;;AAMJ;AAAA;EAEE;EACA;EACA;;AAGA;AAAA;EACE;;AAMF;EACE;EACA;;AAIJ;EACE;;;AC/CJ;EACE;EACA;EACA;EAEA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;;APhCN;EACE;EACA;EACA;EACA;EAEA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EAEE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;IACE;;EAEF;IAEE;;;AAIJ;EACE;;;AQzDJ;EACE;EACA;;AAEA;EAJF;IAKI;IACA;;;AAKA;EACE;;;AAOF;EACE;;;AClBF;EACE;;AAGF;EALF;IAMI;;;AAGF;EATF;IAUI;;;AAKF;EACE;EACA;;AAIJ;AAAA;EAEE;EACA;;AAIF;EACE;EACA;EACA;;;AC/BJ;EACE;EAEA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAKA;EACE;;;AAGJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAIF;EACE;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;;AAGF;EACE;;;AAMJ;EACE;;AAGF;EACE;;AAIA;EACE;;;AC/FN;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKA;EACE;;AAIJ;EAEE;;AAEA;EACE;;AAKA;EACE;;;AASR;EACE;EACA;EACA;;;ACxCF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAMA;EACE;;AAKJ;EACE;EACA;;AAGA;EACE;;AAKA;EACE;;;AAMR;EACE;IACE;;EAEF;IACE;;;AAOJ;EACE;EACA;EACA;;;ACpDF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EAEE;EACA;;AAEA;EACE;;;AAMJ;EACE;;AACA;EACE;;AAIJ;EACE;EACA;;AAGF;AAAA;EAEE;;;AAIJ;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AAOJ;EACE;EACA;EACA;;;ACzDF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAEA;EACE;;AAKA;EACE;;;AASR;EACE;EACA;EACA;;;ACjCF;EACE;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EAIA;EACA;EAEA;EACA;EAEA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;AAKF;EACE;;AAKF;EACE;EACA;;AAKF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;IACE;IACA;;;AAKF;EACE;IACE;IACA;;;;AAQN;EACE;EACA;;AAEA;EACE;;;AAKF;AAAA;EAEE;EACA;;;AAOJ;EACE;;;AAQE;EACE;;;ACxLN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAIF;;AAEA;EACE;;AAGF;EAEE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAIF;EA3CF;IA4CI;;;;AC9CJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAIA;EAVF;IAWI;;;AAGF;EAdF;IAeI;;;;AAIJ;EACE;;;AAGF;EAII;AAAA;AAAA;IACE;IACA;;;AAMJ;EACE;;;ACnCJ;EACE;EACA;;AAEA;AAAA;EAEE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKF;EACE;EACA;EAEA;;AAGF;EACE;;AAKF;AAAA;EAEE;;;AFrCN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAIF;;AAEA;EACE;;AAGF;EAEE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAIF;EA3CF;IA4CI;;;;AGhDJ;EACE;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;;AAIF;EACE;IACE;IACA;;;;AASF;AAAA;AAAA;EACE;EACA;;;AAKN;AAAA;EAGE;;AAEA;AAAA;EACE;;;AAKF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AClGJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;EACE;EACA;;;AAMJ;AAAA;EAEE;;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;;;AC5CF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAIA;EACE;EACA;;;AAIJ;EACE;;;AC3CF;AAAA;EAEE;EACA;EACA;EACA;;AAEA;AAAA;EACE;;;AAKF;EACE;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;AAAA;EACE;;AAGJ;EACE;EACA;;AAKA;AAAA;EACE;;AAGJ;EACE;;;AAON;EACE;EACA;;;AChHJ;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAIF;EACE;EACA;;;AAGA;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AC9BA;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAIF;EACE;IACE;IACA;;;;AAKN;AAAA;EAGE;;AAGE;AAAA;EACE;;AAIJ;AAAA;EACE;;;AAKF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;;ACnFJ;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;;;AAIA;EACE;;;AC3CJ;EACE;EACA;EAEA;EACA;;AAEA;EACE;EACA;EACA;;AAIA;EACE;EACA;EACA;;AAIJ;EACE;;AAGF;EACE;;AAEA;EACE;;AAIJ;EACE;;;ACWJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA","file":"main.css"}
|
|
@@ -34,7 +34,7 @@ export interface ChatbotConversationHistoryNavProps extends DrawerProps {
|
|
|
34
34
|
activeItemId?: string | number;
|
|
35
35
|
/** Callback function for when an item is selected */
|
|
36
36
|
onSelectActiveItem?: (event?: React.MouseEvent, itemId?: string | number) => void;
|
|
37
|
-
/** Items shown in
|
|
37
|
+
/** Items shown in chat history */
|
|
38
38
|
conversations: Conversation[] | {
|
|
39
39
|
[key: string]: Conversation[];
|
|
40
40
|
};
|
|
@@ -133,7 +133,7 @@ describe('ChatbotConversationHistoryNav', () => {
|
|
|
133
133
|
});
|
|
134
134
|
it('should show loading state if triggered', () => {
|
|
135
135
|
render(_jsx(ChatbotConversationHistoryNav, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, handleTextInputChange: jest.fn(), conversations: initialConversations, isLoading: true }));
|
|
136
|
-
expect(screen.getByRole('dialog', { name: /Loading chatbot
|
|
136
|
+
expect(screen.getByRole('dialog', { name: /Loading chatbot chat history/i })).toBeTruthy();
|
|
137
137
|
expect(screen.getByRole('button', { name: /Close drawer panel/i })).toBeTruthy();
|
|
138
138
|
});
|
|
139
139
|
it('should pass alternative aria label to loading state', () => {
|
|
@@ -13,6 +13,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
13
13
|
import { Skeleton } from '@patternfly/react-core';
|
|
14
14
|
export const LoadingState = (_a) => {
|
|
15
15
|
var { screenreaderText } = _a, rest = __rest(_a, ["screenreaderText"]);
|
|
16
|
-
return (_jsxs("div", { className: "pf-chatbot__history-loading", children: [_jsx("div", { className: "pf-chatbot__history-loading-block", children: _jsx(Skeleton, Object.assign({ screenreaderText: screenreaderText !== null && screenreaderText !== void 0 ? screenreaderText : 'Loading chatbot
|
|
16
|
+
return (_jsxs("div", { className: "pf-chatbot__history-loading", children: [_jsx("div", { className: "pf-chatbot__history-loading-block", children: _jsx(Skeleton, Object.assign({ screenreaderText: screenreaderText !== null && screenreaderText !== void 0 ? screenreaderText : 'Loading chatbot chat history', fontSize: "3xl" }, rest)) }), _jsxs("div", { className: "pf-chatbot__history-loading-block", children: [_jsx(Skeleton, Object.assign({ fontSize: "sm", width: "70%" }, rest)), _jsx(Skeleton, Object.assign({ fontSize: "3xl" }, rest)), _jsx(Skeleton, Object.assign({ fontSize: "3xl" }, rest))] }), _jsxs("div", { className: "pf-chatbot__history-loading-block", children: [_jsx(Skeleton, Object.assign({ fontSize: "sm", width: "70%" }, rest)), _jsx(Skeleton, Object.assign({ fontSize: "3xl" }, rest)), _jsx(Skeleton, Object.assign({ fontSize: "3xl" }, rest)), _jsx(Skeleton, Object.assign({ fontSize: "3xl" }, rest))] }), _jsxs("div", { className: "pf-chatbot__history-loading-block", children: [_jsx(Skeleton, Object.assign({ fontSize: "sm", width: "70%" }, rest)), _jsx(Skeleton, Object.assign({ fontSize: "3xl" }, rest)), _jsx(Skeleton, Object.assign({ fontSize: "3xl" }, rest)), _jsx(Skeleton, Object.assign({ fontSize: "3xl" }, rest)), _jsx(Skeleton, Object.assign({ fontSize: "3xl" }, rest))] }), _jsxs("div", { className: "pf-chatbot__history-loading-block", children: [_jsx(Skeleton, Object.assign({ fontSize: "sm", width: "70%" }, rest)), _jsx(Skeleton, Object.assign({ fontSize: "3xl" }, rest))] })] }));
|
|
17
17
|
};
|
|
18
18
|
export default LoadingState;
|
|
@@ -14,7 +14,7 @@ import { forwardRef, useEffect, useMemo, useRef, useState } from 'react';
|
|
|
14
14
|
import { Button, Icon, Tooltip } from '@patternfly/react-core';
|
|
15
15
|
import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
|
|
16
16
|
const ChatbotHeaderMenuBase = (_a) => {
|
|
17
|
-
var { className, onMenuToggle, tooltipProps, menuAriaLabel = 'Chat history
|
|
17
|
+
var { className, onMenuToggle, tooltipProps, menuAriaLabel = 'Chat history drawer', innerRef, tooltipContent = 'Chat history drawer', isCompact } = _a, props = __rest(_a, ["className", "onMenuToggle", "tooltipProps", "menuAriaLabel", "innerRef", "tooltipContent", "isCompact"]);
|
|
18
18
|
const [isDrawerAnimating, setIsDrawerAnimating] = useState(false);
|
|
19
19
|
// I'd like to use a prop here later if this works
|
|
20
20
|
const drawerState = props['aria-expanded'];
|
|
@@ -10,7 +10,7 @@ describe('ChatbotHeaderMenu', () => {
|
|
|
10
10
|
it('should call onMenuToggle when ChatbotHeaderMenu button is clicked', () => {
|
|
11
11
|
const onMenuToggle = jest.fn();
|
|
12
12
|
render(_jsx(ChatbotHeaderMenu, { className: "custom-header-menu", onMenuToggle: onMenuToggle }));
|
|
13
|
-
fireEvent.click(screen.getByRole('button', { name: 'Chat history
|
|
13
|
+
fireEvent.click(screen.getByRole('button', { name: 'Chat history drawer' }));
|
|
14
14
|
expect(onMenuToggle).toHaveBeenCalled();
|
|
15
15
|
});
|
|
16
16
|
it('should handle isCompact', () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/chatbot",
|
|
3
|
-
"version": "6.6.0-prerelease.
|
|
3
|
+
"version": "6.6.0-prerelease.7",
|
|
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",
|
|
@@ -40,7 +40,7 @@ Explore our documentation, which covers both the components you'll need to build
|
|
|
40
40
|
- [Toggle](/extensions/chatbot/ui#toggle)
|
|
41
41
|
- [Header](/extensions/chatbot/ui#header)
|
|
42
42
|
- [Footer](/extensions/chatbot/ui#footer)
|
|
43
|
-
- [
|
|
43
|
+
- [Chat history drawer](/extensions/chatbot/ui#chat-history)
|
|
44
44
|
- [Modals](/extensions/chatbot/ui#modals)
|
|
45
45
|
- Messages: Components that customize features related to the conversation
|
|
46
46
|
- [Bot and user messages](/extensions/chatbot/messages)
|
|
@@ -15,8 +15,8 @@ import "./images.css"
|
|
|
15
15
|
</div>
|
|
16
16
|
|
|
17
17
|
1. **Container:** The window that contains the entire ChatBot experience and all of its components.
|
|
18
|
-
1. **Header:** A persistent region at the top of the ChatBot window that contains
|
|
19
|
-
1. **Chat history
|
|
18
|
+
1. **Header:** A persistent region at the top of the ChatBot window that contains chat history, branding, and actions.
|
|
19
|
+
1. **Chat history drawer:** A menu used to access previous chats.
|
|
20
20
|
1. **Options menu:** A menu that contains settings that are relevant to your product. This typically includes display options (more details in the [ChatBot variations section](#variations)) and other general settings (more details in the [ChatBot settings and preferences section](#chatbot-settings-and-preferences)).
|
|
21
21
|
1. **Messages:** Elements of the conversation between a ChatBot and user. More details can be found in the [message guidelines](#messages).
|
|
22
22
|
1. **Attachments:** Details about files that a user has uploaded to the ChatBot.
|
|
@@ -288,7 +288,7 @@ When a ChatBot is launched via an AI-supported action, the action should be sent
|
|
|
288
288
|
|
|
289
289
|
Each time a user begins a new chat, display a [welcome message](#welcome-message), with prompts that provide initial suggestions and indicate the actions that the ChatBot can take.
|
|
290
290
|
|
|
291
|
-
The default approach for users to create a new chat is by clicking the "New chat" button (which contains a "pen to square" icon) placed at the top of the [chat history
|
|
291
|
+
The default approach for users to create a new chat is by clicking the "New chat" button (which contains a "pen to square" icon) placed at the top of the [chat history drawer](#using-the-chat-history-drawer).
|
|
292
292
|
|
|
293
293
|
<div class="ws-docs-content-img">
|
|
294
294
|

|
|
@@ -310,14 +310,12 @@ This can be done using the [quick response](/extensions/chatbot/messages#message
|
|
|
310
310
|

|
|
311
311
|
</div>
|
|
312
312
|
|
|
313
|
-
### Using the chat history
|
|
313
|
+
### Using the chat history drawer
|
|
314
314
|
|
|
315
|
-
The
|
|
316
|
-
|
|
317
|
-
By clicking into the history menu, users can search through previous conversations and perform additional actions, such as sharing a conversation with others.
|
|
315
|
+
The chat history drawer can be opened via the hamburger menu in the ChatBot header. In this drawer, users can search through previous conversations and perform additional actions, such as sharing a conversation with others.
|
|
318
316
|
|
|
319
317
|
<div class="ws-docs-content-img">
|
|
320
|
-

|
|
321
319
|
</div>
|
|
322
320
|
|
|
323
321
|
When the chat history is still loading, display skeleton items:
|
|
@@ -383,16 +381,16 @@ If a message attachment fails, an error message should share the reason for fail
|
|
|
383
381
|
|
|
384
382
|
You can enable users to download chat transcripts, for their personal records or to share with others. When users choose to download a transcript, you can choose how you want to configure the behavior in your ChatBot.
|
|
385
383
|
|
|
386
|
-
For guidance, refer to our
|
|
384
|
+
For guidance, refer to our [chat transcripts demo](/extensions/chatbot/overview/demo#chat-transcripts), which opens a Markdown file for a conversation within a new tab.
|
|
387
385
|
|
|
388
386
|
Choose the download action location that best works for your ChatBot:
|
|
389
387
|
|
|
390
388
|
#### Download via chat history drawer
|
|
391
389
|
|
|
392
|
-
If your ChatBot uses
|
|
390
|
+
If your ChatBot uses chat history, you can provide a download option in the [actions menu linked to a previous conversation](/extensions/chatbot/ui#drawer-with-conversation-actions).
|
|
393
391
|
|
|
394
392
|
<div class="ws-docs-content-img">
|
|
395
|
-

|
|
396
394
|
</div>
|
|
397
395
|
|
|
398
396
|
#### Download message response action
|
|
@@ -405,7 +403,7 @@ To allow users to download individual bot messages, the message actions can incl
|
|
|
405
403
|
|
|
406
404
|
#### Download control in header
|
|
407
405
|
|
|
408
|
-
If you don't use
|
|
406
|
+
If you don't use chat history, you can place an option to download the transcript for the active chat within the header options menu.
|
|
409
407
|
|
|
410
408
|
<div class="ws-docs-content-img">
|
|
411
409
|

|
|
@@ -189,9 +189,9 @@ The ChatBot header is persistent, and contains the title for the ChatBot window,
|
|
|
189
189
|
|
|
190
190
|
The `<ChatbotHeader>` has 2 sections:
|
|
191
191
|
|
|
192
|
-
- `<ChatbotHeaderMain>` contains the title and an optional menu toggle or new chat button:
|
|
192
|
+
- `<ChatbotHeaderMain>` contains the title and an optional hamburger menu toggle or new chat button:
|
|
193
193
|
- `<ChatbotHeaderTitle>` handles the layout and display of a title or image at different responsive sizes.
|
|
194
|
-
- `<ChatbotHeaderMenu>` (optional) is placed on the left side of the header and used to toggle a chat history
|
|
194
|
+
- `<ChatbotHeaderMenu>` (optional) is placed on the left side of the header and used to toggle a chat history drawer.
|
|
195
195
|
- `<ChatbotHeaderNewChatButton>` (optional) is placed on the left side of the header and used to initiate a new chat.
|
|
196
196
|
- `<ChatbotHeaderActions>` contains any additional controls:
|
|
197
197
|
- The `<ChatbotHeaderSelectorDropdown>` component is a standard PatternFly dropdown that matches the ChatBot styles.
|
|
@@ -227,8 +227,8 @@ There are a variety of options and customizations you can make to the header, to
|
|
|
227
227
|
|
|
228
228
|
In this example, select the respective checkbox to toggle these features:
|
|
229
229
|
|
|
230
|
-
- **
|
|
231
|
-
- **New chat button:** Used to start a new chat session. The header button can be used in addition to or in place of a new chat button within the [
|
|
230
|
+
- **Chat history drawer:** Users can select the hamburger menu toggle to open the [chat history drawer](#chat-history).
|
|
231
|
+
- **New chat button:** Used to start a new chat session. The header button can be used in addition to or in place of a new chat button within the [chat history drawer](/extensions/chatbot/ui/#drawer-with-search-and-new-chat-button).
|
|
232
232
|
- **Left-aligned logo**
|
|
233
233
|
- **Centered logo**
|
|
234
234
|
- **Selector dropdown:** Users can choose from preselected options in a dropdown menu. For example, they can toggle between AI models.
|
|
@@ -339,11 +339,11 @@ This example shows a simplified method of handling the "thinking" animation: aft
|
|
|
339
339
|
|
|
340
340
|
```
|
|
341
341
|
|
|
342
|
-
##
|
|
342
|
+
## Chat history
|
|
343
343
|
|
|
344
|
-
###
|
|
344
|
+
### Chat history drawer
|
|
345
345
|
|
|
346
|
-
|
|
346
|
+
A user's chat history is contained in an interactive drawer, where they can interact with previous conversations or start a new conversation.
|
|
347
347
|
|
|
348
348
|
The `<ChatbotConversationHistoryNav>` component is a wrapper placed within `<Chatbot>`, which contains all other ChatBot components in `drawerContent`. There is a focus trap so users can only tab within the drawer while it is open.
|
|
349
349
|
|
|
@@ -367,14 +367,14 @@ The code structure will look like this:
|
|
|
367
367
|
</Chatbot>
|
|
368
368
|
```
|
|
369
369
|
|
|
370
|
-
The
|
|
370
|
+
The chat history drawer looks different depending on the `displayMode` of the parent `<Chatbot>` (as shown in the [main ChatBot demo](/extensions/chatbot/overview/demo#basic-chatbot).):
|
|
371
371
|
|
|
372
|
-
- `Default` and `docked` display modes display the
|
|
373
|
-
- `Fullscreen` and `embedded` display modes display the
|
|
372
|
+
- `Default` and `docked` display modes display the chat history on top of the rest of the ChatBot content, with a PatternFly backdrop between the drawer panel and drawer content.
|
|
373
|
+
- `Fullscreen` and `embedded` display modes display the chat history in line with the drawer content.
|
|
374
374
|
|
|
375
375
|
### Drawer with search and "new chat" button
|
|
376
376
|
|
|
377
|
-
In the
|
|
377
|
+
In the chat history drawer, users can search previous ChatBot conversations via an input field. To customize the placeholder text, use `searchInputPlaceholder`. Provide an aria label via `searchInputAriaLabel`.
|
|
378
378
|
|
|
379
379
|
They can also start new conversations via a "New chat" button. To customize the button label, use `newChatButtonText`.
|
|
380
380
|
|
|
@@ -386,7 +386,7 @@ Both the search input field and "New chat" buttons are optional. The `reverseBut
|
|
|
386
386
|
|
|
387
387
|
### Drawer with search actions
|
|
388
388
|
|
|
389
|
-
You can customize the search experience within the
|
|
389
|
+
You can customize the search experience within the chat history drawer via the `searchActionStart` and `searchActionEnd` props, which provide additional search controls before and after the input field. These props are useful for adding filtering, sorting, or other search-related functionality.
|
|
390
390
|
|
|
391
391
|
You can also add a visual divider between the drawer head and the title by setting `hasDrawerHeadDivider` to `true`.
|
|
392
392
|
|
|
@@ -404,15 +404,15 @@ Actions can be added to conversations with `menuItems`. Optionally, you can also
|
|
|
404
404
|
|
|
405
405
|
### Pinning conversations
|
|
406
406
|
|
|
407
|
-
To help users track important conversations, add a "pin" option to the conversation action menus. This action moves a conversation to a dedicated "pinned" section at the top of the history drawer for quick access. Pinned items should contain an "unpin" option, so that users can remove pinned conversations as needed.
|
|
407
|
+
To help users track important conversations, add a "pin" option to the conversation action menus. This action moves a conversation to a dedicated "pinned" section at the top of the chat history drawer for quick access. Pinned items should contain an "unpin" option, so that users can remove pinned conversations as needed.
|
|
408
408
|
|
|
409
409
|
```js file="./ChatbotHeaderDrawerWithPin.tsx"
|
|
410
410
|
|
|
411
411
|
```
|
|
412
412
|
|
|
413
|
-
### Renaming conversations in history drawer
|
|
413
|
+
### Renaming conversations in chat history drawer
|
|
414
414
|
|
|
415
|
-
You can allow users to rename a conversation in the history drawer by implementing a modal that opens upon clicking a "Rename" (or similar) action. When doing so, you must ensure the following:
|
|
415
|
+
You can allow users to rename a conversation in the chat history drawer by implementing a modal that opens upon clicking a "Rename" (or similar) action. When doing so, you must ensure the following:
|
|
416
416
|
|
|
417
417
|
- When the modal opens, focus is placed at the end of the text input.
|
|
418
418
|
- When the modal closes, focus goes back to the action toggle that was previously opened.
|
|
@@ -433,7 +433,7 @@ If you're showing a conversation that is already active, you can set the `active
|
|
|
433
433
|
|
|
434
434
|
### Resizable drawer
|
|
435
435
|
|
|
436
|
-
By default, the
|
|
436
|
+
By default, the chat history drawer has a fixed width (384px) and a focus trap. To provide users with more flexibility as they navigate their chat history, or to better support embedded ChatBots on tablet-sized devices or smaller browser windows, you can instead make the drawer resizable. By default, even resizable drawers will still open to their full width on mobile devices.
|
|
437
437
|
|
|
438
438
|
In this example, the drawer can be resized up to the max size of the parent and resized down to 200px wide. To customize this behavior further (including width, style, and focus behavior) use PatternFly [`<Drawer>` props](/components/drawer#props), [`<DrawerPanelContent>` props](/components/drawer/#drawerpanelcontent), or any other drawer subcomponents.
|
|
439
439
|
|
|
@@ -95,7 +95,7 @@ This demo displays a basic ChatBot, which includes:
|
|
|
95
95
|
- Sending a message to the ChatBot.
|
|
96
96
|
- Receiving a response from a backend AI tool with a loading message state.
|
|
97
97
|
|
|
98
|
-
6. A [`<ChatbotConversationHistoryNav>`](/extensions/chatbot/ui#
|
|
98
|
+
6. A [`<ChatbotConversationHistoryNav>`](/extensions/chatbot/ui#chat-history) toggled open and closed by the `<ChatbotHeaderMenu`> in the `<ChatbotHeader>`.
|
|
99
99
|
|
|
100
100
|
7. A "Skip to chatbot" button that allows you to skip to the chatbot content via the [PatternFly skip to content component](/extensions/chatbot/ui#skip-to-content). To display this button you must tab into the main window.
|
|
101
101
|
|
|
@@ -126,7 +126,7 @@ This demo displays an embedded ChatBot. Embedded ChatBots are meant to be placed
|
|
|
126
126
|
- [Speech to text.](/extensions/chatbot/ui#message-bar-with-speech-recognition-and-file-attachment)
|
|
127
127
|
- Sending a message to the ChatBot.
|
|
128
128
|
- Receiving a response from a backend AI tool with a loading message state.
|
|
129
|
-
6. A [`<ChatbotConversationHistoryNav>`](/extensions/chatbot/ui#
|
|
129
|
+
6. A [`<ChatbotConversationHistoryNav>`](/extensions/chatbot/ui#chat-history) that can be toggled by the `<ChatbotHeaderMenu`> in the `<ChatbotHeader>`.
|
|
130
130
|
|
|
131
131
|
```js file="./EmbeddedChatbot.tsx" isFullscreen
|
|
132
132
|
|
|
@@ -196,7 +196,7 @@ This demo illustrates how you could add downloadable transcripts to your ChatBot
|
|
|
196
196
|
|
|
197
197
|
A message transcript includes details from a single chat message. To download a sample message transcript in this demo, click the "Download" action under a bot message.
|
|
198
198
|
|
|
199
|
-
A conversation transcript includes details from the entirety of a ChatBot conversation. To download a sample conversation transcript in this demo, open the chat history
|
|
199
|
+
A conversation transcript includes details from the entirety of a ChatBot conversation. To download a sample conversation transcript in this demo, open the chat history drawer and click "Download" in the options menu for the conversation.
|
|
200
200
|
|
|
201
201
|
In this example, file download is implemented with [file-saver](https://www.npmjs.com/package/file-saver).
|
|
202
202
|
|
package/src/Chatbot/Chatbot.scss
CHANGED
|
@@ -9,7 +9,10 @@
|
|
|
9
9
|
flex-direction: column;
|
|
10
10
|
width: 30rem;
|
|
11
11
|
height: 70vh;
|
|
12
|
-
background-color: var(
|
|
12
|
+
background-color: var(
|
|
13
|
+
--pf-t--global--background--color--floating--secondary--default,
|
|
14
|
+
--pf-t--global--background--color--secondary--default
|
|
15
|
+
);
|
|
13
16
|
border-radius: var(--pf-t--global--border--radius--medium);
|
|
14
17
|
box-shadow: var(--pf-t--global--box-shadow--lg);
|
|
15
18
|
font-size: var(--pf-t--global--font--size--md);
|
|
@@ -72,6 +75,8 @@
|
|
|
72
75
|
// Chatbot Display Mode - Fullscreen
|
|
73
76
|
// ============================================================================
|
|
74
77
|
.pf-chatbot--fullscreen {
|
|
78
|
+
background-color: var(--pf-t--global--background--color--secondary--default);
|
|
79
|
+
|
|
75
80
|
// for high contrast support
|
|
76
81
|
border: unset;
|
|
77
82
|
inset-block-end: 0;
|
|
@@ -87,6 +92,8 @@
|
|
|
87
92
|
// Chatbot Display Mode - Embedded
|
|
88
93
|
// ============================================================================
|
|
89
94
|
.pf-chatbot--embedded {
|
|
95
|
+
background-color: var(--pf-t--global--background--color--secondary--default);
|
|
96
|
+
|
|
90
97
|
// for high contrast support
|
|
91
98
|
border: unset;
|
|
92
99
|
position: static;
|
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
// ============================================================================
|
|
4
4
|
.pf-chatbot__content {
|
|
5
5
|
position: relative;
|
|
6
|
-
background-color: var(
|
|
6
|
+
background-color: var(
|
|
7
|
+
--pf-t--global--background--color--floating--secondary--default,
|
|
8
|
+
--pf-t--global--background--color--secondary--default
|
|
9
|
+
);
|
|
7
10
|
overflow-y: auto;
|
|
8
11
|
overflow: hidden; // needed in Red Hat Developer Hub workspace
|
|
9
12
|
flex: 1; // needed in Composer AI
|
|
@@ -26,6 +29,7 @@
|
|
|
26
29
|
.pf-chatbot--fullscreen,
|
|
27
30
|
.pf-chatbot--embedded {
|
|
28
31
|
.pf-chatbot__content {
|
|
32
|
+
background-color: var(--pf-t--global--background--color--secondary--default);
|
|
29
33
|
display: flex;
|
|
30
34
|
justify-content: center;
|
|
31
35
|
}
|
|
@@ -307,7 +307,7 @@ describe('ChatbotConversationHistoryNav', () => {
|
|
|
307
307
|
isLoading
|
|
308
308
|
/>
|
|
309
309
|
);
|
|
310
|
-
expect(screen.getByRole('dialog', { name: /Loading chatbot
|
|
310
|
+
expect(screen.getByRole('dialog', { name: /Loading chatbot chat history/i })).toBeTruthy();
|
|
311
311
|
expect(screen.getByRole('button', { name: /Close drawer panel/i })).toBeTruthy();
|
|
312
312
|
});
|
|
313
313
|
|
|
@@ -84,7 +84,7 @@ export interface ChatbotConversationHistoryNavProps extends DrawerProps {
|
|
|
84
84
|
activeItemId?: string | number;
|
|
85
85
|
/** Callback function for when an item is selected */
|
|
86
86
|
onSelectActiveItem?: (event?: React.MouseEvent, itemId?: string | number) => void;
|
|
87
|
-
/** Items shown in
|
|
87
|
+
/** Items shown in chat history */
|
|
88
88
|
conversations: Conversation[] | { [key: string]: Conversation[] };
|
|
89
89
|
/** Additional button props for new chat button. */
|
|
90
90
|
newChatButtonProps?: ButtonProps;
|
|
@@ -4,11 +4,7 @@ import type { FunctionComponent } from 'react';
|
|
|
4
4
|
export const LoadingState: FunctionComponent<SkeletonProps> = ({ screenreaderText, ...rest }: SkeletonProps) => (
|
|
5
5
|
<div className="pf-chatbot__history-loading">
|
|
6
6
|
<div className="pf-chatbot__history-loading-block">
|
|
7
|
-
<Skeleton
|
|
8
|
-
screenreaderText={screenreaderText ?? 'Loading chatbot conversation history'}
|
|
9
|
-
fontSize="3xl"
|
|
10
|
-
{...rest}
|
|
11
|
-
/>
|
|
7
|
+
<Skeleton screenreaderText={screenreaderText ?? 'Loading chatbot chat history'} fontSize="3xl" {...rest} />
|
|
12
8
|
</div>
|
|
13
9
|
<div className="pf-chatbot__history-loading-block">
|
|
14
10
|
<Skeleton fontSize="sm" width="70%" {...rest} />
|
|
@@ -6,7 +6,10 @@
|
|
|
6
6
|
// ============================================================================
|
|
7
7
|
.pf-chatbot__footer {
|
|
8
8
|
--pf-chatbot__footer--RowGap: var(--pf-t--global--spacer--md);
|
|
9
|
-
background-color: var(
|
|
9
|
+
background-color: var(
|
|
10
|
+
--pf-t--global--background--color--floating--secondary--default,
|
|
11
|
+
--pf-t--global--background--color--secondary--default
|
|
12
|
+
);
|
|
10
13
|
display: flex;
|
|
11
14
|
flex-direction: column;
|
|
12
15
|
row-gap: var(--pf-chatbot__footer--RowGap);
|
|
@@ -36,6 +39,10 @@
|
|
|
36
39
|
display: none;
|
|
37
40
|
}
|
|
38
41
|
}
|
|
42
|
+
.pf-chatbot__footer {
|
|
43
|
+
background-color: var(--pf-t--global--background--color--secondary--default);
|
|
44
|
+
}
|
|
45
|
+
|
|
39
46
|
.pf-chatbot__footer-container {
|
|
40
47
|
width: 90%;
|
|
41
48
|
max-width: 60rem;
|
|
@@ -9,7 +9,10 @@
|
|
|
9
9
|
grid-template-columns: 1fr auto;
|
|
10
10
|
gap: var(--pf-t--global--spacer--sm);
|
|
11
11
|
position: relative; // this is so focus ring on parent chatbot doesn't include header
|
|
12
|
-
background-color: var(
|
|
12
|
+
background-color: var(
|
|
13
|
+
--pf-t--global--background--color--floating--secondary--default,
|
|
14
|
+
--pf-t--global--background--color--secondary--default
|
|
15
|
+
);
|
|
13
16
|
justify-content: space-between;
|
|
14
17
|
padding: var(--pf-t--global--spacer--lg);
|
|
15
18
|
|
|
@@ -76,7 +79,7 @@
|
|
|
76
79
|
.pf-chatbot--drawer,
|
|
77
80
|
.pf-chatbot--docked {
|
|
78
81
|
.pf-chatbot__header {
|
|
79
|
-
background-color: var(--pf-t--global--background--color--secondary--default);
|
|
82
|
+
background-color: var(--pf-t--global--background--color--secondary--floating--default);
|
|
80
83
|
}
|
|
81
84
|
}
|
|
82
85
|
|
|
@@ -12,7 +12,7 @@ describe('ChatbotHeaderMenu', () => {
|
|
|
12
12
|
it('should call onMenuToggle when ChatbotHeaderMenu button is clicked', () => {
|
|
13
13
|
const onMenuToggle = jest.fn();
|
|
14
14
|
render(<ChatbotHeaderMenu className="custom-header-menu" onMenuToggle={onMenuToggle} />);
|
|
15
|
-
fireEvent.click(screen.getByRole('button', { name: 'Chat history
|
|
15
|
+
fireEvent.click(screen.getByRole('button', { name: 'Chat history drawer' }));
|
|
16
16
|
|
|
17
17
|
expect(onMenuToggle).toHaveBeenCalled();
|
|
18
18
|
});
|
|
@@ -25,9 +25,9 @@ const ChatbotHeaderMenuBase: FunctionComponent<ChatbotHeaderMenuProps> = ({
|
|
|
25
25
|
className,
|
|
26
26
|
onMenuToggle,
|
|
27
27
|
tooltipProps,
|
|
28
|
-
menuAriaLabel = 'Chat history
|
|
28
|
+
menuAriaLabel = 'Chat history drawer',
|
|
29
29
|
innerRef,
|
|
30
|
-
tooltipContent = 'Chat history
|
|
30
|
+
tooltipContent = 'Chat history drawer',
|
|
31
31
|
isCompact,
|
|
32
32
|
...props
|
|
33
33
|
}: ChatbotHeaderMenuProps) => {
|
|
@@ -19,7 +19,10 @@
|
|
|
19
19
|
flex-wrap: wrap;
|
|
20
20
|
align-items: center;
|
|
21
21
|
justify-content: flex-end;
|
|
22
|
-
background-color: var(
|
|
22
|
+
background-color: var(
|
|
23
|
+
--pf-t--global--background--color--control--default,
|
|
24
|
+
--pf-t--global--background--color--primary--default
|
|
25
|
+
);
|
|
23
26
|
border-radius: calc(var(--pf-t--global--border--radius--medium) * 2);
|
|
24
27
|
transition: border-color var(--pf-t--global--motion--timing-function--accelerate)
|
|
25
28
|
var(--pf-t--global--motion--duration--sm);
|
|
@@ -42,20 +45,20 @@
|
|
|
42
45
|
|
|
43
46
|
&.pf-m-primary {
|
|
44
47
|
&::after {
|
|
45
|
-
border-color: var(--pf-t--global--border--color--default);
|
|
48
|
+
border-color: var(--pf-t--global--border--color--control--default, --pf-t--global--border--color--default);
|
|
46
49
|
}
|
|
47
50
|
}
|
|
48
51
|
|
|
49
52
|
&:hover {
|
|
50
53
|
&::after {
|
|
51
|
-
border-color: var(--pf-t--global--border--color--default);
|
|
54
|
+
border-color: var(--pf-t--global--border--color--control--default, --pf-t--global--border--color--default);
|
|
52
55
|
border-width: var(--pf-t--global--border--width--control--hover);
|
|
53
56
|
}
|
|
54
57
|
}
|
|
55
58
|
|
|
56
59
|
&:focus-within {
|
|
57
60
|
&::after {
|
|
58
|
-
border-color: var(--pf-t--global--color--
|
|
61
|
+
border-color: var(--pf-t--global--border--color--control--default, --pf-t--global--border--color--default);
|
|
59
62
|
border-width: var(--pf-t--global--border--width--control--clicked);
|
|
60
63
|
}
|
|
61
64
|
}
|
|
@@ -183,7 +186,7 @@
|
|
|
183
186
|
:root:where(.pf-v6-theme-high-contrast) {
|
|
184
187
|
.pf-chatbot__message-bar {
|
|
185
188
|
&::after {
|
|
186
|
-
border-color: var(--pf-t--global--border--color--default);
|
|
189
|
+
border-color: var(--pf-t--global--border--color--control--default, --pf-t--global--border--color--default);
|
|
187
190
|
}
|
|
188
191
|
}
|
|
189
192
|
}
|