@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
|
@@ -47,7 +47,8 @@ jest.mock('../TreeViewListItem', () => ({
|
|
|
47
47
|
onCollapse,
|
|
48
48
|
parentItem,
|
|
49
49
|
title,
|
|
50
|
-
useMemo
|
|
50
|
+
useMemo,
|
|
51
|
+
hasAnimations
|
|
51
52
|
}) => (
|
|
52
53
|
<div data-testid="TreeViewListItem-mock">
|
|
53
54
|
<p>{`TreeViewListItem action: ${action}`}</p>
|
|
@@ -69,6 +70,7 @@ jest.mock('../TreeViewListItem', () => ({
|
|
|
69
70
|
<p>{`TreeViewListItem parentItem: ${parentItem?.name}`}</p>
|
|
70
71
|
<p>{`TreeViewListItem title: ${title}`}</p>
|
|
71
72
|
<p>{`TreeViewListItem useMemo: ${useMemo}`}</p>
|
|
73
|
+
<p>{`TreeViewListItem hasAnimations: ${hasAnimations}`}</p>
|
|
72
74
|
<button onClick={compareItems}>compareItems clicker</button>
|
|
73
75
|
<button onClick={onCheck}>onCheck clicker</button>
|
|
74
76
|
<button onClick={onSelect}>onSelect clicker</button>
|
|
@@ -286,6 +288,11 @@ test('Passes useMemo to TreeViewListItem', () => {
|
|
|
286
288
|
|
|
287
289
|
expect(screen.getByText('TreeViewListItem useMemo: true')).toBeVisible();
|
|
288
290
|
});
|
|
291
|
+
test('Passes hasAnimations to TreeViewListItem', () => {
|
|
292
|
+
render(<TreeView data={[basicData]} hasAnimations={true} />);
|
|
293
|
+
|
|
294
|
+
expect(screen.getByText('TreeViewListItem hasAnimations: true')).toBeVisible();
|
|
295
|
+
});
|
|
289
296
|
test('Passes data.children to TreeViewListItem', () => {
|
|
290
297
|
render(<TreeView data={[{ ...basicData, children: [{ name: 'Child 1' }] }]} />);
|
|
291
298
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { render, screen } from '@testing-library/react';
|
|
2
2
|
import { TreeViewList } from '../TreeViewList';
|
|
3
|
+
import { TreeViewListItem } from '../TreeViewListItem';
|
|
4
|
+
import { TreeView } from '../TreeView';
|
|
3
5
|
import styles from '@patternfly/react-styles/css/components/TreeView/tree-view';
|
|
4
6
|
|
|
5
7
|
test(`Renders with class ${styles.treeView}__list by default`, () => {
|
|
@@ -84,6 +86,43 @@ test(`Does not render toolbar content when toolbar prop is not passed`, () => {
|
|
|
84
86
|
expect(screen.queryByRole('separator')).not.toBeInTheDocument();
|
|
85
87
|
});
|
|
86
88
|
|
|
89
|
+
test('Renders with inert attribute by default when TreeView is passed hasAnimations', () => {
|
|
90
|
+
const options = [
|
|
91
|
+
{
|
|
92
|
+
name: 'Parent 1',
|
|
93
|
+
id: 'parent-1',
|
|
94
|
+
children: [
|
|
95
|
+
{
|
|
96
|
+
name: 'Child 1',
|
|
97
|
+
id: 'child-1'
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
];
|
|
102
|
+
render(<TreeView hasAnimations data={options} />);
|
|
103
|
+
|
|
104
|
+
expect(screen.getByRole('group')).toHaveAttribute('inert', '');
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
test('Does not render with inert attribute when expanded and TreeView is passed hasAnimations', () => {
|
|
108
|
+
const options = [
|
|
109
|
+
{
|
|
110
|
+
name: 'Parent 1',
|
|
111
|
+
id: 'parent-1',
|
|
112
|
+
defaultExpanded: true,
|
|
113
|
+
children: [
|
|
114
|
+
{
|
|
115
|
+
name: 'Child 1',
|
|
116
|
+
id: 'child-1'
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
];
|
|
121
|
+
render(<TreeView hasAnimations data={options} />);
|
|
122
|
+
|
|
123
|
+
expect(screen.getByRole('group')).not.toHaveAttribute('inert');
|
|
124
|
+
});
|
|
125
|
+
|
|
87
126
|
test('Matches snapshot by default', () => {
|
|
88
127
|
const { asFragment } = render(<TreeViewList>Content</TreeViewList>);
|
|
89
128
|
|
|
@@ -28,7 +28,7 @@ test(`Does not render children by default`, () => {
|
|
|
28
28
|
test(`Renders children if defaultExpanded is true`, () => {
|
|
29
29
|
render(
|
|
30
30
|
<TreeViewListItem defaultExpanded={true} {...requiredProps}>
|
|
31
|
-
Content
|
|
31
|
+
<div>Content</div>
|
|
32
32
|
</TreeViewListItem>
|
|
33
33
|
);
|
|
34
34
|
|
|
@@ -38,7 +38,7 @@ test(`Renders children if defaultExpanded is true`, () => {
|
|
|
38
38
|
test(`Renders children if isExpanded is true`, () => {
|
|
39
39
|
render(
|
|
40
40
|
<TreeViewListItem isExpanded={true} {...requiredProps}>
|
|
41
|
-
Content
|
|
41
|
+
<div>Content</div>
|
|
42
42
|
</TreeViewListItem>
|
|
43
43
|
);
|
|
44
44
|
|
|
@@ -47,7 +47,11 @@ test(`Renders children if isExpanded is true`, () => {
|
|
|
47
47
|
|
|
48
48
|
test(`Renders children when toggle is clicked`, async () => {
|
|
49
49
|
const user = userEvent.setup();
|
|
50
|
-
render(
|
|
50
|
+
render(
|
|
51
|
+
<TreeViewListItem {...requiredProps}>
|
|
52
|
+
<div>Content</div>
|
|
53
|
+
</TreeViewListItem>
|
|
54
|
+
);
|
|
51
55
|
|
|
52
56
|
await user.click(screen.getByRole('button', { name: requiredProps.name }));
|
|
53
57
|
|
|
@@ -264,6 +268,16 @@ test('Renders badge with customBadgeContent when hasBadge and children are passe
|
|
|
264
268
|
expect(screen.getByText(requiredProps.name).nextElementSibling).toHaveTextContent('Custom badge');
|
|
265
269
|
});
|
|
266
270
|
|
|
271
|
+
test('Renders badge with customBadgeContent being number 0 when hasBadge and children are passed', () => {
|
|
272
|
+
render(
|
|
273
|
+
<TreeViewListItem hasBadge customBadgeContent={0} {...requiredProps}>
|
|
274
|
+
<TreeView data={[{ name: 'Parent name 1' }, { name: 'Parent name 2' }]} />
|
|
275
|
+
</TreeViewListItem>
|
|
276
|
+
);
|
|
277
|
+
|
|
278
|
+
expect(screen.getByText(requiredProps.name).nextElementSibling).toHaveTextContent('0');
|
|
279
|
+
});
|
|
280
|
+
|
|
267
281
|
test('Renders badge with customBadgeContent when hasBadge is passed and children are not passed', () => {
|
|
268
282
|
render(<TreeViewListItem hasBadge customBadgeContent="Custom badge" {...requiredProps} />);
|
|
269
283
|
|
|
@@ -54,5 +54,5 @@ export const TreeViewCompact: React.FunctionComponent = () => {
|
|
|
54
54
|
]
|
|
55
55
|
}
|
|
56
56
|
];
|
|
57
|
-
return <TreeView aria-label="Tree View compact example" data={options} variant="compact" />;
|
|
57
|
+
return <TreeView hasAnimations aria-label="Tree View compact example" data={options} variant="compact" />;
|
|
58
58
|
};
|
|
@@ -54,5 +54,12 @@ export const TreeViewCompactNoBackground: React.FunctionComponent = () => {
|
|
|
54
54
|
]
|
|
55
55
|
}
|
|
56
56
|
];
|
|
57
|
-
return
|
|
57
|
+
return (
|
|
58
|
+
<TreeView
|
|
59
|
+
hasAnimations
|
|
60
|
+
aria-label="Tree View compact no background example"
|
|
61
|
+
data={options}
|
|
62
|
+
variant="compactNoBackground"
|
|
63
|
+
/>
|
|
64
|
+
);
|
|
58
65
|
};
|
|
@@ -60,5 +60,5 @@ export const GuidesTreeView: React.FunctionComponent = () => {
|
|
|
60
60
|
children: [{ name: 'Application 5', id: 'example8-App5' }]
|
|
61
61
|
}
|
|
62
62
|
];
|
|
63
|
-
return <TreeView aria-label="Tree View guides example" data={options} hasGuides={true} />;
|
|
63
|
+
return <TreeView hasAnimations aria-label="Tree View guides example" data={options} hasGuides={true} />;
|
|
64
64
|
};
|
|
@@ -194,5 +194,13 @@ export const TreeViewWithCheckboxes: React.FunctionComponent = () => {
|
|
|
194
194
|
}
|
|
195
195
|
};
|
|
196
196
|
const mapped = options.map((item) => mapTree(item));
|
|
197
|
-
return
|
|
197
|
+
return (
|
|
198
|
+
<TreeView
|
|
199
|
+
hasAnimations
|
|
200
|
+
aria-label="Tree View with checkboxes example"
|
|
201
|
+
data={mapped}
|
|
202
|
+
onCheck={onCheck}
|
|
203
|
+
hasCheckboxes
|
|
204
|
+
/>
|
|
205
|
+
);
|
|
198
206
|
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Fragment, useEffect, useRef, useState } from 'react';
|
|
1
|
+
import { Fragment, useEffect, useRef, useState, forwardRef } from 'react';
|
|
2
2
|
import styles from '@patternfly/react-styles/css/components/Truncate/truncate';
|
|
3
3
|
import { css } from '@patternfly/react-styles';
|
|
4
|
-
import { Tooltip, TooltipPosition } from '../Tooltip';
|
|
4
|
+
import { Tooltip, TooltipPosition, TooltipProps } from '../Tooltip';
|
|
5
|
+
import { getReferenceElement } from '../../helpers';
|
|
5
6
|
import { getResizeObserver } from '../../helpers/resizeObserver';
|
|
6
7
|
|
|
7
8
|
export enum TruncatePosition {
|
|
@@ -17,11 +18,15 @@ const truncateStyles = {
|
|
|
17
18
|
|
|
18
19
|
const minWidthCharacters: number = 12;
|
|
19
20
|
|
|
20
|
-
export interface TruncateProps extends React.HTMLProps<HTMLSpanElement> {
|
|
21
|
+
export interface TruncateProps extends Omit<React.HTMLProps<HTMLSpanElement | HTMLAnchorElement>, 'ref'> {
|
|
21
22
|
/** Class to add to outer span */
|
|
22
23
|
className?: string;
|
|
23
24
|
/** Text to truncate */
|
|
24
25
|
content: string;
|
|
26
|
+
/** An HREF to turn the truncate wrapper into an anchor element. For more custom control, use the
|
|
27
|
+
* tooltipProps with a triggerRef property passed in.
|
|
28
|
+
*/
|
|
29
|
+
href?: string;
|
|
25
30
|
/** The number of characters displayed in the second half of a middle truncation. This will be overridden by
|
|
26
31
|
* the maxCharsDisplayed prop.
|
|
27
32
|
*/
|
|
@@ -52,24 +57,24 @@ export interface TruncateProps extends React.HTMLProps<HTMLSpanElement> {
|
|
|
52
57
|
| 'left-end'
|
|
53
58
|
| 'right-start'
|
|
54
59
|
| 'right-end';
|
|
55
|
-
/**
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
refToGetParent?: React.RefObject<any>;
|
|
60
|
+
/** Additional props to pass to the tooltip. */
|
|
61
|
+
tooltipProps?: Omit<TooltipProps, 'content'>;
|
|
62
|
+
/** @hide Forwarded ref */
|
|
63
|
+
innerRef?: React.Ref<any>;
|
|
60
64
|
}
|
|
61
65
|
|
|
62
66
|
const sliceTrailingContent = (str: string, slice: number) => [str.slice(0, str.length - slice), str.slice(-slice)];
|
|
63
67
|
|
|
64
|
-
|
|
68
|
+
const TruncateBase: React.FunctionComponent<TruncateProps> = ({
|
|
65
69
|
className,
|
|
70
|
+
href,
|
|
66
71
|
position = 'end',
|
|
67
72
|
tooltipPosition = 'top',
|
|
73
|
+
tooltipProps,
|
|
68
74
|
trailingNumChars = 7,
|
|
69
75
|
maxCharsDisplayed,
|
|
70
76
|
omissionContent = '\u2026',
|
|
71
77
|
content,
|
|
72
|
-
refToGetParent,
|
|
73
78
|
...props
|
|
74
79
|
}: TruncateProps) => {
|
|
75
80
|
const [isTruncated, setIsTruncated] = useState(true);
|
|
@@ -78,7 +83,8 @@ export const Truncate: React.FunctionComponent<TruncateProps> = ({
|
|
|
78
83
|
const [shouldRenderByMaxChars, setShouldRenderByMaxChars] = useState(maxCharsDisplayed > 0);
|
|
79
84
|
|
|
80
85
|
const textRef = useRef<HTMLElement>(null);
|
|
81
|
-
const
|
|
86
|
+
const defaultSubParentRef = useRef<any>(null);
|
|
87
|
+
const subParentRef = tooltipProps?.triggerRef || defaultSubParentRef;
|
|
82
88
|
const observer = useRef(null);
|
|
83
89
|
|
|
84
90
|
if (maxCharsDisplayed <= 0) {
|
|
@@ -108,11 +114,14 @@ export const Truncate: React.FunctionComponent<TruncateProps> = ({
|
|
|
108
114
|
if (textRef && textRef.current && !textElement) {
|
|
109
115
|
setTextElement(textRef.current);
|
|
110
116
|
}
|
|
117
|
+
}, [textRef, textElement]);
|
|
111
118
|
|
|
112
|
-
|
|
113
|
-
|
|
119
|
+
useEffect(() => {
|
|
120
|
+
const refElement = getReferenceElement(subParentRef);
|
|
121
|
+
if (refElement?.parentElement && !parentElement) {
|
|
122
|
+
setParentElement(refElement.parentElement);
|
|
114
123
|
}
|
|
115
|
-
}, [
|
|
124
|
+
}, [subParentRef, parentElement]);
|
|
116
125
|
|
|
117
126
|
useEffect(() => {
|
|
118
127
|
if (textElement && parentElement && !observer.current && !shouldRenderByMaxChars) {
|
|
@@ -222,25 +231,37 @@ export const Truncate: React.FunctionComponent<TruncateProps> = ({
|
|
|
222
231
|
);
|
|
223
232
|
};
|
|
224
233
|
|
|
234
|
+
const TruncateWrapper = href ? 'a' : 'span';
|
|
225
235
|
const truncateBody = (
|
|
226
|
-
<
|
|
227
|
-
ref={subParentRef}
|
|
236
|
+
<TruncateWrapper
|
|
237
|
+
ref={!tooltipProps?.triggerRef ? (subParentRef as React.MutableRefObject<any>) : null}
|
|
238
|
+
href={href}
|
|
228
239
|
className={css(styles.truncate, shouldRenderByMaxChars && styles.modifiers.fixed, className)}
|
|
229
|
-
{...(isTruncated && { tabIndex: 0 })}
|
|
240
|
+
{...(isTruncated && !href && !tooltipProps?.triggerRef && { tabIndex: 0 })}
|
|
230
241
|
{...props}
|
|
231
242
|
>
|
|
232
243
|
{!shouldRenderByMaxChars ? renderResizeObserverContent() : renderMaxDisplayContent()}
|
|
233
|
-
</
|
|
244
|
+
</TruncateWrapper>
|
|
234
245
|
);
|
|
235
246
|
|
|
236
247
|
return (
|
|
237
248
|
<>
|
|
238
249
|
{isTruncated && (
|
|
239
|
-
<Tooltip
|
|
250
|
+
<Tooltip
|
|
251
|
+
hidden={!isTruncated}
|
|
252
|
+
position={tooltipPosition}
|
|
253
|
+
content={content}
|
|
254
|
+
triggerRef={subParentRef}
|
|
255
|
+
{...tooltipProps}
|
|
256
|
+
/>
|
|
240
257
|
)}
|
|
241
258
|
{truncateBody}
|
|
242
259
|
</>
|
|
243
260
|
);
|
|
244
261
|
};
|
|
245
262
|
|
|
263
|
+
export const Truncate = forwardRef((props: TruncateProps, ref: React.Ref<HTMLAnchorElement | HTMLSpanElement>) => (
|
|
264
|
+
<TruncateBase innerRef={ref} {...props} />
|
|
265
|
+
));
|
|
266
|
+
|
|
246
267
|
Truncate.displayName = 'Truncate';
|
|
@@ -19,6 +19,24 @@ global.ResizeObserver = jest.fn().mockImplementation(() => ({
|
|
|
19
19
|
disconnect: jest.fn()
|
|
20
20
|
}));
|
|
21
21
|
|
|
22
|
+
test('Renders with span wrapper by default', () => {
|
|
23
|
+
render(<Truncate content={''} data-testid="test-id" />);
|
|
24
|
+
|
|
25
|
+
expect(screen.getByTestId('test-id').tagName).toBe('SPAN');
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
test('Renders with anchor wrapper when href prop is passed', () => {
|
|
29
|
+
render(<Truncate content={'Link content'} href="#" />);
|
|
30
|
+
|
|
31
|
+
expect(screen.getByRole('link')).toHaveTextContent('Link content');
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
test('Passes href to anchor when href prop is passed', () => {
|
|
35
|
+
render(<Truncate content={'Link content'} href="#home" />);
|
|
36
|
+
|
|
37
|
+
expect(screen.getByRole('link')).toHaveAttribute('href', '#home');
|
|
38
|
+
});
|
|
39
|
+
|
|
22
40
|
test(`renders with class ${styles.truncate}`, () => {
|
|
23
41
|
render(<Truncate content={''} aria-label="test-id" />);
|
|
24
42
|
|
|
@@ -145,6 +163,12 @@ test('renders tooltip content', () => {
|
|
|
145
163
|
expect(input).toBeVisible();
|
|
146
164
|
});
|
|
147
165
|
|
|
166
|
+
test('Renders with additional tooltip props spread', () => {
|
|
167
|
+
render(<Truncate content={''} tooltipProps={{ distance: 32 }} />);
|
|
168
|
+
|
|
169
|
+
expect(screen.getByTestId('Tooltip-mock')).toHaveAttribute('distance', '32');
|
|
170
|
+
});
|
|
171
|
+
|
|
148
172
|
test('renders with inherited element props spread to the component', () => {
|
|
149
173
|
render(<Truncate content={'Test'} data-testid="test-id" aria-label="labelling-id" />);
|
|
150
174
|
|
|
@@ -52,3 +52,11 @@ Truncating based on a maximum amount of characters will truncate the content at
|
|
|
52
52
|
```ts file="./TruncateMaxChars.tsx"
|
|
53
53
|
|
|
54
54
|
```
|
|
55
|
+
|
|
56
|
+
### With links
|
|
57
|
+
|
|
58
|
+
To truncate link text, you can pass the `href` property in.
|
|
59
|
+
|
|
60
|
+
```ts file="./TruncateLinks.tsx"
|
|
61
|
+
|
|
62
|
+
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Truncate } from '@patternfly/react-core';
|
|
2
|
+
|
|
3
|
+
export const TruncateLinks: React.FunctionComponent = () => {
|
|
4
|
+
const content = 'A very lengthy anchor text content to trigger truncation';
|
|
5
|
+
return (
|
|
6
|
+
<>
|
|
7
|
+
<div>With default width-observing truncation:</div>
|
|
8
|
+
<div className="truncate-example-resize">
|
|
9
|
+
<Truncate href="#" content={content} />
|
|
10
|
+
<Truncate position="start" href="#" content={content} />
|
|
11
|
+
<Truncate position="middle" href="#" content={content} />
|
|
12
|
+
</div>
|
|
13
|
+
<br />
|
|
14
|
+
<div>With max characters truncation:</div>
|
|
15
|
+
<Truncate maxCharsDisplayed={15} href="#" content={content} />
|
|
16
|
+
<br />
|
|
17
|
+
<Truncate maxCharsDisplayed={15} position="start" href="#" content={content} />
|
|
18
|
+
<br />
|
|
19
|
+
<Truncate maxCharsDisplayed={15} position="middle" href="#" content={content} />
|
|
20
|
+
</>
|
|
21
|
+
);
|
|
22
|
+
};
|
package/src/demos/CardDemos.md
CHANGED
|
@@ -14,7 +14,7 @@ import chart_color_yellow_100 from '@patternfly/react-tokens/dist/esm/chart_colo
|
|
|
14
14
|
import chart_color_yellow_300 from '@patternfly/react-tokens/dist/esm/chart_color_yellow_300';
|
|
15
15
|
import chart_color_orange_300 from '@patternfly/react-tokens/dist/esm/chart_color_orange_300';
|
|
16
16
|
import chart_color_red_orange_400 from '@patternfly/react-tokens/dist/esm/chart_color_red_orange_400';
|
|
17
|
-
import
|
|
17
|
+
import cssGridTemplateColumnsMin from '@patternfly/react-tokens/dist/esm/l_gallery_GridTemplateColumns_min';
|
|
18
18
|
import t_global_text_color_subtle from '@patternfly/react-tokens/dist/esm/t_global_text_color_subtle';
|
|
19
19
|
import flex from '@patternfly/react-styles/css/utilities/Flex/flex';
|
|
20
20
|
import text from '@patternfly/react-styles/css/utilities/Text/text';
|
|
@@ -23,7 +23,6 @@ import {
|
|
|
23
23
|
ToolbarItem,
|
|
24
24
|
PageToggleButton
|
|
25
25
|
} from '../components';
|
|
26
|
-
import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
|
|
27
26
|
import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
|
|
28
27
|
import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
|
|
29
28
|
import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
|
|
@@ -132,9 +131,7 @@ export const DashboardHeader: React.FC<DashboardHeaderProps> = ({ notificationBa
|
|
|
132
131
|
<Masthead>
|
|
133
132
|
<MastheadMain>
|
|
134
133
|
<MastheadToggle>
|
|
135
|
-
<PageToggleButton
|
|
136
|
-
<BarsIcon />
|
|
137
|
-
</PageToggleButton>
|
|
134
|
+
<PageToggleButton isHamburgerButton aria-label="Global navigation" />
|
|
138
135
|
</MastheadToggle>
|
|
139
136
|
<MastheadBrand>
|
|
140
137
|
<MastheadLogo>{patternflyLogo}</MastheadLogo>
|
|
@@ -159,7 +156,7 @@ export const DashboardHeader: React.FC<DashboardHeaderProps> = ({ notificationBa
|
|
|
159
156
|
)}
|
|
160
157
|
<ToolbarGroup variant="action-group-plain" visibility={{ default: 'hidden', lg: 'visible' }}>
|
|
161
158
|
<ToolbarItem>
|
|
162
|
-
<Button aria-label="Settings" variant=
|
|
159
|
+
<Button aria-label="Settings" isSettings variant="plain" />
|
|
163
160
|
</ToolbarItem>
|
|
164
161
|
<ToolbarItem>
|
|
165
162
|
<Button aria-label="Help" variant={ButtonVariant.plain} icon={<QuestionCircleIcon />} />
|
|
@@ -49,7 +49,6 @@ import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
|
|
|
49
49
|
import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
|
|
50
50
|
import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
|
|
51
51
|
import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
|
|
52
|
-
import BarsIcon from '@patternfly/react-icons/dist/js/icons/bars-icon';
|
|
53
52
|
import imgAvatar from '@patternfly/react-core/src/components/assets/avatarImg.svg';
|
|
54
53
|
import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon';
|
|
55
54
|
import pfLogo from '@patternfly/react-core/src/demos/assets/pf-logo.PF-HorizontalLogo-Color.svg';
|
|
@@ -193,7 +192,7 @@ export const NotificationDrawerBasic: React.FunctionComponent = () => {
|
|
|
193
192
|
}} /** the settings and help icon buttons are only visible on desktop sizes and replaced by a kebab dropdown for other sizes */
|
|
194
193
|
>
|
|
195
194
|
<ToolbarItem>
|
|
196
|
-
<Button aria-label="Settings actions" variant=
|
|
195
|
+
<Button aria-label="Settings actions" isSettings variant="plain" />
|
|
197
196
|
</ToolbarItem>
|
|
198
197
|
<ToolbarItem>
|
|
199
198
|
<Button aria-label="Help actions" variant={ButtonVariant.plain} icon={<QuestionCircleIcon />} />
|
|
@@ -257,9 +256,7 @@ export const NotificationDrawerBasic: React.FunctionComponent = () => {
|
|
|
257
256
|
<Masthead>
|
|
258
257
|
<MastheadMain>
|
|
259
258
|
<MastheadToggle>
|
|
260
|
-
<PageToggleButton
|
|
261
|
-
<BarsIcon />
|
|
262
|
-
</PageToggleButton>
|
|
259
|
+
<PageToggleButton isHamburgerButton aria-label="Global navigation" />
|
|
263
260
|
</MastheadToggle>
|
|
264
261
|
<MastheadBrand>
|
|
265
262
|
<MastheadLogo>
|
|
@@ -48,7 +48,6 @@ import {
|
|
|
48
48
|
ToolbarContent
|
|
49
49
|
} from '@patternfly/react-core';
|
|
50
50
|
import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
|
|
51
|
-
import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
|
|
52
51
|
import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
|
|
53
52
|
import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon';
|
|
54
53
|
import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
|
|
@@ -243,7 +242,7 @@ export const NotificationDrawerGrouped: React.FunctionComponent = () => {
|
|
|
243
242
|
}} /** the settings and help icon buttons are only visible on desktop sizes and replaced by a kebab dropdown for other sizes */
|
|
244
243
|
>
|
|
245
244
|
<ToolbarItem>
|
|
246
|
-
<Button aria-label="Settings actions" variant=
|
|
245
|
+
<Button aria-label="Settings actions" isSettings variant="plain" />
|
|
247
246
|
</ToolbarItem>
|
|
248
247
|
<ToolbarItem>
|
|
249
248
|
<Button aria-label="Help actions" variant={ButtonVariant.plain} icon={<QuestionCircleIcon />} />
|
|
@@ -307,9 +306,7 @@ export const NotificationDrawerGrouped: React.FunctionComponent = () => {
|
|
|
307
306
|
<Masthead>
|
|
308
307
|
<MastheadMain>
|
|
309
308
|
<MastheadToggle>
|
|
310
|
-
<PageToggleButton
|
|
311
|
-
<BarsIcon />
|
|
312
|
-
</PageToggleButton>
|
|
309
|
+
<PageToggleButton isHamburgerButton aria-label="Global navigation" />
|
|
313
310
|
</MastheadToggle>
|
|
314
311
|
<MastheadBrand>
|
|
315
312
|
<MastheadLogo>
|
package/src/demos/RTL/RTL.md
CHANGED
|
@@ -18,6 +18,7 @@ import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
|
|
|
18
18
|
import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
|
|
19
19
|
import HandPaperIcon from '@patternfly/react-icons/dist/esm/icons/hand-paper-icon';
|
|
20
20
|
import imgAvatar from '@patternfly/react-core/src/components/assets/avatarImg.svg';
|
|
21
|
+
import { rows } from '@patternfly/react-core/dist/esm/demos/sampleDataRTL';
|
|
21
22
|
|
|
22
23
|
import './examples/PaginatedTable.css';
|
|
23
24
|
|