@patternfly/chatbot 6.7.0-prerelease.1 → 6.7.0-prerelease.3
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/ChatbotFooter/ChatbotFootnote.d.ts +4 -0
- package/dist/cjs/ChatbotFooter/ChatbotFootnote.js +5 -7
- package/dist/cjs/ChatbotToggle/ChatbotToggle.d.ts +2 -0
- package/dist/cjs/ChatbotToggle/ChatbotToggle.js +5 -5
- package/dist/cjs/ChatbotToggle/ChatbotToggle.test.js +4 -0
- package/dist/css/main.css +21 -5
- package/dist/css/main.css.map +1 -1
- package/dist/esm/ChatbotFooter/ChatbotFootnote.d.ts +4 -0
- package/dist/esm/ChatbotFooter/ChatbotFootnote.js +5 -7
- package/dist/esm/ChatbotToggle/ChatbotToggle.d.ts +2 -0
- package/dist/esm/ChatbotToggle/ChatbotToggle.js +5 -5
- package/dist/esm/ChatbotToggle/ChatbotToggle.test.js +4 -0
- package/package.json +2 -2
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFooter.tsx +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotFootnote.tsx +26 -20
- package/patternfly-docs/content/extensions/chatbot/examples/UI/SecondaryChatbotToggle.tsx +15 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +12 -3
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.tsx +1 -19
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotCompact.tsx +1 -19
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotDisplayMode.tsx +1 -19
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotInDrawer.tsx +1 -19
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotScrolling.tsx +1 -19
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotTranscripts.tsx +1 -19
- package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +1 -19
- package/patternfly-docs/content/extensions/chatbot/examples/demos/WhiteEmbeddedChatbot.tsx +1 -19
- package/src/ChatbotFooter/ChatbotFootnote.tsx +14 -12
- package/src/ChatbotToggle/ChatbotToggle.scss +24 -7
- package/src/ChatbotToggle/ChatbotToggle.test.tsx +4 -0
- package/src/ChatbotToggle/ChatbotToggle.tsx +18 -18
- package/src/LoadingMessage/__snapshots__/LoadingMessage.test.tsx.snap +16 -4
|
@@ -21,6 +21,10 @@ export interface ChatbotFootnotePopover {
|
|
|
21
21
|
link?: ChatbotFootnotePopoverLink;
|
|
22
22
|
/** Props for PF Popover */
|
|
23
23
|
popoverProps?: PopoverProps;
|
|
24
|
+
/** Flag indicating whether the popover close button is rendered. Either this or a cta that closes the popover
|
|
25
|
+
* must be present.
|
|
26
|
+
*/
|
|
27
|
+
showClose?: boolean;
|
|
24
28
|
}
|
|
25
29
|
export interface ChatbotFootnotePopoverCTA {
|
|
26
30
|
/** Label for the CTA */
|
|
@@ -17,19 +17,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.ChatbotFootnote = void 0;
|
|
18
18
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
19
19
|
const react_1 = require("react");
|
|
20
|
-
// Import Patternfly components
|
|
21
20
|
const react_core_1 = require("@patternfly/react-core");
|
|
22
|
-
// Import Patternfly icons
|
|
23
|
-
const info_circle_icon_1 = require("@patternfly/react-icons/dist/esm/icons/info-circle-icon");
|
|
24
21
|
const external_link_alt_icon_1 = require("@patternfly/react-icons/dist/esm/icons/external-link-alt-icon");
|
|
25
|
-
// Import Chatbot components
|
|
26
22
|
const ChatbotPopover_1 = __importDefault(require("../ChatbotPopover/ChatbotPopover"));
|
|
27
23
|
const ChatbotFootnote = (_a) => {
|
|
28
24
|
var _b, _c, _d, _e, _f;
|
|
29
25
|
var { label, popover, className } = _a, props = __rest(_a, ["label", "popover", "className"]);
|
|
30
|
-
|
|
26
|
+
if (!(popover === null || popover === void 0 ? void 0 : popover.cta) && !(popover === null || popover === void 0 ? void 0 : popover.showClose)) {
|
|
27
|
+
// eslint-disable-next-line no-console
|
|
28
|
+
console.error('ChatbotFootnote: You must provide either the popover.cta or popover.showClose props in order to render a button that can close the popover.');
|
|
29
|
+
}
|
|
31
30
|
const [isVisible, setIsVisible] = (0, react_1.useState)(false);
|
|
32
|
-
// Define popover body content
|
|
33
31
|
const popoverBodyContent = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(popover === null || popover === void 0 ? void 0 : popover.bannerImage) && (0, jsx_runtime_1.jsx)("img", { src: popover.bannerImage.src, alt: popover.bannerImage.alt }), (0, jsx_runtime_1.jsx)(react_core_1.Content, { component: react_core_1.ContentVariants.h3, children: popover === null || popover === void 0 ? void 0 : popover.title }), (0, jsx_runtime_1.jsx)(react_core_1.Content, { component: react_core_1.ContentVariants.p, children: popover === null || popover === void 0 ? void 0 : popover.description })] }));
|
|
34
32
|
// Define popover footer content
|
|
35
33
|
const popoverFooterContent = ((0, jsx_runtime_1.jsxs)(react_core_1.Flex, { gap: { default: 'gapSm' }, children: [(popover === null || popover === void 0 ? void 0 : popover.cta) && ((0, jsx_runtime_1.jsx)(react_core_1.Button, { variant: "secondary", onClick: () => {
|
|
@@ -37,7 +35,7 @@ const ChatbotFootnote = (_a) => {
|
|
|
37
35
|
setIsVisible(false);
|
|
38
36
|
(_a = popover.cta) === null || _a === void 0 ? void 0 : _a.onClick();
|
|
39
37
|
}, children: ((_b = popover.cta) === null || _b === void 0 ? void 0 : _b.label) || 'Dismiss' })), (popover === null || popover === void 0 ? void 0 : popover.link) && ((0, jsx_runtime_1.jsx)(react_core_1.Button, { variant: "link", component: "a", href: popover.link.url, target: "_blank", icon: (0, jsx_runtime_1.jsx)(external_link_alt_icon_1.ExternalLinkAltIcon, {}), iconPosition: "end", children: popover.link.label }))] }));
|
|
40
|
-
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: `pf-chatbot__footnote ${className !== null && className !== void 0 ? className : ''}` }, props, { children: [popover && ((0, jsx_runtime_1.jsx)(ChatbotPopover_1.default, Object.assign({ className: "pf-chatbot__popover--footnote", "aria-label": ((_c = popover.popoverProps) === null || _c === void 0 ? void 0 : _c['aria-label']) || 'More information', isVisible: isVisible, shouldOpen: (_event, _fn) => setIsVisible(true), shouldClose: (_event, _fn) => setIsVisible(false), bodyContent: popoverBodyContent, footerContent: popoverFooterContent, minWidth: ((_d = popover.popoverProps) === null || _d === void 0 ? void 0 : _d.minWidth) || '432', maxWidth: ((_e = popover.popoverProps) === null || _e === void 0 ? void 0 : _e.maxWidth) || '432', distance: ((_f = popover.popoverProps) === null || _f === void 0 ? void 0 : _f.distance) || 16, showClose: false }, popover.popoverProps, { children: (0, jsx_runtime_1.
|
|
38
|
+
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: `pf-chatbot__footnote ${className !== null && className !== void 0 ? className : ''}` }, props, { children: [popover && ((0, jsx_runtime_1.jsx)(ChatbotPopover_1.default, Object.assign({ className: "pf-chatbot__popover--footnote", "aria-label": ((_c = popover.popoverProps) === null || _c === void 0 ? void 0 : _c['aria-label']) || 'More information', isVisible: isVisible, shouldOpen: (_event, _fn) => setIsVisible(true), shouldClose: (_event, _fn) => setIsVisible(false), bodyContent: popoverBodyContent, footerContent: popoverFooterContent, minWidth: ((_d = popover.popoverProps) === null || _d === void 0 ? void 0 : _d.minWidth) || '432', maxWidth: ((_e = popover.popoverProps) === null || _e === void 0 ? void 0 : _e.maxWidth) || '432', distance: ((_f = popover.popoverProps) === null || _f === void 0 ? void 0 : _f.distance) || 16, showClose: (popover === null || popover === void 0 ? void 0 : popover.showClose) || false }, popover.popoverProps, { children: (0, jsx_runtime_1.jsx)(react_core_1.Button, { "aria-haspopup": "dialog", isExpanded: isVisible, variant: "link", size: "sm", children: label }) }))), !popover && (0, jsx_runtime_1.jsx)(react_core_1.Content, { component: react_core_1.ContentVariants.small, children: label })] })));
|
|
41
39
|
};
|
|
42
40
|
exports.ChatbotFootnote = ChatbotFootnote;
|
|
43
41
|
exports.default = exports.ChatbotFootnote;
|
|
@@ -20,6 +20,8 @@ export interface ChatbotToggleProps extends ButtonProps {
|
|
|
20
20
|
className?: string;
|
|
21
21
|
/** Test id applied to default open icon */
|
|
22
22
|
openIconTestId?: string;
|
|
23
|
+
/** Color variant applied to the toggle button */
|
|
24
|
+
colorVariant?: 'default' | 'secondary';
|
|
23
25
|
}
|
|
24
26
|
declare const ChatbotToggle: import("react").ForwardRefExoticComponent<ChatbotToggleProps & import("react").RefAttributes<any>>;
|
|
25
27
|
export default ChatbotToggle;
|
|
@@ -17,16 +17,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
18
18
|
const react_1 = require("react");
|
|
19
19
|
const react_core_1 = require("@patternfly/react-core");
|
|
20
|
-
const
|
|
21
|
-
const ChatIcon = () => ((0, jsx_runtime_1.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg",
|
|
20
|
+
const rh_microns_caret_down_icon_1 = __importDefault(require("@patternfly/react-icons/dist/esm/icons/rh-microns-caret-down-icon"));
|
|
21
|
+
const ChatIcon = () => ((0, jsx_runtime_1.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "33", height: "31", viewBox: "0 0 33 31", fill: "none", children: [(0, jsx_runtime_1.jsx)("g", { clipPath: "url(#clip0_11685_20917)", children: (0, jsx_runtime_1.jsx)("path", { d: "M29.7 11.0714H17.6V7.75H19.525C20.2834 7.75 20.9 7.12939 20.9 6.36607V1.38393C20.9 0.620609 20.2834 0 19.525 0H13.475C12.7166 0 12.1 0.620609 12.1 1.38393V6.36607C12.1 7.12939 12.7166 7.75 13.475 7.75H15.4V11.0714H3.3C1.48027 11.0714 0 12.5613 0 14.3929V27.6786C0 29.5101 1.48027 31 3.3 31H29.7C31.5197 31 33 29.5101 33 27.6786V14.3929C33 12.5613 31.5197 11.0714 29.7 11.0714ZM14.3 2.21429H18.7V5.53571H14.3V2.21429ZM30.8 27.6786C30.8 28.2894 30.3069 28.7857 29.7 28.7857H3.3C2.6936 28.7857 2.2 28.2894 2.2 27.6786V14.3929C2.2 13.7825 2.6936 13.2857 3.3 13.2857H29.7C30.3069 13.2857 30.8 13.7825 30.8 14.3929V27.6786ZM8.525 17.7143V19.9286C8.525 20.387 8.15547 20.7589 7.7 20.7589H5.5C5.04453 20.7589 4.675 20.387 4.675 19.9286V17.7143C4.675 17.2559 5.04453 16.8839 5.5 16.8839H7.7C8.15547 16.8839 8.525 17.2559 8.525 17.7143ZM28.325 17.7143V19.9286C28.325 20.387 27.9555 20.7589 27.5 20.7589H25.3C24.8445 20.7589 24.475 20.387 24.475 19.9286V17.7143C24.475 17.2559 24.8445 16.8839 25.3 16.8839H27.5C27.9555 16.8839 28.325 17.2559 28.325 17.7143ZM20.5691 22.6683C20.8893 23.0965 20.8033 23.703 20.3779 24.0241C19.2521 24.8761 17.9115 25.3259 16.5 25.3259C15.0885 25.3259 13.7473 24.8761 12.6215 24.0241C12.1961 23.703 12.1107 23.0965 12.4298 22.6683C12.7494 22.2391 13.3536 22.1526 13.7774 22.4759C15.3576 23.6695 17.6408 23.6695 19.2221 22.4759C19.6475 22.1515 20.2512 22.2402 20.5691 22.6683Z", fill: "currentColor" }) }), (0, jsx_runtime_1.jsx)("defs", { children: (0, jsx_runtime_1.jsx)("clipPath", { id: "clip0_11685_20917", children: (0, jsx_runtime_1.jsx)("rect", { width: "33", height: "31", fill: "currentColor" }) }) })] }));
|
|
22
22
|
const ChatbotToggleBase = (_a) => {
|
|
23
|
-
var { tooltipLabel, isChatbotVisible, onToggleChatbot, tooltipProps, toggleButtonLabel, closedToggleIcon: ClosedToggleIcon, innerRef, isRound = true, className, openIconTestId } = _a, props = __rest(_a, ["tooltipLabel", "isChatbotVisible", "onToggleChatbot", "tooltipProps", "toggleButtonLabel", "closedToggleIcon", "innerRef", "isRound", "className", "openIconTestId"]);
|
|
23
|
+
var { tooltipLabel, isChatbotVisible, onToggleChatbot, tooltipProps, toggleButtonLabel, closedToggleIcon: ClosedToggleIcon, innerRef, isRound = true, className, openIconTestId, colorVariant = 'default' } = _a, props = __rest(_a, ["tooltipLabel", "isChatbotVisible", "onToggleChatbot", "tooltipProps", "toggleButtonLabel", "closedToggleIcon", "innerRef", "isRound", "className", "openIconTestId", "colorVariant"]);
|
|
24
24
|
// Configure icon
|
|
25
25
|
const closedIcon = ClosedToggleIcon ? (0, jsx_runtime_1.jsx)(ClosedToggleIcon, {}) : (0, jsx_runtime_1.jsx)(ChatIcon, {});
|
|
26
|
-
const icon = isChatbotVisible ? (0, jsx_runtime_1.jsx)(
|
|
26
|
+
const icon = isChatbotVisible ? (0, jsx_runtime_1.jsx)(rh_microns_caret_down_icon_1.default, { "data-testid": openIconTestId }) : closedIcon;
|
|
27
27
|
return ((0, jsx_runtime_1.jsx)(react_core_1.Tooltip, Object.assign({ content: tooltipLabel,
|
|
28
28
|
// prevents VO announcements of both aria label and tooltip
|
|
29
|
-
aria: "none" }, tooltipProps, { children: (0, jsx_runtime_1.jsx)(react_core_1.Button, Object.assign({ className: `pf-chatbot__button ${isChatbotVisible ? 'pf-chatbot__button--active' : ''} ${isRound ? 'pf-chatbot__button--round' : ''} ${className ? className : ''}`, variant: "plain", "aria-label": toggleButtonLabel || `${tooltipLabel} toggle`, onClick: onToggleChatbot, "aria-expanded": isChatbotVisible, icon: (0, jsx_runtime_1.jsx)(react_core_1.Icon, { isInline: true, children: icon }), ref: innerRef }, props)) })));
|
|
29
|
+
aria: "none" }, tooltipProps, { children: (0, jsx_runtime_1.jsx)(react_core_1.Button, Object.assign({ className: `pf-chatbot__button ${colorVariant === 'secondary' ? 'pf-chatbot__button--secondary' : ''} ${isChatbotVisible ? 'pf-chatbot__button--active' : ''} ${isRound ? 'pf-chatbot__button--round' : ''} ${className ? className : ''}`, variant: "plain", "aria-label": toggleButtonLabel || `${tooltipLabel} toggle`, onClick: onToggleChatbot, "aria-expanded": isChatbotVisible, icon: (0, jsx_runtime_1.jsx)(react_core_1.Icon, { isInline: true, children: icon }), ref: innerRef }, props)) })));
|
|
30
30
|
};
|
|
31
31
|
const ChatbotToggle = (0, react_1.forwardRef)((props, ref) => ((0, jsx_runtime_1.jsx)(ChatbotToggleBase, Object.assign({ innerRef: ref }, props))));
|
|
32
32
|
exports.default = ChatbotToggle;
|
|
@@ -57,4 +57,8 @@ describe('ChatbotToggle', () => {
|
|
|
57
57
|
expect(react_1.screen.getByRole('button')).toHaveClass('pf-chatbot__button');
|
|
58
58
|
expect(react_1.screen.getByRole('button')).toHaveClass('test');
|
|
59
59
|
});
|
|
60
|
+
it('should handle colorVariant secondary correctly', () => {
|
|
61
|
+
(0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotToggle_1.default, { tooltipLabel: "Chatbot", colorVariant: "secondary" }));
|
|
62
|
+
expect(react_1.screen.getByRole('button')).toHaveClass('pf-chatbot__button--secondary');
|
|
63
|
+
});
|
|
60
64
|
});
|
package/dist/css/main.css
CHANGED
|
@@ -759,12 +759,17 @@
|
|
|
759
759
|
position: fixed;
|
|
760
760
|
inset-block-end: var(--pf-t--global--spacer--md);
|
|
761
761
|
inset-inline-end: var(--pf-t--global--spacer--md);
|
|
762
|
-
|
|
763
|
-
--pf-v6-c-
|
|
762
|
+
--pf-v6-c-button--m-plain--BackgroundColor: var(--pf-t--global--background--color--floating--default);
|
|
763
|
+
--pf-v6-c-button--m-plain--hover--BackgroundColor: var(--pf-t--global--background--color--floating--hover);
|
|
764
|
+
--pf-v6-c-button--m-plain--m-clicked--BackgroundColor: var(--pf-t--global--background--color--floating--clicked);
|
|
765
|
+
--pf-v6-c-button--m-plain--BorderColor: var(--pf-t--global--border--color--default);
|
|
766
|
+
--pf-v6-c-button--m-plain--hover--BorderColor: var(--pf-t--global--border--color--default);
|
|
767
|
+
--pf-v6-c-button--m-plain--m-clicked--BorderColor: var(--pf-t--global--border--color--default);
|
|
768
|
+
--pf-v6-c-button--m-plain--BorderWidth: 1px;
|
|
769
|
+
--pf-v6-c-button--m-plain--hover--BorderWidth: 1px;
|
|
770
|
+
--pf-v6-c-button--m-plain--m-clicked--BorderWidth: 1px;
|
|
764
771
|
padding: var(--pf-t--global--spacer--md);
|
|
765
|
-
|
|
766
|
-
.pf-v6-c-button.pf-chatbot__button:hover, .pf-v6-c-button.pf-chatbot__button:focus {
|
|
767
|
-
background-color: var(--pf-t--color--gray--70);
|
|
772
|
+
box-shadow: var(--pf-t--global--box-shadow--sm);
|
|
768
773
|
}
|
|
769
774
|
.pf-v6-c-button.pf-chatbot__button .pf-v6-c-button__icon {
|
|
770
775
|
display: contents;
|
|
@@ -773,6 +778,17 @@
|
|
|
773
778
|
width: var(--pf-t--global--spacer--lg);
|
|
774
779
|
height: var(--pf-t--global--spacer--lg);
|
|
775
780
|
}
|
|
781
|
+
.pf-v6-c-button.pf-chatbot__button--active {
|
|
782
|
+
--pf-v6-c-button--m-plain--BackgroundColor: var(--pf-t--global--background--color--floating--clicked);
|
|
783
|
+
}
|
|
784
|
+
.pf-v6-c-button.pf-chatbot__button--secondary {
|
|
785
|
+
--pf-v6-c-button--m-plain--BackgroundColor: var(--pf-t--global--background--color--secondary--default);
|
|
786
|
+
--pf-v6-c-button--m-plain--hover--BackgroundColor: var(--pf-t--global--background--color--secondary--hover);
|
|
787
|
+
--pf-v6-c-button--m-plain--m-clicked--BackgroundColor: var(--pf-t--global--background--color--secondary--clicked);
|
|
788
|
+
}
|
|
789
|
+
.pf-v6-c-button.pf-chatbot__button--secondary.pf-chatbot__button--active {
|
|
790
|
+
--pf-v6-c-button--m-plain--BackgroundColor: var(--pf-t--global--background--color--secondary--clicked);
|
|
791
|
+
}
|
|
776
792
|
|
|
777
793
|
.pf-chatbot__button--round {
|
|
778
794
|
border-radius: var(--pf-t--global--border--radius--pill);
|
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;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;;AAIJ;EACE;;AAIA;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;;;AC5LN;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;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;;AAKN;EACE;EACA;EACA;;;AC5CF;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;;AAIJ;EACE;;AAIA;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;;;AC5LN;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"}
|
|
@@ -21,6 +21,10 @@ export interface ChatbotFootnotePopover {
|
|
|
21
21
|
link?: ChatbotFootnotePopoverLink;
|
|
22
22
|
/** Props for PF Popover */
|
|
23
23
|
popoverProps?: PopoverProps;
|
|
24
|
+
/** Flag indicating whether the popover close button is rendered. Either this or a cta that closes the popover
|
|
25
|
+
* must be present.
|
|
26
|
+
*/
|
|
27
|
+
showClose?: boolean;
|
|
24
28
|
}
|
|
25
29
|
export interface ChatbotFootnotePopoverCTA {
|
|
26
30
|
/** Label for the CTA */
|
|
@@ -11,19 +11,17 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
13
|
import { useState } from 'react';
|
|
14
|
-
// Import Patternfly components
|
|
15
14
|
import { Button, Content, ContentVariants, Flex } from '@patternfly/react-core';
|
|
16
|
-
// Import Patternfly icons
|
|
17
|
-
import { InfoCircleIcon } from '@patternfly/react-icons/dist/esm/icons/info-circle-icon';
|
|
18
15
|
import { ExternalLinkAltIcon } from '@patternfly/react-icons/dist/esm/icons/external-link-alt-icon';
|
|
19
|
-
// Import Chatbot components
|
|
20
16
|
import ChatbotPopover from '../ChatbotPopover/ChatbotPopover';
|
|
21
17
|
export const ChatbotFootnote = (_a) => {
|
|
22
18
|
var _b, _c, _d, _e, _f;
|
|
23
19
|
var { label, popover, className } = _a, props = __rest(_a, ["label", "popover", "className"]);
|
|
24
|
-
|
|
20
|
+
if (!(popover === null || popover === void 0 ? void 0 : popover.cta) && !(popover === null || popover === void 0 ? void 0 : popover.showClose)) {
|
|
21
|
+
// eslint-disable-next-line no-console
|
|
22
|
+
console.error('ChatbotFootnote: You must provide either the popover.cta or popover.showClose props in order to render a button that can close the popover.');
|
|
23
|
+
}
|
|
25
24
|
const [isVisible, setIsVisible] = useState(false);
|
|
26
|
-
// Define popover body content
|
|
27
25
|
const popoverBodyContent = (_jsxs(_Fragment, { children: [(popover === null || popover === void 0 ? void 0 : popover.bannerImage) && _jsx("img", { src: popover.bannerImage.src, alt: popover.bannerImage.alt }), _jsx(Content, { component: ContentVariants.h3, children: popover === null || popover === void 0 ? void 0 : popover.title }), _jsx(Content, { component: ContentVariants.p, children: popover === null || popover === void 0 ? void 0 : popover.description })] }));
|
|
28
26
|
// Define popover footer content
|
|
29
27
|
const popoverFooterContent = (_jsxs(Flex, { gap: { default: 'gapSm' }, children: [(popover === null || popover === void 0 ? void 0 : popover.cta) && (_jsx(Button, { variant: "secondary", onClick: () => {
|
|
@@ -31,6 +29,6 @@ export const ChatbotFootnote = (_a) => {
|
|
|
31
29
|
setIsVisible(false);
|
|
32
30
|
(_a = popover.cta) === null || _a === void 0 ? void 0 : _a.onClick();
|
|
33
31
|
}, children: ((_b = popover.cta) === null || _b === void 0 ? void 0 : _b.label) || 'Dismiss' })), (popover === null || popover === void 0 ? void 0 : popover.link) && (_jsx(Button, { variant: "link", component: "a", href: popover.link.url, target: "_blank", icon: _jsx(ExternalLinkAltIcon, {}), iconPosition: "end", children: popover.link.label }))] }));
|
|
34
|
-
return (_jsxs("div", Object.assign({ className: `pf-chatbot__footnote ${className !== null && className !== void 0 ? className : ''}` }, props, { children: [popover && (_jsx(ChatbotPopover, Object.assign({ className: "pf-chatbot__popover--footnote", "aria-label": ((_c = popover.popoverProps) === null || _c === void 0 ? void 0 : _c['aria-label']) || 'More information', isVisible: isVisible, shouldOpen: (_event, _fn) => setIsVisible(true), shouldClose: (_event, _fn) => setIsVisible(false), bodyContent: popoverBodyContent, footerContent: popoverFooterContent, minWidth: ((_d = popover.popoverProps) === null || _d === void 0 ? void 0 : _d.minWidth) || '432', maxWidth: ((_e = popover.popoverProps) === null || _e === void 0 ? void 0 : _e.maxWidth) || '432', distance: ((_f = popover.popoverProps) === null || _f === void 0 ? void 0 : _f.distance) || 16, showClose: false }, popover.popoverProps, { children:
|
|
32
|
+
return (_jsxs("div", Object.assign({ className: `pf-chatbot__footnote ${className !== null && className !== void 0 ? className : ''}` }, props, { children: [popover && (_jsx(ChatbotPopover, Object.assign({ className: "pf-chatbot__popover--footnote", "aria-label": ((_c = popover.popoverProps) === null || _c === void 0 ? void 0 : _c['aria-label']) || 'More information', isVisible: isVisible, shouldOpen: (_event, _fn) => setIsVisible(true), shouldClose: (_event, _fn) => setIsVisible(false), bodyContent: popoverBodyContent, footerContent: popoverFooterContent, minWidth: ((_d = popover.popoverProps) === null || _d === void 0 ? void 0 : _d.minWidth) || '432', maxWidth: ((_e = popover.popoverProps) === null || _e === void 0 ? void 0 : _e.maxWidth) || '432', distance: ((_f = popover.popoverProps) === null || _f === void 0 ? void 0 : _f.distance) || 16, showClose: (popover === null || popover === void 0 ? void 0 : popover.showClose) || false }, popover.popoverProps, { children: _jsx(Button, { "aria-haspopup": "dialog", isExpanded: isVisible, variant: "link", size: "sm", children: label }) }))), !popover && _jsx(Content, { component: ContentVariants.small, children: label })] })));
|
|
35
33
|
};
|
|
36
34
|
export default ChatbotFootnote;
|
|
@@ -20,6 +20,8 @@ export interface ChatbotToggleProps extends ButtonProps {
|
|
|
20
20
|
className?: string;
|
|
21
21
|
/** Test id applied to default open icon */
|
|
22
22
|
openIconTestId?: string;
|
|
23
|
+
/** Color variant applied to the toggle button */
|
|
24
|
+
colorVariant?: 'default' | 'secondary';
|
|
23
25
|
}
|
|
24
26
|
declare const ChatbotToggle: import("react").ForwardRefExoticComponent<ChatbotToggleProps & import("react").RefAttributes<any>>;
|
|
25
27
|
export default ChatbotToggle;
|
|
@@ -12,16 +12,16 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
13
|
import { forwardRef } from 'react';
|
|
14
14
|
import { Button, Tooltip, Icon } from '@patternfly/react-core';
|
|
15
|
-
import
|
|
16
|
-
const ChatIcon = () => (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg",
|
|
15
|
+
import RhMicronsCaretDownIcon from '@patternfly/react-icons/dist/esm/icons/rh-microns-caret-down-icon';
|
|
16
|
+
const ChatIcon = () => (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "33", height: "31", viewBox: "0 0 33 31", fill: "none", children: [_jsx("g", { clipPath: "url(#clip0_11685_20917)", children: _jsx("path", { d: "M29.7 11.0714H17.6V7.75H19.525C20.2834 7.75 20.9 7.12939 20.9 6.36607V1.38393C20.9 0.620609 20.2834 0 19.525 0H13.475C12.7166 0 12.1 0.620609 12.1 1.38393V6.36607C12.1 7.12939 12.7166 7.75 13.475 7.75H15.4V11.0714H3.3C1.48027 11.0714 0 12.5613 0 14.3929V27.6786C0 29.5101 1.48027 31 3.3 31H29.7C31.5197 31 33 29.5101 33 27.6786V14.3929C33 12.5613 31.5197 11.0714 29.7 11.0714ZM14.3 2.21429H18.7V5.53571H14.3V2.21429ZM30.8 27.6786C30.8 28.2894 30.3069 28.7857 29.7 28.7857H3.3C2.6936 28.7857 2.2 28.2894 2.2 27.6786V14.3929C2.2 13.7825 2.6936 13.2857 3.3 13.2857H29.7C30.3069 13.2857 30.8 13.7825 30.8 14.3929V27.6786ZM8.525 17.7143V19.9286C8.525 20.387 8.15547 20.7589 7.7 20.7589H5.5C5.04453 20.7589 4.675 20.387 4.675 19.9286V17.7143C4.675 17.2559 5.04453 16.8839 5.5 16.8839H7.7C8.15547 16.8839 8.525 17.2559 8.525 17.7143ZM28.325 17.7143V19.9286C28.325 20.387 27.9555 20.7589 27.5 20.7589H25.3C24.8445 20.7589 24.475 20.387 24.475 19.9286V17.7143C24.475 17.2559 24.8445 16.8839 25.3 16.8839H27.5C27.9555 16.8839 28.325 17.2559 28.325 17.7143ZM20.5691 22.6683C20.8893 23.0965 20.8033 23.703 20.3779 24.0241C19.2521 24.8761 17.9115 25.3259 16.5 25.3259C15.0885 25.3259 13.7473 24.8761 12.6215 24.0241C12.1961 23.703 12.1107 23.0965 12.4298 22.6683C12.7494 22.2391 13.3536 22.1526 13.7774 22.4759C15.3576 23.6695 17.6408 23.6695 19.2221 22.4759C19.6475 22.1515 20.2512 22.2402 20.5691 22.6683Z", fill: "currentColor" }) }), _jsx("defs", { children: _jsx("clipPath", { id: "clip0_11685_20917", children: _jsx("rect", { width: "33", height: "31", fill: "currentColor" }) }) })] }));
|
|
17
17
|
const ChatbotToggleBase = (_a) => {
|
|
18
|
-
var { tooltipLabel, isChatbotVisible, onToggleChatbot, tooltipProps, toggleButtonLabel, closedToggleIcon: ClosedToggleIcon, innerRef, isRound = true, className, openIconTestId } = _a, props = __rest(_a, ["tooltipLabel", "isChatbotVisible", "onToggleChatbot", "tooltipProps", "toggleButtonLabel", "closedToggleIcon", "innerRef", "isRound", "className", "openIconTestId"]);
|
|
18
|
+
var { tooltipLabel, isChatbotVisible, onToggleChatbot, tooltipProps, toggleButtonLabel, closedToggleIcon: ClosedToggleIcon, innerRef, isRound = true, className, openIconTestId, colorVariant = 'default' } = _a, props = __rest(_a, ["tooltipLabel", "isChatbotVisible", "onToggleChatbot", "tooltipProps", "toggleButtonLabel", "closedToggleIcon", "innerRef", "isRound", "className", "openIconTestId", "colorVariant"]);
|
|
19
19
|
// Configure icon
|
|
20
20
|
const closedIcon = ClosedToggleIcon ? _jsx(ClosedToggleIcon, {}) : _jsx(ChatIcon, {});
|
|
21
|
-
const icon = isChatbotVisible ? _jsx(
|
|
21
|
+
const icon = isChatbotVisible ? _jsx(RhMicronsCaretDownIcon, { "data-testid": openIconTestId }) : closedIcon;
|
|
22
22
|
return (_jsx(Tooltip, Object.assign({ content: tooltipLabel,
|
|
23
23
|
// prevents VO announcements of both aria label and tooltip
|
|
24
|
-
aria: "none" }, tooltipProps, { children: _jsx(Button, Object.assign({ className: `pf-chatbot__button ${isChatbotVisible ? 'pf-chatbot__button--active' : ''} ${isRound ? 'pf-chatbot__button--round' : ''} ${className ? className : ''}`, variant: "plain", "aria-label": toggleButtonLabel || `${tooltipLabel} toggle`, onClick: onToggleChatbot, "aria-expanded": isChatbotVisible, icon: _jsx(Icon, { isInline: true, children: icon }), ref: innerRef }, props)) })));
|
|
24
|
+
aria: "none" }, tooltipProps, { children: _jsx(Button, Object.assign({ className: `pf-chatbot__button ${colorVariant === 'secondary' ? 'pf-chatbot__button--secondary' : ''} ${isChatbotVisible ? 'pf-chatbot__button--active' : ''} ${isRound ? 'pf-chatbot__button--round' : ''} ${className ? className : ''}`, variant: "plain", "aria-label": toggleButtonLabel || `${tooltipLabel} toggle`, onClick: onToggleChatbot, "aria-expanded": isChatbotVisible, icon: _jsx(Icon, { isInline: true, children: icon }), ref: innerRef }, props)) })));
|
|
25
25
|
};
|
|
26
26
|
const ChatbotToggle = forwardRef((props, ref) => (_jsx(ChatbotToggleBase, Object.assign({ innerRef: ref }, props))));
|
|
27
27
|
export default ChatbotToggle;
|
|
@@ -52,4 +52,8 @@ describe('ChatbotToggle', () => {
|
|
|
52
52
|
expect(screen.getByRole('button')).toHaveClass('pf-chatbot__button');
|
|
53
53
|
expect(screen.getByRole('button')).toHaveClass('test');
|
|
54
54
|
});
|
|
55
|
+
it('should handle colorVariant secondary correctly', () => {
|
|
56
|
+
render(_jsx(ChatbotToggle, { tooltipLabel: "Chatbot", colorVariant: "secondary" }));
|
|
57
|
+
expect(screen.getByRole('button')).toHaveClass('pf-chatbot__button--secondary');
|
|
58
|
+
});
|
|
55
59
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/chatbot",
|
|
3
|
-
"version": "6.7.0-prerelease.
|
|
3
|
+
"version": "6.7.0-prerelease.3",
|
|
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",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@patternfly/react-code-editor": "^6.1.0",
|
|
37
37
|
"@patternfly/react-core": "^6.1.0",
|
|
38
|
-
"@patternfly/react-icons": "^6.1
|
|
38
|
+
"@patternfly/react-icons": "^6.5.1",
|
|
39
39
|
"@patternfly/react-styles": "^6.1.0",
|
|
40
40
|
"@patternfly/react-table": "^6.1.0",
|
|
41
41
|
"@segment/analytics-next": "^1.76.0",
|
|
@@ -8,7 +8,7 @@ export const ChatbotFooterExample: FunctionComponent = () => {
|
|
|
8
8
|
return (
|
|
9
9
|
<ChatbotFooter>
|
|
10
10
|
<MessageBar onSendMessage={handleSend} hasMicrophoneButton hasAttachButton />
|
|
11
|
-
<ChatbotFootnote label="
|
|
11
|
+
<ChatbotFootnote label="Always review AI-generated content prior to use." />
|
|
12
12
|
</ChatbotFooter>
|
|
13
13
|
);
|
|
14
14
|
};
|
|
@@ -2,25 +2,31 @@ import { FunctionComponent } from 'react';
|
|
|
2
2
|
import { ChatbotFootnote } from '@patternfly/chatbot/dist/dynamic/ChatbotFooter';
|
|
3
3
|
|
|
4
4
|
export const FootnoteDemo: FunctionComponent = () => (
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
5
|
+
<>
|
|
6
|
+
<h4>Static text</h4>
|
|
7
|
+
<ChatbotFootnote label="Always review AI-generated content prior to use." />
|
|
8
|
+
<br />
|
|
9
|
+
<h4>With popover</h4>
|
|
10
|
+
<ChatbotFootnote
|
|
11
|
+
label="Always review AI-generated content prior to use."
|
|
12
|
+
popover={{
|
|
13
|
+
title: 'Verify information',
|
|
14
|
+
description: `While ChatBot strives for accuracy, AI is experimental and can make mistakes. We cannot guarantee that all information provided by ChatBot is up to date or without error. You should always verify responses using reliable sources, especially for crucial information and decision making.`,
|
|
15
|
+
bannerImage: {
|
|
16
|
+
src: 'https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif',
|
|
17
|
+
alt: 'Example image for footnote popover'
|
|
18
|
+
},
|
|
19
|
+
cta: {
|
|
20
|
+
label: 'Dismiss',
|
|
21
|
+
onClick: () => {
|
|
22
|
+
alert('Do something!');
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
link: {
|
|
26
|
+
label: 'View AI policy',
|
|
27
|
+
url: 'https://www.redhat.com/'
|
|
18
28
|
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
url: 'https://www.redhat.com/'
|
|
23
|
-
}
|
|
24
|
-
}}
|
|
25
|
-
/>
|
|
29
|
+
}}
|
|
30
|
+
/>
|
|
31
|
+
</>
|
|
26
32
|
);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FunctionComponent, useState } from 'react';
|
|
2
|
+
import ChatbotToggle from '@patternfly/chatbot/dist/dynamic/ChatbotToggle';
|
|
3
|
+
|
|
4
|
+
export const SecondaryChatbotToggle: FunctionComponent = () => {
|
|
5
|
+
const [chatbotVisible, setChatbotVisible] = useState<boolean>(false);
|
|
6
|
+
|
|
7
|
+
return (
|
|
8
|
+
<ChatbotToggle
|
|
9
|
+
tooltipLabel="Virtual assistant"
|
|
10
|
+
isChatbotVisible={chatbotVisible}
|
|
11
|
+
onToggleChatbot={() => setChatbotVisible(!chatbotVisible)}
|
|
12
|
+
colorVariant="secondary"
|
|
13
|
+
/>
|
|
14
|
+
);
|
|
15
|
+
};
|
|
@@ -165,6 +165,14 @@ To allow users to open and close the ChatBot window as needed, add a toggle.
|
|
|
165
165
|
|
|
166
166
|
```
|
|
167
167
|
|
|
168
|
+
### Secondary color toggle
|
|
169
|
+
|
|
170
|
+
Use `colorVariant="secondary"` for a light gray toggle with a default border. This is useful when the floating default style does not match the surrounding UI.
|
|
171
|
+
|
|
172
|
+
```js file="./SecondaryChatbotToggle.tsx" isFullscreen
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
|
|
168
176
|
### Custom toggle icon
|
|
169
177
|
|
|
170
178
|
A custom icon can be passed to the toggle. To ensure the icon is visible in both light and dark themes, use an SVG image and set `fill="currentColor"`.
|
|
@@ -240,10 +248,11 @@ In this example, select the respective checkbox to toggle these features:
|
|
|
240
248
|
|
|
241
249
|
## Footer
|
|
242
250
|
|
|
243
|
-
### Footnote
|
|
251
|
+
### Footnote
|
|
252
|
+
|
|
253
|
+
A `<ChatbotFootnote>` can be placed in the ChatBot footer to communicate any legal disclaimers or information about the ChatBot.
|
|
244
254
|
|
|
245
|
-
|
|
246
|
-
Footnotes can be static text or a button that opens a popover.
|
|
255
|
+
To create a static text footnote, pass the `label` property. To create a footnote button that triggers a popover, pass in both the `label` and `popover` properties.
|
|
247
256
|
|
|
248
257
|
```js file="./ChatbotFootnote.tsx"
|
|
249
258
|
|
|
@@ -37,25 +37,7 @@ import '@patternfly/react-core/dist/styles/base.css';
|
|
|
37
37
|
import '@patternfly/chatbot/dist/css/main.css';
|
|
38
38
|
|
|
39
39
|
const footnoteProps = {
|
|
40
|
-
label: '
|
|
41
|
-
popover: {
|
|
42
|
-
title: 'Verify information',
|
|
43
|
-
description: `While ChatBot strives for accuracy, AI is experimental and can make mistakes. We cannot guarantee that all information provided by ChatBot is up to date or without error. You should always verify responses using reliable sources, especially for crucial information and decision making.`,
|
|
44
|
-
bannerImage: {
|
|
45
|
-
src: 'https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif',
|
|
46
|
-
alt: 'Example image for footnote popover'
|
|
47
|
-
},
|
|
48
|
-
cta: {
|
|
49
|
-
label: 'Dismiss',
|
|
50
|
-
onClick: () => {
|
|
51
|
-
alert('Do something!');
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
link: {
|
|
55
|
-
label: 'View AI policy',
|
|
56
|
-
url: 'https://www.redhat.com/'
|
|
57
|
-
}
|
|
58
|
-
}
|
|
40
|
+
label: 'Always review AI-generated content prior to use.'
|
|
59
41
|
};
|
|
60
42
|
|
|
61
43
|
const markdown = `A paragraph with *emphasis* and **strong importance**.
|
|
@@ -273,7 +273,7 @@ export const BasicDemo: FunctionComponent = () => {
|
|
|
273
273
|
}}
|
|
274
274
|
onAttachRejected={handleAttachRejected}
|
|
275
275
|
/>
|
|
276
|
-
<ChatbotFootnote label="
|
|
276
|
+
<ChatbotFootnote label="Always review AI-generated content prior to use." />
|
|
277
277
|
</ChatbotFooter>
|
|
278
278
|
</FileDropZone>
|
|
279
279
|
</Chatbot>
|
|
@@ -262,7 +262,7 @@ export const AttachmentMenuDemo: FunctionComponent = () => {
|
|
|
262
262
|
onAttachMenuToggleClick: onToggleClick
|
|
263
263
|
}}
|
|
264
264
|
/>
|
|
265
|
-
<ChatbotFootnote label="
|
|
265
|
+
<ChatbotFootnote label="Always review AI-generated content prior to use." />
|
|
266
266
|
</ChatbotFooter>
|
|
267
267
|
</>
|
|
268
268
|
</FileDropZone>
|
|
@@ -33,25 +33,7 @@ import userAvatar from '../Messages/user_avatar.svg';
|
|
|
33
33
|
import patternflyAvatar from '../Messages/patternfly_avatar.jpg';
|
|
34
34
|
|
|
35
35
|
const footnoteProps = {
|
|
36
|
-
label: '
|
|
37
|
-
popover: {
|
|
38
|
-
title: 'Verify information',
|
|
39
|
-
description: `While ChatBot strives for accuracy, AI is experimental and can make mistakes. We cannot guarantee that all information provided by ChatBot is up to date or without error. You should always verify responses using reliable sources, especially for crucial information and decision making.`,
|
|
40
|
-
bannerImage: {
|
|
41
|
-
src: 'https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif',
|
|
42
|
-
alt: 'Example image for footnote popover'
|
|
43
|
-
},
|
|
44
|
-
cta: {
|
|
45
|
-
label: 'Dismiss',
|
|
46
|
-
onClick: () => {
|
|
47
|
-
alert('Do something!');
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
link: {
|
|
51
|
-
label: 'View AI policy',
|
|
52
|
-
url: 'https://www.redhat.com/'
|
|
53
|
-
}
|
|
54
|
-
}
|
|
36
|
+
label: 'Always review AI-generated content prior to use.'
|
|
55
37
|
};
|
|
56
38
|
|
|
57
39
|
const markdown = `A paragraph with *emphasis* and **strong importance**.
|
|
@@ -53,25 +53,7 @@ import '@patternfly/react-core/dist/styles/base.css';
|
|
|
53
53
|
import '@patternfly/chatbot/dist/css/main.css';
|
|
54
54
|
|
|
55
55
|
const footnoteProps = {
|
|
56
|
-
label: '
|
|
57
|
-
popover: {
|
|
58
|
-
title: 'Verify accuracy',
|
|
59
|
-
description: `While ChatBot strives for accuracy, there's always a possibility of errors. It's a good practice to verify critical information from reliable sources, especially if it's crucial for decision-making or actions.`,
|
|
60
|
-
bannerImage: {
|
|
61
|
-
src: 'https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif',
|
|
62
|
-
alt: 'Example image for footnote popover'
|
|
63
|
-
},
|
|
64
|
-
cta: {
|
|
65
|
-
label: 'Got it',
|
|
66
|
-
onClick: () => {
|
|
67
|
-
alert('Do something!');
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
link: {
|
|
71
|
-
label: 'Learn more',
|
|
72
|
-
url: 'https://www.redhat.com/'
|
|
73
|
-
}
|
|
74
|
-
}
|
|
56
|
+
label: 'Always review AI-generated content prior to use.'
|
|
75
57
|
};
|
|
76
58
|
|
|
77
59
|
const markdown = `A paragraph with *emphasis* and **strong importance**.`;
|
|
@@ -46,25 +46,7 @@ import '@patternfly/react-core/dist/styles/base.css';
|
|
|
46
46
|
import '@patternfly/chatbot/dist/css/main.css';
|
|
47
47
|
|
|
48
48
|
const footnoteProps = {
|
|
49
|
-
label: '
|
|
50
|
-
popover: {
|
|
51
|
-
title: 'Verify accuracy',
|
|
52
|
-
description: `While ChatBot strives for accuracy, there's always a possibility of errors. It's a good practice to verify critical information from reliable sources, especially if it's crucial for decision-making or actions.`,
|
|
53
|
-
bannerImage: {
|
|
54
|
-
src: 'https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif',
|
|
55
|
-
alt: 'Example image for footnote popover'
|
|
56
|
-
},
|
|
57
|
-
cta: {
|
|
58
|
-
label: 'Got it',
|
|
59
|
-
onClick: () => {
|
|
60
|
-
alert('Do something!');
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
link: {
|
|
64
|
-
label: 'Learn more',
|
|
65
|
-
url: 'https://www.redhat.com/'
|
|
66
|
-
}
|
|
67
|
-
}
|
|
49
|
+
label: 'Always review AI-generated content prior to use.'
|
|
68
50
|
};
|
|
69
51
|
|
|
70
52
|
const markdown = `A paragraph with *emphasis* and **strong importance**.
|
|
@@ -36,25 +36,7 @@ import '@patternfly/react-core/dist/styles/base.css';
|
|
|
36
36
|
import '@patternfly/chatbot/dist/css/main.css';
|
|
37
37
|
|
|
38
38
|
const footnoteProps = {
|
|
39
|
-
label: '
|
|
40
|
-
popover: {
|
|
41
|
-
title: 'Verify information',
|
|
42
|
-
description: `While ChatBot strives for accuracy, AI is experimental and can make mistakes. We cannot guarantee that all information provided by ChatBot is up to date or without error. You should always verify responses using reliable sources, especially for crucial information and decision making.`,
|
|
43
|
-
bannerImage: {
|
|
44
|
-
src: 'https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif',
|
|
45
|
-
alt: 'Example image for footnote popover'
|
|
46
|
-
},
|
|
47
|
-
cta: {
|
|
48
|
-
label: 'Dismiss',
|
|
49
|
-
onClick: () => {
|
|
50
|
-
alert('Do something!');
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
link: {
|
|
54
|
-
label: 'View AI policy',
|
|
55
|
-
url: 'https://www.redhat.com/'
|
|
56
|
-
}
|
|
57
|
-
}
|
|
39
|
+
label: 'Always review AI-generated content prior to use.'
|
|
58
40
|
};
|
|
59
41
|
|
|
60
42
|
const markdown = `A paragraph with *emphasis* and **strong importance**.
|
|
@@ -36,25 +36,7 @@ import '@patternfly/chatbot/dist/css/main.css';
|
|
|
36
36
|
import saveAs from 'file-saver';
|
|
37
37
|
|
|
38
38
|
const footnoteProps = {
|
|
39
|
-
label: '
|
|
40
|
-
popover: {
|
|
41
|
-
title: 'Verify information',
|
|
42
|
-
description: `While ChatBot strives for accuracy, AI is experimental and can make mistakes. We cannot guarantee that all information provided by ChatBot is up to date or without error. You should always verify responses using reliable sources, especially for crucial information and decision making.`,
|
|
43
|
-
bannerImage: {
|
|
44
|
-
src: 'https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif',
|
|
45
|
-
alt: 'Example image for footnote popover'
|
|
46
|
-
},
|
|
47
|
-
cta: {
|
|
48
|
-
label: 'Dismiss',
|
|
49
|
-
onClick: () => {
|
|
50
|
-
alert('Do something!');
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
link: {
|
|
54
|
-
label: 'View AI policy',
|
|
55
|
-
url: 'https://www.redhat.com/'
|
|
56
|
-
}
|
|
57
|
-
}
|
|
39
|
+
label: 'Always review AI-generated content prior to use.'
|
|
58
40
|
};
|
|
59
41
|
|
|
60
42
|
const markdown = `A paragraph with *emphasis* and **strong importance**.
|
|
@@ -44,25 +44,7 @@ import '@patternfly/react-core/dist/styles/base.css';
|
|
|
44
44
|
import '@patternfly/chatbot/dist/css/main.css';
|
|
45
45
|
|
|
46
46
|
const footnoteProps = {
|
|
47
|
-
label: '
|
|
48
|
-
popover: {
|
|
49
|
-
title: 'Verify information',
|
|
50
|
-
description: `While ChatBot strives for accuracy, AI is experimental and can make mistakes. We cannot guarantee that all information provided by ChatBot is up to date or without error. You should always verify responses using reliable sources, especially for crucial information and decision making.`,
|
|
51
|
-
bannerImage: {
|
|
52
|
-
src: 'https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif',
|
|
53
|
-
alt: 'Example image for footnote popover'
|
|
54
|
-
},
|
|
55
|
-
cta: {
|
|
56
|
-
label: 'Dismiss',
|
|
57
|
-
onClick: () => {
|
|
58
|
-
alert('Do something!');
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
link: {
|
|
62
|
-
label: 'View AI policy',
|
|
63
|
-
url: 'https://www.redhat.com/'
|
|
64
|
-
}
|
|
65
|
-
}
|
|
47
|
+
label: 'Always review AI-generated content prior to use.'
|
|
66
48
|
};
|
|
67
49
|
|
|
68
50
|
const markdown = `A paragraph with *emphasis* and **strong importance**.
|
|
@@ -44,25 +44,7 @@ import '@patternfly/react-core/dist/styles/base.css';
|
|
|
44
44
|
import '@patternfly/chatbot/dist/css/main.css';
|
|
45
45
|
|
|
46
46
|
const footnoteProps = {
|
|
47
|
-
label: '
|
|
48
|
-
popover: {
|
|
49
|
-
title: 'Verify information',
|
|
50
|
-
description: `While ChatBot strives for accuracy, AI is experimental and can make mistakes. We cannot guarantee that all information provided by ChatBot is up to date or without error. You should always verify responses using reliable sources, especially for crucial information and decision making.`,
|
|
51
|
-
bannerImage: {
|
|
52
|
-
src: 'https://cdn.dribbble.com/userupload/10651749/file/original-8a07b8e39d9e8bf002358c66fce1223e.gif',
|
|
53
|
-
alt: 'Example image for footnote popover'
|
|
54
|
-
},
|
|
55
|
-
cta: {
|
|
56
|
-
label: 'Dismiss',
|
|
57
|
-
onClick: () => {
|
|
58
|
-
alert('Do something!');
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
link: {
|
|
62
|
-
label: 'View AI policy',
|
|
63
|
-
url: 'https://www.redhat.com/'
|
|
64
|
-
}
|
|
65
|
-
}
|
|
47
|
+
label: 'Always review AI-generated content prior to use.'
|
|
66
48
|
};
|
|
67
49
|
|
|
68
50
|
const markdown = `A paragraph with *emphasis* and **strong importance**.
|
|
@@ -5,15 +5,8 @@
|
|
|
5
5
|
import type { HTMLProps, FunctionComponent } from 'react';
|
|
6
6
|
|
|
7
7
|
import { useState } from 'react';
|
|
8
|
-
|
|
9
|
-
// Import Patternfly components
|
|
10
8
|
import { Button, Content, ContentVariants, Flex, PopoverProps } from '@patternfly/react-core';
|
|
11
|
-
|
|
12
|
-
// Import Patternfly icons
|
|
13
|
-
import { InfoCircleIcon } from '@patternfly/react-icons/dist/esm/icons/info-circle-icon';
|
|
14
9
|
import { ExternalLinkAltIcon } from '@patternfly/react-icons/dist/esm/icons/external-link-alt-icon';
|
|
15
|
-
|
|
16
|
-
// Import Chatbot components
|
|
17
10
|
import ChatbotPopover from '../ChatbotPopover/ChatbotPopover';
|
|
18
11
|
|
|
19
12
|
export interface ChatbotFootnoteProps extends Omit<HTMLProps<HTMLDivElement>, 'popover'> {
|
|
@@ -38,6 +31,10 @@ export interface ChatbotFootnotePopover {
|
|
|
38
31
|
link?: ChatbotFootnotePopoverLink;
|
|
39
32
|
/** Props for PF Popover */
|
|
40
33
|
popoverProps?: PopoverProps;
|
|
34
|
+
/** Flag indicating whether the popover close button is rendered. Either this or a cta that closes the popover
|
|
35
|
+
* must be present.
|
|
36
|
+
*/
|
|
37
|
+
showClose?: boolean;
|
|
41
38
|
}
|
|
42
39
|
|
|
43
40
|
export interface ChatbotFootnotePopoverCTA {
|
|
@@ -66,10 +63,15 @@ export const ChatbotFootnote: FunctionComponent<ChatbotFootnoteProps> = ({
|
|
|
66
63
|
className,
|
|
67
64
|
...props
|
|
68
65
|
}: ChatbotFootnoteProps) => {
|
|
69
|
-
|
|
66
|
+
if (!popover?.cta && !popover?.showClose) {
|
|
67
|
+
// eslint-disable-next-line no-console
|
|
68
|
+
console.error(
|
|
69
|
+
'ChatbotFootnote: You must provide either the popover.cta or popover.showClose props in order to render a button that can close the popover.'
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
|
|
70
73
|
const [isVisible, setIsVisible] = useState<boolean>(false);
|
|
71
74
|
|
|
72
|
-
// Define popover body content
|
|
73
75
|
const popoverBodyContent = (
|
|
74
76
|
<>
|
|
75
77
|
{popover?.bannerImage && <img src={popover.bannerImage.src} alt={popover.bannerImage.alt} />}
|
|
@@ -121,11 +123,11 @@ export const ChatbotFootnote: FunctionComponent<ChatbotFootnoteProps> = ({
|
|
|
121
123
|
minWidth={popover.popoverProps?.minWidth || '432'}
|
|
122
124
|
maxWidth={popover.popoverProps?.maxWidth || '432'}
|
|
123
125
|
distance={popover.popoverProps?.distance || 16}
|
|
124
|
-
showClose={false}
|
|
126
|
+
showClose={popover?.showClose || false}
|
|
125
127
|
{...popover.popoverProps}
|
|
126
128
|
>
|
|
127
|
-
<Button variant="link" size="sm">
|
|
128
|
-
{label}
|
|
129
|
+
<Button aria-haspopup="dialog" isExpanded={isVisible} variant="link" size="sm">
|
|
130
|
+
{label}
|
|
129
131
|
</Button>
|
|
130
132
|
</ChatbotPopover>
|
|
131
133
|
)}
|
|
@@ -5,14 +5,17 @@
|
|
|
5
5
|
position: fixed;
|
|
6
6
|
inset-block-end: var(--pf-t--global--spacer--md);
|
|
7
7
|
inset-inline-end: var(--pf-t--global--spacer--md);
|
|
8
|
-
|
|
9
|
-
--pf-v6-c-
|
|
8
|
+
--pf-v6-c-button--m-plain--BackgroundColor: var(--pf-t--global--background--color--floating--default);
|
|
9
|
+
--pf-v6-c-button--m-plain--hover--BackgroundColor: var(--pf-t--global--background--color--floating--hover);
|
|
10
|
+
--pf-v6-c-button--m-plain--m-clicked--BackgroundColor: var(--pf-t--global--background--color--floating--clicked);
|
|
11
|
+
--pf-v6-c-button--m-plain--BorderColor: var(--pf-t--global--border--color--default);
|
|
12
|
+
--pf-v6-c-button--m-plain--hover--BorderColor: var(--pf-t--global--border--color--default);
|
|
13
|
+
--pf-v6-c-button--m-plain--m-clicked--BorderColor: var(--pf-t--global--border--color--default);
|
|
14
|
+
--pf-v6-c-button--m-plain--BorderWidth: 1px;
|
|
15
|
+
--pf-v6-c-button--m-plain--hover--BorderWidth: 1px;
|
|
16
|
+
--pf-v6-c-button--m-plain--m-clicked--BorderWidth: 1px;
|
|
10
17
|
padding: var(--pf-t--global--spacer--md);
|
|
11
|
-
|
|
12
|
-
&:hover,
|
|
13
|
-
&:focus {
|
|
14
|
-
background-color: var(--pf-t--color--gray--70);
|
|
15
|
-
}
|
|
18
|
+
box-shadow: var(--pf-t--global--box-shadow--sm);
|
|
16
19
|
|
|
17
20
|
.pf-v6-c-button__icon {
|
|
18
21
|
display: contents;
|
|
@@ -23,6 +26,20 @@
|
|
|
23
26
|
width: var(--pf-t--global--spacer--lg);
|
|
24
27
|
height: var(--pf-t--global--spacer--lg);
|
|
25
28
|
}
|
|
29
|
+
|
|
30
|
+
&--active {
|
|
31
|
+
--pf-v6-c-button--m-plain--BackgroundColor: var(--pf-t--global--background--color--floating--clicked);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&--secondary {
|
|
35
|
+
--pf-v6-c-button--m-plain--BackgroundColor: var(--pf-t--global--background--color--secondary--default);
|
|
36
|
+
--pf-v6-c-button--m-plain--hover--BackgroundColor: var(--pf-t--global--background--color--secondary--hover);
|
|
37
|
+
--pf-v6-c-button--m-plain--m-clicked--BackgroundColor: var(--pf-t--global--background--color--secondary--clicked);
|
|
38
|
+
|
|
39
|
+
&.pf-chatbot__button--active {
|
|
40
|
+
--pf-v6-c-button--m-plain--BackgroundColor: var(--pf-t--global--background--color--secondary--clicked);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
26
43
|
}
|
|
27
44
|
|
|
28
45
|
.pf-chatbot__button--round {
|
|
@@ -43,4 +43,8 @@ describe('ChatbotToggle', () => {
|
|
|
43
43
|
expect(screen.getByRole('button')).toHaveClass('pf-chatbot__button');
|
|
44
44
|
expect(screen.getByRole('button')).toHaveClass('test');
|
|
45
45
|
});
|
|
46
|
+
it('should handle colorVariant secondary correctly', () => {
|
|
47
|
+
render(<ChatbotToggle tooltipLabel="Chatbot" colorVariant="secondary" />);
|
|
48
|
+
expect(screen.getByRole('button')).toHaveClass('pf-chatbot__button--secondary');
|
|
49
|
+
});
|
|
46
50
|
});
|
|
@@ -5,7 +5,7 @@ import type { Ref, FunctionComponent } from 'react';
|
|
|
5
5
|
|
|
6
6
|
import { forwardRef } from 'react';
|
|
7
7
|
import { Button, ButtonProps, Tooltip, TooltipProps, Icon } from '@patternfly/react-core';
|
|
8
|
-
import
|
|
8
|
+
import RhMicronsCaretDownIcon from '@patternfly/react-icons/dist/esm/icons/rh-microns-caret-down-icon';
|
|
9
9
|
|
|
10
10
|
export interface ChatbotToggleProps extends ButtonProps {
|
|
11
11
|
/** Contents of the tooltip applied to the toggle button */
|
|
@@ -28,24 +28,23 @@ export interface ChatbotToggleProps extends ButtonProps {
|
|
|
28
28
|
className?: string;
|
|
29
29
|
/** Test id applied to default open icon */
|
|
30
30
|
openIconTestId?: string;
|
|
31
|
+
/** Color variant applied to the toggle button */
|
|
32
|
+
colorVariant?: 'default' | 'secondary';
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
const ChatIcon = () => (
|
|
34
|
-
<svg xmlns="http://www.w3.org/2000/svg"
|
|
35
|
-
<
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
strokeWidth=".75"
|
|
47
|
-
d="M22.301 9.135h-3.963a.489.489 0 0 0-.492.491c0 .27.222.492.492.492h3.472v7.737h-1.88a.404.404 0 0 0-.348.134.492.492 0 0 0-.143.35v1.973l-2.322-2.323a.492.492 0 0 0-.349-.142H8.532v-4.265a.489.489 0 0 0-.492-.492.494.494 0 0 0-.491.492v4.756c0 .277.222.492.491.492h8.514l3.028 3.028a.492.492 0 0 0 .349.142l.19-.04a.502.502 0 0 0 .31-.459V18.83h1.878c.111-.008.262-.048.349-.135a.491.491 0 0 0 .142-.349v-8.72a.489.489 0 0 0-.491-.491h-.008Z"
|
|
48
|
-
/>
|
|
36
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="33" height="31" viewBox="0 0 33 31" fill="none">
|
|
37
|
+
<g clipPath="url(#clip0_11685_20917)">
|
|
38
|
+
<path
|
|
39
|
+
d="M29.7 11.0714H17.6V7.75H19.525C20.2834 7.75 20.9 7.12939 20.9 6.36607V1.38393C20.9 0.620609 20.2834 0 19.525 0H13.475C12.7166 0 12.1 0.620609 12.1 1.38393V6.36607C12.1 7.12939 12.7166 7.75 13.475 7.75H15.4V11.0714H3.3C1.48027 11.0714 0 12.5613 0 14.3929V27.6786C0 29.5101 1.48027 31 3.3 31H29.7C31.5197 31 33 29.5101 33 27.6786V14.3929C33 12.5613 31.5197 11.0714 29.7 11.0714ZM14.3 2.21429H18.7V5.53571H14.3V2.21429ZM30.8 27.6786C30.8 28.2894 30.3069 28.7857 29.7 28.7857H3.3C2.6936 28.7857 2.2 28.2894 2.2 27.6786V14.3929C2.2 13.7825 2.6936 13.2857 3.3 13.2857H29.7C30.3069 13.2857 30.8 13.7825 30.8 14.3929V27.6786ZM8.525 17.7143V19.9286C8.525 20.387 8.15547 20.7589 7.7 20.7589H5.5C5.04453 20.7589 4.675 20.387 4.675 19.9286V17.7143C4.675 17.2559 5.04453 16.8839 5.5 16.8839H7.7C8.15547 16.8839 8.525 17.2559 8.525 17.7143ZM28.325 17.7143V19.9286C28.325 20.387 27.9555 20.7589 27.5 20.7589H25.3C24.8445 20.7589 24.475 20.387 24.475 19.9286V17.7143C24.475 17.2559 24.8445 16.8839 25.3 16.8839H27.5C27.9555 16.8839 28.325 17.2559 28.325 17.7143ZM20.5691 22.6683C20.8893 23.0965 20.8033 23.703 20.3779 24.0241C19.2521 24.8761 17.9115 25.3259 16.5 25.3259C15.0885 25.3259 13.7473 24.8761 12.6215 24.0241C12.1961 23.703 12.1107 23.0965 12.4298 22.6683C12.7494 22.2391 13.3536 22.1526 13.7774 22.4759C15.3576 23.6695 17.6408 23.6695 19.2221 22.4759C19.6475 22.1515 20.2512 22.2402 20.5691 22.6683Z"
|
|
40
|
+
fill="currentColor"
|
|
41
|
+
/>
|
|
42
|
+
</g>
|
|
43
|
+
<defs>
|
|
44
|
+
<clipPath id="clip0_11685_20917">
|
|
45
|
+
<rect width="33" height="31" fill="currentColor" />
|
|
46
|
+
</clipPath>
|
|
47
|
+
</defs>
|
|
49
48
|
</svg>
|
|
50
49
|
);
|
|
51
50
|
|
|
@@ -60,11 +59,12 @@ const ChatbotToggleBase: FunctionComponent<ChatbotToggleProps> = ({
|
|
|
60
59
|
isRound = true,
|
|
61
60
|
className,
|
|
62
61
|
openIconTestId,
|
|
62
|
+
colorVariant = 'default',
|
|
63
63
|
...props
|
|
64
64
|
}: ChatbotToggleProps) => {
|
|
65
65
|
// Configure icon
|
|
66
66
|
const closedIcon = ClosedToggleIcon ? <ClosedToggleIcon /> : <ChatIcon />;
|
|
67
|
-
const icon = isChatbotVisible ? <
|
|
67
|
+
const icon = isChatbotVisible ? <RhMicronsCaretDownIcon data-testid={openIconTestId} /> : closedIcon;
|
|
68
68
|
|
|
69
69
|
return (
|
|
70
70
|
<Tooltip
|
|
@@ -74,7 +74,7 @@ const ChatbotToggleBase: FunctionComponent<ChatbotToggleProps> = ({
|
|
|
74
74
|
{...tooltipProps}
|
|
75
75
|
>
|
|
76
76
|
<Button
|
|
77
|
-
className={`pf-chatbot__button ${isChatbotVisible ? 'pf-chatbot__button--active' : ''} ${isRound ? 'pf-chatbot__button--round' : ''} ${className ? className : ''}`}
|
|
77
|
+
className={`pf-chatbot__button ${colorVariant === 'secondary' ? 'pf-chatbot__button--secondary' : ''} ${isChatbotVisible ? 'pf-chatbot__button--active' : ''} ${isRound ? 'pf-chatbot__button--round' : ''} ${className ? className : ''}`}
|
|
78
78
|
variant="plain"
|
|
79
79
|
aria-label={toggleButtonLabel || `${tooltipLabel} toggle`}
|
|
80
80
|
onClick={onToggleChatbot}
|
|
@@ -20,12 +20,24 @@ exports[`LoadingMessage should render loading message 1`] = `
|
|
|
20
20
|
fill="currentColor"
|
|
21
21
|
height="1em"
|
|
22
22
|
role="img"
|
|
23
|
-
viewBox="0 0 640 512"
|
|
24
23
|
width="1em"
|
|
25
24
|
>
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
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>
|
|
29
41
|
</svg>
|
|
30
42
|
</span>
|
|
31
43
|
</span>
|