@patternfly/react-core 5.1.1-prerelease.2 → 5.1.1-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 +113 -0
- package/components/package.json +1 -1
- package/deprecated/package.json +1 -1
- package/dist/dynamic/components/AboutModal/package.json +1 -1
- package/dist/dynamic/components/Accordion/package.json +1 -1
- package/dist/dynamic/components/ActionList/package.json +1 -1
- package/dist/dynamic/components/Alert/package.json +1 -1
- package/dist/dynamic/components/Avatar/package.json +1 -1
- package/dist/dynamic/components/BackToTop/package.json +1 -1
- package/dist/dynamic/components/Backdrop/package.json +1 -1
- package/dist/dynamic/components/BackgroundImage/package.json +1 -1
- package/dist/dynamic/components/Badge/package.json +1 -1
- package/dist/dynamic/components/Banner/package.json +1 -1
- package/dist/dynamic/components/Brand/package.json +1 -1
- package/dist/dynamic/components/Breadcrumb/package.json +1 -1
- package/dist/dynamic/components/Button/package.json +1 -1
- package/dist/dynamic/components/CalendarMonth/package.json +1 -1
- package/dist/dynamic/components/Card/package.json +1 -1
- package/dist/dynamic/components/Checkbox/package.json +1 -1
- package/dist/dynamic/components/Chip/package.json +1 -1
- package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
- package/dist/dynamic/components/CodeBlock/package.json +1 -1
- package/dist/dynamic/components/DataList/package.json +1 -1
- package/dist/dynamic/components/DatePicker/package.json +1 -1
- package/dist/dynamic/components/DescriptionList/package.json +1 -1
- package/dist/dynamic/components/Divider/package.json +1 -1
- package/dist/dynamic/components/DragDrop/package.json +1 -1
- package/dist/dynamic/components/Drawer/package.json +1 -1
- package/dist/dynamic/components/Dropdown/package.json +1 -1
- package/dist/dynamic/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/components/EmptyState/package.json +1 -1
- package/dist/dynamic/components/ExpandableSection/package.json +1 -1
- package/dist/dynamic/components/FileUpload/package.json +1 -1
- package/dist/dynamic/components/Form/package.json +1 -1
- package/dist/dynamic/components/FormSelect/package.json +1 -1
- package/dist/dynamic/components/HelperText/package.json +1 -1
- package/dist/dynamic/components/Hint/package.json +1 -1
- package/dist/dynamic/components/Icon/package.json +1 -1
- package/dist/dynamic/components/InputGroup/package.json +1 -1
- package/dist/dynamic/components/JumpLinks/package.json +1 -1
- package/dist/dynamic/components/Label/package.json +1 -1
- package/dist/dynamic/components/List/package.json +1 -1
- package/dist/dynamic/components/LoginPage/package.json +1 -1
- package/dist/dynamic/components/Masthead/package.json +1 -1
- package/dist/dynamic/components/Menu/package.json +1 -1
- package/dist/dynamic/components/MenuToggle/package.json +1 -1
- package/dist/dynamic/components/Modal/package.json +1 -1
- package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
- package/dist/dynamic/components/Nav/package.json +1 -1
- package/dist/dynamic/components/NotificationBadge/package.json +1 -1
- package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
- package/dist/dynamic/components/NumberInput/package.json +1 -1
- package/dist/dynamic/components/OverflowMenu/package.json +1 -1
- package/dist/dynamic/components/Page/package.json +1 -1
- package/dist/dynamic/components/Pagination/package.json +1 -1
- package/dist/dynamic/components/Panel/package.json +1 -1
- package/dist/dynamic/components/Popover/package.json +1 -1
- package/dist/dynamic/components/Progress/package.json +1 -1
- package/dist/dynamic/components/ProgressStepper/package.json +1 -1
- package/dist/dynamic/components/Radio/package.json +1 -1
- package/dist/dynamic/components/SearchInput/package.json +1 -1
- package/dist/dynamic/components/Select/package.json +1 -1
- package/dist/dynamic/components/Sidebar/package.json +1 -1
- package/dist/dynamic/components/SimpleList/package.json +1 -1
- package/dist/dynamic/components/Skeleton/package.json +1 -1
- package/dist/dynamic/components/SkipToContent/package.json +1 -1
- package/dist/dynamic/components/Slider/package.json +1 -1
- package/dist/dynamic/components/Spinner/package.json +1 -1
- package/dist/dynamic/components/Switch/package.json +1 -1
- package/dist/dynamic/components/Tabs/package.json +1 -1
- package/dist/dynamic/components/Text/package.json +1 -1
- package/dist/dynamic/components/TextArea/package.json +1 -1
- package/dist/dynamic/components/TextInput/package.json +1 -1
- package/dist/dynamic/components/TextInputGroup/package.json +1 -1
- package/dist/dynamic/components/Tile/package.json +1 -1
- package/dist/dynamic/components/TimePicker/package.json +1 -1
- package/dist/dynamic/components/Timestamp/package.json +1 -1
- package/dist/dynamic/components/Title/package.json +1 -1
- package/dist/dynamic/components/ToggleGroup/package.json +1 -1
- package/dist/dynamic/components/Toolbar/package.json +1 -1
- package/dist/dynamic/components/Tooltip/package.json +1 -1
- package/dist/dynamic/components/TreeView/package.json +1 -1
- package/dist/dynamic/components/Truncate/package.json +1 -1
- package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
- package/dist/dynamic/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/ApplicationLauncher/package.json +1 -1
- package/dist/dynamic/deprecated/components/ContextSelector/package.json +1 -1
- package/dist/dynamic/deprecated/components/Dropdown/package.json +1 -1
- package/dist/dynamic/deprecated/components/OptionsMenu/package.json +1 -1
- package/dist/dynamic/deprecated/components/PageHeader/package.json +1 -1
- package/dist/dynamic/deprecated/components/Select/package.json +1 -1
- package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/package.json +1 -1
- package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
- package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
- package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
- package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
- package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
- package/dist/dynamic/helpers/constants/package.json +1 -1
- package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
- package/dist/dynamic/helpers/favorites/package.json +1 -1
- package/dist/dynamic/helpers/fileUtils/package.json +1 -1
- package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
- package/dist/dynamic/helpers/package.json +1 -1
- package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
- package/dist/dynamic/helpers/typeUtils/package.json +1 -1
- package/dist/dynamic/helpers/useInterval/package.json +1 -1
- package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
- package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
- package/dist/dynamic/helpers/util/package.json +1 -1
- package/dist/dynamic/layouts/Bullseye/package.json +1 -1
- package/dist/dynamic/layouts/Flex/package.json +1 -1
- package/dist/dynamic/layouts/Gallery/package.json +1 -1
- package/dist/dynamic/layouts/Grid/package.json +1 -1
- package/dist/dynamic/layouts/Level/package.json +1 -1
- package/dist/dynamic/layouts/Split/package.json +1 -1
- package/dist/dynamic/layouts/Stack/package.json +1 -1
- package/dist/dynamic/next/components/package.json +1 -1
- package/dist/esm/components/BackToTop/BackToTop.js +1 -1
- package/dist/esm/components/BackToTop/BackToTop.js.map +1 -1
- package/dist/esm/components/Button/Button.d.ts +2 -2
- package/dist/esm/components/Button/Button.d.ts.map +1 -1
- package/dist/esm/components/Button/Button.js +3 -3
- package/dist/esm/components/Button/Button.js.map +1 -1
- package/dist/esm/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
- package/dist/esm/components/ClipboardCopy/ClipboardCopy.js +1 -1
- package/dist/esm/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
- package/dist/esm/components/ClipboardCopy/ClipboardCopyExpanded.js +1 -1
- package/dist/esm/components/ClipboardCopy/ClipboardCopyExpanded.js.map +1 -1
- package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.d.ts.map +1 -1
- package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js +5 -2
- package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
- package/dist/esm/components/Drawer/Drawer.d.ts +3 -3
- package/dist/esm/components/Drawer/Drawer.d.ts.map +1 -1
- package/dist/esm/components/Drawer/Drawer.js +3 -3
- package/dist/esm/components/Drawer/Drawer.js.map +1 -1
- package/dist/esm/components/Drawer/DrawerPanelContent.d.ts +16 -0
- package/dist/esm/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
- package/dist/esm/components/Drawer/DrawerPanelContent.js +132 -41
- package/dist/esm/components/Drawer/DrawerPanelContent.js.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.d.ts +3 -1
- package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/Icon/Icon.d.ts +4 -0
- package/dist/esm/components/Icon/Icon.d.ts.map +1 -1
- package/dist/esm/components/Icon/Icon.js +2 -2
- package/dist/esm/components/Icon/Icon.js.map +1 -1
- package/dist/esm/components/Label/Label.d.ts +4 -2
- package/dist/esm/components/Label/Label.d.ts.map +1 -1
- package/dist/esm/components/Label/Label.js +19 -4
- package/dist/esm/components/Label/Label.js.map +1 -1
- package/dist/esm/components/Menu/MenuContainer.d.ts +1 -1
- package/dist/esm/components/Menu/MenuContainer.d.ts.map +1 -1
- package/dist/esm/components/Modal/ModalContent.d.ts.map +1 -1
- package/dist/esm/components/Modal/ModalContent.js +3 -1
- package/dist/esm/components/Modal/ModalContent.js.map +1 -1
- package/dist/esm/components/Nav/NavItem.d.ts +1 -1
- package/dist/esm/components/Nav/NavItem.d.ts.map +1 -1
- package/dist/esm/components/Nav/NavList.d.ts +10 -4
- package/dist/esm/components/Nav/NavList.d.ts.map +1 -1
- package/dist/esm/components/Nav/NavList.js +29 -8
- package/dist/esm/components/Nav/NavList.js.map +1 -1
- package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/esm/components/SearchInput/SearchInput.js +4 -2
- package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts +9 -1
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Slider/Slider.d.ts +8 -4
- package/dist/esm/components/Slider/Slider.d.ts.map +1 -1
- package/dist/esm/components/Slider/Slider.js +62 -16
- package/dist/esm/components/Slider/Slider.js.map +1 -1
- package/dist/esm/components/Slider/SliderStep.d.ts.map +1 -1
- package/dist/esm/components/Slider/SliderStep.js +2 -1
- package/dist/esm/components/Slider/SliderStep.js.map +1 -1
- package/dist/esm/components/Tabs/Tabs.d.ts +11 -6
- package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/esm/components/Tabs/Tabs.js +35 -16
- package/dist/esm/components/Tabs/Tabs.js.map +1 -1
- package/dist/esm/components/TextInput/TextInput.d.ts +3 -1
- package/dist/esm/components/TextInput/TextInput.d.ts.map +1 -1
- package/dist/esm/components/TextInput/TextInput.js +8 -7
- package/dist/esm/components/TextInput/TextInput.js.map +1 -1
- package/dist/esm/components/Timestamp/Timestamp.d.ts +4 -0
- package/dist/esm/components/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/esm/components/Timestamp/Timestamp.js +7 -4
- package/dist/esm/components/Timestamp/Timestamp.js.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarContent.d.ts.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarContent.js +8 -6
- package/dist/esm/components/Toolbar/ToolbarContent.js.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarExpandableContent.d.ts.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarExpandableContent.js +3 -5
- package/dist/esm/components/Toolbar/ToolbarExpandableContent.js.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarFilter.d.ts +4 -0
- package/dist/esm/components/Toolbar/ToolbarFilter.d.ts.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarFilter.js +8 -4
- package/dist/esm/components/Toolbar/ToolbarFilter.js.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarToggleGroup.d.ts +14 -0
- package/dist/esm/components/Toolbar/ToolbarToggleGroup.d.ts.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarToggleGroup.js +21 -20
- package/dist/esm/components/Toolbar/ToolbarToggleGroup.js.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarUtils.d.ts +4 -0
- package/dist/esm/components/Toolbar/ToolbarUtils.d.ts.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarUtils.js +2 -1
- package/dist/esm/components/Toolbar/ToolbarUtils.js.map +1 -1
- package/dist/esm/components/Toolbar/index.d.ts +1 -0
- package/dist/esm/components/Toolbar/index.d.ts.map +1 -1
- package/dist/esm/components/Toolbar/index.js +1 -0
- package/dist/esm/components/Toolbar/index.js.map +1 -1
- package/dist/esm/helpers/Popper/Popper.d.ts +2 -1
- package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
- package/dist/esm/helpers/Popper/Popper.js +27 -5
- package/dist/esm/helpers/Popper/Popper.js.map +1 -1
- package/dist/js/components/BackToTop/BackToTop.js +1 -1
- package/dist/js/components/BackToTop/BackToTop.js.map +1 -1
- package/dist/js/components/Button/Button.d.ts +2 -2
- package/dist/js/components/Button/Button.d.ts.map +1 -1
- package/dist/js/components/Button/Button.js +3 -3
- package/dist/js/components/Button/Button.js.map +1 -1
- package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
- package/dist/js/components/ClipboardCopy/ClipboardCopy.js +1 -1
- package/dist/js/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
- package/dist/js/components/ClipboardCopy/ClipboardCopyExpanded.js +1 -1
- package/dist/js/components/ClipboardCopy/ClipboardCopyExpanded.js.map +1 -1
- package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.d.ts.map +1 -1
- package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js +5 -2
- package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
- package/dist/js/components/Drawer/Drawer.d.ts +3 -3
- package/dist/js/components/Drawer/Drawer.d.ts.map +1 -1
- package/dist/js/components/Drawer/Drawer.js +3 -3
- package/dist/js/components/Drawer/Drawer.js.map +1 -1
- package/dist/js/components/Drawer/DrawerPanelContent.d.ts +16 -0
- package/dist/js/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
- package/dist/js/components/Drawer/DrawerPanelContent.js +132 -41
- package/dist/js/components/Drawer/DrawerPanelContent.js.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.d.ts +3 -1
- package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/js/components/Icon/Icon.d.ts +4 -0
- package/dist/js/components/Icon/Icon.d.ts.map +1 -1
- package/dist/js/components/Icon/Icon.js +2 -2
- package/dist/js/components/Icon/Icon.js.map +1 -1
- package/dist/js/components/Label/Label.d.ts +4 -2
- package/dist/js/components/Label/Label.d.ts.map +1 -1
- package/dist/js/components/Label/Label.js +19 -4
- package/dist/js/components/Label/Label.js.map +1 -1
- package/dist/js/components/Menu/MenuContainer.d.ts +1 -1
- package/dist/js/components/Menu/MenuContainer.d.ts.map +1 -1
- package/dist/js/components/Modal/ModalContent.d.ts.map +1 -1
- package/dist/js/components/Modal/ModalContent.js +3 -1
- package/dist/js/components/Modal/ModalContent.js.map +1 -1
- package/dist/js/components/Nav/NavItem.d.ts +1 -1
- package/dist/js/components/Nav/NavItem.d.ts.map +1 -1
- package/dist/js/components/Nav/NavList.d.ts +10 -4
- package/dist/js/components/Nav/NavList.d.ts.map +1 -1
- package/dist/js/components/Nav/NavList.js +29 -8
- package/dist/js/components/Nav/NavList.js.map +1 -1
- package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/js/components/SearchInput/SearchInput.js +4 -2
- package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/js/components/Select/Select.d.ts +9 -1
- package/dist/js/components/Select/Select.d.ts.map +1 -1
- package/dist/js/components/Select/Select.js.map +1 -1
- package/dist/js/components/Slider/Slider.d.ts +8 -4
- package/dist/js/components/Slider/Slider.d.ts.map +1 -1
- package/dist/js/components/Slider/Slider.js +62 -16
- package/dist/js/components/Slider/Slider.js.map +1 -1
- package/dist/js/components/Slider/SliderStep.d.ts.map +1 -1
- package/dist/js/components/Slider/SliderStep.js +2 -1
- package/dist/js/components/Slider/SliderStep.js.map +1 -1
- package/dist/js/components/Tabs/Tabs.d.ts +11 -6
- package/dist/js/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/js/components/Tabs/Tabs.js +35 -16
- package/dist/js/components/Tabs/Tabs.js.map +1 -1
- package/dist/js/components/TextInput/TextInput.d.ts +3 -1
- package/dist/js/components/TextInput/TextInput.d.ts.map +1 -1
- package/dist/js/components/TextInput/TextInput.js +8 -7
- package/dist/js/components/TextInput/TextInput.js.map +1 -1
- package/dist/js/components/Timestamp/Timestamp.d.ts +4 -0
- package/dist/js/components/Timestamp/Timestamp.d.ts.map +1 -1
- package/dist/js/components/Timestamp/Timestamp.js +7 -4
- package/dist/js/components/Timestamp/Timestamp.js.map +1 -1
- package/dist/js/components/Toolbar/ToolbarContent.d.ts.map +1 -1
- package/dist/js/components/Toolbar/ToolbarContent.js +8 -6
- package/dist/js/components/Toolbar/ToolbarContent.js.map +1 -1
- package/dist/js/components/Toolbar/ToolbarExpandableContent.d.ts.map +1 -1
- package/dist/js/components/Toolbar/ToolbarExpandableContent.js +3 -5
- package/dist/js/components/Toolbar/ToolbarExpandableContent.js.map +1 -1
- package/dist/js/components/Toolbar/ToolbarFilter.d.ts +4 -0
- package/dist/js/components/Toolbar/ToolbarFilter.d.ts.map +1 -1
- package/dist/js/components/Toolbar/ToolbarFilter.js +8 -4
- package/dist/js/components/Toolbar/ToolbarFilter.js.map +1 -1
- package/dist/js/components/Toolbar/ToolbarToggleGroup.d.ts +14 -0
- package/dist/js/components/Toolbar/ToolbarToggleGroup.d.ts.map +1 -1
- package/dist/js/components/Toolbar/ToolbarToggleGroup.js +21 -20
- package/dist/js/components/Toolbar/ToolbarToggleGroup.js.map +1 -1
- package/dist/js/components/Toolbar/ToolbarUtils.d.ts +4 -0
- package/dist/js/components/Toolbar/ToolbarUtils.d.ts.map +1 -1
- package/dist/js/components/Toolbar/ToolbarUtils.js +2 -1
- package/dist/js/components/Toolbar/ToolbarUtils.js.map +1 -1
- package/dist/js/components/Toolbar/index.d.ts +1 -0
- package/dist/js/components/Toolbar/index.d.ts.map +1 -1
- package/dist/js/components/Toolbar/index.js +1 -0
- package/dist/js/components/Toolbar/index.js.map +1 -1
- package/dist/js/helpers/Popper/Popper.d.ts +2 -1
- package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
- package/dist/js/helpers/Popper/Popper.js +29 -6
- package/dist/js/helpers/Popper/Popper.js.map +1 -1
- package/dist/styles/base-no-reset.css +3 -4
- package/dist/styles/base.css +3 -4
- 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/Alert/__tests__/AlertGroup.test.tsx +77 -73
- package/src/components/BackToTop/BackToTop.tsx +1 -1
- package/src/components/BackToTop/__tests__/BackToTop.test.tsx +1 -1
- package/src/components/BackToTop/__tests__/__snapshots__/BackToTop.test.tsx.snap +1 -1
- package/src/components/BackgroundImage/__tests__/BackgroundImage.test.tsx +21 -7
- package/src/components/BackgroundImage/__tests__/__snapshots__/BackgroundImage.test.tsx.snap +11 -0
- package/src/components/Brand/__tests__/Brand.test.tsx +105 -30
- package/src/components/Breadcrumb/examples/BreadcrumbDropdown.tsx +25 -3
- package/src/components/Button/Button.tsx +5 -5
- package/src/components/Button/examples/ButtonVariations.tsx +1 -1
- package/src/components/Checkbox/examples/Checkbox.md +8 -2
- package/src/components/Checkbox/examples/CheckboxControlled.tsx +18 -16
- package/src/components/ClipboardCopy/ClipboardCopy.tsx +1 -0
- package/src/components/ClipboardCopy/ClipboardCopyExpanded.tsx +1 -1
- package/src/components/ClipboardCopy/ClipboardCopyToggle.tsx +5 -2
- package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyExpanded.test.tsx.snap +3 -1
- package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyToggle.test.tsx.snap +16 -12
- package/src/components/Drawer/Drawer.tsx +6 -6
- package/src/components/Drawer/DrawerPanelContent.tsx +192 -81
- package/src/components/Drawer/__tests__/DrawerPanelContent.test.tsx +89 -0
- package/src/components/Drawer/examples/Drawer.md +43 -12
- package/src/components/Drawer/examples/DrawerFocusTrap.tsx +58 -0
- package/src/components/Drawer/examples/{DrawerInlinePanelRight.tsx → DrawerInlinePanelEnd.tsx} +1 -1
- package/src/components/Drawer/examples/{DrawerInlinePanelLeft.tsx → DrawerInlinePanelStart.tsx} +2 -2
- package/src/components/Drawer/examples/{DrawerPanelLeft.tsx → DrawerPanelEnd.tsx} +2 -2
- package/src/components/Drawer/examples/{DrawerPanelRight.tsx → DrawerPanelStart.tsx} +2 -2
- package/src/components/Drawer/examples/{DrawerResizableOnRight.tsx → DrawerResizableAtEnd.tsx} +3 -3
- package/src/components/Drawer/examples/{DrawerResizableOnLeft.tsx → DrawerResizableAtStart.tsx} +2 -2
- package/src/components/Dropdown/Dropdown.tsx +3 -1
- package/src/components/Icon/Icon.tsx +15 -1
- package/src/components/Icon/__tests__/Icon.test.tsx +16 -0
- package/src/components/Label/Label.tsx +29 -3
- package/src/components/Label/__tests__/Label.test.tsx +35 -0
- package/src/components/Label/__tests__/__snapshots__/Label.test.tsx.snap +1 -0
- package/src/components/Label/examples/LabelFilled.tsx +220 -168
- package/src/components/Label/examples/LabelOutline.tsx +280 -226
- package/src/components/Menu/MenuContainer.tsx +1 -1
- package/src/components/Menu/examples/MenuWithDrilldownBreadcrumbs.tsx +32 -15
- package/src/components/Modal/ModalContent.tsx +4 -6
- package/src/components/Nav/NavItem.tsx +1 -1
- package/src/components/Nav/NavList.tsx +44 -12
- package/src/components/Nav/__tests__/__snapshots__/Nav.test.tsx.snap +10 -10
- package/src/components/Page/__tests__/__snapshots__/Page.test.tsx.snap +6 -6
- package/src/components/SearchInput/SearchInput.tsx +5 -2
- package/src/components/SearchInput/__tests__/__snapshots__/SearchInput.test.tsx.snap +105 -65
- package/src/components/SearchInput/examples/SearchInputAdvanced.tsx +1 -1
- package/src/components/Select/Select.tsx +9 -1
- package/src/components/Slider/Slider.tsx +69 -20
- package/src/components/Slider/SliderStep.tsx +2 -1
- package/src/components/Slider/_tests_/Slider.test.tsx +3 -3
- package/src/components/Slider/examples/SliderActions.tsx +3 -3
- package/src/components/Tabs/Tabs.tsx +50 -26
- package/src/components/Tabs/examples/Tabs.md +1 -3
- package/src/components/TextInput/TextInput.tsx +11 -7
- package/src/components/TextInput/__tests__/TextInput.test.tsx +16 -1
- package/src/components/TextInput/__tests__/__snapshots__/TextInput.test.tsx.snap +2 -1
- package/src/components/TextInput/examples/TextInput.md +2 -2
- package/src/components/TextInput/examples/{TextInputLeftTruncated.tsx → TextInputStartTruncated.tsx} +3 -3
- package/src/components/Tile/examples/Tile.md +14 -10
- package/src/components/Timestamp/Timestamp.tsx +12 -3
- package/src/components/Timestamp/__tests__/Timestamp.test.tsx +6 -0
- package/src/components/Timestamp/examples/Timestamp.md +8 -0
- package/src/components/Timestamp/examples/TimestampDefault.tsx +7 -1
- package/src/components/Timestamp/examples/TimestampDefaultTooltip.tsx +1 -1
- package/src/components/Toolbar/ToolbarContent.tsx +7 -11
- package/src/components/Toolbar/ToolbarExpandableContent.tsx +7 -3
- package/src/components/Toolbar/ToolbarFilter.tsx +12 -2
- package/src/components/Toolbar/ToolbarToggleGroup.tsx +92 -47
- package/src/components/Toolbar/ToolbarUtils.tsx +6 -1
- package/src/components/Toolbar/__tests__/Generated/__snapshots__/ToolbarContent.test.tsx.snap +0 -8
- package/src/components/Toolbar/__tests__/Toolbar.test.tsx +3 -4
- package/src/components/Toolbar/__tests__/ToolbarToggleGroup.test.tsx +13 -10
- package/src/components/Toolbar/__tests__/__snapshots__/Toolbar.test.tsx.snap +0 -59
- package/src/components/Toolbar/examples/Toolbar.md +6 -6
- package/src/components/Toolbar/index.ts +1 -0
- package/src/demos/Card/Card.md +3 -664
- package/src/demos/Card/examples/CardView.tsx +575 -0
- package/src/demos/CardDemos.md +4 -4
- package/src/demos/CustomMenus/examples/ApplicationLauncherDemo.tsx +1 -1
- package/src/demos/DataListDemo.md +7 -4
- package/src/demos/NotificationDrawer/NotificationDrawer.md +2 -1435
- package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +557 -0
- package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +796 -0
- package/src/demos/PrimaryDetail.md +4 -5
- package/src/deprecated/components/ContextSelector/__tests__/__snapshots__/ContextSelector.test.tsx.snap +42 -26
- package/src/helpers/Popper/Popper.tsx +43 -6
- package/src/components/Alert/__tests__/__snapshots__/AlertGroup.test.tsx.snap +0 -10
- package/src/components/Brand/__tests__/__snapshots__/Brand.test.tsx.snap +0 -11
- package/src/components/Checkbox/examples/checkbox.css +0 -3
- /package/src/demos/Card/{CardData.jsx → examples/CardData.jsx} +0 -0
|
@@ -13,6 +13,7 @@ propComponents:
|
|
|
13
13
|
DrawerActions,
|
|
14
14
|
DrawerCloseButton,
|
|
15
15
|
DrawerColorVariant,
|
|
16
|
+
DrawerPanelFocusTrapObject
|
|
16
17
|
]
|
|
17
18
|
section: components
|
|
18
19
|
---
|
|
@@ -22,56 +23,67 @@ section: components
|
|
|
22
23
|
### Basic
|
|
23
24
|
|
|
24
25
|
```ts file="./DrawerBasic.tsx"
|
|
26
|
+
|
|
25
27
|
```
|
|
26
28
|
|
|
27
|
-
### Panel
|
|
29
|
+
### Panel at end
|
|
30
|
+
|
|
31
|
+
```ts file="./DrawerPanelEnd.tsx"
|
|
28
32
|
|
|
29
|
-
```ts file="./DrawerPanelRight.tsx"
|
|
30
33
|
```
|
|
31
34
|
|
|
32
|
-
### Panel
|
|
35
|
+
### Panel at start
|
|
36
|
+
|
|
37
|
+
```ts file="./DrawerPanelStart.tsx"
|
|
33
38
|
|
|
34
|
-
```ts file="./DrawerPanelLeft.tsx"
|
|
35
39
|
```
|
|
36
40
|
|
|
37
41
|
### Panel on bottom
|
|
38
42
|
|
|
39
43
|
```ts file="./DrawerPanelBottom.tsx"
|
|
44
|
+
|
|
40
45
|
```
|
|
41
46
|
|
|
42
47
|
### Basic inline
|
|
43
48
|
|
|
44
49
|
```ts file="./DrawerBasicInline.tsx"
|
|
50
|
+
|
|
45
51
|
```
|
|
46
52
|
|
|
47
|
-
### Inline panel
|
|
53
|
+
### Inline panel at end
|
|
54
|
+
|
|
55
|
+
```ts file="./DrawerInlinePanelEnd.tsx"
|
|
48
56
|
|
|
49
|
-
```ts file="./DrawerInlinePanelRight.tsx"
|
|
50
57
|
```
|
|
51
58
|
|
|
52
|
-
### Inline panel
|
|
59
|
+
### Inline panel at start
|
|
60
|
+
|
|
61
|
+
```ts file="./DrawerInlinePanelStart.tsx"
|
|
53
62
|
|
|
54
|
-
```ts file="./DrawerInlinePanelLeft.tsx"
|
|
55
63
|
```
|
|
56
64
|
|
|
57
65
|
### Stacked content body elements
|
|
58
66
|
|
|
59
67
|
```ts file="./DrawerStackedContentBodyElements.tsx"
|
|
68
|
+
|
|
60
69
|
```
|
|
61
70
|
|
|
62
71
|
### Modified content padding
|
|
63
72
|
|
|
64
73
|
```ts file="DrawerModifiedContentPadding.tsx"
|
|
74
|
+
|
|
65
75
|
```
|
|
66
76
|
|
|
67
77
|
### Modified panel padding
|
|
68
78
|
|
|
69
79
|
```ts file="DrawerModifiedPanelPadding.tsx"
|
|
80
|
+
|
|
70
81
|
```
|
|
71
82
|
|
|
72
83
|
### Additional section above drawer content
|
|
73
84
|
|
|
74
85
|
```ts file="DrawerAdditionalSectionAboveContent.tsx"
|
|
86
|
+
|
|
75
87
|
```
|
|
76
88
|
|
|
77
89
|
### Static drawer
|
|
@@ -79,34 +91,53 @@ section: components
|
|
|
79
91
|
**Note:** For mobile viewports, all drawer variants behave the same way. At the `md` breakpoint, or where `.pf-m-static{-on-[lg, xl, 2xl]}` is applied, the `static drawer` variant’s `close button` is automatically hidden because the drawer panel doesn’t close by design.
|
|
80
92
|
|
|
81
93
|
```ts file="DrawerStatic.tsx"
|
|
94
|
+
|
|
82
95
|
```
|
|
83
96
|
|
|
84
97
|
### Breakpoint
|
|
85
98
|
|
|
86
99
|
```ts file="DrawerBreakpoint.tsx"
|
|
100
|
+
|
|
87
101
|
```
|
|
88
102
|
|
|
89
|
-
### Resizable
|
|
103
|
+
### Resizable at end
|
|
104
|
+
|
|
105
|
+
```ts file="DrawerResizableAtEnd.tsx"
|
|
90
106
|
|
|
91
|
-
```ts file="DrawerResizableOnRight.tsx"
|
|
92
107
|
```
|
|
93
108
|
|
|
94
|
-
### Resizable
|
|
109
|
+
### Resizable at start
|
|
110
|
+
|
|
111
|
+
```ts file="DrawerResizableAtStart.tsx"
|
|
95
112
|
|
|
96
|
-
```ts file="DrawerResizableOnLeft.tsx"
|
|
97
113
|
```
|
|
98
114
|
|
|
99
115
|
### Resizable on bottom
|
|
100
116
|
|
|
101
117
|
```ts file="DrawerResizableOnBottom.tsx"
|
|
118
|
+
|
|
102
119
|
```
|
|
103
120
|
|
|
104
121
|
### Resizable on inline
|
|
105
122
|
|
|
106
123
|
```ts file="DrawerResizableOnInline.tsx"
|
|
124
|
+
|
|
107
125
|
```
|
|
108
126
|
|
|
109
127
|
### Panel with secondary background
|
|
110
128
|
|
|
111
129
|
```ts file="DrawerSecondaryBackground.tsx"
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### With focus trap
|
|
134
|
+
|
|
135
|
+
When a [focus trap](/accessibility/product-development-guide#trapping-focus) is enabled on an element, a user will only be able to interact with the contents of that element until the focus trap is closed or deactivated.
|
|
136
|
+
|
|
137
|
+
To enable and customize a focus trap on a drawer panel, apply the `focusTrap` property to the `<DrawerPanelContent>` component. Enabling a focus trap with `focusTrap.enabled` will also automatically place focus on the first focusable element when the drawer panel expands, and return focus to the previously focused element when it collapses.
|
|
138
|
+
|
|
139
|
+
To customize which element receives focus when the drawer panel expands, use the `focusTrap.elementToFocusOnExpand` property.
|
|
140
|
+
|
|
141
|
+
```ts file="./DrawerFocusTrap.tsx"
|
|
142
|
+
|
|
112
143
|
```
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {
|
|
3
|
+
Drawer,
|
|
4
|
+
DrawerPanelContent,
|
|
5
|
+
DrawerContent,
|
|
6
|
+
DrawerContentBody,
|
|
7
|
+
DrawerHead,
|
|
8
|
+
DrawerActions,
|
|
9
|
+
DrawerCloseButton,
|
|
10
|
+
Button
|
|
11
|
+
} from '@patternfly/react-core';
|
|
12
|
+
|
|
13
|
+
export const DrawerFocusTrap: React.FunctionComponent = () => {
|
|
14
|
+
const [isExpanded, setIsExpanded] = React.useState(false);
|
|
15
|
+
|
|
16
|
+
const onClick = () => {
|
|
17
|
+
setIsExpanded(!isExpanded);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const onCloseClick = () => {
|
|
21
|
+
setIsExpanded(false);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
// An onKeyDown property must be passed to the Drawer component to handle closing
|
|
25
|
+
// the drawer panel and deactivating the focus trap via the Escape key.
|
|
26
|
+
const onEscape = (event: React.KeyboardEvent) => {
|
|
27
|
+
if (event.key === 'Escape') {
|
|
28
|
+
setIsExpanded(false);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const panelContent = (
|
|
33
|
+
<DrawerPanelContent focusTrap={{ enabled: true }}>
|
|
34
|
+
<DrawerHead>
|
|
35
|
+
<span>drawer-panel</span>
|
|
36
|
+
<DrawerActions>
|
|
37
|
+
<DrawerCloseButton onClick={onCloseClick} />
|
|
38
|
+
</DrawerActions>
|
|
39
|
+
</DrawerHead>
|
|
40
|
+
</DrawerPanelContent>
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
const drawerContent =
|
|
44
|
+
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<React.Fragment>
|
|
48
|
+
<Button aria-expanded={isExpanded} onClick={onClick}>
|
|
49
|
+
Toggle drawer with focus trap
|
|
50
|
+
</Button>
|
|
51
|
+
<Drawer onKeyDown={onEscape} isExpanded={isExpanded}>
|
|
52
|
+
<DrawerContent panelContent={panelContent}>
|
|
53
|
+
<DrawerContentBody>{drawerContent}</DrawerContentBody>
|
|
54
|
+
</DrawerContent>
|
|
55
|
+
</Drawer>
|
|
56
|
+
</React.Fragment>
|
|
57
|
+
);
|
|
58
|
+
};
|
package/src/components/Drawer/examples/{DrawerInlinePanelRight.tsx → DrawerInlinePanelEnd.tsx}
RENAMED
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
Button
|
|
11
11
|
} from '@patternfly/react-core';
|
|
12
12
|
|
|
13
|
-
export const
|
|
13
|
+
export const DrawerInlinePanelEnd: React.FunctionComponent = () => {
|
|
14
14
|
const [isExpanded, setIsExpanded] = React.useState(false);
|
|
15
15
|
const drawerRef = React.useRef<HTMLDivElement>();
|
|
16
16
|
|
package/src/components/Drawer/examples/{DrawerInlinePanelLeft.tsx → DrawerInlinePanelStart.tsx}
RENAMED
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
Button
|
|
11
11
|
} from '@patternfly/react-core';
|
|
12
12
|
|
|
13
|
-
export const
|
|
13
|
+
export const DrawerInlinePanelStart: React.FunctionComponent = () => {
|
|
14
14
|
const [isExpanded, setIsExpanded] = React.useState(false);
|
|
15
15
|
const drawerRef = React.useRef<HTMLDivElement>();
|
|
16
16
|
|
|
@@ -47,7 +47,7 @@ export const DrawerInlinePanelLeft: React.FunctionComponent = () => {
|
|
|
47
47
|
<Button aria-expanded={isExpanded} onClick={onClick}>
|
|
48
48
|
Toggle drawer
|
|
49
49
|
</Button>
|
|
50
|
-
<Drawer isExpanded={isExpanded} isInline position="
|
|
50
|
+
<Drawer isExpanded={isExpanded} isInline position="start" onExpand={onExpand}>
|
|
51
51
|
<DrawerContent panelContent={panelContent}>
|
|
52
52
|
<DrawerContentBody>{drawerContent}</DrawerContentBody>
|
|
53
53
|
</DrawerContent>
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
Button
|
|
11
11
|
} from '@patternfly/react-core';
|
|
12
12
|
|
|
13
|
-
export const
|
|
13
|
+
export const DrawerPanelEnd: React.FunctionComponent = () => {
|
|
14
14
|
const [isExpanded, setIsExpanded] = React.useState(false);
|
|
15
15
|
const drawerRef = React.useRef<HTMLDivElement>();
|
|
16
16
|
|
|
@@ -47,7 +47,7 @@ export const DrawerPanelLeft: React.FunctionComponent = () => {
|
|
|
47
47
|
<Button aria-expanded={isExpanded} onClick={onClick}>
|
|
48
48
|
Toggle drawer
|
|
49
49
|
</Button>
|
|
50
|
-
<Drawer isExpanded={isExpanded} position="
|
|
50
|
+
<Drawer isExpanded={isExpanded} position="end" onExpand={onExpand}>
|
|
51
51
|
<DrawerContent panelContent={panelContent}>
|
|
52
52
|
<DrawerContentBody>{drawerContent}</DrawerContentBody>
|
|
53
53
|
</DrawerContent>
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
Button
|
|
11
11
|
} from '@patternfly/react-core';
|
|
12
12
|
|
|
13
|
-
export const
|
|
13
|
+
export const DrawerPanelStart: React.FunctionComponent = () => {
|
|
14
14
|
const [isExpanded, setIsExpanded] = React.useState(false);
|
|
15
15
|
const drawerRef = React.useRef<HTMLDivElement>();
|
|
16
16
|
|
|
@@ -47,7 +47,7 @@ export const DrawerPanelRight: React.FunctionComponent = () => {
|
|
|
47
47
|
<Button aria-expanded={isExpanded} onClick={onClick}>
|
|
48
48
|
Toggle drawer
|
|
49
49
|
</Button>
|
|
50
|
-
<Drawer isExpanded={isExpanded} position="
|
|
50
|
+
<Drawer isExpanded={isExpanded} position="start" onExpand={onExpand}>
|
|
51
51
|
<DrawerContent panelContent={panelContent}>
|
|
52
52
|
<DrawerContentBody>{drawerContent}</DrawerContentBody>
|
|
53
53
|
</DrawerContent>
|
package/src/components/Drawer/examples/{DrawerResizableOnRight.tsx → DrawerResizableAtEnd.tsx}
RENAMED
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
Button
|
|
11
11
|
} from '@patternfly/react-core';
|
|
12
12
|
|
|
13
|
-
export const
|
|
13
|
+
export const DrawerResizableAtEnd: React.FunctionComponent = () => {
|
|
14
14
|
const [isExpanded, setIsExpanded] = React.useState(false);
|
|
15
15
|
const drawerRef = React.useRef<HTMLDivElement>();
|
|
16
16
|
|
|
@@ -32,7 +32,7 @@ export const DrawerResizableOnRight: React.FunctionComponent = () => {
|
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
const panelContent = (
|
|
35
|
-
<DrawerPanelContent isResizable onResize={onResize} id="
|
|
35
|
+
<DrawerPanelContent isResizable onResize={onResize} id="end-resize-panel" defaultSize={'500px'} minSize={'150px'}>
|
|
36
36
|
<DrawerHead>
|
|
37
37
|
<span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>
|
|
38
38
|
drawer-panel
|
|
@@ -52,7 +52,7 @@ export const DrawerResizableOnRight: React.FunctionComponent = () => {
|
|
|
52
52
|
<Button aria-expanded={isExpanded} onClick={onClick}>
|
|
53
53
|
Toggle drawer
|
|
54
54
|
</Button>
|
|
55
|
-
<Drawer isExpanded={isExpanded} onExpand={onExpand} position="
|
|
55
|
+
<Drawer isExpanded={isExpanded} onExpand={onExpand} position="end">
|
|
56
56
|
<DrawerContent panelContent={panelContent}>
|
|
57
57
|
<DrawerContentBody>{drawerContent}</DrawerContentBody>
|
|
58
58
|
</DrawerContent>
|
package/src/components/Drawer/examples/{DrawerResizableOnLeft.tsx → DrawerResizableAtStart.tsx}
RENAMED
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
Button
|
|
11
11
|
} from '@patternfly/react-core';
|
|
12
12
|
|
|
13
|
-
export const
|
|
13
|
+
export const DrawerResizableAtStart: React.FunctionComponent = () => {
|
|
14
14
|
const [isExpanded, setIsExpanded] = React.useState(false);
|
|
15
15
|
const drawerRef = React.useRef<HTMLDivElement>();
|
|
16
16
|
|
|
@@ -47,7 +47,7 @@ export const DrawerResizableOnLeft: React.FunctionComponent = () => {
|
|
|
47
47
|
<Button aria-expanded={isExpanded} onClick={onClick}>
|
|
48
48
|
Toggle drawer
|
|
49
49
|
</Button>
|
|
50
|
-
<Drawer isExpanded={isExpanded} onExpand={onExpand} position="
|
|
50
|
+
<Drawer isExpanded={isExpanded} onExpand={onExpand} position="start">
|
|
51
51
|
<DrawerContent panelContent={panelContent}>
|
|
52
52
|
<DrawerContentBody>{drawerContent}</DrawerContentBody>
|
|
53
53
|
</DrawerContent>
|
|
@@ -8,7 +8,7 @@ export interface DropdownPopperProps {
|
|
|
8
8
|
/** Vertical direction of the popper. If enableFlip is set to true, this will set the initial direction before the popper flips. */
|
|
9
9
|
direction?: 'up' | 'down';
|
|
10
10
|
/** Horizontal position of the popper */
|
|
11
|
-
position?: 'right' | 'left' | 'center';
|
|
11
|
+
position?: 'right' | 'left' | 'center' | 'start' | 'end';
|
|
12
12
|
/** Custom width of the popper. If the value is "trigger", it will set the width to the dropdown toggle's width */
|
|
13
13
|
width?: string | 'trigger';
|
|
14
14
|
/** Minimum width of the popper. If the value is "trigger", it will set the min width to the dropdown toggle's width */
|
|
@@ -17,6 +17,8 @@ export interface DropdownPopperProps {
|
|
|
17
17
|
maxWidth?: string | 'trigger';
|
|
18
18
|
/** Enable to flip the popper when it reaches the boundary */
|
|
19
19
|
enableFlip?: boolean;
|
|
20
|
+
/** The container to append the popper to. Defaults to 'inline'. */
|
|
21
|
+
appendTo?: HTMLElement | (() => HTMLElement) | 'inline';
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
export interface DropdownToggleProps {
|
|
@@ -24,6 +24,10 @@ export interface IconComponentProps extends Omit<React.HTMLProps<HTMLSpanElement
|
|
|
24
24
|
isInProgress?: boolean;
|
|
25
25
|
/** Aria-label for the default progress icon */
|
|
26
26
|
defaultProgressArialabel?: string;
|
|
27
|
+
/** @beta Flag indicating whether the icon passed as children should be mirrored for
|
|
28
|
+
* right to left (RTL) languages. This will not mirror the icon passed to progressIcon.
|
|
29
|
+
*/
|
|
30
|
+
shouldMirrorRTL?: boolean;
|
|
27
31
|
}
|
|
28
32
|
|
|
29
33
|
export const Icon: React.FunctionComponent<IconComponentProps> = ({
|
|
@@ -37,6 +41,7 @@ export const Icon: React.FunctionComponent<IconComponentProps> = ({
|
|
|
37
41
|
isInline = false,
|
|
38
42
|
isInProgress = false,
|
|
39
43
|
defaultProgressArialabel = 'Loading...',
|
|
44
|
+
shouldMirrorRTL = false,
|
|
40
45
|
...props
|
|
41
46
|
}: IconComponentProps) => {
|
|
42
47
|
const _progressIcon = progressIcon ?? <Spinner diameter="1em" aria-label={defaultProgressArialabel} />;
|
|
@@ -52,7 +57,16 @@ export const Icon: React.FunctionComponent<IconComponentProps> = ({
|
|
|
52
57
|
)}
|
|
53
58
|
{...props}
|
|
54
59
|
>
|
|
55
|
-
<span
|
|
60
|
+
<span
|
|
61
|
+
className={css(
|
|
62
|
+
styles.iconContent,
|
|
63
|
+
styles.modifiers[iconSize],
|
|
64
|
+
styles.modifiers[status],
|
|
65
|
+
shouldMirrorRTL && 'pf-v5-m-mirror-inline-rtl'
|
|
66
|
+
)}
|
|
67
|
+
>
|
|
68
|
+
{children}
|
|
69
|
+
</span>
|
|
56
70
|
{isInProgress && (
|
|
57
71
|
<span className={css(styles.iconProgress, styles.modifiers[progressIconSize], className)}>{_progressIcon}</span>
|
|
58
72
|
)}
|
|
@@ -194,3 +194,19 @@ test('renders progress icon successfully', () => {
|
|
|
194
194
|
);
|
|
195
195
|
expect(asFragment()).toMatchSnapshot();
|
|
196
196
|
});
|
|
197
|
+
|
|
198
|
+
test('Renders with class pf-v5-m-mirror-inline-rtl on icon passed as children when shouldMirrorRTL is true', () => {
|
|
199
|
+
render(<Icon shouldMirrorRTL>Icon content</Icon>);
|
|
200
|
+
|
|
201
|
+
expect(screen.getByText('Icon content')).toHaveClass('pf-v5-m-mirror-inline-rtl');
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
test('Does not render with class pf-v5-m-mirror-inline-rtl on progressIcon when shouldMirrorRTL is true', () => {
|
|
205
|
+
render(
|
|
206
|
+
<Icon shouldMirrorRTL isInProgress progressIcon="Progress icon">
|
|
207
|
+
Icon content
|
|
208
|
+
</Icon>
|
|
209
|
+
);
|
|
210
|
+
|
|
211
|
+
expect(screen.getByText('Progress icon')).not.toHaveClass('pf-v5-m-mirror-inline-rtl');
|
|
212
|
+
});
|
|
@@ -55,10 +55,12 @@ export interface LabelProps extends React.HTMLProps<HTMLSpanElement> {
|
|
|
55
55
|
closeBtnAriaLabel?: string;
|
|
56
56
|
/** Additional properties for the default close button. */
|
|
57
57
|
closeBtnProps?: any;
|
|
58
|
-
/** Href for a label that is a link. If present, the label will change to an anchor element. */
|
|
58
|
+
/** Href for a label that is a link. If present, the label will change to an anchor element. This should not be passed in if the onClick prop is also passed in. */
|
|
59
59
|
href?: string;
|
|
60
|
-
/** Flag indicating if the label is an overflow label */
|
|
60
|
+
/** Flag indicating if the label is an overflow label. */
|
|
61
61
|
isOverflowLabel?: boolean;
|
|
62
|
+
/** Callback for when the label is clicked. This should not be passed in if the href or isEditable props are also passed in. */
|
|
63
|
+
onClick?: (event: React.MouseEvent) => void;
|
|
62
64
|
/** Forwards the label content and className to rendered function. Use this prop for react router support.*/
|
|
63
65
|
render?: ({
|
|
64
66
|
className,
|
|
@@ -94,6 +96,7 @@ export const Label: React.FunctionComponent<LabelProps> = ({
|
|
|
94
96
|
tooltipPosition,
|
|
95
97
|
icon,
|
|
96
98
|
onClose,
|
|
99
|
+
onClick: onLabelClick,
|
|
97
100
|
onEditCancel,
|
|
98
101
|
onEditComplete,
|
|
99
102
|
closeBtn,
|
|
@@ -118,6 +121,20 @@ export const Label: React.FunctionComponent<LabelProps> = ({
|
|
|
118
121
|
};
|
|
119
122
|
});
|
|
120
123
|
|
|
124
|
+
React.useEffect(() => {
|
|
125
|
+
if (onLabelClick && href) {
|
|
126
|
+
// eslint-disable-next-line no-console
|
|
127
|
+
console.warn(
|
|
128
|
+
'Link labels cannot have onClick passed, this results in invalid HTML. Please remove either the href or onClick prop.'
|
|
129
|
+
);
|
|
130
|
+
} else if (onLabelClick && isEditable) {
|
|
131
|
+
// eslint-disable-next-line no-console
|
|
132
|
+
console.warn(
|
|
133
|
+
'Editable labels cannot have onClick passed, clicking starts the label edit process. Please remove either the isEditable or onClick prop.'
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
}, [onLabelClick, href, isEditable]);
|
|
137
|
+
|
|
121
138
|
const onDocMouseDown = (event: MouseEvent) => {
|
|
122
139
|
if (
|
|
123
140
|
isEditableActive &&
|
|
@@ -235,14 +252,22 @@ export const Label: React.FunctionComponent<LabelProps> = ({
|
|
|
235
252
|
let LabelComponentChildElement = 'span';
|
|
236
253
|
if (href) {
|
|
237
254
|
LabelComponentChildElement = 'a';
|
|
238
|
-
} else if (isEditable) {
|
|
255
|
+
} else if (isEditable || (onLabelClick && !isOverflowLabel)) {
|
|
239
256
|
LabelComponentChildElement = 'button';
|
|
240
257
|
}
|
|
241
258
|
|
|
259
|
+
const clickableLabelProps = {
|
|
260
|
+
type: 'button',
|
|
261
|
+
onClick: onLabelClick
|
|
262
|
+
};
|
|
263
|
+
|
|
264
|
+
const isButton = LabelComponentChildElement === 'button';
|
|
265
|
+
|
|
242
266
|
const labelComponentChildProps = {
|
|
243
267
|
className: css(styles.labelContent),
|
|
244
268
|
...(isTooltipVisible && { tabIndex: 0 }),
|
|
245
269
|
...(href && { href }),
|
|
270
|
+
...(isButton && clickableLabelProps),
|
|
246
271
|
...(isEditable && {
|
|
247
272
|
ref: editableButtonRef,
|
|
248
273
|
onClick: (e: React.MouseEvent) => {
|
|
@@ -289,6 +314,7 @@ export const Label: React.FunctionComponent<LabelProps> = ({
|
|
|
289
314
|
isEditableActive && styles.modifiers.editableActive,
|
|
290
315
|
className
|
|
291
316
|
)}
|
|
317
|
+
onClick={isOverflowLabel ? onLabelClick : undefined}
|
|
292
318
|
>
|
|
293
319
|
{!isEditableActive && labelComponentChild}
|
|
294
320
|
{!isEditableActive && onClose && button}
|
|
@@ -109,4 +109,39 @@ describe('Label', () => {
|
|
|
109
109
|
expect(screen.queryByRole('button', { name: 'Something' })).toBeNull();
|
|
110
110
|
expect(asFragment()).toMatchSnapshot();
|
|
111
111
|
});
|
|
112
|
+
|
|
113
|
+
test('a button is not rendered when onClick is not passed', () => {
|
|
114
|
+
render(<Label>Click me</Label>);
|
|
115
|
+
|
|
116
|
+
expect(screen.queryByRole(`button`)).not.toBeInTheDocument();
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
test('a button is rendered when onClick is passed', () => {
|
|
120
|
+
const fn = jest.fn();
|
|
121
|
+
|
|
122
|
+
render(<Label onClick={fn}>Click me</Label>);
|
|
123
|
+
|
|
124
|
+
expect(screen.getByRole(`button`)).toBeVisible();
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
test('clickable label does not call the passed callback when it is not clicked', async () => {
|
|
128
|
+
const mockCallback = jest.fn();
|
|
129
|
+
|
|
130
|
+
render(<Label onClick={mockCallback}>Click me</Label>);
|
|
131
|
+
|
|
132
|
+
expect(mockCallback).not.toHaveBeenCalled();
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
test('clickable label calls passed callback on click', async () => {
|
|
136
|
+
const mockCallback = jest.fn();
|
|
137
|
+
const user = userEvent.setup();
|
|
138
|
+
|
|
139
|
+
render(<Label onClick={mockCallback}>Click me</Label>);
|
|
140
|
+
|
|
141
|
+
const label = screen.getByRole('button');
|
|
142
|
+
|
|
143
|
+
await user.click(label);
|
|
144
|
+
|
|
145
|
+
expect(mockCallback).toBeCalledTimes(1);
|
|
146
|
+
});
|
|
112
147
|
});
|