@patternfly/react-core 6.0.0-alpha.5 → 6.0.0-alpha.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/CHANGELOG.md +106 -0
- package/components/package.json +1 -1
- package/deprecated/package.json +1 -1
- package/dist/dynamic/components/AboutModal/package.json +1 -1
- package/dist/dynamic/components/Accordion/package.json +1 -1
- package/dist/dynamic/components/ActionList/package.json +1 -1
- package/dist/dynamic/components/Alert/package.json +1 -1
- package/dist/dynamic/components/Avatar/package.json +1 -1
- package/dist/dynamic/components/BackToTop/package.json +1 -1
- package/dist/dynamic/components/Backdrop/package.json +1 -1
- package/dist/dynamic/components/BackgroundImage/package.json +1 -1
- package/dist/dynamic/components/Badge/package.json +1 -1
- package/dist/dynamic/components/Banner/package.json +1 -1
- package/dist/dynamic/components/Brand/package.json +1 -1
- package/dist/dynamic/components/Breadcrumb/package.json +1 -1
- package/dist/dynamic/components/Button/package.json +1 -1
- package/dist/dynamic/components/CalendarMonth/package.json +1 -1
- package/dist/dynamic/components/Card/package.json +1 -1
- package/dist/dynamic/components/Checkbox/package.json +1 -1
- package/dist/dynamic/components/Chip/package.json +1 -1
- package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
- package/dist/dynamic/components/CodeBlock/package.json +1 -1
- package/dist/dynamic/components/DataList/package.json +1 -1
- package/dist/dynamic/components/DatePicker/package.json +1 -1
- package/dist/dynamic/components/DescriptionList/package.json +1 -1
- package/dist/dynamic/components/Divider/package.json +1 -1
- package/dist/dynamic/components/DragDrop/package.json +1 -1
- package/dist/dynamic/components/Drawer/package.json +1 -1
- package/dist/dynamic/components/Dropdown/package.json +1 -1
- package/dist/dynamic/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/components/EmptyState/package.json +1 -1
- package/dist/dynamic/components/ExpandableSection/package.json +1 -1
- package/dist/dynamic/components/FileUpload/package.json +1 -1
- package/dist/dynamic/components/Form/package.json +1 -1
- package/dist/dynamic/components/FormSelect/package.json +1 -1
- package/dist/dynamic/components/HelperText/package.json +1 -1
- package/dist/dynamic/components/Hint/package.json +1 -1
- package/dist/dynamic/components/Icon/package.json +1 -1
- package/dist/dynamic/components/InputGroup/package.json +1 -1
- package/dist/dynamic/components/JumpLinks/package.json +1 -1
- package/dist/dynamic/components/Label/package.json +1 -1
- package/dist/dynamic/components/List/package.json +1 -1
- package/dist/dynamic/components/LoginPage/package.json +1 -1
- package/dist/dynamic/components/Masthead/package.json +1 -1
- package/dist/dynamic/components/Menu/package.json +1 -1
- package/dist/dynamic/components/MenuToggle/package.json +1 -1
- package/dist/dynamic/components/Modal/package.json +1 -1
- package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
- package/dist/dynamic/components/Nav/package.json +1 -1
- package/dist/dynamic/components/NotificationBadge/package.json +1 -1
- package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
- package/dist/dynamic/components/NumberInput/package.json +1 -1
- package/dist/dynamic/components/OverflowMenu/package.json +1 -1
- package/dist/dynamic/components/Page/package.json +1 -1
- package/dist/dynamic/components/Pagination/package.json +1 -1
- package/dist/dynamic/components/Panel/package.json +1 -1
- package/dist/dynamic/components/Popover/package.json +1 -1
- package/dist/dynamic/components/Progress/package.json +1 -1
- package/dist/dynamic/components/ProgressStepper/package.json +1 -1
- package/dist/dynamic/components/Radio/package.json +1 -1
- package/dist/dynamic/components/SearchInput/package.json +1 -1
- package/dist/dynamic/components/Select/package.json +1 -1
- package/dist/dynamic/components/Sidebar/package.json +1 -1
- package/dist/dynamic/components/SimpleList/package.json +1 -1
- package/dist/dynamic/components/Skeleton/package.json +1 -1
- package/dist/dynamic/components/SkipToContent/package.json +1 -1
- package/dist/dynamic/components/Slider/package.json +1 -1
- package/dist/dynamic/components/Spinner/package.json +1 -1
- package/dist/dynamic/components/Switch/package.json +1 -1
- package/dist/dynamic/components/Tabs/package.json +1 -1
- package/dist/dynamic/components/Text/package.json +1 -1
- package/dist/dynamic/components/TextArea/package.json +1 -1
- package/dist/dynamic/components/TextInput/package.json +1 -1
- package/dist/dynamic/components/TextInputGroup/package.json +1 -1
- package/dist/dynamic/components/Tile/package.json +1 -1
- package/dist/dynamic/components/TimePicker/package.json +1 -1
- package/dist/dynamic/components/Timestamp/package.json +1 -1
- package/dist/dynamic/components/Title/package.json +1 -1
- package/dist/dynamic/components/ToggleGroup/package.json +1 -1
- package/dist/dynamic/components/Toolbar/package.json +1 -1
- package/dist/dynamic/components/Tooltip/package.json +1 -1
- package/dist/dynamic/components/TreeView/package.json +1 -1
- package/dist/dynamic/components/Truncate/package.json +1 -1
- package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
- package/dist/dynamic/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/ApplicationLauncher/package.json +1 -1
- package/dist/dynamic/deprecated/components/ContextSelector/package.json +1 -1
- package/dist/dynamic/deprecated/components/Dropdown/package.json +1 -1
- package/dist/dynamic/deprecated/components/OptionsMenu/package.json +1 -1
- package/dist/dynamic/deprecated/components/PageHeader/package.json +1 -1
- package/dist/dynamic/deprecated/components/Select/package.json +1 -1
- package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/package.json +1 -1
- package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
- package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
- package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
- package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
- package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
- package/dist/dynamic/helpers/constants/package.json +1 -1
- package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
- package/dist/dynamic/helpers/favorites/package.json +1 -1
- package/dist/dynamic/helpers/fileUtils/package.json +1 -1
- package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
- package/dist/dynamic/helpers/package.json +1 -1
- package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
- package/dist/dynamic/helpers/typeUtils/package.json +1 -1
- package/dist/dynamic/helpers/useInterval/package.json +1 -1
- package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
- package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
- package/dist/dynamic/helpers/util/package.json +1 -1
- package/dist/dynamic/layouts/Bullseye/package.json +1 -1
- package/dist/dynamic/layouts/Flex/package.json +1 -1
- package/dist/dynamic/layouts/Gallery/package.json +1 -1
- package/dist/dynamic/layouts/Grid/package.json +1 -1
- package/dist/dynamic/layouts/Level/package.json +1 -1
- package/dist/dynamic/layouts/Split/package.json +1 -1
- package/dist/dynamic/layouts/Stack/package.json +1 -1
- package/dist/dynamic/next/components/package.json +1 -1
- package/dist/esm/components/Banner/Banner.d.ts +16 -3
- package/dist/esm/components/Banner/Banner.d.ts.map +1 -1
- package/dist/esm/components/Banner/Banner.js +10 -2
- package/dist/esm/components/Banner/Banner.js.map +1 -1
- package/dist/esm/components/List/ListItem.js +1 -1
- package/dist/esm/components/List/ListItem.js.map +1 -1
- package/dist/esm/components/Menu/MenuItem.d.ts +2 -0
- package/dist/esm/components/Menu/MenuItem.d.ts.map +1 -1
- package/dist/esm/components/Menu/MenuItem.js +3 -2
- package/dist/esm/components/Menu/MenuItem.js.map +1 -1
- package/dist/esm/components/Popover/Popover.js +1 -1
- package/dist/esm/components/Popover/Popover.js.map +1 -1
- package/dist/esm/components/Title/Title.d.ts.map +1 -1
- package/dist/esm/components/Title/Title.js +2 -11
- package/dist/esm/components/Title/Title.js.map +1 -1
- package/dist/esm/demos/DashboardHeader.js +1 -1
- package/dist/esm/demos/DashboardHeader.js.map +1 -1
- package/dist/js/components/Banner/Banner.d.ts +16 -3
- package/dist/js/components/Banner/Banner.d.ts.map +1 -1
- package/dist/js/components/Banner/Banner.js +10 -2
- package/dist/js/components/Banner/Banner.js.map +1 -1
- package/dist/js/components/List/ListItem.js +1 -1
- package/dist/js/components/List/ListItem.js.map +1 -1
- package/dist/js/components/Menu/MenuItem.d.ts +2 -0
- package/dist/js/components/Menu/MenuItem.d.ts.map +1 -1
- package/dist/js/components/Menu/MenuItem.js +3 -2
- package/dist/js/components/Menu/MenuItem.js.map +1 -1
- package/dist/js/components/Popover/Popover.js +1 -1
- package/dist/js/components/Popover/Popover.js.map +1 -1
- package/dist/js/components/Title/Title.d.ts.map +1 -1
- package/dist/js/components/Title/Title.js +2 -11
- package/dist/js/components/Title/Title.js.map +1 -1
- package/dist/js/demos/DashboardHeader.js +2 -2
- package/dist/js/demos/DashboardHeader.js.map +1 -1
- package/dist/umd/react-core.min.js +1 -1
- package/helpers/package.json +1 -1
- package/layouts/package.json +1 -1
- package/next/package.json +1 -1
- package/package.json +5 -5
- package/src/components/Banner/Banner.tsx +41 -18
- package/src/components/Banner/__tests__/Banner.test.tsx +56 -11
- package/src/components/Banner/examples/Banner.md +4 -2
- package/src/components/Banner/examples/BannerBasic.tsx +12 -4
- package/src/components/Banner/examples/BannerStatus.tsx +13 -13
- package/src/components/List/ListItem.tsx +1 -1
- package/src/components/List/__tests__/Generated/__snapshots__/ListItem.test.tsx.snap +3 -1
- package/src/components/List/__tests__/__snapshots__/List.test.tsx.snap +57 -15
- package/src/components/Masthead/examples/Masthead.md +8 -146
- package/src/components/Masthead/examples/MastheadBasic.tsx +19 -0
- package/src/components/Masthead/examples/MastheadBasicMixedContent.tsx +37 -0
- package/src/components/Masthead/examples/MastheadDisplayInline.tsx +19 -0
- package/src/components/Masthead/examples/MastheadDisplayStack.tsx +19 -0
- package/src/components/Masthead/examples/MastheadDisplayStackInlineResponsive.tsx +19 -0
- package/src/components/Masthead/examples/MastheadIconRouterLink.tsx +31 -0
- package/src/components/Masthead/examples/MastheadInsets.tsx +19 -0
- package/src/components/Menu/MenuItem.tsx +5 -1
- package/src/components/Popover/Popover.tsx +1 -1
- package/src/components/Select/examples/Select.md +49 -9
- package/src/components/Text/examples/Text.md +1 -1
- package/src/components/Text/examples/TextVisited.tsx +3 -3
- package/src/components/Title/Title.tsx +2 -11
- package/src/components/Title/__tests__/Title.test.tsx +14 -14
- package/src/components/Title/__tests__/__snapshots__/Title.test.tsx.snap +1 -1
- package/src/components/Title/examples/TitleCustomSizes.tsx +6 -6
- package/src/components/Title/examples/TitleDefaultSizes.tsx +6 -6
- package/src/components/assets/PF-HorizontalLogo-Color.svg +29 -0
- package/src/demos/DashboardHeader.tsx +1 -1
- package/src/demos/DataList/examples/DataListExpandableControlInToolbar.tsx +397 -0
- package/src/demos/DataListDemo.md +1 -407
- package/src/demos/Masthead.md +1 -1
- package/src/demos/Nav.md +1 -1
- package/src/demos/NotificationDrawer/NotificationDrawer.md +1 -1
- package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +1 -1
- package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +1 -1
- package/src/demos/Page.md +1 -1
- package/src/demos/RTL/RTL.md +1 -1
- package/src/demos/RTL/examples/PaginatedTable.jsx +1 -1
- package/src/demos/Wizard/WizardDemo.md +1 -1
- package/src/demos/assets/PF-HorizontalLogo-Color.svg +29 -0
- package/src/demos/examples/AlertGroup/AlertGroupToastWithNotificationDrawer.tsx +3 -3
- package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +1 -1
- package/src/demos/examples/Nav/NavFlyout.tsx +1 -1
- package/src/demos/examples/Nav/NavHorizontal.tsx +1 -1
- package/src/demos/examples/Nav/NavHorizontalWithSubnav.tsx +1 -1
- package/src/demos/examples/Nav/NavManual.tsx +1 -1
- package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +1 -1
- package/src/demos/examples/Page/PageStickySectionGroup.tsx +1 -1
- package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +1 -1
- package/src/demos/examples/Wizard/InPageWithDrawer.tsx +1 -1
- package/src/demos/examples/Wizard/InPageWithDrawerInformationalStep.tsx +1 -1
package/helpers/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"6.0.0-alpha.
|
|
1
|
+
{"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"6.0.0-alpha.6","private":true}
|
package/layouts/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"6.0.0-alpha.
|
|
1
|
+
{"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"6.0.0-alpha.6","private":true}
|
package/next/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"6.0.0-alpha.
|
|
1
|
+
{"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"6.0.0-alpha.6","private":true}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/react-core",
|
|
3
|
-
"version": "6.0.0-alpha.
|
|
3
|
+
"version": "6.0.0-alpha.7",
|
|
4
4
|
"description": "This library provides a set of common React components for use with the PatternFly reference implementation.",
|
|
5
5
|
"main": "dist/js/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
"subpaths": "node ../../scripts/exportSubpaths.js --config subpaths.config.json"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@patternfly/react-icons": "^6.0.0-alpha.
|
|
50
|
-
"@patternfly/react-styles": "^6.0.0-alpha.
|
|
51
|
-
"@patternfly/react-tokens": "^6.0.0-alpha.
|
|
49
|
+
"@patternfly/react-icons": "^6.0.0-alpha.5",
|
|
50
|
+
"@patternfly/react-styles": "^6.0.0-alpha.5",
|
|
51
|
+
"@patternfly/react-tokens": "^6.0.0-alpha.5",
|
|
52
52
|
"focus-trap": "7.5.2",
|
|
53
53
|
"react-dropzone": "^14.2.3",
|
|
54
54
|
"tslib": "^2.5.0"
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"react": "^17 || ^18",
|
|
73
73
|
"react-dom": "^17 || ^18"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "e9117354af65f496fe3166e6faea7b8721f08b62"
|
|
76
76
|
}
|
|
@@ -2,6 +2,10 @@ import * as React from 'react';
|
|
|
2
2
|
import styles from '@patternfly/react-styles/css/components/Banner/banner';
|
|
3
3
|
import { css } from '@patternfly/react-styles';
|
|
4
4
|
|
|
5
|
+
export type BannerColor = 'red' | 'orangered' | 'orange' | 'gold' | 'green' | 'cyan' | 'blue' | 'purple';
|
|
6
|
+
|
|
7
|
+
export type BannerStatus = 'success' | 'warning' | 'danger' | 'info' | 'custom';
|
|
8
|
+
|
|
5
9
|
export interface BannerProps extends React.HTMLProps<HTMLDivElement> {
|
|
6
10
|
/** Content rendered inside the banner. */
|
|
7
11
|
children?: React.ReactNode;
|
|
@@ -13,29 +17,48 @@ export interface BannerProps extends React.HTMLProps<HTMLDivElement> {
|
|
|
13
17
|
* be passed in when the banner conveys status/severity.
|
|
14
18
|
*/
|
|
15
19
|
screenReaderText?: string;
|
|
16
|
-
/**
|
|
17
|
-
|
|
20
|
+
/** Color options for the banner, will be overwritten by any applied using the status prop. */
|
|
21
|
+
color?: BannerColor;
|
|
22
|
+
/** Status style options for the banner, will overwrite any color applied using the color prop. */
|
|
23
|
+
status?: BannerStatus;
|
|
24
|
+
}
|
|
25
|
+
interface StatusBanner extends BannerProps {
|
|
26
|
+
color?: never;
|
|
27
|
+
status?: BannerStatus;
|
|
18
28
|
}
|
|
19
29
|
|
|
20
|
-
|
|
30
|
+
interface NonStatusBanner extends BannerProps {
|
|
31
|
+
color?: BannerColor;
|
|
32
|
+
status?: never;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export const Banner: React.FunctionComponent<StatusBanner | NonStatusBanner> = ({
|
|
21
36
|
children,
|
|
22
37
|
className,
|
|
23
|
-
variant = 'default',
|
|
24
38
|
screenReaderText,
|
|
25
39
|
isSticky = false,
|
|
40
|
+
color,
|
|
41
|
+
status,
|
|
26
42
|
...props
|
|
27
|
-
}: BannerProps) =>
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
styles.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
)
|
|
43
|
+
}: BannerProps) => {
|
|
44
|
+
const getStatusOrColorModifier = () => {
|
|
45
|
+
if (status) {
|
|
46
|
+
return styles.modifiers[status];
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (color) {
|
|
50
|
+
return styles.modifiers[color];
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
return (
|
|
55
|
+
<div
|
|
56
|
+
className={css(styles.banner, getStatusOrColorModifier(), isSticky && styles.modifiers.sticky, className)}
|
|
57
|
+
{...props}
|
|
58
|
+
>
|
|
59
|
+
{screenReaderText && <span className="pf-v5-screen-reader">{screenReaderText}</span>}
|
|
60
|
+
{children}
|
|
61
|
+
</div>
|
|
62
|
+
);
|
|
63
|
+
};
|
|
41
64
|
Banner.displayName = 'Banner';
|
|
@@ -27,31 +27,76 @@ test('Renders with custom class name when className prop is provided', () => {
|
|
|
27
27
|
expect(screen.getByText('Test')).toHaveClass('custom-class');
|
|
28
28
|
});
|
|
29
29
|
|
|
30
|
-
test('Renders without any modifier class when
|
|
30
|
+
test('Renders without any modifier class when color and status props are not passed', () => {
|
|
31
31
|
render(<Banner>Test</Banner>);
|
|
32
32
|
expect(screen.getByText('Test')).toHaveClass(styles.banner, { exact: true });
|
|
33
33
|
});
|
|
34
34
|
|
|
35
|
-
test('Renders with class name pf-m-
|
|
36
|
-
render(<Banner
|
|
37
|
-
expect(screen.getByText('Test')).toHaveClass('pf-m-
|
|
35
|
+
test('Renders with class name pf-m-red when "red" is passed to color prop', () => {
|
|
36
|
+
render(<Banner color="red">Test</Banner>);
|
|
37
|
+
expect(screen.getByText('Test')).toHaveClass('pf-m-red');
|
|
38
38
|
});
|
|
39
39
|
|
|
40
|
-
test('Renders with class name pf-m-
|
|
41
|
-
render(<Banner
|
|
42
|
-
expect(screen.getByText('Test')).toHaveClass('pf-m-
|
|
40
|
+
test('Renders with class name pf-m-orangered when "orangered" is passed to color prop', () => {
|
|
41
|
+
render(<Banner color="orangered">Test</Banner>);
|
|
42
|
+
expect(screen.getByText('Test')).toHaveClass('pf-m-orangered');
|
|
43
43
|
});
|
|
44
44
|
|
|
45
|
-
test('Renders with class name pf-m-
|
|
46
|
-
render(<Banner
|
|
45
|
+
test('Renders with class name pf-m-orange when "orange" is passed to color prop', () => {
|
|
46
|
+
render(<Banner color="orange">Test</Banner>);
|
|
47
|
+
expect(screen.getByText('Test')).toHaveClass('pf-m-orange');
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test('Renders with class name pf-m-gold when "gold" is passed to color prop', () => {
|
|
51
|
+
render(<Banner color="gold">Test</Banner>);
|
|
47
52
|
expect(screen.getByText('Test')).toHaveClass('pf-m-gold');
|
|
48
53
|
});
|
|
49
54
|
|
|
50
|
-
test('Renders with class name pf-m-
|
|
51
|
-
render(<Banner
|
|
55
|
+
test('Renders with class name pf-m-green when "green" is passed to color prop', () => {
|
|
56
|
+
render(<Banner color="green">Test</Banner>);
|
|
57
|
+
expect(screen.getByText('Test')).toHaveClass('pf-m-green');
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
test('Renders with class name pf-m-cyan when "cyan" is passed to color prop', () => {
|
|
61
|
+
render(<Banner color="cyan">Test</Banner>);
|
|
62
|
+
expect(screen.getByText('Test')).toHaveClass('pf-m-cyan');
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
test('Renders with class name pf-m-blue when "blue" is passed to color prop', () => {
|
|
66
|
+
render(<Banner color="blue">Test</Banner>);
|
|
52
67
|
expect(screen.getByText('Test')).toHaveClass('pf-m-blue');
|
|
53
68
|
});
|
|
54
69
|
|
|
70
|
+
test('Renders with class name pf-m-purple when "purple" is passed to color prop', () => {
|
|
71
|
+
render(<Banner color="purple">Test</Banner>);
|
|
72
|
+
expect(screen.getByText('Test')).toHaveClass('pf-m-purple');
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
test('Renders with class name pf-m-success when "success" is passed to status prop', () => {
|
|
76
|
+
render(<Banner status="success">Test</Banner>);
|
|
77
|
+
expect(screen.getByText('Test')).toHaveClass('pf-m-success');
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
test('Renders with class name pf-m-warning when "warning" is passed to status prop', () => {
|
|
81
|
+
render(<Banner status="warning">Test</Banner>);
|
|
82
|
+
expect(screen.getByText('Test')).toHaveClass('pf-m-warning');
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
test('Renders with class name pf-m-danger when "danger" is passed to status prop', () => {
|
|
86
|
+
render(<Banner status="danger">Test</Banner>);
|
|
87
|
+
expect(screen.getByText('Test')).toHaveClass('pf-m-danger');
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
test('Renders with class name pf-m-info when "info" is passed to status prop', () => {
|
|
91
|
+
render(<Banner status="info">Test</Banner>);
|
|
92
|
+
expect(screen.getByText('Test')).toHaveClass('pf-m-info');
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
test('Renders with class name pf-m-custom when "custom" is passed to status prop', () => {
|
|
96
|
+
render(<Banner status="custom">Test</Banner>);
|
|
97
|
+
expect(screen.getByText('Test')).toHaveClass('pf-m-custom');
|
|
98
|
+
});
|
|
99
|
+
|
|
55
100
|
test('Does not render pf-v5-screen-reader class by default', () => {
|
|
56
101
|
render(<Banner>Test</Banner>);
|
|
57
102
|
expect(screen.getByText('Test')).not.toContainHTML('<span class="pf-v5-screen-reader"></span>');
|
|
@@ -15,7 +15,7 @@ import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
|
|
|
15
15
|
|
|
16
16
|
### Basic
|
|
17
17
|
|
|
18
|
-
Banners can be styled with one of
|
|
18
|
+
Banners can be styled with one of 9 different colors using the `color` prop. A basic banner should only be used when the banner color does not represent status or severity.
|
|
19
19
|
|
|
20
20
|
```ts file="./BannerBasic.tsx"
|
|
21
21
|
|
|
@@ -23,7 +23,9 @@ Banners can be styled with one of 5 different colors. A basic banner should only
|
|
|
23
23
|
|
|
24
24
|
### Status
|
|
25
25
|
|
|
26
|
-
When a banner is used to convey status, it is advised to pass
|
|
26
|
+
When a banner is used to convey status it should be styled using the `status` prop. Additionally, it is advised to pass an icon inside the banner to convey the status in a way besides just color.
|
|
27
|
+
|
|
28
|
+
The `screenReaderText` prop should also be passed in to convey the status/severity of the banner to users of certain assistive technologies such as screen readers.
|
|
27
29
|
|
|
28
30
|
In the following example, a flex layout is used inside the banner content to show one possible way to create spacing between the icons and banner text.
|
|
29
31
|
|
|
@@ -5,12 +5,20 @@ export const BannerBasic: React.FunctionComponent = () => (
|
|
|
5
5
|
<>
|
|
6
6
|
<Banner>Default banner</Banner>
|
|
7
7
|
<br />
|
|
8
|
-
<Banner
|
|
8
|
+
<Banner color="red">Red banner</Banner>
|
|
9
9
|
<br />
|
|
10
|
-
<Banner
|
|
10
|
+
<Banner color="orangered">Orangered banner</Banner>
|
|
11
11
|
<br />
|
|
12
|
-
<Banner
|
|
12
|
+
<Banner color="orange">Orange banner</Banner>
|
|
13
13
|
<br />
|
|
14
|
-
<Banner
|
|
14
|
+
<Banner color="gold">Gold banner</Banner>
|
|
15
|
+
<br />
|
|
16
|
+
<Banner color="green">Green banner</Banner>
|
|
17
|
+
<br />
|
|
18
|
+
<Banner color="cyan">Cyan banner</Banner>
|
|
19
|
+
<br />
|
|
20
|
+
<Banner color="blue">Blue banner</Banner>
|
|
21
|
+
<br />
|
|
22
|
+
<Banner color="purple">Purple banner</Banner>
|
|
15
23
|
</>
|
|
16
24
|
);
|
|
@@ -8,25 +8,25 @@ import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
|
|
|
8
8
|
|
|
9
9
|
export const BannerStatus: React.FunctionComponent = () => (
|
|
10
10
|
<>
|
|
11
|
-
<Banner screenReaderText="
|
|
11
|
+
<Banner screenReaderText="Success banner" status="success">
|
|
12
12
|
<Flex spaceItems={{ default: 'spaceItemsSm' }}>
|
|
13
13
|
<FlexItem>
|
|
14
|
-
<
|
|
14
|
+
<CheckCircleIcon />
|
|
15
15
|
</FlexItem>
|
|
16
|
-
<FlexItem>
|
|
16
|
+
<FlexItem>Success banner</FlexItem>
|
|
17
17
|
</Flex>
|
|
18
18
|
</Banner>
|
|
19
19
|
<br />
|
|
20
|
-
<Banner screenReaderText="
|
|
20
|
+
<Banner screenReaderText="Warning banner" status="warning">
|
|
21
21
|
<Flex spaceItems={{ default: 'spaceItemsSm' }}>
|
|
22
22
|
<FlexItem>
|
|
23
|
-
<
|
|
23
|
+
<ExclamationTriangleIcon />
|
|
24
24
|
</FlexItem>
|
|
25
|
-
<FlexItem>
|
|
25
|
+
<FlexItem>Warning banner</FlexItem>
|
|
26
26
|
</Flex>
|
|
27
27
|
</Banner>
|
|
28
28
|
<br />
|
|
29
|
-
<Banner screenReaderText="Danger banner"
|
|
29
|
+
<Banner screenReaderText="Danger banner" status="danger">
|
|
30
30
|
<Flex spaceItems={{ default: 'spaceItemsSm' }}>
|
|
31
31
|
<FlexItem>
|
|
32
32
|
<ExclamationCircleIcon />
|
|
@@ -35,21 +35,21 @@ export const BannerStatus: React.FunctionComponent = () => (
|
|
|
35
35
|
</Flex>
|
|
36
36
|
</Banner>
|
|
37
37
|
<br />
|
|
38
|
-
<Banner screenReaderText="
|
|
38
|
+
<Banner screenReaderText="Info banner" status="info">
|
|
39
39
|
<Flex spaceItems={{ default: 'spaceItemsSm' }}>
|
|
40
40
|
<FlexItem>
|
|
41
|
-
<
|
|
41
|
+
<InfoCircleIcon />
|
|
42
42
|
</FlexItem>
|
|
43
|
-
<FlexItem>
|
|
43
|
+
<FlexItem>Info banner</FlexItem>
|
|
44
44
|
</Flex>
|
|
45
45
|
</Banner>
|
|
46
46
|
<br />
|
|
47
|
-
<Banner screenReaderText="
|
|
47
|
+
<Banner screenReaderText="Custom banner" status="custom">
|
|
48
48
|
<Flex spaceItems={{ default: 'spaceItemsSm' }}>
|
|
49
49
|
<FlexItem>
|
|
50
|
-
<
|
|
50
|
+
<BellIcon />
|
|
51
51
|
</FlexItem>
|
|
52
|
-
<FlexItem>
|
|
52
|
+
<FlexItem>Custom banner</FlexItem>
|
|
53
53
|
</Flex>
|
|
54
54
|
</Banner>
|
|
55
55
|
</>
|
|
@@ -16,7 +16,7 @@ export const ListItem: React.FunctionComponent<ListItemProps> = ({
|
|
|
16
16
|
}: ListItemProps) => (
|
|
17
17
|
<li className={css(icon && styles.listItem)} {...props}>
|
|
18
18
|
{icon && <span className={css(styles.listItemIcon)}>{icon}</span>}
|
|
19
|
-
{children}
|
|
19
|
+
<span className={icon && css(`${styles.list}__item-text`)}>{children}</span>
|
|
20
20
|
</li>
|
|
21
21
|
);
|
|
22
22
|
ListItem.displayName = 'ListItem';
|
|
@@ -25,7 +25,11 @@ exports[`List icon large list 1`] = `
|
|
|
25
25
|
/>
|
|
26
26
|
</svg>
|
|
27
27
|
</span>
|
|
28
|
-
|
|
28
|
+
<span
|
|
29
|
+
class="pf-v5-c-list__item-text"
|
|
30
|
+
>
|
|
31
|
+
Apple
|
|
32
|
+
</span>
|
|
29
33
|
</li>
|
|
30
34
|
<li
|
|
31
35
|
class="pf-v5-c-list__item"
|
|
@@ -47,7 +51,11 @@ exports[`List icon large list 1`] = `
|
|
|
47
51
|
/>
|
|
48
52
|
</svg>
|
|
49
53
|
</span>
|
|
50
|
-
|
|
54
|
+
<span
|
|
55
|
+
class="pf-v5-c-list__item-text"
|
|
56
|
+
>
|
|
57
|
+
Banana
|
|
58
|
+
</span>
|
|
51
59
|
</li>
|
|
52
60
|
<li
|
|
53
61
|
class="pf-v5-c-list__item"
|
|
@@ -69,7 +77,11 @@ exports[`List icon large list 1`] = `
|
|
|
69
77
|
/>
|
|
70
78
|
</svg>
|
|
71
79
|
</span>
|
|
72
|
-
|
|
80
|
+
<span
|
|
81
|
+
class="pf-v5-c-list__item-text"
|
|
82
|
+
>
|
|
83
|
+
Orange
|
|
84
|
+
</span>
|
|
73
85
|
</li>
|
|
74
86
|
</ul>
|
|
75
87
|
</DocumentFragment>
|
|
@@ -101,7 +113,11 @@ exports[`List icon list 1`] = `
|
|
|
101
113
|
/>
|
|
102
114
|
</svg>
|
|
103
115
|
</span>
|
|
104
|
-
|
|
116
|
+
<span
|
|
117
|
+
class="pf-v5-c-list__item-text"
|
|
118
|
+
>
|
|
119
|
+
Apple
|
|
120
|
+
</span>
|
|
105
121
|
</li>
|
|
106
122
|
<li
|
|
107
123
|
class="pf-v5-c-list__item"
|
|
@@ -123,7 +139,11 @@ exports[`List icon list 1`] = `
|
|
|
123
139
|
/>
|
|
124
140
|
</svg>
|
|
125
141
|
</span>
|
|
126
|
-
|
|
142
|
+
<span
|
|
143
|
+
class="pf-v5-c-list__item-text"
|
|
144
|
+
>
|
|
145
|
+
Banana
|
|
146
|
+
</span>
|
|
127
147
|
</li>
|
|
128
148
|
<li
|
|
129
149
|
class="pf-v5-c-list__item"
|
|
@@ -145,7 +165,11 @@ exports[`List icon list 1`] = `
|
|
|
145
165
|
/>
|
|
146
166
|
</svg>
|
|
147
167
|
</span>
|
|
148
|
-
|
|
168
|
+
<span
|
|
169
|
+
class="pf-v5-c-list__item-text"
|
|
170
|
+
>
|
|
171
|
+
Orange
|
|
172
|
+
</span>
|
|
149
173
|
</li>
|
|
150
174
|
</ul>
|
|
151
175
|
</DocumentFragment>
|
|
@@ -162,17 +186,23 @@ exports[`List inline list 1`] = `
|
|
|
162
186
|
<li
|
|
163
187
|
class=""
|
|
164
188
|
>
|
|
165
|
-
|
|
189
|
+
<span>
|
|
190
|
+
First
|
|
191
|
+
</span>
|
|
166
192
|
</li>
|
|
167
193
|
<li
|
|
168
194
|
class=""
|
|
169
195
|
>
|
|
170
|
-
|
|
196
|
+
<span>
|
|
197
|
+
Second
|
|
198
|
+
</span>
|
|
171
199
|
</li>
|
|
172
200
|
<li
|
|
173
201
|
class=""
|
|
174
202
|
>
|
|
175
|
-
|
|
203
|
+
<span>
|
|
204
|
+
Third
|
|
205
|
+
</span>
|
|
176
206
|
</li>
|
|
177
207
|
</ul>
|
|
178
208
|
</ul>
|
|
@@ -188,17 +218,23 @@ exports[`List ordered list 1`] = `
|
|
|
188
218
|
<li
|
|
189
219
|
class=""
|
|
190
220
|
>
|
|
191
|
-
|
|
221
|
+
<span>
|
|
222
|
+
Apple
|
|
223
|
+
</span>
|
|
192
224
|
</li>
|
|
193
225
|
<li
|
|
194
226
|
class=""
|
|
195
227
|
>
|
|
196
|
-
|
|
228
|
+
<span>
|
|
229
|
+
Banana
|
|
230
|
+
</span>
|
|
197
231
|
</li>
|
|
198
232
|
<li
|
|
199
233
|
class=""
|
|
200
234
|
>
|
|
201
|
-
|
|
235
|
+
<span>
|
|
236
|
+
Orange
|
|
237
|
+
</span>
|
|
202
238
|
</li>
|
|
203
239
|
</ol>
|
|
204
240
|
</DocumentFragment>
|
|
@@ -215,17 +251,23 @@ exports[`List simple list 1`] = `
|
|
|
215
251
|
<li
|
|
216
252
|
class=""
|
|
217
253
|
>
|
|
218
|
-
|
|
254
|
+
<span>
|
|
255
|
+
First
|
|
256
|
+
</span>
|
|
219
257
|
</li>
|
|
220
258
|
<li
|
|
221
259
|
class=""
|
|
222
260
|
>
|
|
223
|
-
|
|
261
|
+
<span>
|
|
262
|
+
Second
|
|
263
|
+
</span>
|
|
224
264
|
</li>
|
|
225
265
|
<li
|
|
226
266
|
class=""
|
|
227
267
|
>
|
|
228
|
-
|
|
268
|
+
<span>
|
|
269
|
+
Third
|
|
270
|
+
</span>
|
|
229
271
|
</li>
|
|
230
272
|
</ul>
|
|
231
273
|
</ul>
|