@patternfly/react-core 5.3.0-prerelease.2 → 5.3.0-prerelease.20
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 +107 -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/DualListSelector/package.json +1 -0
- 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/CalendarMonth/CalendarMonth.d.ts.map +1 -1
- package/dist/esm/components/CalendarMonth/CalendarMonth.js +30 -12
- package/dist/esm/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/dist/esm/components/Card/Card.d.ts +13 -5
- package/dist/esm/components/Card/Card.d.ts.map +1 -1
- package/dist/esm/components/Card/Card.js +7 -3
- package/dist/esm/components/Card/Card.js.map +1 -1
- package/dist/esm/components/Card/CardHeader.d.ts +3 -1
- package/dist/esm/components/Card/CardHeader.d.ts.map +1 -1
- package/dist/esm/components/Card/CardHeader.js +10 -10
- package/dist/esm/components/Card/CardHeader.js.map +1 -1
- package/dist/esm/components/ClipboardCopy/ClipboardCopy.d.ts +6 -6
- package/dist/esm/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
- package/dist/esm/components/ClipboardCopy/ClipboardCopy.js +10 -2
- package/dist/esm/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
- package/dist/esm/components/ClipboardCopy/ClipboardCopyExpanded.d.ts +1 -0
- package/dist/esm/components/ClipboardCopy/ClipboardCopyExpanded.d.ts.map +1 -1
- package/dist/esm/components/ClipboardCopy/ClipboardCopyExpanded.js.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.d.ts +4 -0
- package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.js +6 -5
- package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/Menu/Menu.d.ts.map +1 -1
- package/dist/esm/components/Menu/Menu.js +5 -1
- package/dist/esm/components/Menu/Menu.js.map +1 -1
- package/dist/esm/components/Menu/MenuContainer.js +2 -2
- package/dist/esm/components/Menu/MenuContainer.js.map +1 -1
- package/dist/esm/components/MenuToggle/MenuToggle.d.ts +9 -0
- package/dist/esm/components/MenuToggle/MenuToggle.d.ts.map +1 -1
- package/dist/esm/components/MenuToggle/MenuToggle.js +26 -2
- package/dist/esm/components/MenuToggle/MenuToggle.js.map +1 -1
- package/dist/esm/components/MenuToggle/MenuToggleCheckbox.js +2 -2
- package/dist/esm/components/MenuToggle/MenuToggleCheckbox.js.map +1 -1
- package/dist/esm/components/Pagination/PaginationOptionsMenu.d.ts.map +1 -1
- package/dist/esm/components/Pagination/PaginationOptionsMenu.js +2 -4
- package/dist/esm/components/Pagination/PaginationOptionsMenu.js.map +1 -1
- package/dist/esm/components/SearchInput/SearchInput.d.ts +2 -0
- package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/esm/components/SearchInput/SearchInput.js +2 -2
- package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts +6 -0
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +5 -5
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/TextArea/TextArea.d.ts +0 -4
- package/dist/esm/components/TextArea/TextArea.d.ts.map +1 -1
- package/dist/esm/components/TextArea/TextArea.js.map +1 -1
- package/dist/esm/components/TextInputGroup/TextInputGroupMain.d.ts +2 -0
- package/dist/esm/components/TextInputGroup/TextInputGroupMain.d.ts.map +1 -1
- package/dist/esm/components/TextInputGroup/TextInputGroupMain.js +3 -3
- package/dist/esm/components/TextInputGroup/TextInputGroupMain.js.map +1 -1
- package/dist/esm/helpers/GenerateId/GenerateId.d.ts +5 -1
- package/dist/esm/helpers/GenerateId/GenerateId.d.ts.map +1 -1
- package/dist/esm/helpers/GenerateId/GenerateId.js +14 -2
- package/dist/esm/helpers/GenerateId/GenerateId.js.map +1 -1
- package/dist/esm/helpers/Popper/Popper.js +2 -2
- package/dist/esm/helpers/Popper/Popper.js.map +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/next/components/DualListSelector/DualListSelector.d.ts +23 -0
- package/dist/esm/next/components/DualListSelector/DualListSelector.d.ts.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelector.js +23 -0
- package/dist/esm/next/components/DualListSelector/DualListSelector.js.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorContext.d.ts +19 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorContext.d.ts.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorContext.js +5 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorContext.js.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorControl.d.ts +25 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorControl.d.ts.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorControl.js +18 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorControl.js.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorControlsWrapper.d.ts +15 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorControlsWrapper.d.ts.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorControlsWrapper.js +35 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorControlsWrapper.js.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorList.d.ts +8 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorList.d.ts.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorList.js +26 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorList.js.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorListItem.d.ts +29 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorListItem.d.ts.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorListItem.js +38 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorListItem.js.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorListWrapper.d.ts +24 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorListWrapper.d.ts.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorListWrapper.js +59 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorListWrapper.js.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorPane.d.ts +31 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorPane.d.ts.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorPane.js +27 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorPane.js.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorTree.d.ts +48 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorTree.d.ts.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorTree.js +15 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorTree.js.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorTreeItem.d.ts +32 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +1 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorTreeItem.js +75 -0
- package/dist/esm/next/components/DualListSelector/DualListSelectorTreeItem.js.map +1 -0
- package/dist/esm/next/components/DualListSelector/index.d.ts +8 -0
- package/dist/esm/next/components/DualListSelector/index.d.ts.map +1 -0
- package/dist/esm/next/components/DualListSelector/index.js +8 -0
- package/dist/esm/next/components/DualListSelector/index.js.map +1 -0
- package/dist/esm/next/components/DualListSelector/treeUtils.d.ts +8 -0
- package/dist/esm/next/components/DualListSelector/treeUtils.d.ts.map +1 -0
- package/dist/esm/next/components/DualListSelector/treeUtils.js +68 -0
- package/dist/esm/next/components/DualListSelector/treeUtils.js.map +1 -0
- package/dist/esm/next/components/index.d.ts +1 -0
- package/dist/esm/next/components/index.d.ts.map +1 -1
- package/dist/esm/next/components/index.js +1 -0
- package/dist/esm/next/components/index.js.map +1 -1
- package/dist/js/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
- package/dist/js/components/CalendarMonth/CalendarMonth.js +30 -12
- package/dist/js/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/dist/js/components/Card/Card.d.ts +13 -5
- package/dist/js/components/Card/Card.d.ts.map +1 -1
- package/dist/js/components/Card/Card.js +7 -3
- package/dist/js/components/Card/Card.js.map +1 -1
- package/dist/js/components/Card/CardHeader.d.ts +3 -1
- package/dist/js/components/Card/CardHeader.d.ts.map +1 -1
- package/dist/js/components/Card/CardHeader.js +10 -10
- package/dist/js/components/Card/CardHeader.js.map +1 -1
- package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts +6 -6
- package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
- package/dist/js/components/ClipboardCopy/ClipboardCopy.js +10 -2
- package/dist/js/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
- package/dist/js/components/ClipboardCopy/ClipboardCopyExpanded.d.ts +1 -0
- package/dist/js/components/ClipboardCopy/ClipboardCopyExpanded.d.ts.map +1 -1
- package/dist/js/components/ClipboardCopy/ClipboardCopyExpanded.js.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.d.ts +4 -0
- package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.js +6 -5
- package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/js/components/Menu/Menu.d.ts.map +1 -1
- package/dist/js/components/Menu/Menu.js +5 -1
- package/dist/js/components/Menu/Menu.js.map +1 -1
- package/dist/js/components/Menu/MenuContainer.js +2 -2
- package/dist/js/components/Menu/MenuContainer.js.map +1 -1
- package/dist/js/components/MenuToggle/MenuToggle.d.ts +9 -0
- package/dist/js/components/MenuToggle/MenuToggle.d.ts.map +1 -1
- package/dist/js/components/MenuToggle/MenuToggle.js +27 -3
- package/dist/js/components/MenuToggle/MenuToggle.js.map +1 -1
- package/dist/js/components/MenuToggle/MenuToggleCheckbox.js +2 -2
- package/dist/js/components/MenuToggle/MenuToggleCheckbox.js.map +1 -1
- package/dist/js/components/Pagination/PaginationOptionsMenu.d.ts.map +1 -1
- package/dist/js/components/Pagination/PaginationOptionsMenu.js +2 -4
- package/dist/js/components/Pagination/PaginationOptionsMenu.js.map +1 -1
- package/dist/js/components/SearchInput/SearchInput.d.ts +2 -0
- package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/js/components/SearchInput/SearchInput.js +2 -2
- package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/js/components/Select/Select.d.ts +6 -0
- package/dist/js/components/Select/Select.d.ts.map +1 -1
- package/dist/js/components/Select/Select.js +5 -5
- package/dist/js/components/Select/Select.js.map +1 -1
- package/dist/js/components/TextArea/TextArea.d.ts +0 -4
- package/dist/js/components/TextArea/TextArea.d.ts.map +1 -1
- package/dist/js/components/TextArea/TextArea.js.map +1 -1
- package/dist/js/components/TextInputGroup/TextInputGroupMain.d.ts +2 -0
- package/dist/js/components/TextInputGroup/TextInputGroupMain.d.ts.map +1 -1
- package/dist/js/components/TextInputGroup/TextInputGroupMain.js +3 -3
- package/dist/js/components/TextInputGroup/TextInputGroupMain.js.map +1 -1
- package/dist/js/helpers/GenerateId/GenerateId.d.ts +5 -1
- package/dist/js/helpers/GenerateId/GenerateId.d.ts.map +1 -1
- package/dist/js/helpers/GenerateId/GenerateId.js +14 -2
- package/dist/js/helpers/GenerateId/GenerateId.js.map +1 -1
- package/dist/js/helpers/Popper/Popper.js +2 -2
- package/dist/js/helpers/Popper/Popper.js.map +1 -1
- package/dist/js/index.d.ts.map +1 -1
- package/dist/js/index.js.map +1 -1
- package/dist/js/next/components/DualListSelector/DualListSelector.d.ts +23 -0
- package/dist/js/next/components/DualListSelector/DualListSelector.d.ts.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelector.js +26 -0
- package/dist/js/next/components/DualListSelector/DualListSelector.js.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorContext.d.ts +19 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorContext.d.ts.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorContext.js +9 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorContext.js.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorControl.d.ts +25 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorControl.d.ts.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorControl.js +22 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorControl.js.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorControlsWrapper.d.ts +15 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorControlsWrapper.d.ts.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorControlsWrapper.js +39 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorControlsWrapper.js.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorList.d.ts +8 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorList.d.ts.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorList.js +30 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorList.js.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorListItem.d.ts +29 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorListItem.d.ts.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorListItem.js +42 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorListItem.js.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorListWrapper.d.ts +24 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorListWrapper.d.ts.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorListWrapper.js +63 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorListWrapper.js.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorPane.d.ts +31 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorPane.d.ts.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorPane.js +31 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorPane.js.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorTree.d.ts +48 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorTree.d.ts.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorTree.js +19 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorTree.js.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorTreeItem.d.ts +32 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +1 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorTreeItem.js +78 -0
- package/dist/js/next/components/DualListSelector/DualListSelectorTreeItem.js.map +1 -0
- package/dist/js/next/components/DualListSelector/index.d.ts +8 -0
- package/dist/js/next/components/DualListSelector/index.d.ts.map +1 -0
- package/dist/js/next/components/DualListSelector/index.js +11 -0
- package/dist/js/next/components/DualListSelector/index.js.map +1 -0
- package/dist/js/next/components/DualListSelector/treeUtils.d.ts +8 -0
- package/dist/js/next/components/DualListSelector/treeUtils.d.ts.map +1 -0
- package/dist/js/next/components/DualListSelector/treeUtils.js +77 -0
- package/dist/js/next/components/DualListSelector/treeUtils.js.map +1 -0
- package/dist/js/next/components/index.d.ts +1 -0
- package/dist/js/next/components/index.d.ts.map +1 -1
- package/dist/js/next/components/index.js +1 -0
- package/dist/js/next/components/index.js.map +1 -1
- 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 +6 -6
- package/src/components/CalendarMonth/CalendarMonth.tsx +38 -13
- package/src/components/Card/Card.tsx +24 -7
- package/src/components/Card/CardHeader.tsx +11 -10
- package/src/components/Card/examples/Card.md +11 -9
- package/src/components/Card/examples/CardClickableSelectable.tsx +11 -8
- package/src/components/Card/examples/CardSelectable.tsx +3 -6
- package/src/components/Card/examples/CardSingleSelectable.tsx +14 -6
- package/src/components/Chip/__tests__/ChipGroup.test.tsx +3 -1
- package/src/components/ClipboardCopy/ClipboardCopy.tsx +21 -7
- package/src/components/ClipboardCopy/ClipboardCopyExpanded.tsx +1 -0
- package/src/components/ClipboardCopy/__tests__/ClipboardCopy.test.tsx +2 -0
- package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopy.test.tsx.snap +1 -1
- package/src/components/DragDrop/examples/DragDrop.md +1 -0
- package/src/components/Drawer/__tests__/Drawer.test.tsx +2 -0
- package/src/components/Drawer/__tests__/DrawerPanelContent.test.tsx +2 -0
- package/src/components/Drawer/__tests__/Generated/DrawerPanelContent.test.tsx +2 -0
- package/src/components/Drawer/__tests__/Generated/__snapshots__/DrawerPanelContent.test.tsx.snap +1 -1
- package/src/components/Drawer/__tests__/__snapshots__/Drawer.test.tsx.snap +8 -8
- package/src/components/Dropdown/Dropdown.tsx +14 -4
- package/src/components/Form/__tests__/FormFieldGroup.test.tsx +2 -0
- package/src/components/Form/__tests__/FormSection.test.tsx +2 -0
- package/src/components/Form/__tests__/__snapshots__/FormFieldGroup.test.tsx.snap +2 -2
- package/src/components/Form/__tests__/__snapshots__/FormSection.test.tsx.snap +2 -2
- package/src/components/Label/__tests__/LabelGroup.test.tsx +2 -0
- package/src/components/Label/__tests__/__snapshots__/LabelGroup.test.tsx.snap +8 -8
- package/src/components/Menu/Menu.tsx +5 -3
- package/src/components/Menu/MenuContainer.tsx +2 -2
- package/src/components/MenuToggle/MenuToggle.tsx +33 -0
- package/src/components/MenuToggle/MenuToggleCheckbox.tsx +2 -2
- package/src/components/MenuToggle/__tests__/MenuToggle.test.tsx +15 -0
- package/src/components/MenuToggle/examples/MenuToggle.md +28 -13
- package/src/components/MenuToggle/examples/MenuToggleStatus.tsx +20 -0
- package/src/components/MultipleFileUpload/__tests__/MultipleFileUpload.test.tsx +2 -0
- package/src/components/MultipleFileUpload/__tests__/MultipleFileUploadStatus.test.tsx +2 -0
- package/src/components/MultipleFileUpload/__tests__/__snapshots__/MultipleFileUploadStatus.test.tsx.snap +16 -16
- package/src/components/Pagination/PaginationOptionsMenu.tsx +2 -4
- package/src/components/SearchInput/SearchInput.tsx +4 -0
- package/src/components/SearchInput/__tests__/SearchInput.test.tsx +1 -0
- package/src/components/SearchInput/__tests__/__snapshots__/SearchInput.test.tsx.snap +2 -2
- package/src/components/Select/Select.tsx +15 -3
- package/src/components/Select/examples/Select.md +30 -11
- package/src/components/Select/examples/SelectMultiTypeaheadCheckbox.tsx +6 -1
- package/src/components/Select/examples/SelectValidated.tsx +74 -0
- package/src/components/Tabs/__tests__/Tabs.test.tsx +2 -0
- package/src/components/Tabs/__tests__/__snapshots__/Tabs.test.tsx.snap +3 -3
- package/src/components/TextArea/TextArea.tsx +0 -4
- package/src/components/TextInputGroup/TextInputGroupMain.tsx +5 -0
- package/src/components/TextInputGroup/__tests__/TextInputGroupMain.test.tsx +8 -0
- package/src/components/Toolbar/__tests__/Toolbar.test.tsx +2 -0
- package/src/components/Toolbar/__tests__/__snapshots__/Toolbar.test.tsx.snap +11 -11
- package/src/demos/AlertGroup.md +1 -0
- package/src/demos/BackToTop.md +1 -0
- package/src/demos/Banner.md +5 -4
- package/src/demos/CardView/CardView.md +2 -0
- package/src/demos/CardView/examples/CardView.tsx +1 -1
- package/src/demos/DataList/examples/DataListBasic.tsx +1 -1
- package/src/demos/DataList/examples/DataListExpandableControlInToolbar.tsx +1 -1
- package/src/demos/DataListDemo.md +1 -0
- package/src/demos/Filters/examples/FilterAttributeSearch.tsx +1 -1
- package/src/demos/Filters/examples/FilterCheckboxSelect.tsx +1 -1
- package/src/demos/Filters/examples/FilterFaceted.tsx +1 -1
- package/src/demos/Filters/examples/FilterMixedSelectGroup.tsx +1 -1
- package/src/demos/Filters/examples/FilterSameSelectGroup.tsx +1 -1
- package/src/demos/Filters/examples/FilterSearchInput.tsx +1 -1
- package/src/demos/Filters/examples/FilterSingleSelect.tsx +1 -1
- package/src/demos/JumpLinks.md +2 -1
- package/src/demos/PrimaryDetail.md +1 -0
- package/src/demos/Tabs.md +5 -2
- package/src/demos/Toolbar.md +1 -0
- package/src/demos/Wizard/WizardDemo.md +1 -0
- package/src/demos/examples/AlertGroup/AlertGroupToastWithNotificationDrawer.tsx +1 -1
- package/src/demos/examples/BackToTop/BackToTopNameDemo.tsx +1 -1
- package/src/demos/examples/Card/CardStatus.tsx +1 -1
- package/src/demos/examples/JumpLinks/JumpLinksWithDrawer.js +1 -1
- package/src/demos/examples/Nav/NavDefault.tsx +1 -1
- package/src/demos/examples/Nav/NavExpandable.tsx +1 -1
- package/src/demos/examples/Nav/NavHorizontal.tsx +1 -1
- package/src/demos/examples/Nav/NavHorizontalWithSubnav.tsx +1 -1
- package/src/demos/examples/Nav/NavWithSubnav.tsx +1 -1
- package/src/demos/examples/Nav/deprecated/NavTertiary.tsx +1 -1
- package/src/demos/examples/PrimaryDetail/PrimaryDetailCardView.tsx +1 -1
- package/src/demos/examples/PrimaryDetail/PrimaryDetailContentPadding.tsx +1 -1
- package/src/demos/examples/PrimaryDetail/PrimaryDetailDataListInCard.tsx +1 -1
- package/src/demos/examples/PrimaryDetail/PrimaryDetailFullPage.tsx +1 -1
- package/src/demos/examples/PrimaryDetail/PrimaryDetailInlineModifier.tsx +1 -1
- package/src/demos/examples/PrimaryDetail/PrimaryDetailSimpleListInCard.tsx +1 -1
- package/src/demos/examples/Tabs/ModalTabs.tsx +1 -1
- package/src/demos/examples/Tabs/NestedTabs.tsx +1 -1
- package/src/demos/examples/Tabs/NestedUnindentedTabs.tsx +1 -1
- package/src/demos/examples/Tabs/TabsAndTable.tsx +2 -2
- package/src/demos/examples/Toolbar/ConsoleLogViewerToolbar.tsx +1 -1
- package/src/demos/examples/Wizard/InModal.tsx +1 -1
- package/src/demos/examples/Wizard/InPage.tsx +1 -1
- package/src/deprecated/components/Select/__tests__/Select.test.tsx +2 -0
- package/src/deprecated/components/Select/__tests__/__snapshots__/Select.test.tsx.snap +25 -25
- package/src/helpers/GenerateId/GenerateId.ts +17 -3
- package/src/helpers/GenerateId/__mocks__/GenerateId.ts +11 -0
- package/src/helpers/GenerateId/__tests__/GenerateId.test.tsx +3 -1
- package/src/helpers/Popper/Popper.tsx +1 -1
- package/src/index.ts +0 -1
- package/src/next/components/DualListSelector/DualListSelector.tsx +50 -0
- package/src/next/components/DualListSelector/DualListSelectorContext.ts +21 -0
- package/src/next/components/DualListSelector/DualListSelectorControl.tsx +66 -0
- package/src/next/components/DualListSelector/DualListSelectorControlsWrapper.tsx +87 -0
- package/src/next/components/DualListSelector/DualListSelectorList.tsx +57 -0
- package/src/next/components/DualListSelector/DualListSelectorListItem.tsx +105 -0
- package/src/next/components/DualListSelector/DualListSelectorListWrapper.tsx +124 -0
- package/src/next/components/DualListSelector/DualListSelectorPane.tsx +94 -0
- package/src/next/components/DualListSelector/DualListSelectorTree.tsx +110 -0
- package/src/next/components/DualListSelector/DualListSelectorTreeItem.tsx +184 -0
- package/src/next/components/DualListSelector/__tests__/DualListSelector.test.tsx +26 -0
- package/src/next/components/DualListSelector/__tests__/__snapshots__/DualListSelector.test.tsx.snap +122 -0
- package/src/next/components/DualListSelector/examples/DualListSelector.md +99 -0
- package/src/next/components/DualListSelector/examples/DualListSelectorBasic.tsx +157 -0
- package/src/next/components/DualListSelector/examples/DualListSelectorBasicSearch.tsx +214 -0
- package/src/next/components/DualListSelector/examples/DualListSelectorBasicTooltips.tsx +165 -0
- package/src/next/components/DualListSelector/examples/DualListSelectorComplexOptionsActions.tsx +347 -0
- package/src/next/components/DualListSelector/examples/DualListSelectorDragDrop.tsx +184 -0
- package/src/next/components/DualListSelector/examples/DualListSelectorTree.tsx +380 -0
- package/src/next/components/DualListSelector/index.ts +7 -0
- package/src/next/components/DualListSelector/treeUtils.ts +81 -0
- package/src/next/components/index.ts +1 -0
- package/dist/esm/demos/index.d.ts +0 -3
- package/dist/esm/demos/index.d.ts.map +0 -1
- package/dist/esm/demos/index.js +0 -3
- package/dist/esm/demos/index.js.map +0 -1
- package/dist/js/demos/index.d.ts +0 -3
- package/dist/js/demos/index.d.ts.map +0 -1
- package/dist/js/demos/index.js +0 -6
- package/dist/js/demos/index.js.map +0 -1
- package/src/demos/index.ts +0 -2
|
@@ -19,7 +19,7 @@ exports[`Drawer expands from bottom 1`] = `
|
|
|
19
19
|
</div>
|
|
20
20
|
<div
|
|
21
21
|
class="pf-v5-c-drawer__panel"
|
|
22
|
-
id="
|
|
22
|
+
id="generated-id"
|
|
23
23
|
>
|
|
24
24
|
<div
|
|
25
25
|
class="pf-v5-c-drawer__body"
|
|
@@ -187,11 +187,11 @@ exports[`Drawer has resizable css and color variants 1`] = `
|
|
|
187
187
|
</div>
|
|
188
188
|
<div
|
|
189
189
|
class="pf-v5-c-drawer__panel pf-m-resizable pf-m-light-200"
|
|
190
|
-
id="
|
|
190
|
+
id="generated-id"
|
|
191
191
|
style="--pf-v5-c-drawer__panel--md--FlexBasis: 300px; --pf-v5-c-drawer__panel--md--FlexBasis--min: 200px; --pf-v5-c-drawer__panel--md--FlexBasis--max: 400px;"
|
|
192
192
|
>
|
|
193
193
|
<div
|
|
194
|
-
aria-controls="
|
|
194
|
+
aria-controls="generated-id"
|
|
195
195
|
aria-label="Resize"
|
|
196
196
|
aria-orientation="vertical"
|
|
197
197
|
aria-valuemax="100"
|
|
@@ -283,7 +283,7 @@ exports[`Drawer isExpanded = false and isInline = false and isStatic = false 1`]
|
|
|
283
283
|
<div
|
|
284
284
|
class="pf-v5-c-drawer__panel"
|
|
285
285
|
hidden=""
|
|
286
|
-
id="
|
|
286
|
+
id="generated-id"
|
|
287
287
|
/>
|
|
288
288
|
</div>
|
|
289
289
|
</div>
|
|
@@ -310,7 +310,7 @@ exports[`Drawer isExpanded = false and isInline = true and isStatic = false 1`]
|
|
|
310
310
|
<div
|
|
311
311
|
class="pf-v5-c-drawer__panel"
|
|
312
312
|
hidden=""
|
|
313
|
-
id="
|
|
313
|
+
id="generated-id"
|
|
314
314
|
/>
|
|
315
315
|
</div>
|
|
316
316
|
</div>
|
|
@@ -336,7 +336,7 @@ exports[`Drawer isExpanded = true and isInline = false and isStatic = false 1`]
|
|
|
336
336
|
</div>
|
|
337
337
|
<div
|
|
338
338
|
class="pf-v5-c-drawer__panel"
|
|
339
|
-
id="
|
|
339
|
+
id="generated-id"
|
|
340
340
|
>
|
|
341
341
|
<div
|
|
342
342
|
class="pf-v5-c-drawer__body"
|
|
@@ -410,7 +410,7 @@ exports[`Drawer isExpanded = true and isInline = false and isStatic = true 1`] =
|
|
|
410
410
|
</div>
|
|
411
411
|
<div
|
|
412
412
|
class="pf-v5-c-drawer__panel"
|
|
413
|
-
id="
|
|
413
|
+
id="generated-id"
|
|
414
414
|
>
|
|
415
415
|
<div
|
|
416
416
|
class="pf-v5-c-drawer__body"
|
|
@@ -484,7 +484,7 @@ exports[`Drawer isExpanded = true and isInline = true and isStatic = false 1`] =
|
|
|
484
484
|
</div>
|
|
485
485
|
<div
|
|
486
486
|
class="pf-v5-c-drawer__panel"
|
|
487
|
-
id="
|
|
487
|
+
id="generated-id"
|
|
488
488
|
>
|
|
489
489
|
<div
|
|
490
490
|
class="pf-v5-c-drawer__body"
|
|
@@ -65,6 +65,10 @@ export interface DropdownProps extends MenuProps, OUIAProps {
|
|
|
65
65
|
zIndex?: number;
|
|
66
66
|
/** Additional properties to pass to the Popper */
|
|
67
67
|
popperProps?: DropdownPopperProps;
|
|
68
|
+
/** Height of the dropdown menu */
|
|
69
|
+
menuHeight?: string;
|
|
70
|
+
/** Maximum height of dropdown menu */
|
|
71
|
+
maxMenuHeight?: string;
|
|
68
72
|
}
|
|
69
73
|
|
|
70
74
|
const DropdownBase: React.FunctionComponent<DropdownProps> = ({
|
|
@@ -83,6 +87,8 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
|
|
|
83
87
|
zIndex = 9999,
|
|
84
88
|
popperProps,
|
|
85
89
|
onOpenChangeKeys = ['Escape', 'Tab'],
|
|
90
|
+
menuHeight,
|
|
91
|
+
maxMenuHeight,
|
|
86
92
|
...props
|
|
87
93
|
}: DropdownProps) => {
|
|
88
94
|
const localMenuRef = React.useRef<HTMLDivElement>();
|
|
@@ -111,8 +117,8 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
|
|
|
111
117
|
};
|
|
112
118
|
|
|
113
119
|
const handleClick = (event: MouseEvent) => {
|
|
114
|
-
// toggle was
|
|
115
|
-
if (isOpen && toggleRef.current?.contains(event.target as Node)
|
|
120
|
+
// toggle was opened, focus on first menu item
|
|
121
|
+
if (isOpen && toggleRef.current?.contains(event.target as Node)) {
|
|
116
122
|
setTimeout(() => {
|
|
117
123
|
const firstElement = menuRef?.current?.querySelector(
|
|
118
124
|
'li button:not(:disabled),li input:not(:disabled),li a:not([aria-disabled="true"])'
|
|
@@ -138,6 +144,8 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
|
|
|
138
144
|
};
|
|
139
145
|
}, [isOpen, menuRef, toggleRef, onOpenChange, onOpenChangeKeys]);
|
|
140
146
|
|
|
147
|
+
const scrollable = maxMenuHeight !== undefined || menuHeight !== undefined || isScrollable;
|
|
148
|
+
|
|
141
149
|
const menu = (
|
|
142
150
|
<Menu
|
|
143
151
|
className={css(className)}
|
|
@@ -147,11 +155,13 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
|
|
|
147
155
|
shouldFocusToggleOnSelect && toggleRef.current.focus();
|
|
148
156
|
}}
|
|
149
157
|
isPlain={isPlain}
|
|
150
|
-
isScrollable={
|
|
158
|
+
isScrollable={scrollable}
|
|
151
159
|
{...props}
|
|
152
160
|
{...ouiaProps}
|
|
153
161
|
>
|
|
154
|
-
<MenuContent
|
|
162
|
+
<MenuContent menuHeight={menuHeight} maxMenuHeight={maxMenuHeight}>
|
|
163
|
+
{children}
|
|
164
|
+
</MenuContent>
|
|
155
165
|
</Menu>
|
|
156
166
|
);
|
|
157
167
|
return (
|
|
@@ -7,6 +7,8 @@ import { FormFieldGroupExpandable } from '../FormFieldGroupExpandable';
|
|
|
7
7
|
import { FormFieldGroupHeader } from '../FormFieldGroupHeader';
|
|
8
8
|
import { Button } from '../../Button';
|
|
9
9
|
|
|
10
|
+
jest.mock('../../../helpers/GenerateId/GenerateId');
|
|
11
|
+
|
|
10
12
|
test('Check form field group example against snapshot', () => {
|
|
11
13
|
const FieldGroup = (
|
|
12
14
|
<FormFieldGroup
|
|
@@ -2,6 +2,8 @@ import * as React from 'react';
|
|
|
2
2
|
import { FormSection } from '../FormSection';
|
|
3
3
|
import { render, screen } from '@testing-library/react';
|
|
4
4
|
|
|
5
|
+
jest.mock('../../../helpers/GenerateId/GenerateId');
|
|
6
|
+
|
|
5
7
|
test('Check form section example against snapshot', () => {
|
|
6
8
|
const Section = <FormSection />;
|
|
7
9
|
const { asFragment } = render(Section);
|
|
@@ -17,12 +17,12 @@ exports[`Check expandable form field group example against snapshot 1`] = `
|
|
|
17
17
|
aria-disabled="false"
|
|
18
18
|
aria-expanded="true"
|
|
19
19
|
aria-label="toggle"
|
|
20
|
-
aria-labelledby="title-text-id2
|
|
20
|
+
aria-labelledby="title-text-id2 generated-id"
|
|
21
21
|
class="pf-v5-c-button pf-m-plain"
|
|
22
22
|
data-ouia-component-id="OUIA-Generated-Button-plain-1"
|
|
23
23
|
data-ouia-component-type="PF5/Button"
|
|
24
24
|
data-ouia-safe="true"
|
|
25
|
-
id="
|
|
25
|
+
id="generated-id"
|
|
26
26
|
type="button"
|
|
27
27
|
>
|
|
28
28
|
<span
|
|
@@ -12,13 +12,13 @@ exports[`Check form section example against snapshot 1`] = `
|
|
|
12
12
|
exports[`Check form section example with title 1`] = `
|
|
13
13
|
<DocumentFragment>
|
|
14
14
|
<section
|
|
15
|
-
aria-labelledby="
|
|
15
|
+
aria-labelledby="generated-id"
|
|
16
16
|
class="pf-v5-c-form__section"
|
|
17
17
|
role="group"
|
|
18
18
|
>
|
|
19
19
|
<h4
|
|
20
20
|
class="pf-v5-c-form__section-title"
|
|
21
|
-
id="
|
|
21
|
+
id="generated-id"
|
|
22
22
|
>
|
|
23
23
|
Title
|
|
24
24
|
</h4>
|
|
@@ -6,6 +6,8 @@ import userEvent from '@testing-library/user-event';
|
|
|
6
6
|
import { Label } from '../../Label';
|
|
7
7
|
import { LabelGroup } from '../index';
|
|
8
8
|
|
|
9
|
+
jest.mock('../../../helpers/GenerateId/GenerateId');
|
|
10
|
+
|
|
9
11
|
describe('LabelGroup', () => {
|
|
10
12
|
test('label group default', () => {
|
|
11
13
|
const { asFragment } = render(
|
|
@@ -134,12 +134,12 @@ exports[`LabelGroup label group with category 1`] = `
|
|
|
134
134
|
<span
|
|
135
135
|
aria-hidden="true"
|
|
136
136
|
class="pf-v5-c-label-group__label"
|
|
137
|
-
id="
|
|
137
|
+
id="generated-id"
|
|
138
138
|
>
|
|
139
139
|
category
|
|
140
140
|
</span>
|
|
141
141
|
<ul
|
|
142
|
-
aria-labelledby="
|
|
142
|
+
aria-labelledby="generated-id"
|
|
143
143
|
class="pf-v5-c-label-group__list"
|
|
144
144
|
role="list"
|
|
145
145
|
>
|
|
@@ -177,12 +177,12 @@ exports[`LabelGroup label group with category and tooltip 1`] = `
|
|
|
177
177
|
<span
|
|
178
178
|
aria-hidden="true"
|
|
179
179
|
class="pf-v5-c-label-group__label"
|
|
180
|
-
id="
|
|
180
|
+
id="generated-id"
|
|
181
181
|
>
|
|
182
182
|
A very long category name
|
|
183
183
|
</span>
|
|
184
184
|
<ul
|
|
185
|
-
aria-labelledby="
|
|
185
|
+
aria-labelledby="generated-id"
|
|
186
186
|
class="pf-v5-c-label-group__list"
|
|
187
187
|
role="list"
|
|
188
188
|
>
|
|
@@ -220,12 +220,12 @@ exports[`LabelGroup label group with closable category 1`] = `
|
|
|
220
220
|
<span
|
|
221
221
|
aria-hidden="true"
|
|
222
222
|
class="pf-v5-c-label-group__label"
|
|
223
|
-
id="
|
|
223
|
+
id="generated-id"
|
|
224
224
|
>
|
|
225
225
|
category
|
|
226
226
|
</span>
|
|
227
227
|
<ul
|
|
228
|
-
aria-labelledby="
|
|
228
|
+
aria-labelledby="generated-id"
|
|
229
229
|
class="pf-v5-c-label-group__list"
|
|
230
230
|
role="list"
|
|
231
231
|
>
|
|
@@ -254,12 +254,12 @@ exports[`LabelGroup label group with closable category 1`] = `
|
|
|
254
254
|
<button
|
|
255
255
|
aria-disabled="false"
|
|
256
256
|
aria-label="Close label group"
|
|
257
|
-
aria-labelledby="
|
|
257
|
+
aria-labelledby="remove_group_generated-id generated-id"
|
|
258
258
|
class="pf-v5-c-button pf-m-plain"
|
|
259
259
|
data-ouia-component-id="OUIA-Generated-Button-plain-1"
|
|
260
260
|
data-ouia-component-type="PF5/Button"
|
|
261
261
|
data-ouia-safe="true"
|
|
262
|
-
id="
|
|
262
|
+
id="remove_group_generated-id"
|
|
263
263
|
type="button"
|
|
264
264
|
>
|
|
265
265
|
<svg
|
|
@@ -156,8 +156,11 @@ class MenuBase extends React.Component<MenuProps, MenuState> {
|
|
|
156
156
|
this.setState({ transitionMoveTarget: null });
|
|
157
157
|
} else {
|
|
158
158
|
const nextMenu = current.querySelector('#' + this.props.activeMenu) || current || null;
|
|
159
|
-
const
|
|
160
|
-
|
|
159
|
+
const nextMenuLists = nextMenu.getElementsByTagName('UL');
|
|
160
|
+
if (nextMenuLists.length === 0) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
const nextMenuChildren = Array.from(nextMenuLists[0].children);
|
|
161
164
|
if (!this.state.currentDrilldownMenuId || nextMenu.id !== this.state.currentDrilldownMenuId) {
|
|
162
165
|
this.setState({ currentDrilldownMenuId: nextMenu.id });
|
|
163
166
|
} else {
|
|
@@ -167,7 +170,6 @@ class MenuBase extends React.Component<MenuProps, MenuState> {
|
|
|
167
170
|
const nextTarget = nextMenuChildren.filter(
|
|
168
171
|
(el) => !(el.classList.contains('pf-m-disabled') || el.classList.contains(styles.divider))
|
|
169
172
|
)[0].firstChild;
|
|
170
|
-
|
|
171
173
|
(nextTarget as HTMLElement).focus();
|
|
172
174
|
(nextTarget as HTMLElement).tabIndex = 0;
|
|
173
175
|
}
|
|
@@ -69,8 +69,8 @@ export const MenuContainer: React.FunctionComponent<MenuContainerProps> = ({
|
|
|
69
69
|
};
|
|
70
70
|
|
|
71
71
|
const handleClick = (event: MouseEvent) => {
|
|
72
|
-
// toggle was
|
|
73
|
-
if (isOpen && toggleRef.current?.contains(event.target as Node)
|
|
72
|
+
// toggle was opened, focus on first menu item
|
|
73
|
+
if (isOpen && toggleRef.current?.contains(event.target as Node)) {
|
|
74
74
|
setTimeout(() => {
|
|
75
75
|
const firstElement = menuRef?.current?.querySelector(
|
|
76
76
|
'li button:not(:disabled),li input:not(:disabled),li a:not([aria-disabled="true"])'
|
|
@@ -3,6 +3,15 @@ import styles from '@patternfly/react-styles/css/components/MenuToggle/menu-togg
|
|
|
3
3
|
import { css } from '@patternfly/react-styles';
|
|
4
4
|
import CaretDownIcon from '@patternfly/react-icons/dist/esm/icons/caret-down-icon';
|
|
5
5
|
import { BadgeProps } from '../Badge';
|
|
6
|
+
import CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';
|
|
7
|
+
import ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';
|
|
8
|
+
import ExclamationTriangleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon';
|
|
9
|
+
|
|
10
|
+
export enum MenuToggleStatus {
|
|
11
|
+
success = 'success',
|
|
12
|
+
danger = 'danger',
|
|
13
|
+
warning = 'warning'
|
|
14
|
+
}
|
|
6
15
|
|
|
7
16
|
export type MenuToggleElement = HTMLDivElement | HTMLButtonElement;
|
|
8
17
|
|
|
@@ -37,6 +46,10 @@ export interface MenuToggleProps
|
|
|
37
46
|
splitButtonOptions?: SplitButtonOptions;
|
|
38
47
|
/** Variant styles of the menu toggle */
|
|
39
48
|
variant?: 'default' | 'plain' | 'primary' | 'plainText' | 'secondary' | 'typeahead';
|
|
49
|
+
/** @beta Status styles of the menu toggle */
|
|
50
|
+
status?: 'success' | 'warning' | 'danger';
|
|
51
|
+
/** Overrides the status icon */
|
|
52
|
+
statusIcon?: React.ReactNode;
|
|
40
53
|
/** Optional icon or image rendered inside the toggle, before the children content. It is
|
|
41
54
|
* recommended to wrap most basic icons in our icon component.
|
|
42
55
|
*/
|
|
@@ -69,6 +82,8 @@ class MenuToggleBase extends React.Component<MenuToggleProps> {
|
|
|
69
82
|
isFullWidth,
|
|
70
83
|
splitButtonOptions,
|
|
71
84
|
variant,
|
|
85
|
+
status,
|
|
86
|
+
statusIcon,
|
|
72
87
|
innerRef,
|
|
73
88
|
onClick,
|
|
74
89
|
'aria-label': ariaLabel,
|
|
@@ -77,8 +92,25 @@ class MenuToggleBase extends React.Component<MenuToggleProps> {
|
|
|
77
92
|
const isPlain = variant === 'plain';
|
|
78
93
|
const isPlainText = variant === 'plainText';
|
|
79
94
|
const isTypeahead = variant === 'typeahead';
|
|
95
|
+
|
|
96
|
+
let _statusIcon = statusIcon;
|
|
97
|
+
if (!statusIcon) {
|
|
98
|
+
switch (status) {
|
|
99
|
+
case MenuToggleStatus.success:
|
|
100
|
+
_statusIcon = <CheckCircleIcon aria-hidden="true" />;
|
|
101
|
+
break;
|
|
102
|
+
case MenuToggleStatus.warning:
|
|
103
|
+
_statusIcon = <ExclamationTriangleIcon aria-hidden="true" />;
|
|
104
|
+
break;
|
|
105
|
+
case MenuToggleStatus.danger:
|
|
106
|
+
_statusIcon = <ExclamationCircleIcon aria-hidden="true" />;
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
80
111
|
const toggleControls = (
|
|
81
112
|
<span className={css(styles.menuToggleControls)}>
|
|
113
|
+
{status !== undefined && <span className={css(styles.menuToggleStatusIcon)}>{_statusIcon}</span>}
|
|
82
114
|
<span className={css(styles.menuToggleToggleIcon)}>
|
|
83
115
|
<CaretDownIcon aria-hidden />
|
|
84
116
|
</span>
|
|
@@ -111,6 +143,7 @@ class MenuToggleBase extends React.Component<MenuToggleProps> {
|
|
|
111
143
|
isExpanded && styles.modifiers.expanded,
|
|
112
144
|
variant === 'primary' && styles.modifiers.primary,
|
|
113
145
|
variant === 'secondary' && styles.modifiers.secondary,
|
|
146
|
+
status && styles.modifiers[status],
|
|
114
147
|
(isPlain || isPlainText) && styles.modifiers.plain,
|
|
115
148
|
isPlainText && styles.modifiers.text,
|
|
116
149
|
isFullHeight && styles.modifiers.fullHeight,
|
|
@@ -84,7 +84,7 @@ class MenuToggleCheckbox extends React.Component<MenuToggleCheckboxProps, { ouia
|
|
|
84
84
|
</span>
|
|
85
85
|
);
|
|
86
86
|
return (
|
|
87
|
-
<label className={css(styles.check, !children && styles.modifiers.standalone, className)}
|
|
87
|
+
<label className={css(styles.check, !children && styles.modifiers.standalone, className)}>
|
|
88
88
|
<input
|
|
89
89
|
className={css(styles.checkInput)}
|
|
90
90
|
{...(this.calculateChecked() !== undefined && { onChange: this.handleChange })}
|
|
@@ -93,7 +93,7 @@ class MenuToggleCheckbox extends React.Component<MenuToggleCheckboxProps, { ouia
|
|
|
93
93
|
ref={(elem) => elem && (elem.indeterminate = isChecked === null)}
|
|
94
94
|
aria-invalid={!isValid}
|
|
95
95
|
disabled={isDisabled}
|
|
96
|
-
{...(defaultChecked !== undefined ? { defaultChecked } : { checked:
|
|
96
|
+
{...(defaultChecked !== undefined ? { defaultChecked } : { checked: this.calculateChecked() })}
|
|
97
97
|
{...getOUIAProps(
|
|
98
98
|
MenuToggleCheckbox.displayName,
|
|
99
99
|
ouiaId !== undefined ? ouiaId : this.state.ouiaStateId,
|
|
@@ -57,6 +57,21 @@ describe('menu toggle', () => {
|
|
|
57
57
|
expect(asFragment()).toMatchSnapshot();
|
|
58
58
|
});
|
|
59
59
|
|
|
60
|
+
test('shows success status', () => {
|
|
61
|
+
render(<MenuToggle status="success">Toggle</MenuToggle>);
|
|
62
|
+
expect(screen.getByRole('button')).toHaveClass('pf-m-success');
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
test('shows warning status', () => {
|
|
66
|
+
render(<MenuToggle status="warning">Toggle</MenuToggle>);
|
|
67
|
+
expect(screen.getByRole('button')).toHaveClass('pf-m-warning');
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
test('shows danger status', () => {
|
|
71
|
+
render(<MenuToggle status="danger">Toggle</MenuToggle>);
|
|
72
|
+
expect(screen.getByRole('button')).toHaveClass('pf-m-danger');
|
|
73
|
+
});
|
|
74
|
+
|
|
60
75
|
test('split toggle passes onClick', async () => {
|
|
61
76
|
const mockClick = jest.fn();
|
|
62
77
|
const user = userEvent.setup();
|
|
@@ -17,7 +17,7 @@ import TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';
|
|
|
17
17
|
|
|
18
18
|
### Collapsed toggle
|
|
19
19
|
|
|
20
|
-
A toggle is collapsed until it is selected by a user.
|
|
20
|
+
A toggle is collapsed until it is selected by a user.
|
|
21
21
|
|
|
22
22
|
```ts
|
|
23
23
|
import React from 'react';
|
|
@@ -29,7 +29,7 @@ import { MenuToggle } from '@patternfly/react-core';
|
|
|
29
29
|
|
|
30
30
|
### Expanded toggle
|
|
31
31
|
|
|
32
|
-
When a user selects a toggle, it becomes expanded and is styled with a blue underline. To flag expanded toggles, and apply expanded styling, use the `isExpanded` property .
|
|
32
|
+
When a user selects a toggle, it becomes expanded and is styled with a blue underline. To flag expanded toggles, and apply expanded styling, use the `isExpanded` property .
|
|
33
33
|
|
|
34
34
|
```ts
|
|
35
35
|
import React from 'react';
|
|
@@ -41,7 +41,7 @@ import { MenuToggle } from '@patternfly/react-core';
|
|
|
41
41
|
|
|
42
42
|
### Disabled toggle
|
|
43
43
|
|
|
44
|
-
To disable the selection and expansion of a toggle, use the `isDisabled` property.
|
|
44
|
+
To disable the selection and expansion of a toggle, use the `isDisabled` property.
|
|
45
45
|
|
|
46
46
|
```ts
|
|
47
47
|
import React from 'react';
|
|
@@ -65,7 +65,7 @@ import { MenuToggle, Badge } from '@patternfly/react-core';
|
|
|
65
65
|
|
|
66
66
|
### With icons
|
|
67
67
|
|
|
68
|
-
To add a recognizable icon to a menu toggle, use the `icon` property. The following example adds a `CogIcon` to the
|
|
68
|
+
To add a recognizable icon to a menu toggle, use the `icon` property. The following example adds a `CogIcon` to the toggle.
|
|
69
69
|
|
|
70
70
|
For most basic icons, it is recommended to wrap it inside our [icon component](/components/icon).
|
|
71
71
|
|
|
@@ -111,7 +111,7 @@ import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
|
|
|
111
111
|
|
|
112
112
|
### With avatar and text
|
|
113
113
|
|
|
114
|
-
You can also pass images into the `icon` property. The following example passes in an `<Avatar>` component with an `imgAvatar`.
|
|
114
|
+
You can also pass images into the `icon` property. The following example passes in an `<Avatar>` component with an `imgAvatar`.
|
|
115
115
|
|
|
116
116
|
This can be used alongside a text label that provides more context for the image.
|
|
117
117
|
|
|
@@ -150,9 +150,9 @@ import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
|
|
|
150
150
|
|
|
151
151
|
### Plain toggle with icon
|
|
152
152
|
|
|
153
|
-
To apply plain styling to a menu toggle with an icon, pass in `variant="plain"`. This will remove the default bottom border and caret. You may pass in an `icon` to serve as the menu toggle. The following example passes in an `EllipsisVIcon`.
|
|
153
|
+
To apply plain styling to a menu toggle with an icon, pass in `variant="plain"`. This will remove the default bottom border and caret. You may pass in an `icon` to serve as the menu toggle. The following example passes in an `EllipsisVIcon`.
|
|
154
154
|
|
|
155
|
-
If the toggle does not have any visible text content, use the `aria-label` property to provide an accessible name.
|
|
155
|
+
If the toggle does not have any visible text content, use the `aria-label` property to provide an accessible name.
|
|
156
156
|
|
|
157
157
|
```ts
|
|
158
158
|
import React from 'react';
|
|
@@ -171,6 +171,7 @@ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-ico
|
|
|
171
171
|
</MenuToggle>
|
|
172
172
|
</React.Fragment>
|
|
173
173
|
```
|
|
174
|
+
|
|
174
175
|
### Plain toggle with text label
|
|
175
176
|
|
|
176
177
|
To apply plain styling to a menu toggle with a text label, pass in `variant="plainText"`. Unlike the “plain” variant, “plainText” adds a caret pointing down in the toggle.
|
|
@@ -201,27 +202,30 @@ The following example shows a split button with a `<MenuToggleCheckbox>`.
|
|
|
201
202
|
Variant styling can be applied to split button toggles to adjust their appearance for different scenarios. Both "primary" and "secondary" variants can be used with split button toggles.
|
|
202
203
|
|
|
203
204
|
```ts file='MenuToggleSplitButtonCheckbox.tsx'
|
|
205
|
+
|
|
204
206
|
```
|
|
205
207
|
|
|
206
208
|
### Split button toggle with text label
|
|
207
209
|
|
|
208
|
-
To display text in a split button menu toggle, add a label to the `items` property of `splitButtonOptions`.
|
|
210
|
+
To display text in a split button menu toggle, add a label to the `items` property of `splitButtonOptions`.
|
|
209
211
|
|
|
210
212
|
```ts file='MenuToggleSplitButtonCheckboxWithText.tsx'
|
|
213
|
+
|
|
211
214
|
```
|
|
212
215
|
|
|
213
216
|
### Split button toggle with action
|
|
214
217
|
|
|
215
|
-
To add an action to a split button, pass `variant='action'` into `splitButtonOptions` and add a `<MenuToggleAction>` to the `items` property of `splitButtonOptions`.
|
|
218
|
+
To add an action to a split button, pass `variant='action'` into `splitButtonOptions` and add a `<MenuToggleAction>` to the `items` property of `splitButtonOptions`.
|
|
216
219
|
|
|
217
220
|
Actions may be used with primary and secondary toggle variants.
|
|
218
|
-
|
|
221
|
+
|
|
219
222
|
```ts file='MenuToggleSplitButtonAction.tsx'
|
|
223
|
+
|
|
220
224
|
```
|
|
221
225
|
|
|
222
226
|
### Full height toggle
|
|
223
227
|
|
|
224
|
-
A full height toggle fills the height of its parent. To flag a full height toggle, use the `isFullHeight` property.
|
|
228
|
+
A full height toggle fills the height of its parent. To flag a full height toggle, use the `isFullHeight` property.
|
|
225
229
|
|
|
226
230
|
In the following example, the toggle fills the size of the "80px" `<div>` element that it is within.
|
|
227
231
|
|
|
@@ -238,7 +242,7 @@ import { MenuToggle } from '@patternfly/react-core';
|
|
|
238
242
|
|
|
239
243
|
### Full width toggle
|
|
240
244
|
|
|
241
|
-
A full width toggle fills the width of its parent. To flag a full width toggle, use the `isFullWidth` property.
|
|
245
|
+
A full width toggle fills the width of its parent. To flag a full width toggle, use the `isFullWidth` property.
|
|
242
246
|
|
|
243
247
|
In the following example, the toggle fills the width of its parent as the window size changes.
|
|
244
248
|
|
|
@@ -249,7 +253,7 @@ import { MenuToggle } from '@patternfly/react-core';
|
|
|
249
253
|
const fullWidth: React.FunctionComponent = () => {
|
|
250
254
|
return (
|
|
251
255
|
<MenuToggle isFullWidth aria-label="Full width menu toggle" >
|
|
252
|
-
Full width
|
|
256
|
+
Full width
|
|
253
257
|
</MenuToggle>
|
|
254
258
|
);
|
|
255
259
|
}
|
|
@@ -262,4 +266,15 @@ To create a typeahead toggle, pass in `variant="typeahead"` to the `<MenuToggle>
|
|
|
262
266
|
To create a multiple typeahead toggle, pass a `<TextInputGroup>` component implemented like the [text input group's filter example](/components/text-input-group#filters) as a child of `<MenuToggle>`.
|
|
263
267
|
|
|
264
268
|
```ts file='MenuToggleTypeahead.tsx'
|
|
269
|
+
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### Status toggle
|
|
273
|
+
|
|
274
|
+
To create a toggle with a status, pass in the `status` property to the `MenuToggle`. The default icon associated with each status may be overridden by using the `statusIcon` property.
|
|
275
|
+
|
|
276
|
+
When the status value is "warning" or "danger", you must include helper text that conveys what is causing the warning/error.
|
|
277
|
+
|
|
278
|
+
```ts isBeta file='MenuToggleStatus.tsx'
|
|
279
|
+
|
|
265
280
|
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { MenuToggle, HelperText, HelperTextItem } from '@patternfly/react-core';
|
|
3
|
+
|
|
4
|
+
export const MenuToggleStatus: React.FunctionComponent = () => (
|
|
5
|
+
<React.Fragment>
|
|
6
|
+
<MenuToggle status="success">Success</MenuToggle>
|
|
7
|
+
<br />
|
|
8
|
+
<br />
|
|
9
|
+
<MenuToggle status="warning">Warning</MenuToggle>
|
|
10
|
+
<HelperText>
|
|
11
|
+
<HelperTextItem variant="warning">Warning text that explains the issue.</HelperTextItem>
|
|
12
|
+
</HelperText>
|
|
13
|
+
<br />
|
|
14
|
+
<br />
|
|
15
|
+
<MenuToggle status="danger">Danger</MenuToggle>
|
|
16
|
+
<HelperText>
|
|
17
|
+
<HelperTextItem variant="error">Danger text that explains the issue.</HelperTextItem>
|
|
18
|
+
</HelperText>
|
|
19
|
+
</React.Fragment>
|
|
20
|
+
);
|
|
@@ -2,6 +2,8 @@ import React from 'react';
|
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
3
|
import { MultipleFileUpload } from '../MultipleFileUpload';
|
|
4
4
|
|
|
5
|
+
jest.mock('../../../helpers/GenerateId/GenerateId');
|
|
6
|
+
|
|
5
7
|
describe('MultipleFileUpload', () => {
|
|
6
8
|
test('renders with expected class names when not horizontal', () => {
|
|
7
9
|
const { asFragment } = render(<MultipleFileUpload>Foo</MultipleFileUpload>);
|
|
@@ -3,6 +3,8 @@ import { render } from '@testing-library/react';
|
|
|
3
3
|
import { MultipleFileUploadStatus } from '../MultipleFileUploadStatus';
|
|
4
4
|
import InProgressIcon from '@patternfly/react-icons/dist/esm/icons/in-progress-icon';
|
|
5
5
|
|
|
6
|
+
jest.mock('../../../helpers/GenerateId/GenerateId');
|
|
7
|
+
|
|
6
8
|
describe('MultipleFileUploadStatus', () => {
|
|
7
9
|
test('renders with expected class names', () => {
|
|
8
10
|
const { asFragment } = render(<MultipleFileUploadStatus>Foo</MultipleFileUploadStatus>);
|