@patternfly/react-core 6.0.0-alpha.20 → 6.0.0-alpha.21
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 +9 -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/Modal/package.json +1 -1
- package/dist/dynamic/next/components/package.json +1 -1
- package/dist/dynamic/styles/package.json +1 -1
- package/dist/esm/components/Icon/Icon.d.ts +4 -3
- package/dist/esm/components/Icon/Icon.d.ts.map +1 -1
- package/dist/esm/components/Icon/Icon.js.map +1 -1
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadStatus.js +2 -2
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadStatus.js.map +1 -1
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadStatusItem.d.ts.map +1 -1
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadStatusItem.js +3 -3
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadStatusItem.js.map +1 -1
- package/dist/esm/components/NotificationBadge/NotificationBadge.d.ts.map +1 -1
- package/dist/esm/components/NotificationBadge/NotificationBadge.js +7 -13
- package/dist/esm/components/NotificationBadge/NotificationBadge.js.map +1 -1
- package/dist/esm/components/Sidebar/Sidebar.d.ts +4 -0
- package/dist/esm/components/Sidebar/Sidebar.d.ts.map +1 -1
- package/dist/esm/components/Sidebar/Sidebar.js +5 -0
- package/dist/esm/components/Sidebar/Sidebar.js.map +1 -1
- package/dist/esm/components/Sidebar/SidebarContent.d.ts +2 -0
- package/dist/esm/components/Sidebar/SidebarContent.d.ts.map +1 -1
- package/dist/esm/components/Sidebar/SidebarContent.js +2 -2
- package/dist/esm/components/Sidebar/SidebarContent.js.map +1 -1
- package/dist/esm/components/Sidebar/SidebarPanel.d.ts +2 -0
- package/dist/esm/components/Sidebar/SidebarPanel.d.ts.map +1 -1
- package/dist/esm/components/Sidebar/SidebarPanel.js +2 -2
- package/dist/esm/components/Sidebar/SidebarPanel.js.map +1 -1
- package/dist/js/components/Icon/Icon.d.ts +4 -3
- package/dist/js/components/Icon/Icon.d.ts.map +1 -1
- package/dist/js/components/Icon/Icon.js.map +1 -1
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadStatus.js +2 -2
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadStatus.js.map +1 -1
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadStatusItem.d.ts.map +1 -1
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadStatusItem.js +3 -3
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadStatusItem.js.map +1 -1
- package/dist/js/components/NotificationBadge/NotificationBadge.d.ts.map +1 -1
- package/dist/js/components/NotificationBadge/NotificationBadge.js +7 -13
- package/dist/js/components/NotificationBadge/NotificationBadge.js.map +1 -1
- package/dist/js/components/Sidebar/Sidebar.d.ts +4 -0
- package/dist/js/components/Sidebar/Sidebar.d.ts.map +1 -1
- package/dist/js/components/Sidebar/Sidebar.js +6 -1
- package/dist/js/components/Sidebar/Sidebar.js.map +1 -1
- package/dist/js/components/Sidebar/SidebarContent.d.ts +2 -0
- package/dist/js/components/Sidebar/SidebarContent.d.ts.map +1 -1
- package/dist/js/components/Sidebar/SidebarContent.js +2 -2
- package/dist/js/components/Sidebar/SidebarContent.js.map +1 -1
- package/dist/js/components/Sidebar/SidebarPanel.d.ts +2 -0
- package/dist/js/components/Sidebar/SidebarPanel.d.ts.map +1 -1
- package/dist/js/components/Sidebar/SidebarPanel.js +2 -2
- package/dist/js/components/Sidebar/SidebarPanel.js.map +1 -1
- package/dist/umd/react-core.min.js +2 -2
- package/helpers/package.json +1 -1
- package/layouts/package.json +1 -1
- package/next/package.json +1 -1
- package/package.json +3 -2
- package/src/components/Icon/Icon.tsx +20 -3
- package/src/components/Icon/__tests__/Icon.test.tsx +49 -30
- package/src/components/Icon/examples/BodyIconSizes.tsx +17 -0
- package/src/components/Icon/examples/HeadingIconSizes.tsx +26 -0
- package/src/components/Icon/examples/Icon.md +18 -2
- package/src/components/Icon/examples/IconContentSizes.tsx +4 -4
- package/src/components/Icon/examples/{IconSizes.tsx → StandaloneIconSizes.tsx} +7 -1
- package/src/components/MultipleFileUpload/MultipleFileUploadStatus.tsx +2 -2
- package/src/components/MultipleFileUpload/MultipleFileUploadStatusItem.tsx +3 -4
- package/src/components/MultipleFileUpload/__tests__/__snapshots__/MultipleFileUploadStatus.test.tsx.snap +4 -4
- package/src/components/MultipleFileUpload/__tests__/__snapshots__/MultipleFileUploadStatusItem.test.tsx.snap +40 -24
- package/src/components/NotificationBadge/NotificationBadge.tsx +19 -15
- package/src/components/NotificationBadge/__tests__/NotificationBadge.test.tsx +4 -4
- package/src/components/NotificationBadge/__tests__/__snapshots__/NotificationBadge.test.tsx.snap +10 -22
- package/src/components/NotificationBadge/examples/NotificationBadge.md +0 -1
- package/src/components/NotificationBadge/examples/NotificationBadgeBasic.tsx +2 -2
- package/src/components/NotificationBadge/examples/NotificationBadgeWithCount.tsx +2 -2
- package/src/components/Sidebar/Sidebar.tsx +5 -0
- package/src/components/Sidebar/SidebarContent.tsx +4 -0
- package/src/components/Sidebar/SidebarPanel.tsx +4 -0
- package/src/components/Sidebar/__tests__/SidebarContent.test.tsx +5 -0
- package/src/components/Sidebar/__tests__/SidebarPanel.test.tsx +5 -0
- package/src/components/NotificationBadge/examples/notificationBadge.css +0 -4
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Button, ButtonVariant, ButtonProps } from '../Button';
|
|
3
|
-
import { css } from '@patternfly/react-styles';
|
|
4
|
-
import styles from '@patternfly/react-styles/css/components/NotificationBadge/notification-badge';
|
|
5
3
|
import AttentionBellIcon from '@patternfly/react-icons/dist/esm/icons/attention-bell-icon';
|
|
6
4
|
import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
|
|
7
5
|
|
|
@@ -42,20 +40,26 @@ export const NotificationBadge: React.FunctionComponent<NotificationBadgeProps>
|
|
|
42
40
|
isExpanded = false,
|
|
43
41
|
...props
|
|
44
42
|
}: NotificationBadgeProps) => {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
43
|
+
const hasCount = count > 0;
|
|
44
|
+
const hasChildren = children !== undefined;
|
|
45
|
+
const isAttention = variant === NotificationBadgeVariant.attention;
|
|
46
|
+
|
|
47
|
+
const notificationIcon = isAttention ? attentionIcon : icon;
|
|
48
|
+
const notificationContent = hasChildren ? children : notificationIcon;
|
|
49
|
+
|
|
50
|
+
const [iconProp, notificationChild] = hasCount ? [notificationContent, count] : [undefined, notificationContent];
|
|
51
|
+
|
|
51
52
|
return (
|
|
52
|
-
<Button
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
<Button
|
|
54
|
+
variant={ButtonVariant.stateful}
|
|
55
|
+
className={className}
|
|
56
|
+
aria-expanded={isExpanded}
|
|
57
|
+
state={variant}
|
|
58
|
+
isClicked={isExpanded}
|
|
59
|
+
icon={iconProp}
|
|
60
|
+
{...props}
|
|
61
|
+
>
|
|
62
|
+
{notificationChild}
|
|
59
63
|
</Button>
|
|
60
64
|
);
|
|
61
65
|
};
|
|
@@ -30,14 +30,14 @@ test('Renders with aria-expanded="true" when isExpanded is passed in.', () => {
|
|
|
30
30
|
expect(screen.getByRole('button')).toHaveAttribute('aria-expanded', 'true');
|
|
31
31
|
});
|
|
32
32
|
|
|
33
|
-
test('Does not render with .pf-m-
|
|
33
|
+
test('Does not render with .pf-m-clicked when isExpanded is not passed in.', () => {
|
|
34
34
|
render(<NotificationBadge />);
|
|
35
35
|
|
|
36
|
-
expect(screen.getByRole('button')
|
|
36
|
+
expect(screen.getByRole('button')).not.toHaveClass('pf-m-clicked');
|
|
37
37
|
});
|
|
38
38
|
|
|
39
|
-
test('Renders with .pf-m-
|
|
39
|
+
test('Renders with .pf-m-clicked when isExpanded is passed in.', () => {
|
|
40
40
|
render(<NotificationBadge isExpanded />);
|
|
41
41
|
|
|
42
|
-
expect(screen.getByRole('button')
|
|
42
|
+
expect(screen.getByRole('button')).toHaveClass('pf-m-clicked');
|
|
43
43
|
});
|
package/src/components/NotificationBadge/__tests__/__snapshots__/NotificationBadge.test.tsx.snap
CHANGED
|
@@ -5,14 +5,14 @@ exports[`NotificationBadge count 1`] = `
|
|
|
5
5
|
<button
|
|
6
6
|
aria-disabled="false"
|
|
7
7
|
aria-expanded="false"
|
|
8
|
-
class="pf-v5-c-button pf-m-
|
|
9
|
-
data-ouia-component-id="OUIA-Generated-Button-
|
|
8
|
+
class="pf-v5-c-button pf-m-stateful pf-m-read"
|
|
9
|
+
data-ouia-component-id="OUIA-Generated-Button-stateful-3"
|
|
10
10
|
data-ouia-component-type="PF5/Button"
|
|
11
11
|
data-ouia-safe="true"
|
|
12
12
|
type="button"
|
|
13
13
|
>
|
|
14
14
|
<span
|
|
15
|
-
class="pf-v5-c-
|
|
15
|
+
class="pf-v5-c-button__icon pf-m-start"
|
|
16
16
|
>
|
|
17
17
|
<svg
|
|
18
18
|
aria-hidden="true"
|
|
@@ -27,12 +27,8 @@ exports[`NotificationBadge count 1`] = `
|
|
|
27
27
|
d="M448,0 C465.333333,0 480.333333,6.33333333 493,19 C505.666667,31.6666667 512,46.6666667 512,64 L512,106 L514.23,106.45 C587.89,121.39 648.48,157.24 696,214 C744,271.333333 768,338.666667 768,416 C768,500 780,568.666667 804,622 C818.666667,652.666667 841.333333,684 872,716 C873.773676,718.829136 875.780658,721.505113 878,724 C890,737.333333 896,752.333333 896,769 C896,785.666667 890,800.333333 878,813 C866,825.666667 850.666667,832 832,832 L63.3,832 C44.9533333,831.84 29.8533333,825.506667 18,813 C6,800.333333 0,785.666667 0,769 C0,752.333333 6,737.333333 18,724 L24,716 L25.06,714.9 C55.1933333,683.28 77.5066667,652.313333 92,622 C116,568.666667 128,500 128,416 C128,338.666667 152,271.333333 200,214 C248,156.666667 309.333333,120.666667 384,106 L384,63.31 C384.166667,46.27 390.5,31.5 403,19 C415.666667,6.33333333 430.666667,0 448,0 Z M576,896 L576,897.08 C575.74,932.6 563.073333,962.573333 538,987 C512.666667,1011.66667 482.666667,1024 448,1024 C413.333333,1024 383.333333,1011.66667 358,987 C332.666667,962.333333 320,932 320,896 L576,896 Z"
|
|
28
28
|
/>
|
|
29
29
|
</svg>
|
|
30
|
-
<span
|
|
31
|
-
class="pf-v5-c-notification-badge__count"
|
|
32
|
-
>
|
|
33
|
-
3
|
|
34
|
-
</span>
|
|
35
30
|
</span>
|
|
31
|
+
3
|
|
36
32
|
</button>
|
|
37
33
|
</DocumentFragment>
|
|
38
34
|
`;
|
|
@@ -42,17 +38,13 @@ exports[`false NotificationBadge needs attention 1`] = `
|
|
|
42
38
|
<button
|
|
43
39
|
aria-disabled="false"
|
|
44
40
|
aria-expanded="false"
|
|
45
|
-
class="pf-v5-c-button pf-m-
|
|
46
|
-
data-ouia-component-id="OUIA-Generated-Button-
|
|
41
|
+
class="pf-v5-c-button pf-m-stateful pf-m-attention"
|
|
42
|
+
data-ouia-component-id="OUIA-Generated-Button-stateful-2"
|
|
47
43
|
data-ouia-component-type="PF5/Button"
|
|
48
44
|
data-ouia-safe="true"
|
|
49
45
|
type="button"
|
|
50
46
|
>
|
|
51
|
-
|
|
52
|
-
class="pf-v5-c-notification-badge pf-m-attention"
|
|
53
|
-
>
|
|
54
|
-
does not need attention Badge
|
|
55
|
-
</span>
|
|
47
|
+
does not need attention Badge
|
|
56
48
|
</button>
|
|
57
49
|
</DocumentFragment>
|
|
58
50
|
`;
|
|
@@ -62,17 +54,13 @@ exports[`true NotificationBadge needs attention 1`] = `
|
|
|
62
54
|
<button
|
|
63
55
|
aria-disabled="false"
|
|
64
56
|
aria-expanded="false"
|
|
65
|
-
class="pf-v5-c-button pf-m-
|
|
66
|
-
data-ouia-component-id="OUIA-Generated-Button-
|
|
57
|
+
class="pf-v5-c-button pf-m-stateful pf-m-attention"
|
|
58
|
+
data-ouia-component-id="OUIA-Generated-Button-stateful-1"
|
|
67
59
|
data-ouia-component-type="PF5/Button"
|
|
68
60
|
data-ouia-safe="true"
|
|
69
61
|
type="button"
|
|
70
62
|
>
|
|
71
|
-
|
|
72
|
-
class="pf-v5-c-notification-badge pf-m-attention"
|
|
73
|
-
>
|
|
74
|
-
needs attention Badge
|
|
75
|
-
</span>
|
|
63
|
+
needs attention Badge
|
|
76
64
|
</button>
|
|
77
65
|
</DocumentFragment>
|
|
78
66
|
`;
|
|
@@ -19,7 +19,7 @@ export const NotificationBadgeBasic: React.FunctionComponent = () => {
|
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
return (
|
|
22
|
-
|
|
22
|
+
<>
|
|
23
23
|
<NotificationBadge
|
|
24
24
|
variant={NotificationBadgeVariant.read}
|
|
25
25
|
onClick={onReadClick}
|
|
@@ -38,6 +38,6 @@ export const NotificationBadgeBasic: React.FunctionComponent = () => {
|
|
|
38
38
|
aria-label="Basic notification badge with attention variant"
|
|
39
39
|
isExpanded={attentionExpanded}
|
|
40
40
|
/>
|
|
41
|
-
|
|
41
|
+
</>
|
|
42
42
|
);
|
|
43
43
|
};
|
|
@@ -19,7 +19,7 @@ export const NotificationBadgeWithCount: React.FunctionComponent = () => {
|
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
return (
|
|
22
|
-
|
|
22
|
+
<>
|
|
23
23
|
<NotificationBadge
|
|
24
24
|
variant={NotificationBadgeVariant.read}
|
|
25
25
|
onClick={onReadClick}
|
|
@@ -41,6 +41,6 @@ export const NotificationBadgeWithCount: React.FunctionComponent = () => {
|
|
|
41
41
|
isExpanded={attentionExpanded}
|
|
42
42
|
count={10}
|
|
43
43
|
/>
|
|
44
|
-
|
|
44
|
+
</>
|
|
45
45
|
);
|
|
46
46
|
};
|
|
@@ -2,6 +2,11 @@ import * as React from 'react';
|
|
|
2
2
|
import { css } from '@patternfly/react-styles';
|
|
3
3
|
import styles from '@patternfly/react-styles/css/components/Sidebar/sidebar';
|
|
4
4
|
|
|
5
|
+
export enum SidebarBackgroundVariant {
|
|
6
|
+
default = 'default',
|
|
7
|
+
secondary = 'secondary'
|
|
8
|
+
}
|
|
9
|
+
|
|
5
10
|
export interface SidebarProps extends React.HTMLProps<HTMLDivElement> {
|
|
6
11
|
children?: React.ReactNode;
|
|
7
12
|
/** Indicates the direction of the layout. Default orientation is stack on small screens, and split on medium screens and above. */
|
|
@@ -8,6 +8,8 @@ export interface SidebarContentProps extends React.HTMLProps<HTMLDivElement> {
|
|
|
8
8
|
hasNoBackground?: boolean;
|
|
9
9
|
/** Adds padding to the content. */
|
|
10
10
|
hasPadding?: boolean;
|
|
11
|
+
/** Variant of the sidebar content background. */
|
|
12
|
+
backgroundVariant?: 'default' | 'secondary';
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
export const SidebarContent: React.FunctionComponent<SidebarContentProps> = ({
|
|
@@ -15,6 +17,7 @@ export const SidebarContent: React.FunctionComponent<SidebarContentProps> = ({
|
|
|
15
17
|
children,
|
|
16
18
|
hasNoBackground,
|
|
17
19
|
hasPadding,
|
|
20
|
+
backgroundVariant = 'default',
|
|
18
21
|
...props
|
|
19
22
|
}: SidebarContentProps) => (
|
|
20
23
|
<div
|
|
@@ -22,6 +25,7 @@ export const SidebarContent: React.FunctionComponent<SidebarContentProps> = ({
|
|
|
22
25
|
styles.sidebarContent,
|
|
23
26
|
hasNoBackground && styles.modifiers.noBackground,
|
|
24
27
|
hasPadding && styles.modifiers.padding,
|
|
28
|
+
backgroundVariant !== 'default' && styles.modifiers[backgroundVariant],
|
|
25
29
|
className
|
|
26
30
|
)}
|
|
27
31
|
{...props}
|
|
@@ -30,6 +30,8 @@ export interface SidebarPanelProps extends Omit<React.HTMLProps<HTMLDivElement>,
|
|
|
30
30
|
xl?: 'default' | 'width_25' | 'width_33' | 'width_50' | 'width_66' | 'width_75' | 'width_100';
|
|
31
31
|
'2xl'?: 'default' | 'width_25' | 'width_33' | 'width_50' | 'width_66' | 'width_75' | 'width_100';
|
|
32
32
|
};
|
|
33
|
+
/** Variant of the sidebar panel background. */
|
|
34
|
+
backgroundVariant?: 'default' | 'secondary';
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
export const SidebarPanel: React.FunctionComponent<SidebarPanelProps> = ({
|
|
@@ -39,6 +41,7 @@ export const SidebarPanel: React.FunctionComponent<SidebarPanelProps> = ({
|
|
|
39
41
|
hasNoBackground,
|
|
40
42
|
hasPadding,
|
|
41
43
|
width,
|
|
44
|
+
backgroundVariant = 'default',
|
|
42
45
|
...props
|
|
43
46
|
}: SidebarPanelProps) => (
|
|
44
47
|
<div
|
|
@@ -48,6 +51,7 @@ export const SidebarPanel: React.FunctionComponent<SidebarPanelProps> = ({
|
|
|
48
51
|
hasNoBackground && styles.modifiers.noBackground,
|
|
49
52
|
hasPadding && styles.modifiers.padding,
|
|
50
53
|
formatBreakpointMods(width, styles),
|
|
54
|
+
backgroundVariant !== 'default' && styles.modifiers[backgroundVariant],
|
|
51
55
|
className
|
|
52
56
|
)}
|
|
53
57
|
{...props}
|
|
@@ -18,6 +18,11 @@ test(`Renders with class name ${styles.sidebarContent}`, () => {
|
|
|
18
18
|
expect(screen.getByText('Test')).toHaveClass(styles.sidebarContent);
|
|
19
19
|
});
|
|
20
20
|
|
|
21
|
+
test(`Renders with class name ${styles.modifiers.secondary} when backgroundVariant="secondary" is passed`, () => {
|
|
22
|
+
render(<SidebarContent backgroundVariant="secondary">Test</SidebarContent>);
|
|
23
|
+
expect(screen.getByText('Test')).toHaveClass(styles.modifiers.secondary);
|
|
24
|
+
});
|
|
25
|
+
|
|
21
26
|
test('Renders with custom class name when className prop is provided', () => {
|
|
22
27
|
render(<SidebarContent className="custom-class">Test</SidebarContent>);
|
|
23
28
|
expect(screen.getByText('Test')).toHaveClass('custom-class');
|
|
@@ -18,6 +18,11 @@ test(`Renders with with class name ${styles.sidebarPanel}`, () => {
|
|
|
18
18
|
expect(screen.getByText('Test')).toHaveClass(styles.sidebarPanel);
|
|
19
19
|
});
|
|
20
20
|
|
|
21
|
+
test(`Renders with class name ${styles.modifiers.secondary} when backgroundVariant="secondary" is passed`, () => {
|
|
22
|
+
render(<SidebarPanel backgroundVariant="secondary">Test</SidebarPanel>);
|
|
23
|
+
expect(screen.getByText('Test')).toHaveClass(styles.modifiers.secondary);
|
|
24
|
+
});
|
|
25
|
+
|
|
21
26
|
test('Renders with custom class name when className prop is provided', () => {
|
|
22
27
|
render(<SidebarPanel className="custom-class">Test</SidebarPanel>);
|
|
23
28
|
expect(screen.getByText('Test')).toHaveClass('custom-class');
|