@carbon/react 1.29.1 → 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 +152 -174
- 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 +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 +152 -174
- 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 +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
|
@@ -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;
|
|
@@ -21,9 +21,8 @@ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
|
21
21
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
22
22
|
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
function ListItem(_ref) {
|
|
25
25
|
let {
|
|
26
|
-
children,
|
|
27
26
|
className,
|
|
28
27
|
...other
|
|
29
28
|
} = _ref;
|
|
@@ -31,20 +30,17 @@ const ListItem = _ref => {
|
|
|
31
30
|
const classNames = cx__default["default"](`${prefix}--list__item`, className);
|
|
32
31
|
return /*#__PURE__*/React__default["default"].createElement("li", _rollupPluginBabelHelpers["extends"]({
|
|
33
32
|
className: classNames
|
|
34
|
-
}, other)
|
|
35
|
-
}
|
|
36
|
-
|
|
33
|
+
}, other));
|
|
34
|
+
}
|
|
37
35
|
ListItem.propTypes = {
|
|
38
36
|
/**
|
|
39
37
|
* Specify the content for the ListItem
|
|
40
38
|
*/
|
|
41
39
|
children: PropTypes__default["default"].node,
|
|
42
|
-
|
|
43
40
|
/**
|
|
44
41
|
* Specify an optional className to apply to the underlying `<li>` node
|
|
45
42
|
*/
|
|
46
43
|
className: PropTypes__default["default"].string
|
|
47
44
|
};
|
|
48
|
-
var ListItem$1 = ListItem;
|
|
49
45
|
|
|
50
|
-
exports["default"] = ListItem
|
|
46
|
+
exports["default"] = ListItem;
|
|
@@ -63,33 +63,27 @@ function Loading(_ref) {
|
|
|
63
63
|
className: overlayClassName
|
|
64
64
|
}, loading) : loading;
|
|
65
65
|
}
|
|
66
|
-
|
|
67
66
|
Loading.propTypes = {
|
|
68
67
|
/**
|
|
69
68
|
* Specify whether you want the loading indicator to be spinning or not
|
|
70
69
|
*/
|
|
71
70
|
active: PropTypes__default["default"].bool,
|
|
72
|
-
|
|
73
71
|
/**
|
|
74
72
|
* Provide an optional className to be applied to the containing node
|
|
75
73
|
*/
|
|
76
74
|
className: PropTypes__default["default"].string,
|
|
77
|
-
|
|
78
75
|
/**
|
|
79
76
|
* Specify a description that would be used to best describe the loading state
|
|
80
77
|
*/
|
|
81
78
|
description: PropTypes__default["default"].string,
|
|
82
|
-
|
|
83
79
|
/**
|
|
84
80
|
* Provide an `id` to uniquely identify the label
|
|
85
81
|
*/
|
|
86
82
|
id: deprecate["default"](PropTypes__default["default"].string, `\nThe prop \`id\` is no longer needed.`),
|
|
87
|
-
|
|
88
83
|
/**
|
|
89
84
|
* Specify whether you would like the small variant of <Loading>
|
|
90
85
|
*/
|
|
91
86
|
small: PropTypes__default["default"].bool,
|
|
92
|
-
|
|
93
87
|
/**
|
|
94
88
|
* Specify whether you want the loader to be applied with an overlay
|
|
95
89
|
*/
|
|
@@ -47,7 +47,8 @@ const Menu = /*#__PURE__*/React__default["default"].forwardRef(function Menu(_re
|
|
|
47
47
|
const context = React.useContext(MenuContext.MenuContext);
|
|
48
48
|
const isRoot = context.state.isRoot;
|
|
49
49
|
const menuSize = isRoot ? size : context.state.size;
|
|
50
|
-
const [childState, childDispatch] = React.useReducer(MenuContext.menuReducer, {
|
|
50
|
+
const [childState, childDispatch] = React.useReducer(MenuContext.menuReducer, {
|
|
51
|
+
...context.state,
|
|
51
52
|
isRoot: false,
|
|
52
53
|
size,
|
|
53
54
|
requestCloseRoot: isRoot ? handleClose : context.state.requestCloseRoot
|
|
@@ -62,13 +63,11 @@ const Menu = /*#__PURE__*/React__default["default"].forwardRef(function Menu(_re
|
|
|
62
63
|
const ref = useMergedRefs.useMergedRefs([forwardRef, menu]);
|
|
63
64
|
const [position, setPosition] = React.useState([-1, -1]);
|
|
64
65
|
const focusableItems = childContext.state.items.filter(item => !item.disabled && item.ref.current);
|
|
65
|
-
|
|
66
66
|
function returnFocus() {
|
|
67
67
|
if (focusReturn.current) {
|
|
68
68
|
focusReturn.current.focus();
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
|
|
72
71
|
function handleOpen() {
|
|
73
72
|
if (menu.current) {
|
|
74
73
|
focusReturn.current = document.activeElement;
|
|
@@ -77,13 +76,11 @@ const Menu = /*#__PURE__*/React__default["default"].forwardRef(function Menu(_re
|
|
|
77
76
|
menu.current.style.top = `${pos[1]}px`;
|
|
78
77
|
setPosition(pos);
|
|
79
78
|
menu.current.focus();
|
|
80
|
-
|
|
81
79
|
if (onOpen) {
|
|
82
80
|
onOpen();
|
|
83
81
|
}
|
|
84
82
|
}
|
|
85
83
|
}
|
|
86
|
-
|
|
87
84
|
function handleClose(e) {
|
|
88
85
|
if (/^key/.test(e.type)) {
|
|
89
86
|
window.addEventListener('keyup', returnFocus, {
|
|
@@ -96,60 +93,53 @@ const Menu = /*#__PURE__*/React__default["default"].forwardRef(function Menu(_re
|
|
|
96
93
|
} else {
|
|
97
94
|
returnFocus();
|
|
98
95
|
}
|
|
99
|
-
|
|
100
96
|
if (onClose) {
|
|
101
97
|
onClose();
|
|
102
98
|
}
|
|
103
99
|
}
|
|
104
|
-
|
|
105
100
|
function handleKeyDown(e) {
|
|
106
|
-
e.stopPropagation();
|
|
107
|
-
// and the user presses ArrowLeft, close it
|
|
101
|
+
e.stopPropagation();
|
|
108
102
|
|
|
103
|
+
// if the user presses escape or this is a submenu
|
|
104
|
+
// and the user presses ArrowLeft, close it
|
|
109
105
|
if ((match.match(e, keys.Escape) || !isRoot && match.match(e, keys.ArrowLeft)) && onClose) {
|
|
110
106
|
handleClose(e);
|
|
111
107
|
} else {
|
|
112
108
|
focusItem(e);
|
|
113
109
|
}
|
|
114
110
|
}
|
|
115
|
-
|
|
116
111
|
function focusItem(e) {
|
|
117
112
|
const currentItem = focusableItems.findIndex(item => item.ref.current.contains(document.activeElement));
|
|
118
|
-
let indexToFocus = currentItem;
|
|
119
|
-
// in this case, the first item should receive focus.
|
|
113
|
+
let indexToFocus = currentItem;
|
|
120
114
|
|
|
115
|
+
// if currentItem is -1, no menu item is focused yet.
|
|
116
|
+
// in this case, the first item should receive focus.
|
|
121
117
|
if (currentItem === -1) {
|
|
122
118
|
indexToFocus = 0;
|
|
123
119
|
} else if (e) {
|
|
124
120
|
if (match.match(e, keys.ArrowUp)) {
|
|
125
121
|
indexToFocus = indexToFocus - 1;
|
|
126
122
|
}
|
|
127
|
-
|
|
128
123
|
if (match.match(e, keys.ArrowDown)) {
|
|
129
124
|
indexToFocus = indexToFocus + 1;
|
|
130
125
|
}
|
|
131
126
|
}
|
|
132
|
-
|
|
133
127
|
if (indexToFocus < 0) {
|
|
134
128
|
indexToFocus = focusableItems.length - 1;
|
|
135
129
|
}
|
|
136
|
-
|
|
137
130
|
if (indexToFocus >= focusableItems.length) {
|
|
138
131
|
indexToFocus = 0;
|
|
139
132
|
}
|
|
140
|
-
|
|
141
133
|
if (indexToFocus !== currentItem) {
|
|
142
134
|
const nodeToFocus = focusableItems[indexToFocus];
|
|
143
135
|
nodeToFocus.ref.current.focus();
|
|
144
136
|
}
|
|
145
137
|
}
|
|
146
|
-
|
|
147
138
|
function handleBlur(e) {
|
|
148
139
|
if (open && onClose && isRoot && !menu.current.contains(e.relatedTarget)) {
|
|
149
140
|
handleClose(e);
|
|
150
141
|
}
|
|
151
142
|
}
|
|
152
|
-
|
|
153
143
|
function fitValue(range, axis) {
|
|
154
144
|
const {
|
|
155
145
|
width,
|
|
@@ -170,25 +160,28 @@ const Menu = /*#__PURE__*/React__default["default"].forwardRef(function Menu(_re
|
|
|
170
160
|
anchor: alignment === 'horizontal' ? range[0] : range[1],
|
|
171
161
|
reversedAnchor: alignment === 'horizontal' ? range[1] : range[0],
|
|
172
162
|
offset: isRoot ? 0 : 4 // top padding in menu, used to align the menu items
|
|
173
|
-
|
|
174
163
|
}
|
|
175
164
|
};
|
|
165
|
+
|
|
176
166
|
const {
|
|
177
167
|
max,
|
|
178
168
|
size,
|
|
179
169
|
anchor,
|
|
180
170
|
reversedAnchor,
|
|
181
171
|
offset
|
|
182
|
-
} = axes[axis];
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
172
|
+
} = axes[axis];
|
|
173
|
+
|
|
174
|
+
// get values for different scenarios, set to false if they don't work
|
|
175
|
+
const options = [
|
|
176
|
+
// towards max (preferred)
|
|
177
|
+
max - spacing - size - anchor >= 0 ? anchor - offset : false,
|
|
178
|
+
// towards min / reversed (first fallback)
|
|
179
|
+
reversedAnchor - size >= 0 ? reversedAnchor - size + offset : false,
|
|
180
|
+
// align at max (second fallback)
|
|
187
181
|
max - spacing - size];
|
|
188
182
|
const bestOption = options.find(option => option !== false);
|
|
189
183
|
return bestOption >= spacing ? bestOption : spacing;
|
|
190
184
|
}
|
|
191
|
-
|
|
192
185
|
function calculatePosition() {
|
|
193
186
|
if (menu.current) {
|
|
194
187
|
const ranges = {
|
|
@@ -197,15 +190,13 @@ const Menu = /*#__PURE__*/React__default["default"].forwardRef(function Menu(_re
|
|
|
197
190
|
};
|
|
198
191
|
return [fitValue(ranges.x, 'x'), fitValue(ranges.y, 'y')];
|
|
199
192
|
}
|
|
200
|
-
|
|
201
193
|
return [-1, -1];
|
|
202
194
|
}
|
|
203
|
-
|
|
204
195
|
React.useEffect(() => {
|
|
205
196
|
if (open && focusableItems.length > 0) {
|
|
206
197
|
focusItem();
|
|
207
|
-
}
|
|
208
|
-
|
|
198
|
+
}
|
|
199
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
209
200
|
}, [open, focusableItems]);
|
|
210
201
|
React.useEffect(() => {
|
|
211
202
|
if (open) {
|
|
@@ -214,8 +205,8 @@ const Menu = /*#__PURE__*/React__default["default"].forwardRef(function Menu(_re
|
|
|
214
205
|
// reset position when menu is closed in order for the --shown
|
|
215
206
|
// modifier to be applied correctly
|
|
216
207
|
setPosition(-1, -1);
|
|
217
|
-
}
|
|
218
|
-
|
|
208
|
+
}
|
|
209
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
219
210
|
}, [open]);
|
|
220
211
|
const classNames = cx__default["default"](className, `${prefix}--menu`, `${prefix}--menu--${menuSize}`, {
|
|
221
212
|
// --open sets visibility and --shown sets opacity.
|
|
@@ -244,47 +235,38 @@ Menu.propTypes = {
|
|
|
244
235
|
* A collection of MenuItems to be rendered within this Menu.
|
|
245
236
|
*/
|
|
246
237
|
children: PropTypes__default["default"].node,
|
|
247
|
-
|
|
248
238
|
/**
|
|
249
239
|
* Additional CSS class names.
|
|
250
240
|
*/
|
|
251
241
|
className: PropTypes__default["default"].string,
|
|
252
|
-
|
|
253
242
|
/**
|
|
254
243
|
* A label describing the Menu.
|
|
255
244
|
*/
|
|
256
245
|
label: PropTypes__default["default"].string,
|
|
257
|
-
|
|
258
246
|
/**
|
|
259
247
|
* Provide an optional function to be called when the Menu should be closed.
|
|
260
248
|
*/
|
|
261
249
|
onClose: PropTypes__default["default"].func,
|
|
262
|
-
|
|
263
250
|
/**
|
|
264
251
|
* Provide an optional function to be called when the Menu is opened.
|
|
265
252
|
*/
|
|
266
253
|
onOpen: PropTypes__default["default"].func,
|
|
267
|
-
|
|
268
254
|
/**
|
|
269
255
|
* Whether the Menu is open or not.
|
|
270
256
|
*/
|
|
271
257
|
open: PropTypes__default["default"].bool,
|
|
272
|
-
|
|
273
258
|
/**
|
|
274
259
|
* Specify the size of the Menu.
|
|
275
260
|
*/
|
|
276
261
|
size: PropTypes__default["default"].oneOf(['xs', 'sm', 'md', 'lg']),
|
|
277
|
-
|
|
278
262
|
/**
|
|
279
263
|
* Specify a DOM node where the Menu should be rendered in. Defaults to document.body.
|
|
280
264
|
*/
|
|
281
265
|
target: PropTypes__default["default"].object,
|
|
282
|
-
|
|
283
266
|
/**
|
|
284
267
|
* 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])
|
|
285
268
|
*/
|
|
286
269
|
x: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].arrayOf(PropTypes__default["default"].number)]),
|
|
287
|
-
|
|
288
270
|
/**
|
|
289
271
|
* 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])
|
|
290
272
|
*/
|
|
@@ -22,21 +22,20 @@ const menuDefaultState = {
|
|
|
22
22
|
items: [],
|
|
23
23
|
requestCloseRoot: () => {}
|
|
24
24
|
};
|
|
25
|
-
|
|
26
25
|
function menuReducer(state, action) {
|
|
27
26
|
switch (action.type) {
|
|
28
27
|
case 'enableIcons':
|
|
29
|
-
return {
|
|
28
|
+
return {
|
|
29
|
+
...state,
|
|
30
30
|
hasIcons: true
|
|
31
31
|
};
|
|
32
|
-
|
|
33
32
|
case 'registerItem':
|
|
34
|
-
return {
|
|
33
|
+
return {
|
|
34
|
+
...state,
|
|
35
35
|
items: [...state.items, action.payload].filter(item => item.ref.current !== null)
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
|
|
40
39
|
const MenuContext = /*#__PURE__*/React__default["default"].createContext({
|
|
41
40
|
state: menuDefaultState,
|
|
42
41
|
// 'dispatch' is populated by the root menu
|
|
@@ -56,7 +56,6 @@ const MenuItem = /*#__PURE__*/React__default["default"].forwardRef(function Menu
|
|
|
56
56
|
const hoverIntentTimeout = React.useRef(null);
|
|
57
57
|
const isDisabled = disabled && !hasChildren;
|
|
58
58
|
const isDanger = kind === 'danger' && !hasChildren;
|
|
59
|
-
|
|
60
59
|
function registerItem() {
|
|
61
60
|
context.dispatch({
|
|
62
61
|
type: 'registerItem',
|
|
@@ -66,7 +65,6 @@ const MenuItem = /*#__PURE__*/React__default["default"].forwardRef(function Menu
|
|
|
66
65
|
}
|
|
67
66
|
});
|
|
68
67
|
}
|
|
69
|
-
|
|
70
68
|
function openSubmenu() {
|
|
71
69
|
const {
|
|
72
70
|
x,
|
|
@@ -80,7 +78,6 @@ const MenuItem = /*#__PURE__*/React__default["default"].forwardRef(function Menu
|
|
|
80
78
|
});
|
|
81
79
|
setSubmenuOpen(true);
|
|
82
80
|
}
|
|
83
|
-
|
|
84
81
|
function closeSubmenu() {
|
|
85
82
|
setSubmenuOpen(false);
|
|
86
83
|
setBoundaries({
|
|
@@ -88,56 +85,50 @@ const MenuItem = /*#__PURE__*/React__default["default"].forwardRef(function Menu
|
|
|
88
85
|
y: -1
|
|
89
86
|
});
|
|
90
87
|
}
|
|
91
|
-
|
|
92
88
|
function handleClick(e) {
|
|
93
89
|
if (!isDisabled) {
|
|
94
90
|
if (hasChildren) {
|
|
95
91
|
openSubmenu();
|
|
96
92
|
} else {
|
|
97
93
|
context.state.requestCloseRoot(e);
|
|
98
|
-
|
|
99
94
|
if (onClick) {
|
|
100
95
|
onClick(e);
|
|
101
96
|
}
|
|
102
97
|
}
|
|
103
98
|
}
|
|
104
99
|
}
|
|
105
|
-
|
|
106
100
|
function handleMouseEnter() {
|
|
107
101
|
hoverIntentTimeout.current = setTimeout(() => {
|
|
108
102
|
openSubmenu();
|
|
109
103
|
}, hoverIntentDelay);
|
|
110
104
|
}
|
|
111
|
-
|
|
112
105
|
function handleMouseLeave() {
|
|
113
106
|
clearTimeout(hoverIntentTimeout.current);
|
|
114
107
|
closeSubmenu();
|
|
115
108
|
menuItem.current.focus();
|
|
116
109
|
}
|
|
117
|
-
|
|
118
110
|
function handleKeyDown(e) {
|
|
119
111
|
if (hasChildren && match.match(e, keys.ArrowRight)) {
|
|
120
112
|
openSubmenu();
|
|
121
113
|
e.stopPropagation();
|
|
122
114
|
}
|
|
123
|
-
|
|
124
115
|
if (match.match(e, keys.Enter) || match.match(e, keys.Space)) {
|
|
125
116
|
handleClick(e);
|
|
126
117
|
}
|
|
127
|
-
|
|
128
118
|
if (rest.onKeyDown) {
|
|
129
119
|
rest.onKeyDown(e);
|
|
130
120
|
}
|
|
131
121
|
}
|
|
132
|
-
|
|
133
122
|
const classNames = cx__default["default"](className, `${prefix}--menu-item`, {
|
|
134
123
|
[`${prefix}--menu-item--disabled`]: isDisabled,
|
|
135
124
|
[`${prefix}--menu-item--danger`]: isDanger
|
|
136
|
-
});
|
|
137
|
-
// (used for keyboard navigation)
|
|
125
|
+
});
|
|
138
126
|
|
|
127
|
+
// on first render, register this menuitem in the context's state
|
|
128
|
+
// (used for keyboard navigation)
|
|
139
129
|
React.useEffect(() => {
|
|
140
|
-
registerItem();
|
|
130
|
+
registerItem();
|
|
131
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
141
132
|
}, []);
|
|
142
133
|
return /*#__PURE__*/React__default["default"].createElement("li", _rollupPluginBabelHelpers["extends"]({
|
|
143
134
|
role: "menuitem"
|
|
@@ -176,37 +167,30 @@ MenuItem.propTypes = {
|
|
|
176
167
|
* Optionally provide another Menu to create a submenu. props.children can't be used to specify the content of the MenuItem itself. Use props.label instead.
|
|
177
168
|
*/
|
|
178
169
|
children: PropTypes__default["default"].node,
|
|
179
|
-
|
|
180
170
|
/**
|
|
181
171
|
* Additional CSS class names.
|
|
182
172
|
*/
|
|
183
173
|
className: PropTypes__default["default"].string,
|
|
184
|
-
|
|
185
174
|
/**
|
|
186
175
|
* Specify whether the MenuItem is disabled or not.
|
|
187
176
|
*/
|
|
188
177
|
disabled: PropTypes__default["default"].bool,
|
|
189
|
-
|
|
190
178
|
/**
|
|
191
179
|
* Specify the kind of the MenuItem.
|
|
192
180
|
*/
|
|
193
181
|
kind: PropTypes__default["default"].oneOf(['default', 'danger']),
|
|
194
|
-
|
|
195
182
|
/**
|
|
196
183
|
* A required label titling the MenuItem. Will be rendered as its text content.
|
|
197
184
|
*/
|
|
198
185
|
label: PropTypes__default["default"].string.isRequired,
|
|
199
|
-
|
|
200
186
|
/**
|
|
201
187
|
* Provide an optional function to be called when the MenuItem is clicked.
|
|
202
188
|
*/
|
|
203
189
|
onClick: PropTypes__default["default"].func,
|
|
204
|
-
|
|
205
190
|
/**
|
|
206
191
|
* This prop is not intended for use. The only supported icons are Checkmarks to depict single- and multi-selects. This prop is used by MenuItemSelectable and MenuItemRadioGroup automatically.
|
|
207
192
|
*/
|
|
208
193
|
renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
|
|
209
|
-
|
|
210
194
|
/**
|
|
211
195
|
* Provide a shortcut for the action of this MenuItem. Note that the component will only render it as a hint but not actually register the shortcut.
|
|
212
196
|
*/
|
|
@@ -228,15 +212,12 @@ const MenuItemSelectable = /*#__PURE__*/React__default["default"].forwardRef(fun
|
|
|
228
212
|
onChange,
|
|
229
213
|
defaultValue: defaultSelected ?? false
|
|
230
214
|
});
|
|
231
|
-
|
|
232
215
|
function handleClick(e) {
|
|
233
216
|
setChecked(!checked);
|
|
234
|
-
|
|
235
217
|
if (onChange) {
|
|
236
218
|
onChange(e);
|
|
237
219
|
}
|
|
238
220
|
}
|
|
239
|
-
|
|
240
221
|
React.useEffect(() => {
|
|
241
222
|
if (!context.state.hasIcons) {
|
|
242
223
|
context.dispatch({
|
|
@@ -260,22 +241,18 @@ MenuItemSelectable.propTypes = {
|
|
|
260
241
|
* Additional CSS class names.
|
|
261
242
|
*/
|
|
262
243
|
className: PropTypes__default["default"].string,
|
|
263
|
-
|
|
264
244
|
/**
|
|
265
245
|
* Specify whether the option should be selected by default.
|
|
266
246
|
*/
|
|
267
247
|
defaultSelected: PropTypes__default["default"].bool,
|
|
268
|
-
|
|
269
248
|
/**
|
|
270
249
|
* A required label titling this option.
|
|
271
250
|
*/
|
|
272
251
|
label: PropTypes__default["default"].string.isRequired,
|
|
273
|
-
|
|
274
252
|
/**
|
|
275
253
|
* Provide an optional function to be called when the selection state changes.
|
|
276
254
|
*/
|
|
277
255
|
onChange: PropTypes__default["default"].func,
|
|
278
|
-
|
|
279
256
|
/**
|
|
280
257
|
* Pass a bool to props.selected to control the state of this option.
|
|
281
258
|
*/
|
|
@@ -304,12 +281,10 @@ MenuItemGroup.propTypes = {
|
|
|
304
281
|
* A collection of MenuItems to be rendered within this group.
|
|
305
282
|
*/
|
|
306
283
|
children: PropTypes__default["default"].node,
|
|
307
|
-
|
|
308
284
|
/**
|
|
309
285
|
* Additional CSS class names.
|
|
310
286
|
*/
|
|
311
287
|
className: PropTypes__default["default"].string,
|
|
312
|
-
|
|
313
288
|
/**
|
|
314
289
|
* A required label titling this group.
|
|
315
290
|
*/
|
|
@@ -333,15 +308,12 @@ const MenuItemRadioGroup = /*#__PURE__*/React__default["default"].forwardRef(fun
|
|
|
333
308
|
onChange,
|
|
334
309
|
defaultValue: defaultSelectedItem
|
|
335
310
|
});
|
|
336
|
-
|
|
337
311
|
function handleClick(item, e) {
|
|
338
312
|
setSelection(item);
|
|
339
|
-
|
|
340
313
|
if (onChange) {
|
|
341
314
|
onChange(e);
|
|
342
315
|
}
|
|
343
316
|
}
|
|
344
|
-
|
|
345
317
|
React.useEffect(() => {
|
|
346
318
|
if (!context.state.hasIcons) {
|
|
347
319
|
context.dispatch({
|
|
@@ -373,32 +345,26 @@ MenuItemRadioGroup.propTypes = {
|
|
|
373
345
|
* Additional CSS class names.
|
|
374
346
|
*/
|
|
375
347
|
className: PropTypes__default["default"].string,
|
|
376
|
-
|
|
377
348
|
/**
|
|
378
349
|
* Specify the default selected item. Must match the type of props.items.
|
|
379
350
|
*/
|
|
380
351
|
defaultSelectedItem: PropTypes__default["default"].any,
|
|
381
|
-
|
|
382
352
|
/**
|
|
383
353
|
* Provide a function to convert an item to the string that will be rendered. Defaults to item.toString().
|
|
384
354
|
*/
|
|
385
355
|
itemToString: PropTypes__default["default"].func,
|
|
386
|
-
|
|
387
356
|
/**
|
|
388
357
|
* Provide the options for this radio group. Can be of any type, as long as you provide an appropriate props.itemToString function.
|
|
389
358
|
*/
|
|
390
359
|
items: PropTypes__default["default"].array,
|
|
391
|
-
|
|
392
360
|
/**
|
|
393
361
|
* A required label titling this radio group.
|
|
394
362
|
*/
|
|
395
363
|
label: PropTypes__default["default"].string.isRequired,
|
|
396
|
-
|
|
397
364
|
/**
|
|
398
365
|
* Provide an optional function to be called when the selection changes.
|
|
399
366
|
*/
|
|
400
367
|
onChange: PropTypes__default["default"].func,
|
|
401
|
-
|
|
402
368
|
/**
|
|
403
369
|
* Provide props.selectedItem to control the state of this radio group. Must match the type of props.items.
|
|
404
370
|
*/
|
|
@@ -28,7 +28,6 @@ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
|
28
28
|
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
|
|
29
29
|
|
|
30
30
|
const spacing = 4; // top and bottom spacing between the button and the menu. in px
|
|
31
|
-
|
|
32
31
|
const validButtonKinds = ['primary', 'tertiary', 'ghost'];
|
|
33
32
|
const defaultButtonKind = 'primary';
|
|
34
33
|
const MenuButton = /*#__PURE__*/React__default["default"].forwardRef(function MenuButton(_ref, forwardRef) {
|
|
@@ -55,7 +54,6 @@ const MenuButton = /*#__PURE__*/React__default["default"].forwardRef(function Me
|
|
|
55
54
|
handleMousedown,
|
|
56
55
|
handleClose
|
|
57
56
|
} = useAttachedMenu.useAttachedMenu(triggerRef);
|
|
58
|
-
|
|
59
57
|
function handleClick() {
|
|
60
58
|
if (triggerRef.current) {
|
|
61
59
|
const {
|
|
@@ -65,11 +63,9 @@ const MenuButton = /*#__PURE__*/React__default["default"].forwardRef(function Me
|
|
|
65
63
|
hookOnClick();
|
|
66
64
|
}
|
|
67
65
|
}
|
|
68
|
-
|
|
69
66
|
function handleOpen() {
|
|
70
67
|
menuRef.current.style.width = `${width}px`;
|
|
71
68
|
}
|
|
72
|
-
|
|
73
69
|
const triggerClasses = cx__default["default"](`${prefix}--menu-button__trigger`, {
|
|
74
70
|
[`${prefix}--menu-button__trigger--open`]: open
|
|
75
71
|
}, className);
|
|
@@ -103,27 +99,22 @@ MenuButton.propTypes = {
|
|
|
103
99
|
* A collection of MenuItems to be rendered as actions for this MenuButton.
|
|
104
100
|
*/
|
|
105
101
|
children: PropTypes__default["default"].node.isRequired,
|
|
106
|
-
|
|
107
102
|
/**
|
|
108
103
|
* Additional CSS class names.
|
|
109
104
|
*/
|
|
110
105
|
className: PropTypes__default["default"].string,
|
|
111
|
-
|
|
112
106
|
/**
|
|
113
107
|
* Specify whether the MenuButton should be disabled, or not.
|
|
114
108
|
*/
|
|
115
109
|
disabled: PropTypes__default["default"].bool,
|
|
116
|
-
|
|
117
110
|
/**
|
|
118
111
|
* Specify the type of button to be used as the base for the trigger button.
|
|
119
112
|
*/
|
|
120
113
|
kind: PropTypes__default["default"].oneOf(validButtonKinds),
|
|
121
|
-
|
|
122
114
|
/**
|
|
123
115
|
* Provide the label to be renderd on the trigger button.
|
|
124
116
|
*/
|
|
125
117
|
label: PropTypes__default["default"].string.isRequired,
|
|
126
|
-
|
|
127
118
|
/**
|
|
128
119
|
* Specify the size of the button and menu.
|
|
129
120
|
*/
|