@patternfly/react-core 5.0.0-alpha.106 → 5.0.0-alpha.108
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 +16 -0
- package/dist/esm/components/AboutModal/package.json +1 -1
- package/dist/esm/components/Accordion/package.json +1 -1
- package/dist/esm/components/ActionList/package.json +1 -1
- package/dist/esm/components/Alert/package.json +1 -1
- package/dist/esm/components/Avatar/package.json +1 -1
- package/dist/esm/components/BackToTop/package.json +1 -1
- package/dist/esm/components/Backdrop/package.json +1 -1
- package/dist/esm/components/BackgroundImage/package.json +1 -1
- package/dist/esm/components/Badge/package.json +1 -1
- package/dist/esm/components/Banner/package.json +1 -1
- package/dist/esm/components/Brand/package.json +1 -1
- package/dist/esm/components/Breadcrumb/package.json +1 -1
- package/dist/esm/components/Button/package.json +1 -1
- package/dist/esm/components/CalendarMonth/package.json +1 -1
- package/dist/esm/components/Card/package.json +1 -1
- package/dist/esm/components/Checkbox/package.json +1 -1
- package/dist/esm/components/Chip/package.json +1 -1
- package/dist/esm/components/ClipboardCopy/package.json +1 -1
- package/dist/esm/components/CodeBlock/package.json +1 -1
- package/dist/esm/components/DataList/package.json +1 -1
- package/dist/esm/components/DatePicker/package.json +1 -1
- package/dist/esm/components/DescriptionList/package.json +1 -1
- package/dist/esm/components/Divider/package.json +1 -1
- package/dist/esm/components/DragDrop/package.json +1 -1
- package/dist/esm/components/Drawer/package.json +1 -1
- package/dist/esm/components/Dropdown/Dropdown.d.ts +11 -3
- package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.js +11 -5
- package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/Dropdown/package.json +1 -1
- package/dist/esm/components/DualListSelector/package.json +1 -1
- package/dist/esm/components/EmptyState/package.json +1 -1
- package/dist/esm/components/ExpandableSection/package.json +1 -1
- package/dist/esm/components/FileUpload/package.json +1 -1
- package/dist/esm/components/Form/package.json +1 -1
- package/dist/esm/components/FormSelect/package.json +1 -1
- package/dist/esm/components/HelperText/package.json +1 -1
- package/dist/esm/components/Hint/package.json +1 -1
- package/dist/esm/components/Icon/package.json +1 -1
- package/dist/esm/components/InputGroup/package.json +1 -1
- package/dist/esm/components/JumpLinks/package.json +1 -1
- package/dist/esm/components/Label/package.json +1 -1
- package/dist/esm/components/List/package.json +1 -1
- package/dist/esm/components/LoginPage/package.json +1 -1
- package/dist/esm/components/Masthead/package.json +1 -1
- package/dist/esm/components/Menu/MenuItem.d.ts +1 -1
- package/dist/esm/components/Menu/MenuItem.d.ts.map +1 -1
- package/dist/esm/components/Menu/package.json +1 -1
- package/dist/esm/components/MenuToggle/package.json +1 -1
- package/dist/esm/components/Modal/package.json +1 -1
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadStatusItem.d.ts +1 -1
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadStatusItem.d.ts.map +1 -1
- package/dist/esm/components/MultipleFileUpload/package.json +1 -1
- package/dist/esm/components/Nav/package.json +1 -1
- package/dist/esm/components/NotificationBadge/package.json +1 -1
- package/dist/esm/components/NotificationDrawer/package.json +1 -1
- package/dist/esm/components/NumberInput/package.json +1 -1
- package/dist/esm/components/OverflowMenu/package.json +1 -1
- package/dist/esm/components/Page/package.json +1 -1
- package/dist/esm/components/Pagination/package.json +1 -1
- package/dist/esm/components/Panel/package.json +1 -1
- package/dist/esm/components/Popover/package.json +1 -1
- package/dist/esm/components/Progress/Progress.d.ts +1 -1
- package/dist/esm/components/Progress/ProgressContainer.d.ts +1 -1
- package/dist/esm/components/Progress/package.json +1 -1
- package/dist/esm/components/ProgressStepper/package.json +1 -1
- package/dist/esm/components/Radio/package.json +1 -1
- package/dist/esm/components/SearchInput/package.json +1 -1
- package/dist/esm/components/Select/Select.d.ts +31 -5
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +16 -10
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Select/SelectGroup.d.ts +3 -0
- package/dist/esm/components/Select/SelectGroup.d.ts.map +1 -1
- package/dist/esm/components/Select/SelectGroup.js.map +1 -1
- package/dist/esm/components/Select/SelectOption.d.ts +14 -1
- package/dist/esm/components/Select/SelectOption.d.ts.map +1 -1
- package/dist/esm/components/Select/SelectOption.js +4 -3
- package/dist/esm/components/Select/SelectOption.js.map +1 -1
- package/dist/esm/components/Select/package.json +1 -1
- package/dist/esm/components/Sidebar/package.json +1 -1
- package/dist/esm/components/SimpleList/package.json +1 -1
- package/dist/esm/components/Skeleton/package.json +1 -1
- package/dist/esm/components/SkipToContent/package.json +1 -1
- package/dist/esm/components/Slider/package.json +1 -1
- package/dist/esm/components/Spinner/package.json +1 -1
- package/dist/esm/components/Switch/package.json +1 -1
- package/dist/esm/components/Tabs/Tab.d.ts +3 -3
- package/dist/esm/components/Tabs/Tab.d.ts.map +1 -1
- package/dist/esm/components/Tabs/Tabs.d.ts +1 -1
- package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/esm/components/Tabs/package.json +1 -1
- package/dist/esm/components/Text/package.json +1 -1
- package/dist/esm/components/TextArea/package.json +1 -1
- package/dist/esm/components/TextInput/package.json +1 -1
- package/dist/esm/components/TextInputGroup/package.json +1 -1
- package/dist/esm/components/Tile/package.json +1 -1
- package/dist/esm/components/TimePicker/package.json +1 -1
- package/dist/esm/components/Timestamp/package.json +1 -1
- package/dist/esm/components/Title/package.json +1 -1
- package/dist/esm/components/ToggleGroup/package.json +1 -1
- package/dist/esm/components/Toolbar/package.json +1 -1
- package/dist/esm/components/Tooltip/package.json +1 -1
- package/dist/esm/components/TreeView/package.json +1 -1
- package/dist/esm/components/Truncate/package.json +1 -1
- package/dist/esm/components/Wizard/hooks/package.json +1 -1
- package/dist/esm/components/Wizard/package.json +1 -1
- package/dist/esm/components/package.json +1 -1
- package/dist/esm/deprecated/components/ApplicationLauncher/package.json +1 -1
- package/dist/esm/deprecated/components/ContextSelector/package.json +1 -1
- package/dist/esm/deprecated/components/Dropdown/DropdownToggleCheckbox.d.ts +3 -3
- package/dist/esm/deprecated/components/Dropdown/DropdownToggleCheckbox.d.ts.map +1 -1
- package/dist/esm/deprecated/components/Dropdown/package.json +1 -1
- package/dist/esm/deprecated/components/OptionsMenu/package.json +1 -1
- package/dist/esm/deprecated/components/PageHeader/package.json +1 -1
- package/dist/esm/deprecated/components/Select/package.json +1 -1
- package/dist/esm/deprecated/components/Wizard/package.json +1 -1
- package/dist/esm/deprecated/components/package.json +1 -1
- package/dist/esm/deprecated/package.json +1 -1
- package/dist/esm/helpers/Popper/Popper.d.ts +1 -1
- package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
- package/dist/esm/helpers/Popper/thirdparty/popper-core/package.json +1 -1
- package/dist/esm/helpers/package.json +1 -1
- package/dist/esm/layouts/Bullseye/package.json +1 -1
- package/dist/esm/layouts/Flex/Flex.d.ts +27 -0
- package/dist/esm/layouts/Flex/Flex.d.ts.map +1 -1
- package/dist/esm/layouts/Flex/Flex.js +2 -2
- package/dist/esm/layouts/Flex/Flex.js.map +1 -1
- package/dist/esm/layouts/Flex/package.json +1 -1
- package/dist/esm/layouts/Gallery/package.json +1 -1
- package/dist/esm/layouts/Grid/package.json +1 -1
- package/dist/esm/layouts/Level/package.json +1 -1
- package/dist/esm/layouts/Split/package.json +1 -1
- package/dist/esm/layouts/Stack/package.json +1 -1
- package/dist/esm/layouts/package.json +1 -1
- package/dist/esm/next/components/package.json +1 -1
- package/dist/esm/next/package.json +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/js/components/AboutModal/package.json +1 -1
- package/dist/js/components/Accordion/package.json +1 -1
- package/dist/js/components/ActionList/package.json +1 -1
- package/dist/js/components/Alert/package.json +1 -1
- package/dist/js/components/Avatar/package.json +1 -1
- package/dist/js/components/BackToTop/package.json +1 -1
- package/dist/js/components/Backdrop/package.json +1 -1
- package/dist/js/components/BackgroundImage/package.json +1 -1
- package/dist/js/components/Badge/package.json +1 -1
- package/dist/js/components/Banner/package.json +1 -1
- package/dist/js/components/Brand/package.json +1 -1
- package/dist/js/components/Breadcrumb/package.json +1 -1
- package/dist/js/components/Button/package.json +1 -1
- package/dist/js/components/CalendarMonth/package.json +1 -1
- package/dist/js/components/Card/package.json +1 -1
- package/dist/js/components/Checkbox/package.json +1 -1
- package/dist/js/components/Chip/package.json +1 -1
- package/dist/js/components/ClipboardCopy/package.json +1 -1
- package/dist/js/components/CodeBlock/package.json +1 -1
- package/dist/js/components/DataList/package.json +1 -1
- package/dist/js/components/DatePicker/package.json +1 -1
- package/dist/js/components/DescriptionList/package.json +1 -1
- package/dist/js/components/Divider/package.json +1 -1
- package/dist/js/components/DragDrop/package.json +1 -1
- package/dist/js/components/Drawer/package.json +1 -1
- package/dist/js/components/Dropdown/Dropdown.d.ts +11 -3
- package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.js +11 -5
- package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/js/components/Dropdown/package.json +1 -1
- package/dist/js/components/DualListSelector/package.json +1 -1
- package/dist/js/components/EmptyState/package.json +1 -1
- package/dist/js/components/ExpandableSection/package.json +1 -1
- package/dist/js/components/FileUpload/package.json +1 -1
- package/dist/js/components/Form/package.json +1 -1
- package/dist/js/components/FormSelect/package.json +1 -1
- package/dist/js/components/HelperText/package.json +1 -1
- package/dist/js/components/Hint/package.json +1 -1
- package/dist/js/components/Icon/package.json +1 -1
- package/dist/js/components/InputGroup/package.json +1 -1
- package/dist/js/components/JumpLinks/package.json +1 -1
- package/dist/js/components/Label/package.json +1 -1
- package/dist/js/components/List/package.json +1 -1
- package/dist/js/components/LoginPage/package.json +1 -1
- package/dist/js/components/Masthead/package.json +1 -1
- package/dist/js/components/Menu/MenuItem.d.ts +1 -1
- package/dist/js/components/Menu/MenuItem.d.ts.map +1 -1
- package/dist/js/components/Menu/package.json +1 -1
- package/dist/js/components/MenuToggle/package.json +1 -1
- package/dist/js/components/Modal/package.json +1 -1
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadStatusItem.d.ts +1 -1
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadStatusItem.d.ts.map +1 -1
- package/dist/js/components/MultipleFileUpload/package.json +1 -1
- package/dist/js/components/Nav/package.json +1 -1
- package/dist/js/components/NotificationBadge/package.json +1 -1
- package/dist/js/components/NotificationDrawer/package.json +1 -1
- package/dist/js/components/NumberInput/package.json +1 -1
- package/dist/js/components/OverflowMenu/package.json +1 -1
- package/dist/js/components/Page/package.json +1 -1
- package/dist/js/components/Pagination/package.json +1 -1
- package/dist/js/components/Panel/package.json +1 -1
- package/dist/js/components/Popover/package.json +1 -1
- package/dist/js/components/Progress/Progress.d.ts +1 -1
- package/dist/js/components/Progress/ProgressContainer.d.ts +1 -1
- package/dist/js/components/Progress/package.json +1 -1
- package/dist/js/components/ProgressStepper/package.json +1 -1
- package/dist/js/components/Radio/package.json +1 -1
- package/dist/js/components/SearchInput/package.json +1 -1
- package/dist/js/components/Select/Select.d.ts +31 -5
- package/dist/js/components/Select/Select.d.ts.map +1 -1
- package/dist/js/components/Select/Select.js +16 -10
- package/dist/js/components/Select/Select.js.map +1 -1
- package/dist/js/components/Select/SelectGroup.d.ts +3 -0
- package/dist/js/components/Select/SelectGroup.d.ts.map +1 -1
- package/dist/js/components/Select/SelectGroup.js.map +1 -1
- package/dist/js/components/Select/SelectOption.d.ts +14 -1
- package/dist/js/components/Select/SelectOption.d.ts.map +1 -1
- package/dist/js/components/Select/SelectOption.js +4 -4
- package/dist/js/components/Select/SelectOption.js.map +1 -1
- package/dist/js/components/Select/package.json +1 -1
- package/dist/js/components/Sidebar/package.json +1 -1
- package/dist/js/components/SimpleList/package.json +1 -1
- package/dist/js/components/Skeleton/package.json +1 -1
- package/dist/js/components/SkipToContent/package.json +1 -1
- package/dist/js/components/Slider/package.json +1 -1
- package/dist/js/components/Spinner/package.json +1 -1
- package/dist/js/components/Switch/package.json +1 -1
- package/dist/js/components/Tabs/Tab.d.ts +3 -3
- package/dist/js/components/Tabs/Tab.d.ts.map +1 -1
- package/dist/js/components/Tabs/Tabs.d.ts +1 -1
- package/dist/js/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/js/components/Tabs/package.json +1 -1
- package/dist/js/components/Text/package.json +1 -1
- package/dist/js/components/TextArea/package.json +1 -1
- package/dist/js/components/TextInput/package.json +1 -1
- package/dist/js/components/TextInputGroup/package.json +1 -1
- package/dist/js/components/Tile/package.json +1 -1
- package/dist/js/components/TimePicker/package.json +1 -1
- package/dist/js/components/Timestamp/package.json +1 -1
- package/dist/js/components/Title/package.json +1 -1
- package/dist/js/components/ToggleGroup/package.json +1 -1
- package/dist/js/components/Toolbar/package.json +1 -1
- package/dist/js/components/Tooltip/package.json +1 -1
- package/dist/js/components/TreeView/package.json +1 -1
- package/dist/js/components/Truncate/package.json +1 -1
- package/dist/js/components/Wizard/hooks/package.json +1 -1
- package/dist/js/components/Wizard/package.json +1 -1
- package/dist/js/components/package.json +1 -1
- package/dist/js/deprecated/components/ApplicationLauncher/package.json +1 -1
- package/dist/js/deprecated/components/ContextSelector/package.json +1 -1
- package/dist/js/deprecated/components/Dropdown/DropdownToggleCheckbox.d.ts +3 -3
- package/dist/js/deprecated/components/Dropdown/DropdownToggleCheckbox.d.ts.map +1 -1
- package/dist/js/deprecated/components/Dropdown/package.json +1 -1
- package/dist/js/deprecated/components/OptionsMenu/package.json +1 -1
- package/dist/js/deprecated/components/PageHeader/package.json +1 -1
- package/dist/js/deprecated/components/Select/package.json +1 -1
- package/dist/js/deprecated/components/Wizard/package.json +1 -1
- package/dist/js/deprecated/components/package.json +1 -1
- package/dist/js/deprecated/package.json +1 -1
- package/dist/js/helpers/Popper/Popper.d.ts +1 -1
- package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
- package/dist/js/helpers/Popper/thirdparty/popper-core/package.json +1 -1
- package/dist/js/helpers/package.json +1 -1
- package/dist/js/layouts/Bullseye/package.json +1 -1
- package/dist/js/layouts/Flex/Flex.d.ts +27 -0
- package/dist/js/layouts/Flex/Flex.d.ts.map +1 -1
- package/dist/js/layouts/Flex/Flex.js +2 -2
- package/dist/js/layouts/Flex/Flex.js.map +1 -1
- package/dist/js/layouts/Flex/package.json +1 -1
- package/dist/js/layouts/Gallery/package.json +1 -1
- package/dist/js/layouts/Grid/package.json +1 -1
- package/dist/js/layouts/Level/package.json +1 -1
- package/dist/js/layouts/Split/package.json +1 -1
- package/dist/js/layouts/Stack/package.json +1 -1
- package/dist/js/layouts/package.json +1 -1
- package/dist/js/next/components/package.json +1 -1
- package/dist/js/next/package.json +1 -1
- package/dist/js/package.json +1 -1
- package/dist/umd/react-core.min.js +2 -2
- package/package.json +2 -2
- package/src/components/DatePicker/__tests__/__snapshots__/DatePicker.test.tsx.snap +27 -29
- package/src/components/DatePicker/examples/DatePicker.md +0 -1
- package/src/components/Dropdown/Dropdown.tsx +25 -11
- package/src/components/Dropdown/examples/Dropdown.md +10 -1
- package/src/components/Dropdown/examples/DropdownBasic.tsx +2 -6
- package/src/components/Dropdown/examples/DropdownWithDescriptions.tsx +2 -6
- package/src/components/Dropdown/examples/DropdownWithGroups.tsx +2 -6
- package/src/components/Dropdown/examples/DropdownWithKebabToggle.tsx +2 -6
- package/src/components/Icon/examples/Icon.md +0 -1
- package/src/components/Menu/MenuItem.tsx +1 -1
- package/src/components/Menu/examples/Menu.md +1 -1
- package/src/components/MultipleFileUpload/MultipleFileUploadStatusItem.tsx +1 -1
- package/src/components/Progress/Progress.tsx +1 -1
- package/src/components/Progress/ProgressContainer.tsx +1 -1
- package/src/components/Progress/examples/Progress.md +1 -1
- package/src/components/ProgressStepper/examples/ProgressStepper.md +0 -1
- package/src/components/SearchInput/examples/SearchInput.md +0 -1
- package/src/components/Select/Select.tsx +62 -24
- package/src/components/Select/SelectGroup.tsx +3 -0
- package/src/components/Select/SelectOption.tsx +22 -2
- package/src/components/Select/examples/Select.md +49 -2
- package/src/components/Select/examples/SelectBasic.tsx +27 -17
- package/src/components/Select/examples/SelectCheckbox.tsx +1 -3
- package/src/components/Select/examples/SelectFooter.tsx +57 -0
- package/src/components/Select/examples/SelectGrouped.tsx +14 -6
- package/src/components/Select/examples/SelectMultiTypeahead.tsx +7 -12
- package/src/components/Select/examples/SelectMultiTypeaheadCheckbox.tsx +204 -0
- package/src/components/Select/examples/SelectMultiTypeaheadCreatable.tsx +222 -0
- package/src/components/Select/examples/SelectOptionVariations.tsx +70 -0
- package/src/components/Select/examples/SelectTypeahead.tsx +13 -13
- package/src/components/Select/examples/SelectTypeaheadCreatable.tsx +220 -0
- package/src/components/Select/examples/SelectViewMore.tsx +146 -0
- package/src/components/Tabs/Tab.tsx +3 -3
- package/src/components/Tabs/Tabs.tsx +1 -1
- package/src/components/Tabs/examples/Tabs.md +3 -3
- package/src/components/TextInputGroup/examples/TextInputGroup.md +0 -1
- package/src/components/Tile/examples/Tile.md +0 -1
- package/src/components/Truncate/examples/Truncate.md +1 -2
- package/src/demos/ComposableMenu/ComposableMenu.md +17 -3
- package/src/demos/DatePicker/DatePicker.md +0 -1
- package/src/demos/ProgressStepperDemo.md +0 -1
- package/src/demos/SearchInput/SearchInput.md +0 -1
- package/src/demos/TextInputGroupDemo.md +0 -1
- package/src/deprecated/components/Dropdown/DropdownToggleCheckbox.tsx +3 -3
- package/src/deprecated/components/Dropdown/examples/Dropdown.md +1 -1
- package/src/helpers/Popper/Popper.tsx +1 -1
- package/src/layouts/Flex/Flex.tsx +141 -0
- package/src/layouts/Flex/__tests__/Flex.test.tsx +30 -10
- package/src/layouts/Flex/examples/Flex.md +192 -65
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/react-core",
|
|
3
|
-
"version": "5.0.0-alpha.
|
|
3
|
+
"version": "5.0.0-alpha.108",
|
|
4
4
|
"description": "This library provides a set of common React components for use with the PatternFly reference implementation.",
|
|
5
5
|
"main": "dist/js/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"react": "^17 || ^18",
|
|
72
72
|
"react-dom": "^17 || ^18"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "c3fe2fb841eabc1aded749983b71c487fc9cdf0c"
|
|
75
75
|
}
|
|
@@ -114,39 +114,37 @@ exports[`With popover opened 1`] = `
|
|
|
114
114
|
>
|
|
115
115
|
Month
|
|
116
116
|
</span>
|
|
117
|
-
<
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
117
|
+
<button
|
|
118
|
+
aria-expanded="false"
|
|
119
|
+
class="pf-v5-c-menu-toggle"
|
|
120
|
+
style="width: 140px;"
|
|
121
|
+
type="button"
|
|
122
|
+
>
|
|
123
|
+
<span
|
|
124
|
+
class="pf-v5-c-menu-toggle__text"
|
|
125
|
+
>
|
|
126
|
+
December
|
|
127
|
+
</span>
|
|
128
|
+
<span
|
|
129
|
+
class="pf-v5-c-menu-toggle__controls"
|
|
123
130
|
>
|
|
124
131
|
<span
|
|
125
|
-
class="pf-v5-c-menu-
|
|
126
|
-
>
|
|
127
|
-
December
|
|
128
|
-
</span>
|
|
129
|
-
<span
|
|
130
|
-
class="pf-v5-c-menu-toggle__controls"
|
|
132
|
+
class="pf-v5-c-menu-toggle__toggle-icon"
|
|
131
133
|
>
|
|
132
|
-
<
|
|
133
|
-
|
|
134
|
+
<svg
|
|
135
|
+
aria-hidden="true"
|
|
136
|
+
class="pf-v5-svg"
|
|
137
|
+
fill="currentColor"
|
|
138
|
+
role="img"
|
|
139
|
+
viewBox="0 0 320 512"
|
|
134
140
|
>
|
|
135
|
-
<
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
role="img"
|
|
140
|
-
viewBox="0 0 320 512"
|
|
141
|
-
>
|
|
142
|
-
<path
|
|
143
|
-
d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
|
|
144
|
-
/>
|
|
145
|
-
</svg>
|
|
146
|
-
</span>
|
|
141
|
+
<path
|
|
142
|
+
d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
|
|
143
|
+
/>
|
|
144
|
+
</svg>
|
|
147
145
|
</span>
|
|
148
|
-
</
|
|
149
|
-
</
|
|
146
|
+
</span>
|
|
147
|
+
</button>
|
|
150
148
|
</div>
|
|
151
149
|
</div>
|
|
152
150
|
<div
|
|
@@ -813,4 +811,4 @@ exports[`disabled date picker 1`] = `
|
|
|
813
811
|
</div>
|
|
814
812
|
</div>
|
|
815
813
|
</DocumentFragment>
|
|
816
|
-
`;
|
|
814
|
+
`;
|
|
@@ -19,6 +19,13 @@ export interface DropdownPopperProps {
|
|
|
19
19
|
enableFlip?: boolean;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
export interface DropdownToggleProps {
|
|
23
|
+
/** Dropdown toggle node. */
|
|
24
|
+
toggleNode: React.ReactNode;
|
|
25
|
+
/** Reference to the toggle. */
|
|
26
|
+
toggleRef?: React.RefObject<HTMLButtonElement>;
|
|
27
|
+
}
|
|
28
|
+
|
|
22
29
|
/**
|
|
23
30
|
* See the Menu documentation for additional props that may be passed.
|
|
24
31
|
*/
|
|
@@ -27,16 +34,14 @@ export interface DropdownProps extends MenuProps, OUIAProps {
|
|
|
27
34
|
children?: React.ReactNode;
|
|
28
35
|
/** Classes applied to root element of dropdown. */
|
|
29
36
|
className?: string;
|
|
30
|
-
/**
|
|
31
|
-
toggle: (toggleRef: React.RefObject<any>) => React.ReactNode;
|
|
37
|
+
/** Dropdown toggle. The toggle should either be a renderer function which forwards the given toggle ref, or a direct ReactNode that should be passed along with the toggleRef property. */
|
|
38
|
+
toggle: DropdownToggleProps | ((toggleRef: React.RefObject<any>) => React.ReactNode);
|
|
32
39
|
/** Flag to indicate if menu is opened.*/
|
|
33
40
|
isOpen?: boolean;
|
|
41
|
+
/** Flag indicating the toggle should be focused after a selection. If this use case is too restrictive, the optional toggleRef property with a node toggle may be used to control focus. */
|
|
42
|
+
shouldFocusToggleOnSelect?: boolean;
|
|
34
43
|
/** Function callback called when user selects item. */
|
|
35
|
-
onSelect?: (
|
|
36
|
-
event?: React.MouseEvent<Element, MouseEvent>,
|
|
37
|
-
itemId?: string | number,
|
|
38
|
-
toggleRef?: React.RefObject<any>
|
|
39
|
-
) => void;
|
|
44
|
+
onSelect?: (event?: React.MouseEvent<Element, MouseEvent>, itemId?: string | number) => void;
|
|
40
45
|
/** Callback to allow the dropdown component to change the open state of the menu.
|
|
41
46
|
* Triggered by clicking outside of the menu, or by pressing either tab or escape. */
|
|
42
47
|
onOpenChange?: (isOpen: boolean) => void;
|
|
@@ -62,6 +67,7 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
|
|
|
62
67
|
onSelect,
|
|
63
68
|
isOpen,
|
|
64
69
|
toggle,
|
|
70
|
+
shouldFocusToggleOnSelect = false,
|
|
65
71
|
onOpenChange,
|
|
66
72
|
isPlain,
|
|
67
73
|
isScrollable,
|
|
@@ -73,10 +79,15 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
|
|
|
73
79
|
...props
|
|
74
80
|
}: DropdownProps) => {
|
|
75
81
|
const localMenuRef = React.useRef<HTMLDivElement>();
|
|
76
|
-
const
|
|
82
|
+
const localToggleRef = React.useRef<HTMLButtonElement>();
|
|
77
83
|
const ouiaProps = useOUIAProps(Dropdown.displayName, ouiaId, ouiaSafe);
|
|
78
84
|
|
|
79
85
|
const menuRef = (innerRef as React.RefObject<HTMLDivElement>) || localMenuRef;
|
|
86
|
+
const toggleRef =
|
|
87
|
+
typeof toggle === 'function' || (typeof toggle !== 'function' && !toggle.toggleRef)
|
|
88
|
+
? localToggleRef
|
|
89
|
+
: (toggle?.toggleRef as React.RefObject<HTMLButtonElement>);
|
|
90
|
+
|
|
80
91
|
React.useEffect(() => {
|
|
81
92
|
const handleMenuKeys = (event: KeyboardEvent) => {
|
|
82
93
|
// Close the menu on tab or escape if onOpenChange is provided
|
|
@@ -119,13 +130,16 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
|
|
|
119
130
|
window.removeEventListener('keydown', handleMenuKeys);
|
|
120
131
|
window.removeEventListener('click', handleClick);
|
|
121
132
|
};
|
|
122
|
-
}, [isOpen, menuRef, onOpenChange]);
|
|
133
|
+
}, [isOpen, menuRef, toggleRef, onOpenChange]);
|
|
123
134
|
|
|
124
135
|
const menu = (
|
|
125
136
|
<Menu
|
|
126
137
|
className={css(className)}
|
|
127
138
|
ref={menuRef}
|
|
128
|
-
onSelect={(event, itemId) =>
|
|
139
|
+
onSelect={(event, itemId) => {
|
|
140
|
+
onSelect && onSelect(event, itemId);
|
|
141
|
+
shouldFocusToggleOnSelect && toggleRef.current.focus();
|
|
142
|
+
}}
|
|
129
143
|
isPlain={isPlain}
|
|
130
144
|
isScrollable={isScrollable}
|
|
131
145
|
{...props}
|
|
@@ -136,7 +150,7 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
|
|
|
136
150
|
);
|
|
137
151
|
return (
|
|
138
152
|
<Popper
|
|
139
|
-
trigger={toggle(toggleRef)}
|
|
153
|
+
trigger={typeof toggle === 'function' ? toggle(toggleRef) : toggle.toggleNode}
|
|
140
154
|
triggerRef={toggleRef}
|
|
141
155
|
popper={menu}
|
|
142
156
|
popperRef={menuRef}
|
|
@@ -3,7 +3,16 @@ id: Dropdown
|
|
|
3
3
|
section: components
|
|
4
4
|
subsection: menus
|
|
5
5
|
cssPrefix: pf-c-menu
|
|
6
|
-
propComponents:
|
|
6
|
+
propComponents:
|
|
7
|
+
[
|
|
8
|
+
'Dropdown',
|
|
9
|
+
'DropdownGroup',
|
|
10
|
+
'DropdownItem',
|
|
11
|
+
'DropdownList',
|
|
12
|
+
'MenuToggle',
|
|
13
|
+
'DropdownToggleProps',
|
|
14
|
+
'DropdownPopperProps'
|
|
15
|
+
]
|
|
7
16
|
---
|
|
8
17
|
|
|
9
18
|
import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
|
|
@@ -8,15 +8,10 @@ export const DropdownBasic: React.FunctionComponent = () => {
|
|
|
8
8
|
setIsOpen(!isOpen);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
-
const onSelect = (
|
|
12
|
-
_event: React.MouseEvent<Element, MouseEvent> | undefined,
|
|
13
|
-
itemId: string | number | undefined,
|
|
14
|
-
toggleRef: React.RefObject<any>
|
|
15
|
-
) => {
|
|
11
|
+
const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: string | number | undefined) => {
|
|
16
12
|
// eslint-disable-next-line no-console
|
|
17
13
|
console.log('selected', itemId);
|
|
18
14
|
setIsOpen(false);
|
|
19
|
-
toggleRef?.current.focus();
|
|
20
15
|
};
|
|
21
16
|
|
|
22
17
|
return (
|
|
@@ -30,6 +25,7 @@ export const DropdownBasic: React.FunctionComponent = () => {
|
|
|
30
25
|
</MenuToggle>
|
|
31
26
|
)}
|
|
32
27
|
ouiaId="BasicDropdown"
|
|
28
|
+
shouldFocusToggleOnSelect
|
|
33
29
|
>
|
|
34
30
|
<DropdownList>
|
|
35
31
|
<DropdownItem itemId={0} key="action">
|
|
@@ -8,15 +8,10 @@ export const DropdownWithDescriptions: React.FunctionComponent = () => {
|
|
|
8
8
|
setIsOpen(!isOpen);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
-
const onSelect = (
|
|
12
|
-
_event: React.MouseEvent<Element, MouseEvent> | undefined,
|
|
13
|
-
itemId: string | number | undefined,
|
|
14
|
-
toggleRef: React.RefObject<any>
|
|
15
|
-
) => {
|
|
11
|
+
const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: string | number | undefined) => {
|
|
16
12
|
// eslint-disable-next-line no-console
|
|
17
13
|
console.log('selected', itemId);
|
|
18
14
|
setIsOpen(false);
|
|
19
|
-
toggleRef?.current.focus();
|
|
20
15
|
};
|
|
21
16
|
|
|
22
17
|
return (
|
|
@@ -29,6 +24,7 @@ export const DropdownWithDescriptions: React.FunctionComponent = () => {
|
|
|
29
24
|
Dropdown
|
|
30
25
|
</MenuToggle>
|
|
31
26
|
)}
|
|
27
|
+
shouldFocusToggleOnSelect
|
|
32
28
|
>
|
|
33
29
|
<DropdownList>
|
|
34
30
|
<DropdownItem itemId={0} key="action" description="This is a description">
|
|
@@ -16,15 +16,10 @@ export const DropdownWithGroups: React.FunctionComponent = () => {
|
|
|
16
16
|
setIsOpen(!isOpen);
|
|
17
17
|
};
|
|
18
18
|
|
|
19
|
-
const onSelect = (
|
|
20
|
-
_event: React.MouseEvent<Element, MouseEvent> | undefined,
|
|
21
|
-
itemId: string | number | undefined,
|
|
22
|
-
toggleRef: React.RefObject<any>
|
|
23
|
-
) => {
|
|
19
|
+
const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: string | number | undefined) => {
|
|
24
20
|
// eslint-disable-next-line no-console
|
|
25
21
|
console.log('selected', itemId);
|
|
26
22
|
setIsOpen(false);
|
|
27
|
-
toggleRef?.current.focus();
|
|
28
23
|
};
|
|
29
24
|
|
|
30
25
|
return (
|
|
@@ -37,6 +32,7 @@ export const DropdownWithGroups: React.FunctionComponent = () => {
|
|
|
37
32
|
Dropdown
|
|
38
33
|
</MenuToggle>
|
|
39
34
|
)}
|
|
35
|
+
shouldFocusToggleOnSelect
|
|
40
36
|
>
|
|
41
37
|
<DropdownGroup>
|
|
42
38
|
<DropdownList>
|
|
@@ -9,15 +9,10 @@ export const DropdownWithKebab: React.FunctionComponent = () => {
|
|
|
9
9
|
setIsOpen(!isOpen);
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
const onSelect = (
|
|
13
|
-
_event: React.MouseEvent<Element, MouseEvent> | undefined,
|
|
14
|
-
itemId: string | number | undefined,
|
|
15
|
-
toggleRef: React.RefObject<any>
|
|
16
|
-
) => {
|
|
12
|
+
const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, itemId: string | number | undefined) => {
|
|
17
13
|
// eslint-disable-next-line no-console
|
|
18
14
|
console.log('selected', itemId);
|
|
19
15
|
setIsOpen(false);
|
|
20
|
-
toggleRef?.current.focus();
|
|
21
16
|
};
|
|
22
17
|
|
|
23
18
|
return (
|
|
@@ -36,6 +31,7 @@ export const DropdownWithKebab: React.FunctionComponent = () => {
|
|
|
36
31
|
<EllipsisVIcon />
|
|
37
32
|
</MenuToggle>
|
|
38
33
|
)}
|
|
34
|
+
shouldFocusToggleOnSelect
|
|
39
35
|
>
|
|
40
36
|
<DropdownList>
|
|
41
37
|
<DropdownItem itemId={0} key="action">
|
|
@@ -24,7 +24,7 @@ export interface MenuItemProps extends Omit<React.HTMLProps<HTMLLIElement>, 'onC
|
|
|
24
24
|
itemId?: any;
|
|
25
25
|
/** Target navigation link. Should not be used if the flyout prop is defined. */
|
|
26
26
|
to?: string;
|
|
27
|
-
/**
|
|
27
|
+
/** Flag indicating the item has a checkbox */
|
|
28
28
|
hasCheckbox?: boolean;
|
|
29
29
|
/** Flag indicating whether the item is active */
|
|
30
30
|
isActive?: boolean;
|
|
@@ -81,7 +81,7 @@ Use the `description` property to add short descriptive text below any menu item
|
|
|
81
81
|
|
|
82
82
|
Use the `hasCheck` property to add a checkbox to a `<MenuItem>`. Use the `isSelected` property to indicate when a `<MenuItem>` is selected.
|
|
83
83
|
|
|
84
|
-
```ts file="./MenuWithCheckbox.tsx"
|
|
84
|
+
```ts file="./MenuWithCheckbox.tsx"
|
|
85
85
|
|
|
86
86
|
```
|
|
87
87
|
|
|
@@ -54,7 +54,7 @@ export interface MultipleFileUploadStatusItemProps extends React.HTMLProps<HTMLL
|
|
|
54
54
|
progressAriaLiveMessage?: string | ((loadPercentage: number) => string);
|
|
55
55
|
/** Unique identifier for progress. Generated if not specified. */
|
|
56
56
|
progressId?: string;
|
|
57
|
-
/**
|
|
57
|
+
/** Additional content related to the status item. */
|
|
58
58
|
progressHelperText?: React.ReactNode;
|
|
59
59
|
}
|
|
60
60
|
|
|
@@ -42,7 +42,7 @@ export interface ProgressProps extends Omit<React.HTMLProps<HTMLDivElement>, 'si
|
|
|
42
42
|
'aria-label'?: string;
|
|
43
43
|
/** Associates the ProgressBar with it's label for accessibility purposes. Required when title not used */
|
|
44
44
|
'aria-labelledby'?: string;
|
|
45
|
-
/**
|
|
45
|
+
/** Content which can be used to convey additional information about the progress component.
|
|
46
46
|
* We recommend the helper text component as it was designed for this purpose.
|
|
47
47
|
*/
|
|
48
48
|
helperText?: React.ReactNode;
|
|
@@ -54,7 +54,7 @@ export interface ProgressContainerProps extends Omit<React.HTMLProps<HTMLDivElem
|
|
|
54
54
|
| 'left-end'
|
|
55
55
|
| 'right-start'
|
|
56
56
|
| 'right-end';
|
|
57
|
-
/**
|
|
57
|
+
/** Content which can be used to convey additional information about the progress component.
|
|
58
58
|
* We recommend the helper text component as it was designed for this purpose.
|
|
59
59
|
*/
|
|
60
60
|
helperText?: React.ReactNode;
|
|
@@ -1,9 +1,35 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { css } from '@patternfly/react-styles';
|
|
3
3
|
import { Menu, MenuContent, MenuProps } from '../Menu';
|
|
4
|
-
import { Popper
|
|
4
|
+
import { Popper } from '../../helpers/Popper/Popper';
|
|
5
5
|
import { getOUIAProps, OUIAProps, getDefaultOUIAId } from '../../helpers';
|
|
6
6
|
|
|
7
|
+
export interface SelectPopperProps {
|
|
8
|
+
/** Vertical direction of the popper. If enableFlip is set to true, this will set the initial direction before the popper flips. */
|
|
9
|
+
direction?: 'up' | 'down';
|
|
10
|
+
/** Horizontal position of the popper */
|
|
11
|
+
position?: 'right' | 'left' | 'center';
|
|
12
|
+
/** Custom width of the popper. If the value is "trigger", it will set the width to the select toggle's width */
|
|
13
|
+
width?: string | 'trigger';
|
|
14
|
+
/** Minimum width of the popper. If the value is "trigger", it will set the min width to the select toggle's width */
|
|
15
|
+
minWidth?: string | 'trigger';
|
|
16
|
+
/** Maximum width of the popper. If the value is "trigger", it will set the max width to the select toggle's width */
|
|
17
|
+
maxWidth?: string | 'trigger';
|
|
18
|
+
/** Enable to flip the popper when it reaches the boundary */
|
|
19
|
+
enableFlip?: boolean;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface SelectToggleProps {
|
|
23
|
+
/** Select toggle node. */
|
|
24
|
+
toggleNode: React.ReactNode;
|
|
25
|
+
/** Reference to the toggle. */
|
|
26
|
+
toggleRef?: React.RefObject<HTMLButtonElement>;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* See the Menu documentation for additional props that may be passed.
|
|
31
|
+
*/
|
|
32
|
+
|
|
7
33
|
export interface SelectProps extends MenuProps, OUIAProps {
|
|
8
34
|
/** Anything which can be rendered in a select */
|
|
9
35
|
children?: React.ReactNode;
|
|
@@ -13,13 +39,17 @@ export interface SelectProps extends MenuProps, OUIAProps {
|
|
|
13
39
|
isOpen?: boolean;
|
|
14
40
|
/** Single itemId for single select menus, or array of itemIds for multi select. You can also specify isSelected on the SelectOption. */
|
|
15
41
|
selected?: any | any[];
|
|
16
|
-
/**
|
|
17
|
-
toggle: (toggleRef: React.RefObject<any>) => React.ReactNode;
|
|
42
|
+
/** Select toggle. The toggle should either be a renderer function which forwards the given toggle ref, or a direct ReactNode that should be passed along with the toggleRef property. */
|
|
43
|
+
toggle: SelectToggleProps | ((toggleRef: React.RefObject<any>) => React.ReactNode);
|
|
44
|
+
/** Flag indicating the toggle should be focused after a selection. If this use case is too restrictive, the optional toggleRef property with a node toggle may be used to control focus. */
|
|
45
|
+
shouldFocusToggleOnSelect?: boolean;
|
|
18
46
|
/** Function callback when user selects an option. */
|
|
19
47
|
onSelect?: (event?: React.MouseEvent<Element, MouseEvent>, itemId?: string | number) => void;
|
|
20
48
|
/** Callback to allow the select component to change the open state of the menu.
|
|
21
|
-
* Triggered by clicking outside of the menu, or by pressing
|
|
49
|
+
* Triggered by clicking outside of the menu, or by pressing any keys specificed in onOpenChangeKeys. */
|
|
22
50
|
onOpenChange?: (isOpen: boolean) => void;
|
|
51
|
+
/** @beta Keys that trigger onOpenChange, defaults to tab and escape. It is highly recommended to include Escape in the array, while Tab may be omitted if the menu contains non-menu items that are focusable. */
|
|
52
|
+
onOpenChangeKeys?: string[];
|
|
23
53
|
/** Indicates if the select should be without the outer box-shadow */
|
|
24
54
|
isPlain?: boolean;
|
|
25
55
|
/** @hide Forwarded ref */
|
|
@@ -29,7 +59,7 @@ export interface SelectProps extends MenuProps, OUIAProps {
|
|
|
29
59
|
/** @beta Determines the accessible role of the select. For a checkbox select pass in "menu". */
|
|
30
60
|
role?: string;
|
|
31
61
|
/** Additional properties to pass to the popper */
|
|
32
|
-
popperProps?:
|
|
62
|
+
popperProps?: SelectPopperProps;
|
|
33
63
|
}
|
|
34
64
|
|
|
35
65
|
const SelectBase: React.FunctionComponent<SelectProps & OUIAProps> = ({
|
|
@@ -39,7 +69,9 @@ const SelectBase: React.FunctionComponent<SelectProps & OUIAProps> = ({
|
|
|
39
69
|
isOpen,
|
|
40
70
|
selected,
|
|
41
71
|
toggle,
|
|
72
|
+
shouldFocusToggleOnSelect = false,
|
|
42
73
|
onOpenChange,
|
|
74
|
+
onOpenChangeKeys = ['Escape', 'Tab'],
|
|
43
75
|
isPlain,
|
|
44
76
|
innerRef,
|
|
45
77
|
zIndex = 9999,
|
|
@@ -48,18 +80,24 @@ const SelectBase: React.FunctionComponent<SelectProps & OUIAProps> = ({
|
|
|
48
80
|
...props
|
|
49
81
|
}: SelectProps & OUIAProps) => {
|
|
50
82
|
const localMenuRef = React.useRef<HTMLDivElement>();
|
|
51
|
-
const
|
|
52
|
-
const containerRef = React.useRef<HTMLDivElement>();
|
|
83
|
+
const localToggleRef = React.useRef<HTMLButtonElement>();
|
|
53
84
|
|
|
54
85
|
const menuRef = (innerRef as React.RefObject<HTMLDivElement>) || localMenuRef;
|
|
86
|
+
const toggleRef =
|
|
87
|
+
typeof toggle === 'function' || (typeof toggle !== 'function' && !toggle.toggleRef)
|
|
88
|
+
? localToggleRef
|
|
89
|
+
: (toggle?.toggleRef as React.RefObject<HTMLButtonElement>);
|
|
90
|
+
|
|
55
91
|
React.useEffect(() => {
|
|
56
92
|
const handleMenuKeys = (event: KeyboardEvent) => {
|
|
57
93
|
// Close the menu on tab or escape if onOpenChange is provided
|
|
58
94
|
if (
|
|
59
|
-
|
|
60
|
-
|
|
95
|
+
isOpen &&
|
|
96
|
+
onOpenChange &&
|
|
97
|
+
(menuRef.current?.contains(event.target as Node) || toggleRef.current?.contains(event.target as Node))
|
|
61
98
|
) {
|
|
62
|
-
if (
|
|
99
|
+
if (onOpenChangeKeys.includes(event.key)) {
|
|
100
|
+
event.preventDefault();
|
|
63
101
|
onOpenChange(false);
|
|
64
102
|
toggleRef.current?.focus();
|
|
65
103
|
}
|
|
@@ -90,14 +128,17 @@ const SelectBase: React.FunctionComponent<SelectProps & OUIAProps> = ({
|
|
|
90
128
|
window.removeEventListener('keydown', handleMenuKeys);
|
|
91
129
|
window.removeEventListener('click', handleClick);
|
|
92
130
|
};
|
|
93
|
-
}, [isOpen, menuRef, onOpenChange]);
|
|
131
|
+
}, [isOpen, menuRef, toggleRef, onOpenChange, onOpenChangeKeys]);
|
|
94
132
|
|
|
95
133
|
const menu = (
|
|
96
134
|
<Menu
|
|
97
135
|
role={role}
|
|
98
136
|
className={css(className)}
|
|
99
137
|
ref={menuRef}
|
|
100
|
-
onSelect={(event, itemId) =>
|
|
138
|
+
onSelect={(event, itemId) => {
|
|
139
|
+
onSelect && onSelect(event, itemId);
|
|
140
|
+
shouldFocusToggleOnSelect && toggleRef.current.focus();
|
|
141
|
+
}}
|
|
101
142
|
isPlain={isPlain}
|
|
102
143
|
selected={selected}
|
|
103
144
|
{...getOUIAProps(
|
|
@@ -111,18 +152,15 @@ const SelectBase: React.FunctionComponent<SelectProps & OUIAProps> = ({
|
|
|
111
152
|
</Menu>
|
|
112
153
|
);
|
|
113
154
|
return (
|
|
114
|
-
<
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
{...popperProps}
|
|
124
|
-
/>
|
|
125
|
-
</div>
|
|
155
|
+
<Popper
|
|
156
|
+
trigger={typeof toggle === 'function' ? toggle(toggleRef) : toggle.toggleNode}
|
|
157
|
+
triggerRef={toggleRef}
|
|
158
|
+
popper={menu}
|
|
159
|
+
popperRef={menuRef}
|
|
160
|
+
isVisible={isOpen}
|
|
161
|
+
zIndex={zIndex}
|
|
162
|
+
{...popperProps}
|
|
163
|
+
/>
|
|
126
164
|
);
|
|
127
165
|
};
|
|
128
166
|
|
|
@@ -2,6 +2,9 @@ import React from 'react';
|
|
|
2
2
|
import { css } from '@patternfly/react-styles';
|
|
3
3
|
import { MenuGroupProps, MenuGroup } from '../Menu';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* See the MenuGroup section of the Menu documentation for additional props that may be passed.
|
|
7
|
+
*/
|
|
5
8
|
export interface SelectGroupProps extends Omit<MenuGroupProps, 'ref'> {
|
|
6
9
|
/** Anything which can be rendered in a select group */
|
|
7
10
|
children: React.ReactNode;
|
|
@@ -2,11 +2,17 @@ import React from 'react';
|
|
|
2
2
|
import { css } from '@patternfly/react-styles';
|
|
3
3
|
import { MenuItemProps, MenuItem } from '../Menu';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* See the MenuItem section of the Menu documentation for additional props that may be passed.
|
|
7
|
+
*/
|
|
8
|
+
|
|
5
9
|
export interface SelectOptionProps extends Omit<MenuItemProps, 'ref'> {
|
|
6
10
|
/** Anything which can be rendered in a select option */
|
|
7
11
|
children?: React.ReactNode;
|
|
8
12
|
/** Classes applied to root element of select option */
|
|
9
13
|
className?: string;
|
|
14
|
+
/** @hide Forwarded ref */
|
|
15
|
+
innerRef?: React.Ref<HTMLAnchorElement | HTMLButtonElement>;
|
|
10
16
|
/** Identifies the component in the Select onSelect callback */
|
|
11
17
|
itemId?: any;
|
|
12
18
|
/** Indicates the option has a checkbox */
|
|
@@ -17,15 +23,29 @@ export interface SelectOptionProps extends Omit<MenuItemProps, 'ref'> {
|
|
|
17
23
|
isSelected?: boolean;
|
|
18
24
|
/** Indicates the option is focused */
|
|
19
25
|
isFocused?: boolean;
|
|
26
|
+
/** Render an external link icon on focus or hover, and set the link's
|
|
27
|
+
* "target" attribute to a value of "_blank".
|
|
28
|
+
*/
|
|
29
|
+
isExternalLink?: boolean;
|
|
30
|
+
/** Render option with icon */
|
|
31
|
+
icon?: React.ReactNode;
|
|
32
|
+
/** Description of the option */
|
|
33
|
+
description?: React.ReactNode;
|
|
20
34
|
}
|
|
21
35
|
|
|
22
|
-
|
|
36
|
+
const SelectOptionBase: React.FunctionComponent<MenuItemProps> = ({
|
|
23
37
|
children,
|
|
24
38
|
className,
|
|
39
|
+
innerRef,
|
|
25
40
|
...props
|
|
26
41
|
}: SelectOptionProps) => (
|
|
27
|
-
<MenuItem className={css(className)} {...props}>
|
|
42
|
+
<MenuItem ref={innerRef} className={css(className)} {...props}>
|
|
28
43
|
{children}
|
|
29
44
|
</MenuItem>
|
|
30
45
|
);
|
|
46
|
+
|
|
47
|
+
export const SelectOption = React.forwardRef((props: SelectOptionProps, ref: React.Ref<any>) => (
|
|
48
|
+
<SelectOptionBase {...props} innerRef={ref} />
|
|
49
|
+
));
|
|
50
|
+
|
|
31
51
|
SelectOption.displayName = 'SelectOption';
|