@patternfly/chatbot 6.8.0-prerelease.5 → 6.8.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/FileDetailsLabel/FileDetailsLabel.js +1 -1
- package/dist/cjs/ImagePreview/ImagePreview.js +1 -1
- package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.js +1 -2
- package/dist/cjs/Message/Message.test.js +1 -1
- package/dist/cjs/Message/QuickResponse/QuickResponse.js +1 -1
- package/dist/cjs/Message/QuickStarts/QuickStartTile.js +4 -6
- package/dist/cjs/MessageBar/AttachButton.js +2 -2
- package/dist/cjs/MessageBar/MicrophoneButton.js +2 -4
- package/dist/cjs/MessageBox/JumpButton.js +2 -4
- package/dist/esm/FileDetailsLabel/FileDetailsLabel.js +2 -2
- package/dist/esm/ImagePreview/ImagePreview.js +2 -2
- package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.js +2 -3
- package/dist/esm/Message/Message.test.js +1 -1
- package/dist/esm/Message/QuickResponse/QuickResponse.js +2 -2
- package/dist/esm/Message/QuickStarts/QuickStartTile.js +4 -6
- package/dist/esm/MessageBar/AttachButton.js +2 -2
- package/dist/esm/MessageBar/MicrophoneButton.js +2 -4
- package/dist/esm/MessageBox/JumpButton.js +2 -4
- package/package.json +2 -6
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/explore-pipeline-quickstart.ts +0 -3
- package/src/FileDetailsLabel/FileDetailsLabel.tsx +2 -2
- package/src/ImagePreview/ImagePreview.tsx +6 -2
- package/src/Message/CodeBlockMessage/CodeBlockMessage.tsx +2 -3
- package/src/Message/Message.test.tsx +6 -1
- package/src/Message/QuickResponse/QuickResponse.tsx +2 -2
- package/src/Message/QuickStarts/QuickStartTile.tsx +9 -6
- package/src/MessageBar/AttachButton.tsx +2 -2
- package/src/MessageBar/MicrophoneButton.tsx +2 -7
- package/src/MessageBox/JumpButton.tsx +2 -6
- package/src/index.ts +0 -3
|
@@ -21,7 +21,7 @@ const FileDetails_1 = __importDefault(require("../FileDetails"));
|
|
|
21
21
|
const react_core_2 = require("@patternfly/react-core");
|
|
22
22
|
const react_icons_1 = require("@patternfly/react-icons");
|
|
23
23
|
const FileDetailsLabel = (_a) => {
|
|
24
|
-
var { fileName, fileId, isLoading, onClick, onClose, closeButtonAriaLabel, languageTestId, spinnerTestId, fileSize, hasTruncation = true, closeButtonIcon = (0, jsx_runtime_1.jsx)(react_icons_1.
|
|
24
|
+
var { fileName, fileId, isLoading, onClick, onClose, closeButtonAriaLabel, languageTestId, spinnerTestId, fileSize, hasTruncation = true, closeButtonIcon = (0, jsx_runtime_1.jsx)(react_icons_1.RhMicronsCloseIcon, {}) } = _a, props = __rest(_a, ["fileName", "fileId", "isLoading", "onClick", "onClose", "closeButtonAriaLabel", "languageTestId", "spinnerTestId", "fileSize", "hasTruncation", "closeButtonIcon"]);
|
|
25
25
|
const handleClose = (event) => {
|
|
26
26
|
onClose && onClose(event, fileName, fileId);
|
|
27
27
|
};
|
|
@@ -34,7 +34,7 @@ const ImagePreview = (_a) => {
|
|
|
34
34
|
setPage(newPage);
|
|
35
35
|
onSetPage && onSetPage(_evt, newPage);
|
|
36
36
|
};
|
|
37
|
-
return ((0, jsx_runtime_1.jsxs)(ChatbotModal_1.default, Object.assign({ isOpen: isModalOpen, className: `pf-chatbot__image-preview-modal pf-chatbot__image-preview-modal--${displayMode} ${isCompact ? 'pf-m-compact' : ''} ${className ? className : ''}`, displayMode: displayMode, onClose: handleModalToggle, isCompact: isCompact }, props, { children: [(0, jsx_runtime_1.jsx)(react_core_1.ModalHeader, Object.assign({ title: title }, modalHeaderProps)), (0, jsx_runtime_1.jsx)(react_core_1.ModalBody, Object.assign({ className: "pf-chatbot__image-preview-body" }, modalBodyProps, { children: images.length > 0 && images[page - 1] && ((0, jsx_runtime_1.jsxs)(react_core_1.Stack, { hasGutter: true, className: "pf-chatbot__image-preview-stack", children: [(0, jsx_runtime_1.jsx)(react_core_1.StackItem, { children: (0, jsx_runtime_1.jsx)(FileDetailsLabel_1.default, Object.assign({ fileName: images[page - 1].fileName, fileSize: images[page - 1].fileSize, hasTruncation: false, onClose: onCloseFileDetailsLabel, closeButtonIcon: (0, jsx_runtime_1.jsx)(react_icons_1.
|
|
37
|
+
return ((0, jsx_runtime_1.jsxs)(ChatbotModal_1.default, Object.assign({ isOpen: isModalOpen, className: `pf-chatbot__image-preview-modal pf-chatbot__image-preview-modal--${displayMode} ${isCompact ? 'pf-m-compact' : ''} ${className ? className : ''}`, displayMode: displayMode, onClose: handleModalToggle, isCompact: isCompact }, props, { children: [(0, jsx_runtime_1.jsx)(react_core_1.ModalHeader, Object.assign({ title: title }, modalHeaderProps)), (0, jsx_runtime_1.jsx)(react_core_1.ModalBody, Object.assign({ className: "pf-chatbot__image-preview-body" }, modalBodyProps, { children: images.length > 0 && images[page - 1] && ((0, jsx_runtime_1.jsxs)(react_core_1.Stack, { hasGutter: true, className: "pf-chatbot__image-preview-stack", children: [(0, jsx_runtime_1.jsx)(react_core_1.StackItem, { children: (0, jsx_runtime_1.jsx)(FileDetailsLabel_1.default, Object.assign({ fileName: images[page - 1].fileName, fileSize: images[page - 1].fileSize, hasTruncation: false, onClose: onCloseFileDetailsLabel, closeButtonIcon: (0, jsx_runtime_1.jsx)(react_core_1.Icon, { size: "md", children: (0, jsx_runtime_1.jsx)(react_icons_1.RhUiTrashFillIcon, {}) }) }, fileDetailsLabelProps)) }), (0, jsx_runtime_1.jsx)(react_core_1.StackItem, { children: (0, jsx_runtime_1.jsx)("div", { className: "pf-chatbot__image-preview-body", children: images[page - 1].image }) })] })) })), images.length > 1 && ((0, jsx_runtime_1.jsx)(react_core_1.ModalFooter, { className: "pf-chatbot__image-preview-footer", children: (0, jsx_runtime_1.jsxs)("nav", { className: `pf-chatbot__image-preview-footer-buttons`, "aria-label": paginationAriaLabel, children: [(0, jsx_runtime_1.jsx)(react_core_1.Button, { variant: react_core_1.ButtonVariant.plain, isDisabled: isDisabled || page === 1, "data-action": "previous", onClick: (event) => {
|
|
38
38
|
const newPage = page > 1 ? page - 1 : 1;
|
|
39
39
|
handleNewPage(event, newPage);
|
|
40
40
|
onPreviousClick && onPreviousClick(event, newPage);
|
|
@@ -18,7 +18,6 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
18
18
|
const react_1 = require("react");
|
|
19
19
|
// Import PatternFly components
|
|
20
20
|
const react_core_1 = require("@patternfly/react-core");
|
|
21
|
-
const check_icon_1 = require("@patternfly/react-icons/dist/esm/icons/check-icon");
|
|
22
21
|
const react_styles_1 = require("@patternfly/react-styles");
|
|
23
22
|
const react_icons_1 = require("@patternfly/react-icons");
|
|
24
23
|
const DEFAULT_EXPANDED_TEXT = 'Show less';
|
|
@@ -75,7 +74,7 @@ const CodeBlockMessage = (_a) => {
|
|
|
75
74
|
return ((0, jsx_runtime_1.jsx)("code", Object.assign({}, props, { className: `pf-chatbot__message-inline-code ${isPrimary ? 'pf-m-primary' : ''}`, children: children })));
|
|
76
75
|
}
|
|
77
76
|
// Setup code block header
|
|
78
|
-
const actions = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(react_core_1.CodeBlockAction, { className: "pf-chatbot__message-code-block-default-action", children: [language && (0, jsx_runtime_1.jsx)("div", { className: "pf-chatbot__message-code-block-language", children: language }), (0, jsx_runtime_1.jsx)(react_core_1.Button, { ref: buttonRef, "aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : 'Copy code', variant: "plain", className: "pf-chatbot__button--copy", onClick: (event) => handleCopy(event, children), children: copied ? (0, jsx_runtime_1.jsx)(
|
|
77
|
+
const actions = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(react_core_1.CodeBlockAction, { className: "pf-chatbot__message-code-block-default-action", children: [language && (0, jsx_runtime_1.jsx)("div", { className: "pf-chatbot__message-code-block-language", children: language }), (0, jsx_runtime_1.jsx)(react_core_1.Button, { ref: buttonRef, "aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : 'Copy code', variant: "plain", className: "pf-chatbot__button--copy", onClick: (event) => handleCopy(event, children), children: copied ? (0, jsx_runtime_1.jsx)(react_icons_1.RhMicronsCheckmarkIcon, {}) : (0, jsx_runtime_1.jsx)(react_icons_1.RhUiCopyFillIcon, {}) }), (0, jsx_runtime_1.jsx)(react_core_1.Tooltip, { id: tooltipID, content: "Copy", position: "top", triggerRef: buttonRef })] }), customActions] }));
|
|
79
78
|
return ((0, jsx_runtime_1.jsx)("div", { className: (0, react_styles_1.css)('pf-chatbot__message-code-block', shouldRetainStyles && 'pf-m-markdown'), ref: codeBlockRef, children: (0, jsx_runtime_1.jsxs)(react_core_1.CodeBlock, { actions: actions, children: [(0, jsx_runtime_1.jsx)(react_core_1.CodeBlockCode, { children: (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: isExpandable ? ((0, jsx_runtime_1.jsx)(react_core_1.ExpandableSection, Object.assign({ variant: react_core_1.ExpandableSectionVariant.truncate, isExpanded: isExpanded, isDetached: true, toggleId: toggleId, contentId: contentId }, expandableSectionProps, { children: children }))) : (children) }) }), isExpandable && ((0, jsx_runtime_1.jsx)(react_core_1.ExpandableSectionToggle, Object.assign({ isExpanded: isExpanded, onToggle: onToggle, direction: "up", toggleId: toggleId, contentId: contentId, hasTruncatedContent: true, className: "pf-chatbot__message-code-toggle" }, expandableSectionToggleProps, { children: isExpanded ? finalExpandedText : finalCollapsedText })))] }) }));
|
|
80
79
|
};
|
|
81
80
|
exports.default = CodeBlockMessage;
|
|
@@ -23,7 +23,7 @@ const monitor_sampleapp_quickstart_with_image_1 = require("./QuickStarts/monitor
|
|
|
23
23
|
const rehype_external_links_1 = __importDefault(require("../__mocks__/rehype-external-links"));
|
|
24
24
|
const react_core_1 = require("@patternfly/react-core");
|
|
25
25
|
// Mock the icon components
|
|
26
|
-
jest.mock('@patternfly/react-icons', () => (Object.assign(Object.assign({}, jest.requireActual('@patternfly/react-icons')), { RhUiLikeIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiLikeIcon" }), RhUiLikeFillIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiLikeFillIcon" }), RhUiDislikeIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiDislikeIcon" }), RhUiDislikeFillIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiDislikeFillIcon" }), RhUiCopyIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiCopyIcon" }), RhUiCopyFillIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiCopyFillIcon" }), RhUiEditIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiEditIcon" }), RhUiEditFillIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiEditFillIcon" }), RhUiVolumeUpIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiVolumeUpIcon" }), RhUiVolumeUpFillIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiVolumeUpFillIcon" }), RhUiExportIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiExportIcon" }), RhUiExportFillIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiExportFillIcon" }), RhMicronsInformationFillIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhMicronsInformationFillIcon" }), RhUiBackwardsIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiBackwardsIcon" }), RhMicronsExternalLinkIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhMicronsExternalLinkIcon" }) })));
|
|
26
|
+
jest.mock('@patternfly/react-icons', () => (Object.assign(Object.assign({}, jest.requireActual('@patternfly/react-icons')), { RhUiLikeIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiLikeIcon" }), RhUiLikeFillIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiLikeFillIcon" }), RhUiDislikeIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiDislikeIcon" }), RhUiDislikeFillIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiDislikeFillIcon" }), RhUiCopyIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiCopyIcon" }), RhUiCopyFillIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiCopyFillIcon" }), RhUiEditIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiEditIcon" }), RhUiEditFillIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiEditFillIcon" }), RhUiVolumeUpIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiVolumeUpIcon" }), RhUiVolumeUpFillIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiVolumeUpFillIcon" }), RhUiExportIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiExportIcon" }), RhUiExportFillIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiExportFillIcon" }), RhMicronsInformationFillIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhMicronsInformationFillIcon" }), RhUiBackwardsIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiBackwardsIcon" }), RhMicronsExternalLinkIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhMicronsExternalLinkIcon" }), RhMicronsCheckmarkIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhMicronsCheckmarkIcon" }), RhMicronsCloseIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhMicronsCloseIcon" }), RhUiBookmarkIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiBookmarkIcon" }), RhUiClockIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiClockIcon" }), RhUiRocketFillIcon: () => (0, jsx_runtime_1.jsx)("div", { children: "RhUiRocketFillIcon" }) })));
|
|
27
27
|
const ALL_ACTIONS = [
|
|
28
28
|
{ label: /Good response/i },
|
|
29
29
|
{ label: /Bad response/i },
|
|
@@ -26,7 +26,7 @@ const QuickResponse = ({ quickResponses, quickResponseContainerProps = { numLabe
|
|
|
26
26
|
};
|
|
27
27
|
return ((0, jsx_runtime_1.jsx)(react_core_1.LabelGroup, Object.assign({ className: (0, react_styles_1.css)('pf-chatbot__message-quick-response', quickResponseContainerProps === null || quickResponseContainerProps === void 0 ? void 0 : quickResponseContainerProps.className) }, quickResponseContainerProps, { children: quickResponses.map((_a) => {
|
|
28
28
|
var { id, onClick, content, className } = _a, props = __rest(_a, ["id", "onClick", "content", "className"]);
|
|
29
|
-
return ((0, jsx_runtime_1.jsx)(react_core_1.Label, Object.assign({ variant: id === selectedQuickResponse ? undefined : 'outline', icon: id === selectedQuickResponse ? (0, jsx_runtime_1.jsx)(react_icons_1.
|
|
29
|
+
return ((0, jsx_runtime_1.jsx)(react_core_1.Label, Object.assign({ variant: id === selectedQuickResponse ? undefined : 'outline', icon: id === selectedQuickResponse ? (0, jsx_runtime_1.jsx)(react_icons_1.RhMicronsCheckmarkIcon, {}) : undefined, color: "blue", onClick: () => handleQuickResponseClick(id, onClick), className: (0, react_styles_1.css)(id === selectedQuickResponse && 'pf-chatbot__message-quick-response--selected', className), isCompact: isCompact }, props, { children: content }), id));
|
|
30
30
|
}) })));
|
|
31
31
|
};
|
|
32
32
|
exports.QuickResponse = QuickResponse;
|
|
@@ -5,13 +5,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.QuickStartTile = exports.camelize = void 0;
|
|
7
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
-
const rocket_icon_1 = __importDefault(require("@patternfly/react-icons/dist/js/icons/rocket-icon"));
|
|
9
|
-
const outlined_bookmark_icon_1 = __importDefault(require("@patternfly/react-icons/dist/js/icons/outlined-bookmark-icon"));
|
|
10
8
|
const react_core_1 = require("@patternfly/react-core");
|
|
11
|
-
const outlined_clock_icon_1 = __importDefault(require("@patternfly/react-icons/dist/js/icons/outlined-clock-icon"));
|
|
12
9
|
const QuickStartTileHeader_1 = __importDefault(require("./QuickStartTileHeader"));
|
|
13
10
|
const QuickStartTileDescription_1 = __importDefault(require("./QuickStartTileDescription"));
|
|
14
11
|
const FallbackImg_1 = __importDefault(require("./FallbackImg"));
|
|
12
|
+
const react_icons_1 = require("@patternfly/react-icons");
|
|
15
13
|
const camelize = (str) => str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function (match, index) {
|
|
16
14
|
if (+match === 0) {
|
|
17
15
|
return '';
|
|
@@ -26,7 +24,7 @@ const QuickStartTile = ({ className, quickStart, onClick, onSelectQuickStart, mi
|
|
|
26
24
|
quickStartIcon = (0, jsx_runtime_1.jsx)(react_core_1.Icon, { size: "2xl", children: icon });
|
|
27
25
|
}
|
|
28
26
|
else {
|
|
29
|
-
quickStartIcon = ((0, jsx_runtime_1.jsx)(react_core_1.Icon, { size: "2xl", children: (0, jsx_runtime_1.jsx)(FallbackImg_1.default, { src: icon, alt: "", className: "pfext-catalog-item-icon__img", fallback: (0, jsx_runtime_1.jsx)(
|
|
27
|
+
quickStartIcon = ((0, jsx_runtime_1.jsx)(react_core_1.Icon, { size: "2xl", children: (0, jsx_runtime_1.jsx)(FallbackImg_1.default, { src: icon, alt: "", className: "pfext-catalog-item-icon__img", fallback: (0, jsx_runtime_1.jsx)(react_icons_1.RhUiRocketFillIcon, {}) }) }));
|
|
30
28
|
}
|
|
31
29
|
const onSelect = () => {
|
|
32
30
|
if (!link) {
|
|
@@ -37,11 +35,11 @@ const QuickStartTile = ({ className, quickStart, onClick, onSelectQuickStart, mi
|
|
|
37
35
|
}
|
|
38
36
|
onClick && onClick();
|
|
39
37
|
};
|
|
40
|
-
const ActionIcon = (action === null || action === void 0 ? void 0 : action.icon) ||
|
|
38
|
+
const ActionIcon = (action === null || action === void 0 ? void 0 : action.icon) || react_icons_1.RhUiBookmarkIcon;
|
|
41
39
|
const additionalAction = action ? ((0, jsx_runtime_1.jsx)(react_core_1.Button, Object.assign({ "aria-label": action['aria-label'], icon: (0, jsx_runtime_1.jsx)(ActionIcon, {}), variant: "plain", onClick: action.onClick }, action.buttonProps))) : undefined;
|
|
42
40
|
return ((0, jsx_runtime_1.jsxs)(react_core_1.Card, { className: `pf-chatbot__quickstarts-tile ${className ? className : ''}`, id: `${id}-chatbot-qs-tile`, style: { height: '100%' }, "data-testid": `chatbot-qs-card-${(0, exports.camelize)(displayName)}`, isCompact: isCompact, children: [(0, jsx_runtime_1.jsx)(react_core_1.CardHeader, Object.assign({}, (action && {
|
|
43
41
|
actions: { actions: additionalAction }
|
|
44
|
-
}), { children: quickStartIcon })), (0, jsx_runtime_1.jsx)(react_core_1.CardTitle, { children: (0, jsx_runtime_1.jsx)(QuickStartTileHeader_1.default, { name: displayName, onSelect: onSelect, quickStartId: id }) }), (0, jsx_runtime_1.jsx)(react_core_1.CardBody, { children: (0, jsx_runtime_1.jsxs)(react_core_1.Stack, { hasGutter: true, children: [(0, jsx_runtime_1.jsxs)(react_core_1.Flex, { spaceItems: { default: 'spaceItemsSm' }, children: [type && (0, jsx_runtime_1.jsx)(react_core_1.Label, { color: type.color, children: type.text }), durationMinutes && ((0, jsx_runtime_1.jsx)(react_core_1.Label, { variant: "outline", "data-test": "duration", icon: (0, jsx_runtime_1.jsx)(
|
|
42
|
+
}), { children: quickStartIcon })), (0, jsx_runtime_1.jsx)(react_core_1.CardTitle, { children: (0, jsx_runtime_1.jsx)(QuickStartTileHeader_1.default, { name: displayName, onSelect: onSelect, quickStartId: id }) }), (0, jsx_runtime_1.jsx)(react_core_1.CardBody, { children: (0, jsx_runtime_1.jsxs)(react_core_1.Stack, { hasGutter: true, children: [(0, jsx_runtime_1.jsxs)(react_core_1.Flex, { spaceItems: { default: 'spaceItemsSm' }, children: [type && (0, jsx_runtime_1.jsx)(react_core_1.Label, { color: type.color, children: type.text }), durationMinutes && ((0, jsx_runtime_1.jsx)(react_core_1.Label, { variant: "outline", "data-test": "duration", icon: (0, jsx_runtime_1.jsx)(react_icons_1.RhUiClockIcon, {}), children: (0, react_core_1.pluralize)(durationMinutes, minuteWord, minuteWordPlural) }))] }), (0, jsx_runtime_1.jsx)(QuickStartTileDescription_1.default, { description: description, prerequisites: prerequisites, prerequisiteWord: prerequisiteWord, prerequisiteWordPlural: prerequisiteWordPlural, quickStartButtonAriaLabel: quickStartButtonAriaLabel })] }) }), (0, jsx_runtime_1.jsx)(react_core_1.CardFooter, { children: (0, jsx_runtime_1.jsx)(react_core_1.Button, { variant: "link", isInline: true, onClick: onSelect, children: (0, jsx_runtime_1.jsx)("span", { className: "pf-v6-c-button__text", children: "Start" }) }) })] }));
|
|
45
43
|
};
|
|
46
44
|
exports.QuickStartTile = QuickStartTile;
|
|
47
45
|
exports.default = exports.QuickStartTile;
|
|
@@ -17,9 +17,9 @@ const react_1 = require("react");
|
|
|
17
17
|
// Import PatternFly components
|
|
18
18
|
const react_core_1 = require("@patternfly/react-core");
|
|
19
19
|
const react_dropzone_1 = require("react-dropzone");
|
|
20
|
-
const
|
|
20
|
+
const react_icons_1 = require("@patternfly/react-icons");
|
|
21
21
|
const AttachButtonBase = (_a) => {
|
|
22
|
-
var { onAttachAccepted, onClick, isDisabled, className, tooltipProps, innerRef, tooltipContent = 'Attach', inputTestId, isCompact, allowedFileTypes, minSize, maxSize, maxFiles, isAttachmentDisabled, onAttach, onAttachRejected, validator, dropzoneProps, icon = (0, jsx_runtime_1.jsx)(
|
|
22
|
+
var { onAttachAccepted, onClick, isDisabled, className, tooltipProps, innerRef, tooltipContent = 'Attach', inputTestId, isCompact, allowedFileTypes, minSize, maxSize, maxFiles, isAttachmentDisabled, onAttach, onAttachRejected, validator, dropzoneProps, icon = (0, jsx_runtime_1.jsx)(react_icons_1.RhUiPaperClipIcon, {}) } = _a, props = __rest(_a, ["onAttachAccepted", "onClick", "isDisabled", "className", "tooltipProps", "innerRef", "tooltipContent", "inputTestId", "isCompact", "allowedFileTypes", "minSize", "maxSize", "maxFiles", "isAttachmentDisabled", "onAttach", "onAttachRejected", "validator", "dropzoneProps", "icon"]);
|
|
23
23
|
const { open, getInputProps } = (0, react_dropzone_1.useDropzone)(Object.assign({ multiple: true, onDropAccepted: onAttachAccepted, accept: allowedFileTypes, minSize,
|
|
24
24
|
maxSize,
|
|
25
25
|
maxFiles, disabled: isAttachmentDisabled, onDrop: onAttach, onDropRejected: onAttachRejected, validator }, dropzoneProps));
|
|
@@ -14,10 +14,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
14
14
|
exports.MicrophoneButton = void 0;
|
|
15
15
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
16
|
const react_1 = require("react");
|
|
17
|
-
// Import PatternFly components
|
|
18
17
|
const react_core_1 = require("@patternfly/react-core");
|
|
19
|
-
|
|
20
|
-
const microphone_icon_1 = require("@patternfly/react-icons/dist/esm/icons/microphone-icon");
|
|
18
|
+
const react_icons_1 = require("@patternfly/react-icons");
|
|
21
19
|
const MicrophoneButton = (_a) => {
|
|
22
20
|
var { isListening, onIsListeningChange, onSpeechRecognition, className, tooltipProps, tooltipContent = { active: 'Stop listening', inactive: 'Use microphone' }, language = 'en-US', isCompact } = _a, props = __rest(_a, ["isListening", "onIsListeningChange", "onSpeechRecognition", "className", "tooltipProps", "tooltipContent", "language", "isCompact"]);
|
|
23
21
|
// Microphone
|
|
@@ -63,7 +61,7 @@ const MicrophoneButton = (_a) => {
|
|
|
63
61
|
if (!speechRecognition) {
|
|
64
62
|
return null;
|
|
65
63
|
}
|
|
66
|
-
return ((0, jsx_runtime_1.jsx)(react_core_1.Tooltip, Object.assign({ aria: "none", "aria-live": "polite", id: "pf-chatbot__tooltip--use-microphone", content: isListening ? tooltipContent.active : tooltipContent.inactive, position: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.position) || 'top', entryDelay: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.entryDelay) || 0, exitDelay: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.exitDelay) || 0, distance: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.distance) || 8, animationDuration: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.animationDuration) || 0 }, tooltipProps, { children: (0, jsx_runtime_1.jsx)(react_core_1.Button, Object.assign({ variant: "plain", className: `pf-chatbot__button--microphone ${isListening ? 'pf-chatbot__button--microphone--active' : ''} ${isCompact ? 'pf-m-compact' : ''} ${className !== null && className !== void 0 ? className : ''}`, "aria-label": props['aria-label'] || (isListening ? 'Stop listening' : 'Use microphone'), "aria-pressed": isListening, onClick: isListening ? stopListening : startListening, icon: (0, jsx_runtime_1.jsx)(react_core_1.Icon, { iconSize: isCompact ? 'lg' : 'xl', isInline: true, children: (0, jsx_runtime_1.jsx)(
|
|
64
|
+
return ((0, jsx_runtime_1.jsx)(react_core_1.Tooltip, Object.assign({ aria: "none", "aria-live": "polite", id: "pf-chatbot__tooltip--use-microphone", content: isListening ? tooltipContent.active : tooltipContent.inactive, position: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.position) || 'top', entryDelay: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.entryDelay) || 0, exitDelay: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.exitDelay) || 0, distance: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.distance) || 8, animationDuration: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.animationDuration) || 0 }, tooltipProps, { children: (0, jsx_runtime_1.jsx)(react_core_1.Button, Object.assign({ variant: "plain", className: `pf-chatbot__button--microphone ${isListening ? 'pf-chatbot__button--microphone--active' : ''} ${isCompact ? 'pf-m-compact' : ''} ${className !== null && className !== void 0 ? className : ''}`, "aria-label": props['aria-label'] || (isListening ? 'Stop listening' : 'Use microphone'), "aria-pressed": isListening, onClick: isListening ? stopListening : startListening, icon: (0, jsx_runtime_1.jsx)(react_core_1.Icon, { iconSize: isCompact ? 'lg' : 'xl', isInline: true, children: (0, jsx_runtime_1.jsx)(react_icons_1.RhUiMicrophoneFillIcon, {}) }), size: isCompact ? 'sm' : undefined }, props)) })));
|
|
67
65
|
};
|
|
68
66
|
exports.MicrophoneButton = MicrophoneButton;
|
|
69
67
|
exports.default = exports.MicrophoneButton;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
-
// Import PatternFly components
|
|
5
4
|
const react_core_1 = require("@patternfly/react-core");
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const JumpButton = ({ position, isHidden, onClick, jumpButtonProps, jumpButtonTooltipProps }) => isHidden ? null : ((0, jsx_runtime_1.jsx)(react_core_1.Tooltip, Object.assign({ id: `pf-chatbot__tooltip--jump-${position}`, content: `Back to ${position}`, position: "top" }, jumpButtonTooltipProps, { children: (0, jsx_runtime_1.jsx)(react_core_1.Button, Object.assign({ variant: "plain", className: `pf-chatbot__jump pf-chatbot__jump--${position}`, "aria-label": `Back to ${position}`, onClick: onClick }, jumpButtonProps, { children: (0, jsx_runtime_1.jsx)(react_core_1.Icon, { iconSize: "lg", isInline: true, children: position === 'top' ? (0, jsx_runtime_1.jsx)(arrow_up_icon_1.ArrowUpIcon, {}) : (0, jsx_runtime_1.jsx)(arrow_down_icon_1.ArrowDownIcon, {}) }) })) })));
|
|
5
|
+
const react_icons_1 = require("@patternfly/react-icons");
|
|
6
|
+
const JumpButton = ({ position, isHidden, onClick, jumpButtonProps, jumpButtonTooltipProps }) => isHidden ? null : ((0, jsx_runtime_1.jsx)(react_core_1.Tooltip, Object.assign({ id: `pf-chatbot__tooltip--jump-${position}`, content: `Back to ${position}`, position: "top" }, jumpButtonTooltipProps, { children: (0, jsx_runtime_1.jsx)(react_core_1.Button, Object.assign({ variant: "plain", className: `pf-chatbot__jump pf-chatbot__jump--${position}`, "aria-label": `Back to ${position}`, onClick: onClick }, jumpButtonProps, { children: (0, jsx_runtime_1.jsx)(react_core_1.Icon, { iconSize: "lg", isInline: true, children: position === 'top' ? (0, jsx_runtime_1.jsx)(react_icons_1.RhMicronsArrowUpIcon, {}) : (0, jsx_runtime_1.jsx)(react_icons_1.RhMicronsArrowDownIcon, {}) }) })) })));
|
|
9
7
|
exports.default = JumpButton;
|
|
@@ -13,9 +13,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
13
13
|
import { Button, Label } from '@patternfly/react-core';
|
|
14
14
|
import FileDetails from '../FileDetails';
|
|
15
15
|
import { Spinner } from '@patternfly/react-core';
|
|
16
|
-
import {
|
|
16
|
+
import { RhMicronsCloseIcon } from '@patternfly/react-icons';
|
|
17
17
|
export const FileDetailsLabel = (_a) => {
|
|
18
|
-
var { fileName, fileId, isLoading, onClick, onClose, closeButtonAriaLabel, languageTestId, spinnerTestId, fileSize, hasTruncation = true, closeButtonIcon = _jsx(
|
|
18
|
+
var { fileName, fileId, isLoading, onClick, onClose, closeButtonAriaLabel, languageTestId, spinnerTestId, fileSize, hasTruncation = true, closeButtonIcon = _jsx(RhMicronsCloseIcon, {}) } = _a, props = __rest(_a, ["fileName", "fileId", "isLoading", "onClick", "onClose", "closeButtonAriaLabel", "languageTestId", "spinnerTestId", "fileSize", "hasTruncation", "closeButtonIcon"]);
|
|
19
19
|
const handleClose = (event) => {
|
|
20
20
|
onClose && onClose(event, fileName, fileId);
|
|
21
21
|
};
|
|
@@ -15,7 +15,7 @@ import { useState, useEffect } from 'react';
|
|
|
15
15
|
import { ChatbotDisplayMode } from '../Chatbot';
|
|
16
16
|
import ChatbotModal from '../ChatbotModal';
|
|
17
17
|
import FileDetailsLabel from '../FileDetailsLabel';
|
|
18
|
-
import {
|
|
18
|
+
import { RhUiTrashFillIcon } from '@patternfly/react-icons';
|
|
19
19
|
const ImagePreview = (_a) => {
|
|
20
20
|
var { isModalOpen, displayMode = ChatbotDisplayMode.default, isCompact, className, handleModalToggle, title = 'Preview images', modalHeaderProps, modalBodyProps, images, isDisabled, onSetPage, onPreviousClick, toNextPageAriaLabel = 'Go to next image', toPreviousPageAriaLabel = 'Go to previous image', onNextClick, paginationAriaLabel, onCloseFileDetailsLabel, fileDetailsLabelProps, paginationContent, screenreaderText } = _a, props = __rest(_a, ["isModalOpen", "displayMode", "isCompact", "className", "handleModalToggle", "title", "modalHeaderProps", "modalBodyProps", "images", "isDisabled", "onSetPage", "onPreviousClick", "toNextPageAriaLabel", "toPreviousPageAriaLabel", "onNextClick", "paginationAriaLabel", "onCloseFileDetailsLabel", "fileDetailsLabelProps", "paginationContent", "screenreaderText"]);
|
|
21
21
|
const [page, setPage] = useState(1);
|
|
@@ -29,7 +29,7 @@ const ImagePreview = (_a) => {
|
|
|
29
29
|
setPage(newPage);
|
|
30
30
|
onSetPage && onSetPage(_evt, newPage);
|
|
31
31
|
};
|
|
32
|
-
return (_jsxs(ChatbotModal, Object.assign({ isOpen: isModalOpen, className: `pf-chatbot__image-preview-modal pf-chatbot__image-preview-modal--${displayMode} ${isCompact ? 'pf-m-compact' : ''} ${className ? className : ''}`, displayMode: displayMode, onClose: handleModalToggle, isCompact: isCompact }, props, { children: [_jsx(ModalHeader, Object.assign({ title: title }, modalHeaderProps)), _jsx(ModalBody, Object.assign({ className: "pf-chatbot__image-preview-body" }, modalBodyProps, { children: images.length > 0 && images[page - 1] && (_jsxs(Stack, { hasGutter: true, className: "pf-chatbot__image-preview-stack", children: [_jsx(StackItem, { children: _jsx(FileDetailsLabel, Object.assign({ fileName: images[page - 1].fileName, fileSize: images[page - 1].fileSize, hasTruncation: false, onClose: onCloseFileDetailsLabel, closeButtonIcon: _jsx(
|
|
32
|
+
return (_jsxs(ChatbotModal, Object.assign({ isOpen: isModalOpen, className: `pf-chatbot__image-preview-modal pf-chatbot__image-preview-modal--${displayMode} ${isCompact ? 'pf-m-compact' : ''} ${className ? className : ''}`, displayMode: displayMode, onClose: handleModalToggle, isCompact: isCompact }, props, { children: [_jsx(ModalHeader, Object.assign({ title: title }, modalHeaderProps)), _jsx(ModalBody, Object.assign({ className: "pf-chatbot__image-preview-body" }, modalBodyProps, { children: images.length > 0 && images[page - 1] && (_jsxs(Stack, { hasGutter: true, className: "pf-chatbot__image-preview-stack", children: [_jsx(StackItem, { children: _jsx(FileDetailsLabel, Object.assign({ fileName: images[page - 1].fileName, fileSize: images[page - 1].fileSize, hasTruncation: false, onClose: onCloseFileDetailsLabel, closeButtonIcon: _jsx(Icon, { size: "md", children: _jsx(RhUiTrashFillIcon, {}) }) }, fileDetailsLabelProps)) }), _jsx(StackItem, { children: _jsx("div", { className: "pf-chatbot__image-preview-body", children: images[page - 1].image }) })] })) })), images.length > 1 && (_jsx(ModalFooter, { className: "pf-chatbot__image-preview-footer", children: _jsxs("nav", { className: `pf-chatbot__image-preview-footer-buttons`, "aria-label": paginationAriaLabel, children: [_jsx(Button, { variant: ButtonVariant.plain, isDisabled: isDisabled || page === 1, "data-action": "previous", onClick: (event) => {
|
|
33
33
|
const newPage = page > 1 ? page - 1 : 1;
|
|
34
34
|
handleNewPage(event, newPage);
|
|
35
35
|
onPreviousClick && onPreviousClick(event, newPage);
|
|
@@ -16,9 +16,8 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
16
16
|
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
17
17
|
// Import PatternFly components
|
|
18
18
|
import { CodeBlock, CodeBlockAction, CodeBlockCode, Button, Tooltip, ExpandableSection, ExpandableSectionToggle, ExpandableSectionVariant, getUniqueId } from '@patternfly/react-core';
|
|
19
|
-
import { CheckIcon } from '@patternfly/react-icons/dist/esm/icons/check-icon';
|
|
20
19
|
import { css } from '@patternfly/react-styles';
|
|
21
|
-
import { RhUiCopyFillIcon } from '@patternfly/react-icons';
|
|
20
|
+
import { RhMicronsCheckmarkIcon, RhUiCopyFillIcon } from '@patternfly/react-icons';
|
|
22
21
|
const DEFAULT_EXPANDED_TEXT = 'Show less';
|
|
23
22
|
const DEFAULT_COLLAPSED_TEXT = 'Show more';
|
|
24
23
|
const CodeBlockMessage = (_a) => {
|
|
@@ -73,7 +72,7 @@ const CodeBlockMessage = (_a) => {
|
|
|
73
72
|
return (_jsx("code", Object.assign({}, props, { className: `pf-chatbot__message-inline-code ${isPrimary ? 'pf-m-primary' : ''}`, children: children })));
|
|
74
73
|
}
|
|
75
74
|
// Setup code block header
|
|
76
|
-
const actions = (_jsxs(_Fragment, { children: [_jsxs(CodeBlockAction, { className: "pf-chatbot__message-code-block-default-action", children: [language && _jsx("div", { className: "pf-chatbot__message-code-block-language", children: language }), _jsx(Button, { ref: buttonRef, "aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : 'Copy code', variant: "plain", className: "pf-chatbot__button--copy", onClick: (event) => handleCopy(event, children), children: copied ? _jsx(
|
|
75
|
+
const actions = (_jsxs(_Fragment, { children: [_jsxs(CodeBlockAction, { className: "pf-chatbot__message-code-block-default-action", children: [language && _jsx("div", { className: "pf-chatbot__message-code-block-language", children: language }), _jsx(Button, { ref: buttonRef, "aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : 'Copy code', variant: "plain", className: "pf-chatbot__button--copy", onClick: (event) => handleCopy(event, children), children: copied ? _jsx(RhMicronsCheckmarkIcon, {}) : _jsx(RhUiCopyFillIcon, {}) }), _jsx(Tooltip, { id: tooltipID, content: "Copy", position: "top", triggerRef: buttonRef })] }), customActions] }));
|
|
77
76
|
return (_jsx("div", { className: css('pf-chatbot__message-code-block', shouldRetainStyles && 'pf-m-markdown'), ref: codeBlockRef, children: _jsxs(CodeBlock, { actions: actions, children: [_jsx(CodeBlockCode, { children: _jsx(_Fragment, { children: isExpandable ? (_jsx(ExpandableSection, Object.assign({ variant: ExpandableSectionVariant.truncate, isExpanded: isExpanded, isDetached: true, toggleId: toggleId, contentId: contentId }, expandableSectionProps, { children: children }))) : (children) }) }), isExpandable && (_jsx(ExpandableSectionToggle, Object.assign({ isExpanded: isExpanded, onToggle: onToggle, direction: "up", toggleId: toggleId, contentId: contentId, hasTruncatedContent: true, className: "pf-chatbot__message-code-toggle" }, expandableSectionToggleProps, { children: isExpanded ? finalExpandedText : finalCollapsedText })))] }) }));
|
|
78
77
|
};
|
|
79
78
|
export default CodeBlockMessage;
|
|
@@ -18,7 +18,7 @@ import { monitorSampleAppQuickStartWithImage } from './QuickStarts/monitor-sampl
|
|
|
18
18
|
import rehypeExternalLinks from '../__mocks__/rehype-external-links';
|
|
19
19
|
import { AlertActionLink, Button, CodeBlockAction } from '@patternfly/react-core';
|
|
20
20
|
// Mock the icon components
|
|
21
|
-
jest.mock('@patternfly/react-icons', () => (Object.assign(Object.assign({}, jest.requireActual('@patternfly/react-icons')), { RhUiLikeIcon: () => _jsx("div", { children: "RhUiLikeIcon" }), RhUiLikeFillIcon: () => _jsx("div", { children: "RhUiLikeFillIcon" }), RhUiDislikeIcon: () => _jsx("div", { children: "RhUiDislikeIcon" }), RhUiDislikeFillIcon: () => _jsx("div", { children: "RhUiDislikeFillIcon" }), RhUiCopyIcon: () => _jsx("div", { children: "RhUiCopyIcon" }), RhUiCopyFillIcon: () => _jsx("div", { children: "RhUiCopyFillIcon" }), RhUiEditIcon: () => _jsx("div", { children: "RhUiEditIcon" }), RhUiEditFillIcon: () => _jsx("div", { children: "RhUiEditFillIcon" }), RhUiVolumeUpIcon: () => _jsx("div", { children: "RhUiVolumeUpIcon" }), RhUiVolumeUpFillIcon: () => _jsx("div", { children: "RhUiVolumeUpFillIcon" }), RhUiExportIcon: () => _jsx("div", { children: "RhUiExportIcon" }), RhUiExportFillIcon: () => _jsx("div", { children: "RhUiExportFillIcon" }), RhMicronsInformationFillIcon: () => _jsx("div", { children: "RhMicronsInformationFillIcon" }), RhUiBackwardsIcon: () => _jsx("div", { children: "RhUiBackwardsIcon" }), RhMicronsExternalLinkIcon: () => _jsx("div", { children: "RhMicronsExternalLinkIcon" }) })));
|
|
21
|
+
jest.mock('@patternfly/react-icons', () => (Object.assign(Object.assign({}, jest.requireActual('@patternfly/react-icons')), { RhUiLikeIcon: () => _jsx("div", { children: "RhUiLikeIcon" }), RhUiLikeFillIcon: () => _jsx("div", { children: "RhUiLikeFillIcon" }), RhUiDislikeIcon: () => _jsx("div", { children: "RhUiDislikeIcon" }), RhUiDislikeFillIcon: () => _jsx("div", { children: "RhUiDislikeFillIcon" }), RhUiCopyIcon: () => _jsx("div", { children: "RhUiCopyIcon" }), RhUiCopyFillIcon: () => _jsx("div", { children: "RhUiCopyFillIcon" }), RhUiEditIcon: () => _jsx("div", { children: "RhUiEditIcon" }), RhUiEditFillIcon: () => _jsx("div", { children: "RhUiEditFillIcon" }), RhUiVolumeUpIcon: () => _jsx("div", { children: "RhUiVolumeUpIcon" }), RhUiVolumeUpFillIcon: () => _jsx("div", { children: "RhUiVolumeUpFillIcon" }), RhUiExportIcon: () => _jsx("div", { children: "RhUiExportIcon" }), RhUiExportFillIcon: () => _jsx("div", { children: "RhUiExportFillIcon" }), RhMicronsInformationFillIcon: () => _jsx("div", { children: "RhMicronsInformationFillIcon" }), RhUiBackwardsIcon: () => _jsx("div", { children: "RhUiBackwardsIcon" }), RhMicronsExternalLinkIcon: () => _jsx("div", { children: "RhMicronsExternalLinkIcon" }), RhMicronsCheckmarkIcon: () => _jsx("div", { children: "RhMicronsCheckmarkIcon" }), RhMicronsCloseIcon: () => _jsx("div", { children: "RhMicronsCloseIcon" }), RhUiBookmarkIcon: () => _jsx("div", { children: "RhUiBookmarkIcon" }), RhUiClockIcon: () => _jsx("div", { children: "RhUiClockIcon" }), RhUiRocketFillIcon: () => _jsx("div", { children: "RhUiRocketFillIcon" }) })));
|
|
22
22
|
const ALL_ACTIONS = [
|
|
23
23
|
{ label: /Good response/i },
|
|
24
24
|
{ label: /Bad response/i },
|
|
@@ -12,7 +12,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
13
|
import { useState } from 'react';
|
|
14
14
|
import { Label, LabelGroup } from '@patternfly/react-core';
|
|
15
|
-
import {
|
|
15
|
+
import { RhMicronsCheckmarkIcon } from '@patternfly/react-icons';
|
|
16
16
|
import { css } from '@patternfly/react-styles';
|
|
17
17
|
export const QuickResponse = ({ quickResponses, quickResponseContainerProps = { numLabels: 5 }, onSelect, isCompact }) => {
|
|
18
18
|
const [selectedQuickResponse, setSelectedQuickResponse] = useState();
|
|
@@ -23,7 +23,7 @@ export const QuickResponse = ({ quickResponses, quickResponseContainerProps = {
|
|
|
23
23
|
};
|
|
24
24
|
return (_jsx(LabelGroup, Object.assign({ className: css('pf-chatbot__message-quick-response', quickResponseContainerProps === null || quickResponseContainerProps === void 0 ? void 0 : quickResponseContainerProps.className) }, quickResponseContainerProps, { children: quickResponses.map((_a) => {
|
|
25
25
|
var { id, onClick, content, className } = _a, props = __rest(_a, ["id", "onClick", "content", "className"]);
|
|
26
|
-
return (_jsx(Label, Object.assign({ variant: id === selectedQuickResponse ? undefined : 'outline', icon: id === selectedQuickResponse ? _jsx(
|
|
26
|
+
return (_jsx(Label, Object.assign({ variant: id === selectedQuickResponse ? undefined : 'outline', icon: id === selectedQuickResponse ? _jsx(RhMicronsCheckmarkIcon, {}) : undefined, color: "blue", onClick: () => handleQuickResponseClick(id, onClick), className: css(id === selectedQuickResponse && 'pf-chatbot__message-quick-response--selected', className), isCompact: isCompact }, props, { children: content }), id));
|
|
27
27
|
}) })));
|
|
28
28
|
};
|
|
29
29
|
export default QuickResponse;
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import RocketIcon from '@patternfly/react-icons/dist/js/icons/rocket-icon';
|
|
3
|
-
import OutlinedBookmarkIcon from '@patternfly/react-icons/dist/js/icons/outlined-bookmark-icon';
|
|
4
2
|
import { Card, CardBody, CardHeader, CardFooter, CardTitle, Icon, Button, Flex, Stack, Label, pluralize } from '@patternfly/react-core';
|
|
5
|
-
import OutlinedClockIcon from '@patternfly/react-icons/dist/js/icons/outlined-clock-icon';
|
|
6
3
|
import QuickStartTileHeader from './QuickStartTileHeader';
|
|
7
4
|
import QuickStartTileDescription from './QuickStartTileDescription';
|
|
8
5
|
import FallbackImg from './FallbackImg';
|
|
6
|
+
import { RhUiBookmarkIcon, RhUiClockIcon, RhUiRocketFillIcon } from '@patternfly/react-icons';
|
|
9
7
|
export const camelize = (str) => str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function (match, index) {
|
|
10
8
|
if (+match === 0) {
|
|
11
9
|
return '';
|
|
@@ -19,7 +17,7 @@ export const QuickStartTile = ({ className, quickStart, onClick, onSelectQuickSt
|
|
|
19
17
|
quickStartIcon = _jsx(Icon, { size: "2xl", children: icon });
|
|
20
18
|
}
|
|
21
19
|
else {
|
|
22
|
-
quickStartIcon = (_jsx(Icon, { size: "2xl", children: _jsx(FallbackImg, { src: icon, alt: "", className: "pfext-catalog-item-icon__img", fallback: _jsx(
|
|
20
|
+
quickStartIcon = (_jsx(Icon, { size: "2xl", children: _jsx(FallbackImg, { src: icon, alt: "", className: "pfext-catalog-item-icon__img", fallback: _jsx(RhUiRocketFillIcon, {}) }) }));
|
|
23
21
|
}
|
|
24
22
|
const onSelect = () => {
|
|
25
23
|
if (!link) {
|
|
@@ -30,10 +28,10 @@ export const QuickStartTile = ({ className, quickStart, onClick, onSelectQuickSt
|
|
|
30
28
|
}
|
|
31
29
|
onClick && onClick();
|
|
32
30
|
};
|
|
33
|
-
const ActionIcon = (action === null || action === void 0 ? void 0 : action.icon) ||
|
|
31
|
+
const ActionIcon = (action === null || action === void 0 ? void 0 : action.icon) || RhUiBookmarkIcon;
|
|
34
32
|
const additionalAction = action ? (_jsx(Button, Object.assign({ "aria-label": action['aria-label'], icon: _jsx(ActionIcon, {}), variant: "plain", onClick: action.onClick }, action.buttonProps))) : undefined;
|
|
35
33
|
return (_jsxs(Card, { className: `pf-chatbot__quickstarts-tile ${className ? className : ''}`, id: `${id}-chatbot-qs-tile`, style: { height: '100%' }, "data-testid": `chatbot-qs-card-${camelize(displayName)}`, isCompact: isCompact, children: [_jsx(CardHeader, Object.assign({}, (action && {
|
|
36
34
|
actions: { actions: additionalAction }
|
|
37
|
-
}), { children: quickStartIcon })), _jsx(CardTitle, { children: _jsx(QuickStartTileHeader, { name: displayName, onSelect: onSelect, quickStartId: id }) }), _jsx(CardBody, { children: _jsxs(Stack, { hasGutter: true, children: [_jsxs(Flex, { spaceItems: { default: 'spaceItemsSm' }, children: [type && _jsx(Label, { color: type.color, children: type.text }), durationMinutes && (_jsx(Label, { variant: "outline", "data-test": "duration", icon: _jsx(
|
|
35
|
+
}), { children: quickStartIcon })), _jsx(CardTitle, { children: _jsx(QuickStartTileHeader, { name: displayName, onSelect: onSelect, quickStartId: id }) }), _jsx(CardBody, { children: _jsxs(Stack, { hasGutter: true, children: [_jsxs(Flex, { spaceItems: { default: 'spaceItemsSm' }, children: [type && _jsx(Label, { color: type.color, children: type.text }), durationMinutes && (_jsx(Label, { variant: "outline", "data-test": "duration", icon: _jsx(RhUiClockIcon, {}), children: pluralize(durationMinutes, minuteWord, minuteWordPlural) }))] }), _jsx(QuickStartTileDescription, { description: description, prerequisites: prerequisites, prerequisiteWord: prerequisiteWord, prerequisiteWordPlural: prerequisiteWordPlural, quickStartButtonAriaLabel: quickStartButtonAriaLabel })] }) }), _jsx(CardFooter, { children: _jsx(Button, { variant: "link", isInline: true, onClick: onSelect, children: _jsx("span", { className: "pf-v6-c-button__text", children: "Start" }) }) })] }));
|
|
38
36
|
};
|
|
39
37
|
export default QuickStartTile;
|
|
@@ -14,9 +14,9 @@ import { forwardRef } from 'react';
|
|
|
14
14
|
// Import PatternFly components
|
|
15
15
|
import { Button, Icon, Tooltip } from '@patternfly/react-core';
|
|
16
16
|
import { useDropzone } from 'react-dropzone';
|
|
17
|
-
import {
|
|
17
|
+
import { RhUiPaperClipIcon } from '@patternfly/react-icons';
|
|
18
18
|
const AttachButtonBase = (_a) => {
|
|
19
|
-
var { onAttachAccepted, onClick, isDisabled, className, tooltipProps, innerRef, tooltipContent = 'Attach', inputTestId, isCompact, allowedFileTypes, minSize, maxSize, maxFiles, isAttachmentDisabled, onAttach, onAttachRejected, validator, dropzoneProps, icon = _jsx(
|
|
19
|
+
var { onAttachAccepted, onClick, isDisabled, className, tooltipProps, innerRef, tooltipContent = 'Attach', inputTestId, isCompact, allowedFileTypes, minSize, maxSize, maxFiles, isAttachmentDisabled, onAttach, onAttachRejected, validator, dropzoneProps, icon = _jsx(RhUiPaperClipIcon, {}) } = _a, props = __rest(_a, ["onAttachAccepted", "onClick", "isDisabled", "className", "tooltipProps", "innerRef", "tooltipContent", "inputTestId", "isCompact", "allowedFileTypes", "minSize", "maxSize", "maxFiles", "isAttachmentDisabled", "onAttach", "onAttachRejected", "validator", "dropzoneProps", "icon"]);
|
|
20
20
|
const { open, getInputProps } = useDropzone(Object.assign({ multiple: true, onDropAccepted: onAttachAccepted, accept: allowedFileTypes, minSize,
|
|
21
21
|
maxSize,
|
|
22
22
|
maxFiles, disabled: isAttachmentDisabled, onDrop: onAttach, onDropRejected: onAttachRejected, validator }, dropzoneProps));
|
|
@@ -11,10 +11,8 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
13
|
import { useState, useCallback, useEffect } from 'react';
|
|
14
|
-
// Import PatternFly components
|
|
15
14
|
import { Button, Tooltip, Icon } from '@patternfly/react-core';
|
|
16
|
-
|
|
17
|
-
import { MicrophoneIcon } from '@patternfly/react-icons/dist/esm/icons/microphone-icon';
|
|
15
|
+
import { RhUiMicrophoneFillIcon } from '@patternfly/react-icons';
|
|
18
16
|
export const MicrophoneButton = (_a) => {
|
|
19
17
|
var { isListening, onIsListeningChange, onSpeechRecognition, className, tooltipProps, tooltipContent = { active: 'Stop listening', inactive: 'Use microphone' }, language = 'en-US', isCompact } = _a, props = __rest(_a, ["isListening", "onIsListeningChange", "onSpeechRecognition", "className", "tooltipProps", "tooltipContent", "language", "isCompact"]);
|
|
20
18
|
// Microphone
|
|
@@ -60,6 +58,6 @@ export const MicrophoneButton = (_a) => {
|
|
|
60
58
|
if (!speechRecognition) {
|
|
61
59
|
return null;
|
|
62
60
|
}
|
|
63
|
-
return (_jsx(Tooltip, Object.assign({ aria: "none", "aria-live": "polite", id: "pf-chatbot__tooltip--use-microphone", content: isListening ? tooltipContent.active : tooltipContent.inactive, position: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.position) || 'top', entryDelay: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.entryDelay) || 0, exitDelay: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.exitDelay) || 0, distance: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.distance) || 8, animationDuration: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.animationDuration) || 0 }, tooltipProps, { children: _jsx(Button, Object.assign({ variant: "plain", className: `pf-chatbot__button--microphone ${isListening ? 'pf-chatbot__button--microphone--active' : ''} ${isCompact ? 'pf-m-compact' : ''} ${className !== null && className !== void 0 ? className : ''}`, "aria-label": props['aria-label'] || (isListening ? 'Stop listening' : 'Use microphone'), "aria-pressed": isListening, onClick: isListening ? stopListening : startListening, icon: _jsx(Icon, { iconSize: isCompact ? 'lg' : 'xl', isInline: true, children: _jsx(
|
|
61
|
+
return (_jsx(Tooltip, Object.assign({ aria: "none", "aria-live": "polite", id: "pf-chatbot__tooltip--use-microphone", content: isListening ? tooltipContent.active : tooltipContent.inactive, position: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.position) || 'top', entryDelay: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.entryDelay) || 0, exitDelay: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.exitDelay) || 0, distance: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.distance) || 8, animationDuration: (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.animationDuration) || 0 }, tooltipProps, { children: _jsx(Button, Object.assign({ variant: "plain", className: `pf-chatbot__button--microphone ${isListening ? 'pf-chatbot__button--microphone--active' : ''} ${isCompact ? 'pf-m-compact' : ''} ${className !== null && className !== void 0 ? className : ''}`, "aria-label": props['aria-label'] || (isListening ? 'Stop listening' : 'Use microphone'), "aria-pressed": isListening, onClick: isListening ? stopListening : startListening, icon: _jsx(Icon, { iconSize: isCompact ? 'lg' : 'xl', isInline: true, children: _jsx(RhUiMicrophoneFillIcon, {}) }), size: isCompact ? 'sm' : undefined }, props)) })));
|
|
64
62
|
};
|
|
65
63
|
export default MicrophoneButton;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
// Import PatternFly components
|
|
3
2
|
import { Button, Tooltip, Icon } from '@patternfly/react-core';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
const JumpButton = ({ position, isHidden, onClick, jumpButtonProps, jumpButtonTooltipProps }) => isHidden ? null : (_jsx(Tooltip, Object.assign({ id: `pf-chatbot__tooltip--jump-${position}`, content: `Back to ${position}`, position: "top" }, jumpButtonTooltipProps, { children: _jsx(Button, Object.assign({ variant: "plain", className: `pf-chatbot__jump pf-chatbot__jump--${position}`, "aria-label": `Back to ${position}`, onClick: onClick }, jumpButtonProps, { children: _jsx(Icon, { iconSize: "lg", isInline: true, children: position === 'top' ? _jsx(ArrowUpIcon, {}) : _jsx(ArrowDownIcon, {}) }) })) })));
|
|
3
|
+
import { RhMicronsArrowDownIcon, RhMicronsArrowUpIcon } from '@patternfly/react-icons';
|
|
4
|
+
const JumpButton = ({ position, isHidden, onClick, jumpButtonProps, jumpButtonTooltipProps }) => isHidden ? null : (_jsx(Tooltip, Object.assign({ id: `pf-chatbot__tooltip--jump-${position}`, content: `Back to ${position}`, position: "top" }, jumpButtonTooltipProps, { children: _jsx(Button, Object.assign({ variant: "plain", className: `pf-chatbot__jump pf-chatbot__jump--${position}`, "aria-label": `Back to ${position}`, onClick: onClick }, jumpButtonProps, { children: _jsx(Icon, { iconSize: "lg", isInline: true, children: position === 'top' ? _jsx(RhMicronsArrowUpIcon, {}) : _jsx(RhMicronsArrowDownIcon, {}) }) })) })));
|
|
7
5
|
export default JumpButton;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/chatbot",
|
|
3
|
-
"version": "6.8.0-prerelease.
|
|
3
|
+
"version": "6.8.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",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
54
54
|
"@monaco-editor/react": "^4.7.0",
|
|
55
|
-
"monaco-editor": "^0.
|
|
55
|
+
"monaco-editor": "^0.56.0",
|
|
56
56
|
"react": "^18 || ^19",
|
|
57
57
|
"react-dom": "^18 || ^19"
|
|
58
58
|
},
|
|
@@ -88,9 +88,5 @@
|
|
|
88
88
|
"victory-stack": "^37.1.1",
|
|
89
89
|
"victory-tooltip": "^37.1.1",
|
|
90
90
|
"victory-voronoi-container": "^37.1.1"
|
|
91
|
-
},
|
|
92
|
-
"overrides": {
|
|
93
|
-
"puppeteer": "^23.6.1",
|
|
94
|
-
"puppeteer-cluster": "^0.24.0"
|
|
95
91
|
}
|
|
96
92
|
}
|
package/patternfly-docs/content/extensions/chatbot/examples/Messages/explore-pipeline-quickstart.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import userAvatar from './user_avatar.svg';
|
|
2
|
-
|
|
3
1
|
export const explorePipelinesQuickStart = {
|
|
4
2
|
apiVersion: 'console.openshift.io/v1',
|
|
5
3
|
kind: 'QuickStarts',
|
|
@@ -10,7 +8,6 @@ export const explorePipelinesQuickStart = {
|
|
|
10
8
|
version: 4.7,
|
|
11
9
|
displayName: `Installing the Pipelines Operator`,
|
|
12
10
|
durationMinutes: 10,
|
|
13
|
-
icon: userAvatar,
|
|
14
11
|
description: `Install the OpenShift® Pipelines Operator to build Pipelines using Tekton.`,
|
|
15
12
|
prerequisites: [''],
|
|
16
13
|
introduction: `OpenShift® Pipelines is a cloud-native, continuous integration and continuous delivery (CI/CD) solution based on Kubernetes resources. It uses Tekton building blocks to automate deployments across multiple Kubernetes distributions by abstracting away the underlying implementation details.
|
|
@@ -2,7 +2,7 @@ import { PropsWithChildren } from 'react';
|
|
|
2
2
|
import { Button, Label, LabelProps } from '@patternfly/react-core';
|
|
3
3
|
import FileDetails from '../FileDetails';
|
|
4
4
|
import { Spinner } from '@patternfly/react-core';
|
|
5
|
-
import {
|
|
5
|
+
import { RhMicronsCloseIcon } from '@patternfly/react-icons';
|
|
6
6
|
|
|
7
7
|
export interface FileDetailsLabelProps extends Omit<LabelProps, 'onClose' | 'onClick'> {
|
|
8
8
|
/** Name of file, including extension */
|
|
@@ -40,7 +40,7 @@ export const FileDetailsLabel = ({
|
|
|
40
40
|
spinnerTestId,
|
|
41
41
|
fileSize,
|
|
42
42
|
hasTruncation = true,
|
|
43
|
-
closeButtonIcon = <
|
|
43
|
+
closeButtonIcon = <RhMicronsCloseIcon />,
|
|
44
44
|
...props
|
|
45
45
|
}: PropsWithChildren<FileDetailsLabelProps>) => {
|
|
46
46
|
const handleClose = (event) => {
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
import { ChatbotDisplayMode } from '../Chatbot';
|
|
21
21
|
import ChatbotModal, { ChatbotModalProps } from '../ChatbotModal';
|
|
22
22
|
import FileDetailsLabel, { FileDetailsLabelProps } from '../FileDetailsLabel';
|
|
23
|
-
import {
|
|
23
|
+
import { RhUiTrashFillIcon } from '@patternfly/react-icons';
|
|
24
24
|
|
|
25
25
|
export interface ImagePreviewProps extends Omit<ChatbotModalProps, 'children'> {
|
|
26
26
|
/** Class applied to modal */
|
|
@@ -121,7 +121,11 @@ const ImagePreview: FunctionComponent<ImagePreviewProps> = ({
|
|
|
121
121
|
fileSize={images[page - 1].fileSize}
|
|
122
122
|
hasTruncation={false}
|
|
123
123
|
onClose={onCloseFileDetailsLabel}
|
|
124
|
-
closeButtonIcon={
|
|
124
|
+
closeButtonIcon={
|
|
125
|
+
<Icon size="md">
|
|
126
|
+
<RhUiTrashFillIcon />
|
|
127
|
+
</Icon>
|
|
128
|
+
}
|
|
125
129
|
{...fileDetailsLabelProps}
|
|
126
130
|
/>
|
|
127
131
|
</StackItem>
|
|
@@ -17,9 +17,8 @@ import {
|
|
|
17
17
|
getUniqueId
|
|
18
18
|
} from '@patternfly/react-core';
|
|
19
19
|
|
|
20
|
-
import { CheckIcon } from '@patternfly/react-icons/dist/esm/icons/check-icon';
|
|
21
20
|
import { css } from '@patternfly/react-styles';
|
|
22
|
-
import { RhUiCopyFillIcon } from '@patternfly/react-icons';
|
|
21
|
+
import { RhMicronsCheckmarkIcon, RhUiCopyFillIcon } from '@patternfly/react-icons';
|
|
23
22
|
|
|
24
23
|
export interface CodeBlockMessageProps {
|
|
25
24
|
/** Content rendered in code block */
|
|
@@ -142,7 +141,7 @@ const CodeBlockMessage = ({
|
|
|
142
141
|
className="pf-chatbot__button--copy"
|
|
143
142
|
onClick={(event) => handleCopy(event, children)}
|
|
144
143
|
>
|
|
145
|
-
{copied ? <
|
|
144
|
+
{copied ? <RhMicronsCheckmarkIcon /> : <RhUiCopyFillIcon />}
|
|
146
145
|
</Button>
|
|
147
146
|
<Tooltip id={tooltipID} content="Copy" position="top" triggerRef={buttonRef} />
|
|
148
147
|
</CodeBlockAction>
|
|
@@ -26,7 +26,12 @@ jest.mock('@patternfly/react-icons', () => ({
|
|
|
26
26
|
RhUiExportFillIcon: () => <div>RhUiExportFillIcon</div>,
|
|
27
27
|
RhMicronsInformationFillIcon: () => <div>RhMicronsInformationFillIcon</div>,
|
|
28
28
|
RhUiBackwardsIcon: () => <div>RhUiBackwardsIcon</div>,
|
|
29
|
-
RhMicronsExternalLinkIcon: () => <div>RhMicronsExternalLinkIcon</div
|
|
29
|
+
RhMicronsExternalLinkIcon: () => <div>RhMicronsExternalLinkIcon</div>,
|
|
30
|
+
RhMicronsCheckmarkIcon: () => <div>RhMicronsCheckmarkIcon</div>,
|
|
31
|
+
RhMicronsCloseIcon: () => <div>RhMicronsCloseIcon</div>,
|
|
32
|
+
RhUiBookmarkIcon: () => <div>RhUiBookmarkIcon</div>,
|
|
33
|
+
RhUiClockIcon: () => <div>RhUiClockIcon</div>,
|
|
34
|
+
RhUiRocketFillIcon: () => <div>RhUiRocketFillIcon</div>
|
|
30
35
|
}));
|
|
31
36
|
|
|
32
37
|
const ALL_ACTIONS = [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FunctionComponent } from 'react';
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { Label, LabelGroup, LabelGroupProps, LabelProps } from '@patternfly/react-core';
|
|
4
|
-
import {
|
|
4
|
+
import { RhMicronsCheckmarkIcon } from '@patternfly/react-icons';
|
|
5
5
|
import { css } from '@patternfly/react-styles';
|
|
6
6
|
|
|
7
7
|
export interface QuickResponse extends Omit<LabelProps, 'children'> {
|
|
@@ -42,7 +42,7 @@ export const QuickResponse: FunctionComponent<QuickResponseProps> = ({
|
|
|
42
42
|
{quickResponses.map(({ id, onClick, content, className, ...props }: QuickResponse) => (
|
|
43
43
|
<Label
|
|
44
44
|
variant={id === selectedQuickResponse ? undefined : 'outline'}
|
|
45
|
-
icon={id === selectedQuickResponse ? <
|
|
45
|
+
icon={id === selectedQuickResponse ? <RhMicronsCheckmarkIcon /> : undefined}
|
|
46
46
|
color="blue"
|
|
47
47
|
key={id}
|
|
48
48
|
onClick={() => handleQuickResponseClick(id, onClick)}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import type { FC, ReactNode } from 'react';
|
|
2
|
-
import RocketIcon from '@patternfly/react-icons/dist/js/icons/rocket-icon';
|
|
3
|
-
import OutlinedBookmarkIcon from '@patternfly/react-icons/dist/js/icons/outlined-bookmark-icon';
|
|
4
2
|
import {
|
|
5
3
|
Card,
|
|
6
4
|
CardBody,
|
|
@@ -14,11 +12,11 @@ import {
|
|
|
14
12
|
Label,
|
|
15
13
|
pluralize
|
|
16
14
|
} from '@patternfly/react-core';
|
|
17
|
-
import OutlinedClockIcon from '@patternfly/react-icons/dist/js/icons/outlined-clock-icon';
|
|
18
15
|
import QuickStartTileHeader from './QuickStartTileHeader';
|
|
19
16
|
import QuickStartTileDescription from './QuickStartTileDescription';
|
|
20
17
|
import { QuickStart, QuickstartAction } from './types';
|
|
21
18
|
import FallbackImg from './FallbackImg';
|
|
19
|
+
import { RhUiBookmarkIcon, RhUiClockIcon, RhUiRocketFillIcon } from '@patternfly/react-icons';
|
|
22
20
|
|
|
23
21
|
export const camelize = (str: string) =>
|
|
24
22
|
str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function (match, index) {
|
|
@@ -77,7 +75,12 @@ export const QuickStartTile: FC<QuickStartTileProps> = ({
|
|
|
77
75
|
} else {
|
|
78
76
|
quickStartIcon = (
|
|
79
77
|
<Icon size="2xl">
|
|
80
|
-
<FallbackImg
|
|
78
|
+
<FallbackImg
|
|
79
|
+
src={icon as string}
|
|
80
|
+
alt=""
|
|
81
|
+
className="pfext-catalog-item-icon__img"
|
|
82
|
+
fallback={<RhUiRocketFillIcon />}
|
|
83
|
+
/>
|
|
81
84
|
</Icon>
|
|
82
85
|
);
|
|
83
86
|
}
|
|
@@ -91,7 +94,7 @@ export const QuickStartTile: FC<QuickStartTileProps> = ({
|
|
|
91
94
|
onClick && onClick();
|
|
92
95
|
};
|
|
93
96
|
|
|
94
|
-
const ActionIcon = action?.icon ||
|
|
97
|
+
const ActionIcon = action?.icon || RhUiBookmarkIcon;
|
|
95
98
|
const additionalAction = action ? (
|
|
96
99
|
<Button
|
|
97
100
|
aria-label={action['aria-label']}
|
|
@@ -125,7 +128,7 @@ export const QuickStartTile: FC<QuickStartTileProps> = ({
|
|
|
125
128
|
<Flex spaceItems={{ default: 'spaceItemsSm' }}>
|
|
126
129
|
{type && <Label color={type.color}>{type.text}</Label>}
|
|
127
130
|
{durationMinutes && (
|
|
128
|
-
<Label variant="outline" data-test="duration" icon={<
|
|
131
|
+
<Label variant="outline" data-test="duration" icon={<RhUiClockIcon />}>
|
|
129
132
|
{pluralize(durationMinutes, minuteWord, minuteWordPlural)}
|
|
130
133
|
</Label>
|
|
131
134
|
)}
|
|
@@ -8,7 +8,7 @@ import { forwardRef } from 'react';
|
|
|
8
8
|
// Import PatternFly components
|
|
9
9
|
import { Button, ButtonProps, Icon, Tooltip, TooltipProps } from '@patternfly/react-core';
|
|
10
10
|
import { Accept, DropEvent, DropzoneOptions, FileError, FileRejection, useDropzone } from 'react-dropzone';
|
|
11
|
-
import {
|
|
11
|
+
import { RhUiPaperClipIcon } from '@patternfly/react-icons';
|
|
12
12
|
|
|
13
13
|
export interface AttachButtonProps extends ButtonProps {
|
|
14
14
|
/** Callback for when button is clicked */
|
|
@@ -74,7 +74,7 @@ const AttachButtonBase: FunctionComponent<AttachButtonProps> = ({
|
|
|
74
74
|
onAttachRejected,
|
|
75
75
|
validator,
|
|
76
76
|
dropzoneProps,
|
|
77
|
-
icon = <
|
|
77
|
+
icon = <RhUiPaperClipIcon />,
|
|
78
78
|
...props
|
|
79
79
|
}: AttachButtonProps) => {
|
|
80
80
|
const { open, getInputProps } = useDropzone({
|
|
@@ -2,14 +2,9 @@
|
|
|
2
2
|
// Chatbot Footer - Message Bar - Microphone
|
|
3
3
|
// ============================================================================
|
|
4
4
|
import type { FunctionComponent } from 'react';
|
|
5
|
-
|
|
6
5
|
import { useState, useCallback, useEffect } from 'react';
|
|
7
|
-
|
|
8
|
-
// Import PatternFly components
|
|
9
6
|
import { Button, ButtonProps, Tooltip, TooltipProps, Icon } from '@patternfly/react-core';
|
|
10
|
-
|
|
11
|
-
// Import FontAwesome icons
|
|
12
|
-
import { MicrophoneIcon } from '@patternfly/react-icons/dist/esm/icons/microphone-icon';
|
|
7
|
+
import { RhUiMicrophoneFillIcon } from '@patternfly/react-icons';
|
|
13
8
|
|
|
14
9
|
export interface MicrophoneButtonProps extends ButtonProps {
|
|
15
10
|
/** Boolean check if the browser is listening to speech or not */
|
|
@@ -112,7 +107,7 @@ export const MicrophoneButton: FunctionComponent<MicrophoneButtonProps> = ({
|
|
|
112
107
|
onClick={isListening ? stopListening : startListening}
|
|
113
108
|
icon={
|
|
114
109
|
<Icon iconSize={isCompact ? 'lg' : 'xl'} isInline>
|
|
115
|
-
<
|
|
110
|
+
<RhUiMicrophoneFillIcon />
|
|
116
111
|
</Icon>
|
|
117
112
|
}
|
|
118
113
|
size={isCompact ? 'sm' : undefined}
|
|
@@ -2,12 +2,8 @@
|
|
|
2
2
|
// Chatbot Main - Messages - Jump to Top
|
|
3
3
|
// ============================================================================
|
|
4
4
|
import type { FunctionComponent } from 'react';
|
|
5
|
-
|
|
6
|
-
// Import PatternFly components
|
|
7
5
|
import { Button, Tooltip, Icon, TooltipProps, ButtonProps } from '@patternfly/react-core';
|
|
8
|
-
|
|
9
|
-
import { ArrowUpIcon } from '@patternfly/react-icons/dist/esm/icons/arrow-up-icon';
|
|
10
|
-
import { ArrowDownIcon } from '@patternfly/react-icons/dist/esm/icons/arrow-down-icon';
|
|
6
|
+
import { RhMicronsArrowDownIcon, RhMicronsArrowUpIcon } from '@patternfly/react-icons';
|
|
11
7
|
|
|
12
8
|
export interface JumpButtonProps {
|
|
13
9
|
/** Position of the Jump Button(top/bottom) */
|
|
@@ -44,7 +40,7 @@ const JumpButton: FunctionComponent<JumpButtonProps> = ({
|
|
|
44
40
|
{...jumpButtonProps}
|
|
45
41
|
>
|
|
46
42
|
<Icon iconSize="lg" isInline>
|
|
47
|
-
{position === 'top' ? <
|
|
43
|
+
{position === 'top' ? <RhMicronsArrowUpIcon /> : <RhMicronsArrowDownIcon />}
|
|
48
44
|
</Icon>
|
|
49
45
|
</Button>
|
|
50
46
|
</Tooltip>
|
package/src/index.ts
CHANGED
|
@@ -60,9 +60,6 @@ export * from './FilePreview';
|
|
|
60
60
|
export { default as ImagePreview } from './ImagePreview';
|
|
61
61
|
export * from './ImagePreview';
|
|
62
62
|
|
|
63
|
-
export { default as LoadingMessage } from './LoadingMessage';
|
|
64
|
-
export * from './LoadingMessage';
|
|
65
|
-
|
|
66
63
|
export { default as MarkdownContent } from './MarkdownContent';
|
|
67
64
|
export * from './MarkdownContent';
|
|
68
65
|
|