@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
|
@@ -23,25 +23,27 @@ import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-
|
|
|
23
23
|
PatternFly supports several button styling variants to be used in different scenarios as needed. The following button variants can be assigned using the `variant` property.
|
|
24
24
|
|
|
25
25
|
```ts file="./ButtonVariations.tsx"
|
|
26
|
+
|
|
26
27
|
```
|
|
27
28
|
|
|
28
|
-
| Variant
|
|
29
|
-
|
|
|
30
|
-
| Primary
|
|
31
|
-
| Secondary | Secondary buttons are less visually prominant than primary buttons. Use for general actions on a page that require less emphasis than primary buttons.
|
|
32
|
-
| Tertiary
|
|
33
|
-
| Danger
|
|
34
|
-
| Warning
|
|
35
|
-
| Link
|
|
36
|
-
| Plain
|
|
37
|
-
| Control
|
|
38
|
-
| Stateful
|
|
29
|
+
| Variant | Description |
|
|
30
|
+
| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
31
|
+
| Primary | Primary buttons are the most visually prominent variant. Use for the most important call to action. |
|
|
32
|
+
| Secondary | Secondary buttons are less visually prominant than primary buttons. Use for general actions on a page that require less emphasis than primary buttons. |
|
|
33
|
+
| Tertiary | Tertiary buttons are the least visually prominent variant. Use to retain a classic button format with less emphasis than primary or secondary buttons. |
|
|
34
|
+
| Danger | Danger buttons may be used for actions that are potentially destructive or difficult/impossible to undo. Danger is an independent variant, but all button variants may use the the `isDanger` property to apply similar styling. |
|
|
35
|
+
| Warning | Warning buttons may be used for actions that change an important setting or behavior, but not in a destructive or irreversible way. |
|
|
36
|
+
| Link | Links are labeled, but have no background or border. Use for actions that require less emphasis, actions that navigate users to another page within the same window, and/or actions that navigate to external pages in a new window. Links may be placed inline with text using the `isInline` property. |
|
|
37
|
+
| Plain | Plain buttons have no styling and are intended to be labeled with icons. |
|
|
38
|
+
| Control | Control buttons can be labeled with text or icons. Primarily intended to be paired with other controls in an [input group](/components/input-group). |
|
|
39
|
+
| Stateful | Stateful buttons are ideal for displaying the state of notifications. They have 3 states: `read`, `unread` and `attention`. |
|
|
39
40
|
|
|
40
41
|
### Disabled buttons
|
|
41
42
|
|
|
42
43
|
To indicate that an action is currently unavailable, all button variations can be disabled using the `isDisabled` property.
|
|
43
44
|
|
|
44
45
|
```ts file="./ButtonDisabled.tsx"
|
|
46
|
+
|
|
45
47
|
```
|
|
46
48
|
|
|
47
49
|
### Small buttons
|
|
@@ -49,13 +51,15 @@ To indicate that an action is currently unavailable, all button variations can b
|
|
|
49
51
|
To fit into tight spaces, primary, secondary, tertiary, danger, and warning button variations can be made smaller using the `"sm"` value for the `size` property.
|
|
50
52
|
|
|
51
53
|
```ts file="./ButtonSmall.tsx"
|
|
54
|
+
|
|
52
55
|
```
|
|
53
56
|
|
|
54
57
|
### Call to action (CTA) buttons
|
|
55
58
|
|
|
56
|
-
CTA buttons and links direct users to complete an action. Primary, secondary, tertiary, and link button variants can be styled as CTAs using the `"lg"` value for the `size` property.
|
|
59
|
+
CTA buttons and links direct users to complete an action. Primary, secondary, tertiary, and link button variants can be styled as CTAs using the `"lg"` value for the `size` property.
|
|
57
60
|
|
|
58
61
|
```ts file="./ButtonCallToAction.tsx"
|
|
62
|
+
|
|
59
63
|
```
|
|
60
64
|
|
|
61
65
|
### Block level buttons
|
|
@@ -63,13 +67,15 @@ CTA buttons and links direct users to complete an action. Primary, secondary, te
|
|
|
63
67
|
Block level buttons span the full width of the parent element and can be enabled using the `isBlock` property.
|
|
64
68
|
|
|
65
69
|
```ts file="./ButtonBlock.tsx"
|
|
70
|
+
|
|
66
71
|
```
|
|
67
72
|
|
|
68
73
|
### Progress indicators
|
|
69
74
|
|
|
70
|
-
Progress indicators can be added to buttons to identify that an action is in progress after a click.
|
|
75
|
+
Progress indicators can be added to buttons to identify that an action is in progress after a click.
|
|
71
76
|
|
|
72
77
|
```ts file="./ButtonProgress.tsx"
|
|
78
|
+
|
|
73
79
|
```
|
|
74
80
|
|
|
75
81
|
### Links as buttons
|
|
@@ -77,6 +83,7 @@ Progress indicators can be added to buttons to identify that an action is in pro
|
|
|
77
83
|
Buttons that link to another resource may take the form of primary, secondary, tertiary, or link variants. Use `component="a"` and an `href` property to designate the button's target link.
|
|
78
84
|
|
|
79
85
|
```ts file="./ButtonLinks.tsx"
|
|
86
|
+
|
|
80
87
|
```
|
|
81
88
|
|
|
82
89
|
### Inline link as span
|
|
@@ -84,6 +91,7 @@ Buttons that link to another resource may take the form of primary, secondary, t
|
|
|
84
91
|
Inline links should use `component="span"` and the `isInline` property to wrap inline with surrounding text.
|
|
85
92
|
|
|
86
93
|
```ts file="./ButtonInlineSpanLink.tsx"
|
|
94
|
+
|
|
87
95
|
```
|
|
88
96
|
|
|
89
97
|
### Custom component
|
|
@@ -91,6 +99,7 @@ Inline links should use `component="span"` and the `isInline` property to wrap i
|
|
|
91
99
|
In addition to being able to pass a string to the `component` property, you can provide more fine-tuned customization by passing a callback that returns a component.
|
|
92
100
|
|
|
93
101
|
```ts file="./ButtonCustomComponent.tsx"
|
|
102
|
+
|
|
94
103
|
```
|
|
95
104
|
|
|
96
105
|
### Aria-disabled examples
|
|
@@ -102,6 +111,7 @@ Buttons that are aria-disabled are similar to normal disabled buttons, except th
|
|
|
102
111
|
Unlike normal disabled buttons, aria-disabled buttons can support tooltips. Furthermore, aria-disabled buttons can operate as links, which also support tooltips.
|
|
103
112
|
|
|
104
113
|
```ts file="./ButtonAriaDisabled.tsx"
|
|
114
|
+
|
|
105
115
|
```
|
|
106
116
|
|
|
107
117
|
### Button with count
|
|
@@ -109,6 +119,7 @@ Unlike normal disabled buttons, aria-disabled buttons can support tooltips. Furt
|
|
|
109
119
|
Buttons can display a `count` in the form of a badge to indicate some value or number by passing in the `countOptions` prop as a `BadgeCountObject` object. The `BadgeCountObject` object will handle `count`, `isRead`, and `className` props for the badge count.
|
|
110
120
|
|
|
111
121
|
```ts file="./ButtonWithCount.tsx"
|
|
122
|
+
|
|
112
123
|
```
|
|
113
124
|
|
|
114
125
|
### Plain with no padding
|
|
@@ -116,6 +127,7 @@ Buttons can display a `count` in the form of a badge to indicate some value or n
|
|
|
116
127
|
To display a plain/icon button inline with text, use `noPadding` prop in addition to `variant="plain"`.
|
|
117
128
|
|
|
118
129
|
```ts file="./ButtonPlainHasNoPadding.tsx"
|
|
130
|
+
|
|
119
131
|
```
|
|
120
132
|
|
|
121
133
|
### Stateful
|
|
@@ -123,6 +135,37 @@ To display a plain/icon button inline with text, use `noPadding` prop in additio
|
|
|
123
135
|
Stateful buttons are ideal for displaying the state of notifications. Use `variant="stateful"` alongside with the `state` property, which can have these 3 values: `read`, `unread` (used as default) and `attention` (which means unread and requires attention).
|
|
124
136
|
|
|
125
137
|
```ts file="./ButtonStateful.tsx"
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Animated examples
|
|
142
|
+
|
|
143
|
+
The following `<Button>` implementations have animations built into them. When using one of the following implementations, the `icon` property will be overridden due to the animations needing specific icons internally.
|
|
144
|
+
|
|
145
|
+
### Favorite
|
|
146
|
+
|
|
147
|
+
You can pass both the `isFavorite` and `variant="plain"` properties into the `<Button>` to create a favorite button. Passing the `isFavorited` property will determine the current favorited state and update styling accordingly.
|
|
148
|
+
|
|
149
|
+
```ts file = "./ButtonFavorite.tsx"
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Settings
|
|
154
|
+
|
|
155
|
+
For a "settings" button with animations on hover and focus, you can pass the `isSettings` property into either a `variant="plain"` or `variant="control"` button.
|
|
156
|
+
|
|
157
|
+
```ts file="./ButtonSettings.tsx"
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Hamburger
|
|
162
|
+
|
|
163
|
+
For a "hamburger" button (`fa-bars`) that will animate based on the `hamburgerVariant` property, you can pass the `isHamburger` property. This will render the default icon for a hamburger button, and updating the `hamburgerVariant` property with a value of either "expand" or "collapse" will change the icon accordingly with an animation on hover and focus.
|
|
164
|
+
|
|
165
|
+
When used within a PatternFly `<Masthead>`, the animations and icon updates will occur automatically. See one of our [full screen page demos](/components/page/react-demos) to see this in action.
|
|
166
|
+
|
|
167
|
+
```ts file="./ButtonHamburger.tsx"
|
|
168
|
+
|
|
126
169
|
```
|
|
127
170
|
|
|
128
171
|
## Using router links
|
|
@@ -133,4 +176,4 @@ Router links can be used for in-app linking in React environments to prevent pag
|
|
|
133
176
|
<Button variant="link" component={(props: any) => <Link {...props} to="#" />}>
|
|
134
177
|
Router link
|
|
135
178
|
</Button>
|
|
136
|
-
```
|
|
179
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useState } from 'react';
|
|
2
|
+
import { Button } from '@patternfly/react-core';
|
|
3
|
+
|
|
4
|
+
export const ButtonFavorite: React.FunctionComponent = () => {
|
|
5
|
+
const [isFavorited, setIsFavorited] = useState(false);
|
|
6
|
+
const toggleFavorite = () => {
|
|
7
|
+
setIsFavorited(!isFavorited);
|
|
8
|
+
};
|
|
9
|
+
return (
|
|
10
|
+
<Button
|
|
11
|
+
variant="plain"
|
|
12
|
+
aria-label={isFavorited ? 'Favorite example favorited' : 'Favorite example not favorited'}
|
|
13
|
+
isFavorite
|
|
14
|
+
isFavorited={isFavorited}
|
|
15
|
+
onClick={toggleFavorite}
|
|
16
|
+
/>
|
|
17
|
+
);
|
|
18
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Button, Flex } from '@patternfly/react-core';
|
|
2
|
+
|
|
3
|
+
export const ButtonHamburger: React.FunctionComponent = () => (
|
|
4
|
+
<Flex>
|
|
5
|
+
<Button variant="plain" isExpanded={false} aria-label="Hamburger example" isHamburger />
|
|
6
|
+
<Button variant="plain" isExpanded={false} aria-label="Hamburger example" isHamburger hamburgerVariant="expand" />
|
|
7
|
+
<Button variant="plain" isExpanded={true} aria-label="Hamburger example" isHamburger hamburgerVariant="collapse" />
|
|
8
|
+
</Flex>
|
|
9
|
+
);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Button, Flex } from '@patternfly/react-core';
|
|
2
|
+
|
|
3
|
+
export const ButtonSettings: React.FunctionComponent = () => (
|
|
4
|
+
<Flex>
|
|
5
|
+
<Button isSettings variant="plain" aria-label="Settings" />
|
|
6
|
+
<Button isSettings variant="control">
|
|
7
|
+
Settings
|
|
8
|
+
</Button>
|
|
9
|
+
</Flex>
|
|
10
|
+
);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import styles from '@patternfly/react-styles/css/components/Button/button';
|
|
2
|
+
import { css } from '@patternfly/react-styles';
|
|
3
|
+
|
|
4
|
+
// Because this is such a specific icon that requires being wrapped in a pf-v[current version]-c-button element,
|
|
5
|
+
// we don't want to export this to consumers nor include it in the react-icons package as a custom icon.
|
|
6
|
+
export const hamburgerIcon = (
|
|
7
|
+
<svg viewBox="0 0 10 10" className={css(styles.buttonHamburgerIcon, 'pf-v6-svg')} width="1em" height="1em">
|
|
8
|
+
<path className={css(styles.buttonHamburgerIconTop)} d="M1,1 L9,1"></path>
|
|
9
|
+
<path className={css(styles.buttonHamburgerIconMiddle)} d="M1,5 L9,5"></path>
|
|
10
|
+
<path className={css(styles.buttonHamburgerIconArrow)} d="M1,5 L1,5 L1,5"></path>
|
|
11
|
+
<path className={css(styles.buttonHamburgerIconBottom)} d="M9,9 L1,9"></path>
|
|
12
|
+
</svg>
|
|
13
|
+
);
|
|
@@ -131,7 +131,7 @@ You must avoid rendering any other interactive content within the `<Card>` when
|
|
|
131
131
|
|
|
132
132
|
### Single selectable
|
|
133
133
|
|
|
134
|
-
When a group of single selectable cards are related, you must pass the same `name` property to each card's `selectableActions` property.
|
|
134
|
+
When a group of single selectable cards are related, you must pass the same `name` property to each card's `selectableActions` property. For more guidance on selectable cards with hidden input, see our [cards as tiles examples](#cards-as-tiles).
|
|
135
135
|
|
|
136
136
|
```ts file='./CardSingleSelectable.tsx'
|
|
137
137
|
|
|
@@ -5,7 +5,8 @@ export const SelectableCard: React.FunctionComponent = () => {
|
|
|
5
5
|
const [isChecked1, setIsChecked1] = useState(false);
|
|
6
6
|
const [isChecked2, setIsChecked2] = useState(false);
|
|
7
7
|
const [isChecked3, setIsChecked3] = useState(false);
|
|
8
|
-
const [isSecondary, setIsSecondary] = useState
|
|
8
|
+
const [isSecondary, setIsSecondary] = useState(false);
|
|
9
|
+
const [displayCheckbox, setDisplayCheckbox] = useState(false);
|
|
9
10
|
|
|
10
11
|
const id1 = 'selectable-card-input-1';
|
|
11
12
|
const id2 = 'selectable-card-input-2';
|
|
@@ -31,6 +32,10 @@ export const SelectableCard: React.FunctionComponent = () => {
|
|
|
31
32
|
setIsSecondary(checked);
|
|
32
33
|
};
|
|
33
34
|
|
|
35
|
+
const toggleHide = (checked: boolean) => {
|
|
36
|
+
setDisplayCheckbox(checked);
|
|
37
|
+
};
|
|
38
|
+
|
|
34
39
|
return (
|
|
35
40
|
<>
|
|
36
41
|
<Checkbox
|
|
@@ -40,68 +45,76 @@ export const SelectableCard: React.FunctionComponent = () => {
|
|
|
40
45
|
id="toggle-variant-selectable"
|
|
41
46
|
name="toggle-variant"
|
|
42
47
|
/>
|
|
43
|
-
<
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
<Checkbox
|
|
49
|
+
label="Hide checkbox"
|
|
50
|
+
isChecked={displayCheckbox}
|
|
51
|
+
onChange={(_event, checked) => toggleHide(checked)}
|
|
52
|
+
id="selectable-toggle-hide-checkbox"
|
|
53
|
+
name="toggle-hide"
|
|
54
|
+
/>
|
|
55
|
+
<Gallery hasGutter style={{ marginTop: '15px' }}>
|
|
56
|
+
<Card
|
|
57
|
+
id="selectable-card-example-1"
|
|
58
|
+
isSelectable
|
|
59
|
+
isSelected={isChecked1}
|
|
60
|
+
variant={isSecondary ? 'secondary' : 'default'}
|
|
61
|
+
>
|
|
62
|
+
<CardHeader
|
|
63
|
+
selectableActions={{
|
|
64
|
+
selectableActionId: id1,
|
|
65
|
+
selectableActionAriaLabelledby: 'selectable-card-example-1',
|
|
66
|
+
name: id1,
|
|
67
|
+
onChange,
|
|
68
|
+
hasNoOffset: true,
|
|
69
|
+
isHidden: displayCheckbox
|
|
70
|
+
}}
|
|
50
71
|
>
|
|
51
|
-
<
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
72
|
+
<CardTitle>First card</CardTitle>
|
|
73
|
+
</CardHeader>
|
|
74
|
+
<CardBody>This card is selectable.</CardBody>
|
|
75
|
+
</Card>
|
|
76
|
+
<Card
|
|
77
|
+
id="selectable-card-example-2"
|
|
78
|
+
isSelectable
|
|
79
|
+
isSelected={isChecked2}
|
|
80
|
+
variant={isSecondary ? 'secondary' : 'default'}
|
|
81
|
+
>
|
|
82
|
+
<CardHeader
|
|
83
|
+
selectableActions={{
|
|
84
|
+
selectableActionId: id2,
|
|
85
|
+
selectableActionAriaLabelledby: 'selectable-card-example-2',
|
|
86
|
+
name: id2,
|
|
87
|
+
onChange,
|
|
88
|
+
hasNoOffset: true,
|
|
89
|
+
isHidden: displayCheckbox
|
|
90
|
+
}}
|
|
69
91
|
>
|
|
70
|
-
<
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
92
|
+
<CardTitle>Second card</CardTitle>
|
|
93
|
+
</CardHeader>
|
|
94
|
+
<CardBody>This card is selectable.</CardBody>
|
|
95
|
+
</Card>
|
|
96
|
+
<Card
|
|
97
|
+
id="selectable-card-example-3"
|
|
98
|
+
isSelectable
|
|
99
|
+
isDisabled
|
|
100
|
+
isSelected={isChecked3}
|
|
101
|
+
variant={isSecondary ? 'secondary' : 'default'}
|
|
102
|
+
>
|
|
103
|
+
<CardHeader
|
|
104
|
+
selectableActions={{
|
|
105
|
+
selectableActionId: id3,
|
|
106
|
+
selectableActionAriaLabelledby: 'selectable-card-example-3',
|
|
107
|
+
name: id3,
|
|
108
|
+
onChange,
|
|
109
|
+
hasNoOffset: true,
|
|
110
|
+
isHidden: displayCheckbox
|
|
111
|
+
}}
|
|
89
112
|
>
|
|
90
|
-
<
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
onChange,
|
|
96
|
-
hasNoOffset: true
|
|
97
|
-
}}
|
|
98
|
-
>
|
|
99
|
-
<CardTitle>Third card</CardTitle>
|
|
100
|
-
</CardHeader>
|
|
101
|
-
<CardBody>This card is selectable but disabled.</CardBody>
|
|
102
|
-
</Card>
|
|
103
|
-
</Gallery>
|
|
104
|
-
</div>
|
|
113
|
+
<CardTitle>Third card</CardTitle>
|
|
114
|
+
</CardHeader>
|
|
115
|
+
<CardBody>This card is selectable but disabled.</CardBody>
|
|
116
|
+
</Card>
|
|
117
|
+
</Gallery>
|
|
105
118
|
</>
|
|
106
119
|
);
|
|
107
120
|
};
|
|
@@ -1,63 +1,80 @@
|
|
|
1
1
|
import { useState } from 'react';
|
|
2
|
-
import { Card, CardHeader, CardTitle, CardBody, Gallery } from '@patternfly/react-core';
|
|
2
|
+
import { Card, CardHeader, CardTitle, CardBody, Gallery, Checkbox } from '@patternfly/react-core';
|
|
3
3
|
|
|
4
4
|
export const SingleSelectableCard: React.FunctionComponent = () => {
|
|
5
5
|
const [isChecked, setIsChecked] = useState('');
|
|
6
6
|
const id1 = 'single-selectable-card-input-1';
|
|
7
7
|
const id2 = 'single-selectable-card-input-2';
|
|
8
8
|
const id3 = 'single-selectable-card-input-3';
|
|
9
|
+
const [displayRadioButton, setDisplayRadioButton] = useState(false);
|
|
9
10
|
|
|
10
11
|
const onChange = (event: React.FormEvent<HTMLInputElement>) => {
|
|
11
12
|
setIsChecked(event.currentTarget.id);
|
|
12
13
|
};
|
|
13
14
|
|
|
15
|
+
const toggleHide = (checked: boolean) => {
|
|
16
|
+
setDisplayRadioButton(checked);
|
|
17
|
+
};
|
|
18
|
+
|
|
14
19
|
return (
|
|
15
|
-
|
|
16
|
-
<
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
>
|
|
57
|
-
<
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
20
|
+
<>
|
|
21
|
+
<Checkbox
|
|
22
|
+
label="Hide radio button"
|
|
23
|
+
isChecked={displayRadioButton}
|
|
24
|
+
onChange={(_event, checked) => toggleHide(checked)}
|
|
25
|
+
id="single-select-toggle-hide-radio-button"
|
|
26
|
+
name="toggle-hide"
|
|
27
|
+
/>
|
|
28
|
+
<Gallery hasGutter style={{ marginTop: '15px' }}>
|
|
29
|
+
<Card id="single-selectable-card-example-1" isSelectable isSelected={isChecked === id1}>
|
|
30
|
+
<CardHeader
|
|
31
|
+
selectableActions={{
|
|
32
|
+
selectableActionId: id1,
|
|
33
|
+
selectableActionAriaLabelledby: 'single-selectable-card-example-1',
|
|
34
|
+
name: 'single-selectable-card-example',
|
|
35
|
+
variant: 'single',
|
|
36
|
+
onChange,
|
|
37
|
+
hasNoOffset: true,
|
|
38
|
+
isHidden: displayRadioButton
|
|
39
|
+
}}
|
|
40
|
+
>
|
|
41
|
+
<CardTitle>First card</CardTitle>
|
|
42
|
+
</CardHeader>
|
|
43
|
+
<CardBody>This card is single selectable.</CardBody>
|
|
44
|
+
</Card>
|
|
45
|
+
<Card id="single-selectable-card-example-2" isSelectable isSelected={isChecked === id2}>
|
|
46
|
+
<CardHeader
|
|
47
|
+
selectableActions={{
|
|
48
|
+
selectableActionId: id2,
|
|
49
|
+
selectableActionAriaLabelledby: 'single-selectable-card-example-2',
|
|
50
|
+
name: 'single-selectable-card-example',
|
|
51
|
+
variant: 'single',
|
|
52
|
+
onChange,
|
|
53
|
+
hasNoOffset: true,
|
|
54
|
+
isHidden: displayRadioButton
|
|
55
|
+
}}
|
|
56
|
+
>
|
|
57
|
+
<CardTitle>Second card</CardTitle>
|
|
58
|
+
</CardHeader>
|
|
59
|
+
<CardBody>This card is single selectable.</CardBody>
|
|
60
|
+
</Card>
|
|
61
|
+
<Card id="single-selectable-card-example-3" isSelectable isDisabled isSelected={isChecked === id3}>
|
|
62
|
+
<CardHeader
|
|
63
|
+
selectableActions={{
|
|
64
|
+
selectableActionId: id3,
|
|
65
|
+
selectableActionAriaLabelledby: 'single-selectable-card-example-3',
|
|
66
|
+
name: 'single-selectable-card-example',
|
|
67
|
+
variant: 'single',
|
|
68
|
+
onChange,
|
|
69
|
+
hasNoOffset: true,
|
|
70
|
+
isHidden: displayRadioButton
|
|
71
|
+
}}
|
|
72
|
+
>
|
|
73
|
+
<CardTitle>Third card</CardTitle>
|
|
74
|
+
</CardHeader>
|
|
75
|
+
<CardBody>This card is single selectable but disabled.</CardBody>
|
|
76
|
+
</Card>
|
|
77
|
+
</Gallery>
|
|
78
|
+
</>
|
|
62
79
|
);
|
|
63
80
|
};
|
|
@@ -204,7 +204,7 @@ class ClipboardCopy extends Component<ClipboardCopyProps, ClipboardCopyState> {
|
|
|
204
204
|
const shouldTruncate = variant === ClipboardCopyVariant.inlineCompact && truncation;
|
|
205
205
|
const inlineCompactContent = shouldTruncate ? (
|
|
206
206
|
<Truncate
|
|
207
|
-
|
|
207
|
+
tooltipProps={{ triggerRef: this.clipboardRef }}
|
|
208
208
|
content={copyableText}
|
|
209
209
|
{...(typeof truncation === 'object' && truncation)}
|
|
210
210
|
/>
|
|
@@ -223,6 +223,7 @@ class ClipboardCopy extends Component<ClipboardCopyProps, ClipboardCopyState> {
|
|
|
223
223
|
className
|
|
224
224
|
)}
|
|
225
225
|
ref={this.clipboardRef}
|
|
226
|
+
{...(shouldTruncate && { tabIndex: 0 })}
|
|
226
227
|
{...divProps}
|
|
227
228
|
{...getOUIAProps(ClipboardCopy.displayName, ouiaId, ouiaSafe)}
|
|
228
229
|
>
|
|
@@ -27,7 +27,7 @@ export const ClipboardCopyToggle: React.FunctionComponent<ClipboardCopyTogglePro
|
|
|
27
27
|
onClick={onClick}
|
|
28
28
|
id={id}
|
|
29
29
|
aria-labelledby={`${id} ${textId}`}
|
|
30
|
-
aria-controls={contentId}
|
|
30
|
+
aria-controls={isExpanded ? contentId : undefined}
|
|
31
31
|
aria-expanded={isExpanded}
|
|
32
32
|
{...props}
|
|
33
33
|
icon={
|
|
@@ -44,9 +44,15 @@ test('Renders with aria-labelledby concatenated from id and textId props', () =>
|
|
|
44
44
|
expect(screen.getByRole('button')).toHaveAccessibleName('Toggle content Test content');
|
|
45
45
|
});
|
|
46
46
|
|
|
47
|
-
test('
|
|
47
|
+
test('Does not render with aria-controls when isExpanded is false', () => {
|
|
48
48
|
render(<ClipboardCopyToggle {...requiredProps} />);
|
|
49
49
|
|
|
50
|
+
expect(screen.getByRole('button')).not.toHaveAttribute('aria-controls');
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
test('Renders with aria-controls with passed in contentId prop when isExpanded is true', () => {
|
|
54
|
+
render(<ClipboardCopyToggle isExpanded {...requiredProps} />);
|
|
55
|
+
|
|
50
56
|
expect(screen.getByRole('button')).toHaveAttribute('aria-controls', requiredProps.contentId);
|
|
51
57
|
});
|
|
52
58
|
|
|
@@ -17,13 +17,19 @@ export interface DualListSelectorProps {
|
|
|
17
17
|
isTree?: boolean;
|
|
18
18
|
/** Content to be rendered in the dual list selector. */
|
|
19
19
|
children?: React.ReactNode;
|
|
20
|
+
/** Flag indicating whether a tree dual list selector has animations. This will always render
|
|
21
|
+
* nested dual list selector items rather than dynamically rendering them. This prop will be removed in
|
|
22
|
+
* the next breaking change release in favor of defaulting to always-rendered items.
|
|
23
|
+
*/
|
|
24
|
+
hasAnimations?: boolean;
|
|
20
25
|
}
|
|
21
26
|
|
|
22
27
|
class DualListSelector extends Component<DualListSelectorProps> {
|
|
23
28
|
static displayName = 'DualListSelector';
|
|
24
29
|
static defaultProps: PickOptional<DualListSelectorProps> = {
|
|
25
30
|
children: '',
|
|
26
|
-
isTree: false
|
|
31
|
+
isTree: false,
|
|
32
|
+
hasAnimations: false
|
|
27
33
|
};
|
|
28
34
|
|
|
29
35
|
constructor(props: DualListSelectorProps) {
|
|
@@ -31,13 +37,21 @@ class DualListSelector extends Component<DualListSelectorProps> {
|
|
|
31
37
|
}
|
|
32
38
|
|
|
33
39
|
render() {
|
|
34
|
-
const { className, children, id, isTree, ...props } = this.props;
|
|
40
|
+
const { className, children, id, isTree, hasAnimations, ...props } = this.props;
|
|
35
41
|
|
|
36
42
|
return (
|
|
37
|
-
<DualListSelectorContext.Provider value={{ isTree }}>
|
|
43
|
+
<DualListSelectorContext.Provider value={{ isTree, hasAnimations }}>
|
|
38
44
|
<GenerateId>
|
|
39
45
|
{(randomId) => (
|
|
40
|
-
<div
|
|
46
|
+
<div
|
|
47
|
+
className={css(
|
|
48
|
+
styles.dualListSelector,
|
|
49
|
+
hasAnimations && isTree && styles.modifiers.animateExpand,
|
|
50
|
+
className
|
|
51
|
+
)}
|
|
52
|
+
id={id || randomId}
|
|
53
|
+
{...props}
|
|
54
|
+
>
|
|
41
55
|
{children}
|
|
42
56
|
</div>
|
|
43
57
|
)}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { createContext } from 'react';
|
|
2
2
|
export const DualListSelectorContext = createContext<{
|
|
3
3
|
isTree?: boolean;
|
|
4
|
-
|
|
4
|
+
hasAnimations?: boolean;
|
|
5
|
+
}>({ isTree: false, hasAnimations: false });
|
|
5
6
|
|
|
6
7
|
export const DualListSelectorListContext = createContext<{
|
|
7
8
|
setFocusedOption?: (id: string) => void;
|