@patternfly/react-core 6.1.0-prerelease.8 → 6.1.0
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 +59 -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/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/Tile/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/dynamic-modules.json +2 -0
- package/dist/esm/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
- package/dist/esm/components/CalendarMonth/CalendarMonth.js +7 -11
- package/dist/esm/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.d.ts +2 -0
- package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.js +12 -3
- package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/FileUpload/FileUpload.d.ts +2 -1
- package/dist/esm/components/FileUpload/FileUpload.d.ts.map +1 -1
- package/dist/esm/components/FileUpload/FileUpload.js +2 -1
- package/dist/esm/components/FileUpload/FileUpload.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 +21 -4
- package/dist/esm/components/Menu/MenuContainer.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts +4 -0
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +12 -3
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarFilter.d.ts.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarFilter.js +4 -2
- package/dist/esm/components/Toolbar/ToolbarFilter.js.map +1 -1
- package/dist/esm/demos/DashboardWrapper.d.ts.map +1 -1
- package/dist/esm/demos/DashboardWrapper.js +10 -2
- package/dist/esm/demos/DashboardWrapper.js.map +1 -1
- package/dist/esm/helpers/KeyboardHandler.d.ts +7 -0
- package/dist/esm/helpers/KeyboardHandler.d.ts.map +1 -1
- package/dist/esm/helpers/KeyboardHandler.js +25 -0
- package/dist/esm/helpers/KeyboardHandler.js.map +1 -1
- package/dist/js/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
- package/dist/js/components/CalendarMonth/CalendarMonth.js +7 -11
- package/dist/js/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.d.ts +2 -0
- package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.js +11 -2
- package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/js/components/FileUpload/FileUpload.d.ts +2 -1
- package/dist/js/components/FileUpload/FileUpload.d.ts.map +1 -1
- package/dist/js/components/FileUpload/FileUpload.js +2 -1
- package/dist/js/components/FileUpload/FileUpload.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 +22 -5
- package/dist/js/components/Menu/MenuContainer.js.map +1 -1
- package/dist/js/components/Select/Select.d.ts +4 -0
- package/dist/js/components/Select/Select.d.ts.map +1 -1
- package/dist/js/components/Select/Select.js +11 -2
- package/dist/js/components/Select/Select.js.map +1 -1
- package/dist/js/components/Toolbar/ToolbarFilter.d.ts.map +1 -1
- package/dist/js/components/Toolbar/ToolbarFilter.js +4 -2
- package/dist/js/components/Toolbar/ToolbarFilter.js.map +1 -1
- package/dist/js/demos/DashboardWrapper.d.ts.map +1 -1
- package/dist/js/demos/DashboardWrapper.js +10 -2
- package/dist/js/demos/DashboardWrapper.js.map +1 -1
- package/dist/js/helpers/KeyboardHandler.d.ts +7 -0
- package/dist/js/helpers/KeyboardHandler.d.ts.map +1 -1
- package/dist/js/helpers/KeyboardHandler.js +27 -1
- package/dist/js/helpers/KeyboardHandler.js.map +1 -1
- package/dist/umd/assets/{output-Df7FMwYL.css → output-ByZdJvYx.css} +10342 -10295
- 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 +7 -7
- package/src/components/CalendarMonth/CalendarMonth.tsx +7 -10
- package/src/components/DataList/examples/DataList.md +16 -4
- package/src/components/Dropdown/Dropdown.tsx +13 -1
- package/src/components/DualListSelector/examples/DualListSelector.md +16 -14
- package/src/components/FileUpload/FileUpload.tsx +3 -1
- package/src/components/FileUpload/__tests__/__snapshots__/FileUpload.test.tsx.snap +1 -1
- package/src/components/FileUpload/examples/FileUpload.md +1 -1
- package/src/components/FileUpload/examples/FileUploadTextWithRestrictions.tsx +24 -7
- package/src/components/LoginPage/examples/LoginPage.md +1 -1
- package/src/components/LoginPage/examples/LoginPageBasic.tsx +2 -2
- package/src/components/LoginPage/examples/LoginPageLanguageSelect.tsx +2 -2
- package/src/components/LoginPage/examples/LoginPageShowHidePassword.tsx +2 -2
- package/src/components/Menu/MenuContainer.tsx +24 -3
- package/src/components/Modal/examples/Modal.md +1 -1
- package/src/components/MultipleFileUpload/__tests__/__snapshots__/MultipleFileUpload.test.tsx.snap +3 -3
- package/src/components/Select/Select.tsx +16 -1
- package/src/components/Select/examples/SelectMultiTypeahead.tsx +1 -1
- package/src/components/Select/examples/SelectMultiTypeaheadCheckbox.tsx +1 -1
- package/src/components/Select/examples/SelectMultiTypeaheadCreatable.tsx +1 -1
- package/src/components/Select/examples/SelectTypeahead.tsx +1 -1
- package/src/components/Select/examples/SelectTypeaheadCreatable.tsx +1 -1
- package/src/components/SkipToContent/examples/SkipToContentBasic.tsx +144 -126
- package/src/components/Toolbar/ToolbarFilter.tsx +2 -1
- package/src/components/Wizard/examples/Wizard.md +2 -1
- package/src/components/Wizard/examples/WizardWithinModal.tsx +5 -8
- package/src/demos/CustomMenus/ApplicationLauncher.md +1 -1
- package/src/demos/CustomMenus/CustomMenus.md +1 -1
- package/src/demos/CustomMenus/examples/ApplicationLauncherDemo.tsx +2 -2
- package/src/demos/CustomMenus/examples/DrilldownMenuDemo.tsx +1 -1
- package/src/demos/DashboardWrapper.tsx +13 -2
- package/src/demos/ExpandableSection/examples/ExpandableTextDemo.tsx +1 -7
- package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +15 -1
- package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +15 -1
- package/src/demos/assets/PF-IconLogo.svg +17 -0
- package/src/demos/examples/Masthead/MastheadWithHorizontalNav.tsx +14 -1
- package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +14 -1
- package/src/demos/examples/Nav/NavDefault.tsx +15 -1
- package/src/demos/examples/Nav/NavExpandable.tsx +15 -1
- package/src/demos/examples/Nav/NavFlyout.tsx +15 -1
- package/src/demos/examples/Nav/NavGrouped.tsx +15 -1
- package/src/demos/examples/Nav/NavHorizontal.tsx +15 -1
- package/src/demos/examples/Nav/NavHorizontalWithSubnav.tsx +15 -1
- package/src/demos/examples/Nav/NavManual.tsx +15 -1
- package/src/demos/examples/Nav/NavWithSubnav.tsx +15 -1
- package/src/demos/examples/Page/PageContextSelector.tsx +14 -1
- package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +14 -1
- package/src/demos/examples/Page/PageStickySectionGroup.tsx +14 -1
- package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +14 -1
- package/src/demos/examples/Wizard/InPageWithDrawer.tsx +15 -1
- package/src/demos/examples/Wizard/InPageWithDrawerInformationalStep.tsx +14 -1
- package/src/helpers/KeyboardHandler.tsx +27 -0
- package/src/demos/examples/DashboardWrapper.js +0 -126
|
@@ -67,7 +67,21 @@ export const NavGrouped: React.FunctionComponent = () => {
|
|
|
67
67
|
</PageSidebar>
|
|
68
68
|
);
|
|
69
69
|
const pageId = 'main-content-page-layout-group-nav';
|
|
70
|
-
|
|
70
|
+
|
|
71
|
+
const handleClick = (event) => {
|
|
72
|
+
event.preventDefault();
|
|
73
|
+
|
|
74
|
+
const mainContentElement = document.getElementById(pageId);
|
|
75
|
+
if (mainContentElement) {
|
|
76
|
+
mainContentElement.focus();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const PageSkipToContent = (
|
|
81
|
+
<SkipToContent onClick={handleClick} href={`#${pageId}`}>
|
|
82
|
+
Skip to content
|
|
83
|
+
</SkipToContent>
|
|
84
|
+
);
|
|
71
85
|
|
|
72
86
|
return (
|
|
73
87
|
<>
|
|
@@ -204,7 +204,21 @@ export const NavHorizontal: React.FunctionComponent = () => {
|
|
|
204
204
|
);
|
|
205
205
|
|
|
206
206
|
const pageId = 'main-content-page-layout-horizontal-nav';
|
|
207
|
-
|
|
207
|
+
|
|
208
|
+
const handleClick = (event) => {
|
|
209
|
+
event.preventDefault();
|
|
210
|
+
|
|
211
|
+
const mainContentElement = document.getElementById(pageId);
|
|
212
|
+
if (mainContentElement) {
|
|
213
|
+
mainContentElement.focus();
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
const PageSkipToContent = (
|
|
218
|
+
<SkipToContent onClick={handleClick} href={`#${pageId}`}>
|
|
219
|
+
Skip to content
|
|
220
|
+
</SkipToContent>
|
|
221
|
+
);
|
|
208
222
|
|
|
209
223
|
return (
|
|
210
224
|
<React.Fragment>
|
|
@@ -258,7 +258,21 @@ export const NavHorizontalWithSubnav: React.FunctionComponent = () => {
|
|
|
258
258
|
);
|
|
259
259
|
|
|
260
260
|
const pageId = 'main-content-page-layout-horizontal-nav';
|
|
261
|
-
|
|
261
|
+
|
|
262
|
+
const handleClick = (event) => {
|
|
263
|
+
event.preventDefault();
|
|
264
|
+
|
|
265
|
+
const mainContentElement = document.getElementById(pageId);
|
|
266
|
+
if (mainContentElement) {
|
|
267
|
+
mainContentElement.focus();
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
const PageSkipToContent = (
|
|
272
|
+
<SkipToContent onClick={handleClick} href={`#${pageId}`}>
|
|
273
|
+
Skip to content
|
|
274
|
+
</SkipToContent>
|
|
275
|
+
);
|
|
262
276
|
|
|
263
277
|
return (
|
|
264
278
|
<React.Fragment>
|
|
@@ -234,7 +234,21 @@ export const NavManual: React.FunctionComponent = () => {
|
|
|
234
234
|
</PageSidebar>
|
|
235
235
|
);
|
|
236
236
|
const pageId = 'main-content-page-layout-manual-nav';
|
|
237
|
-
|
|
237
|
+
|
|
238
|
+
const handleClick = (event) => {
|
|
239
|
+
event.preventDefault();
|
|
240
|
+
|
|
241
|
+
const mainContentElement = document.getElementById(pageId);
|
|
242
|
+
if (mainContentElement) {
|
|
243
|
+
mainContentElement.focus();
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
const PageSkipToContent = (
|
|
248
|
+
<SkipToContent onClick={handleClick} href={`#${pageId}`}>
|
|
249
|
+
Skip to content
|
|
250
|
+
</SkipToContent>
|
|
251
|
+
);
|
|
238
252
|
|
|
239
253
|
return (
|
|
240
254
|
<React.Fragment>
|
|
@@ -69,7 +69,21 @@ export const NavWithSubnav: React.FunctionComponent = () => {
|
|
|
69
69
|
</PageSidebar>
|
|
70
70
|
);
|
|
71
71
|
const pageId = 'main-content-page-layout-default-nav';
|
|
72
|
-
|
|
72
|
+
|
|
73
|
+
const handleClick = (event) => {
|
|
74
|
+
event.preventDefault();
|
|
75
|
+
|
|
76
|
+
const mainContentElement = document.getElementById(pageId);
|
|
77
|
+
if (mainContentElement) {
|
|
78
|
+
mainContentElement.focus();
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const PageSkipToContent = (
|
|
83
|
+
<SkipToContent onClick={handleClick} href={`#${pageId}`}>
|
|
84
|
+
Skip to content
|
|
85
|
+
</SkipToContent>
|
|
86
|
+
);
|
|
73
87
|
|
|
74
88
|
const SubNav = (
|
|
75
89
|
<Nav onSelect={onSubNavSelect} aria-label="Subnav" variant="horizontal-subnav">
|
|
@@ -284,7 +284,20 @@ export const PageStickySectionBreadcrumb: React.FunctionComponent = () => {
|
|
|
284
284
|
|
|
285
285
|
const mainContainerId = 'main-content';
|
|
286
286
|
|
|
287
|
-
const
|
|
287
|
+
const handleClick = (event) => {
|
|
288
|
+
event.preventDefault();
|
|
289
|
+
|
|
290
|
+
const mainContentElement = document.getElementById(mainContainerId);
|
|
291
|
+
if (mainContentElement) {
|
|
292
|
+
mainContentElement.focus();
|
|
293
|
+
}
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
const pageSkipToContent = (
|
|
297
|
+
<SkipToContent onClick={handleClick} href={`#${mainContainerId}`}>
|
|
298
|
+
Skip to content
|
|
299
|
+
</SkipToContent>
|
|
300
|
+
);
|
|
288
301
|
|
|
289
302
|
return (
|
|
290
303
|
<Page
|
|
@@ -251,7 +251,20 @@ export const PageStickySectionBreadcrumb: React.FunctionComponent = () => {
|
|
|
251
251
|
|
|
252
252
|
const mainContainerId = 'main-content';
|
|
253
253
|
|
|
254
|
-
const
|
|
254
|
+
const handleClick = (event) => {
|
|
255
|
+
event.preventDefault();
|
|
256
|
+
|
|
257
|
+
const mainContentElement = document.getElementById(mainContainerId);
|
|
258
|
+
if (mainContentElement) {
|
|
259
|
+
mainContentElement.focus();
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
const pageSkipToContent = (
|
|
264
|
+
<SkipToContent onClick={handleClick} href={`#${mainContainerId}`}>
|
|
265
|
+
Skip to content
|
|
266
|
+
</SkipToContent>
|
|
267
|
+
);
|
|
255
268
|
|
|
256
269
|
return (
|
|
257
270
|
<Page
|
|
@@ -251,7 +251,20 @@ export const PageStickySectionGroup: React.FunctionComponent = () => {
|
|
|
251
251
|
|
|
252
252
|
const mainContainerId = 'main-content';
|
|
253
253
|
|
|
254
|
-
const
|
|
254
|
+
const handleClick = (event) => {
|
|
255
|
+
event.preventDefault();
|
|
256
|
+
|
|
257
|
+
const mainContentElement = document.getElementById(mainContainerId);
|
|
258
|
+
if (mainContentElement) {
|
|
259
|
+
mainContentElement.focus();
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
const pageSkipToContent = (
|
|
264
|
+
<SkipToContent onClick={handleClick} href={`#${mainContainerId}`}>
|
|
265
|
+
Skip to content
|
|
266
|
+
</SkipToContent>
|
|
267
|
+
);
|
|
255
268
|
|
|
256
269
|
return (
|
|
257
270
|
<Page
|
|
@@ -243,7 +243,20 @@ export const PageStickySectionGroupAlternate: React.FunctionComponent = () => {
|
|
|
243
243
|
|
|
244
244
|
const mainContainerId = 'main-content';
|
|
245
245
|
|
|
246
|
-
const
|
|
246
|
+
const handleClick = (event) => {
|
|
247
|
+
event.preventDefault();
|
|
248
|
+
|
|
249
|
+
const mainContentElement = document.getElementById(mainContainerId);
|
|
250
|
+
if (mainContentElement) {
|
|
251
|
+
mainContentElement.focus();
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
const pageSkipToContent = (
|
|
256
|
+
<SkipToContent onClick={handleClick} href={`#${mainContainerId}`}>
|
|
257
|
+
Skip to content
|
|
258
|
+
</SkipToContent>
|
|
259
|
+
);
|
|
247
260
|
|
|
248
261
|
return (
|
|
249
262
|
<Page
|
|
@@ -104,7 +104,21 @@ export const WizardFullPageWithDrawerDemo: React.FunctionComponent = () => {
|
|
|
104
104
|
);
|
|
105
105
|
|
|
106
106
|
const pageId = 'main-content-page-layout-default-nav';
|
|
107
|
-
|
|
107
|
+
|
|
108
|
+
const handleClick = (event) => {
|
|
109
|
+
event.preventDefault();
|
|
110
|
+
|
|
111
|
+
const mainContentElement = document.getElementById(pageId);
|
|
112
|
+
if (mainContentElement) {
|
|
113
|
+
mainContentElement.focus();
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
const PageSkipToContent = (
|
|
118
|
+
<SkipToContent onClick={handleClick} href={`#${pageId}`}>
|
|
119
|
+
Skip to content
|
|
120
|
+
</SkipToContent>
|
|
121
|
+
);
|
|
108
122
|
|
|
109
123
|
const PageBreadcrumb = (
|
|
110
124
|
<Breadcrumb>
|
|
@@ -105,7 +105,20 @@ export const WizardFullPageWithDrawerInfoStepDemo: React.FunctionComponent = ()
|
|
|
105
105
|
|
|
106
106
|
const pageId = 'main-content-page-layout-default-nav';
|
|
107
107
|
|
|
108
|
-
const
|
|
108
|
+
const handleClick = (event) => {
|
|
109
|
+
event.preventDefault();
|
|
110
|
+
|
|
111
|
+
const mainContentElement = document.getElementById(pageId);
|
|
112
|
+
if (mainContentElement) {
|
|
113
|
+
mainContentElement.focus();
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
const PageSkipToContent = (
|
|
118
|
+
<SkipToContent onClick={handleClick} href={`#${pageId}`}>
|
|
119
|
+
Skip to content
|
|
120
|
+
</SkipToContent>
|
|
121
|
+
);
|
|
109
122
|
|
|
110
123
|
const PageBreadcrumb = (
|
|
111
124
|
<Breadcrumb>
|
|
@@ -176,6 +176,33 @@ export const setTabIndex = (options: HTMLElement[]) => {
|
|
|
176
176
|
}
|
|
177
177
|
};
|
|
178
178
|
|
|
179
|
+
/**
|
|
180
|
+
* This function is used in Dropdown, Select and MenuContainer as a default toggle keydown behavior. When the toggle has focus and the menu is open, pressing the up/down arrow keys will focus a valid non-disabled menu item - the first item for the down arrow key and last item for the up arrow key.
|
|
181
|
+
*
|
|
182
|
+
* @param event Event triggered by the keyboard
|
|
183
|
+
* @param menuRef Menu reference
|
|
184
|
+
*/
|
|
185
|
+
export const onToggleArrowKeydownDefault = (event: KeyboardEvent, menuRef: React.RefObject<HTMLDivElement>) => {
|
|
186
|
+
if (event.key !== 'ArrowDown' && event.key !== 'ArrowUp') {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
event.preventDefault();
|
|
191
|
+
|
|
192
|
+
const listItems = Array.from(menuRef.current?.querySelectorAll('li'));
|
|
193
|
+
const focusableElements = listItems
|
|
194
|
+
.map((li) => li.querySelector('button:not(:disabled),input:not(:disabled),a:not([aria-disabled="true"])'))
|
|
195
|
+
.filter((el) => el !== null);
|
|
196
|
+
|
|
197
|
+
let focusableElement: Element;
|
|
198
|
+
if (event.key === 'ArrowDown') {
|
|
199
|
+
focusableElement = focusableElements[0];
|
|
200
|
+
} else {
|
|
201
|
+
focusableElement = focusableElements[focusableElements.length - 1];
|
|
202
|
+
}
|
|
203
|
+
focusableElement && (focusableElement as HTMLElement).focus();
|
|
204
|
+
};
|
|
205
|
+
|
|
179
206
|
class KeyboardHandler extends React.Component<KeyboardHandlerProps> {
|
|
180
207
|
static displayName = 'KeyboardHandler';
|
|
181
208
|
static defaultProps: KeyboardHandlerProps = {
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
Breadcrumb,
|
|
4
|
-
BreadcrumbItem,
|
|
5
|
-
Content,
|
|
6
|
-
Nav,
|
|
7
|
-
NavItem,
|
|
8
|
-
NavList,
|
|
9
|
-
Page,
|
|
10
|
-
PageSection,
|
|
11
|
-
PageSidebar,
|
|
12
|
-
PageSidebarBody,
|
|
13
|
-
SkipToContent
|
|
14
|
-
} from '@patternfly/react-core';
|
|
15
|
-
import DashboardHeader from '@patternfly/react-core/src/demos/examples/DashboardHeader';
|
|
16
|
-
|
|
17
|
-
export const DashboardBreadcrumb = (
|
|
18
|
-
<Breadcrumb>
|
|
19
|
-
<BreadcrumbItem>Section home</BreadcrumbItem>
|
|
20
|
-
<BreadcrumbItem to="#">Section title</BreadcrumbItem>
|
|
21
|
-
<BreadcrumbItem to="#">Section title</BreadcrumbItem>
|
|
22
|
-
<BreadcrumbItem to="#" isActive>
|
|
23
|
-
Section landing
|
|
24
|
-
</BreadcrumbItem>
|
|
25
|
-
</Breadcrumb>
|
|
26
|
-
);
|
|
27
|
-
|
|
28
|
-
export const PageTemplateTitle = (
|
|
29
|
-
<PageSection>
|
|
30
|
-
<Content>
|
|
31
|
-
<h1>Main title</h1>
|
|
32
|
-
<p>This is a full page demo.</p>
|
|
33
|
-
</Content>
|
|
34
|
-
</PageSection>
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
export default class DashboardWrapper extends React.Component {
|
|
38
|
-
constructor(props) {
|
|
39
|
-
super(props);
|
|
40
|
-
this.state = {
|
|
41
|
-
activeItem: 1
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
this.onNavSelect = (_event, result) => {
|
|
45
|
-
this.setState({
|
|
46
|
-
activeItem: result.itemId
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
render() {
|
|
52
|
-
const { activeItem } = this.state;
|
|
53
|
-
const {
|
|
54
|
-
children,
|
|
55
|
-
mainContainerId,
|
|
56
|
-
breadcrumb,
|
|
57
|
-
masthead,
|
|
58
|
-
sidebar,
|
|
59
|
-
sidebarNavOpen,
|
|
60
|
-
onPageResize = () => {},
|
|
61
|
-
hasNoBreadcrumb,
|
|
62
|
-
notificationDrawer,
|
|
63
|
-
isNotificationDrawerExpanded,
|
|
64
|
-
hasPageTemplateTitle,
|
|
65
|
-
...pageProps
|
|
66
|
-
} = this.props;
|
|
67
|
-
|
|
68
|
-
let renderedBreadcrumb;
|
|
69
|
-
if (!hasNoBreadcrumb) {
|
|
70
|
-
renderedBreadcrumb = breadcrumb !== undefined ? breadcrumb : DashboardBreadcrumb;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
const PageNav = (
|
|
74
|
-
<Nav onSelect={this.onNavSelect} aria-label="Nav">
|
|
75
|
-
<NavList>
|
|
76
|
-
<NavItem itemId={0} isActive={activeItem === 0} to="#system-panel">
|
|
77
|
-
System panel
|
|
78
|
-
</NavItem>
|
|
79
|
-
<NavItem itemId={1} isActive={activeItem === 1} to="#policy">
|
|
80
|
-
Policy
|
|
81
|
-
</NavItem>
|
|
82
|
-
<NavItem itemId={2} isActive={activeItem === 2} to="#auth">
|
|
83
|
-
Authentication
|
|
84
|
-
</NavItem>
|
|
85
|
-
<NavItem itemId={3} isActive={activeItem === 3} to="#network">
|
|
86
|
-
Network services
|
|
87
|
-
</NavItem>
|
|
88
|
-
<NavItem itemId={4} isActive={activeItem === 4} to="#server">
|
|
89
|
-
Server
|
|
90
|
-
</NavItem>
|
|
91
|
-
</NavList>
|
|
92
|
-
</Nav>
|
|
93
|
-
);
|
|
94
|
-
|
|
95
|
-
const _sidebar = (
|
|
96
|
-
<PageSidebar isSidebarOpen={sidebarNavOpen || false}>
|
|
97
|
-
<PageSidebarBody>{PageNav}</PageSidebarBody>
|
|
98
|
-
</PageSidebar>
|
|
99
|
-
);
|
|
100
|
-
const PageSkipToContent = (
|
|
101
|
-
<SkipToContent href={`#${mainContainerId ? mainContainerId : 'main-content-page-layout-default-nav'}`}>
|
|
102
|
-
Skip to content
|
|
103
|
-
</SkipToContent>
|
|
104
|
-
);
|
|
105
|
-
|
|
106
|
-
return (
|
|
107
|
-
<Page
|
|
108
|
-
masthead={masthead !== undefined ? masthead : <DashboardHeader />}
|
|
109
|
-
sidebar={sidebar !== undefined ? sidebar : _sidebar}
|
|
110
|
-
isManagedSidebar
|
|
111
|
-
skipToContent={PageSkipToContent}
|
|
112
|
-
breadcrumb={renderedBreadcrumb}
|
|
113
|
-
mainContainerId={mainContainerId ? mainContainerId : 'main-content-page-layout-default-nav'}
|
|
114
|
-
notificationDrawer={notificationDrawer}
|
|
115
|
-
isNotificationDrawerExpanded={isNotificationDrawerExpanded}
|
|
116
|
-
{...(typeof onPageResize === 'function' && {
|
|
117
|
-
onPageResize: (event, resizeObject) => onPageResize(event, resizeObject)
|
|
118
|
-
})}
|
|
119
|
-
{...pageProps}
|
|
120
|
-
>
|
|
121
|
-
{hasPageTemplateTitle && PageTemplateTitle}
|
|
122
|
-
{children}
|
|
123
|
-
</Page>
|
|
124
|
-
);
|
|
125
|
-
}
|
|
126
|
-
}
|