@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
|
@@ -46,7 +46,6 @@ const MenuItem = /*#__PURE__*/React__default.forwardRef(function MenuItem(_ref,
|
|
|
46
46
|
const hoverIntentTimeout = useRef(null);
|
|
47
47
|
const isDisabled = disabled && !hasChildren;
|
|
48
48
|
const isDanger = kind === 'danger' && !hasChildren;
|
|
49
|
-
|
|
50
49
|
function registerItem() {
|
|
51
50
|
context.dispatch({
|
|
52
51
|
type: 'registerItem',
|
|
@@ -56,7 +55,6 @@ const MenuItem = /*#__PURE__*/React__default.forwardRef(function MenuItem(_ref,
|
|
|
56
55
|
}
|
|
57
56
|
});
|
|
58
57
|
}
|
|
59
|
-
|
|
60
58
|
function openSubmenu() {
|
|
61
59
|
const {
|
|
62
60
|
x,
|
|
@@ -70,7 +68,6 @@ const MenuItem = /*#__PURE__*/React__default.forwardRef(function MenuItem(_ref,
|
|
|
70
68
|
});
|
|
71
69
|
setSubmenuOpen(true);
|
|
72
70
|
}
|
|
73
|
-
|
|
74
71
|
function closeSubmenu() {
|
|
75
72
|
setSubmenuOpen(false);
|
|
76
73
|
setBoundaries({
|
|
@@ -78,56 +75,50 @@ const MenuItem = /*#__PURE__*/React__default.forwardRef(function MenuItem(_ref,
|
|
|
78
75
|
y: -1
|
|
79
76
|
});
|
|
80
77
|
}
|
|
81
|
-
|
|
82
78
|
function handleClick(e) {
|
|
83
79
|
if (!isDisabled) {
|
|
84
80
|
if (hasChildren) {
|
|
85
81
|
openSubmenu();
|
|
86
82
|
} else {
|
|
87
83
|
context.state.requestCloseRoot(e);
|
|
88
|
-
|
|
89
84
|
if (onClick) {
|
|
90
85
|
onClick(e);
|
|
91
86
|
}
|
|
92
87
|
}
|
|
93
88
|
}
|
|
94
89
|
}
|
|
95
|
-
|
|
96
90
|
function handleMouseEnter() {
|
|
97
91
|
hoverIntentTimeout.current = setTimeout(() => {
|
|
98
92
|
openSubmenu();
|
|
99
93
|
}, hoverIntentDelay);
|
|
100
94
|
}
|
|
101
|
-
|
|
102
95
|
function handleMouseLeave() {
|
|
103
96
|
clearTimeout(hoverIntentTimeout.current);
|
|
104
97
|
closeSubmenu();
|
|
105
98
|
menuItem.current.focus();
|
|
106
99
|
}
|
|
107
|
-
|
|
108
100
|
function handleKeyDown(e) {
|
|
109
101
|
if (hasChildren && match(e, ArrowRight)) {
|
|
110
102
|
openSubmenu();
|
|
111
103
|
e.stopPropagation();
|
|
112
104
|
}
|
|
113
|
-
|
|
114
105
|
if (match(e, Enter) || match(e, Space)) {
|
|
115
106
|
handleClick(e);
|
|
116
107
|
}
|
|
117
|
-
|
|
118
108
|
if (rest.onKeyDown) {
|
|
119
109
|
rest.onKeyDown(e);
|
|
120
110
|
}
|
|
121
111
|
}
|
|
122
|
-
|
|
123
112
|
const classNames = cx(className, `${prefix}--menu-item`, {
|
|
124
113
|
[`${prefix}--menu-item--disabled`]: isDisabled,
|
|
125
114
|
[`${prefix}--menu-item--danger`]: isDanger
|
|
126
|
-
});
|
|
127
|
-
// (used for keyboard navigation)
|
|
115
|
+
});
|
|
128
116
|
|
|
117
|
+
// on first render, register this menuitem in the context's state
|
|
118
|
+
// (used for keyboard navigation)
|
|
129
119
|
useEffect(() => {
|
|
130
|
-
registerItem();
|
|
120
|
+
registerItem();
|
|
121
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
131
122
|
}, []);
|
|
132
123
|
return /*#__PURE__*/React__default.createElement("li", _extends({
|
|
133
124
|
role: "menuitem"
|
|
@@ -166,37 +157,30 @@ MenuItem.propTypes = {
|
|
|
166
157
|
* 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.
|
|
167
158
|
*/
|
|
168
159
|
children: PropTypes.node,
|
|
169
|
-
|
|
170
160
|
/**
|
|
171
161
|
* Additional CSS class names.
|
|
172
162
|
*/
|
|
173
163
|
className: PropTypes.string,
|
|
174
|
-
|
|
175
164
|
/**
|
|
176
165
|
* Specify whether the MenuItem is disabled or not.
|
|
177
166
|
*/
|
|
178
167
|
disabled: PropTypes.bool,
|
|
179
|
-
|
|
180
168
|
/**
|
|
181
169
|
* Specify the kind of the MenuItem.
|
|
182
170
|
*/
|
|
183
171
|
kind: PropTypes.oneOf(['default', 'danger']),
|
|
184
|
-
|
|
185
172
|
/**
|
|
186
173
|
* A required label titling the MenuItem. Will be rendered as its text content.
|
|
187
174
|
*/
|
|
188
175
|
label: PropTypes.string.isRequired,
|
|
189
|
-
|
|
190
176
|
/**
|
|
191
177
|
* Provide an optional function to be called when the MenuItem is clicked.
|
|
192
178
|
*/
|
|
193
179
|
onClick: PropTypes.func,
|
|
194
|
-
|
|
195
180
|
/**
|
|
196
181
|
* 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.
|
|
197
182
|
*/
|
|
198
183
|
renderIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
|
|
199
|
-
|
|
200
184
|
/**
|
|
201
185
|
* 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.
|
|
202
186
|
*/
|
|
@@ -218,15 +202,12 @@ const MenuItemSelectable = /*#__PURE__*/React__default.forwardRef(function MenuI
|
|
|
218
202
|
onChange,
|
|
219
203
|
defaultValue: defaultSelected ?? false
|
|
220
204
|
});
|
|
221
|
-
|
|
222
205
|
function handleClick(e) {
|
|
223
206
|
setChecked(!checked);
|
|
224
|
-
|
|
225
207
|
if (onChange) {
|
|
226
208
|
onChange(e);
|
|
227
209
|
}
|
|
228
210
|
}
|
|
229
|
-
|
|
230
211
|
useEffect(() => {
|
|
231
212
|
if (!context.state.hasIcons) {
|
|
232
213
|
context.dispatch({
|
|
@@ -250,22 +231,18 @@ MenuItemSelectable.propTypes = {
|
|
|
250
231
|
* Additional CSS class names.
|
|
251
232
|
*/
|
|
252
233
|
className: PropTypes.string,
|
|
253
|
-
|
|
254
234
|
/**
|
|
255
235
|
* Specify whether the option should be selected by default.
|
|
256
236
|
*/
|
|
257
237
|
defaultSelected: PropTypes.bool,
|
|
258
|
-
|
|
259
238
|
/**
|
|
260
239
|
* A required label titling this option.
|
|
261
240
|
*/
|
|
262
241
|
label: PropTypes.string.isRequired,
|
|
263
|
-
|
|
264
242
|
/**
|
|
265
243
|
* Provide an optional function to be called when the selection state changes.
|
|
266
244
|
*/
|
|
267
245
|
onChange: PropTypes.func,
|
|
268
|
-
|
|
269
246
|
/**
|
|
270
247
|
* Pass a bool to props.selected to control the state of this option.
|
|
271
248
|
*/
|
|
@@ -294,12 +271,10 @@ MenuItemGroup.propTypes = {
|
|
|
294
271
|
* A collection of MenuItems to be rendered within this group.
|
|
295
272
|
*/
|
|
296
273
|
children: PropTypes.node,
|
|
297
|
-
|
|
298
274
|
/**
|
|
299
275
|
* Additional CSS class names.
|
|
300
276
|
*/
|
|
301
277
|
className: PropTypes.string,
|
|
302
|
-
|
|
303
278
|
/**
|
|
304
279
|
* A required label titling this group.
|
|
305
280
|
*/
|
|
@@ -323,15 +298,12 @@ const MenuItemRadioGroup = /*#__PURE__*/React__default.forwardRef(function MenuI
|
|
|
323
298
|
onChange,
|
|
324
299
|
defaultValue: defaultSelectedItem
|
|
325
300
|
});
|
|
326
|
-
|
|
327
301
|
function handleClick(item, e) {
|
|
328
302
|
setSelection(item);
|
|
329
|
-
|
|
330
303
|
if (onChange) {
|
|
331
304
|
onChange(e);
|
|
332
305
|
}
|
|
333
306
|
}
|
|
334
|
-
|
|
335
307
|
useEffect(() => {
|
|
336
308
|
if (!context.state.hasIcons) {
|
|
337
309
|
context.dispatch({
|
|
@@ -363,32 +335,26 @@ MenuItemRadioGroup.propTypes = {
|
|
|
363
335
|
* Additional CSS class names.
|
|
364
336
|
*/
|
|
365
337
|
className: PropTypes.string,
|
|
366
|
-
|
|
367
338
|
/**
|
|
368
339
|
* Specify the default selected item. Must match the type of props.items.
|
|
369
340
|
*/
|
|
370
341
|
defaultSelectedItem: PropTypes.any,
|
|
371
|
-
|
|
372
342
|
/**
|
|
373
343
|
* Provide a function to convert an item to the string that will be rendered. Defaults to item.toString().
|
|
374
344
|
*/
|
|
375
345
|
itemToString: PropTypes.func,
|
|
376
|
-
|
|
377
346
|
/**
|
|
378
347
|
* Provide the options for this radio group. Can be of any type, as long as you provide an appropriate props.itemToString function.
|
|
379
348
|
*/
|
|
380
349
|
items: PropTypes.array,
|
|
381
|
-
|
|
382
350
|
/**
|
|
383
351
|
* A required label titling this radio group.
|
|
384
352
|
*/
|
|
385
353
|
label: PropTypes.string.isRequired,
|
|
386
|
-
|
|
387
354
|
/**
|
|
388
355
|
* Provide an optional function to be called when the selection changes.
|
|
389
356
|
*/
|
|
390
357
|
onChange: PropTypes.func,
|
|
391
|
-
|
|
392
358
|
/**
|
|
393
359
|
* Provide props.selectedItem to control the state of this radio group. Must match the type of props.items.
|
|
394
360
|
*/
|
|
@@ -18,7 +18,6 @@ import { useMergedRefs } from '../../internal/useMergedRefs.js';
|
|
|
18
18
|
import { usePrefix } from '../../internal/usePrefix.js';
|
|
19
19
|
|
|
20
20
|
const spacing = 4; // top and bottom spacing between the button and the menu. in px
|
|
21
|
-
|
|
22
21
|
const validButtonKinds = ['primary', 'tertiary', 'ghost'];
|
|
23
22
|
const defaultButtonKind = 'primary';
|
|
24
23
|
const MenuButton = /*#__PURE__*/React__default.forwardRef(function MenuButton(_ref, forwardRef) {
|
|
@@ -45,7 +44,6 @@ const MenuButton = /*#__PURE__*/React__default.forwardRef(function MenuButton(_r
|
|
|
45
44
|
handleMousedown,
|
|
46
45
|
handleClose
|
|
47
46
|
} = useAttachedMenu(triggerRef);
|
|
48
|
-
|
|
49
47
|
function handleClick() {
|
|
50
48
|
if (triggerRef.current) {
|
|
51
49
|
const {
|
|
@@ -55,11 +53,9 @@ const MenuButton = /*#__PURE__*/React__default.forwardRef(function MenuButton(_r
|
|
|
55
53
|
hookOnClick();
|
|
56
54
|
}
|
|
57
55
|
}
|
|
58
|
-
|
|
59
56
|
function handleOpen() {
|
|
60
57
|
menuRef.current.style.width = `${width}px`;
|
|
61
58
|
}
|
|
62
|
-
|
|
63
59
|
const triggerClasses = cx(`${prefix}--menu-button__trigger`, {
|
|
64
60
|
[`${prefix}--menu-button__trigger--open`]: open
|
|
65
61
|
}, className);
|
|
@@ -93,27 +89,22 @@ MenuButton.propTypes = {
|
|
|
93
89
|
* A collection of MenuItems to be rendered as actions for this MenuButton.
|
|
94
90
|
*/
|
|
95
91
|
children: PropTypes.node.isRequired,
|
|
96
|
-
|
|
97
92
|
/**
|
|
98
93
|
* Additional CSS class names.
|
|
99
94
|
*/
|
|
100
95
|
className: PropTypes.string,
|
|
101
|
-
|
|
102
96
|
/**
|
|
103
97
|
* Specify whether the MenuButton should be disabled, or not.
|
|
104
98
|
*/
|
|
105
99
|
disabled: PropTypes.bool,
|
|
106
|
-
|
|
107
100
|
/**
|
|
108
101
|
* Specify the type of button to be used as the base for the trigger button.
|
|
109
102
|
*/
|
|
110
103
|
kind: PropTypes.oneOf(validButtonKinds),
|
|
111
|
-
|
|
112
104
|
/**
|
|
113
105
|
* Provide the label to be renderd on the trigger button.
|
|
114
106
|
*/
|
|
115
107
|
label: PropTypes.string.isRequired,
|
|
116
|
-
|
|
117
108
|
/**
|
|
118
109
|
* Specify the size of the button and menu.
|
|
119
110
|
*/
|
|
@@ -65,35 +65,29 @@ const Modal = /*#__PURE__*/React__default.forwardRef(function Modal(_ref, ref) {
|
|
|
65
65
|
const modalHeadingId = `${prefix}--modal-header__heading--${modalInstanceId}`;
|
|
66
66
|
const modalBodyId = `${prefix}--modal-body--${modalInstanceId}`;
|
|
67
67
|
const modalCloseButtonClass = `${prefix}--modal-close`;
|
|
68
|
-
|
|
69
68
|
function isCloseButton(element) {
|
|
70
69
|
return !onSecondarySubmit && element === secondaryButton.current || element.classList.contains(modalCloseButtonClass);
|
|
71
70
|
}
|
|
72
|
-
|
|
73
71
|
function handleKeyDown(evt) {
|
|
74
72
|
if (open) {
|
|
75
73
|
if (match(evt, Escape)) {
|
|
76
74
|
onRequestClose(evt);
|
|
77
75
|
}
|
|
78
|
-
|
|
79
76
|
if (match(evt, Enter) && shouldSubmitOnEnter && !isCloseButton(evt.target)) {
|
|
80
77
|
onRequestSubmit(evt);
|
|
81
78
|
}
|
|
82
79
|
}
|
|
83
80
|
}
|
|
84
|
-
|
|
85
81
|
function handleMousedown(evt) {
|
|
86
82
|
if (innerModal.current && !innerModal.current.contains(evt.target) && !elementOrParentIsFloatingMenu(evt.target, selectorsFloatingMenus) && !preventCloseOnClickOutside) {
|
|
87
83
|
onRequestClose(evt);
|
|
88
84
|
}
|
|
89
85
|
}
|
|
90
|
-
|
|
91
86
|
function handleBlur(_ref2) {
|
|
92
87
|
let {
|
|
93
88
|
target: oldActiveNode,
|
|
94
89
|
relatedTarget: currentActiveNode
|
|
95
90
|
} = _ref2;
|
|
96
|
-
|
|
97
91
|
if (open && currentActiveNode && oldActiveNode) {
|
|
98
92
|
const {
|
|
99
93
|
current: bodyNode
|
|
@@ -114,7 +108,6 @@ const Modal = /*#__PURE__*/React__default.forwardRef(function Modal(_ref, ref) {
|
|
|
114
108
|
});
|
|
115
109
|
}
|
|
116
110
|
}
|
|
117
|
-
|
|
118
111
|
const onSecondaryButtonClick = onSecondarySubmit ? onSecondarySubmit : onRequestClose;
|
|
119
112
|
const modalClasses = cx(`${prefix}--modal`, {
|
|
120
113
|
[`${prefix}--modal-tall`]: !passiveModal,
|
|
@@ -141,16 +134,13 @@ const Modal = /*#__PURE__*/React__default.forwardRef(function Modal(_ref, ref) {
|
|
|
141
134
|
'aria-labelledby': getAriaLabelledBy
|
|
142
135
|
} : {};
|
|
143
136
|
const alertDialogProps = {};
|
|
144
|
-
|
|
145
137
|
if (alert && passiveModal) {
|
|
146
138
|
alertDialogProps.role = 'alert';
|
|
147
139
|
}
|
|
148
|
-
|
|
149
140
|
if (alert && !passiveModal) {
|
|
150
141
|
alertDialogProps.role = 'alertdialog';
|
|
151
142
|
alertDialogProps['aria-describedby'] = modalBodyId;
|
|
152
143
|
}
|
|
153
|
-
|
|
154
144
|
useEffect(() => {
|
|
155
145
|
return () => {
|
|
156
146
|
toggleClass(document.body, `${prefix}--body--with-modal-open`, false);
|
|
@@ -163,22 +153,17 @@ const Modal = /*#__PURE__*/React__default.forwardRef(function Modal(_ref, ref) {
|
|
|
163
153
|
const initialFocus = focusContainerElement => {
|
|
164
154
|
const containerElement = focusContainerElement || innerModal.current;
|
|
165
155
|
const primaryFocusElement = containerElement ? containerElement.querySelector(danger ? `.${prefix}--btn--secondary` : selectorPrimaryFocus) : null;
|
|
166
|
-
|
|
167
156
|
if (primaryFocusElement) {
|
|
168
157
|
return primaryFocusElement;
|
|
169
158
|
}
|
|
170
|
-
|
|
171
159
|
return button && button.current;
|
|
172
160
|
};
|
|
173
|
-
|
|
174
161
|
const focusButton = focusContainerElement => {
|
|
175
162
|
const target = initialFocus(focusContainerElement);
|
|
176
|
-
|
|
177
163
|
if (target) {
|
|
178
164
|
target.focus();
|
|
179
165
|
}
|
|
180
166
|
};
|
|
181
|
-
|
|
182
167
|
if (open) {
|
|
183
168
|
focusButton(innerModal.current);
|
|
184
169
|
}
|
|
@@ -266,115 +251,93 @@ Modal.propTypes = {
|
|
|
266
251
|
* Should go hand in hand with the danger prop.
|
|
267
252
|
*/
|
|
268
253
|
alert: PropTypes.bool,
|
|
269
|
-
|
|
270
254
|
/**
|
|
271
255
|
* Required props for the accessibility label of the header
|
|
272
256
|
*/
|
|
273
257
|
['aria-label']: requiredIfGivenPropIsTruthy('hasScrollingContent', PropTypes.string),
|
|
274
|
-
|
|
275
258
|
/**
|
|
276
259
|
* Provide the contents of your Modal
|
|
277
260
|
*/
|
|
278
261
|
children: PropTypes.node,
|
|
279
|
-
|
|
280
262
|
/**
|
|
281
263
|
* Specify an optional className to be applied to the modal root node
|
|
282
264
|
*/
|
|
283
265
|
className: PropTypes.string,
|
|
284
|
-
|
|
285
266
|
/**
|
|
286
267
|
* Specify an label for the close button of the modal; defaults to close
|
|
287
268
|
*/
|
|
288
269
|
closeButtonLabel: PropTypes.string,
|
|
289
|
-
|
|
290
270
|
/**
|
|
291
271
|
* Specify whether the Modal is for dangerous actions
|
|
292
272
|
*/
|
|
293
273
|
danger: PropTypes.bool,
|
|
294
|
-
|
|
295
274
|
/**
|
|
296
275
|
* Specify whether the modal contains scrolling content
|
|
297
276
|
*/
|
|
298
277
|
hasScrollingContent: PropTypes.bool,
|
|
299
|
-
|
|
300
278
|
/**
|
|
301
279
|
* Specify the DOM element ID of the top-level node.
|
|
302
280
|
*/
|
|
303
281
|
id: PropTypes.string,
|
|
304
|
-
|
|
305
282
|
/**
|
|
306
283
|
* Specify whether or not the Modal content should have any inner padding.
|
|
307
284
|
*/
|
|
308
285
|
isFullWidth: PropTypes.bool,
|
|
309
|
-
|
|
310
286
|
/**
|
|
311
287
|
* Specify a label to be read by screen readers on the modal root node
|
|
312
288
|
*/
|
|
313
289
|
modalAriaLabel: PropTypes.string,
|
|
314
|
-
|
|
315
290
|
/**
|
|
316
291
|
* Specify the content of the modal header title.
|
|
317
292
|
*/
|
|
318
293
|
modalHeading: PropTypes.node,
|
|
319
|
-
|
|
320
294
|
/**
|
|
321
295
|
* Specify the content of the modal header label.
|
|
322
296
|
*/
|
|
323
297
|
modalLabel: PropTypes.node,
|
|
324
|
-
|
|
325
298
|
/**
|
|
326
299
|
* Specify a handler for keypresses.
|
|
327
300
|
*/
|
|
328
301
|
onKeyDown: PropTypes.func,
|
|
329
|
-
|
|
330
302
|
/**
|
|
331
303
|
* Specify a handler for closing modal.
|
|
332
304
|
* The handler should care of closing modal, e.g. changing `open` prop.
|
|
333
305
|
*/
|
|
334
306
|
onRequestClose: PropTypes.func,
|
|
335
|
-
|
|
336
307
|
/**
|
|
337
308
|
* Specify a handler for "submitting" modal.
|
|
338
309
|
* The handler should care of closing modal, e.g. changing `open` prop, if necessary.
|
|
339
310
|
*/
|
|
340
311
|
onRequestSubmit: PropTypes.func,
|
|
341
|
-
|
|
342
312
|
/**
|
|
343
313
|
* Specify a handler for the secondary button.
|
|
344
314
|
* Useful if separate handler from `onRequestClose` is desirable
|
|
345
315
|
*/
|
|
346
316
|
onSecondarySubmit: PropTypes.func,
|
|
347
|
-
|
|
348
317
|
/**
|
|
349
318
|
* Specify whether the Modal is currently open
|
|
350
319
|
*/
|
|
351
320
|
open: PropTypes.bool,
|
|
352
|
-
|
|
353
321
|
/**
|
|
354
322
|
* Specify whether the modal should be button-less
|
|
355
323
|
*/
|
|
356
324
|
passiveModal: PropTypes.bool,
|
|
357
|
-
|
|
358
325
|
/**
|
|
359
326
|
* Prevent closing on click outside of modal
|
|
360
327
|
*/
|
|
361
328
|
preventCloseOnClickOutside: PropTypes.bool,
|
|
362
|
-
|
|
363
329
|
/**
|
|
364
330
|
* Specify whether the Button should be disabled, or not
|
|
365
331
|
*/
|
|
366
332
|
primaryButtonDisabled: PropTypes.bool,
|
|
367
|
-
|
|
368
333
|
/**
|
|
369
334
|
* Specify the text for the primary button
|
|
370
335
|
*/
|
|
371
336
|
primaryButtonText: PropTypes.node,
|
|
372
|
-
|
|
373
337
|
/**
|
|
374
338
|
* Specify the text for the secondary button
|
|
375
339
|
*/
|
|
376
340
|
secondaryButtonText: PropTypes.node,
|
|
377
|
-
|
|
378
341
|
/**
|
|
379
342
|
* Specify an array of config objects for secondary buttons
|
|
380
343
|
* (`Array<{
|
|
@@ -387,7 +350,6 @@ Modal.propTypes = {
|
|
|
387
350
|
if (!Array.isArray(props.secondaryButtons) || props.secondaryButtons.length !== 2) {
|
|
388
351
|
return new Error(`${propName} needs to be an array of two button config objects`);
|
|
389
352
|
}
|
|
390
|
-
|
|
391
353
|
const shape = {
|
|
392
354
|
buttonText: PropTypes.node,
|
|
393
355
|
onClick: PropTypes.func
|
|
@@ -396,27 +358,22 @@ Modal.propTypes = {
|
|
|
396
358
|
PropTypes.checkPropTypes(shape, secondaryButton, propName, componentName);
|
|
397
359
|
});
|
|
398
360
|
}
|
|
399
|
-
|
|
400
361
|
return null;
|
|
401
362
|
},
|
|
402
|
-
|
|
403
363
|
/**
|
|
404
364
|
* Specify a CSS selector that matches the DOM element that should
|
|
405
365
|
* be focused when the Modal opens
|
|
406
366
|
*/
|
|
407
367
|
selectorPrimaryFocus: PropTypes.string,
|
|
408
|
-
|
|
409
368
|
/**
|
|
410
369
|
* Specify CSS selectors that match DOM elements working as floating menus.
|
|
411
370
|
* Focusing on those elements won't trigger "focus-wrap" behavior
|
|
412
371
|
*/
|
|
413
372
|
selectorsFloatingMenus: PropTypes.arrayOf(PropTypes.string),
|
|
414
|
-
|
|
415
373
|
/**
|
|
416
374
|
* Specify if Enter key should be used as "submit" action
|
|
417
375
|
*/
|
|
418
376
|
shouldSubmitOnEnter: PropTypes.bool,
|
|
419
|
-
|
|
420
377
|
/**
|
|
421
378
|
* Specify the size variant.
|
|
422
379
|
*/
|
|
@@ -17,24 +17,18 @@ let didWarnAboutDeprecation = false;
|
|
|
17
17
|
class ModalWrapper extends React__default.Component {
|
|
18
18
|
constructor() {
|
|
19
19
|
super(...arguments);
|
|
20
|
-
|
|
21
20
|
_defineProperty(this, "triggerButton", /*#__PURE__*/React__default.createRef());
|
|
22
|
-
|
|
23
21
|
_defineProperty(this, "modal", /*#__PURE__*/React__default.createRef());
|
|
24
|
-
|
|
25
22
|
_defineProperty(this, "state", {
|
|
26
23
|
isOpen: false
|
|
27
24
|
});
|
|
28
|
-
|
|
29
25
|
_defineProperty(this, "handleOpen", () => {
|
|
30
26
|
this.setState({
|
|
31
27
|
isOpen: true
|
|
32
28
|
});
|
|
33
29
|
});
|
|
34
|
-
|
|
35
30
|
_defineProperty(this, "handleClose", evt => {
|
|
36
31
|
const innerModal = this.modal.current.querySelector('div');
|
|
37
|
-
|
|
38
32
|
if (this.modal.current && evt && !innerModal.contains(evt.target) && this.props.preventCloseOnClickOutside) {
|
|
39
33
|
return;
|
|
40
34
|
} else {
|
|
@@ -43,27 +37,22 @@ class ModalWrapper extends React__default.Component {
|
|
|
43
37
|
}, () => this.triggerButton.current.focus());
|
|
44
38
|
}
|
|
45
39
|
});
|
|
46
|
-
|
|
47
40
|
_defineProperty(this, "handleOnRequestSubmit", () => {
|
|
48
41
|
const {
|
|
49
42
|
handleSubmit,
|
|
50
43
|
shouldCloseAfterSubmit
|
|
51
44
|
} = this.props;
|
|
52
|
-
|
|
53
45
|
if (handleSubmit && shouldCloseAfterSubmit) {
|
|
54
46
|
handleSubmit();
|
|
55
47
|
this.handleClose();
|
|
56
48
|
}
|
|
57
|
-
|
|
58
49
|
handleSubmit();
|
|
59
50
|
});
|
|
60
51
|
}
|
|
61
|
-
|
|
62
52
|
if(__DEV__) {
|
|
63
53
|
process.env.NODE_ENV !== "production" ? warning(didWarnAboutDeprecation, '`<ModalWrapper>` has been deprecated in favor of `<ComposedModal/>` and will be removed in the next major version, `@carbon/react@v2.x`') : void 0;
|
|
64
54
|
didWarnAboutDeprecation = true;
|
|
65
55
|
}
|
|
66
|
-
|
|
67
56
|
render() {
|
|
68
57
|
const {
|
|
69
58
|
children,
|
|
@@ -83,7 +72,8 @@ class ModalWrapper extends React__default.Component {
|
|
|
83
72
|
// eslint-disable-line no-unused-vars
|
|
84
73
|
...other
|
|
85
74
|
} = this.props;
|
|
86
|
-
const props = {
|
|
75
|
+
const props = {
|
|
76
|
+
...other,
|
|
87
77
|
selectorPrimaryFocus,
|
|
88
78
|
open: this.state.isOpen,
|
|
89
79
|
onRequestClose: this.handleClose,
|
|
@@ -109,9 +99,7 @@ class ModalWrapper extends React__default.Component {
|
|
|
109
99
|
ref: this.modal
|
|
110
100
|
}, props), children));
|
|
111
101
|
}
|
|
112
|
-
|
|
113
102
|
}
|
|
114
|
-
|
|
115
103
|
_defineProperty(ModalWrapper, "propTypes", {
|
|
116
104
|
buttonTriggerClassName: PropTypes.string,
|
|
117
105
|
buttonTriggerText: PropTypes.node,
|
|
@@ -137,7 +125,6 @@ _defineProperty(ModalWrapper, "propTypes", {
|
|
|
137
125
|
triggerButtonKind: PropTypes.oneOf(ButtonKinds),
|
|
138
126
|
withHeader: PropTypes.bool
|
|
139
127
|
});
|
|
140
|
-
|
|
141
128
|
_defineProperty(ModalWrapper, "defaultProps", {
|
|
142
129
|
shouldCloseAfterSubmit: true,
|
|
143
130
|
primaryButtonText: 'Save',
|