@patternfly/react-core 5.2.0-prerelease.12 → 5.2.0-prerelease.13
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 +6 -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/InputGroup/InputGroup.d.ts.map +1 -1
- package/dist/esm/components/InputGroup/InputGroup.js +1 -51
- package/dist/esm/components/InputGroup/InputGroup.js.map +1 -1
- package/dist/js/components/InputGroup/InputGroup.d.ts.map +1 -1
- package/dist/js/components/InputGroup/InputGroup.js +1 -51
- package/dist/js/components/InputGroup/InputGroup.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 +2 -2
- package/src/components/InputGroup/InputGroup.tsx +1 -53
- package/src/components/InputGroup/__tests__/InputGroup.test.tsx +7 -44
- package/src/components/NumberInput/__tests__/NumberInput.test.tsx +0 -1
- package/src/demos/Nav.md +10 -1673
- package/src/demos/examples/Nav/NavDefault.tsx +98 -0
- package/src/demos/examples/Nav/NavDrilldown.tsx +2 -0
- package/src/demos/examples/Nav/NavExpandable.tsx +124 -0
- package/src/demos/examples/Nav/NavFlyout.tsx +278 -0
- package/src/demos/examples/Nav/NavGrouped.tsx +99 -0
- package/src/demos/examples/Nav/NavHorizontal.tsx +237 -0
- package/src/demos/examples/Nav/NavHorizontalWithSubnav.tsx +297 -0
- package/src/demos/examples/Nav/NavManual.tsx +273 -0
- package/src/demos/examples/Nav/NavWithSubnav.tsx +142 -0
- package/src/demos/examples/Nav/deprecated/NavLight.tsx +96 -0
- package/src/demos/examples/Nav/deprecated/NavTertiary.tsx +92 -0
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":"5.2.0-prerelease.
|
|
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":"5.2.0-prerelease.12","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":"5.2.0-prerelease.
|
|
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":"5.2.0-prerelease.12","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":"5.2.0-prerelease.
|
|
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":"5.2.0-prerelease.12","private":true}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/react-core",
|
|
3
|
-
"version": "5.2.0-prerelease.
|
|
3
|
+
"version": "5.2.0-prerelease.13",
|
|
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",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"react": "^17 || ^18",
|
|
72
72
|
"react-dom": "^17 || ^18"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "c1f452f956668d771994e5584dc24d251d913aa7"
|
|
75
75
|
}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import styles from '@patternfly/react-styles/css/components/InputGroup/input-group';
|
|
3
3
|
import { css } from '@patternfly/react-styles';
|
|
4
|
-
import { FormSelect } from '../FormSelect';
|
|
5
|
-
import { TextArea } from '../TextArea';
|
|
6
|
-
import { TextInput } from '../TextInput';
|
|
7
4
|
|
|
8
5
|
export interface InputGroupProps extends React.HTMLProps<HTMLDivElement> {
|
|
9
6
|
/** Additional classes added to the input group. */
|
|
@@ -20,61 +17,12 @@ export const InputGroupBase: React.FunctionComponent<InputGroupProps> = ({
|
|
|
20
17
|
innerRef,
|
|
21
18
|
...props
|
|
22
19
|
}: InputGroupProps) => {
|
|
23
|
-
const getIdItem = () => {
|
|
24
|
-
const getChildId = (_children: any) =>
|
|
25
|
-
React.Children.toArray(_children).find(
|
|
26
|
-
(_child: any) => !formCtrls.includes(_child?.type?.displayName) && _child?.props?.id
|
|
27
|
-
);
|
|
28
|
-
let childId = getChildId(children);
|
|
29
|
-
if (childId) {
|
|
30
|
-
return childId;
|
|
31
|
-
}
|
|
32
|
-
React.Children.toArray(children).find((child: any) => {
|
|
33
|
-
const _childId = getChildId(child.props.children);
|
|
34
|
-
if (_childId) {
|
|
35
|
-
childId = _childId;
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
return childId;
|
|
40
|
-
};
|
|
41
|
-
const formCtrls = [FormSelect, TextArea, TextInput].map((comp) => comp.displayName);
|
|
42
|
-
const idItem = getIdItem() as React.ReactElement<{ id: string }>;
|
|
43
20
|
const ref = React.useRef(null);
|
|
44
21
|
const inputGroupRef = innerRef || ref;
|
|
45
22
|
|
|
46
|
-
const childrenWithId = React.Children.map(children, (child: any) => {
|
|
47
|
-
if (child?.type.displayName === 'InputGroupItem') {
|
|
48
|
-
const newChildren = React.Children.map(child.props.children, (_child) => {
|
|
49
|
-
if (!_child.props) {
|
|
50
|
-
return _child;
|
|
51
|
-
}
|
|
52
|
-
if (_child.props['aria-describedby']) {
|
|
53
|
-
return _child;
|
|
54
|
-
}
|
|
55
|
-
if (!formCtrls.includes(_child.type.displayName)) {
|
|
56
|
-
return _child;
|
|
57
|
-
}
|
|
58
|
-
return React.cloneElement(_child, {
|
|
59
|
-
'aria-describedby': _child.props['aria-describedby'] === '' ? undefined : idItem?.props?.id
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
return React.cloneElement(child, {}, newChildren);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (child?.props['aria-describedby']) {
|
|
66
|
-
return child;
|
|
67
|
-
}
|
|
68
|
-
if (!formCtrls.includes(child?.type.displayName)) {
|
|
69
|
-
return child;
|
|
70
|
-
}
|
|
71
|
-
return React.cloneElement(child, {
|
|
72
|
-
'aria-describedby': child.props['aria-describedby'] === '' ? undefined : idItem?.props?.id
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
23
|
return (
|
|
76
24
|
<div ref={inputGroupRef} className={css(styles.inputGroup, className)} {...props}>
|
|
77
|
-
{
|
|
25
|
+
{children}
|
|
78
26
|
</div>
|
|
79
27
|
);
|
|
80
28
|
};
|
|
@@ -8,59 +8,22 @@ import { Button } from '../../Button';
|
|
|
8
8
|
import { TextInput } from '../../TextInput';
|
|
9
9
|
|
|
10
10
|
describe('InputGroup', () => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
// If Button has an id props, this should be used in aria-describedby.
|
|
11
|
+
// Regression test for https://github.com/patternfly/patternfly-react/issues/9667
|
|
12
|
+
test('wont add aria-describedby automatically to form-control', () => {
|
|
14
13
|
render(
|
|
15
14
|
<InputGroup>
|
|
16
15
|
<InputGroupItem>
|
|
17
|
-
<TextInput
|
|
16
|
+
<TextInput aria-label="User password" />
|
|
18
17
|
</InputGroupItem>
|
|
19
18
|
<InputGroupItem>
|
|
20
|
-
<Button variant="
|
|
21
|
-
|
|
19
|
+
<Button variant="control" id="show-password-toggler">
|
|
20
|
+
Show
|
|
22
21
|
</Button>
|
|
23
22
|
</InputGroupItem>
|
|
24
23
|
</InputGroup>
|
|
25
24
|
);
|
|
26
|
-
expect(screen.getByLabelText('some text')).toHaveAttribute('aria-describedby', 'button-id');
|
|
27
|
-
});
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
// If Button has an id props, this should be used in aria-describedby, but this
|
|
32
|
-
// example has an empty aria-describedby to prevent that from happening.
|
|
33
|
-
render(
|
|
34
|
-
<InputGroup>
|
|
35
|
-
<InputGroupItem>
|
|
36
|
-
<TextInput value="some data" aria-describedby="" aria-label="some text" />
|
|
37
|
-
</InputGroupItem>
|
|
38
|
-
<InputGroupItem>
|
|
39
|
-
<Button id="button-id">
|
|
40
|
-
hello
|
|
41
|
-
</Button>
|
|
42
|
-
</InputGroupItem>
|
|
43
|
-
</InputGroup>
|
|
44
|
-
);
|
|
45
|
-
expect(screen.getByLabelText('some text')).not.toHaveAttribute('aria-describedby');
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
test('wont override aria-describedby in form-control if describedby has value', () => {
|
|
49
|
-
// In this test, TextInput is a form-control component and Button is not.
|
|
50
|
-
// If Button has an id props, this should be used in aria-describedby, but this
|
|
51
|
-
// example has a predefined aria-describedby to prevent that from happening
|
|
52
|
-
render(
|
|
53
|
-
<InputGroup>
|
|
54
|
-
<InputGroupItem>
|
|
55
|
-
<TextInput value="some data" aria-describedby="myself" aria-label="some text" />
|
|
56
|
-
</InputGroupItem>
|
|
57
|
-
<InputGroupItem>
|
|
58
|
-
<Button id="button-id">
|
|
59
|
-
hello
|
|
60
|
-
</Button>
|
|
61
|
-
</InputGroupItem>
|
|
62
|
-
</InputGroup>
|
|
63
|
-
);
|
|
64
|
-
expect(screen.getByLabelText('some text')).toHaveAttribute('aria-describedby', 'myself');
|
|
26
|
+
const formControl = screen.getByLabelText("User password");
|
|
27
|
+
expect(formControl).not.toHaveAttribute("aria-describedby");
|
|
65
28
|
});
|
|
66
29
|
});
|