@carbon/react 1.29.1 → 1.30.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/es/_virtual/_rollupPluginBabelHelpers.js +16 -5
- package/es/components/Accordion/Accordion.Skeleton.js +0 -7
- package/es/components/Accordion/Accordion.js +1 -8
- package/es/components/Accordion/AccordionItem.js +5 -19
- package/es/components/AspectRatio/AspectRatio.js +0 -5
- package/es/components/Breadcrumb/Breadcrumb.Skeleton.js +0 -3
- package/es/components/Breadcrumb/Breadcrumb.js +0 -3
- package/es/components/Breadcrumb/BreadcrumbItem.js +0 -7
- package/es/components/Button/Button.Skeleton.js +2 -7
- package/es/components/Button/Button.js +2 -36
- package/es/components/ButtonSet/ButtonSet.js +0 -2
- package/es/components/Checkbox/Checkbox.Skeleton.js +0 -1
- package/es/components/Checkbox/Checkbox.js +4 -20
- package/es/components/CheckboxGroup/CheckboxGroup.js +0 -11
- package/es/components/ClassPrefix/index.d.ts +26 -0
- package/es/components/ClassPrefix/index.js +0 -2
- package/es/components/CodeSnippet/CodeSnippet.Skeleton.js +0 -5
- package/es/components/CodeSnippet/CodeSnippet.js +6 -45
- package/es/components/ComboBox/ComboBox.js +12 -79
- package/es/components/ComboBox/tools/filter.js +0 -1
- package/es/components/ComboButton/index.js +0 -14
- package/es/components/ComposedModal/ComposedModal.js +2 -32
- package/es/components/ComposedModal/ModalFooter.js +0 -21
- package/es/components/ComposedModal/ModalHeader.js +0 -12
- package/es/components/ContainedList/ContainedList.js +5 -32
- package/es/components/ContainedList/ContainedListItem/ContainedListItem.js +0 -6
- package/es/components/ContentSwitcher/ContentSwitcher.js +11 -23
- package/es/components/ContextMenu/useContextMenu.js +1 -6
- package/es/components/Copy/Copy.js +8 -31
- package/es/components/CopyButton/CopyButton.js +0 -4
- package/es/components/DangerButton/DangerButton.js +0 -1
- package/es/components/DataTable/DataTable.js +171 -91
- package/es/components/DataTable/Table.js +0 -6
- package/es/components/DataTable/TableBatchAction.js +0 -4
- package/es/components/DataTable/TableBatchActions.js +0 -8
- package/es/components/DataTable/TableBody.js +0 -1
- package/es/components/DataTable/TableContainer.js +0 -5
- package/es/components/DataTable/TableExpandHeader.js +0 -7
- package/es/components/DataTable/TableExpandRow.js +0 -6
- package/es/components/DataTable/TableExpandedRow.js +0 -6
- package/es/components/DataTable/TableHeader.d.ts +1 -1
- package/es/components/DataTable/TableHeader.js +3 -19
- package/es/components/DataTable/TableRow.js +4 -5
- package/es/components/DataTable/TableSelectAll.js +0 -8
- package/es/components/DataTable/TableSelectRow.js +2 -10
- package/es/components/DataTable/TableToolbar.js +0 -3
- package/es/components/DataTable/TableToolbarMenu.d.ts +1 -1
- package/es/components/DataTable/TableToolbarMenu.js +3 -6
- package/es/components/DataTable/TableToolbarSearch.js +2 -30
- package/es/components/DataTable/state/getDerivedStateFromProps.js +0 -4
- package/es/components/DataTable/state/sorting.js +5 -8
- package/es/components/DataTable/tools/denormalize.js +2 -2
- package/es/components/DataTable/tools/filter.js +0 -2
- package/es/components/DataTable/tools/instanceId.js +0 -1
- package/es/components/DataTable/tools/normalize.js +10 -10
- package/es/components/DataTable/tools/sorting.js +5 -13
- package/es/components/DataTableSkeleton/DataTableSkeleton.js +5 -20
- package/es/components/DatePicker/DatePicker.Skeleton.js +0 -6
- package/es/components/DatePicker/DatePicker.js +153 -175
- package/es/components/DatePicker/plugins/appendToPlugin.js +3 -7
- package/es/components/DatePicker/plugins/fixEventsPlugin.js +14 -25
- package/es/components/DatePicker/plugins/rangePlugin.js +2 -7
- package/es/components/DatePickerInput/DatePickerInput.js +2 -28
- package/es/components/Dropdown/Dropdown.Skeleton.js +0 -2
- package/es/components/Dropdown/Dropdown.js +43 -52
- package/es/components/ErrorBoundary/ErrorBoundary.js +0 -10
- package/es/components/ErrorBoundary/ErrorBoundaryContext.js +0 -1
- package/es/components/ExpandableSearch/ExpandableSearch.js +1 -10
- package/es/components/FeatureFlags/index.js +8 -20
- package/es/components/FileUploader/FileUploader.Skeleton.js +0 -2
- package/es/components/FileUploader/FileUploader.js +3 -38
- package/es/components/FileUploader/FileUploaderButton.js +3 -24
- package/es/components/FileUploader/FileUploaderDropContainer.js +1 -28
- package/es/components/FileUploader/FileUploaderItem.js +5 -12
- package/es/components/FileUploader/Filename.js +6 -10
- package/es/components/FluidComboBox/FluidComboBox.Skeleton.js +0 -1
- package/es/components/FluidComboBox/FluidComboBox.js +0 -18
- package/es/components/FluidDatePicker/FluidDatePicker.Skeleton.js +0 -2
- package/es/components/FluidDatePicker/FluidDatePicker.js +0 -6
- package/es/components/FluidDatePickerInput/FluidDatePickerInput.js +2 -1
- package/es/components/FluidDropdown/FluidDropdown.Skeleton.js +0 -1
- package/es/components/FluidDropdown/FluidDropdown.js +0 -18
- package/es/components/FluidForm/FluidForm.js +0 -2
- package/es/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +0 -1
- package/es/components/FluidMultiSelect/FluidMultiSelect.js +0 -19
- package/es/components/FluidSelect/FluidSelect.Skeleton.js +0 -1
- package/es/components/FluidSelect/FluidSelect.js +0 -10
- package/es/components/FluidTextArea/FluidTextArea.Skeleton.js +0 -1
- package/es/components/FluidTextArea/FluidTextArea.js +0 -20
- package/es/components/FluidTextInput/FluidTextInput.Skeleton.js +0 -1
- package/es/components/FluidTextInput/FluidTextInput.js +0 -14
- package/es/components/FluidTimePicker/FluidTimePicker.Skeleton.js +0 -3
- package/es/components/FluidTimePicker/FluidTimePicker.js +1 -11
- package/es/components/FluidTimePickerSelect/FluidTimePickerSelect.js +0 -6
- package/es/components/Form/Form.d.ts +23 -0
- package/es/components/Form/Form.js +3 -6
- package/es/components/Form/index.d.ts +7 -0
- package/es/components/FormGroup/FormGroup.js +0 -7
- package/es/components/FormItem/FormItem.js +0 -2
- package/es/components/FormLabel/FormLabel.js +1 -7
- package/es/components/Grid/CSSGrid.js +2 -15
- package/es/components/Grid/Column.js +18 -59
- package/es/components/Grid/ColumnHang.js +2 -5
- package/es/components/Grid/FlexGrid.js +2 -8
- package/es/components/Grid/Grid.js +0 -8
- package/es/components/Grid/GridContext.js +1 -3
- package/es/components/Grid/Row.js +2 -7
- package/es/components/Heading/index.js +0 -4
- package/es/components/Icon/Icon.Skeleton.js +2 -2
- package/es/components/IconButton/index.js +0 -10
- package/es/components/IdPrefix/index.js +0 -2
- package/es/components/InlineCheckbox/InlineCheckbox.js +0 -14
- package/es/components/InlineLoading/InlineLoading.js +0 -12
- package/es/components/Layer/index.js +3 -6
- package/es/components/Layout/LayoutDirection.js +0 -3
- package/es/components/Layout/useLayoutDirection.js +0 -1
- package/es/components/Link/Link.js +3 -10
- package/es/components/ListBox/ListBox.js +2 -13
- package/es/components/ListBox/ListBoxField.js +0 -5
- package/es/components/ListBox/ListBoxMenuIcon.js +0 -4
- package/es/components/ListBox/ListBoxMenuItem.js +2 -6
- package/es/components/ListBox/ListBoxPropTypes.d.ts +2 -2
- package/es/components/ListBox/ListBoxSelection.js +1 -13
- package/es/components/ListBox/next/ListBoxSelection.js +1 -14
- package/es/components/ListBox/next/ListBoxTrigger.js +1 -3
- package/es/components/ListItem/ListItem.d.ts +23 -0
- package/es/components/ListItem/ListItem.js +4 -8
- package/es/components/ListItem/index.d.ts +7 -0
- package/es/components/Loading/Loading.js +0 -6
- package/es/components/Menu/Menu.js +22 -40
- package/es/components/Menu/MenuContext.js +4 -5
- package/es/components/Menu/MenuItem.js +5 -39
- package/es/components/MenuButton/index.js +0 -9
- package/es/components/Modal/Modal.js +1 -46
- package/es/components/ModalWrapper/ModalWrapper.js +2 -15
- package/es/components/MultiSelect/FilterableMultiSelect.js +2 -60
- package/es/components/MultiSelect/MultiSelect.js +22 -70
- package/es/components/MultiSelect/MultiSelectPropTypes.js +0 -1
- package/es/components/MultiSelect/index.js +0 -1
- package/es/components/MultiSelect/tools/itemToString.js +0 -2
- package/es/components/MultiSelect/tools/sorting.js +3 -4
- package/es/components/Notification/Notification.js +0 -78
- package/es/components/NumberInput/NumberInput.Skeleton.js +0 -2
- package/es/components/NumberInput/NumberInput.js +3 -60
- package/es/components/OrderedList/OrderedList.d.ts +39 -0
- package/es/components/OrderedList/OrderedList.js +7 -19
- package/es/components/{Form/index.js → OrderedList/index.d.ts} +1 -3
- package/es/components/OverflowMenu/OverflowMenu.js +65 -86
- package/es/components/OverflowMenuItem/OverflowMenuItem.js +6 -23
- package/es/components/OverflowMenuV2/index.js +0 -5
- package/es/components/Pagination/Pagination.Skeleton.js +0 -2
- package/es/components/Pagination/Pagination.js +11 -47
- package/es/components/Pagination/experimental/PageSelector.js +0 -10
- package/es/components/Pagination/experimental/Pagination.js +2 -48
- package/es/components/PaginationNav/PaginationNav.js +15 -59
- package/es/components/Popover/index.d.ts +14 -8
- package/es/components/Popover/index.js +44 -48
- package/es/components/PrimaryButton/PrimaryButton.js +0 -1
- package/es/components/ProgressBar/ProgressBar.js +0 -15
- package/es/components/ProgressIndicator/ProgressIndicator.Skeleton.js +0 -4
- package/es/components/ProgressIndicator/ProgressIndicator.js +2 -40
- package/es/components/RadioButton/RadioButton.Skeleton.js +0 -1
- package/es/components/RadioButton/RadioButton.js +0 -13
- package/es/components/RadioButtonGroup/RadioButtonGroup.js +3 -23
- package/es/components/RadioTile/RadioTile.js +0 -12
- package/es/components/Search/Search.Skeleton.js +0 -2
- package/es/components/Search/Search.js +1 -28
- package/es/components/SecondaryButton/SecondaryButton.js +0 -1
- package/es/components/Select/Select.Skeleton.js +0 -2
- package/es/components/Select/Select.d.ts +1 -1
- package/es/components/Select/Select.js +6 -33
- package/es/components/SelectItem/SelectItem.js +0 -5
- package/es/components/SelectItemGroup/SelectItemGroup.d.ts +0 -1
- package/es/components/SelectItemGroup/SelectItemGroup.js +1 -7
- package/es/components/SkeletonIcon/SkeletonIcon.js +0 -2
- package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.js +0 -1
- package/es/components/SkeletonText/SkeletonText.js +0 -12
- package/es/components/Slider/Slider.Skeleton.js +0 -2
- package/es/components/Slider/Slider.d.ts +0 -1
- package/es/components/Slider/Slider.js +112 -135
- package/es/components/Stack/Stack.js +1 -8
- package/es/components/StructuredList/StructuredList.Skeleton.js +0 -5
- package/es/components/StructuredList/StructuredList.js +1 -25
- package/es/components/Switch/IconSwitch.js +0 -18
- package/es/components/Switch/Switch.js +0 -11
- package/es/components/TabContent/TabContent.js +2 -6
- package/es/components/Tabs/Tabs.Skeleton.js +0 -4
- package/es/components/Tabs/Tabs.js +135 -104
- package/es/components/Tabs/usePressable.js +18 -31
- package/es/components/Tag/Tag.Skeleton.js +0 -2
- package/es/components/Tag/Tag.js +0 -15
- package/es/components/Text/Text.js +5 -18
- package/es/components/Text/TextDirection.js +0 -3
- package/es/components/Text/TextDirectionContext.js +0 -1
- package/es/components/Text/createTextComponent.js +0 -3
- package/es/components/TextArea/TextArea.Skeleton.js +0 -2
- package/es/components/TextArea/TextArea.js +11 -33
- package/es/components/TextInput/ControlledPasswordInput.js +0 -20
- package/es/components/TextInput/PasswordInput.js +0 -25
- package/es/components/TextInput/TextInput.Skeleton.js +0 -2
- package/es/components/TextInput/TextInput.d.ts +1 -1
- package/es/components/TextInput/TextInput.js +5 -33
- package/es/components/TextInput/util.js +3 -5
- package/es/components/Theme/index.js +1 -6
- package/es/components/Tile/Tile.js +32 -59
- package/es/components/TileGroup/TileGroup.js +1 -22
- package/es/components/TimePicker/TimePicker.js +6 -32
- package/es/components/TimePickerSelect/TimePickerSelect.js +2 -5
- package/es/components/Toggle/Toggle.Skeleton.js +0 -8
- package/es/components/Toggle/Toggle.js +0 -16
- package/es/components/ToggleSmall/ToggleSmall.Skeleton.js +0 -7
- package/es/components/Toggletip/index.d.ts +148 -0
- package/es/components/Toggletip/index.js +20 -44
- package/es/components/Tooltip/DefinitionTooltip.js +0 -11
- package/es/components/Tooltip/Tooltip.d.ts +1 -1
- package/es/components/Tooltip/Tooltip.js +4 -21
- package/es/components/TreeView/TreeNode.js +21 -66
- package/es/components/TreeView/TreeView.js +11 -67
- package/es/components/UIShell/Content.js +2 -4
- package/es/components/UIShell/Header.js +0 -2
- package/es/components/UIShell/HeaderContainer.d.ts +33 -0
- package/es/components/UIShell/HeaderContainer.js +13 -11
- package/es/components/UIShell/HeaderGlobalAction.js +0 -6
- package/es/components/UIShell/HeaderGlobalBar.js +0 -1
- package/es/components/UIShell/HeaderMenu.js +32 -31
- package/es/components/UIShell/HeaderMenuButton.js +2 -4
- package/es/components/UIShell/HeaderMenuItem.js +0 -8
- package/es/components/UIShell/HeaderName.js +0 -5
- package/es/components/UIShell/HeaderNavigation.js +0 -2
- package/es/components/UIShell/HeaderPanel.js +0 -2
- package/es/components/UIShell/HeaderSideNavItems.js +0 -2
- package/es/components/UIShell/Link.js +2 -3
- package/es/components/UIShell/SideNav.d.ts +3 -1
- package/es/components/UIShell/SideNav.js +44 -36
- package/es/components/UIShell/SideNavDetails.js +0 -3
- package/es/components/UIShell/SideNavDivider.js +0 -1
- package/es/components/UIShell/SideNavFooter.js +1 -4
- package/es/components/UIShell/SideNavHeader.js +0 -4
- package/es/components/UIShell/SideNavIcon.js +0 -3
- package/es/components/UIShell/SideNavItem.js +0 -3
- package/es/components/UIShell/SideNavItems.js +2 -6
- package/es/components/UIShell/SideNavLink.js +3 -7
- package/es/components/UIShell/SideNavLinkText.js +0 -2
- package/es/components/UIShell/SideNavMenu.js +0 -16
- package/es/components/UIShell/SideNavMenuItem.js +0 -2
- package/es/components/UIShell/SideNavSwitcher.js +2 -5
- package/es/components/UIShell/SkipToContent.d.ts +32 -0
- package/es/components/UIShell/SkipToContent.js +8 -15
- package/es/components/UIShell/Switcher.js +0 -2
- package/es/components/UIShell/SwitcherDivider.js +0 -1
- package/es/components/UIShell/SwitcherItem.js +0 -3
- package/es/components/UnorderedList/UnorderedList.d.ts +34 -0
- package/es/components/UnorderedList/UnorderedList.js +6 -16
- package/es/components/UnorderedList/index.d.ts +7 -0
- package/es/index.js +7 -8
- package/es/internal/ClickListener.js +3 -13
- package/es/internal/FloatingMenu.js +57 -63
- package/es/internal/OptimizedResize.js +6 -12
- package/es/internal/Selection.js +2 -25
- package/es/internal/createClassWrapper.js +0 -2
- package/es/internal/deprecateFieldOnObject.js +0 -4
- package/es/internal/focus/index.js +0 -1
- package/es/internal/keyboard/keys.js +2 -1
- package/es/internal/keyboard/match.js +1 -6
- package/es/internal/keyboard/navigation.js +8 -7
- package/es/internal/useAnnouncer.js +0 -1
- package/es/internal/useAttachedMenu.js +1 -9
- package/es/internal/useControllableState.js +6 -13
- package/es/internal/useDelayedState.js +2 -4
- package/es/internal/useEffectOnce.js +0 -1
- package/es/internal/useEvent.js +61 -3
- package/es/internal/useId.js +2 -5
- package/es/internal/useIsomorphicEffect.js +1 -0
- package/es/internal/useMergedRefs.js +2 -2
- package/es/internal/useNoInteractiveChildren.js +2 -13
- package/es/internal/useNormalizedInputProps.js +0 -3
- package/es/internal/useSavedCallback.js +0 -1
- package/es/internal/warning.js +0 -3
- package/es/internal/wrapFocus.js +1 -8
- package/es/prop-types/deprecate.js +2 -5
- package/es/prop-types/isRequiredOneOf.js +2 -5
- package/es/prop-types/requiredIfGivenPropIsTruthy.js +0 -2
- package/es/tools/array.js +0 -3
- package/es/tools/events.js +0 -3
- package/es/tools/mergeRefs.js +0 -2
- package/es/tools/wrapComponent.js +2 -5
- package/lib/_virtual/_rollupPluginBabelHelpers.js +17 -4
- package/lib/components/Accordion/Accordion.Skeleton.js +0 -7
- package/lib/components/Accordion/Accordion.js +1 -27
- package/lib/components/Accordion/AccordionItem.js +5 -19
- package/lib/components/AspectRatio/AspectRatio.js +0 -5
- package/lib/components/Breadcrumb/Breadcrumb.Skeleton.js +0 -3
- package/lib/components/Breadcrumb/Breadcrumb.js +0 -3
- package/lib/components/Breadcrumb/BreadcrumbItem.js +0 -7
- package/lib/components/Button/Button.Skeleton.js +2 -26
- package/lib/components/Button/Button.js +2 -36
- package/lib/components/ButtonSet/ButtonSet.js +0 -2
- package/lib/components/Checkbox/Checkbox.Skeleton.js +0 -1
- package/lib/components/Checkbox/Checkbox.js +4 -20
- package/lib/components/CheckboxGroup/CheckboxGroup.js +0 -11
- package/lib/components/ClassPrefix/index.d.ts +26 -0
- package/lib/components/ClassPrefix/index.js +0 -2
- package/lib/components/CodeSnippet/CodeSnippet.Skeleton.js +0 -5
- package/lib/components/CodeSnippet/CodeSnippet.js +6 -45
- package/lib/components/ComboBox/ComboBox.js +19 -86
- package/lib/components/ComboBox/tools/filter.js +0 -1
- package/lib/components/ComboButton/index.js +0 -14
- package/lib/components/ComposedModal/ComposedModal.js +2 -32
- package/lib/components/ComposedModal/ModalFooter.js +0 -21
- package/lib/components/ComposedModal/ModalHeader.js +0 -12
- package/lib/components/ContainedList/ContainedList.js +5 -32
- package/lib/components/ContainedList/ContainedListItem/ContainedListItem.js +0 -6
- package/lib/components/ContentSwitcher/ContentSwitcher.js +11 -23
- package/lib/components/ContextMenu/useContextMenu.js +1 -6
- package/lib/components/Copy/Copy.js +8 -50
- package/lib/components/CopyButton/CopyButton.js +0 -4
- package/lib/components/DangerButton/DangerButton.js +0 -1
- package/lib/components/DataTable/DataTable.js +171 -91
- package/lib/components/DataTable/Table.js +0 -6
- package/lib/components/DataTable/TableBatchAction.js +0 -4
- package/lib/components/DataTable/TableBatchActions.js +0 -8
- package/lib/components/DataTable/TableBody.js +0 -1
- package/lib/components/DataTable/TableContainer.js +0 -5
- package/lib/components/DataTable/TableExpandHeader.js +0 -7
- package/lib/components/DataTable/TableExpandRow.js +0 -6
- package/lib/components/DataTable/TableExpandedRow.js +0 -6
- package/lib/components/DataTable/TableHeader.d.ts +1 -1
- package/lib/components/DataTable/TableHeader.js +3 -19
- package/lib/components/DataTable/TableRow.js +4 -5
- package/lib/components/DataTable/TableSelectAll.js +0 -8
- package/lib/components/DataTable/TableSelectRow.js +2 -10
- package/lib/components/DataTable/TableToolbar.js +0 -3
- package/lib/components/DataTable/TableToolbarMenu.d.ts +1 -1
- package/lib/components/DataTable/TableToolbarMenu.js +3 -6
- package/lib/components/DataTable/TableToolbarSearch.js +2 -30
- package/lib/components/DataTable/state/getDerivedStateFromProps.js +0 -4
- package/lib/components/DataTable/state/sorting.js +5 -8
- package/lib/components/DataTable/tools/denormalize.js +2 -2
- package/lib/components/DataTable/tools/filter.js +0 -2
- package/lib/components/DataTable/tools/instanceId.js +0 -1
- package/lib/components/DataTable/tools/normalize.js +10 -10
- package/lib/components/DataTable/tools/sorting.js +5 -13
- package/lib/components/DataTableSkeleton/DataTableSkeleton.js +5 -20
- package/lib/components/DatePicker/DatePicker.Skeleton.js +0 -6
- package/lib/components/DatePicker/DatePicker.js +153 -175
- package/lib/components/DatePicker/plugins/appendToPlugin.js +3 -7
- package/lib/components/DatePicker/plugins/fixEventsPlugin.js +14 -25
- package/lib/components/DatePicker/plugins/rangePlugin.js +2 -7
- package/lib/components/DatePickerInput/DatePickerInput.js +2 -28
- package/lib/components/Dropdown/Dropdown.Skeleton.js +0 -2
- package/lib/components/Dropdown/Dropdown.js +50 -59
- package/lib/components/ErrorBoundary/ErrorBoundary.js +0 -10
- package/lib/components/ErrorBoundary/ErrorBoundaryContext.js +0 -1
- package/lib/components/ExpandableSearch/ExpandableSearch.js +1 -10
- package/lib/components/FeatureFlags/index.js +8 -20
- package/lib/components/FileUploader/FileUploader.Skeleton.js +0 -2
- package/lib/components/FileUploader/FileUploader.js +3 -57
- package/lib/components/FileUploader/FileUploaderButton.js +3 -43
- package/lib/components/FileUploader/FileUploaderDropContainer.js +1 -28
- package/lib/components/FileUploader/FileUploaderItem.js +5 -31
- package/lib/components/FileUploader/Filename.js +6 -10
- package/lib/components/FluidComboBox/FluidComboBox.Skeleton.js +0 -1
- package/lib/components/FluidComboBox/FluidComboBox.js +0 -18
- package/lib/components/FluidDatePicker/FluidDatePicker.Skeleton.js +0 -2
- package/lib/components/FluidDatePicker/FluidDatePicker.js +0 -6
- package/lib/components/FluidDatePickerInput/FluidDatePickerInput.js +2 -1
- package/lib/components/FluidDropdown/FluidDropdown.Skeleton.js +0 -1
- package/lib/components/FluidDropdown/FluidDropdown.js +0 -18
- package/lib/components/FluidForm/FluidForm.js +0 -2
- package/lib/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +0 -1
- package/lib/components/FluidMultiSelect/FluidMultiSelect.js +0 -19
- package/lib/components/FluidSelect/FluidSelect.Skeleton.js +0 -1
- package/lib/components/FluidSelect/FluidSelect.js +0 -10
- package/lib/components/FluidTextArea/FluidTextArea.Skeleton.js +0 -1
- package/lib/components/FluidTextArea/FluidTextArea.js +0 -20
- package/lib/components/FluidTextInput/FluidTextInput.Skeleton.js +0 -1
- package/lib/components/FluidTextInput/FluidTextInput.js +0 -14
- package/lib/components/FluidTimePicker/FluidTimePicker.Skeleton.js +0 -3
- package/lib/components/FluidTimePicker/FluidTimePicker.js +1 -11
- package/lib/components/FluidTimePickerSelect/FluidTimePickerSelect.js +0 -6
- package/lib/components/Form/Form.d.ts +23 -0
- package/lib/components/Form/Form.js +3 -6
- package/lib/components/Form/index.d.ts +7 -0
- package/lib/components/FormGroup/FormGroup.js +0 -7
- package/lib/components/FormItem/FormItem.js +0 -2
- package/lib/components/FormLabel/FormLabel.js +1 -26
- package/lib/components/Grid/CSSGrid.js +2 -15
- package/lib/components/Grid/Column.js +18 -59
- package/lib/components/Grid/ColumnHang.js +2 -5
- package/lib/components/Grid/FlexGrid.js +2 -8
- package/lib/components/Grid/Grid.js +0 -8
- package/lib/components/Grid/GridContext.js +1 -3
- package/lib/components/Grid/Row.js +2 -7
- package/lib/components/Heading/index.js +0 -4
- package/lib/components/Icon/Icon.Skeleton.js +2 -2
- package/lib/components/IconButton/index.js +0 -10
- package/lib/components/IdPrefix/index.js +0 -2
- package/lib/components/InlineCheckbox/InlineCheckbox.js +0 -14
- package/lib/components/InlineLoading/InlineLoading.js +0 -12
- package/lib/components/Layer/index.js +3 -6
- package/lib/components/Layout/LayoutDirection.js +0 -3
- package/lib/components/Layout/useLayoutDirection.js +0 -1
- package/lib/components/Link/Link.js +3 -10
- package/lib/components/ListBox/ListBox.js +2 -13
- package/lib/components/ListBox/ListBoxField.js +0 -5
- package/lib/components/ListBox/ListBoxMenuIcon.js +0 -4
- package/lib/components/ListBox/ListBoxMenuItem.js +2 -6
- package/lib/components/ListBox/ListBoxPropTypes.d.ts +2 -2
- package/lib/components/ListBox/ListBoxSelection.js +1 -13
- package/lib/components/ListBox/next/ListBoxSelection.js +1 -14
- package/lib/components/ListBox/next/ListBoxTrigger.js +1 -3
- package/lib/components/ListItem/ListItem.d.ts +23 -0
- package/lib/components/ListItem/ListItem.js +4 -8
- package/lib/components/ListItem/index.d.ts +7 -0
- package/lib/components/Loading/Loading.js +0 -6
- package/lib/components/Menu/Menu.js +22 -40
- package/lib/components/Menu/MenuContext.js +4 -5
- package/lib/components/Menu/MenuItem.js +5 -39
- package/lib/components/MenuButton/index.js +0 -9
- package/lib/components/Modal/Modal.js +1 -46
- package/lib/components/ModalWrapper/ModalWrapper.js +2 -15
- package/lib/components/MultiSelect/FilterableMultiSelect.js +8 -66
- package/lib/components/MultiSelect/MultiSelect.js +30 -78
- package/lib/components/MultiSelect/MultiSelectPropTypes.js +0 -1
- package/lib/components/MultiSelect/index.js +0 -1
- package/lib/components/MultiSelect/tools/itemToString.js +0 -2
- package/lib/components/MultiSelect/tools/sorting.js +3 -4
- package/lib/components/Notification/Notification.js +0 -78
- package/lib/components/NumberInput/NumberInput.Skeleton.js +0 -2
- package/lib/components/NumberInput/NumberInput.js +3 -60
- package/lib/components/OrderedList/OrderedList.d.ts +39 -0
- package/lib/components/OrderedList/OrderedList.js +7 -19
- package/lib/components/OrderedList/index.d.ts +7 -0
- package/lib/components/OverflowMenu/OverflowMenu.js +65 -86
- package/lib/components/OverflowMenuItem/OverflowMenuItem.js +6 -23
- package/lib/components/OverflowMenuV2/index.js +0 -5
- package/lib/components/Pagination/Pagination.Skeleton.js +0 -2
- package/lib/components/Pagination/Pagination.js +11 -47
- package/lib/components/Pagination/experimental/PageSelector.js +0 -10
- package/lib/components/Pagination/experimental/Pagination.js +2 -67
- package/lib/components/PaginationNav/PaginationNav.js +15 -78
- package/lib/components/Popover/index.d.ts +14 -8
- package/lib/components/Popover/index.js +44 -48
- package/lib/components/PrimaryButton/PrimaryButton.js +0 -1
- package/lib/components/ProgressBar/ProgressBar.js +0 -15
- package/lib/components/ProgressIndicator/ProgressIndicator.Skeleton.js +0 -4
- package/lib/components/ProgressIndicator/ProgressIndicator.js +2 -40
- package/lib/components/RadioButton/RadioButton.Skeleton.js +0 -1
- package/lib/components/RadioButton/RadioButton.js +0 -13
- package/lib/components/RadioButtonGroup/RadioButtonGroup.js +3 -23
- package/lib/components/RadioTile/RadioTile.js +0 -12
- package/lib/components/Search/Search.Skeleton.js +0 -2
- package/lib/components/Search/Search.js +1 -28
- package/lib/components/SecondaryButton/SecondaryButton.js +0 -1
- package/lib/components/Select/Select.Skeleton.js +0 -2
- package/lib/components/Select/Select.d.ts +1 -1
- package/lib/components/Select/Select.js +6 -33
- package/lib/components/SelectItem/SelectItem.js +0 -5
- package/lib/components/SelectItemGroup/SelectItemGroup.d.ts +0 -1
- package/lib/components/SelectItemGroup/SelectItemGroup.js +1 -26
- package/lib/components/SkeletonIcon/SkeletonIcon.js +0 -2
- package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.js +0 -1
- package/lib/components/SkeletonText/SkeletonText.js +0 -12
- package/lib/components/Slider/Slider.Skeleton.js +0 -2
- package/lib/components/Slider/Slider.d.ts +0 -1
- package/lib/components/Slider/Slider.js +112 -154
- package/lib/components/Stack/Stack.js +1 -8
- package/lib/components/StructuredList/StructuredList.Skeleton.js +0 -5
- package/lib/components/StructuredList/StructuredList.js +1 -25
- package/lib/components/Switch/IconSwitch.js +0 -18
- package/lib/components/Switch/Switch.js +0 -11
- package/lib/components/TabContent/TabContent.js +2 -6
- package/lib/components/Tabs/Tabs.Skeleton.js +0 -4
- package/lib/components/Tabs/Tabs.js +133 -102
- package/lib/components/Tabs/usePressable.js +18 -31
- package/lib/components/Tag/Tag.Skeleton.js +0 -2
- package/lib/components/Tag/Tag.js +0 -15
- package/lib/components/Text/Text.js +5 -18
- package/lib/components/Text/TextDirection.js +0 -3
- package/lib/components/Text/TextDirectionContext.js +0 -1
- package/lib/components/Text/createTextComponent.js +0 -3
- package/lib/components/TextArea/TextArea.Skeleton.js +0 -2
- package/lib/components/TextArea/TextArea.js +10 -32
- package/lib/components/TextInput/ControlledPasswordInput.js +0 -20
- package/lib/components/TextInput/PasswordInput.js +0 -25
- package/lib/components/TextInput/TextInput.Skeleton.js +0 -2
- package/lib/components/TextInput/TextInput.d.ts +1 -1
- package/lib/components/TextInput/TextInput.js +5 -52
- package/lib/components/TextInput/util.js +3 -5
- package/lib/components/Theme/index.js +1 -6
- package/lib/components/Tile/Tile.js +31 -58
- package/lib/components/TileGroup/TileGroup.js +1 -22
- package/lib/components/TimePicker/TimePicker.js +6 -32
- package/lib/components/TimePickerSelect/TimePickerSelect.js +2 -5
- package/lib/components/Toggle/Toggle.Skeleton.js +0 -8
- package/lib/components/Toggle/Toggle.js +0 -16
- package/lib/components/ToggleSmall/ToggleSmall.Skeleton.js +0 -7
- package/lib/components/Toggletip/index.d.ts +148 -0
- package/lib/components/Toggletip/index.js +20 -44
- package/lib/components/Tooltip/DefinitionTooltip.js +0 -11
- package/lib/components/Tooltip/Tooltip.d.ts +1 -1
- package/lib/components/Tooltip/Tooltip.js +4 -21
- package/lib/components/TreeView/TreeNode.js +21 -66
- package/lib/components/TreeView/TreeView.js +11 -67
- package/lib/components/UIShell/Content.js +2 -4
- package/lib/components/UIShell/Header.js +0 -2
- package/lib/components/UIShell/HeaderContainer.d.ts +33 -0
- package/lib/components/UIShell/HeaderContainer.js +13 -11
- package/lib/components/UIShell/HeaderGlobalAction.js +0 -6
- package/lib/components/UIShell/HeaderGlobalBar.js +0 -1
- package/lib/components/UIShell/HeaderMenu.js +32 -31
- package/lib/components/UIShell/HeaderMenuButton.js +2 -4
- package/lib/components/UIShell/HeaderMenuItem.js +0 -8
- package/lib/components/UIShell/HeaderName.js +0 -5
- package/lib/components/UIShell/HeaderNavigation.js +0 -2
- package/lib/components/UIShell/HeaderPanel.js +0 -2
- package/lib/components/UIShell/HeaderSideNavItems.js +0 -2
- package/lib/components/UIShell/Link.js +2 -3
- package/lib/components/UIShell/SideNav.d.ts +3 -1
- package/lib/components/UIShell/SideNav.js +43 -35
- package/lib/components/UIShell/SideNavDetails.js +0 -3
- package/lib/components/UIShell/SideNavDivider.js +0 -1
- package/lib/components/UIShell/SideNavFooter.js +1 -4
- package/lib/components/UIShell/SideNavHeader.js +0 -4
- package/lib/components/UIShell/SideNavIcon.js +0 -3
- package/lib/components/UIShell/SideNavItem.js +0 -3
- package/lib/components/UIShell/SideNavItems.js +2 -6
- package/lib/components/UIShell/SideNavLink.js +3 -7
- package/lib/components/UIShell/SideNavLinkText.js +0 -2
- package/lib/components/UIShell/SideNavMenu.js +0 -16
- package/lib/components/UIShell/SideNavMenuItem.js +0 -2
- package/lib/components/UIShell/SideNavSwitcher.js +2 -5
- package/lib/components/UIShell/SkipToContent.d.ts +32 -0
- package/lib/components/UIShell/SkipToContent.js +8 -15
- package/lib/components/UIShell/Switcher.js +0 -2
- package/lib/components/UIShell/SwitcherDivider.js +0 -1
- package/lib/components/UIShell/SwitcherItem.js +0 -3
- package/lib/components/UnorderedList/UnorderedList.d.ts +34 -0
- package/lib/components/UnorderedList/UnorderedList.js +6 -16
- package/lib/components/UnorderedList/index.d.ts +7 -0
- package/lib/index.js +42 -43
- package/lib/internal/ClickListener.js +3 -13
- package/lib/internal/FloatingMenu.js +57 -63
- package/lib/internal/OptimizedResize.js +6 -12
- package/lib/internal/Selection.js +2 -25
- package/lib/internal/createClassWrapper.js +0 -2
- package/lib/internal/deprecateFieldOnObject.js +0 -4
- package/lib/internal/focus/index.js +0 -1
- package/lib/internal/keyboard/keys.js +2 -1
- package/lib/internal/keyboard/match.js +1 -6
- package/lib/internal/keyboard/navigation.js +8 -7
- package/lib/internal/useAnnouncer.js +0 -1
- package/lib/internal/useAttachedMenu.js +1 -9
- package/lib/internal/useControllableState.js +6 -13
- package/lib/internal/useDelayedState.js +2 -4
- package/lib/internal/useEffectOnce.js +0 -1
- package/lib/internal/useEvent.js +61 -2
- package/lib/internal/useId.js +2 -5
- package/lib/internal/useIsomorphicEffect.js +1 -0
- package/lib/internal/useMergedRefs.js +2 -2
- package/lib/internal/useNoInteractiveChildren.js +2 -13
- package/lib/internal/useNormalizedInputProps.js +0 -3
- package/lib/internal/useSavedCallback.js +0 -1
- package/lib/internal/warning.js +0 -3
- package/lib/internal/wrapFocus.js +1 -8
- package/lib/prop-types/deprecate.js +2 -5
- package/lib/prop-types/isRequiredOneOf.js +2 -5
- package/lib/prop-types/requiredIfGivenPropIsTruthy.js +0 -2
- package/lib/tools/array.js +0 -3
- package/lib/tools/events.js +0 -3
- package/lib/tools/mergeRefs.js +0 -2
- package/lib/tools/wrapComponent.js +2 -5
- package/package.json +9 -9
- package/es/components/Tab/Tab.js +0 -185
- package/es/components/Tab/index.js +0 -14
- package/es/components/TimePickerSelect/index.js +0 -13
- package/lib/components/Form/index.js +0 -17
- package/lib/components/Tab/Tab.js +0 -214
- package/lib/components/Tab/index.js +0 -39
- package/lib/components/TimePickerSelect/index.js +0 -38
|
@@ -19,7 +19,6 @@ import { useSelection } from '../../internal/Selection.js';
|
|
|
19
19
|
import setupGetInstanceId from '../../tools/setupGetInstanceId.js';
|
|
20
20
|
import mergeRefs from '../../tools/mergeRefs.js';
|
|
21
21
|
import deprecate from '../../prop-types/deprecate.js';
|
|
22
|
-
import { useFeatureFlag } from '../FeatureFlags/index.js';
|
|
23
22
|
import { usePrefix } from '../../internal/usePrefix.js';
|
|
24
23
|
import '../FluidForm/FluidForm.js';
|
|
25
24
|
import { FormContext } from '../FluidForm/FormContext.js';
|
|
@@ -28,7 +27,6 @@ import { ListBoxSize } from '../ListBox/ListBoxPropTypes.js';
|
|
|
28
27
|
import { Delete, Escape, Space, ArrowDown } from '../../internal/keyboard/keys.js';
|
|
29
28
|
|
|
30
29
|
const noop = () => {};
|
|
31
|
-
|
|
32
30
|
const getInstanceId = setupGetInstanceId();
|
|
33
31
|
const {
|
|
34
32
|
ItemClick,
|
|
@@ -39,23 +37,18 @@ const {
|
|
|
39
37
|
MenuKeyDownSpaceButton,
|
|
40
38
|
ToggleButtonClick
|
|
41
39
|
} = useSelect.stateChangeTypes;
|
|
42
|
-
|
|
43
40
|
const defaultItemToString = item => {
|
|
44
41
|
if (typeof item === 'string') {
|
|
45
42
|
return item;
|
|
46
43
|
}
|
|
47
|
-
|
|
48
44
|
if (typeof item === 'number') {
|
|
49
45
|
return `${item}`;
|
|
50
46
|
}
|
|
51
|
-
|
|
52
47
|
if (item !== null && typeof item === 'object' && 'label' in item && typeof item['label'] === 'string') {
|
|
53
48
|
return item['label'];
|
|
54
49
|
}
|
|
55
|
-
|
|
56
50
|
return '';
|
|
57
51
|
};
|
|
58
|
-
|
|
59
52
|
const MultiSelect = /*#__PURE__*/React__default.forwardRef(function MultiSelect(_ref, ref) {
|
|
60
53
|
let {
|
|
61
54
|
className: containerClassName,
|
|
@@ -121,11 +114,14 @@ const MultiSelect = /*#__PURE__*/React__default.forwardRef(function MultiSelect(
|
|
|
121
114
|
getMenuProps,
|
|
122
115
|
getItemProps,
|
|
123
116
|
selectedItem
|
|
124
|
-
} = useSelect({
|
|
117
|
+
} = useSelect({
|
|
118
|
+
...downshiftProps,
|
|
125
119
|
highlightedIndex,
|
|
126
120
|
isOpen,
|
|
127
121
|
itemToString: items => {
|
|
128
|
-
return items.map(
|
|
122
|
+
return Array.isArray(items) && items.map(function (item) {
|
|
123
|
+
return itemToString(item);
|
|
124
|
+
}).join(', ') || '';
|
|
129
125
|
},
|
|
130
126
|
onStateChange,
|
|
131
127
|
selectedItem: controlledSelectedItems,
|
|
@@ -141,31 +137,27 @@ const MultiSelect = /*#__PURE__*/React__default.forwardRef(function MultiSelect(
|
|
|
141
137
|
});
|
|
142
138
|
const mergedRef = mergeRefs(toggleButtonProps.ref, ref);
|
|
143
139
|
const selectedItems = selectedItem;
|
|
140
|
+
|
|
144
141
|
/**
|
|
145
142
|
* wrapper function to forward changes to consumer
|
|
146
143
|
*/
|
|
147
|
-
|
|
148
144
|
const setIsOpenWrapper = open => {
|
|
149
145
|
setIsOpen(open);
|
|
150
|
-
|
|
151
146
|
if (onMenuChange) {
|
|
152
147
|
onMenuChange(open);
|
|
153
148
|
}
|
|
154
149
|
};
|
|
150
|
+
|
|
155
151
|
/**
|
|
156
152
|
* programmatically control this `open` prop
|
|
157
153
|
*/
|
|
158
|
-
|
|
159
|
-
|
|
160
154
|
if (prevOpenProp !== open) {
|
|
161
155
|
setIsOpenWrapper(open);
|
|
162
156
|
setPrevOpenProp(open);
|
|
163
157
|
}
|
|
164
|
-
|
|
165
158
|
const inline = type === 'inline';
|
|
166
159
|
const showWarning = !invalid && warn;
|
|
167
|
-
const
|
|
168
|
-
const wrapperClasses = cx(`${prefix}--multi-select__wrapper`, `${prefix}--list-box__wrapper`, [enabled ? containerClassName : null], {
|
|
160
|
+
const wrapperClasses = cx(`${prefix}--multi-select__wrapper`, `${prefix}--list-box__wrapper`, containerClassName, {
|
|
169
161
|
[`${prefix}--multi-select__wrapper--inline`]: inline,
|
|
170
162
|
[`${prefix}--list-box__wrapper--inline`]: inline,
|
|
171
163
|
[`${prefix}--multi-select__wrapper--inline--invalid`]: inline && invalid,
|
|
@@ -182,7 +174,7 @@ const MultiSelect = /*#__PURE__*/React__default.forwardRef(function MultiSelect(
|
|
|
182
174
|
const helperClasses = cx(`${prefix}--form__helper-text`, {
|
|
183
175
|
[`${prefix}--form__helper-text--disabled`]: disabled
|
|
184
176
|
});
|
|
185
|
-
const className = cx(`${prefix}--multi-select`,
|
|
177
|
+
const className = cx(`${prefix}--multi-select`, {
|
|
186
178
|
[`${prefix}--multi-select--invalid`]: invalid,
|
|
187
179
|
[`${prefix}--multi-select--invalid--focused`]: invalid && inputFocused,
|
|
188
180
|
[`${prefix}--multi-select--warning`]: showWarning,
|
|
@@ -190,9 +182,10 @@ const MultiSelect = /*#__PURE__*/React__default.forwardRef(function MultiSelect(
|
|
|
190
182
|
[`${prefix}--multi-select--selected`]: selectedItems && selectedItems.length > 0,
|
|
191
183
|
[`${prefix}--list-box--up`]: direction === 'top',
|
|
192
184
|
[`${prefix}--multi-select--readonly`]: readOnly
|
|
193
|
-
});
|
|
194
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
185
|
+
});
|
|
195
186
|
|
|
187
|
+
// needs to be capitalized for react to render it correctly
|
|
188
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
196
189
|
const ItemToElement = itemToElement;
|
|
197
190
|
const sortOptions = {
|
|
198
191
|
selectedItems: controlledSelectedItems,
|
|
@@ -200,83 +193,70 @@ const MultiSelect = /*#__PURE__*/React__default.forwardRef(function MultiSelect(
|
|
|
200
193
|
compareItems,
|
|
201
194
|
locale
|
|
202
195
|
};
|
|
203
|
-
|
|
204
196
|
if (selectionFeedback === 'fixed') {
|
|
205
197
|
sortOptions.selectedItems = [];
|
|
206
198
|
} else if (selectionFeedback === 'top-after-reopen') {
|
|
207
199
|
sortOptions.selectedItems = topItems;
|
|
208
200
|
}
|
|
209
|
-
|
|
210
201
|
function onStateChange(changes) {
|
|
211
202
|
if (changes.isOpen && !isOpen) {
|
|
212
203
|
setTopItems(controlledSelectedItems);
|
|
213
204
|
}
|
|
214
|
-
|
|
215
205
|
const {
|
|
216
206
|
type
|
|
217
207
|
} = changes;
|
|
218
|
-
|
|
219
208
|
switch (type) {
|
|
220
209
|
case ItemClick:
|
|
221
210
|
case MenuKeyDownSpaceButton:
|
|
222
211
|
if (changes.selectedItem === undefined) {
|
|
223
212
|
break;
|
|
224
213
|
}
|
|
225
|
-
|
|
226
214
|
onItemChange(changes.selectedItem);
|
|
227
215
|
break;
|
|
228
|
-
|
|
229
216
|
case MenuKeyDownArrowDown:
|
|
230
217
|
case MenuKeyDownArrowUp:
|
|
231
218
|
setHighlightedIndex(changes.highlightedIndex);
|
|
232
219
|
break;
|
|
233
|
-
|
|
234
220
|
case MenuBlur:
|
|
235
221
|
case MenuKeyDownEscape:
|
|
236
222
|
setIsOpenWrapper(false);
|
|
237
223
|
setHighlightedIndex(changes.highlightedIndex);
|
|
238
224
|
break;
|
|
239
|
-
|
|
240
225
|
case ToggleButtonClick:
|
|
241
226
|
setIsOpenWrapper(changes.isOpen || false);
|
|
242
227
|
setHighlightedIndex(changes.highlightedIndex);
|
|
243
228
|
break;
|
|
244
229
|
}
|
|
245
230
|
}
|
|
246
|
-
|
|
247
231
|
const onKeyDown = e => {
|
|
248
232
|
if (!disabled) {
|
|
249
233
|
if (match(e, Delete) || match(e, Escape)) {
|
|
250
234
|
clearSelection();
|
|
251
235
|
e.stopPropagation();
|
|
252
236
|
}
|
|
253
|
-
|
|
254
237
|
if (match(e, Space) || match(e, ArrowDown)) {
|
|
255
238
|
setIsOpenWrapper(true);
|
|
256
239
|
}
|
|
257
240
|
}
|
|
258
241
|
};
|
|
259
|
-
|
|
260
242
|
const multiSelectFieldWrapperClasses = cx(`${prefix}--list-box__field--wrapper`, {
|
|
261
243
|
[`${prefix}--list-box__field--wrapper--input-focused`]: inputFocused
|
|
262
244
|
});
|
|
263
|
-
|
|
264
245
|
const handleFocus = evt => {
|
|
265
246
|
evt.target.classList.contains(`${prefix}--tag__close-icon`) ? setIsFocused(false) : setIsFocused(evt.type === 'focus' ? true : false);
|
|
266
247
|
};
|
|
267
|
-
|
|
268
248
|
const readOnlyEventHandlers = readOnly ? {
|
|
269
249
|
onClick: evt => {
|
|
270
250
|
// NOTE: does not prevent click
|
|
271
|
-
evt.preventDefault();
|
|
272
|
-
|
|
251
|
+
evt.preventDefault();
|
|
252
|
+
// focus on the element as per readonly input behavior
|
|
273
253
|
if (mergedRef.current !== undefined) {
|
|
274
254
|
mergedRef.current.focus();
|
|
275
255
|
}
|
|
276
256
|
},
|
|
277
257
|
onKeyDown: evt => {
|
|
278
|
-
const selectAccessKeys = ['ArrowDown', 'ArrowUp', ' ', 'Enter'];
|
|
279
|
-
|
|
258
|
+
const selectAccessKeys = ['ArrowDown', 'ArrowUp', ' ', 'Enter'];
|
|
259
|
+
// This prevents the select from opening for the above keys
|
|
280
260
|
if (selectAccessKeys.includes(evt.key)) {
|
|
281
261
|
evt.preventDefault();
|
|
282
262
|
}
|
|
@@ -311,7 +291,8 @@ const MultiSelect = /*#__PURE__*/React__default.forwardRef(function MultiSelect(
|
|
|
311
291
|
}, selectedItems.length > 0 && /*#__PURE__*/React__default.createElement(ListBox.Selection, {
|
|
312
292
|
readOnly: readOnly,
|
|
313
293
|
clearSelection: !disabled && !readOnly ? clearSelection : noop,
|
|
314
|
-
selectionCount: selectedItems.length
|
|
294
|
+
selectionCount: selectedItems.length
|
|
295
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
315
296
|
,
|
|
316
297
|
translateWithId: translateWithId,
|
|
317
298
|
disabled: disabled
|
|
@@ -332,7 +313,8 @@ const MultiSelect = /*#__PURE__*/React__default.forwardRef(function MultiSelect(
|
|
|
332
313
|
translateWithId: translateWithId
|
|
333
314
|
}))), /*#__PURE__*/React__default.createElement(ListBox.Menu, _extends({
|
|
334
315
|
"aria-multiselectable": "true"
|
|
335
|
-
}, getMenuProps()), isOpen &&
|
|
316
|
+
}, getMenuProps()), isOpen &&
|
|
317
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
336
318
|
sortItems(items, sortOptions).map((item, index) => {
|
|
337
319
|
const isChecked = selectedItems.filter(selected => isEqual(selected, item)).length > 0;
|
|
338
320
|
const itemProps = getItemProps({
|
|
@@ -365,135 +347,112 @@ const MultiSelect = /*#__PURE__*/React__default.forwardRef(function MultiSelect(
|
|
|
365
347
|
}, helperText));
|
|
366
348
|
});
|
|
367
349
|
MultiSelect.displayName = 'MultiSelect';
|
|
368
|
-
MultiSelect.propTypes = {
|
|
369
|
-
|
|
350
|
+
MultiSelect.propTypes = {
|
|
351
|
+
...sortingPropTypes,
|
|
370
352
|
/**
|
|
371
353
|
* Provide a custom class name to be added to the outermost node in the
|
|
372
354
|
* component
|
|
373
355
|
*/
|
|
374
356
|
className: PropTypes.string,
|
|
375
|
-
|
|
376
357
|
/**
|
|
377
358
|
* Specify the text that should be read for screen readers that describes total items selected
|
|
378
359
|
*/
|
|
379
360
|
clearSelectionDescription: PropTypes.string,
|
|
380
|
-
|
|
381
361
|
/**
|
|
382
362
|
* Specify the text that should be read for screen readers to clear selection.
|
|
383
363
|
*/
|
|
384
364
|
clearSelectionText: PropTypes.string,
|
|
385
|
-
|
|
386
365
|
/**
|
|
387
366
|
* Specify the direction of the multiselect dropdown. Can be either top or bottom.
|
|
388
367
|
*/
|
|
389
368
|
direction: PropTypes.oneOf(['top', 'bottom']),
|
|
390
|
-
|
|
391
369
|
/**
|
|
392
370
|
* Disable the control
|
|
393
371
|
*/
|
|
394
372
|
disabled: PropTypes.bool,
|
|
395
|
-
|
|
396
373
|
/**
|
|
397
374
|
* Additional props passed to Downshift
|
|
398
375
|
*/
|
|
399
376
|
// @ts-ignore
|
|
400
377
|
downshiftProps: PropTypes.shape(Downshift.propTypes),
|
|
401
|
-
|
|
402
378
|
/**
|
|
403
379
|
* Provide helper text that is used alongside the control label for
|
|
404
380
|
* additional help
|
|
405
381
|
*/
|
|
406
382
|
helperText: PropTypes.node,
|
|
407
|
-
|
|
408
383
|
/**
|
|
409
384
|
* Specify whether the title text should be hidden or not
|
|
410
385
|
*/
|
|
411
386
|
hideLabel: PropTypes.bool,
|
|
412
|
-
|
|
413
387
|
/**
|
|
414
388
|
* Specify a custom `id`
|
|
415
389
|
*/
|
|
416
390
|
id: PropTypes.string.isRequired,
|
|
417
|
-
|
|
418
391
|
/**
|
|
419
392
|
* Allow users to pass in arbitrary items from their collection that are
|
|
420
393
|
* pre-selected
|
|
421
394
|
*/
|
|
422
395
|
initialSelectedItems: PropTypes.array,
|
|
423
|
-
|
|
424
396
|
/**
|
|
425
397
|
* Is the current selection invalid?
|
|
426
398
|
*/
|
|
427
399
|
invalid: PropTypes.bool,
|
|
428
|
-
|
|
429
400
|
/**
|
|
430
401
|
* If invalid, what is the error?
|
|
431
402
|
*/
|
|
432
403
|
invalidText: PropTypes.node,
|
|
433
|
-
|
|
434
404
|
/**
|
|
435
405
|
* Function to render items as custom components instead of strings.
|
|
436
406
|
* Defaults to null and is overridden by a getter
|
|
437
407
|
*/
|
|
438
408
|
itemToElement: PropTypes.func,
|
|
439
|
-
|
|
440
409
|
/**
|
|
441
410
|
* Helper function passed to downshift that allows the library to render a
|
|
442
411
|
* given item to a string label. By default, it extracts the `label` field
|
|
443
412
|
* from a given item to serve as the item label in the list.
|
|
444
413
|
*/
|
|
445
414
|
itemToString: PropTypes.func,
|
|
446
|
-
|
|
447
415
|
/**
|
|
448
416
|
* We try to stay as generic as possible here to allow individuals to pass
|
|
449
417
|
* in a collection of whatever kind of data structure they prefer
|
|
450
418
|
*/
|
|
451
419
|
items: PropTypes.array.isRequired,
|
|
452
|
-
|
|
453
420
|
/**
|
|
454
421
|
* Generic `label` that will be used as the textual representation of what
|
|
455
422
|
* this field is for
|
|
456
423
|
*/
|
|
457
424
|
label: PropTypes.node.isRequired,
|
|
458
|
-
|
|
459
425
|
/**
|
|
460
426
|
* `true` to use the light version.
|
|
461
427
|
*/
|
|
462
428
|
light: deprecate(PropTypes.bool, 'The `light` prop for `MultiSelect` has ' + 'been deprecated in favor of the new `Layer` component. It will be removed in the next major release.'),
|
|
463
|
-
|
|
464
429
|
/**
|
|
465
430
|
* Specify the locale of the control. Used for the default `compareItems`
|
|
466
431
|
* used for sorting the list of items in the control.
|
|
467
432
|
*/
|
|
468
433
|
locale: PropTypes.string,
|
|
469
|
-
|
|
470
434
|
/**
|
|
471
435
|
* `onChange` is a utility for this controlled component to communicate to a
|
|
472
436
|
* consuming component what kind of internal state changes are occurring.
|
|
473
437
|
*/
|
|
474
438
|
onChange: PropTypes.func,
|
|
475
|
-
|
|
476
439
|
/**
|
|
477
440
|
* `onMenuChange` is a utility for this controlled component to communicate to a
|
|
478
441
|
* consuming component that the menu was open(`true`)/closed(`false`).
|
|
479
442
|
*/
|
|
480
443
|
onMenuChange: PropTypes.func,
|
|
481
|
-
|
|
482
444
|
/**
|
|
483
445
|
* Initialize the component with an open(`true`)/closed(`false`) menu.
|
|
484
446
|
*/
|
|
485
447
|
open: PropTypes.bool,
|
|
486
|
-
|
|
487
448
|
/**
|
|
488
449
|
* Whether or not the Dropdown is readonly
|
|
489
450
|
*/
|
|
490
451
|
readOnly: PropTypes.bool,
|
|
491
|
-
|
|
492
452
|
/**
|
|
493
453
|
* For full control of the selected items
|
|
494
454
|
*/
|
|
495
455
|
selectedItems: PropTypes.array,
|
|
496
|
-
|
|
497
456
|
/**
|
|
498
457
|
* Specify feedback (mode) of the selection.
|
|
499
458
|
* `top`: selected item jumps to top
|
|
@@ -501,38 +460,31 @@ MultiSelect.propTypes = { ...sortingPropTypes,
|
|
|
501
460
|
* `top-after-reopen`: selected item jump to top after reopen dropdown
|
|
502
461
|
*/
|
|
503
462
|
selectionFeedback: PropTypes.oneOf(['top', 'fixed', 'top-after-reopen']),
|
|
504
|
-
|
|
505
463
|
/**
|
|
506
464
|
* Specify the size of the ListBox. Currently supports either `sm`, `md` or `lg` as an option.
|
|
507
465
|
*/
|
|
508
466
|
size: ListBoxSize,
|
|
509
|
-
|
|
510
467
|
/**
|
|
511
468
|
* Provide text to be used in a `<label>` element that is tied to the
|
|
512
469
|
* multiselect via ARIA attributes.
|
|
513
470
|
*/
|
|
514
471
|
titleText: PropTypes.node,
|
|
515
|
-
|
|
516
472
|
/**
|
|
517
473
|
* Callback function for translating ListBoxMenuIcon SVG title
|
|
518
474
|
*/
|
|
519
475
|
translateWithId: PropTypes.func,
|
|
520
|
-
|
|
521
476
|
/**
|
|
522
477
|
* Specify 'inline' to create an inline multi-select.
|
|
523
478
|
*/
|
|
524
479
|
type: PropTypes.oneOf(['default', 'inline']),
|
|
525
|
-
|
|
526
480
|
/**
|
|
527
481
|
* Specify title to show title on hover
|
|
528
482
|
*/
|
|
529
483
|
useTitleInItem: PropTypes.bool,
|
|
530
|
-
|
|
531
484
|
/**
|
|
532
485
|
* Specify whether the control is currently in warning state
|
|
533
486
|
*/
|
|
534
487
|
warn: PropTypes.bool,
|
|
535
|
-
|
|
536
488
|
/**
|
|
537
489
|
* Provide the text that is displayed when the control is in warning state
|
|
538
490
|
*/
|
|
@@ -16,7 +16,6 @@ const sortingPropTypes = {
|
|
|
16
16
|
* (itemA: string, itemB: string, { locale: string }) => number
|
|
17
17
|
*/
|
|
18
18
|
compareItems: PropTypes.func.isRequired,
|
|
19
|
-
|
|
20
19
|
/**
|
|
21
20
|
* Provide a method that sorts all options in the control. Overriding this
|
|
22
21
|
* prop means that you also have to handle the sort logic for selected versus
|
|
@@ -13,7 +13,6 @@ export { default as FilterableMultiSelect } from './FilterableMultiSelect.js';
|
|
|
13
13
|
|
|
14
14
|
FilterableMultiSelect.displayName = 'MultiSelect.Filterable';
|
|
15
15
|
MultiSelect.Filterable = FilterableMultiSelect;
|
|
16
|
-
|
|
17
16
|
if (process.env.NODE_ENV !== "production") {
|
|
18
17
|
deprecateFieldOnObject(MultiSelect, 'Filterable', FilterableMultiSelect);
|
|
19
18
|
}
|
|
@@ -11,12 +11,10 @@ const itemToString = item => {
|
|
|
11
11
|
!(typeof item.label === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, '[MultiSelect] the default `itemToString` method expected to receive ' + 'an item with a `label` field of type `string`. Instead received: `%s`', typeof item.label) : invariant(false) : void 0;
|
|
12
12
|
return item.label || '';
|
|
13
13
|
};
|
|
14
|
-
|
|
15
14
|
const defaultItemToString = item => {
|
|
16
15
|
if (Array.isArray(item)) {
|
|
17
16
|
return item.map(itemToString);
|
|
18
17
|
}
|
|
19
|
-
|
|
20
18
|
return itemToString(item);
|
|
21
19
|
};
|
|
22
20
|
|
|
@@ -23,10 +23,10 @@ const defaultCompareItems = (itemA, itemB, _ref) => {
|
|
|
23
23
|
numeric: true
|
|
24
24
|
});
|
|
25
25
|
};
|
|
26
|
+
|
|
26
27
|
/**
|
|
27
28
|
* Default sorting algorithm for options in a selection control
|
|
28
29
|
*/
|
|
29
|
-
|
|
30
30
|
const defaultSortItems = (items, _ref2) => {
|
|
31
31
|
let {
|
|
32
32
|
selectedItems = [],
|
|
@@ -36,16 +36,15 @@ const defaultSortItems = (items, _ref2) => {
|
|
|
36
36
|
} = _ref2;
|
|
37
37
|
return items.sort((itemA, itemB) => {
|
|
38
38
|
const hasItemA = selectedItems.includes(itemA);
|
|
39
|
-
const hasItemB = selectedItems.includes(itemB);
|
|
39
|
+
const hasItemB = selectedItems.includes(itemB);
|
|
40
40
|
|
|
41
|
+
// Prefer whichever item is in the `selectedItems` array first
|
|
41
42
|
if (hasItemA && !hasItemB) {
|
|
42
43
|
return -1;
|
|
43
44
|
}
|
|
44
|
-
|
|
45
45
|
if (hasItemB && !hasItemA) {
|
|
46
46
|
return 1;
|
|
47
47
|
}
|
|
48
|
-
|
|
49
48
|
return compareItems(itemToString(itemA), itemToString(itemB), {
|
|
50
49
|
locale
|
|
51
50
|
});
|