@patternfly/react-core 4.264.1 → 4.265.1
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 +26 -0
- package/dist/esm/components/Badge/Badge.d.ts +2 -0
- package/dist/esm/components/Badge/Badge.d.ts.map +1 -1
- package/dist/esm/components/Badge/Badge.js +4 -2
- package/dist/esm/components/Badge/Badge.js.map +1 -1
- package/dist/esm/components/TimePicker/TimePicker.d.ts +0 -1
- package/dist/esm/components/TimePicker/TimePicker.d.ts.map +1 -1
- package/dist/esm/components/TimePicker/TimePicker.js +1 -9
- package/dist/esm/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/esm/next/components/Dropdown/DropdownItem.d.ts +2 -0
- package/dist/esm/next/components/Dropdown/DropdownItem.d.ts.map +1 -1
- package/dist/esm/next/components/Dropdown/DropdownItem.js +2 -2
- package/dist/esm/next/components/Dropdown/DropdownItem.js.map +1 -1
- package/dist/esm/next/components/Wizard/Wizard.d.ts +1 -1
- package/dist/esm/next/components/Wizard/Wizard.d.ts.map +1 -1
- package/dist/esm/next/components/Wizard/WizardContext.d.ts +2 -2
- package/dist/esm/next/components/Wizard/WizardContext.d.ts.map +1 -1
- package/dist/esm/next/components/Wizard/WizardFooter.d.ts +2 -2
- package/dist/esm/next/components/Wizard/WizardFooter.d.ts.map +1 -1
- package/dist/esm/next/components/Wizard/WizardNavInternal.js +2 -2
- package/dist/esm/next/components/Wizard/WizardNavInternal.js.map +1 -1
- package/dist/esm/next/components/Wizard/WizardNavItem.js +1 -1
- package/dist/esm/next/components/Wizard/WizardNavItem.js.map +1 -1
- package/dist/esm/next/components/Wizard/WizardStep.d.ts +2 -0
- package/dist/esm/next/components/Wizard/WizardStep.d.ts.map +1 -1
- package/dist/esm/next/components/Wizard/WizardStep.js.map +1 -1
- package/dist/esm/next/components/Wizard/types.d.ts +4 -2
- package/dist/esm/next/components/Wizard/types.d.ts.map +1 -1
- package/dist/esm/next/components/Wizard/types.js.map +1 -1
- package/dist/js/components/Badge/Badge.d.ts +2 -0
- package/dist/js/components/Badge/Badge.d.ts.map +1 -1
- package/dist/js/components/Badge/Badge.js +4 -2
- package/dist/js/components/Badge/Badge.js.map +1 -1
- package/dist/js/components/TimePicker/TimePicker.d.ts +0 -1
- package/dist/js/components/TimePicker/TimePicker.d.ts.map +1 -1
- package/dist/js/components/TimePicker/TimePicker.js +1 -9
- package/dist/js/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/js/next/components/Dropdown/DropdownItem.d.ts +2 -0
- package/dist/js/next/components/Dropdown/DropdownItem.d.ts.map +1 -1
- package/dist/js/next/components/Dropdown/DropdownItem.js +2 -2
- package/dist/js/next/components/Dropdown/DropdownItem.js.map +1 -1
- package/dist/js/next/components/Wizard/Wizard.d.ts +1 -1
- package/dist/js/next/components/Wizard/Wizard.d.ts.map +1 -1
- package/dist/js/next/components/Wizard/WizardContext.d.ts +2 -2
- package/dist/js/next/components/Wizard/WizardContext.d.ts.map +1 -1
- package/dist/js/next/components/Wizard/WizardFooter.d.ts +2 -2
- package/dist/js/next/components/Wizard/WizardFooter.d.ts.map +1 -1
- package/dist/js/next/components/Wizard/WizardNavInternal.js +2 -2
- package/dist/js/next/components/Wizard/WizardNavInternal.js.map +1 -1
- package/dist/js/next/components/Wizard/WizardNavItem.js +1 -1
- package/dist/js/next/components/Wizard/WizardNavItem.js.map +1 -1
- package/dist/js/next/components/Wizard/WizardStep.d.ts +2 -0
- package/dist/js/next/components/Wizard/WizardStep.d.ts.map +1 -1
- package/dist/js/next/components/Wizard/WizardStep.js.map +1 -1
- package/dist/js/next/components/Wizard/types.d.ts +4 -2
- package/dist/js/next/components/Wizard/types.d.ts.map +1 -1
- package/dist/js/next/components/Wizard/types.js.map +1 -1
- package/dist/umd/react-core.min.css +360 -360
- package/dist/umd/react-core.min.js +2 -2
- package/package.json +6 -6
- package/src/components/Badge/Badge.tsx +4 -0
- package/src/components/Badge/__tests__/Badge.test.tsx +10 -0
- package/src/components/Badge/examples/BadgeUnread.tsx +12 -1
- package/src/components/Menu/examples/MenuWithDrilldownBreadcrumbs.tsx +60 -22
- package/src/components/Tabs/examples/Tabs.md +21 -1557
- package/src/components/Tabs/examples/TabsBoxLight.tsx +63 -0
- package/src/components/Tabs/examples/TabsChildrenMounting.tsx +33 -0
- package/src/components/Tabs/examples/TabsContentWithBodyPadding.tsx +58 -0
- package/src/components/Tabs/examples/TabsDefault.tsx +62 -0
- package/src/components/Tabs/examples/TabsDefaultOverflow.tsx +74 -0
- package/src/components/Tabs/examples/TabsFilled.tsx +51 -0
- package/src/components/Tabs/examples/TabsFilledWithIcons.tsx +85 -0
- package/src/components/Tabs/examples/TabsIconAndText.tsx +108 -0
- package/src/components/Tabs/examples/TabsInset.tsx +65 -0
- package/src/components/Tabs/examples/TabsNav.tsx +40 -0
- package/src/components/Tabs/examples/TabsNavSecondary.tsx +76 -0
- package/src/components/Tabs/examples/TabsPageInsets.tsx +60 -0
- package/src/components/Tabs/examples/TabsSeparateContent.tsx +75 -0
- package/src/components/Tabs/examples/TabsSubtabs.tsx +115 -0
- package/src/components/Tabs/examples/TabsToggledSeparateContent.tsx +67 -0
- package/src/components/Tabs/examples/TabsTooltipReactRef.tsx +72 -0
- package/src/components/Tabs/examples/TabsUncontrolled.tsx +33 -0
- package/src/components/Tabs/examples/TabsUnmountingInvisibleChildren.tsx +33 -0
- package/src/components/Tabs/examples/TabsVertical.tsx +72 -0
- package/src/components/Tabs/examples/TabsVerticalExpandable.tsx +51 -0
- package/src/components/Tabs/examples/TabsVerticalExpandableUncontrolled.tsx +48 -0
- package/src/components/TimePicker/TimePicker.tsx +0 -11
- package/src/next/components/Dropdown/DropdownItem.tsx +4 -1
- package/src/next/components/Wizard/Wizard.tsx +1 -1
- package/src/next/components/Wizard/WizardContext.tsx +2 -2
- package/src/next/components/Wizard/WizardFooter.tsx +2 -2
- package/src/next/components/Wizard/WizardNavInternal.tsx +1 -1
- package/src/next/components/Wizard/WizardNavItem.tsx +1 -1
- package/src/next/components/Wizard/WizardStep.tsx +2 -0
- package/src/next/components/Wizard/__tests__/Wizard.test.tsx +33 -1
- package/src/next/components/Wizard/__tests__/WizardStep.test.tsx +1 -2
- package/src/next/components/Wizard/examples/Wizard.md +1 -1
- package/src/next/components/Wizard/examples/WizardKitchenSink.tsx +21 -2
- package/src/next/components/Wizard/types.tsx +9 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/react-core",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.265.1",
|
|
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",
|
|
@@ -51,16 +51,16 @@
|
|
|
51
51
|
"generate": "node scripts/copyStyles.js"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@patternfly/react-icons": "^4.93.
|
|
55
|
-
"@patternfly/react-styles": "^4.92.
|
|
56
|
-
"@patternfly/react-tokens": "^4.94.
|
|
54
|
+
"@patternfly/react-icons": "^4.93.1",
|
|
55
|
+
"@patternfly/react-styles": "^4.92.1",
|
|
56
|
+
"@patternfly/react-tokens": "^4.94.1",
|
|
57
57
|
"focus-trap": "6.9.2",
|
|
58
58
|
"react-dropzone": "9.0.0",
|
|
59
59
|
"tippy.js": "5.1.2",
|
|
60
60
|
"tslib": "^2.0.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@patternfly/patternfly": "4.221.
|
|
63
|
+
"@patternfly/patternfly": "4.221.3",
|
|
64
64
|
"@rollup/plugin-commonjs": "^21.0.0",
|
|
65
65
|
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
66
66
|
"@rollup/plugin-replace": "^3.0.0",
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"react": "^16.8 || ^17 || ^18",
|
|
78
78
|
"react-dom": "^16.8 || ^17 || ^18"
|
|
79
79
|
},
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "48ab4d42a8037f77aa57bdfa3211745d4d873f34"
|
|
81
81
|
}
|
|
@@ -3,6 +3,8 @@ import { css } from '@patternfly/react-styles';
|
|
|
3
3
|
import styles from '@patternfly/react-styles/css/components/Badge/badge';
|
|
4
4
|
|
|
5
5
|
export interface BadgeProps extends React.HTMLProps<HTMLSpanElement> {
|
|
6
|
+
/** Text announced by screen readers to indicate the current content/status of the badge. */
|
|
7
|
+
screenReaderText?: string;
|
|
6
8
|
/** Adds styling to the badge to indicate it has been read */
|
|
7
9
|
isRead?: boolean;
|
|
8
10
|
/** content rendered inside the Badge */
|
|
@@ -15,6 +17,7 @@ export const Badge: React.FunctionComponent<BadgeProps> = ({
|
|
|
15
17
|
isRead = false,
|
|
16
18
|
className = '',
|
|
17
19
|
children = '',
|
|
20
|
+
screenReaderText,
|
|
18
21
|
...props
|
|
19
22
|
}: BadgeProps) => (
|
|
20
23
|
<span
|
|
@@ -22,6 +25,7 @@ export const Badge: React.FunctionComponent<BadgeProps> = ({
|
|
|
22
25
|
className={css(styles.badge, (isRead ? styles.modifiers.read : styles.modifiers.unread) as any, className)}
|
|
23
26
|
>
|
|
24
27
|
{children}
|
|
28
|
+
{screenReaderText && <span className="pf-screen-reader">{screenReaderText}</span>}
|
|
25
29
|
</span>
|
|
26
30
|
);
|
|
27
31
|
Badge.displayName = 'Badge';
|
|
@@ -31,6 +31,16 @@ test('Renders with class name pf-m-read when isRead prop is true', () => {
|
|
|
31
31
|
expect(screen.getByText('Test')).toHaveClass('pf-m-read');
|
|
32
32
|
});
|
|
33
33
|
|
|
34
|
+
test('Does not render pf-screen-reader class by default', () => {
|
|
35
|
+
render(<Badge>Test</Badge>);
|
|
36
|
+
expect(screen.getByText('Test')).not.toContainHTML('<span class="pf-screen-reader"></span>');
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
test('Renders screenReaderText passed via prop', () => {
|
|
40
|
+
render(<Badge screenReaderText="Custom screen reader text">Test</Badge>);
|
|
41
|
+
expect(screen.getByText('Custom screen reader text')).toBeInTheDocument();
|
|
42
|
+
});
|
|
43
|
+
|
|
34
44
|
test('Renders with custom class name when className prop is provided', () => {
|
|
35
45
|
render(<Badge className="custom-class">Test</Badge>);
|
|
36
46
|
expect(screen.getByText('Test')).toHaveClass('custom-class');
|
|
@@ -3,6 +3,17 @@ import { Badge } from '@patternfly/react-core';
|
|
|
3
3
|
|
|
4
4
|
export const BadgeUnread: React.FunctionComponent = () => (
|
|
5
5
|
<React.Fragment>
|
|
6
|
-
<Badge key={1}
|
|
6
|
+
<Badge key={1} screenReaderText="Unread Messages">
|
|
7
|
+
7
|
|
8
|
+
</Badge>
|
|
9
|
+
<Badge key={2} screenReaderText="Unread Messages">
|
|
10
|
+
24
|
|
11
|
+
</Badge>
|
|
12
|
+
<Badge key={3} screenReaderText="Unread Messages">
|
|
13
|
+
240
|
|
14
|
+
</Badge>
|
|
15
|
+
<Badge key={4} screenReaderText="Unread Messages">
|
|
16
|
+
999+
|
|
17
|
+
</Badge>
|
|
7
18
|
</React.Fragment>
|
|
8
19
|
);
|
|
@@ -26,7 +26,7 @@ export const MenuWithDrilldownBreadcrumbs: React.FunctionComponent = () => {
|
|
|
26
26
|
const [drilldownPath, setDrilldownPath] = React.useState<string[]>([]);
|
|
27
27
|
const [menuHeights, setMenuHeights] = React.useState<any>({});
|
|
28
28
|
const [activeMenu, setActiveMenu] = React.useState<string>('breadcrumbs-rootMenu');
|
|
29
|
-
const [breadcrumb, setBreadcrumb] = React.useState<JSX.Element>();
|
|
29
|
+
const [breadcrumb, setBreadcrumb] = React.useState<JSX.Element | null>();
|
|
30
30
|
const [withMaxMenuHeight, setWithMaxMenuHeight] = React.useState(false);
|
|
31
31
|
|
|
32
32
|
const onToggle = (isOpen: boolean, key: string) => {
|
|
@@ -37,6 +37,12 @@ export const MenuWithDrilldownBreadcrumbs: React.FunctionComponent = () => {
|
|
|
37
37
|
case 'label':
|
|
38
38
|
setBreadcrumb(labelsBreadcrumb(isOpen));
|
|
39
39
|
break;
|
|
40
|
+
case 'pause-app':
|
|
41
|
+
setBreadcrumb(pauseRolloutsAppGrpBreadcrumb(isOpen));
|
|
42
|
+
break;
|
|
43
|
+
case 'pause-label':
|
|
44
|
+
setBreadcrumb(pauseRolloutsLabelsBreadcrumb(isOpen));
|
|
45
|
+
break;
|
|
40
46
|
default:
|
|
41
47
|
break;
|
|
42
48
|
}
|
|
@@ -46,14 +52,17 @@ export const MenuWithDrilldownBreadcrumbs: React.FunctionComponent = () => {
|
|
|
46
52
|
setWithMaxMenuHeight(checked);
|
|
47
53
|
};
|
|
48
54
|
|
|
49
|
-
const drillOut = (toMenuId: string, fromPathId: string,
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
const drillOut = (toMenuId: string, fromPathId: string, breadcrumb: JSX.Element | null) => {
|
|
56
|
+
setMenuDrilledIn(prevMenuDrilledIn => {
|
|
57
|
+
const indexOfMenuId = prevMenuDrilledIn.indexOf(toMenuId);
|
|
58
|
+
return prevMenuDrilledIn.slice(0, indexOfMenuId);
|
|
59
|
+
});
|
|
60
|
+
setDrilldownPath(prevDrilldownPath => {
|
|
61
|
+
const indexOfMenuIdPath = prevDrilldownPath.indexOf(fromPathId);
|
|
62
|
+
return prevDrilldownPath.slice(0, indexOfMenuIdPath);
|
|
63
|
+
});
|
|
56
64
|
setActiveMenu(toMenuId);
|
|
65
|
+
setBreadcrumb(breadcrumb);
|
|
57
66
|
};
|
|
58
67
|
|
|
59
68
|
const setHeight = (menuId: string, height: number) => {
|
|
@@ -146,31 +155,59 @@ export const MenuWithDrilldownBreadcrumbs: React.FunctionComponent = () => {
|
|
|
146
155
|
</Breadcrumb>
|
|
147
156
|
);
|
|
148
157
|
|
|
149
|
-
const pauseRolloutsAppGrpBreadcrumb = (
|
|
158
|
+
const pauseRolloutsAppGrpBreadcrumb = (isOpen: boolean) => (
|
|
150
159
|
<Breadcrumb>
|
|
151
160
|
<BreadcrumbItem component="button" onClick={() => drillOut('breadcrumbs-rootMenu', 'group:pause_rollout', null)}>
|
|
152
161
|
Root
|
|
153
162
|
</BreadcrumbItem>
|
|
154
|
-
<BreadcrumbItem
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
163
|
+
<BreadcrumbItem isDropdown>
|
|
164
|
+
<Dropdown
|
|
165
|
+
toggle={
|
|
166
|
+
<BadgeToggle id="toggle-id" onToggle={open => onToggle(open, 'pause-app')}>
|
|
167
|
+
1
|
|
168
|
+
</BadgeToggle>
|
|
169
|
+
}
|
|
170
|
+
isOpen={isOpen}
|
|
171
|
+
dropdownItems={[
|
|
172
|
+
<DropdownItem
|
|
173
|
+
key="dropdown-pause"
|
|
174
|
+
component="button"
|
|
175
|
+
icon={<AngleLeftIcon />}
|
|
176
|
+
onClick={() => drillOut('breadcrumbs-drilldownMenuPause', 'group:app_grouping', pauseRolloutsBreadcrumb)}
|
|
177
|
+
>
|
|
178
|
+
Pause rollouts
|
|
179
|
+
</DropdownItem>
|
|
180
|
+
]}
|
|
181
|
+
/>
|
|
159
182
|
</BreadcrumbItem>
|
|
160
183
|
<BreadcrumbHeading component="button">Application Grouping</BreadcrumbHeading>
|
|
161
184
|
</Breadcrumb>
|
|
162
185
|
);
|
|
163
186
|
|
|
164
|
-
const pauseRolloutsLabelsBreadcrumb = (
|
|
187
|
+
const pauseRolloutsLabelsBreadcrumb = (isOpen: boolean) => (
|
|
165
188
|
<Breadcrumb>
|
|
166
189
|
<BreadcrumbItem component="button" onClick={() => drillOut('breadcrumbs-rootMenu', 'group:pause_rollout', null)}>
|
|
167
190
|
Root
|
|
168
191
|
</BreadcrumbItem>
|
|
169
|
-
<BreadcrumbItem
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
192
|
+
<BreadcrumbItem isDropdown>
|
|
193
|
+
<Dropdown
|
|
194
|
+
toggle={
|
|
195
|
+
<BadgeToggle id="toggle-id" onToggle={open => onToggle(open, 'pause-label')}>
|
|
196
|
+
1
|
|
197
|
+
</BadgeToggle>
|
|
198
|
+
}
|
|
199
|
+
isOpen={isOpen}
|
|
200
|
+
dropdownItems={[
|
|
201
|
+
<DropdownItem
|
|
202
|
+
key="dropdown-pause"
|
|
203
|
+
component="button"
|
|
204
|
+
icon={<AngleLeftIcon />}
|
|
205
|
+
onClick={() => drillOut('breadcrumbs-drilldownMenuPause', 'group:labels', pauseRolloutsBreadcrumb)}
|
|
206
|
+
>
|
|
207
|
+
Pause rollouts
|
|
208
|
+
</DropdownItem>
|
|
209
|
+
]}
|
|
210
|
+
/>
|
|
174
211
|
</BreadcrumbItem>
|
|
175
212
|
<BreadcrumbHeading component="button">Labels</BreadcrumbHeading>
|
|
176
213
|
</Breadcrumb>
|
|
@@ -205,6 +242,7 @@ export const MenuWithDrilldownBreadcrumbs: React.FunctionComponent = () => {
|
|
|
205
242
|
onDrillIn={drillIn}
|
|
206
243
|
onDrillOut={() => drillOut}
|
|
207
244
|
onGetMenuHeight={setHeight}
|
|
245
|
+
isScrollable={withMaxMenuHeight}
|
|
208
246
|
>
|
|
209
247
|
{breadcrumb && (
|
|
210
248
|
<>
|
|
@@ -270,7 +308,7 @@ export const MenuWithDrilldownBreadcrumbs: React.FunctionComponent = () => {
|
|
|
270
308
|
itemId="group:app_grouping"
|
|
271
309
|
description="Groups A-C"
|
|
272
310
|
direction="down"
|
|
273
|
-
onClick={() => setBreadcrumb(pauseRolloutsAppGrpBreadcrumb)}
|
|
311
|
+
onClick={() => setBreadcrumb(pauseRolloutsAppGrpBreadcrumb(false))}
|
|
274
312
|
drilldownMenu={
|
|
275
313
|
<DrilldownMenu id="breadcrumbs-drilldownMenuGrouping">
|
|
276
314
|
<MenuItem itemId="group_a">Group A</MenuItem>
|
|
@@ -285,7 +323,7 @@ export const MenuWithDrilldownBreadcrumbs: React.FunctionComponent = () => {
|
|
|
285
323
|
<MenuItem
|
|
286
324
|
itemId="group:labels"
|
|
287
325
|
direction="down"
|
|
288
|
-
onClick={() => setBreadcrumb(pauseRolloutsLabelsBreadcrumb)}
|
|
326
|
+
onClick={() => setBreadcrumb(pauseRolloutsLabelsBreadcrumb(false))}
|
|
289
327
|
drilldownMenu={
|
|
290
328
|
<DrilldownMenu id="breadcrumbs-drilldownMenuLabels">
|
|
291
329
|
<MenuItem itemId="label_1">Label 1</MenuItem>
|