@patternfly/react-core 6.3.0-prerelease.9 → 6.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +147 -0
- package/CONTRIBUTING.md +3 -5
- package/components/package.json +1 -1
- package/deprecated/package.json +1 -1
- package/dist/dynamic/components/AboutModal/package.json +1 -1
- package/dist/dynamic/components/Accordion/package.json +1 -1
- package/dist/dynamic/components/ActionList/package.json +1 -1
- package/dist/dynamic/components/Alert/package.json +1 -1
- package/dist/dynamic/components/Avatar/package.json +1 -1
- package/dist/dynamic/components/BackToTop/package.json +1 -1
- package/dist/dynamic/components/Backdrop/package.json +1 -1
- package/dist/dynamic/components/BackgroundImage/package.json +1 -1
- package/dist/dynamic/components/Badge/package.json +1 -1
- package/dist/dynamic/components/Banner/package.json +1 -1
- package/dist/dynamic/components/Brand/package.json +1 -1
- package/dist/dynamic/components/Breadcrumb/package.json +1 -1
- package/dist/dynamic/components/Button/package.json +1 -1
- package/dist/dynamic/components/CalendarMonth/package.json +1 -1
- package/dist/dynamic/components/Card/package.json +1 -1
- package/dist/dynamic/components/Checkbox/package.json +1 -1
- package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
- package/dist/dynamic/components/CodeBlock/package.json +1 -1
- package/dist/dynamic/components/Content/package.json +1 -1
- package/dist/dynamic/components/DataList/package.json +1 -1
- package/dist/dynamic/components/DatePicker/package.json +1 -1
- package/dist/dynamic/components/DescriptionList/package.json +1 -1
- package/dist/dynamic/components/Divider/package.json +1 -1
- package/dist/dynamic/components/Drawer/package.json +1 -1
- package/dist/dynamic/components/Dropdown/package.json +1 -1
- package/dist/dynamic/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/components/EmptyState/package.json +1 -1
- package/dist/dynamic/components/ExpandableSection/package.json +1 -1
- package/dist/dynamic/components/FileUpload/package.json +1 -1
- package/dist/dynamic/components/Form/package.json +1 -1
- package/dist/dynamic/components/FormSelect/package.json +1 -1
- package/dist/dynamic/components/HelperText/package.json +1 -1
- package/dist/dynamic/components/Hint/package.json +1 -1
- package/dist/dynamic/components/Icon/package.json +1 -1
- package/dist/dynamic/components/InputGroup/package.json +1 -1
- package/dist/dynamic/components/JumpLinks/package.json +1 -1
- package/dist/dynamic/components/Label/package.json +1 -1
- package/dist/dynamic/components/List/package.json +1 -1
- package/dist/dynamic/components/LoginPage/package.json +1 -1
- package/dist/dynamic/components/Masthead/package.json +1 -1
- package/dist/dynamic/components/Menu/package.json +1 -1
- package/dist/dynamic/components/MenuToggle/package.json +1 -1
- package/dist/dynamic/components/Modal/package.json +1 -1
- package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
- package/dist/dynamic/components/Nav/package.json +1 -1
- package/dist/dynamic/components/NotificationBadge/package.json +1 -1
- package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
- package/dist/dynamic/components/NumberInput/package.json +1 -1
- package/dist/dynamic/components/OverflowMenu/package.json +1 -1
- package/dist/dynamic/components/Page/package.json +1 -1
- package/dist/dynamic/components/Pagination/package.json +1 -1
- package/dist/dynamic/components/Panel/package.json +1 -1
- package/dist/dynamic/components/Popover/package.json +1 -1
- package/dist/dynamic/components/Progress/package.json +1 -1
- package/dist/dynamic/components/ProgressStepper/package.json +1 -1
- package/dist/dynamic/components/Radio/package.json +1 -1
- package/dist/dynamic/components/SearchInput/package.json +1 -1
- package/dist/dynamic/components/Select/package.json +1 -1
- package/dist/dynamic/components/Sidebar/package.json +1 -1
- package/dist/dynamic/components/SimpleList/package.json +1 -1
- package/dist/dynamic/components/Skeleton/package.json +1 -1
- package/dist/dynamic/components/SkipToContent/package.json +1 -1
- package/dist/dynamic/components/Slider/package.json +1 -1
- package/dist/dynamic/components/Spinner/package.json +1 -1
- package/dist/dynamic/components/Switch/package.json +1 -1
- package/dist/dynamic/components/Tabs/package.json +1 -1
- package/dist/dynamic/components/TextArea/package.json +1 -1
- package/dist/dynamic/components/TextInput/package.json +1 -1
- package/dist/dynamic/components/TextInputGroup/package.json +1 -1
- package/dist/dynamic/components/TimePicker/package.json +1 -1
- package/dist/dynamic/components/Timestamp/package.json +1 -1
- package/dist/dynamic/components/Title/package.json +1 -1
- package/dist/dynamic/components/ToggleGroup/package.json +1 -1
- package/dist/dynamic/components/Toolbar/package.json +1 -1
- package/dist/dynamic/components/Tooltip/package.json +1 -1
- package/dist/dynamic/components/TreeView/package.json +1 -1
- package/dist/dynamic/components/Truncate/package.json +1 -1
- package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
- package/dist/dynamic/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
- package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
- package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
- package/dist/dynamic/deprecated/components/Tile/package.json +1 -1
- package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/package.json +1 -1
- package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
- package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
- package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
- package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
- package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
- package/dist/dynamic/helpers/constants/package.json +1 -1
- package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
- package/dist/dynamic/helpers/fileUtils/package.json +1 -1
- package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
- package/dist/dynamic/helpers/package.json +1 -1
- package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
- package/dist/dynamic/helpers/typeUtils/package.json +1 -1
- package/dist/dynamic/helpers/useInterval/package.json +1 -1
- package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
- package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
- package/dist/dynamic/helpers/util/package.json +1 -1
- package/dist/dynamic/layouts/Bullseye/package.json +1 -1
- package/dist/dynamic/layouts/Flex/package.json +1 -1
- package/dist/dynamic/layouts/Gallery/package.json +1 -1
- package/dist/dynamic/layouts/Grid/package.json +1 -1
- package/dist/dynamic/layouts/Level/package.json +1 -1
- package/dist/dynamic/layouts/Split/package.json +1 -1
- package/dist/dynamic/layouts/Stack/package.json +1 -1
- package/dist/dynamic/styles/package.json +1 -1
- package/dist/dynamic-modules.json +2 -0
- package/dist/esm/components/Alert/AlertGroupInline.d.ts.map +1 -1
- package/dist/esm/components/Alert/AlertGroupInline.js +7 -1
- package/dist/esm/components/Alert/AlertGroupInline.js.map +1 -1
- package/dist/esm/components/Button/Button.d.ts +12 -0
- package/dist/esm/components/Button/Button.d.ts.map +1 -1
- package/dist/esm/components/Button/Button.js +33 -3
- package/dist/esm/components/Button/Button.js.map +1 -1
- package/dist/esm/components/Button/hamburgerIcon.d.ts +2 -0
- package/dist/esm/components/Button/hamburgerIcon.d.ts.map +1 -0
- package/dist/esm/components/Button/hamburgerIcon.js +7 -0
- package/dist/esm/components/Button/hamburgerIcon.js.map +1 -0
- package/dist/esm/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
- package/dist/esm/components/ClipboardCopy/ClipboardCopy.js +2 -2
- package/dist/esm/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
- package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js +1 -1
- package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelector.d.ts +5 -0
- package/dist/esm/components/DualListSelector/DualListSelector.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelector.js +4 -3
- package/dist/esm/components/DualListSelector/DualListSelector.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorContext.d.ts +1 -0
- package/dist/esm/components/DualListSelector/DualListSelectorContext.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorContext.js +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorContext.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorListWrapper.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorListWrapper.js +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorListWrapper.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorTree.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorTree.js +4 -1
- package/dist/esm/components/DualListSelector/DualListSelectorTree.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorTreeItem.d.ts +5 -0
- package/dist/esm/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorTreeItem.js +8 -4
- package/dist/esm/components/DualListSelector/DualListSelectorTreeItem.js.map +1 -1
- package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts +5 -1
- package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
- package/dist/esm/components/ExpandableSection/ExpandableSection.js +6 -2
- package/dist/esm/components/ExpandableSection/ExpandableSection.js.map +1 -1
- package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.d.ts +2 -0
- package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
- package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.js +4 -3
- package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
- package/dist/esm/components/Form/FormFieldGroupExpandable.d.ts +5 -0
- package/dist/esm/components/Form/FormFieldGroupExpandable.d.ts.map +1 -1
- package/dist/esm/components/Form/FormFieldGroupExpandable.js +2 -2
- package/dist/esm/components/Form/FormFieldGroupExpandable.js.map +1 -1
- package/dist/esm/components/Form/InternalFormFieldGroup.d.ts +5 -0
- package/dist/esm/components/Form/InternalFormFieldGroup.d.ts.map +1 -1
- package/dist/esm/components/Form/InternalFormFieldGroup.js +2 -2
- package/dist/esm/components/Form/InternalFormFieldGroup.js.map +1 -1
- package/dist/esm/components/Label/Label.js +57 -57
- package/dist/esm/components/Label/Label.js.map +1 -1
- package/dist/esm/components/Menu/Menu.js +3 -3
- package/dist/esm/components/Menu/Menu.js.map +1 -1
- package/dist/esm/components/MenuToggle/MenuToggle.d.ts +2 -0
- package/dist/esm/components/MenuToggle/MenuToggle.d.ts.map +1 -1
- package/dist/esm/components/MenuToggle/MenuToggle.js +4 -3
- package/dist/esm/components/MenuToggle/MenuToggle.js.map +1 -1
- package/dist/esm/components/Page/PageToggleButton.d.ts +4 -0
- package/dist/esm/components/Page/PageToggleButton.d.ts.map +1 -1
- package/dist/esm/components/Page/PageToggleButton.js +2 -2
- package/dist/esm/components/Page/PageToggleButton.js.map +1 -1
- package/dist/esm/components/Popover/Popover.d.ts.map +1 -1
- package/dist/esm/components/Popover/Popover.js +11 -1
- package/dist/esm/components/Popover/Popover.js.map +1 -1
- package/dist/esm/components/SearchInput/AdvancedSearchMenu.d.ts.map +1 -1
- package/dist/esm/components/SearchInput/AdvancedSearchMenu.js +13 -19
- package/dist/esm/components/SearchInput/AdvancedSearchMenu.js.map +1 -1
- package/dist/esm/components/SearchInput/SearchInput.d.ts +4 -0
- package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/esm/components/SearchInput/SearchInput.js +37 -13
- package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/esm/components/Tabs/OverflowTab.d.ts +26 -0
- package/dist/esm/components/Tabs/OverflowTab.d.ts.map +1 -1
- package/dist/esm/components/Tabs/OverflowTab.js +2 -2
- package/dist/esm/components/Tabs/OverflowTab.js.map +1 -1
- package/dist/esm/components/Tabs/Tab.d.ts.map +1 -1
- package/dist/esm/components/Tabs/Tab.js +5 -2
- package/dist/esm/components/Tabs/Tab.js.map +1 -1
- package/dist/esm/components/Tabs/Tabs.d.ts +10 -0
- package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/esm/components/Tabs/Tabs.js +46 -12
- package/dist/esm/components/Tabs/Tabs.js.map +1 -1
- package/dist/esm/components/Tabs/TabsContext.d.ts +1 -0
- package/dist/esm/components/Tabs/TabsContext.d.ts.map +1 -1
- package/dist/esm/components/Tabs/TabsContext.js +1 -0
- package/dist/esm/components/Tabs/TabsContext.js.map +1 -1
- package/dist/esm/components/TreeView/TreeView.d.ts +5 -0
- package/dist/esm/components/TreeView/TreeView.d.ts.map +1 -1
- package/dist/esm/components/TreeView/TreeView.js +5 -5
- package/dist/esm/components/TreeView/TreeView.js.map +1 -1
- package/dist/esm/components/TreeView/TreeViewListItem.d.ts +5 -0
- package/dist/esm/components/TreeView/TreeViewListItem.d.ts.map +1 -1
- package/dist/esm/components/TreeView/TreeViewListItem.js +8 -4
- package/dist/esm/components/TreeView/TreeViewListItem.js.map +1 -1
- package/dist/esm/components/TreeView/TreeViewRoot.d.ts.map +1 -1
- package/dist/esm/components/TreeView/TreeViewRoot.js +2 -2
- package/dist/esm/components/TreeView/TreeViewRoot.js.map +1 -1
- package/dist/esm/components/Truncate/Truncate.d.ts +11 -8
- package/dist/esm/components/Truncate/Truncate.d.ts.map +1 -1
- package/dist/esm/components/Truncate/Truncate.js +16 -9
- package/dist/esm/components/Truncate/Truncate.js.map +1 -1
- package/dist/esm/demos/DashboardHeader.d.ts.map +1 -1
- package/dist/esm/demos/DashboardHeader.js +1 -2
- package/dist/esm/demos/DashboardHeader.js.map +1 -1
- package/dist/esm/demos/sampleData.d.ts.map +1 -1
- package/dist/esm/demos/sampleData.js +225 -226
- package/dist/esm/demos/sampleData.js.map +1 -1
- package/dist/esm/demos/sampleDataRTL.d.ts +7 -0
- package/dist/esm/demos/sampleDataRTL.d.ts.map +1 -0
- package/dist/esm/demos/sampleDataRTL.js +128 -0
- package/dist/esm/demos/sampleDataRTL.js.map +1 -0
- package/dist/esm/helpers/KeyboardHandler.js +3 -2
- package/dist/esm/helpers/KeyboardHandler.js.map +1 -1
- package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
- package/dist/esm/helpers/Popper/Popper.js +1 -0
- package/dist/esm/helpers/Popper/Popper.js.map +1 -1
- package/dist/esm/helpers/util.d.ts +17 -0
- package/dist/esm/helpers/util.d.ts.map +1 -1
- package/dist/esm/helpers/util.js +36 -0
- package/dist/esm/helpers/util.js.map +1 -1
- package/dist/js/components/Alert/AlertGroupInline.d.ts.map +1 -1
- package/dist/js/components/Alert/AlertGroupInline.js +6 -0
- package/dist/js/components/Alert/AlertGroupInline.js.map +1 -1
- package/dist/js/components/Button/Button.d.ts +12 -0
- package/dist/js/components/Button/Button.d.ts.map +1 -1
- package/dist/js/components/Button/Button.js +33 -3
- package/dist/js/components/Button/Button.js.map +1 -1
- package/dist/js/components/Button/hamburgerIcon.d.ts +2 -0
- package/dist/js/components/Button/hamburgerIcon.d.ts.map +1 -0
- package/dist/js/components/Button/hamburgerIcon.js +11 -0
- package/dist/js/components/Button/hamburgerIcon.js.map +1 -0
- package/dist/js/components/ClipboardCopy/ClipboardCopy.d.ts.map +1 -1
- package/dist/js/components/ClipboardCopy/ClipboardCopy.js +2 -2
- package/dist/js/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
- package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js +1 -1
- package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelector.d.ts +5 -0
- package/dist/js/components/DualListSelector/DualListSelector.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelector.js +4 -3
- package/dist/js/components/DualListSelector/DualListSelector.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorContext.d.ts +1 -0
- package/dist/js/components/DualListSelector/DualListSelectorContext.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorContext.js +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorContext.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorListWrapper.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorListWrapper.js +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorListWrapper.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorTree.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorTree.js +4 -1
- package/dist/js/components/DualListSelector/DualListSelectorTree.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorTreeItem.d.ts +5 -0
- package/dist/js/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorTreeItem.js +7 -3
- package/dist/js/components/DualListSelector/DualListSelectorTreeItem.js.map +1 -1
- package/dist/js/components/ExpandableSection/ExpandableSection.d.ts +5 -1
- package/dist/js/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
- package/dist/js/components/ExpandableSection/ExpandableSection.js +6 -2
- package/dist/js/components/ExpandableSection/ExpandableSection.js.map +1 -1
- package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts +2 -0
- package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
- package/dist/js/components/ExpandableSection/ExpandableSectionToggle.js +4 -3
- package/dist/js/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
- package/dist/js/components/Form/FormFieldGroupExpandable.d.ts +5 -0
- package/dist/js/components/Form/FormFieldGroupExpandable.d.ts.map +1 -1
- package/dist/js/components/Form/FormFieldGroupExpandable.js +2 -2
- package/dist/js/components/Form/FormFieldGroupExpandable.js.map +1 -1
- package/dist/js/components/Form/InternalFormFieldGroup.d.ts +5 -0
- package/dist/js/components/Form/InternalFormFieldGroup.d.ts.map +1 -1
- package/dist/js/components/Form/InternalFormFieldGroup.js +2 -2
- package/dist/js/components/Form/InternalFormFieldGroup.js.map +1 -1
- package/dist/js/components/Label/Label.js +57 -57
- package/dist/js/components/Label/Label.js.map +1 -1
- package/dist/js/components/Menu/Menu.js +3 -3
- package/dist/js/components/Menu/Menu.js.map +1 -1
- package/dist/js/components/MenuToggle/MenuToggle.d.ts +2 -0
- package/dist/js/components/MenuToggle/MenuToggle.d.ts.map +1 -1
- package/dist/js/components/MenuToggle/MenuToggle.js +4 -3
- package/dist/js/components/MenuToggle/MenuToggle.js.map +1 -1
- package/dist/js/components/Page/PageToggleButton.d.ts +4 -0
- package/dist/js/components/Page/PageToggleButton.d.ts.map +1 -1
- package/dist/js/components/Page/PageToggleButton.js +2 -2
- package/dist/js/components/Page/PageToggleButton.js.map +1 -1
- package/dist/js/components/Popover/Popover.d.ts.map +1 -1
- package/dist/js/components/Popover/Popover.js +11 -1
- package/dist/js/components/Popover/Popover.js.map +1 -1
- package/dist/js/components/SearchInput/AdvancedSearchMenu.d.ts.map +1 -1
- package/dist/js/components/SearchInput/AdvancedSearchMenu.js +12 -18
- package/dist/js/components/SearchInput/AdvancedSearchMenu.js.map +1 -1
- package/dist/js/components/SearchInput/SearchInput.d.ts +4 -0
- package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/js/components/SearchInput/SearchInput.js +36 -12
- package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/js/components/Tabs/OverflowTab.d.ts +26 -0
- package/dist/js/components/Tabs/OverflowTab.d.ts.map +1 -1
- package/dist/js/components/Tabs/OverflowTab.js +2 -2
- package/dist/js/components/Tabs/OverflowTab.js.map +1 -1
- package/dist/js/components/Tabs/Tab.d.ts.map +1 -1
- package/dist/js/components/Tabs/Tab.js +4 -1
- package/dist/js/components/Tabs/Tab.js.map +1 -1
- package/dist/js/components/Tabs/Tabs.d.ts +10 -0
- package/dist/js/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/js/components/Tabs/Tabs.js +45 -11
- package/dist/js/components/Tabs/Tabs.js.map +1 -1
- package/dist/js/components/Tabs/TabsContext.d.ts +1 -0
- package/dist/js/components/Tabs/TabsContext.d.ts.map +1 -1
- package/dist/js/components/Tabs/TabsContext.js +1 -0
- package/dist/js/components/Tabs/TabsContext.js.map +1 -1
- package/dist/js/components/TreeView/TreeView.d.ts +5 -0
- package/dist/js/components/TreeView/TreeView.d.ts.map +1 -1
- package/dist/js/components/TreeView/TreeView.js +5 -5
- package/dist/js/components/TreeView/TreeView.js.map +1 -1
- package/dist/js/components/TreeView/TreeViewListItem.d.ts +5 -0
- package/dist/js/components/TreeView/TreeViewListItem.d.ts.map +1 -1
- package/dist/js/components/TreeView/TreeViewListItem.js +7 -3
- package/dist/js/components/TreeView/TreeViewListItem.js.map +1 -1
- package/dist/js/components/TreeView/TreeViewRoot.d.ts.map +1 -1
- package/dist/js/components/TreeView/TreeViewRoot.js +2 -2
- package/dist/js/components/TreeView/TreeViewRoot.js.map +1 -1
- package/dist/js/components/Truncate/Truncate.d.ts +11 -8
- package/dist/js/components/Truncate/Truncate.d.ts.map +1 -1
- package/dist/js/components/Truncate/Truncate.js +15 -9
- package/dist/js/components/Truncate/Truncate.js.map +1 -1
- package/dist/js/demos/DashboardHeader.d.ts.map +1 -1
- package/dist/js/demos/DashboardHeader.js +1 -2
- package/dist/js/demos/DashboardHeader.js.map +1 -1
- package/dist/js/demos/sampleData.d.ts.map +1 -1
- package/dist/js/demos/sampleData.js +225 -226
- package/dist/js/demos/sampleData.js.map +1 -1
- package/dist/js/demos/sampleDataRTL.d.ts +7 -0
- package/dist/js/demos/sampleDataRTL.d.ts.map +1 -0
- package/dist/js/demos/sampleDataRTL.js +131 -0
- package/dist/js/demos/sampleDataRTL.js.map +1 -0
- package/dist/js/helpers/KeyboardHandler.js +3 -2
- package/dist/js/helpers/KeyboardHandler.js.map +1 -1
- package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
- package/dist/js/helpers/Popper/Popper.js +1 -0
- package/dist/js/helpers/Popper/Popper.js.map +1 -1
- package/dist/js/helpers/util.d.ts +17 -0
- package/dist/js/helpers/util.d.ts.map +1 -1
- package/dist/js/helpers/util.js +39 -1
- package/dist/js/helpers/util.js.map +1 -1
- package/dist/styles/assets/images/icon-help.hbs +3 -0
- package/dist/styles/assets/images/icon-outlined-star.hbs +3 -0
- package/dist/styles/assets/images/icon-star.hbs +3 -0
- package/dist/styles/base-no-reset.css +52 -11
- package/dist/styles/base.css +52 -11
- package/dist/umd/assets/{output-iWrWEXUG.css → output-BvTy70LD.css} +16824 -16082
- 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/AlertGroupInline.tsx +13 -2
- package/src/components/Button/Button.tsx +78 -5
- package/src/components/Button/__tests__/Button.test.tsx +380 -74
- package/src/components/Button/__tests__/__snapshots__/Button.test.tsx.snap +1 -1
- package/src/components/Button/examples/Button.md +57 -14
- package/src/components/Button/examples/ButtonFavorite.tsx +18 -0
- package/src/components/Button/examples/ButtonHamburger.tsx +9 -0
- package/src/components/Button/examples/ButtonSettings.tsx +10 -0
- package/src/components/Button/hamburgerIcon.tsx +13 -0
- package/src/components/Card/examples/Card.md +1 -1
- package/src/components/Card/examples/CardSelectable.tsx +73 -60
- package/src/components/Card/examples/CardSingleSelectable.tsx +65 -48
- package/src/components/ClipboardCopy/ClipboardCopy.tsx +2 -1
- package/src/components/ClipboardCopy/ClipboardCopyToggle.tsx +1 -1
- package/src/components/ClipboardCopy/__tests__/ClipboardCopyToggle.test.tsx +7 -1
- package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyToggle.test.tsx.snap +0 -1
- package/src/components/DualListSelector/DualListSelector.tsx +18 -4
- package/src/components/DualListSelector/DualListSelectorContext.ts +2 -1
- package/src/components/DualListSelector/DualListSelectorListWrapper.tsx +8 -5
- package/src/components/DualListSelector/DualListSelectorTree.tsx +4 -0
- package/src/components/DualListSelector/DualListSelectorTreeItem.tsx +17 -2
- package/src/components/DualListSelector/__tests__/DualListSelector.test.tsx +32 -1
- package/src/components/DualListSelector/__tests__/DualListSelectorTreeItem.test.tsx +55 -0
- package/src/components/DualListSelector/examples/DualListSelectorTree.tsx +1 -1
- package/src/components/ExpandableSection/ExpandableSection.tsx +13 -1
- package/src/components/ExpandableSection/ExpandableSectionToggle.tsx +5 -1
- package/src/components/ExpandableSection/__tests__/ExpandableSection.test.tsx +85 -23
- package/src/components/ExpandableSection/__tests__/ExpandableSectionToggle.test.tsx +32 -0
- package/src/components/ExpandableSection/__tests__/__snapshots__/ExpandableSection.test.tsx.snap +1 -63
- package/src/components/ExpandableSection/examples/ExpandableSection.md +2 -0
- package/src/components/ExpandableSection/examples/ExpandableSectionDetached.tsx +1 -1
- package/src/components/Form/FormFieldGroupExpandable.tsx +7 -0
- package/src/components/Form/InternalFormFieldGroup.tsx +19 -3
- package/src/components/Form/__tests__/FormFieldGroupExpandable.test.tsx +55 -0
- package/src/components/Form/examples/FormFieldGroups.tsx +7 -1
- package/src/components/Label/Label.tsx +63 -63
- package/src/components/Masthead/examples/MastheadBasic.tsx +1 -2
- package/src/components/Masthead/examples/MastheadBasicMixedContent.tsx +1 -2
- package/src/components/Masthead/examples/MastheadDisplayInline.tsx +1 -2
- package/src/components/Masthead/examples/MastheadDisplayStack.tsx +1 -2
- package/src/components/Masthead/examples/MastheadDisplayStackInlineResponsive.tsx +1 -2
- package/src/components/Masthead/examples/MastheadInsets.tsx +1 -2
- package/src/components/Masthead/examples/MastheadLogoCustomComponent.tsx +1 -2
- package/src/components/Menu/Menu.tsx +3 -3
- package/src/components/MenuToggle/MenuToggle.tsx +6 -1
- package/src/components/MenuToggle/__tests__/MenuToggle.test.tsx +59 -45
- package/src/components/MenuToggle/__tests__/__snapshots__/MenuToggle.test.tsx.snap +9 -9
- package/src/components/MenuToggle/examples/MenuToggle.md +14 -30
- package/src/components/MenuToggle/examples/MenuToggleCustomIcon.tsx +17 -0
- package/src/components/MenuToggle/examples/MenuToggleSettings.tsx +8 -0
- package/src/components/Page/PageToggleButton.tsx +9 -2
- package/src/components/Page/examples/Page.md +1 -1
- package/src/components/Page/examples/PageCenteredSection.tsx +4 -8
- package/src/components/Page/examples/PageGroupSection.tsx +2 -5
- package/src/components/Page/examples/PageMainSectionPadding.tsx +2 -5
- package/src/components/Page/examples/PageMainSectionVariations.tsx +2 -5
- package/src/components/Page/examples/PageMultipleSidebarBody.tsx +2 -5
- package/src/components/Page/examples/PageUncontrolledNav.tsx +1 -4
- package/src/components/Page/examples/PageVerticalNav.tsx +2 -5
- package/src/components/Page/examples/PageWithOrWithoutFill.tsx +2 -5
- package/src/components/Popover/Popover.tsx +13 -1
- package/src/components/SearchInput/AdvancedSearchMenu.tsx +15 -23
- package/src/components/SearchInput/SearchInput.tsx +111 -15
- package/src/components/SearchInput/__tests__/SearchInput.test.tsx +84 -0
- package/src/components/SearchInput/examples/SearchInput.md +11 -2
- package/src/components/SearchInput/examples/SearchInputWithExpandable.tsx +6 -1
- package/src/components/Skeleton/examples/SkeletonText.tsx +0 -1
- package/src/components/Tabs/OverflowTab.tsx +29 -0
- package/src/components/Tabs/Tab.tsx +6 -2
- package/src/components/Tabs/Tabs.tsx +76 -11
- package/src/components/Tabs/TabsContext.ts +2 -0
- package/src/components/Tabs/__tests__/Tabs.test.tsx +65 -1
- package/src/components/Tabs/__tests__/__snapshots__/Tabs.test.tsx.snap +39 -26
- package/src/components/Tabs/examples/Tabs.md +1 -1
- package/src/components/Timestamp/examples/TimestampBasicFormats.tsx +1 -1
- package/src/components/Timestamp/examples/TimestampDefaultTooltip.tsx +1 -1
- package/src/components/TreeView/TreeView.tsx +9 -0
- package/src/components/TreeView/TreeViewListItem.tsx +18 -5
- package/src/components/TreeView/TreeViewRoot.tsx +4 -2
- package/src/components/TreeView/__tests__/TreeView.test.tsx +8 -1
- package/src/components/TreeView/__tests__/TreeViewList.test.tsx +39 -0
- package/src/components/TreeView/__tests__/TreeViewListItem.test.tsx +17 -3
- package/src/components/TreeView/__tests__/__snapshots__/TreeView.test.tsx.snap +3 -0
- package/src/components/TreeView/examples/TreeViewCompact.tsx +1 -1
- package/src/components/TreeView/examples/TreeViewCompactNoBackground.tsx +8 -1
- package/src/components/TreeView/examples/TreeViewGuides.tsx +1 -1
- package/src/components/TreeView/examples/TreeViewMultiselectable.tsx +1 -0
- package/src/components/TreeView/examples/TreeViewSelectionExpansion.tsx +1 -0
- package/src/components/TreeView/examples/TreeViewSingleSelectable.tsx +1 -0
- package/src/components/TreeView/examples/TreeViewWithActionItems.tsx +1 -0
- package/src/components/TreeView/examples/TreeViewWithBadges.tsx +1 -0
- package/src/components/TreeView/examples/TreeViewWithCheckboxes.tsx +9 -1
- package/src/components/TreeView/examples/TreeViewWithCustomBadges.tsx +1 -0
- package/src/components/TreeView/examples/TreeViewWithIconPerItem.tsx +1 -0
- package/src/components/TreeView/examples/TreeViewWithIcons.tsx +1 -0
- package/src/components/TreeView/examples/TreeViewWithMemoization.tsx +1 -0
- package/src/components/TreeView/examples/TreeViewWithSearch.tsx +1 -0
- package/src/components/Truncate/Truncate.tsx +40 -19
- package/src/components/Truncate/__tests__/Truncate.test.tsx +24 -0
- package/src/components/Truncate/examples/Truncate.md +8 -0
- package/src/components/Truncate/examples/TruncateLinks.tsx +22 -0
- package/src/demos/CardDemos.md +1 -1
- package/src/demos/DashboardHeader.tsx +2 -5
- package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +2 -5
- package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +2 -5
- package/src/demos/RTL/RTL.md +1 -0
- package/src/demos/RTL/examples/PaginatedTable.tsx +18 -53
- package/src/demos/examples/Card/CardAggregateStatus.tsx +2 -6
- package/src/demos/examples/Card/CardDetails.tsx +2 -3
- package/src/demos/examples/Card/CardEventsView.tsx +2 -3
- package/src/demos/examples/Card/CardLogView.tsx +2 -3
- package/src/demos/examples/Card/CardStatus.tsx +0 -1
- package/src/demos/examples/Card/CardUtilizationDemo3.tsx +0 -1
- package/src/demos/examples/Masthead/MastheadWithHorizontalNav.tsx +1 -1
- package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +2 -5
- package/src/demos/examples/Nav/NavFlyout.tsx +3 -6
- package/src/demos/examples/Nav/NavHorizontal.tsx +1 -1
- package/src/demos/examples/Nav/NavHorizontalWithSubnav.tsx +2 -5
- package/src/demos/examples/Nav/NavManual.tsx +3 -6
- package/src/demos/examples/Page/PageContextSelector.tsx +3 -6
- package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +2 -5
- package/src/demos/examples/Page/PageStickySectionGroup.tsx +2 -5
- package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +2 -5
- package/src/demos/examples/Toolbar/ConsoleLogViewerToolbar.tsx +2 -3
- package/src/demos/examples/Wizard/InPageWithDrawer.tsx +1 -4
- package/src/demos/examples/Wizard/InPageWithDrawerInformationalStep.tsx +1 -4
- package/src/demos/sampleData.tsx +225 -227
- package/src/demos/sampleDataRTL.tsx +133 -0
- package/src/helpers/KeyboardHandler.tsx +2 -2
- package/src/helpers/Popper/Popper.tsx +1 -0
- package/src/helpers/util.ts +45 -0
- package/src/demos/RTL/examples/PaginatedTable.jsx +0 -504
|
@@ -2,17 +2,22 @@ import { render, screen } from '@testing-library/react';
|
|
|
2
2
|
import { Button, ButtonState, ButtonVariant } from '../Button';
|
|
3
3
|
import styles from '@patternfly/react-styles/css/components/Button/button';
|
|
4
4
|
|
|
5
|
+
const { primary, secondary, tertiary, danger, warning, link, plain, control, stateful } = ButtonVariant;
|
|
6
|
+
const validDangerVariants = [secondary, link];
|
|
7
|
+
const invalidDangerVariants = [primary, tertiary, warning, plain, control, stateful];
|
|
8
|
+
const invalidInlineVariants = [primary, secondary, tertiary, danger, warning, plain, control, stateful];
|
|
9
|
+
|
|
5
10
|
Object.values(ButtonVariant).forEach((variant) => {
|
|
6
11
|
if (variant !== 'primary') {
|
|
7
|
-
test(`Does not render with class
|
|
12
|
+
test(`Does not render with class ${styles.modifiers[variant]} by default`, () => {
|
|
8
13
|
render(<Button>Not {variant} Button</Button>);
|
|
9
|
-
expect(screen.getByRole('button')).not.toHaveClass(
|
|
14
|
+
expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers[variant]);
|
|
10
15
|
});
|
|
11
16
|
}
|
|
12
17
|
|
|
13
|
-
test(`Renders with class
|
|
18
|
+
test(`Renders with class ${styles.modifiers[variant]} when variant=${variant}`, () => {
|
|
14
19
|
render(<Button variant={variant}>{variant} Button</Button>);
|
|
15
|
-
expect(screen.getByRole('button')).toHaveClass(
|
|
20
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers[variant]);
|
|
16
21
|
});
|
|
17
22
|
});
|
|
18
23
|
|
|
@@ -26,14 +31,14 @@ test('Renders without children', () => {
|
|
|
26
31
|
expect(screen.getByTestId('container').firstChild).toBeVisible();
|
|
27
32
|
});
|
|
28
33
|
|
|
29
|
-
test(
|
|
34
|
+
test(`Renders with class ${styles.button} by default`, () => {
|
|
30
35
|
render(<Button>Button</Button>);
|
|
31
|
-
expect(screen.getByRole('button')).toHaveClass(
|
|
36
|
+
expect(screen.getByRole('button')).toHaveClass(styles.button);
|
|
32
37
|
});
|
|
33
38
|
|
|
34
|
-
test(
|
|
39
|
+
test(`Renders with class ${styles.modifiers.primary} by default`, () => {
|
|
35
40
|
render(<Button>Button</Button>);
|
|
36
|
-
expect(screen.getByText('Button').parentElement).toHaveClass(
|
|
41
|
+
expect(screen.getByText('Button').parentElement).toHaveClass(styles.modifiers.primary);
|
|
37
42
|
});
|
|
38
43
|
|
|
39
44
|
test('Renders with custom class', () => {
|
|
@@ -48,28 +53,28 @@ test('Renders with an aria-label', () => {
|
|
|
48
53
|
expect(screen.getByLabelText(label)).toHaveAccessibleName('aria-label test');
|
|
49
54
|
});
|
|
50
55
|
|
|
51
|
-
test(
|
|
56
|
+
test(`Renders with class ${styles.modifiers.block} when isBlock = true`, () => {
|
|
52
57
|
render(<Button isBlock>Block Button</Button>);
|
|
53
|
-
expect(screen.getByRole('button')).toHaveClass(
|
|
58
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.block);
|
|
54
59
|
});
|
|
55
60
|
|
|
56
|
-
test(
|
|
61
|
+
test(`Renders with class ${styles.modifiers.clicked} when isClicked = true`, () => {
|
|
57
62
|
render(<Button isClicked>Clicked Button</Button>);
|
|
58
|
-
expect(screen.getByRole('button')).toHaveClass(
|
|
63
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.clicked);
|
|
59
64
|
});
|
|
60
65
|
|
|
61
|
-
test(
|
|
66
|
+
test(`Does not render with class ${styles.modifiers.disabled} by default when isDisabled = true`, () => {
|
|
62
67
|
render(<Button isDisabled>Disabled Button</Button>);
|
|
63
|
-
expect(screen.getByRole('button')).not.toHaveClass(
|
|
68
|
+
expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers.disabled);
|
|
64
69
|
});
|
|
65
70
|
|
|
66
|
-
test(
|
|
71
|
+
test(`Renders with class ${styles.modifiers.disabled} when isDisabled = true and component is not a button`, () => {
|
|
67
72
|
render(
|
|
68
73
|
<Button isDisabled component="a">
|
|
69
74
|
Disabled Anchor Button
|
|
70
75
|
</Button>
|
|
71
76
|
);
|
|
72
|
-
expect(screen.getByText('Disabled Anchor Button').parentElement).toHaveClass(
|
|
77
|
+
expect(screen.getByText('Disabled Anchor Button').parentElement).toHaveClass(styles.modifiers.disabled);
|
|
73
78
|
});
|
|
74
79
|
|
|
75
80
|
test(`aria-disabled and class ${styles.modifiers.ariaDisabled} are not rendered when isAriaDisabled is not passed by default`, () => {
|
|
@@ -105,120 +110,117 @@ test('Does not disable button when isDisabled = true and component = a', () => {
|
|
|
105
110
|
expect(screen.getByText('Disabled yet focusable button')).not.toHaveProperty('disabled');
|
|
106
111
|
});
|
|
107
112
|
|
|
108
|
-
test(
|
|
113
|
+
test(`Renders with class ${styles.modifiers.unread} by default when variant = stateful`, () => {
|
|
109
114
|
render(<Button variant="stateful">Stateful Button</Button>);
|
|
110
|
-
expect(screen.getByRole('button')).toHaveClass(
|
|
115
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.unread);
|
|
111
116
|
});
|
|
112
117
|
|
|
113
118
|
Object.values(ButtonState).forEach((state) => {
|
|
114
|
-
test(`Renders with class
|
|
119
|
+
test(`Renders with class ${styles.modifiers[state]} when state = ${state} and variant = stateful`, () => {
|
|
115
120
|
render(
|
|
116
121
|
<Button variant="stateful" state={state}>
|
|
117
122
|
Stateful Button - {state}
|
|
118
123
|
</Button>
|
|
119
124
|
);
|
|
120
|
-
expect(screen.getByRole('button')).toHaveClass(
|
|
125
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers[state]);
|
|
121
126
|
});
|
|
122
127
|
});
|
|
123
128
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
Object.values(validDangerVariants).forEach((validDangerVariant) => {
|
|
130
|
+
test(`Renders with class ${styles.modifiers.danger} when isDanger is true and variant = ${validDangerVariant}`, () => {
|
|
131
|
+
render(
|
|
132
|
+
<Button variant={validDangerVariant} isDanger>
|
|
133
|
+
Danger Button
|
|
134
|
+
</Button>
|
|
135
|
+
);
|
|
136
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.danger);
|
|
137
|
+
});
|
|
131
138
|
});
|
|
132
139
|
|
|
133
|
-
|
|
134
|
-
render(
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
+
Object.values(invalidDangerVariants).forEach((invalidDangerVariant) => {
|
|
141
|
+
test(`Does not render with class ${styles.modifiers.danger} when isDanger is true and variant = ${invalidDangerVariant}`, () => {
|
|
142
|
+
render(
|
|
143
|
+
<Button variant={invalidDangerVariant} isDanger>
|
|
144
|
+
Danger Button
|
|
145
|
+
</Button>
|
|
146
|
+
);
|
|
147
|
+
expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers.danger);
|
|
148
|
+
});
|
|
140
149
|
});
|
|
141
150
|
|
|
142
|
-
test(
|
|
151
|
+
test(`Renders with class ${styles.modifiers.inline} when isInline = true and variant = link`, () => {
|
|
143
152
|
render(
|
|
144
|
-
<Button variant=
|
|
145
|
-
|
|
153
|
+
<Button variant={ButtonVariant.link} isInline>
|
|
154
|
+
Inline Button
|
|
146
155
|
</Button>
|
|
147
156
|
);
|
|
148
|
-
expect(screen.getByRole('button')).
|
|
157
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.inline);
|
|
149
158
|
});
|
|
150
159
|
|
|
151
|
-
|
|
152
|
-
render(
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
160
|
+
Object.values(invalidInlineVariants).forEach((invalidInlineVariant) => {
|
|
161
|
+
test(`Does not render with class ${styles.modifiers.inline} when isInline is true and variant = ${invalidInlineVariants}`, () => {
|
|
162
|
+
render(
|
|
163
|
+
<Button variant={invalidInlineVariants} isInline>
|
|
164
|
+
Inline Button
|
|
165
|
+
</Button>
|
|
166
|
+
);
|
|
167
|
+
expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers.inline);
|
|
168
|
+
});
|
|
158
169
|
});
|
|
159
170
|
|
|
160
|
-
test(
|
|
161
|
-
render(
|
|
162
|
-
|
|
163
|
-
Danger Button
|
|
164
|
-
</Button>
|
|
165
|
-
);
|
|
166
|
-
expect(screen.getByRole('button')).not.toHaveClass('pf-m-danger');
|
|
171
|
+
test(`Renders with class ${styles.modifiers.small} when size = sm`, () => {
|
|
172
|
+
render(<Button size="sm">Small Button</Button>);
|
|
173
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.small);
|
|
167
174
|
});
|
|
168
175
|
|
|
169
|
-
test(
|
|
176
|
+
test(`Renders with class ${styles.modifiers.displayLg} when size = lg`, () => {
|
|
177
|
+
render(<Button size="lg">Large Button</Button>);
|
|
178
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.displayLg);
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
test(`Renders with classes ${styles.modifiers.inProgress} when isLoading = true`, () => {
|
|
170
182
|
render(
|
|
171
|
-
<Button
|
|
172
|
-
|
|
183
|
+
<Button isLoading spinnerAriaValueText="Loading">
|
|
184
|
+
Loading Button
|
|
173
185
|
</Button>
|
|
174
186
|
);
|
|
175
|
-
expect(screen.getByRole('button')).toHaveClass(
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
test('Renders with class pf-m-small when size = sm', () => {
|
|
179
|
-
render(<Button size="sm">Small Button</Button>);
|
|
180
|
-
expect(screen.getByRole('button')).toHaveClass('pf-m-small');
|
|
181
|
-
});
|
|
182
|
-
|
|
183
|
-
test('Renders with class pf-m-display-lg when size = lg', () => {
|
|
184
|
-
render(<Button size="lg">Large Button</Button>);
|
|
185
|
-
expect(screen.getByRole('button')).toHaveClass('pf-m-display-lg');
|
|
187
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.inProgress);
|
|
186
188
|
});
|
|
187
189
|
|
|
188
|
-
test(
|
|
190
|
+
test(`Renders with class ${styles.modifiers.progress} when isLoading is true`, () => {
|
|
189
191
|
render(
|
|
190
192
|
<Button isLoading spinnerAriaValueText="Loading">
|
|
191
193
|
Loading Button
|
|
192
194
|
</Button>
|
|
193
195
|
);
|
|
194
|
-
expect(screen.getByRole('button')).toHaveClass(
|
|
196
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.progress);
|
|
195
197
|
});
|
|
196
198
|
|
|
197
|
-
test(
|
|
199
|
+
test(`Renders with class ${styles.modifiers.progress} when isLoading is defined and isLoading = false`, () => {
|
|
198
200
|
render(
|
|
199
201
|
<Button isLoading={false} spinnerAriaValueText="Loading">
|
|
200
202
|
Loading Button
|
|
201
203
|
</Button>
|
|
202
204
|
);
|
|
203
|
-
expect(screen.getByRole('button')).toHaveClass(
|
|
205
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.progress);
|
|
204
206
|
});
|
|
205
207
|
|
|
206
|
-
test(
|
|
208
|
+
test(`Renders without class ${styles.modifiers.progress} when isLoading = false and variant = plain`, () => {
|
|
207
209
|
render(
|
|
208
210
|
<Button variant="plain" isInline isLoading={false} aria-label="Loading" spinnerAriaValueText="Loading">
|
|
209
211
|
Loading Button
|
|
210
212
|
</Button>
|
|
211
213
|
);
|
|
212
|
-
expect(screen.getByRole('button')).not.toHaveClass(
|
|
214
|
+
expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers.progress);
|
|
213
215
|
});
|
|
214
216
|
|
|
215
|
-
test(
|
|
217
|
+
test(`Renders custom icon with class ${styles.modifiers.inProgress} when isLoading = true and icon is present`, () => {
|
|
216
218
|
render(
|
|
217
219
|
<Button variant="plain" isLoading aria-label="Upload" spinnerAriaValueText="Loading" icon={<div>ICON</div>} />
|
|
218
220
|
);
|
|
219
221
|
|
|
220
222
|
expect(screen.getByText('ICON')).toBeVisible();
|
|
221
|
-
expect(screen.getByText('ICON').parentElement?.parentElement).toHaveClass(
|
|
223
|
+
expect(screen.getByText('ICON').parentElement?.parentElement).toHaveClass(styles.modifiers.inProgress);
|
|
222
224
|
});
|
|
223
225
|
|
|
224
226
|
test('Renders as custom component when component is passed', () => {
|
|
@@ -244,6 +246,310 @@ test('setting tab index through props', () => {
|
|
|
244
246
|
expect(screen.getByRole('button')).toHaveAttribute('tabindex', '0');
|
|
245
247
|
});
|
|
246
248
|
|
|
249
|
+
test('Does not render aria-expanded by default', () => {
|
|
250
|
+
render(<Button>Test</Button>);
|
|
251
|
+
|
|
252
|
+
expect(screen.getByRole('button')).not.toHaveAttribute('aria-expanded');
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
test('Renders with aria-expanded when isExpanded is true', () => {
|
|
256
|
+
render(<Button isExpanded>Test</Button>);
|
|
257
|
+
|
|
258
|
+
expect(screen.getByRole('button')).toHaveAttribute('aria-expanded', 'true');
|
|
259
|
+
});
|
|
260
|
+
|
|
261
|
+
test('Renders with aria-expanded when isExpanded is false', () => {
|
|
262
|
+
render(<Button isExpanded={false}>Test</Button>);
|
|
263
|
+
|
|
264
|
+
expect(screen.getByRole('button')).toHaveAttribute('aria-expanded', 'false');
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
// Remove this test when isExpanded prop in Button code is moved to after the spread props
|
|
268
|
+
test('Passing aria-expanded overrides isExpanded', () => {
|
|
269
|
+
render(
|
|
270
|
+
<Button aria-expanded={false} isExpanded>
|
|
271
|
+
Test
|
|
272
|
+
</Button>
|
|
273
|
+
);
|
|
274
|
+
|
|
275
|
+
expect(screen.getByRole('button')).toHaveAttribute('aria-expanded', 'false');
|
|
276
|
+
});
|
|
277
|
+
|
|
278
|
+
describe('Hamburger button', () => {
|
|
279
|
+
test('Throws console error when isHamburger is true and isExpanded is not passed', () => {
|
|
280
|
+
const consoleError = jest.spyOn(console, 'error').mockImplementation();
|
|
281
|
+
|
|
282
|
+
render(<Button isHamburger aria-label="Test" />);
|
|
283
|
+
|
|
284
|
+
expect(consoleError).toHaveBeenCalledWith(
|
|
285
|
+
'Button: when the isHamburger property is passed in, you must also pass in a boolean value to the isExpanded property. It is expected that a hamburger button controls the expansion of other content.'
|
|
286
|
+
);
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
test('Does not throw console error when isHamburger is true and isExpanded is false', () => {
|
|
290
|
+
const consoleError = jest.spyOn(console, 'error').mockImplementation();
|
|
291
|
+
|
|
292
|
+
render(<Button isExpanded={false} isHamburger aria-label="Test" />);
|
|
293
|
+
|
|
294
|
+
expect(consoleError).not.toHaveBeenCalledWith(
|
|
295
|
+
'Button: when the isHamburger property is passed in, you must also pass in a boolean value to the isExpanded property. It is expected that a hamburger button controls the expansion of other content..'
|
|
296
|
+
);
|
|
297
|
+
});
|
|
298
|
+
|
|
299
|
+
test('Does not throw console error when isHamburger is true and isExpanded is true', () => {
|
|
300
|
+
const consoleError = jest.spyOn(console, 'error').mockImplementation();
|
|
301
|
+
|
|
302
|
+
render(<Button isExpanded isHamburger aria-label="Test" />);
|
|
303
|
+
|
|
304
|
+
expect(consoleError).not.toHaveBeenCalledWith(
|
|
305
|
+
'Button: when the isHamburger property is passed in, you must also pass in a boolean value to the isExpanded property. It is expected that a hamburger button controls the expansion of other content..'
|
|
306
|
+
);
|
|
307
|
+
});
|
|
308
|
+
|
|
309
|
+
// TODO: Remove isHamburger in breaking change to throw error for any button that does not have children or aria name
|
|
310
|
+
test('Throws console error when isHamburger is true and neither children, aria-label nor aria-lablledby are passed', () => {
|
|
311
|
+
const consoleError = jest.spyOn(console, 'error').mockImplementation();
|
|
312
|
+
|
|
313
|
+
render(<Button isHamburger isExpanded />);
|
|
314
|
+
|
|
315
|
+
expect(consoleError).toHaveBeenCalledWith(
|
|
316
|
+
'Button: you must provide either visible text content or an accessible name via the aria-label or aria-labelledby properties.'
|
|
317
|
+
);
|
|
318
|
+
});
|
|
319
|
+
// TODO: Remove isHamburger in breaking change to throw error for any button that does not have children or aria name
|
|
320
|
+
test('Does not throw console error when isHamburger is true and children is passed', () => {
|
|
321
|
+
const consoleError = jest.spyOn(console, 'error').mockImplementation();
|
|
322
|
+
|
|
323
|
+
render(
|
|
324
|
+
<Button isHamburger isExpanded>
|
|
325
|
+
Test
|
|
326
|
+
</Button>
|
|
327
|
+
);
|
|
328
|
+
|
|
329
|
+
expect(consoleError).not.toHaveBeenCalledWith(
|
|
330
|
+
'Button: you must provide either visible text content or an accessible name via the aria-label or aria-labelledby properties.'
|
|
331
|
+
);
|
|
332
|
+
});
|
|
333
|
+
|
|
334
|
+
// TODO: Remove isHamburger in breaking change to throw error for any button that does not have children or aria name
|
|
335
|
+
test('Does not throw console error when isHamburger is true and aria-label is passed', () => {
|
|
336
|
+
const consoleError = jest.spyOn(console, 'error').mockImplementation();
|
|
337
|
+
|
|
338
|
+
render(<Button isHamburger isExpanded aria-label="Test" />);
|
|
339
|
+
|
|
340
|
+
expect(consoleError).not.toHaveBeenCalledWith(
|
|
341
|
+
'Button: you must provide either visible text content or an accessible name via the aria-label or aria-labelledby properties.'
|
|
342
|
+
);
|
|
343
|
+
});
|
|
344
|
+
|
|
345
|
+
// TODO: Remove isHamburger in breaking change to throw error for any button that does not have children or aria name
|
|
346
|
+
test('Does not throw console error when isHamburger is true and aria-labelledby is passed', () => {
|
|
347
|
+
const consoleError = jest.spyOn(console, 'error').mockImplementation();
|
|
348
|
+
|
|
349
|
+
render(
|
|
350
|
+
<>
|
|
351
|
+
<div id="label">Test</div>
|
|
352
|
+
<Button isHamburger isExpanded aria-labelledby="label" />
|
|
353
|
+
</>
|
|
354
|
+
);
|
|
355
|
+
|
|
356
|
+
expect(consoleError).not.toHaveBeenCalledWith(
|
|
357
|
+
'Button: you must provide either visible text content or an accessible name via the aria-label or aria-labelledby properties.'
|
|
358
|
+
);
|
|
359
|
+
});
|
|
360
|
+
|
|
361
|
+
test(`Does not render with class ${styles.modifiers.hamburger} by default`, () => {
|
|
362
|
+
render(<Button aria-label="test" />);
|
|
363
|
+
|
|
364
|
+
expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers.hamburger);
|
|
365
|
+
});
|
|
366
|
+
|
|
367
|
+
test(`Renders with class ${styles.modifiers.hamburger} when isHamburger is true`, () => {
|
|
368
|
+
render(<Button isHamburger isExpanded aria-label="test" />);
|
|
369
|
+
|
|
370
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.hamburger);
|
|
371
|
+
});
|
|
372
|
+
|
|
373
|
+
test('Does not render with hamburgerVariant class when isHamburger is true and hamburgerVariant is not passed', () => {
|
|
374
|
+
render(<Button isHamburger isExpanded aria-label="test" />);
|
|
375
|
+
|
|
376
|
+
expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers.expand);
|
|
377
|
+
expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers.collapse);
|
|
378
|
+
});
|
|
379
|
+
|
|
380
|
+
test('Does not render with hamburgerVariant class when isHamburger is false and hamburgerVariant is passed', () => {
|
|
381
|
+
render(<Button hamburgerVariant="expand" isExpanded aria-label="test" />);
|
|
382
|
+
|
|
383
|
+
expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers.expand);
|
|
384
|
+
expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers.collapse);
|
|
385
|
+
});
|
|
386
|
+
|
|
387
|
+
test(`Renders with class ${styles.modifiers.expand} when isHamburger is true and hamburgerVariant = expand`, () => {
|
|
388
|
+
render(<Button isHamburger hamburgerVariant="expand" isExpanded aria-label="test" />);
|
|
389
|
+
|
|
390
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.expand);
|
|
391
|
+
expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers.collapse);
|
|
392
|
+
});
|
|
393
|
+
|
|
394
|
+
test(`Renders with class ${styles.modifiers.collapse} when isHamburger is true and hamburgerVariant = collapse`, () => {
|
|
395
|
+
render(<Button isHamburger hamburgerVariant="collapse" isExpanded aria-label="test" />);
|
|
396
|
+
|
|
397
|
+
expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers.expand);
|
|
398
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.collapse);
|
|
399
|
+
});
|
|
400
|
+
|
|
401
|
+
test('Does not render custom icon when icon prop and isHamburger are passed', () => {
|
|
402
|
+
render(<Button isHamburger isExpanded aria-label="test" icon={<div>Custom icon</div>} />);
|
|
403
|
+
|
|
404
|
+
expect(screen.queryByText('Custom icon')).not.toBeInTheDocument();
|
|
405
|
+
});
|
|
406
|
+
});
|
|
407
|
+
|
|
408
|
+
describe('Settings button', () => {
|
|
409
|
+
// TODO: Remove isSettings in breaking change to throw error for any button that does not have children or aria name
|
|
410
|
+
test('Throws console error when isSettings is true and neither children, aria-label nor aria-lablledby are passed', () => {
|
|
411
|
+
const consoleError = jest.spyOn(console, 'error').mockImplementation();
|
|
412
|
+
|
|
413
|
+
render(<Button isSettings />);
|
|
414
|
+
|
|
415
|
+
expect(consoleError).toHaveBeenCalledWith(
|
|
416
|
+
'Button: you must provide either visible text content or an accessible name via the aria-label or aria-labelledby properties.'
|
|
417
|
+
);
|
|
418
|
+
});
|
|
419
|
+
|
|
420
|
+
// TODO: Remove isSettings in breaking change to throw error for any button that does not have children or aria name
|
|
421
|
+
test('Does not throw console error when isSettings is true and children is passed', () => {
|
|
422
|
+
const consoleError = jest.spyOn(console, 'error').mockImplementation();
|
|
423
|
+
|
|
424
|
+
render(<Button isSettings>Settings</Button>);
|
|
425
|
+
|
|
426
|
+
expect(consoleError).not.toHaveBeenCalledWith(
|
|
427
|
+
'Button: you must provide either visible text content or an accessible name via the aria-label or aria-labelledby properties.'
|
|
428
|
+
);
|
|
429
|
+
});
|
|
430
|
+
|
|
431
|
+
// TODO: Remove isSettings in breaking change to throw error for any button that does not have children or aria name
|
|
432
|
+
test('Does not throw console error when isSettings is true and aria-label is passed', () => {
|
|
433
|
+
const consoleError = jest.spyOn(console, 'error').mockImplementation();
|
|
434
|
+
|
|
435
|
+
render(<Button isSettings aria-label="Test" />);
|
|
436
|
+
|
|
437
|
+
expect(consoleError).not.toHaveBeenCalledWith(
|
|
438
|
+
'Button: you must provide either visible text content or an accessible name via the aria-label or aria-labelledby properties.'
|
|
439
|
+
);
|
|
440
|
+
});
|
|
441
|
+
|
|
442
|
+
// TODO: Remove isSettings in breaking change to throw error for any button that does not have children or aria name
|
|
443
|
+
test('Does not throw console error when isSettings is true and aria-labelledby is passed', () => {
|
|
444
|
+
const consoleError = jest.spyOn(console, 'error').mockImplementation();
|
|
445
|
+
|
|
446
|
+
render(
|
|
447
|
+
<>
|
|
448
|
+
<div id="label">Test</div>
|
|
449
|
+
<Button isSettings aria-labelledby="label" />
|
|
450
|
+
</>
|
|
451
|
+
);
|
|
452
|
+
|
|
453
|
+
expect(consoleError).not.toHaveBeenCalledWith(
|
|
454
|
+
'Button: you must provide either visible text content or an accessible name via the aria-label or aria-labelledby properties.'
|
|
455
|
+
);
|
|
456
|
+
});
|
|
457
|
+
|
|
458
|
+
test(`Does not render with class ${styles.modifiers.settings} by default`, () => {
|
|
459
|
+
render(<Button aria-label="test" />);
|
|
460
|
+
|
|
461
|
+
expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers.settings);
|
|
462
|
+
});
|
|
463
|
+
|
|
464
|
+
test(`Renders with class ${styles.modifiers.settings} when isSettings is true`, () => {
|
|
465
|
+
render(<Button isSettings aria-label="test" />);
|
|
466
|
+
|
|
467
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.settings);
|
|
468
|
+
});
|
|
469
|
+
|
|
470
|
+
test('Does not render custom icon when icon prop and isSettings are passed', () => {
|
|
471
|
+
render(<Button isSettings aria-label="test" icon={<div>Custom icon</div>} />);
|
|
472
|
+
|
|
473
|
+
expect(screen.queryByText('Custom icon')).not.toBeInTheDocument();
|
|
474
|
+
});
|
|
475
|
+
});
|
|
476
|
+
|
|
477
|
+
describe('Favorite button', () => {
|
|
478
|
+
// TODO: Remove isFavorite in breaking change to throw error for any button that does not have children or aria name
|
|
479
|
+
test('Throws console error when isFavorite is true and neither children, aria-label nor aria-lablledby are passed', () => {
|
|
480
|
+
const consoleError = jest.spyOn(console, 'error').mockImplementation();
|
|
481
|
+
|
|
482
|
+
render(<Button isFavorite />);
|
|
483
|
+
|
|
484
|
+
expect(consoleError).toHaveBeenCalledWith(
|
|
485
|
+
'Button: you must provide either visible text content or an accessible name via the aria-label or aria-labelledby properties.'
|
|
486
|
+
);
|
|
487
|
+
});
|
|
488
|
+
|
|
489
|
+
// TODO: Remove isFavorite in breaking change to throw error for any button that does not have children or aria name
|
|
490
|
+
test('Does not throw console error when isFavorite is true and children is passed', () => {
|
|
491
|
+
const consoleError = jest.spyOn(console, 'error').mockImplementation();
|
|
492
|
+
|
|
493
|
+
render(<Button isFavorite>Settings</Button>);
|
|
494
|
+
|
|
495
|
+
expect(consoleError).not.toHaveBeenCalledWith(
|
|
496
|
+
'Button: you must provide either visible text content or an accessible name via the aria-label or aria-labelledby properties.'
|
|
497
|
+
);
|
|
498
|
+
});
|
|
499
|
+
|
|
500
|
+
// TODO: Remove isFavorite in breaking change to throw error for any button that does not have children or aria name
|
|
501
|
+
test('Does not throw console error when isFavorite is true and aria-label is passed', () => {
|
|
502
|
+
const consoleError = jest.spyOn(console, 'error').mockImplementation();
|
|
503
|
+
|
|
504
|
+
render(<Button isFavorite aria-label="Test" />);
|
|
505
|
+
|
|
506
|
+
expect(consoleError).not.toHaveBeenCalledWith(
|
|
507
|
+
'Button: you must provide either visible text content or an accessible name via the aria-label or aria-labelledby properties.'
|
|
508
|
+
);
|
|
509
|
+
});
|
|
510
|
+
|
|
511
|
+
// TODO: Remove isFavorite in breaking change to throw error for any button that does not have children or aria name
|
|
512
|
+
test('Does not throw console error when isFavorite is true and aria-labelledby is passed', () => {
|
|
513
|
+
const consoleError = jest.spyOn(console, 'error').mockImplementation();
|
|
514
|
+
|
|
515
|
+
render(
|
|
516
|
+
<>
|
|
517
|
+
<div id="label">Test</div>
|
|
518
|
+
<Button isFavorite aria-labelledby="label" />
|
|
519
|
+
</>
|
|
520
|
+
);
|
|
521
|
+
|
|
522
|
+
expect(consoleError).not.toHaveBeenCalledWith(
|
|
523
|
+
'Button: you must provide either visible text content or an accessible name via the aria-label or aria-labelledby properties.'
|
|
524
|
+
);
|
|
525
|
+
});
|
|
526
|
+
|
|
527
|
+
test(`Renders with class ${styles.modifiers.favorite} when isFavorite is true`, () => {
|
|
528
|
+
render(<Button isFavorite />);
|
|
529
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.favorite);
|
|
530
|
+
});
|
|
531
|
+
|
|
532
|
+
test(`Renders with class ${styles.modifiers.favorited} when isFavorite is true and isFavorited is true`, () => {
|
|
533
|
+
render(<Button isFavorite isFavorited />);
|
|
534
|
+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.favorited);
|
|
535
|
+
});
|
|
536
|
+
|
|
537
|
+
test(`Does not render with class ${styles.modifiers.favorite} when isFavorite is false`, () => {
|
|
538
|
+
render(<Button />);
|
|
539
|
+
expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers.favorite);
|
|
540
|
+
});
|
|
541
|
+
|
|
542
|
+
test(`Does not render with class ${styles.modifiers.favorited} when isFavorite is true and isFavorited is false`, () => {
|
|
543
|
+
render(<Button isFavorite />);
|
|
544
|
+
expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers.favorited);
|
|
545
|
+
});
|
|
546
|
+
|
|
547
|
+
test('Overrides icon prop when isFavorite is true', () => {
|
|
548
|
+
render(<Button isFavorite icon={<div>Icon content</div>} />);
|
|
549
|
+
expect(screen.queryByText('Icon content')).not.toBeInTheDocument();
|
|
550
|
+
});
|
|
551
|
+
});
|
|
552
|
+
|
|
247
553
|
test(`Renders basic button`, () => {
|
|
248
554
|
const { asFragment } = render(<Button aria-label="basic button">Basic Button</Button>);
|
|
249
555
|
expect(asFragment()).toMatchSnapshot();
|
|
@@ -5,7 +5,7 @@ exports[`Renders basic button 1`] = `
|
|
|
5
5
|
<button
|
|
6
6
|
aria-label="basic button"
|
|
7
7
|
class="pf-v6-c-button pf-m-primary"
|
|
8
|
-
data-ouia-component-id="OUIA-Generated-Button-primary-
|
|
8
|
+
data-ouia-component-id="OUIA-Generated-Button-primary-66"
|
|
9
9
|
data-ouia-component-type="PF6/Button"
|
|
10
10
|
data-ouia-safe="true"
|
|
11
11
|
type="button"
|