@patternfly/react-core 6.0.0-alpha.97 → 6.0.0-alpha.98
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/ClipboardCopy/package.json +1 -1
- package/dist/dynamic/components/CodeBlock/package.json +1 -1
- package/dist/dynamic/components/Content/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/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/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/Chip/package.json +1 -1
- package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
- package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/deprecated/components/Modal/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/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/styles/package.json +1 -1
- package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.js +16 -11
- package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/Menu/Menu.js +2 -2
- package/dist/esm/components/Menu/Menu.js.map +1 -1
- package/dist/esm/components/Menu/MenuContainer.d.ts +2 -0
- package/dist/esm/components/Menu/MenuContainer.d.ts.map +1 -1
- package/dist/esm/components/Menu/MenuContainer.js +17 -12
- package/dist/esm/components/Menu/MenuContainer.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +16 -11
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.js +16 -11
- package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/js/components/Menu/Menu.js +2 -2
- package/dist/js/components/Menu/Menu.js.map +1 -1
- package/dist/js/components/Menu/MenuContainer.d.ts +2 -0
- package/dist/js/components/Menu/MenuContainer.d.ts.map +1 -1
- package/dist/js/components/Menu/MenuContainer.js +17 -12
- package/dist/js/components/Menu/MenuContainer.js.map +1 -1
- package/dist/js/components/Select/Select.d.ts.map +1 -1
- package/dist/js/components/Select/Select.js +16 -11
- package/dist/js/components/Select/Select.js.map +1 -1
- package/dist/umd/assets/{output-oMCjf7ay.css → output-DTcGGjoh.css} +3510 -3510
- package/dist/umd/react-core.min.js +3 -3
- 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/Dropdown/Dropdown.tsx +16 -10
- package/src/components/Menu/Menu.tsx +2 -2
- package/src/components/Menu/MenuContainer.tsx +20 -11
- package/src/components/Select/Select.tsx +14 -8
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.97","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.97","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.97","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.98",
|
|
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",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"react": "^17 || ^18",
|
|
65
65
|
"react-dom": "^17 || ^18"
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "e0e139240e357c96814d0cb6fda052a8fc7732ee"
|
|
68
68
|
}
|
|
@@ -104,6 +104,22 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
|
|
|
104
104
|
? localToggleRef
|
|
105
105
|
: (toggle?.toggleRef as React.RefObject<HTMLButtonElement>);
|
|
106
106
|
|
|
107
|
+
const prevIsOpen = React.useRef<boolean>(isOpen);
|
|
108
|
+
React.useEffect(() => {
|
|
109
|
+
// menu was opened, focus on first menu item
|
|
110
|
+
if (prevIsOpen.current === false && isOpen === true && shouldFocusFirstItemOnOpen) {
|
|
111
|
+
setTimeout(() => {
|
|
112
|
+
const firstElement = menuRef?.current?.querySelector(
|
|
113
|
+
'li button:not(:disabled),li input:not(:disabled),li a:not([aria-disabled="true"])'
|
|
114
|
+
);
|
|
115
|
+
firstElement && (firstElement as HTMLElement).focus();
|
|
116
|
+
}, 0);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
prevIsOpen.current = isOpen;
|
|
120
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
121
|
+
}, [isOpen]);
|
|
122
|
+
|
|
107
123
|
React.useEffect(() => {
|
|
108
124
|
const handleMenuKeys = (event: KeyboardEvent) => {
|
|
109
125
|
// Close the menu on tab or escape if onOpenChange is provided
|
|
@@ -120,16 +136,6 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
|
|
|
120
136
|
};
|
|
121
137
|
|
|
122
138
|
const handleClick = (event: MouseEvent) => {
|
|
123
|
-
// toggle was opened, focus on first menu item
|
|
124
|
-
if (isOpen && shouldFocusFirstItemOnOpen && toggleRef.current?.contains(event.target as Node)) {
|
|
125
|
-
setTimeout(() => {
|
|
126
|
-
const firstElement = menuRef?.current?.querySelector(
|
|
127
|
-
'li button:not(:disabled),li input:not(:disabled),li a:not([aria-disabled="true"])'
|
|
128
|
-
);
|
|
129
|
-
firstElement && (firstElement as HTMLElement).focus();
|
|
130
|
-
}, 0);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
139
|
// If the event is not on the toggle and onOpenChange callback is provided, close the menu
|
|
134
140
|
if (isOpen && onOpenChange && !toggleRef?.current?.contains(event.target as Node)) {
|
|
135
141
|
if (isOpen && !menuRef.current?.contains(event.target as Node)) {
|
|
@@ -119,7 +119,7 @@ class MenuBase extends React.Component<MenuProps, MenuState> {
|
|
|
119
119
|
if (this.context) {
|
|
120
120
|
this.setState({ disableHover: this.context.disableHover });
|
|
121
121
|
}
|
|
122
|
-
if (canUseDOM) {
|
|
122
|
+
if (canUseDOM && this.props.containsDrilldown) {
|
|
123
123
|
window.addEventListener('transitionend', this.props.isRootMenu ? this.handleDrilldownTransition : null);
|
|
124
124
|
}
|
|
125
125
|
|
|
@@ -127,7 +127,7 @@ class MenuBase extends React.Component<MenuProps, MenuState> {
|
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
componentWillUnmount() {
|
|
130
|
-
if (canUseDOM) {
|
|
130
|
+
if (canUseDOM && this.props.containsDrilldown) {
|
|
131
131
|
window.removeEventListener('transitionend', this.handleDrilldownTransition);
|
|
132
132
|
}
|
|
133
133
|
}
|
|
@@ -37,6 +37,8 @@ export interface MenuContainerProps {
|
|
|
37
37
|
zIndex?: number;
|
|
38
38
|
/** Additional properties to pass to the Popper */
|
|
39
39
|
popperProps?: MenuPopperProps;
|
|
40
|
+
/** @beta Flag indicating the first menu item should be focused after opening the dropdown. */
|
|
41
|
+
shouldFocusFirstItemOnOpen?: boolean;
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
/**
|
|
@@ -51,8 +53,25 @@ export const MenuContainer: React.FunctionComponent<MenuContainerProps> = ({
|
|
|
51
53
|
onOpenChange,
|
|
52
54
|
zIndex = 9999,
|
|
53
55
|
popperProps,
|
|
54
|
-
onOpenChangeKeys = ['Escape', 'Tab']
|
|
56
|
+
onOpenChangeKeys = ['Escape', 'Tab'],
|
|
57
|
+
shouldFocusFirstItemOnOpen = true
|
|
55
58
|
}: MenuContainerProps) => {
|
|
59
|
+
const prevIsOpen = React.useRef<boolean>(isOpen);
|
|
60
|
+
React.useEffect(() => {
|
|
61
|
+
// menu was opened, focus on first menu item
|
|
62
|
+
if (prevIsOpen.current === false && isOpen === true && shouldFocusFirstItemOnOpen) {
|
|
63
|
+
setTimeout(() => {
|
|
64
|
+
const firstElement = menuRef?.current?.querySelector(
|
|
65
|
+
'li button:not(:disabled),li input:not(:disabled),li a:not([aria-disabled="true"])'
|
|
66
|
+
);
|
|
67
|
+
firstElement && (firstElement as HTMLElement).focus();
|
|
68
|
+
}, 0);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
prevIsOpen.current = isOpen;
|
|
72
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
73
|
+
}, [isOpen]);
|
|
74
|
+
|
|
56
75
|
React.useEffect(() => {
|
|
57
76
|
const handleMenuKeys = (event: KeyboardEvent) => {
|
|
58
77
|
// Close the menu on tab or escape if onOpenChange is provided
|
|
@@ -68,16 +87,6 @@ export const MenuContainer: React.FunctionComponent<MenuContainerProps> = ({
|
|
|
68
87
|
};
|
|
69
88
|
|
|
70
89
|
const handleClick = (event: MouseEvent) => {
|
|
71
|
-
// toggle was opened, focus on first menu item
|
|
72
|
-
if (isOpen && toggleRef.current?.contains(event.target as Node)) {
|
|
73
|
-
setTimeout(() => {
|
|
74
|
-
const firstElement = menuRef?.current?.querySelector(
|
|
75
|
-
'li button:not(:disabled),li input:not(:disabled),li a:not([aria-disabled="true"])'
|
|
76
|
-
);
|
|
77
|
-
firstElement && (firstElement as HTMLElement).focus();
|
|
78
|
-
}, 0);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
90
|
// If the event is not on the toggle and onOpenChange callback is provided, close the menu
|
|
82
91
|
if (isOpen && onOpenChange && !toggleRef?.current?.contains(event.target as Node)) {
|
|
83
92
|
if (isOpen && !menuRef.current?.contains(event.target as Node)) {
|
|
@@ -110,6 +110,20 @@ const SelectBase: React.FunctionComponent<SelectProps & OUIAProps> = ({
|
|
|
110
110
|
? localToggleRef
|
|
111
111
|
: (toggle?.toggleRef as React.RefObject<HTMLButtonElement>);
|
|
112
112
|
|
|
113
|
+
const prevIsOpen = React.useRef<boolean>(isOpen);
|
|
114
|
+
React.useEffect(() => {
|
|
115
|
+
// menu was opened, focus on first menu item
|
|
116
|
+
if (prevIsOpen.current === false && isOpen === true && shouldFocusFirstItemOnOpen) {
|
|
117
|
+
setTimeout(() => {
|
|
118
|
+
const firstElement = menuRef?.current?.querySelector('li button:not(:disabled),li input:not(:disabled)');
|
|
119
|
+
firstElement && (firstElement as HTMLElement).focus();
|
|
120
|
+
}, 0);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
prevIsOpen.current = isOpen;
|
|
124
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
125
|
+
}, [isOpen]);
|
|
126
|
+
|
|
113
127
|
React.useEffect(() => {
|
|
114
128
|
const handleMenuKeys = (event: KeyboardEvent) => {
|
|
115
129
|
// Close the menu on tab or escape if onOpenChange is provided
|
|
@@ -127,14 +141,6 @@ const SelectBase: React.FunctionComponent<SelectProps & OUIAProps> = ({
|
|
|
127
141
|
};
|
|
128
142
|
|
|
129
143
|
const handleClick = (event: MouseEvent) => {
|
|
130
|
-
// toggle was opened, focus on first menu item
|
|
131
|
-
if (isOpen && shouldFocusFirstItemOnOpen && toggleRef.current?.contains(event.target as Node)) {
|
|
132
|
-
setTimeout(() => {
|
|
133
|
-
const firstElement = menuRef?.current?.querySelector('li button:not(:disabled),li input:not(:disabled)');
|
|
134
|
-
firstElement && (firstElement as HTMLElement).focus();
|
|
135
|
-
}, 0);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
144
|
// If the event is not on the toggle and onOpenChange callback is provided, close the menu
|
|
139
145
|
if (isOpen && onOpenChange && !toggleRef?.current?.contains(event.target as Node)) {
|
|
140
146
|
if (isOpen && !menuRef.current?.contains(event.target as Node)) {
|