@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
|
@@ -64,6 +64,10 @@ export interface TimestampProps extends React.HTMLProps<HTMLSpanElement> {
|
|
|
64
64
|
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation
|
|
65
65
|
*/
|
|
66
66
|
locale?: string;
|
|
67
|
+
/** Flag indicating whether the default content should be displayed as a UTC string
|
|
68
|
+
* instead of a local string.
|
|
69
|
+
*/
|
|
70
|
+
shouldDisplayUTC?: boolean;
|
|
67
71
|
/** Determines the format of the displayed time in the timestamp and UTC tooltip. Examples:
|
|
68
72
|
* "Full" => 11:25:00 AM Eastern Daylight Time
|
|
69
73
|
* "Long" => 11:25:00 AM EDT
|
|
@@ -84,6 +88,7 @@ export const Timestamp: React.FunctionComponent<TimestampProps> = ({
|
|
|
84
88
|
displaySuffix = '',
|
|
85
89
|
is12Hour,
|
|
86
90
|
locale,
|
|
91
|
+
shouldDisplayUTC,
|
|
87
92
|
timeFormat,
|
|
88
93
|
tooltip,
|
|
89
94
|
...props
|
|
@@ -117,7 +122,6 @@ export const Timestamp: React.FunctionComponent<TimestampProps> = ({
|
|
|
117
122
|
...formatOptions,
|
|
118
123
|
...(hasTimeFormat && { timeStyle: timeFormat })
|
|
119
124
|
});
|
|
120
|
-
const defaultDisplay = `${dateAsLocaleString}${displaySuffix ? ' ' + displaySuffix : ''}`;
|
|
121
125
|
|
|
122
126
|
const utcTimeFormat = timeFormat !== 'short' ? 'medium' : 'short';
|
|
123
127
|
const convertToUTCString = (date: Date) => new Date(date).toUTCString().slice(0, -3);
|
|
@@ -125,8 +129,13 @@ export const Timestamp: React.FunctionComponent<TimestampProps> = ({
|
|
|
125
129
|
...formatOptions,
|
|
126
130
|
...(hasTimeFormat && { timeStyle: utcTimeFormat })
|
|
127
131
|
});
|
|
128
|
-
const
|
|
132
|
+
const defaultUTCSuffix = timeFormat === 'full' ? 'Coordinated Universal Time' : 'UTC';
|
|
133
|
+
const createUTCContent = (customSuffix: string) =>
|
|
134
|
+
`${utcDateString} ${customSuffix ? customSuffix : defaultUTCSuffix}`;
|
|
129
135
|
|
|
136
|
+
const defaultDisplay = shouldDisplayUTC
|
|
137
|
+
? createUTCContent(displaySuffix)
|
|
138
|
+
: `${dateAsLocaleString}${displaySuffix ? ' ' + displaySuffix : ''}`;
|
|
130
139
|
const { dateTime, ...propsWithoutDateTime } = props;
|
|
131
140
|
|
|
132
141
|
const timestamp = (
|
|
@@ -143,7 +152,7 @@ export const Timestamp: React.FunctionComponent<TimestampProps> = ({
|
|
|
143
152
|
|
|
144
153
|
return tooltip ? (
|
|
145
154
|
<Tooltip
|
|
146
|
-
content={tooltip.variant === TimestampTooltipVariant.default ?
|
|
155
|
+
content={tooltip.variant === TimestampTooltipVariant.default ? createUTCContent(tooltip.suffix) : tooltip.content}
|
|
147
156
|
{...tooltip.tooltipProps}
|
|
148
157
|
>
|
|
149
158
|
{timestamp}
|
|
@@ -55,6 +55,12 @@ test('Renders passed in date with default formatting', () => {
|
|
|
55
55
|
expect(screen.getByText('1/1/2022, 12:00:00 AM')).toBeInTheDocument();
|
|
56
56
|
});
|
|
57
57
|
|
|
58
|
+
test('Renders passed in date as UTC when shouldDisplayUTC is true', () => {
|
|
59
|
+
render(<Timestamp shouldDisplayUTC date={new Date(2022, 0, 1)} />);
|
|
60
|
+
|
|
61
|
+
expect(screen.getByText('1/1/2022, 5:00:00 AM UTC')).toBeInTheDocument();
|
|
62
|
+
});
|
|
63
|
+
|
|
58
64
|
test('Renders with correct datetime attribute when date is passed in', () => {
|
|
59
65
|
const passedDate = new Date(2022, 0, 1);
|
|
60
66
|
render(<Timestamp date={passedDate} />);
|
|
@@ -12,7 +12,10 @@ beta: true
|
|
|
12
12
|
|
|
13
13
|
By default, a timestamp will display the current date and time based on the current locale if the `date` prop is not passed in.
|
|
14
14
|
|
|
15
|
+
Passing the `shouldDisplayUTC` property will display the UTC date and time instead of the current or passed in locale.
|
|
16
|
+
|
|
15
17
|
```ts file="./TimestampDefault.tsx"
|
|
18
|
+
|
|
16
19
|
```
|
|
17
20
|
|
|
18
21
|
### Basic formats
|
|
@@ -22,6 +25,7 @@ The format of the displayed content can be customized by passing in the `dateFor
|
|
|
22
25
|
You can also pass in the `displaySuffix` prop to display a custom suffix at the end of the displayed content. This will not override a timezone that is already displayed from the applied time format.
|
|
23
26
|
|
|
24
27
|
```ts file="./TimestampBasicFormats.tsx"
|
|
28
|
+
|
|
25
29
|
```
|
|
26
30
|
|
|
27
31
|
### Custom format
|
|
@@ -29,6 +33,7 @@ You can also pass in the `displaySuffix` prop to display a custom suffix at the
|
|
|
29
33
|
The format of the displayed content can be further customized by passing in the `customFormat` prop. Read [datetime format options](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#options) for a list of options that can be passed in.
|
|
30
34
|
|
|
31
35
|
```ts file="./TimestampCustomFormat.tsx"
|
|
36
|
+
|
|
32
37
|
```
|
|
33
38
|
|
|
34
39
|
### Default tooltip
|
|
@@ -38,6 +43,7 @@ To render a tooltip that displays the timestamp content as a UTC time, you can p
|
|
|
38
43
|
You can customize the suffix of this default tooltip variant by passing in `suffix` to the `tooltip` prop.
|
|
39
44
|
|
|
40
45
|
```ts file="./TimestampDefaultTooltip.tsx"
|
|
46
|
+
|
|
41
47
|
```
|
|
42
48
|
|
|
43
49
|
### Custom content
|
|
@@ -47,6 +53,7 @@ To display custom content, such as a relative time or prefacing text, you can pa
|
|
|
47
53
|
When also rendering a default tooltip with the `tooltip` prop, you can pass in the `dateFormat` and/or `timeFormat` props to customize the tooltip content without affecting the custom timestamp content.
|
|
48
54
|
|
|
49
55
|
```ts file="TimestampCustomContent.tsx"
|
|
56
|
+
|
|
50
57
|
```
|
|
51
58
|
|
|
52
59
|
### Custom tooltip
|
|
@@ -54,4 +61,5 @@ When also rendering a default tooltip with the `tooltip` prop, you can pass in t
|
|
|
54
61
|
By passing in `variant="custom"` and `content` to the `tooltip` prop, you can display custom content within the timestamp's tooltip.
|
|
55
62
|
|
|
56
63
|
```ts file="TimestampCustomTooltip.tsx"
|
|
64
|
+
|
|
57
65
|
```
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Timestamp } from '@patternfly/react-core';
|
|
3
3
|
|
|
4
|
-
export const TimestampDefault: React.FunctionComponent = () =>
|
|
4
|
+
export const TimestampDefault: React.FunctionComponent = () => (
|
|
5
|
+
<>
|
|
6
|
+
<Timestamp />
|
|
7
|
+
<br />
|
|
8
|
+
<Timestamp shouldDisplayUTC />
|
|
9
|
+
</>
|
|
10
|
+
);
|
|
@@ -11,7 +11,7 @@ export const TimestampDefaultTooltip: React.FunctionComponent = () => {
|
|
|
11
11
|
<br />
|
|
12
12
|
<Timestamp
|
|
13
13
|
date={currentDate}
|
|
14
|
-
tooltip={{ variant: TimestampTooltipVariant.default, suffix: 'Coordinated Universal Time' }}
|
|
14
|
+
tooltip={{ variant: TimestampTooltipVariant.default, suffix: 'Coordinated Universal Time (UTC)' }}
|
|
15
15
|
/>
|
|
16
16
|
</>
|
|
17
17
|
);
|
|
@@ -3,7 +3,6 @@ import styles from '@patternfly/react-styles/css/components/Toolbar/toolbar';
|
|
|
3
3
|
import { css } from '@patternfly/react-styles';
|
|
4
4
|
import { ToolbarContentContext, ToolbarContext } from './ToolbarUtils';
|
|
5
5
|
import { formatBreakpointMods } from '../../helpers/util';
|
|
6
|
-
import { ToolbarExpandableContent } from './ToolbarExpandableContent';
|
|
7
6
|
import { PageContext } from '../Page/PageContext';
|
|
8
7
|
|
|
9
8
|
export interface ToolbarContentProps extends React.HTMLProps<HTMLDivElement> {
|
|
@@ -70,6 +69,7 @@ class ToolbarContent extends React.Component<ToolbarContentProps> {
|
|
|
70
69
|
formatBreakpointMods(visibility, styles, '', getBreakpoint(width)),
|
|
71
70
|
className
|
|
72
71
|
)}
|
|
72
|
+
ref={this.expandableContentRef}
|
|
73
73
|
{...props}
|
|
74
74
|
>
|
|
75
75
|
<ToolbarContext.Consumer>
|
|
@@ -77,6 +77,7 @@ class ToolbarContent extends React.Component<ToolbarContentProps> {
|
|
|
77
77
|
clearAllFilters: clearAllFiltersContext,
|
|
78
78
|
clearFiltersButtonText: clearFiltersButtonContext,
|
|
79
79
|
showClearFiltersButton: showClearFiltersButtonContext,
|
|
80
|
+
isExpanded: isExpandedContext,
|
|
80
81
|
toolbarId: toolbarIdContext
|
|
81
82
|
}) => {
|
|
82
83
|
const expandableContentId = `${
|
|
@@ -87,7 +88,11 @@ class ToolbarContent extends React.Component<ToolbarContentProps> {
|
|
|
87
88
|
value={{
|
|
88
89
|
expandableContentRef: this.expandableContentRef,
|
|
89
90
|
expandableContentId,
|
|
90
|
-
chipContainerRef: this.chipContainerRef
|
|
91
|
+
chipContainerRef: this.chipContainerRef,
|
|
92
|
+
isExpanded: isExpanded || isExpandedContext,
|
|
93
|
+
clearAllFilters: clearAllFilters || clearAllFiltersContext,
|
|
94
|
+
clearFiltersButtonText: clearFiltersButtonText || clearFiltersButtonContext,
|
|
95
|
+
showClearFiltersButton: showClearFiltersButton || showClearFiltersButtonContext
|
|
91
96
|
}}
|
|
92
97
|
>
|
|
93
98
|
<div
|
|
@@ -103,15 +108,6 @@ class ToolbarContent extends React.Component<ToolbarContentProps> {
|
|
|
103
108
|
>
|
|
104
109
|
{children}
|
|
105
110
|
</div>
|
|
106
|
-
<ToolbarExpandableContent
|
|
107
|
-
id={expandableContentId}
|
|
108
|
-
isExpanded={isExpanded}
|
|
109
|
-
expandableContentRef={this.expandableContentRef}
|
|
110
|
-
chipContainerRef={this.chipContainerRef}
|
|
111
|
-
clearAllFilters={clearAllFilters || clearAllFiltersContext}
|
|
112
|
-
showClearFiltersButton={showClearFiltersButton || showClearFiltersButtonContext}
|
|
113
|
-
clearFiltersButtonText={clearFiltersButtonText || clearFiltersButtonContext}
|
|
114
|
-
/>
|
|
115
111
|
</ToolbarContentContext.Provider>
|
|
116
112
|
);
|
|
117
113
|
}}
|
|
@@ -37,10 +37,10 @@ class ToolbarExpandableContent extends React.Component<ToolbarExpandableContentP
|
|
|
37
37
|
|
|
38
38
|
render() {
|
|
39
39
|
const {
|
|
40
|
+
children,
|
|
40
41
|
className,
|
|
41
42
|
expandableContentRef,
|
|
42
43
|
chipContainerRef,
|
|
43
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
44
44
|
isExpanded,
|
|
45
45
|
clearAllFilters,
|
|
46
46
|
clearFiltersButtonText,
|
|
@@ -54,8 +54,12 @@ class ToolbarExpandableContent extends React.Component<ToolbarExpandableContentP
|
|
|
54
54
|
};
|
|
55
55
|
|
|
56
56
|
return (
|
|
57
|
-
<div
|
|
58
|
-
|
|
57
|
+
<div
|
|
58
|
+
className={css(styles.toolbarExpandableContent, isExpanded && styles.modifiers.expanded, className)}
|
|
59
|
+
ref={expandableContentRef}
|
|
60
|
+
{...props}
|
|
61
|
+
>
|
|
62
|
+
<ToolbarGroup>{children}</ToolbarGroup>
|
|
59
63
|
{numberOfFilters > 0 && (
|
|
60
64
|
<ToolbarGroup className={styles.modifiers.chipContainer}>
|
|
61
65
|
<ToolbarGroup ref={chipContainerRef} />
|
|
@@ -21,6 +21,8 @@ export interface ToolbarChip {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export interface ToolbarFilterProps extends ToolbarItemProps {
|
|
24
|
+
/** Flag indicating when toolbar toggle group is expanded for non-managed toolbar toggle groups. */
|
|
25
|
+
isExpanded?: boolean;
|
|
24
26
|
/** An array of strings to be displayed as chips in the expandable content */
|
|
25
27
|
chips?: (string | ToolbarChip)[];
|
|
26
28
|
/** Callback passed by consumer used to close the entire chip group */
|
|
@@ -37,6 +39,8 @@ export interface ToolbarFilterProps extends ToolbarItemProps {
|
|
|
37
39
|
categoryName: string | ToolbarChipGroup;
|
|
38
40
|
/** Flag to show the toolbar item */
|
|
39
41
|
showToolbarItem?: boolean;
|
|
42
|
+
/** Reference to a chip container created with a custom expandable content group, for non-managed multiple toolbar toggle groups. */
|
|
43
|
+
expandableChipContainerRef?: React.RefObject<HTMLDivElement>;
|
|
40
44
|
}
|
|
41
45
|
|
|
42
46
|
interface ToolbarFilterState {
|
|
@@ -90,9 +94,12 @@ class ToolbarFilter extends React.Component<ToolbarFilterProps, ToolbarFilterSta
|
|
|
90
94
|
chipGroupCollapsedText,
|
|
91
95
|
categoryName,
|
|
92
96
|
showToolbarItem,
|
|
97
|
+
isExpanded,
|
|
98
|
+
expandableChipContainerRef,
|
|
93
99
|
...props
|
|
94
100
|
} = this.props;
|
|
95
|
-
const { isExpanded, chipGroupContentRef } = this.context;
|
|
101
|
+
const { isExpanded: managedIsExpanded, chipGroupContentRef } = this.context;
|
|
102
|
+
const _isExpanded = isExpanded !== undefined ? isExpanded : managedIsExpanded;
|
|
96
103
|
const categoryKey =
|
|
97
104
|
typeof categoryName !== 'string' && categoryName.hasOwnProperty('key')
|
|
98
105
|
? categoryName.key
|
|
@@ -123,7 +130,7 @@ class ToolbarFilter extends React.Component<ToolbarFilterProps, ToolbarFilterSta
|
|
|
123
130
|
</ToolbarItem>
|
|
124
131
|
) : null;
|
|
125
132
|
|
|
126
|
-
if (!
|
|
133
|
+
if (!_isExpanded && this.state.isMounted) {
|
|
127
134
|
return (
|
|
128
135
|
<React.Fragment>
|
|
129
136
|
{showToolbarItem && <ToolbarItem {...props}>{children}</ToolbarItem>}
|
|
@@ -138,6 +145,9 @@ class ToolbarFilter extends React.Component<ToolbarFilterProps, ToolbarFilterSta
|
|
|
138
145
|
<React.Fragment>
|
|
139
146
|
{showToolbarItem && <ToolbarItem {...props}>{children}</ToolbarItem>}
|
|
140
147
|
{chipContainerRef.current && ReactDOM.createPortal(chipGroup, chipContainerRef.current)}
|
|
148
|
+
{expandableChipContainerRef &&
|
|
149
|
+
expandableChipContainerRef.current &&
|
|
150
|
+
ReactDOM.createPortal(chipGroup, expandableChipContainerRef.current)}
|
|
141
151
|
</React.Fragment>
|
|
142
152
|
)}
|
|
143
153
|
</ToolbarContentContext.Consumer>
|
|
@@ -8,8 +8,13 @@ import { Button } from '../Button';
|
|
|
8
8
|
import globalBreakpointLg from '@patternfly/react-tokens/dist/esm/global_breakpoint_lg';
|
|
9
9
|
import { formatBreakpointMods, toCamel, canUseDOM } from '../../helpers/util';
|
|
10
10
|
import { PageContext } from '../Page/PageContext';
|
|
11
|
+
import { ToolbarExpandableContent } from './ToolbarExpandableContent';
|
|
11
12
|
|
|
12
13
|
export interface ToolbarToggleGroupProps extends ToolbarGroupProps {
|
|
14
|
+
/** Flag indicating when toggle group is expanded for non-managed toolbar toggle groups. */
|
|
15
|
+
isExpanded?: boolean;
|
|
16
|
+
/** Callback for toggle group click event for non-managed toolbar toggle groups. */
|
|
17
|
+
onToggle?: (event: React.MouseEvent) => void;
|
|
13
18
|
/** An icon to be rendered when the toggle group has collapsed down */
|
|
14
19
|
toggleIcon: React.ReactNode;
|
|
15
20
|
/** Controls when filters are shown and when the toggle button is hidden. */
|
|
@@ -46,10 +51,21 @@ export interface ToolbarToggleGroupProps extends ToolbarGroupProps {
|
|
|
46
51
|
xl?: 'spaceItemsNone' | 'spaceItemsSm' | 'spaceItemsMd' | 'spaceItemsLg';
|
|
47
52
|
'2xl'?: 'spaceItemsNone' | 'spaceItemsSm' | 'spaceItemsMd' | 'spaceItemsLg';
|
|
48
53
|
};
|
|
54
|
+
/** Reference to a chip container group for filters inside the toolbar toggle group */
|
|
55
|
+
chipContainerRef?: React.RefObject<any>;
|
|
56
|
+
/** Optional callback for clearing all filters in the toolbar toggle group */
|
|
57
|
+
clearAllFilters?: () => void;
|
|
58
|
+
/** Flag indicating that the clear all filters button should be visible in the toolbar toggle group */
|
|
59
|
+
showClearFiltersButton?: boolean;
|
|
60
|
+
/** Text to display in the clear all filters button of the toolbar toggle group */
|
|
61
|
+
clearFiltersButtonText?: string;
|
|
49
62
|
}
|
|
50
63
|
|
|
51
64
|
class ToolbarToggleGroup extends React.Component<ToolbarToggleGroupProps> {
|
|
52
65
|
static displayName = 'ToolbarToggleGroup';
|
|
66
|
+
toggleRef = React.createRef<HTMLButtonElement>();
|
|
67
|
+
expandableContentRef = React.createRef<HTMLDivElement>();
|
|
68
|
+
|
|
53
69
|
isContentPopup = () => {
|
|
54
70
|
const viewportSize = canUseDOM ? window.innerWidth : 1200;
|
|
55
71
|
const lgBreakpointValue = parseInt(globalBreakpointLg.value);
|
|
@@ -67,6 +83,12 @@ class ToolbarToggleGroup extends React.Component<ToolbarToggleGroupProps> {
|
|
|
67
83
|
spaceItems,
|
|
68
84
|
className,
|
|
69
85
|
children,
|
|
86
|
+
isExpanded,
|
|
87
|
+
onToggle,
|
|
88
|
+
chipContainerRef,
|
|
89
|
+
clearAllFilters,
|
|
90
|
+
showClearFiltersButton,
|
|
91
|
+
clearFiltersButtonText,
|
|
70
92
|
...props
|
|
71
93
|
} = this.props;
|
|
72
94
|
|
|
@@ -79,64 +101,87 @@ class ToolbarToggleGroup extends React.Component<ToolbarToggleGroupProps> {
|
|
|
79
101
|
<PageContext.Consumer>
|
|
80
102
|
{({ width, getBreakpoint }) => (
|
|
81
103
|
<ToolbarContext.Consumer>
|
|
82
|
-
{({
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
104
|
+
{({ toggleIsExpanded: managedOnToggle }) => {
|
|
105
|
+
const _onToggle = onToggle !== undefined ? onToggle : managedOnToggle;
|
|
106
|
+
|
|
107
|
+
return (
|
|
108
|
+
<ToolbarContentContext.Consumer>
|
|
109
|
+
{({
|
|
110
|
+
expandableContentRef,
|
|
111
|
+
expandableContentId,
|
|
112
|
+
chipContainerRef: managedChipContainerRef,
|
|
113
|
+
isExpanded: managedIsExpanded,
|
|
114
|
+
clearAllFilters: clearAllFiltersContext,
|
|
115
|
+
clearFiltersButtonText: clearFiltersButtonContext,
|
|
116
|
+
showClearFiltersButton: showClearFiltersButtonContext
|
|
117
|
+
}) => {
|
|
118
|
+
const _isExpanded = isExpanded !== undefined ? isExpanded : managedIsExpanded;
|
|
119
|
+
const _chipContainerRef =
|
|
120
|
+
chipContainerRef !== undefined ? chipContainerRef : managedChipContainerRef;
|
|
121
|
+
|
|
122
|
+
const breakpointMod: {
|
|
123
|
+
md?: 'show';
|
|
124
|
+
lg?: 'show';
|
|
125
|
+
xl?: 'show';
|
|
126
|
+
'2xl'?: 'show';
|
|
127
|
+
} = {};
|
|
128
|
+
breakpointMod[breakpoint] = 'show';
|
|
92
129
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
130
|
+
const expandableContent = (
|
|
131
|
+
<ToolbarExpandableContent
|
|
132
|
+
id={expandableContentId}
|
|
133
|
+
expandableContentRef={this.expandableContentRef}
|
|
134
|
+
isExpanded={_isExpanded}
|
|
135
|
+
clearAllFilters={clearAllFilters || clearAllFiltersContext}
|
|
136
|
+
showClearFiltersButton={showClearFiltersButton || showClearFiltersButtonContext}
|
|
137
|
+
clearFiltersButtonText={clearFiltersButtonText || clearFiltersButtonContext}
|
|
138
|
+
chipContainerRef={_chipContainerRef}
|
|
139
|
+
>
|
|
140
|
+
{children}
|
|
141
|
+
</ToolbarExpandableContent>
|
|
142
|
+
);
|
|
100
143
|
|
|
101
|
-
|
|
102
|
-
<div
|
|
103
|
-
className={css(
|
|
104
|
-
styles.toolbarGroup,
|
|
105
|
-
styles.modifiers.toggleGroup,
|
|
106
|
-
variant &&
|
|
107
|
-
styles.modifiers[toCamel(variant) as 'filterGroup' | 'iconButtonGroup' | 'buttonGroup'],
|
|
108
|
-
formatBreakpointMods(breakpointMod, styles, '', getBreakpoint(width)),
|
|
109
|
-
formatBreakpointMods(visibility, styles, '', getBreakpoint(width)),
|
|
110
|
-
formatBreakpointMods(alignment, styles, '', getBreakpoint(width)),
|
|
111
|
-
formatBreakpointMods(spacer, styles, '', getBreakpoint(width)),
|
|
112
|
-
formatBreakpointMods(spaceItems, styles, '', getBreakpoint(width)),
|
|
113
|
-
className
|
|
114
|
-
)}
|
|
115
|
-
{...props}
|
|
116
|
-
>
|
|
144
|
+
const toggleButton = (
|
|
117
145
|
<div className={css(styles.toolbarToggle)}>
|
|
118
146
|
<Button
|
|
119
147
|
variant="plain"
|
|
120
|
-
onClick={
|
|
148
|
+
onClick={_onToggle}
|
|
121
149
|
aria-label="Show Filters"
|
|
122
|
-
{...(
|
|
123
|
-
aria-haspopup={
|
|
150
|
+
{...(_isExpanded && { 'aria-expanded': true })}
|
|
151
|
+
aria-haspopup={_isExpanded && this.isContentPopup()}
|
|
124
152
|
aria-controls={expandableContentId}
|
|
153
|
+
ref={this.toggleRef}
|
|
125
154
|
>
|
|
126
155
|
{toggleIcon}
|
|
127
156
|
</Button>
|
|
128
157
|
</div>
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
158
|
+
);
|
|
159
|
+
|
|
160
|
+
return (
|
|
161
|
+
<div
|
|
162
|
+
className={css(
|
|
163
|
+
styles.toolbarGroup,
|
|
164
|
+
styles.modifiers.toggleGroup,
|
|
165
|
+
variant &&
|
|
166
|
+
styles.modifiers[toCamel(variant) as 'filterGroup' | 'iconButtonGroup' | 'buttonGroup'],
|
|
167
|
+
formatBreakpointMods(breakpointMod, styles, '', getBreakpoint(width)),
|
|
168
|
+
formatBreakpointMods(visibility, styles, '', getBreakpoint(width)),
|
|
169
|
+
formatBreakpointMods(alignment, styles, '', getBreakpoint(width)),
|
|
170
|
+
formatBreakpointMods(spacer, styles, '', getBreakpoint(width)),
|
|
171
|
+
formatBreakpointMods(spaceItems, styles, '', getBreakpoint(width)),
|
|
172
|
+
className
|
|
173
|
+
)}
|
|
174
|
+
{...props}
|
|
175
|
+
>
|
|
176
|
+
{toggleButton}
|
|
177
|
+
{_isExpanded && ReactDOM.createPortal(expandableContent, expandableContentRef.current)}
|
|
178
|
+
{!_isExpanded && children}
|
|
179
|
+
</div>
|
|
180
|
+
);
|
|
181
|
+
}}
|
|
182
|
+
</ToolbarContentContext.Consumer>
|
|
183
|
+
);
|
|
184
|
+
}}
|
|
140
185
|
</ToolbarContext.Consumer>
|
|
141
186
|
)}
|
|
142
187
|
</PageContext.Consumer>
|
|
@@ -31,12 +31,17 @@ interface ToolbarContentContextProps {
|
|
|
31
31
|
expandableContentRef: RefObject<HTMLDivElement>;
|
|
32
32
|
expandableContentId: string;
|
|
33
33
|
chipContainerRef: RefObject<any>;
|
|
34
|
+
isExpanded?: boolean;
|
|
35
|
+
clearAllFilters?: () => void;
|
|
36
|
+
clearFiltersButtonText?: string;
|
|
37
|
+
showClearFiltersButton?: boolean;
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
export const ToolbarContentContext = React.createContext<ToolbarContentContextProps>({
|
|
37
41
|
expandableContentRef: null,
|
|
38
42
|
expandableContentId: '',
|
|
39
|
-
chipContainerRef: null
|
|
43
|
+
chipContainerRef: null,
|
|
44
|
+
clearAllFilters: () => {}
|
|
40
45
|
});
|
|
41
46
|
|
|
42
47
|
export const globalBreakpoints = {
|
package/src/components/Toolbar/__tests__/Generated/__snapshots__/ToolbarContent.test.tsx.snap
CHANGED
|
@@ -12,14 +12,6 @@ exports[`ToolbarContent should match snapshot (auto-generated) 1`] = `
|
|
|
12
12
|
ReactNode
|
|
13
13
|
</div>
|
|
14
14
|
</div>
|
|
15
|
-
<div
|
|
16
|
-
class="pf-v5-c-toolbar__expandable-content"
|
|
17
|
-
id="string-expandable-content-0"
|
|
18
|
-
>
|
|
19
|
-
<div
|
|
20
|
-
class="pf-v5-c-toolbar__group"
|
|
21
|
-
/>
|
|
22
|
-
</div>
|
|
23
15
|
</div>
|
|
24
16
|
</DocumentFragment>
|
|
25
17
|
`;
|
|
@@ -65,7 +65,7 @@ describe('Toolbar', () => {
|
|
|
65
65
|
<ToolbarFilter
|
|
66
66
|
chips={['New', 'Pending']}
|
|
67
67
|
deleteChip={(category, chip) => {}}
|
|
68
|
-
deleteChipGroup={category => {}}
|
|
68
|
+
deleteChipGroup={(category) => {}}
|
|
69
69
|
categoryName="Status"
|
|
70
70
|
>
|
|
71
71
|
test content
|
|
@@ -102,8 +102,7 @@ describe('Toolbar', () => {
|
|
|
102
102
|
);
|
|
103
103
|
|
|
104
104
|
expect(asFragment()).toMatchSnapshot();
|
|
105
|
-
|
|
106
|
-
expect(screen.getAllByRole('button', { name: '
|
|
107
|
-
expect(screen.getAllByRole('button', { name: 'Clear all filters' }).length).toBe(2);
|
|
105
|
+
expect(screen.getAllByRole('button', { name: 'Save filters' }).length).toBe(1);
|
|
106
|
+
expect(screen.getAllByRole('button', { name: 'Clear all filters' }).length).toBe(1);
|
|
108
107
|
});
|
|
109
108
|
});
|
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
3
|
import { ToolbarToggleGroup } from '../ToolbarToggleGroup';
|
|
4
|
-
import {
|
|
4
|
+
import { Toolbar } from '../Toolbar';
|
|
5
|
+
import { ToolbarContent } from '../ToolbarContent';
|
|
5
6
|
|
|
6
7
|
describe('ToolbarToggleGroup', () => {
|
|
7
8
|
it('should warn on bad props', () => {
|
|
8
9
|
const myMock = jest.fn() as any;
|
|
9
10
|
global.console = { error: myMock } as any;
|
|
10
11
|
|
|
12
|
+
const items = (
|
|
13
|
+
<React.Fragment>
|
|
14
|
+
<ToolbarToggleGroup breakpoint={undefined as 'xl'} toggleIcon={null}>
|
|
15
|
+
test
|
|
16
|
+
</ToolbarToggleGroup>
|
|
17
|
+
</React.Fragment>
|
|
18
|
+
);
|
|
19
|
+
|
|
11
20
|
render(
|
|
12
|
-
<
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
expandableContentRef: { current: undefined },
|
|
16
|
-
chipContainerRef: { current: undefined }
|
|
17
|
-
}}
|
|
18
|
-
>
|
|
19
|
-
<ToolbarToggleGroup breakpoint={undefined as 'xl'} toggleIcon={null} />
|
|
20
|
-
</ToolbarContentContext.Provider>
|
|
21
|
+
<Toolbar id="toolbar-with-filter" className="pf-m-toggle-group-container" collapseListedFiltersBreakpoint="xl">
|
|
22
|
+
<ToolbarContent>{items}</ToolbarContent>
|
|
23
|
+
</Toolbar>
|
|
21
24
|
);
|
|
22
25
|
|
|
23
26
|
expect(myMock).toHaveBeenCalled();
|
|
@@ -34,14 +34,6 @@ exports[`Toolbar should render inset 1`] = `
|
|
|
34
34
|
Test 3
|
|
35
35
|
</div>
|
|
36
36
|
</div>
|
|
37
|
-
<div
|
|
38
|
-
class="pf-v5-c-toolbar__expandable-content"
|
|
39
|
-
id="toolbar-expandable-content-0"
|
|
40
|
-
>
|
|
41
|
-
<div
|
|
42
|
-
class="pf-v5-c-toolbar__group"
|
|
43
|
-
/>
|
|
44
|
-
</div>
|
|
45
37
|
</div>
|
|
46
38
|
<div
|
|
47
39
|
class="pf-v5-c-toolbar__content pf-m-hidden"
|
|
@@ -99,49 +91,6 @@ exports[`Toolbar should render with custom chip content 1`] = `
|
|
|
99
91
|
</div>
|
|
100
92
|
</div>
|
|
101
93
|
</div>
|
|
102
|
-
<div
|
|
103
|
-
class="pf-v5-c-toolbar__expandable-content"
|
|
104
|
-
id="toolbar-with-filter-expandable-content-3"
|
|
105
|
-
>
|
|
106
|
-
<div
|
|
107
|
-
class="pf-v5-c-toolbar__group"
|
|
108
|
-
/>
|
|
109
|
-
<div
|
|
110
|
-
class="pf-v5-c-toolbar__group pf-m-chip-container"
|
|
111
|
-
>
|
|
112
|
-
<div
|
|
113
|
-
class="pf-v5-c-toolbar__group"
|
|
114
|
-
/>
|
|
115
|
-
<div
|
|
116
|
-
class="pf-v5-c-toolbar__item"
|
|
117
|
-
>
|
|
118
|
-
<button
|
|
119
|
-
aria-disabled="false"
|
|
120
|
-
class="pf-v5-c-button pf-m-link pf-m-inline"
|
|
121
|
-
data-ouia-component-id="OUIA-Generated-Button-link-3"
|
|
122
|
-
data-ouia-component-type="PF5/Button"
|
|
123
|
-
data-ouia-safe="true"
|
|
124
|
-
type="button"
|
|
125
|
-
>
|
|
126
|
-
Save filters
|
|
127
|
-
</button>
|
|
128
|
-
</div>
|
|
129
|
-
<div
|
|
130
|
-
class="pf-v5-c-toolbar__item"
|
|
131
|
-
>
|
|
132
|
-
<button
|
|
133
|
-
aria-disabled="false"
|
|
134
|
-
class="pf-v5-c-button pf-m-link pf-m-inline"
|
|
135
|
-
data-ouia-component-id="OUIA-Generated-Button-link-4"
|
|
136
|
-
data-ouia-component-type="PF5/Button"
|
|
137
|
-
data-ouia-safe="true"
|
|
138
|
-
type="button"
|
|
139
|
-
>
|
|
140
|
-
Clear all filters
|
|
141
|
-
</button>
|
|
142
|
-
</div>
|
|
143
|
-
</div>
|
|
144
|
-
</div>
|
|
145
94
|
</div>
|
|
146
95
|
<div
|
|
147
96
|
class="pf-v5-c-toolbar__content"
|
|
@@ -385,14 +334,6 @@ exports[`Toolbar should render with page inset flag 1`] = `
|
|
|
385
334
|
Test 3
|
|
386
335
|
</div>
|
|
387
336
|
</div>
|
|
388
|
-
<div
|
|
389
|
-
class="pf-v5-c-toolbar__expandable-content"
|
|
390
|
-
id="toolbar-expandable-content-1"
|
|
391
|
-
>
|
|
392
|
-
<div
|
|
393
|
-
class="pf-v5-c-toolbar__group"
|
|
394
|
-
/>
|
|
395
|
-
</div>
|
|
396
337
|
</div>
|
|
397
338
|
<div
|
|
398
339
|
class="pf-v5-c-toolbar__content pf-m-hidden"
|