@carbon/react 1.29.0 → 1.30.0-rc.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 +154 -177
- 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 +1 -11
- package/es/components/FileUploader/Filename.js +0 -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 +0 -43
- 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 +1 -2
- 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 +154 -177
- 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 +1 -30
- package/lib/components/FileUploader/Filename.js +0 -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 +0 -43
- 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 +1 -2
- 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
|
@@ -22,7 +22,6 @@ function useIsTruncated(ref) {
|
|
|
22
22
|
}, [ref, setIsTruncated]);
|
|
23
23
|
return isTruncated;
|
|
24
24
|
}
|
|
25
|
-
|
|
26
25
|
/**
|
|
27
26
|
* `ListBoxMenuItem` is a helper component for managing the container class
|
|
28
27
|
* name, alongside any classes for any corresponding states, for a generic list
|
|
@@ -38,7 +37,7 @@ const ListBoxMenuItem = /*#__PURE__*/React__default.forwardRef(function ListBoxM
|
|
|
38
37
|
} = _ref;
|
|
39
38
|
const prefix = usePrefix();
|
|
40
39
|
const ref = useRef(null);
|
|
41
|
-
const isTruncated = useIsTruncated(
|
|
40
|
+
const isTruncated = useIsTruncated(forwardedRef?.menuItemOptionRef || ref);
|
|
42
41
|
const className = cx(`${prefix}--list-box__menu-item`, {
|
|
43
42
|
[`${prefix}--list-box__menu-item--active`]: isActive,
|
|
44
43
|
[`${prefix}--list-box__menu-item--highlighted`]: isHighlighted
|
|
@@ -49,7 +48,7 @@ const ListBoxMenuItem = /*#__PURE__*/React__default.forwardRef(function ListBoxM
|
|
|
49
48
|
tabIndex: -1
|
|
50
49
|
}), /*#__PURE__*/React__default.createElement("div", {
|
|
51
50
|
className: `${prefix}--list-box__menu-item__option`,
|
|
52
|
-
ref:
|
|
51
|
+
ref: forwardedRef?.menuItemOptionRef || ref
|
|
53
52
|
}, children));
|
|
54
53
|
});
|
|
55
54
|
ListBoxMenuItem.displayName = 'ListBoxMenuItem';
|
|
@@ -59,17 +58,14 @@ ListBoxMenuItem.propTypes = {
|
|
|
59
58
|
* Menu Item
|
|
60
59
|
*/
|
|
61
60
|
children: PropTypes.node,
|
|
62
|
-
|
|
63
61
|
/**
|
|
64
62
|
* Specify whether the current menu item is "active".
|
|
65
63
|
*/
|
|
66
64
|
isActive: PropTypes.bool.isRequired,
|
|
67
|
-
|
|
68
65
|
/**
|
|
69
66
|
* Specify whether the current menu item is "highlighted".
|
|
70
67
|
*/
|
|
71
68
|
isHighlighted: PropTypes.bool.isRequired,
|
|
72
|
-
|
|
73
69
|
/**
|
|
74
70
|
* Provide an optional tooltip for the ListBoxMenuItem
|
|
75
71
|
*/
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
declare const listBoxTypes: readonly ["default", "inline"];
|
|
9
9
|
declare const listBoxSizes: readonly ["sm", "md", "lg"];
|
|
10
|
-
export type ListBoxType = typeof listBoxTypes[number];
|
|
11
|
-
export type ListBoxSize = typeof listBoxSizes[number];
|
|
10
|
+
export type ListBoxType = (typeof listBoxTypes)[number];
|
|
11
|
+
export type ListBoxSize = (typeof listBoxSizes)[number];
|
|
12
12
|
export declare const ListBoxType: PropTypes.Requireable<"default" | "inline">;
|
|
13
13
|
export declare const ListBoxSize: PropTypes.Requireable<"md" | "sm" | "lg">;
|
|
14
14
|
export {};
|
|
@@ -12,7 +12,6 @@ import { Close } from '@carbon/icons-react';
|
|
|
12
12
|
import { usePrefix } from '../../internal/usePrefix.js';
|
|
13
13
|
|
|
14
14
|
var _Close, _Close2;
|
|
15
|
-
|
|
16
15
|
/**
|
|
17
16
|
* `ListBoxSelection` is used to provide controls for clearing a selection, in
|
|
18
17
|
* addition to conditionally rendering a badge if the control has more than one
|
|
@@ -32,27 +31,22 @@ const ListBoxSelection = _ref => {
|
|
|
32
31
|
[`${prefix}--tag--filter`]: selectionCount,
|
|
33
32
|
[`${prefix}--list-box__selection--multi`]: selectionCount
|
|
34
33
|
});
|
|
35
|
-
|
|
36
34
|
const handleOnClick = event => {
|
|
37
35
|
event.stopPropagation();
|
|
38
|
-
|
|
39
36
|
if (disabled || readOnly) {
|
|
40
37
|
return;
|
|
41
38
|
}
|
|
42
|
-
|
|
43
39
|
clearSelection(event);
|
|
44
|
-
|
|
45
40
|
if (onClearSelection) {
|
|
46
41
|
onClearSelection(event);
|
|
47
42
|
}
|
|
48
43
|
};
|
|
49
|
-
|
|
50
44
|
const description = selectionCount ? t('clear.all') : t('clear.selection');
|
|
51
45
|
const tagClasses = cx(`${prefix}--tag`, `${prefix}--tag--filter`, `${prefix}--tag--high-contrast`, {
|
|
52
46
|
[`${prefix}--tag--disabled`]: disabled
|
|
53
47
|
});
|
|
54
|
-
/* eslint-disable jsx-a11y/click-events-have-key-events */
|
|
55
48
|
|
|
49
|
+
/* eslint-disable jsx-a11y/click-events-have-key-events */
|
|
56
50
|
return selectionCount ? /*#__PURE__*/React__default.createElement("div", {
|
|
57
51
|
className: tagClasses
|
|
58
52
|
}, /*#__PURE__*/React__default.createElement("span", {
|
|
@@ -75,7 +69,6 @@ const ListBoxSelection = _ref => {
|
|
|
75
69
|
title: description
|
|
76
70
|
}, selectionCount, _Close2 || (_Close2 = /*#__PURE__*/React__default.createElement(Close, null)));
|
|
77
71
|
};
|
|
78
|
-
|
|
79
72
|
const translationIds = {
|
|
80
73
|
'clear.all': 'clear.all',
|
|
81
74
|
'clear.selection': 'clear.selection'
|
|
@@ -90,29 +83,24 @@ ListBoxSelection.propTypes = {
|
|
|
90
83
|
* selection element.
|
|
91
84
|
*/
|
|
92
85
|
clearSelection: PropTypes.func.isRequired,
|
|
93
|
-
|
|
94
86
|
/**
|
|
95
87
|
* Specify whether or not the clear selection element should be disabled
|
|
96
88
|
*/
|
|
97
89
|
disabled: PropTypes.bool,
|
|
98
|
-
|
|
99
90
|
/**
|
|
100
91
|
* Specify an optional `onClearSelection` handler that is called when the underlying
|
|
101
92
|
* element is cleared
|
|
102
93
|
*/
|
|
103
94
|
onClearSelection: PropTypes.func,
|
|
104
|
-
|
|
105
95
|
/**
|
|
106
96
|
* Whether or not the Dropdown is readonly
|
|
107
97
|
*/
|
|
108
98
|
readOnly: PropTypes.bool,
|
|
109
|
-
|
|
110
99
|
/**
|
|
111
100
|
* Specify an optional `selectionCount` value that will be used to determine
|
|
112
101
|
* whether the selection should display a badge or a single clear icon.
|
|
113
102
|
*/
|
|
114
103
|
selectionCount: PropTypes.number,
|
|
115
|
-
|
|
116
104
|
/**
|
|
117
105
|
* i18n hook used to provide the appropriate description for the given menu
|
|
118
106
|
* icon. This function takes in an id defined in `translationIds` and should
|
|
@@ -13,12 +13,12 @@ import { Close } from '@carbon/icons-react';
|
|
|
13
13
|
import { usePrefix } from '../../../internal/usePrefix.js';
|
|
14
14
|
|
|
15
15
|
var _Close, _Close2;
|
|
16
|
+
|
|
16
17
|
/**
|
|
17
18
|
* `ListBoxSelection` is used to provide controls for clearing a selection, in
|
|
18
19
|
* addition to conditionally rendering a badge if the control has more than one
|
|
19
20
|
* selection.
|
|
20
21
|
*/
|
|
21
|
-
|
|
22
22
|
function ListBoxSelection(_ref) {
|
|
23
23
|
let {
|
|
24
24
|
clearSelection,
|
|
@@ -37,21 +37,16 @@ function ListBoxSelection(_ref) {
|
|
|
37
37
|
const tagClasses = cx(`${prefix}--tag`, `${prefix}--tag--filter`, `${prefix}--tag--high-contrast`, {
|
|
38
38
|
[`${prefix}--tag--disabled`]: disabled
|
|
39
39
|
});
|
|
40
|
-
|
|
41
40
|
function onClick(event) {
|
|
42
41
|
event.stopPropagation();
|
|
43
|
-
|
|
44
42
|
if (disabled) {
|
|
45
43
|
return;
|
|
46
44
|
}
|
|
47
|
-
|
|
48
45
|
clearSelection(event);
|
|
49
|
-
|
|
50
46
|
if (onClearSelection) {
|
|
51
47
|
onClearSelection(event);
|
|
52
48
|
}
|
|
53
49
|
}
|
|
54
|
-
|
|
55
50
|
if (selectionCount) {
|
|
56
51
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
57
52
|
className: tagClasses
|
|
@@ -68,7 +63,6 @@ function ListBoxSelection(_ref) {
|
|
|
68
63
|
type: "button"
|
|
69
64
|
}, _Close || (_Close = /*#__PURE__*/React__default.createElement(Close, null))));
|
|
70
65
|
}
|
|
71
|
-
|
|
72
66
|
return /*#__PURE__*/React__default.createElement("button", _extends({}, rest, {
|
|
73
67
|
"aria-label": description,
|
|
74
68
|
className: className,
|
|
@@ -79,7 +73,6 @@ function ListBoxSelection(_ref) {
|
|
|
79
73
|
type: "button"
|
|
80
74
|
}), _Close2 || (_Close2 = /*#__PURE__*/React__default.createElement(Close, null)));
|
|
81
75
|
}
|
|
82
|
-
|
|
83
76
|
const translationIds = {
|
|
84
77
|
'clear.all': 'clear.all',
|
|
85
78
|
'clear.selection': 'clear.selection'
|
|
@@ -94,36 +87,30 @@ ListBoxSelection.propTypes = {
|
|
|
94
87
|
* selection element.
|
|
95
88
|
*/
|
|
96
89
|
clearSelection: PropTypes.func.isRequired,
|
|
97
|
-
|
|
98
90
|
/**
|
|
99
91
|
* Specify whether or not the clear selection element should be disabled
|
|
100
92
|
*/
|
|
101
93
|
disabled: PropTypes.bool,
|
|
102
|
-
|
|
103
94
|
/**
|
|
104
95
|
* Specify an optional `onClearSelection` handler that is called when the underlying
|
|
105
96
|
* element is cleared
|
|
106
97
|
*/
|
|
107
98
|
onClearSelection: PropTypes.func,
|
|
108
|
-
|
|
109
99
|
/**
|
|
110
100
|
* Specify an optional `onClick` handler that is called when the underlying
|
|
111
101
|
* clear selection element is clicked
|
|
112
102
|
*/
|
|
113
103
|
onClick: PropTypes.func,
|
|
114
|
-
|
|
115
104
|
/**
|
|
116
105
|
* Specify an optional `onKeyDown` handler that is called when the underlying
|
|
117
106
|
* clear selection element fires a keydown event
|
|
118
107
|
*/
|
|
119
108
|
onKeyDown: PropTypes.func,
|
|
120
|
-
|
|
121
109
|
/**
|
|
122
110
|
* Specify an optional `selectionCount` value that will be used to determine
|
|
123
111
|
* whether the selection should display a badge or a single clear icon.
|
|
124
112
|
*/
|
|
125
113
|
selectionCount: PropTypes.number,
|
|
126
|
-
|
|
127
114
|
/**
|
|
128
115
|
* i18n hook used to provide the appropriate description for the given menu
|
|
129
116
|
* icon. This function takes in an id defined in `translationIds` and should
|
|
@@ -21,11 +21,11 @@ const defaultTranslations = {
|
|
|
21
21
|
[translationIds['close.menu']]: 'Close',
|
|
22
22
|
[translationIds['open.menu']]: 'Open'
|
|
23
23
|
};
|
|
24
|
+
|
|
24
25
|
/**
|
|
25
26
|
* `ListBoxTrigger` is used to orient the icon up or down depending on the
|
|
26
27
|
* state of the menu for a given `ListBox`
|
|
27
28
|
*/
|
|
28
|
-
|
|
29
29
|
const ListBoxTrigger = _ref => {
|
|
30
30
|
let {
|
|
31
31
|
isOpen,
|
|
@@ -46,14 +46,12 @@ const ListBoxTrigger = _ref => {
|
|
|
46
46
|
tabIndex: "-1"
|
|
47
47
|
}), _ChevronDown || (_ChevronDown = /*#__PURE__*/React__default.createElement(ChevronDown, null)));
|
|
48
48
|
};
|
|
49
|
-
|
|
50
49
|
ListBoxTrigger.propTypes = {
|
|
51
50
|
/**
|
|
52
51
|
* Specify whether the menu is currently open, which will influence the
|
|
53
52
|
* direction of the menu icon
|
|
54
53
|
*/
|
|
55
54
|
isOpen: PropTypes.bool.isRequired,
|
|
56
|
-
|
|
57
55
|
/**
|
|
58
56
|
* i18n hook used to provide the appropriate description for the given menu
|
|
59
57
|
* icon. This function takes in an id defined in `translationIds` and should
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2016, 2023
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import PropTypes from 'prop-types';
|
|
8
|
+
import { type ComponentProps } from 'react';
|
|
9
|
+
type ListItemProps = ComponentProps<'li'>;
|
|
10
|
+
declare function ListItem({ className, ...other }: ListItemProps): JSX.Element;
|
|
11
|
+
declare namespace ListItem {
|
|
12
|
+
var propTypes: {
|
|
13
|
+
/**
|
|
14
|
+
* Specify the content for the ListItem
|
|
15
|
+
*/
|
|
16
|
+
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
17
|
+
/**
|
|
18
|
+
* Specify an optional className to apply to the underlying `<li>` node
|
|
19
|
+
*/
|
|
20
|
+
className: PropTypes.Requireable<string>;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export default ListItem;
|
|
@@ -11,9 +11,8 @@ import React__default from 'react';
|
|
|
11
11
|
import cx from 'classnames';
|
|
12
12
|
import { usePrefix } from '../../internal/usePrefix.js';
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
function ListItem(_ref) {
|
|
15
15
|
let {
|
|
16
|
-
children,
|
|
17
16
|
className,
|
|
18
17
|
...other
|
|
19
18
|
} = _ref;
|
|
@@ -21,20 +20,17 @@ const ListItem = _ref => {
|
|
|
21
20
|
const classNames = cx(`${prefix}--list__item`, className);
|
|
22
21
|
return /*#__PURE__*/React__default.createElement("li", _extends({
|
|
23
22
|
className: classNames
|
|
24
|
-
}, other)
|
|
25
|
-
}
|
|
26
|
-
|
|
23
|
+
}, other));
|
|
24
|
+
}
|
|
27
25
|
ListItem.propTypes = {
|
|
28
26
|
/**
|
|
29
27
|
* Specify the content for the ListItem
|
|
30
28
|
*/
|
|
31
29
|
children: PropTypes.node,
|
|
32
|
-
|
|
33
30
|
/**
|
|
34
31
|
* Specify an optional className to apply to the underlying `<li>` node
|
|
35
32
|
*/
|
|
36
33
|
className: PropTypes.string
|
|
37
34
|
};
|
|
38
|
-
var ListItem$1 = ListItem;
|
|
39
35
|
|
|
40
|
-
export { ListItem
|
|
36
|
+
export { ListItem as default };
|
|
@@ -53,33 +53,27 @@ function Loading(_ref) {
|
|
|
53
53
|
className: overlayClassName
|
|
54
54
|
}, loading) : loading;
|
|
55
55
|
}
|
|
56
|
-
|
|
57
56
|
Loading.propTypes = {
|
|
58
57
|
/**
|
|
59
58
|
* Specify whether you want the loading indicator to be spinning or not
|
|
60
59
|
*/
|
|
61
60
|
active: PropTypes.bool,
|
|
62
|
-
|
|
63
61
|
/**
|
|
64
62
|
* Provide an optional className to be applied to the containing node
|
|
65
63
|
*/
|
|
66
64
|
className: PropTypes.string,
|
|
67
|
-
|
|
68
65
|
/**
|
|
69
66
|
* Specify a description that would be used to best describe the loading state
|
|
70
67
|
*/
|
|
71
68
|
description: PropTypes.string,
|
|
72
|
-
|
|
73
69
|
/**
|
|
74
70
|
* Provide an `id` to uniquely identify the label
|
|
75
71
|
*/
|
|
76
72
|
id: deprecate(PropTypes.string, `\nThe prop \`id\` is no longer needed.`),
|
|
77
|
-
|
|
78
73
|
/**
|
|
79
74
|
* Specify whether you would like the small variant of <Loading>
|
|
80
75
|
*/
|
|
81
76
|
small: PropTypes.bool,
|
|
82
|
-
|
|
83
77
|
/**
|
|
84
78
|
* Specify whether you want the loader to be applied with an overlay
|
|
85
79
|
*/
|
|
@@ -37,7 +37,8 @@ const Menu = /*#__PURE__*/React__default.forwardRef(function Menu(_ref, forwardR
|
|
|
37
37
|
const context = useContext(MenuContext);
|
|
38
38
|
const isRoot = context.state.isRoot;
|
|
39
39
|
const menuSize = isRoot ? size : context.state.size;
|
|
40
|
-
const [childState, childDispatch] = useReducer(menuReducer, {
|
|
40
|
+
const [childState, childDispatch] = useReducer(menuReducer, {
|
|
41
|
+
...context.state,
|
|
41
42
|
isRoot: false,
|
|
42
43
|
size,
|
|
43
44
|
requestCloseRoot: isRoot ? handleClose : context.state.requestCloseRoot
|
|
@@ -52,13 +53,11 @@ const Menu = /*#__PURE__*/React__default.forwardRef(function Menu(_ref, forwardR
|
|
|
52
53
|
const ref = useMergedRefs([forwardRef, menu]);
|
|
53
54
|
const [position, setPosition] = useState([-1, -1]);
|
|
54
55
|
const focusableItems = childContext.state.items.filter(item => !item.disabled && item.ref.current);
|
|
55
|
-
|
|
56
56
|
function returnFocus() {
|
|
57
57
|
if (focusReturn.current) {
|
|
58
58
|
focusReturn.current.focus();
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
|
|
62
61
|
function handleOpen() {
|
|
63
62
|
if (menu.current) {
|
|
64
63
|
focusReturn.current = document.activeElement;
|
|
@@ -67,13 +66,11 @@ const Menu = /*#__PURE__*/React__default.forwardRef(function Menu(_ref, forwardR
|
|
|
67
66
|
menu.current.style.top = `${pos[1]}px`;
|
|
68
67
|
setPosition(pos);
|
|
69
68
|
menu.current.focus();
|
|
70
|
-
|
|
71
69
|
if (onOpen) {
|
|
72
70
|
onOpen();
|
|
73
71
|
}
|
|
74
72
|
}
|
|
75
73
|
}
|
|
76
|
-
|
|
77
74
|
function handleClose(e) {
|
|
78
75
|
if (/^key/.test(e.type)) {
|
|
79
76
|
window.addEventListener('keyup', returnFocus, {
|
|
@@ -86,60 +83,53 @@ const Menu = /*#__PURE__*/React__default.forwardRef(function Menu(_ref, forwardR
|
|
|
86
83
|
} else {
|
|
87
84
|
returnFocus();
|
|
88
85
|
}
|
|
89
|
-
|
|
90
86
|
if (onClose) {
|
|
91
87
|
onClose();
|
|
92
88
|
}
|
|
93
89
|
}
|
|
94
|
-
|
|
95
90
|
function handleKeyDown(e) {
|
|
96
|
-
e.stopPropagation();
|
|
97
|
-
// and the user presses ArrowLeft, close it
|
|
91
|
+
e.stopPropagation();
|
|
98
92
|
|
|
93
|
+
// if the user presses escape or this is a submenu
|
|
94
|
+
// and the user presses ArrowLeft, close it
|
|
99
95
|
if ((match(e, Escape) || !isRoot && match(e, ArrowLeft)) && onClose) {
|
|
100
96
|
handleClose(e);
|
|
101
97
|
} else {
|
|
102
98
|
focusItem(e);
|
|
103
99
|
}
|
|
104
100
|
}
|
|
105
|
-
|
|
106
101
|
function focusItem(e) {
|
|
107
102
|
const currentItem = focusableItems.findIndex(item => item.ref.current.contains(document.activeElement));
|
|
108
|
-
let indexToFocus = currentItem;
|
|
109
|
-
// in this case, the first item should receive focus.
|
|
103
|
+
let indexToFocus = currentItem;
|
|
110
104
|
|
|
105
|
+
// if currentItem is -1, no menu item is focused yet.
|
|
106
|
+
// in this case, the first item should receive focus.
|
|
111
107
|
if (currentItem === -1) {
|
|
112
108
|
indexToFocus = 0;
|
|
113
109
|
} else if (e) {
|
|
114
110
|
if (match(e, ArrowUp)) {
|
|
115
111
|
indexToFocus = indexToFocus - 1;
|
|
116
112
|
}
|
|
117
|
-
|
|
118
113
|
if (match(e, ArrowDown)) {
|
|
119
114
|
indexToFocus = indexToFocus + 1;
|
|
120
115
|
}
|
|
121
116
|
}
|
|
122
|
-
|
|
123
117
|
if (indexToFocus < 0) {
|
|
124
118
|
indexToFocus = focusableItems.length - 1;
|
|
125
119
|
}
|
|
126
|
-
|
|
127
120
|
if (indexToFocus >= focusableItems.length) {
|
|
128
121
|
indexToFocus = 0;
|
|
129
122
|
}
|
|
130
|
-
|
|
131
123
|
if (indexToFocus !== currentItem) {
|
|
132
124
|
const nodeToFocus = focusableItems[indexToFocus];
|
|
133
125
|
nodeToFocus.ref.current.focus();
|
|
134
126
|
}
|
|
135
127
|
}
|
|
136
|
-
|
|
137
128
|
function handleBlur(e) {
|
|
138
129
|
if (open && onClose && isRoot && !menu.current.contains(e.relatedTarget)) {
|
|
139
130
|
handleClose(e);
|
|
140
131
|
}
|
|
141
132
|
}
|
|
142
|
-
|
|
143
133
|
function fitValue(range, axis) {
|
|
144
134
|
const {
|
|
145
135
|
width,
|
|
@@ -160,25 +150,28 @@ const Menu = /*#__PURE__*/React__default.forwardRef(function Menu(_ref, forwardR
|
|
|
160
150
|
anchor: alignment === 'horizontal' ? range[0] : range[1],
|
|
161
151
|
reversedAnchor: alignment === 'horizontal' ? range[1] : range[0],
|
|
162
152
|
offset: isRoot ? 0 : 4 // top padding in menu, used to align the menu items
|
|
163
|
-
|
|
164
153
|
}
|
|
165
154
|
};
|
|
155
|
+
|
|
166
156
|
const {
|
|
167
157
|
max,
|
|
168
158
|
size,
|
|
169
159
|
anchor,
|
|
170
160
|
reversedAnchor,
|
|
171
161
|
offset
|
|
172
|
-
} = axes[axis];
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
162
|
+
} = axes[axis];
|
|
163
|
+
|
|
164
|
+
// get values for different scenarios, set to false if they don't work
|
|
165
|
+
const options = [
|
|
166
|
+
// towards max (preferred)
|
|
167
|
+
max - spacing - size - anchor >= 0 ? anchor - offset : false,
|
|
168
|
+
// towards min / reversed (first fallback)
|
|
169
|
+
reversedAnchor - size >= 0 ? reversedAnchor - size + offset : false,
|
|
170
|
+
// align at max (second fallback)
|
|
177
171
|
max - spacing - size];
|
|
178
172
|
const bestOption = options.find(option => option !== false);
|
|
179
173
|
return bestOption >= spacing ? bestOption : spacing;
|
|
180
174
|
}
|
|
181
|
-
|
|
182
175
|
function calculatePosition() {
|
|
183
176
|
if (menu.current) {
|
|
184
177
|
const ranges = {
|
|
@@ -187,15 +180,13 @@ const Menu = /*#__PURE__*/React__default.forwardRef(function Menu(_ref, forwardR
|
|
|
187
180
|
};
|
|
188
181
|
return [fitValue(ranges.x, 'x'), fitValue(ranges.y, 'y')];
|
|
189
182
|
}
|
|
190
|
-
|
|
191
183
|
return [-1, -1];
|
|
192
184
|
}
|
|
193
|
-
|
|
194
185
|
useEffect(() => {
|
|
195
186
|
if (open && focusableItems.length > 0) {
|
|
196
187
|
focusItem();
|
|
197
|
-
}
|
|
198
|
-
|
|
188
|
+
}
|
|
189
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
199
190
|
}, [open, focusableItems]);
|
|
200
191
|
useEffect(() => {
|
|
201
192
|
if (open) {
|
|
@@ -204,8 +195,8 @@ const Menu = /*#__PURE__*/React__default.forwardRef(function Menu(_ref, forwardR
|
|
|
204
195
|
// reset position when menu is closed in order for the --shown
|
|
205
196
|
// modifier to be applied correctly
|
|
206
197
|
setPosition(-1, -1);
|
|
207
|
-
}
|
|
208
|
-
|
|
198
|
+
}
|
|
199
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
209
200
|
}, [open]);
|
|
210
201
|
const classNames = cx(className, `${prefix}--menu`, `${prefix}--menu--${menuSize}`, {
|
|
211
202
|
// --open sets visibility and --shown sets opacity.
|
|
@@ -234,47 +225,38 @@ Menu.propTypes = {
|
|
|
234
225
|
* A collection of MenuItems to be rendered within this Menu.
|
|
235
226
|
*/
|
|
236
227
|
children: PropTypes.node,
|
|
237
|
-
|
|
238
228
|
/**
|
|
239
229
|
* Additional CSS class names.
|
|
240
230
|
*/
|
|
241
231
|
className: PropTypes.string,
|
|
242
|
-
|
|
243
232
|
/**
|
|
244
233
|
* A label describing the Menu.
|
|
245
234
|
*/
|
|
246
235
|
label: PropTypes.string,
|
|
247
|
-
|
|
248
236
|
/**
|
|
249
237
|
* Provide an optional function to be called when the Menu should be closed.
|
|
250
238
|
*/
|
|
251
239
|
onClose: PropTypes.func,
|
|
252
|
-
|
|
253
240
|
/**
|
|
254
241
|
* Provide an optional function to be called when the Menu is opened.
|
|
255
242
|
*/
|
|
256
243
|
onOpen: PropTypes.func,
|
|
257
|
-
|
|
258
244
|
/**
|
|
259
245
|
* Whether the Menu is open or not.
|
|
260
246
|
*/
|
|
261
247
|
open: PropTypes.bool,
|
|
262
|
-
|
|
263
248
|
/**
|
|
264
249
|
* Specify the size of the Menu.
|
|
265
250
|
*/
|
|
266
251
|
size: PropTypes.oneOf(['xs', 'sm', 'md', 'lg']),
|
|
267
|
-
|
|
268
252
|
/**
|
|
269
253
|
* Specify a DOM node where the Menu should be rendered in. Defaults to document.body.
|
|
270
254
|
*/
|
|
271
255
|
target: PropTypes.object,
|
|
272
|
-
|
|
273
256
|
/**
|
|
274
257
|
* Specify the x position of the Menu. Either pass a single number or an array with two numbers describing your activator's boundaries ([x1, x2])
|
|
275
258
|
*/
|
|
276
259
|
x: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),
|
|
277
|
-
|
|
278
260
|
/**
|
|
279
261
|
* Specify the y position of the Menu. Either pass a single number or an array with two numbers describing your activator's boundaries ([y1, y2])
|
|
280
262
|
*/
|
|
@@ -14,21 +14,20 @@ const menuDefaultState = {
|
|
|
14
14
|
items: [],
|
|
15
15
|
requestCloseRoot: () => {}
|
|
16
16
|
};
|
|
17
|
-
|
|
18
17
|
function menuReducer(state, action) {
|
|
19
18
|
switch (action.type) {
|
|
20
19
|
case 'enableIcons':
|
|
21
|
-
return {
|
|
20
|
+
return {
|
|
21
|
+
...state,
|
|
22
22
|
hasIcons: true
|
|
23
23
|
};
|
|
24
|
-
|
|
25
24
|
case 'registerItem':
|
|
26
|
-
return {
|
|
25
|
+
return {
|
|
26
|
+
...state,
|
|
27
27
|
items: [...state.items, action.payload].filter(item => item.ref.current !== null)
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
|
|
32
31
|
const MenuContext = /*#__PURE__*/React__default.createContext({
|
|
33
32
|
state: menuDefaultState,
|
|
34
33
|
// 'dispatch' is populated by the root menu
|