@carbon/react 1.29.1 → 1.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/_virtual/_rollupPluginBabelHelpers.js +16 -5
- package/es/components/Accordion/Accordion.Skeleton.js +0 -7
- package/es/components/Accordion/Accordion.js +1 -8
- package/es/components/Accordion/AccordionItem.js +5 -19
- package/es/components/AspectRatio/AspectRatio.js +0 -5
- package/es/components/Breadcrumb/Breadcrumb.Skeleton.js +0 -3
- package/es/components/Breadcrumb/Breadcrumb.js +0 -3
- package/es/components/Breadcrumb/BreadcrumbItem.js +0 -7
- package/es/components/Button/Button.Skeleton.js +2 -7
- package/es/components/Button/Button.js +2 -36
- package/es/components/ButtonSet/ButtonSet.js +0 -2
- package/es/components/Checkbox/Checkbox.Skeleton.js +0 -1
- package/es/components/Checkbox/Checkbox.js +4 -20
- package/es/components/CheckboxGroup/CheckboxGroup.js +0 -11
- package/es/components/ClassPrefix/index.d.ts +26 -0
- package/es/components/ClassPrefix/index.js +0 -2
- package/es/components/CodeSnippet/CodeSnippet.Skeleton.js +0 -5
- package/es/components/CodeSnippet/CodeSnippet.js +6 -45
- package/es/components/ComboBox/ComboBox.js +12 -79
- package/es/components/ComboBox/tools/filter.js +0 -1
- package/es/components/ComboButton/index.js +0 -14
- package/es/components/ComposedModal/ComposedModal.js +2 -32
- package/es/components/ComposedModal/ModalFooter.js +0 -21
- package/es/components/ComposedModal/ModalHeader.js +0 -12
- package/es/components/ContainedList/ContainedList.js +5 -32
- package/es/components/ContainedList/ContainedListItem/ContainedListItem.js +0 -6
- package/es/components/ContentSwitcher/ContentSwitcher.js +11 -23
- package/es/components/ContextMenu/useContextMenu.js +1 -6
- package/es/components/Copy/Copy.js +8 -31
- package/es/components/CopyButton/CopyButton.js +0 -4
- package/es/components/DangerButton/DangerButton.js +0 -1
- package/es/components/DataTable/DataTable.js +171 -91
- package/es/components/DataTable/Table.js +0 -6
- package/es/components/DataTable/TableBatchAction.js +0 -4
- package/es/components/DataTable/TableBatchActions.js +0 -8
- package/es/components/DataTable/TableBody.js +0 -1
- package/es/components/DataTable/TableContainer.js +0 -5
- package/es/components/DataTable/TableExpandHeader.js +0 -7
- package/es/components/DataTable/TableExpandRow.js +0 -6
- package/es/components/DataTable/TableExpandedRow.js +0 -6
- package/es/components/DataTable/TableHeader.d.ts +1 -1
- package/es/components/DataTable/TableHeader.js +3 -19
- package/es/components/DataTable/TableRow.js +4 -5
- package/es/components/DataTable/TableSelectAll.js +0 -8
- package/es/components/DataTable/TableSelectRow.js +2 -10
- package/es/components/DataTable/TableToolbar.js +0 -3
- package/es/components/DataTable/TableToolbarMenu.d.ts +1 -1
- package/es/components/DataTable/TableToolbarMenu.js +3 -6
- package/es/components/DataTable/TableToolbarSearch.js +2 -30
- package/es/components/DataTable/state/getDerivedStateFromProps.js +0 -4
- package/es/components/DataTable/state/sorting.js +5 -8
- package/es/components/DataTable/tools/denormalize.js +2 -2
- package/es/components/DataTable/tools/filter.js +0 -2
- package/es/components/DataTable/tools/instanceId.js +0 -1
- package/es/components/DataTable/tools/normalize.js +10 -10
- package/es/components/DataTable/tools/sorting.js +5 -13
- package/es/components/DataTableSkeleton/DataTableSkeleton.js +5 -20
- package/es/components/DatePicker/DatePicker.Skeleton.js +0 -6
- package/es/components/DatePicker/DatePicker.js +153 -175
- package/es/components/DatePicker/plugins/appendToPlugin.js +3 -7
- package/es/components/DatePicker/plugins/fixEventsPlugin.js +14 -25
- package/es/components/DatePicker/plugins/rangePlugin.js +2 -7
- package/es/components/DatePickerInput/DatePickerInput.js +2 -28
- package/es/components/Dropdown/Dropdown.Skeleton.js +0 -2
- package/es/components/Dropdown/Dropdown.js +43 -52
- package/es/components/ErrorBoundary/ErrorBoundary.js +0 -10
- package/es/components/ErrorBoundary/ErrorBoundaryContext.js +0 -1
- package/es/components/ExpandableSearch/ExpandableSearch.js +1 -10
- package/es/components/FeatureFlags/index.js +8 -20
- package/es/components/FileUploader/FileUploader.Skeleton.js +0 -2
- package/es/components/FileUploader/FileUploader.js +3 -38
- package/es/components/FileUploader/FileUploaderButton.js +3 -24
- package/es/components/FileUploader/FileUploaderDropContainer.js +1 -28
- package/es/components/FileUploader/FileUploaderItem.js +5 -12
- package/es/components/FileUploader/Filename.js +6 -10
- package/es/components/FluidComboBox/FluidComboBox.Skeleton.js +0 -1
- package/es/components/FluidComboBox/FluidComboBox.js +0 -18
- package/es/components/FluidDatePicker/FluidDatePicker.Skeleton.js +0 -2
- package/es/components/FluidDatePicker/FluidDatePicker.js +0 -6
- package/es/components/FluidDatePickerInput/FluidDatePickerInput.js +2 -1
- package/es/components/FluidDropdown/FluidDropdown.Skeleton.js +0 -1
- package/es/components/FluidDropdown/FluidDropdown.js +0 -18
- package/es/components/FluidForm/FluidForm.js +0 -2
- package/es/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +0 -1
- package/es/components/FluidMultiSelect/FluidMultiSelect.js +0 -19
- package/es/components/FluidSelect/FluidSelect.Skeleton.js +0 -1
- package/es/components/FluidSelect/FluidSelect.js +0 -10
- package/es/components/FluidTextArea/FluidTextArea.Skeleton.js +0 -1
- package/es/components/FluidTextArea/FluidTextArea.js +0 -20
- package/es/components/FluidTextInput/FluidTextInput.Skeleton.js +0 -1
- package/es/components/FluidTextInput/FluidTextInput.js +0 -14
- package/es/components/FluidTimePicker/FluidTimePicker.Skeleton.js +0 -3
- package/es/components/FluidTimePicker/FluidTimePicker.js +1 -11
- package/es/components/FluidTimePickerSelect/FluidTimePickerSelect.js +0 -6
- package/es/components/Form/Form.d.ts +23 -0
- package/es/components/Form/Form.js +3 -6
- package/es/components/Form/index.d.ts +7 -0
- package/es/components/FormGroup/FormGroup.js +0 -7
- package/es/components/FormItem/FormItem.js +0 -2
- package/es/components/FormLabel/FormLabel.js +1 -7
- package/es/components/Grid/CSSGrid.js +2 -15
- package/es/components/Grid/Column.js +18 -59
- package/es/components/Grid/ColumnHang.js +2 -5
- package/es/components/Grid/FlexGrid.js +2 -8
- package/es/components/Grid/Grid.js +0 -8
- package/es/components/Grid/GridContext.js +1 -3
- package/es/components/Grid/Row.js +2 -7
- package/es/components/Heading/index.js +0 -4
- package/es/components/Icon/Icon.Skeleton.js +2 -2
- package/es/components/IconButton/index.js +0 -10
- package/es/components/IdPrefix/index.js +0 -2
- package/es/components/InlineCheckbox/InlineCheckbox.js +0 -14
- package/es/components/InlineLoading/InlineLoading.js +0 -12
- package/es/components/Layer/index.js +3 -6
- package/es/components/Layout/LayoutDirection.js +0 -3
- package/es/components/Layout/useLayoutDirection.js +0 -1
- package/es/components/Link/Link.js +3 -10
- package/es/components/ListBox/ListBox.js +2 -13
- package/es/components/ListBox/ListBoxField.js +0 -5
- package/es/components/ListBox/ListBoxMenuIcon.js +0 -4
- package/es/components/ListBox/ListBoxMenuItem.js +2 -6
- package/es/components/ListBox/ListBoxPropTypes.d.ts +2 -2
- package/es/components/ListBox/ListBoxSelection.js +1 -13
- package/es/components/ListBox/next/ListBoxSelection.js +1 -14
- package/es/components/ListBox/next/ListBoxTrigger.js +1 -3
- package/es/components/ListItem/ListItem.d.ts +23 -0
- package/es/components/ListItem/ListItem.js +4 -8
- package/es/components/ListItem/index.d.ts +7 -0
- package/es/components/Loading/Loading.js +0 -6
- package/es/components/Menu/Menu.js +22 -40
- package/es/components/Menu/MenuContext.js +4 -5
- package/es/components/Menu/MenuItem.js +5 -39
- package/es/components/MenuButton/index.js +0 -9
- package/es/components/Modal/Modal.js +1 -46
- package/es/components/ModalWrapper/ModalWrapper.js +2 -15
- package/es/components/MultiSelect/FilterableMultiSelect.js +2 -60
- package/es/components/MultiSelect/MultiSelect.js +22 -70
- package/es/components/MultiSelect/MultiSelectPropTypes.js +0 -1
- package/es/components/MultiSelect/index.js +0 -1
- package/es/components/MultiSelect/tools/itemToString.js +0 -2
- package/es/components/MultiSelect/tools/sorting.js +3 -4
- package/es/components/Notification/Notification.js +0 -78
- package/es/components/NumberInput/NumberInput.Skeleton.js +0 -2
- package/es/components/NumberInput/NumberInput.js +3 -60
- package/es/components/OrderedList/OrderedList.d.ts +39 -0
- package/es/components/OrderedList/OrderedList.js +7 -19
- package/es/components/{Form/index.js → OrderedList/index.d.ts} +1 -3
- package/es/components/OverflowMenu/OverflowMenu.js +65 -86
- package/es/components/OverflowMenuItem/OverflowMenuItem.js +6 -23
- package/es/components/OverflowMenuV2/index.js +0 -5
- package/es/components/Pagination/Pagination.Skeleton.js +0 -2
- package/es/components/Pagination/Pagination.js +11 -47
- package/es/components/Pagination/experimental/PageSelector.js +0 -10
- package/es/components/Pagination/experimental/Pagination.js +2 -48
- package/es/components/PaginationNav/PaginationNav.js +15 -59
- package/es/components/Popover/index.d.ts +14 -8
- package/es/components/Popover/index.js +44 -48
- package/es/components/PrimaryButton/PrimaryButton.js +0 -1
- package/es/components/ProgressBar/ProgressBar.js +0 -15
- package/es/components/ProgressIndicator/ProgressIndicator.Skeleton.js +0 -4
- package/es/components/ProgressIndicator/ProgressIndicator.js +2 -40
- package/es/components/RadioButton/RadioButton.Skeleton.js +0 -1
- package/es/components/RadioButton/RadioButton.js +0 -13
- package/es/components/RadioButtonGroup/RadioButtonGroup.js +3 -23
- package/es/components/RadioTile/RadioTile.js +0 -12
- package/es/components/Search/Search.Skeleton.js +0 -2
- package/es/components/Search/Search.js +1 -28
- package/es/components/SecondaryButton/SecondaryButton.js +0 -1
- package/es/components/Select/Select.Skeleton.js +0 -2
- package/es/components/Select/Select.d.ts +1 -1
- package/es/components/Select/Select.js +6 -33
- package/es/components/SelectItem/SelectItem.js +0 -5
- package/es/components/SelectItemGroup/SelectItemGroup.d.ts +0 -1
- package/es/components/SelectItemGroup/SelectItemGroup.js +1 -7
- package/es/components/SkeletonIcon/SkeletonIcon.js +0 -2
- package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.js +0 -1
- package/es/components/SkeletonText/SkeletonText.js +0 -12
- package/es/components/Slider/Slider.Skeleton.js +0 -2
- package/es/components/Slider/Slider.d.ts +0 -1
- package/es/components/Slider/Slider.js +112 -135
- package/es/components/Stack/Stack.js +1 -8
- package/es/components/StructuredList/StructuredList.Skeleton.js +0 -5
- package/es/components/StructuredList/StructuredList.js +1 -25
- package/es/components/Switch/IconSwitch.js +0 -18
- package/es/components/Switch/Switch.js +0 -11
- package/es/components/TabContent/TabContent.js +2 -6
- package/es/components/Tabs/Tabs.Skeleton.js +0 -4
- package/es/components/Tabs/Tabs.js +135 -104
- package/es/components/Tabs/usePressable.js +18 -31
- package/es/components/Tag/Tag.Skeleton.js +0 -2
- package/es/components/Tag/Tag.js +0 -15
- package/es/components/Text/Text.js +5 -18
- package/es/components/Text/TextDirection.js +0 -3
- package/es/components/Text/TextDirectionContext.js +0 -1
- package/es/components/Text/createTextComponent.js +0 -3
- package/es/components/TextArea/TextArea.Skeleton.js +0 -2
- package/es/components/TextArea/TextArea.js +11 -33
- package/es/components/TextInput/ControlledPasswordInput.js +0 -20
- package/es/components/TextInput/PasswordInput.js +0 -25
- package/es/components/TextInput/TextInput.Skeleton.js +0 -2
- package/es/components/TextInput/TextInput.d.ts +1 -1
- package/es/components/TextInput/TextInput.js +5 -33
- package/es/components/TextInput/util.js +3 -5
- package/es/components/Theme/index.js +1 -6
- package/es/components/Tile/Tile.js +32 -59
- package/es/components/TileGroup/TileGroup.js +1 -22
- package/es/components/TimePicker/TimePicker.js +6 -32
- package/es/components/TimePickerSelect/TimePickerSelect.js +2 -5
- package/es/components/Toggle/Toggle.Skeleton.js +0 -8
- package/es/components/Toggle/Toggle.js +0 -16
- package/es/components/ToggleSmall/ToggleSmall.Skeleton.js +0 -7
- package/es/components/Toggletip/index.d.ts +148 -0
- package/es/components/Toggletip/index.js +20 -44
- package/es/components/Tooltip/DefinitionTooltip.js +0 -11
- package/es/components/Tooltip/Tooltip.d.ts +1 -1
- package/es/components/Tooltip/Tooltip.js +4 -21
- package/es/components/TreeView/TreeNode.js +21 -66
- package/es/components/TreeView/TreeView.js +11 -67
- package/es/components/UIShell/Content.js +2 -4
- package/es/components/UIShell/Header.js +0 -2
- package/es/components/UIShell/HeaderContainer.d.ts +33 -0
- package/es/components/UIShell/HeaderContainer.js +13 -11
- package/es/components/UIShell/HeaderGlobalAction.js +0 -6
- package/es/components/UIShell/HeaderGlobalBar.js +0 -1
- package/es/components/UIShell/HeaderMenu.js +32 -31
- package/es/components/UIShell/HeaderMenuButton.js +2 -4
- package/es/components/UIShell/HeaderMenuItem.js +0 -8
- package/es/components/UIShell/HeaderName.js +0 -5
- package/es/components/UIShell/HeaderNavigation.js +0 -2
- package/es/components/UIShell/HeaderPanel.js +0 -2
- package/es/components/UIShell/HeaderSideNavItems.js +0 -2
- package/es/components/UIShell/Link.js +2 -3
- package/es/components/UIShell/SideNav.d.ts +3 -1
- package/es/components/UIShell/SideNav.js +44 -36
- package/es/components/UIShell/SideNavDetails.js +0 -3
- package/es/components/UIShell/SideNavDivider.js +0 -1
- package/es/components/UIShell/SideNavFooter.js +1 -4
- package/es/components/UIShell/SideNavHeader.js +0 -4
- package/es/components/UIShell/SideNavIcon.js +0 -3
- package/es/components/UIShell/SideNavItem.js +0 -3
- package/es/components/UIShell/SideNavItems.js +2 -6
- package/es/components/UIShell/SideNavLink.js +3 -7
- package/es/components/UIShell/SideNavLinkText.js +0 -2
- package/es/components/UIShell/SideNavMenu.js +0 -16
- package/es/components/UIShell/SideNavMenuItem.js +0 -2
- package/es/components/UIShell/SideNavSwitcher.js +2 -5
- package/es/components/UIShell/SkipToContent.d.ts +32 -0
- package/es/components/UIShell/SkipToContent.js +8 -15
- package/es/components/UIShell/Switcher.js +0 -2
- package/es/components/UIShell/SwitcherDivider.js +0 -1
- package/es/components/UIShell/SwitcherItem.js +0 -3
- package/es/components/UnorderedList/UnorderedList.d.ts +34 -0
- package/es/components/UnorderedList/UnorderedList.js +6 -16
- package/es/components/UnorderedList/index.d.ts +7 -0
- package/es/index.js +7 -8
- package/es/internal/ClickListener.js +3 -13
- package/es/internal/FloatingMenu.js +57 -63
- package/es/internal/OptimizedResize.js +6 -12
- package/es/internal/Selection.js +2 -25
- package/es/internal/createClassWrapper.js +0 -2
- package/es/internal/deprecateFieldOnObject.js +0 -4
- package/es/internal/focus/index.js +0 -1
- package/es/internal/keyboard/keys.js +2 -1
- package/es/internal/keyboard/match.js +1 -6
- package/es/internal/keyboard/navigation.js +8 -7
- package/es/internal/useAnnouncer.js +0 -1
- package/es/internal/useAttachedMenu.js +1 -9
- package/es/internal/useControllableState.js +6 -13
- package/es/internal/useDelayedState.js +2 -4
- package/es/internal/useEffectOnce.js +0 -1
- package/es/internal/useEvent.js +61 -3
- package/es/internal/useId.js +2 -5
- package/es/internal/useIsomorphicEffect.js +1 -0
- package/es/internal/useMergedRefs.js +2 -2
- package/es/internal/useNoInteractiveChildren.js +2 -13
- package/es/internal/useNormalizedInputProps.js +0 -3
- package/es/internal/useSavedCallback.js +0 -1
- package/es/internal/warning.js +0 -3
- package/es/internal/wrapFocus.js +1 -8
- package/es/prop-types/deprecate.js +2 -5
- package/es/prop-types/isRequiredOneOf.js +2 -5
- package/es/prop-types/requiredIfGivenPropIsTruthy.js +0 -2
- package/es/tools/array.js +0 -3
- package/es/tools/events.js +0 -3
- package/es/tools/mergeRefs.js +0 -2
- package/es/tools/wrapComponent.js +2 -5
- package/lib/_virtual/_rollupPluginBabelHelpers.js +17 -4
- package/lib/components/Accordion/Accordion.Skeleton.js +0 -7
- package/lib/components/Accordion/Accordion.js +1 -27
- package/lib/components/Accordion/AccordionItem.js +5 -19
- package/lib/components/AspectRatio/AspectRatio.js +0 -5
- package/lib/components/Breadcrumb/Breadcrumb.Skeleton.js +0 -3
- package/lib/components/Breadcrumb/Breadcrumb.js +0 -3
- package/lib/components/Breadcrumb/BreadcrumbItem.js +0 -7
- package/lib/components/Button/Button.Skeleton.js +2 -26
- package/lib/components/Button/Button.js +2 -36
- package/lib/components/ButtonSet/ButtonSet.js +0 -2
- package/lib/components/Checkbox/Checkbox.Skeleton.js +0 -1
- package/lib/components/Checkbox/Checkbox.js +4 -20
- package/lib/components/CheckboxGroup/CheckboxGroup.js +0 -11
- package/lib/components/ClassPrefix/index.d.ts +26 -0
- package/lib/components/ClassPrefix/index.js +0 -2
- package/lib/components/CodeSnippet/CodeSnippet.Skeleton.js +0 -5
- package/lib/components/CodeSnippet/CodeSnippet.js +6 -45
- package/lib/components/ComboBox/ComboBox.js +19 -86
- package/lib/components/ComboBox/tools/filter.js +0 -1
- package/lib/components/ComboButton/index.js +0 -14
- package/lib/components/ComposedModal/ComposedModal.js +2 -32
- package/lib/components/ComposedModal/ModalFooter.js +0 -21
- package/lib/components/ComposedModal/ModalHeader.js +0 -12
- package/lib/components/ContainedList/ContainedList.js +5 -32
- package/lib/components/ContainedList/ContainedListItem/ContainedListItem.js +0 -6
- package/lib/components/ContentSwitcher/ContentSwitcher.js +11 -23
- package/lib/components/ContextMenu/useContextMenu.js +1 -6
- package/lib/components/Copy/Copy.js +8 -50
- package/lib/components/CopyButton/CopyButton.js +0 -4
- package/lib/components/DangerButton/DangerButton.js +0 -1
- package/lib/components/DataTable/DataTable.js +171 -91
- package/lib/components/DataTable/Table.js +0 -6
- package/lib/components/DataTable/TableBatchAction.js +0 -4
- package/lib/components/DataTable/TableBatchActions.js +0 -8
- package/lib/components/DataTable/TableBody.js +0 -1
- package/lib/components/DataTable/TableContainer.js +0 -5
- package/lib/components/DataTable/TableExpandHeader.js +0 -7
- package/lib/components/DataTable/TableExpandRow.js +0 -6
- package/lib/components/DataTable/TableExpandedRow.js +0 -6
- package/lib/components/DataTable/TableHeader.d.ts +1 -1
- package/lib/components/DataTable/TableHeader.js +3 -19
- package/lib/components/DataTable/TableRow.js +4 -5
- package/lib/components/DataTable/TableSelectAll.js +0 -8
- package/lib/components/DataTable/TableSelectRow.js +2 -10
- package/lib/components/DataTable/TableToolbar.js +0 -3
- package/lib/components/DataTable/TableToolbarMenu.d.ts +1 -1
- package/lib/components/DataTable/TableToolbarMenu.js +3 -6
- package/lib/components/DataTable/TableToolbarSearch.js +2 -30
- package/lib/components/DataTable/state/getDerivedStateFromProps.js +0 -4
- package/lib/components/DataTable/state/sorting.js +5 -8
- package/lib/components/DataTable/tools/denormalize.js +2 -2
- package/lib/components/DataTable/tools/filter.js +0 -2
- package/lib/components/DataTable/tools/instanceId.js +0 -1
- package/lib/components/DataTable/tools/normalize.js +10 -10
- package/lib/components/DataTable/tools/sorting.js +5 -13
- package/lib/components/DataTableSkeleton/DataTableSkeleton.js +5 -20
- package/lib/components/DatePicker/DatePicker.Skeleton.js +0 -6
- package/lib/components/DatePicker/DatePicker.js +153 -175
- package/lib/components/DatePicker/plugins/appendToPlugin.js +3 -7
- package/lib/components/DatePicker/plugins/fixEventsPlugin.js +14 -25
- package/lib/components/DatePicker/plugins/rangePlugin.js +2 -7
- package/lib/components/DatePickerInput/DatePickerInput.js +2 -28
- package/lib/components/Dropdown/Dropdown.Skeleton.js +0 -2
- package/lib/components/Dropdown/Dropdown.js +50 -59
- package/lib/components/ErrorBoundary/ErrorBoundary.js +0 -10
- package/lib/components/ErrorBoundary/ErrorBoundaryContext.js +0 -1
- package/lib/components/ExpandableSearch/ExpandableSearch.js +1 -10
- package/lib/components/FeatureFlags/index.js +8 -20
- package/lib/components/FileUploader/FileUploader.Skeleton.js +0 -2
- package/lib/components/FileUploader/FileUploader.js +3 -57
- package/lib/components/FileUploader/FileUploaderButton.js +3 -43
- package/lib/components/FileUploader/FileUploaderDropContainer.js +1 -28
- package/lib/components/FileUploader/FileUploaderItem.js +5 -31
- package/lib/components/FileUploader/Filename.js +6 -10
- package/lib/components/FluidComboBox/FluidComboBox.Skeleton.js +0 -1
- package/lib/components/FluidComboBox/FluidComboBox.js +0 -18
- package/lib/components/FluidDatePicker/FluidDatePicker.Skeleton.js +0 -2
- package/lib/components/FluidDatePicker/FluidDatePicker.js +0 -6
- package/lib/components/FluidDatePickerInput/FluidDatePickerInput.js +2 -1
- package/lib/components/FluidDropdown/FluidDropdown.Skeleton.js +0 -1
- package/lib/components/FluidDropdown/FluidDropdown.js +0 -18
- package/lib/components/FluidForm/FluidForm.js +0 -2
- package/lib/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +0 -1
- package/lib/components/FluidMultiSelect/FluidMultiSelect.js +0 -19
- package/lib/components/FluidSelect/FluidSelect.Skeleton.js +0 -1
- package/lib/components/FluidSelect/FluidSelect.js +0 -10
- package/lib/components/FluidTextArea/FluidTextArea.Skeleton.js +0 -1
- package/lib/components/FluidTextArea/FluidTextArea.js +0 -20
- package/lib/components/FluidTextInput/FluidTextInput.Skeleton.js +0 -1
- package/lib/components/FluidTextInput/FluidTextInput.js +0 -14
- package/lib/components/FluidTimePicker/FluidTimePicker.Skeleton.js +0 -3
- package/lib/components/FluidTimePicker/FluidTimePicker.js +1 -11
- package/lib/components/FluidTimePickerSelect/FluidTimePickerSelect.js +0 -6
- package/lib/components/Form/Form.d.ts +23 -0
- package/lib/components/Form/Form.js +3 -6
- package/lib/components/Form/index.d.ts +7 -0
- package/lib/components/FormGroup/FormGroup.js +0 -7
- package/lib/components/FormItem/FormItem.js +0 -2
- package/lib/components/FormLabel/FormLabel.js +1 -26
- package/lib/components/Grid/CSSGrid.js +2 -15
- package/lib/components/Grid/Column.js +18 -59
- package/lib/components/Grid/ColumnHang.js +2 -5
- package/lib/components/Grid/FlexGrid.js +2 -8
- package/lib/components/Grid/Grid.js +0 -8
- package/lib/components/Grid/GridContext.js +1 -3
- package/lib/components/Grid/Row.js +2 -7
- package/lib/components/Heading/index.js +0 -4
- package/lib/components/Icon/Icon.Skeleton.js +2 -2
- package/lib/components/IconButton/index.js +0 -10
- package/lib/components/IdPrefix/index.js +0 -2
- package/lib/components/InlineCheckbox/InlineCheckbox.js +0 -14
- package/lib/components/InlineLoading/InlineLoading.js +0 -12
- package/lib/components/Layer/index.js +3 -6
- package/lib/components/Layout/LayoutDirection.js +0 -3
- package/lib/components/Layout/useLayoutDirection.js +0 -1
- package/lib/components/Link/Link.js +3 -10
- package/lib/components/ListBox/ListBox.js +2 -13
- package/lib/components/ListBox/ListBoxField.js +0 -5
- package/lib/components/ListBox/ListBoxMenuIcon.js +0 -4
- package/lib/components/ListBox/ListBoxMenuItem.js +2 -6
- package/lib/components/ListBox/ListBoxPropTypes.d.ts +2 -2
- package/lib/components/ListBox/ListBoxSelection.js +1 -13
- package/lib/components/ListBox/next/ListBoxSelection.js +1 -14
- package/lib/components/ListBox/next/ListBoxTrigger.js +1 -3
- package/lib/components/ListItem/ListItem.d.ts +23 -0
- package/lib/components/ListItem/ListItem.js +4 -8
- package/lib/components/ListItem/index.d.ts +7 -0
- package/lib/components/Loading/Loading.js +0 -6
- package/lib/components/Menu/Menu.js +22 -40
- package/lib/components/Menu/MenuContext.js +4 -5
- package/lib/components/Menu/MenuItem.js +5 -39
- package/lib/components/MenuButton/index.js +0 -9
- package/lib/components/Modal/Modal.js +1 -46
- package/lib/components/ModalWrapper/ModalWrapper.js +2 -15
- package/lib/components/MultiSelect/FilterableMultiSelect.js +8 -66
- package/lib/components/MultiSelect/MultiSelect.js +30 -78
- package/lib/components/MultiSelect/MultiSelectPropTypes.js +0 -1
- package/lib/components/MultiSelect/index.js +0 -1
- package/lib/components/MultiSelect/tools/itemToString.js +0 -2
- package/lib/components/MultiSelect/tools/sorting.js +3 -4
- package/lib/components/Notification/Notification.js +0 -78
- package/lib/components/NumberInput/NumberInput.Skeleton.js +0 -2
- package/lib/components/NumberInput/NumberInput.js +3 -60
- package/lib/components/OrderedList/OrderedList.d.ts +39 -0
- package/lib/components/OrderedList/OrderedList.js +7 -19
- package/lib/components/OrderedList/index.d.ts +7 -0
- package/lib/components/OverflowMenu/OverflowMenu.js +65 -86
- package/lib/components/OverflowMenuItem/OverflowMenuItem.js +6 -23
- package/lib/components/OverflowMenuV2/index.js +0 -5
- package/lib/components/Pagination/Pagination.Skeleton.js +0 -2
- package/lib/components/Pagination/Pagination.js +11 -47
- package/lib/components/Pagination/experimental/PageSelector.js +0 -10
- package/lib/components/Pagination/experimental/Pagination.js +2 -67
- package/lib/components/PaginationNav/PaginationNav.js +15 -78
- package/lib/components/Popover/index.d.ts +14 -8
- package/lib/components/Popover/index.js +44 -48
- package/lib/components/PrimaryButton/PrimaryButton.js +0 -1
- package/lib/components/ProgressBar/ProgressBar.js +0 -15
- package/lib/components/ProgressIndicator/ProgressIndicator.Skeleton.js +0 -4
- package/lib/components/ProgressIndicator/ProgressIndicator.js +2 -40
- package/lib/components/RadioButton/RadioButton.Skeleton.js +0 -1
- package/lib/components/RadioButton/RadioButton.js +0 -13
- package/lib/components/RadioButtonGroup/RadioButtonGroup.js +3 -23
- package/lib/components/RadioTile/RadioTile.js +0 -12
- package/lib/components/Search/Search.Skeleton.js +0 -2
- package/lib/components/Search/Search.js +1 -28
- package/lib/components/SecondaryButton/SecondaryButton.js +0 -1
- package/lib/components/Select/Select.Skeleton.js +0 -2
- package/lib/components/Select/Select.d.ts +1 -1
- package/lib/components/Select/Select.js +6 -33
- package/lib/components/SelectItem/SelectItem.js +0 -5
- package/lib/components/SelectItemGroup/SelectItemGroup.d.ts +0 -1
- package/lib/components/SelectItemGroup/SelectItemGroup.js +1 -26
- package/lib/components/SkeletonIcon/SkeletonIcon.js +0 -2
- package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.js +0 -1
- package/lib/components/SkeletonText/SkeletonText.js +0 -12
- package/lib/components/Slider/Slider.Skeleton.js +0 -2
- package/lib/components/Slider/Slider.d.ts +0 -1
- package/lib/components/Slider/Slider.js +112 -154
- package/lib/components/Stack/Stack.js +1 -8
- package/lib/components/StructuredList/StructuredList.Skeleton.js +0 -5
- package/lib/components/StructuredList/StructuredList.js +1 -25
- package/lib/components/Switch/IconSwitch.js +0 -18
- package/lib/components/Switch/Switch.js +0 -11
- package/lib/components/TabContent/TabContent.js +2 -6
- package/lib/components/Tabs/Tabs.Skeleton.js +0 -4
- package/lib/components/Tabs/Tabs.js +133 -102
- package/lib/components/Tabs/usePressable.js +18 -31
- package/lib/components/Tag/Tag.Skeleton.js +0 -2
- package/lib/components/Tag/Tag.js +0 -15
- package/lib/components/Text/Text.js +5 -18
- package/lib/components/Text/TextDirection.js +0 -3
- package/lib/components/Text/TextDirectionContext.js +0 -1
- package/lib/components/Text/createTextComponent.js +0 -3
- package/lib/components/TextArea/TextArea.Skeleton.js +0 -2
- package/lib/components/TextArea/TextArea.js +10 -32
- package/lib/components/TextInput/ControlledPasswordInput.js +0 -20
- package/lib/components/TextInput/PasswordInput.js +0 -25
- package/lib/components/TextInput/TextInput.Skeleton.js +0 -2
- package/lib/components/TextInput/TextInput.d.ts +1 -1
- package/lib/components/TextInput/TextInput.js +5 -52
- package/lib/components/TextInput/util.js +3 -5
- package/lib/components/Theme/index.js +1 -6
- package/lib/components/Tile/Tile.js +31 -58
- package/lib/components/TileGroup/TileGroup.js +1 -22
- package/lib/components/TimePicker/TimePicker.js +6 -32
- package/lib/components/TimePickerSelect/TimePickerSelect.js +2 -5
- package/lib/components/Toggle/Toggle.Skeleton.js +0 -8
- package/lib/components/Toggle/Toggle.js +0 -16
- package/lib/components/ToggleSmall/ToggleSmall.Skeleton.js +0 -7
- package/lib/components/Toggletip/index.d.ts +148 -0
- package/lib/components/Toggletip/index.js +20 -44
- package/lib/components/Tooltip/DefinitionTooltip.js +0 -11
- package/lib/components/Tooltip/Tooltip.d.ts +1 -1
- package/lib/components/Tooltip/Tooltip.js +4 -21
- package/lib/components/TreeView/TreeNode.js +21 -66
- package/lib/components/TreeView/TreeView.js +11 -67
- package/lib/components/UIShell/Content.js +2 -4
- package/lib/components/UIShell/Header.js +0 -2
- package/lib/components/UIShell/HeaderContainer.d.ts +33 -0
- package/lib/components/UIShell/HeaderContainer.js +13 -11
- package/lib/components/UIShell/HeaderGlobalAction.js +0 -6
- package/lib/components/UIShell/HeaderGlobalBar.js +0 -1
- package/lib/components/UIShell/HeaderMenu.js +32 -31
- package/lib/components/UIShell/HeaderMenuButton.js +2 -4
- package/lib/components/UIShell/HeaderMenuItem.js +0 -8
- package/lib/components/UIShell/HeaderName.js +0 -5
- package/lib/components/UIShell/HeaderNavigation.js +0 -2
- package/lib/components/UIShell/HeaderPanel.js +0 -2
- package/lib/components/UIShell/HeaderSideNavItems.js +0 -2
- package/lib/components/UIShell/Link.js +2 -3
- package/lib/components/UIShell/SideNav.d.ts +3 -1
- package/lib/components/UIShell/SideNav.js +43 -35
- package/lib/components/UIShell/SideNavDetails.js +0 -3
- package/lib/components/UIShell/SideNavDivider.js +0 -1
- package/lib/components/UIShell/SideNavFooter.js +1 -4
- package/lib/components/UIShell/SideNavHeader.js +0 -4
- package/lib/components/UIShell/SideNavIcon.js +0 -3
- package/lib/components/UIShell/SideNavItem.js +0 -3
- package/lib/components/UIShell/SideNavItems.js +2 -6
- package/lib/components/UIShell/SideNavLink.js +3 -7
- package/lib/components/UIShell/SideNavLinkText.js +0 -2
- package/lib/components/UIShell/SideNavMenu.js +0 -16
- package/lib/components/UIShell/SideNavMenuItem.js +0 -2
- package/lib/components/UIShell/SideNavSwitcher.js +2 -5
- package/lib/components/UIShell/SkipToContent.d.ts +32 -0
- package/lib/components/UIShell/SkipToContent.js +8 -15
- package/lib/components/UIShell/Switcher.js +0 -2
- package/lib/components/UIShell/SwitcherDivider.js +0 -1
- package/lib/components/UIShell/SwitcherItem.js +0 -3
- package/lib/components/UnorderedList/UnorderedList.d.ts +34 -0
- package/lib/components/UnorderedList/UnorderedList.js +6 -16
- package/lib/components/UnorderedList/index.d.ts +7 -0
- package/lib/index.js +42 -43
- package/lib/internal/ClickListener.js +3 -13
- package/lib/internal/FloatingMenu.js +57 -63
- package/lib/internal/OptimizedResize.js +6 -12
- package/lib/internal/Selection.js +2 -25
- package/lib/internal/createClassWrapper.js +0 -2
- package/lib/internal/deprecateFieldOnObject.js +0 -4
- package/lib/internal/focus/index.js +0 -1
- package/lib/internal/keyboard/keys.js +2 -1
- package/lib/internal/keyboard/match.js +1 -6
- package/lib/internal/keyboard/navigation.js +8 -7
- package/lib/internal/useAnnouncer.js +0 -1
- package/lib/internal/useAttachedMenu.js +1 -9
- package/lib/internal/useControllableState.js +6 -13
- package/lib/internal/useDelayedState.js +2 -4
- package/lib/internal/useEffectOnce.js +0 -1
- package/lib/internal/useEvent.js +61 -2
- package/lib/internal/useId.js +2 -5
- package/lib/internal/useIsomorphicEffect.js +1 -0
- package/lib/internal/useMergedRefs.js +2 -2
- package/lib/internal/useNoInteractiveChildren.js +2 -13
- package/lib/internal/useNormalizedInputProps.js +0 -3
- package/lib/internal/useSavedCallback.js +0 -1
- package/lib/internal/warning.js +0 -3
- package/lib/internal/wrapFocus.js +1 -8
- package/lib/prop-types/deprecate.js +2 -5
- package/lib/prop-types/isRequiredOneOf.js +2 -5
- package/lib/prop-types/requiredIfGivenPropIsTruthy.js +0 -2
- package/lib/tools/array.js +0 -3
- package/lib/tools/events.js +0 -3
- package/lib/tools/mergeRefs.js +0 -2
- package/lib/tools/wrapComponent.js +2 -5
- package/package.json +9 -9
- package/es/components/Tab/Tab.js +0 -185
- package/es/components/Tab/index.js +0 -14
- package/es/components/TimePickerSelect/index.js +0 -13
- package/lib/components/Form/index.js +0 -17
- package/lib/components/Tab/Tab.js +0 -214
- package/lib/components/Tab/index.js +0 -39
- package/lib/components/TimePickerSelect/index.js +0 -38
|
@@ -26,6 +26,7 @@ var useNoInteractiveChildren = require('../../internal/useNoInteractiveChildren.
|
|
|
26
26
|
var usePrefix = require('../../internal/usePrefix.js');
|
|
27
27
|
var usePressable = require('./usePressable.js');
|
|
28
28
|
var deprecate = require('../../prop-types/deprecate.js');
|
|
29
|
+
var useEvent = require('../../internal/useEvent.js');
|
|
29
30
|
var match = require('../../internal/keyboard/match.js');
|
|
30
31
|
var keys = require('../../internal/keyboard/keys.js');
|
|
31
32
|
|
|
@@ -36,25 +37,29 @@ var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
|
|
|
36
37
|
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
37
38
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
38
39
|
|
|
39
|
-
var _ChevronLeft, _ChevronRight;
|
|
40
|
+
var _ChevronLeft, _ChevronRight, _Close;
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
// Used to manage the overall state of the Tabs
|
|
43
|
+
const TabsContext = /*#__PURE__*/React__default["default"].createContext();
|
|
42
44
|
|
|
43
|
-
|
|
45
|
+
// Used to keep track of position in a tablist
|
|
46
|
+
const TabContext = /*#__PURE__*/React__default["default"].createContext();
|
|
44
47
|
|
|
48
|
+
// Used to keep track of position in a list of tab panels
|
|
45
49
|
const TabPanelContext = /*#__PURE__*/React__default["default"].createContext();
|
|
46
|
-
|
|
47
50
|
function Tabs(_ref) {
|
|
48
51
|
let {
|
|
49
52
|
children,
|
|
50
53
|
defaultSelectedIndex = 0,
|
|
51
54
|
onChange,
|
|
52
|
-
selectedIndex: controlledSelectedIndex
|
|
55
|
+
selectedIndex: controlledSelectedIndex,
|
|
56
|
+
dismissable,
|
|
57
|
+
onTabCloseRequest
|
|
53
58
|
} = _ref;
|
|
54
|
-
const baseId = useId.useId('ccs');
|
|
55
|
-
|
|
56
|
-
const [activeIndex, setActiveIndex] = React.useState(defaultSelectedIndex);
|
|
57
|
-
|
|
59
|
+
const baseId = useId.useId('ccs');
|
|
60
|
+
// The active index is used to track the element which has focus in our tablist
|
|
61
|
+
const [activeIndex, setActiveIndex] = React.useState(defaultSelectedIndex);
|
|
62
|
+
// The selected index is used for the tab/panel pairing which is "visible"
|
|
58
63
|
const [selectedIndex, setSelectedIndex] = useControllableState.useControllableState({
|
|
59
64
|
value: controlledSelectedIndex,
|
|
60
65
|
defaultValue: defaultSelectedIndex,
|
|
@@ -70,6 +75,8 @@ function Tabs(_ref) {
|
|
|
70
75
|
baseId,
|
|
71
76
|
activeIndex,
|
|
72
77
|
defaultSelectedIndex,
|
|
78
|
+
dismissable,
|
|
79
|
+
onTabCloseRequest,
|
|
73
80
|
setActiveIndex,
|
|
74
81
|
selectedIndex,
|
|
75
82
|
setSelectedIndex
|
|
@@ -78,32 +85,43 @@ function Tabs(_ref) {
|
|
|
78
85
|
value: value
|
|
79
86
|
}, children);
|
|
80
87
|
}
|
|
81
|
-
|
|
82
88
|
Tabs.propTypes = {
|
|
83
89
|
/**
|
|
84
90
|
* Provide child elements to be rendered inside of the `Tabs`.
|
|
85
91
|
* These elements should render either `TabsList` or `TabsPanels`
|
|
86
92
|
*/
|
|
87
93
|
children: PropTypes__default["default"].node,
|
|
88
|
-
|
|
89
94
|
/**
|
|
90
95
|
* Specify which content tab should be initially selected when the component
|
|
91
96
|
* is first rendered
|
|
92
97
|
*/
|
|
93
98
|
defaultSelectedIndex: PropTypes__default["default"].number,
|
|
94
|
-
|
|
99
|
+
/**
|
|
100
|
+
* Whether the render Tab children should be dismissable.
|
|
101
|
+
*/
|
|
102
|
+
dismissable: PropTypes__default["default"].bool,
|
|
95
103
|
/**
|
|
96
104
|
* Provide an optional function which is called whenever the state of the
|
|
97
105
|
* `Tabs` changes
|
|
98
106
|
*/
|
|
99
107
|
onChange: PropTypes__default["default"].func,
|
|
100
|
-
|
|
108
|
+
/**
|
|
109
|
+
* If specifying the `onTabCloseRequest` prop, provide a callback function
|
|
110
|
+
* responsible for removing the tab when close button is pressed on one of the Tab elements
|
|
111
|
+
*/
|
|
112
|
+
onTabCloseRequest: props => {
|
|
113
|
+
if (props.dismissable && !props.onTabCloseRequest) {
|
|
114
|
+
return new Error('dismissable property specified without also providing an onTabCloseRequest property.');
|
|
115
|
+
}
|
|
116
|
+
return undefined;
|
|
117
|
+
},
|
|
101
118
|
/**
|
|
102
119
|
* Control which content panel is currently selected. This puts the component
|
|
103
120
|
* in a controlled mode and should be used along with `onChange`
|
|
104
121
|
*/
|
|
105
122
|
selectedIndex: PropTypes__default["default"].number
|
|
106
123
|
};
|
|
124
|
+
|
|
107
125
|
/**
|
|
108
126
|
* Get the next index for a given keyboard event given a count of the total
|
|
109
127
|
* items and the current index
|
|
@@ -112,7 +130,6 @@ Tabs.propTypes = {
|
|
|
112
130
|
* @param {number} index
|
|
113
131
|
* @returns {number}
|
|
114
132
|
*/
|
|
115
|
-
|
|
116
133
|
function getNextIndex(event, total, index) {
|
|
117
134
|
if (match.match(event, keys.ArrowRight)) {
|
|
118
135
|
return (index + 1) % total;
|
|
@@ -124,7 +141,6 @@ function getNextIndex(event, total, index) {
|
|
|
124
141
|
return total - 1;
|
|
125
142
|
}
|
|
126
143
|
}
|
|
127
|
-
|
|
128
144
|
function TabList(_ref2) {
|
|
129
145
|
let {
|
|
130
146
|
activation = 'automatic',
|
|
@@ -144,7 +160,8 @@ function TabList(_ref2) {
|
|
|
144
160
|
activeIndex,
|
|
145
161
|
selectedIndex,
|
|
146
162
|
setSelectedIndex,
|
|
147
|
-
setActiveIndex
|
|
163
|
+
setActiveIndex,
|
|
164
|
+
dismissable
|
|
148
165
|
} = React__default["default"].useContext(TabsContext);
|
|
149
166
|
const prefix = usePrefix.usePrefix();
|
|
150
167
|
const ref = React.useRef(null);
|
|
@@ -152,25 +169,26 @@ function TabList(_ref2) {
|
|
|
152
169
|
const nextButton = React.useRef(null);
|
|
153
170
|
const [isScrollable, setIsScrollable] = React.useState(false);
|
|
154
171
|
const [scrollLeft, setScrollLeft] = React.useState(null);
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
[`${prefix}--tabs--contained`]: contained,
|
|
158
|
-
[`${prefix}--tabs--light`]: light,
|
|
159
|
-
[`${prefix}--tabs__icon--default`]: iconSize === 'default',
|
|
160
|
-
[`${prefix}--tabs__icon--lg`]: iconSize === 'lg',
|
|
161
|
-
[`${prefix}--tabs--tall`]: hasSecondaryLabelTabs
|
|
162
|
-
}); // Previous Button
|
|
172
|
+
|
|
173
|
+
// Previous Button
|
|
163
174
|
// VISIBLE IF:
|
|
164
175
|
// SCROLLABLE
|
|
165
176
|
// AND SCROLL_LEFT > 0
|
|
166
|
-
|
|
167
177
|
const buttonWidth = 44;
|
|
168
|
-
|
|
178
|
+
// Next Button
|
|
169
179
|
// VISIBLE IF:
|
|
170
180
|
// SCROLLABLE
|
|
171
181
|
// AND SCROLL_LEFT + CLIENT_WIDTH < SCROLL_WIDTH
|
|
172
|
-
|
|
173
|
-
const
|
|
182
|
+
const [isNextButtonVisible, setIsNextButtonVisible] = React.useState(ref.current ? scrollLeft + buttonWidth + ref.current.clientWidth < ref.current.scrollWidth : false);
|
|
183
|
+
const hasSecondaryLabelTabs = contained && !!React__default["default"].Children.toArray(children).filter(child => child.props.secondaryLabel).length;
|
|
184
|
+
const className = cx__default["default"](`${prefix}--tabs`, customClassName, {
|
|
185
|
+
[`${prefix}--tabs--contained`]: contained,
|
|
186
|
+
[`${prefix}--tabs--light`]: light,
|
|
187
|
+
[`${prefix}--tabs__icon--default`]: iconSize === 'default',
|
|
188
|
+
[`${prefix}--tabs__icon--lg`]: iconSize === 'lg',
|
|
189
|
+
[`${prefix}--tabs--tall`]: hasSecondaryLabelTabs
|
|
190
|
+
});
|
|
191
|
+
const isPreviousButtonVisible = ref.current ? isScrollable && scrollLeft > 0 : false;
|
|
174
192
|
const previousButtonClasses = cx__default["default"](`${prefix}--tab--overflow-nav-button`, `${prefix}--tab--overflow-nav-button--previous`, {
|
|
175
193
|
[`${prefix}--tab--overflow-nav-button--hidden`]: !isPreviousButtonVisible
|
|
176
194
|
});
|
|
@@ -183,7 +201,6 @@ function TabList(_ref2) {
|
|
|
183
201
|
setScrollLeft(event.target.scrollLeft);
|
|
184
202
|
}, scrollDebounceWait);
|
|
185
203
|
}, [scrollDebounceWait]);
|
|
186
|
-
|
|
187
204
|
function onKeyDown(event) {
|
|
188
205
|
if (match.matches(event, [keys.ArrowRight, keys.ArrowLeft, keys.Home, keys.End])) {
|
|
189
206
|
event.preventDefault();
|
|
@@ -192,20 +209,16 @@ function TabList(_ref2) {
|
|
|
192
209
|
});
|
|
193
210
|
const currentIndex = activeTabs.indexOf(tabs.current[activation === 'automatic' ? selectedIndex : activeIndex]);
|
|
194
211
|
const nextIndex = tabs.current.indexOf(activeTabs[getNextIndex(event, activeTabs.length, currentIndex)]);
|
|
195
|
-
|
|
196
212
|
if (activation === 'automatic') {
|
|
197
213
|
setSelectedIndex(nextIndex);
|
|
198
214
|
} else if (activation === 'manual') {
|
|
199
215
|
setActiveIndex(nextIndex);
|
|
200
216
|
}
|
|
201
|
-
|
|
202
217
|
tabs.current[nextIndex].focus();
|
|
203
218
|
}
|
|
204
219
|
}
|
|
205
|
-
|
|
206
220
|
useEffectOnce.useEffectOnce(() => {
|
|
207
221
|
const tab = tabs.current[selectedIndex];
|
|
208
|
-
|
|
209
222
|
if (scrollIntoView && tab) {
|
|
210
223
|
tab.scrollIntoView({
|
|
211
224
|
block: 'nearest',
|
|
@@ -213,12 +226,19 @@ function TabList(_ref2) {
|
|
|
213
226
|
});
|
|
214
227
|
}
|
|
215
228
|
});
|
|
229
|
+
React.useEffect(() => {
|
|
230
|
+
setIsNextButtonVisible(ref.current ? scrollLeft + buttonWidth + ref.current.clientWidth < ref.current.scrollWidth : false);
|
|
231
|
+
if (dismissable) {
|
|
232
|
+
if (ref.current) {
|
|
233
|
+
setIsScrollable(ref.current.scrollWidth > ref.current.clientWidth);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}, [scrollLeft, children, dismissable]);
|
|
216
237
|
useEffectOnce.useEffectOnce(() => {
|
|
217
238
|
if (tabs.current[selectedIndex].disabled) {
|
|
218
239
|
const activeTabs = tabs.current.filter(tab => {
|
|
219
240
|
return !tab.disabled;
|
|
220
241
|
});
|
|
221
|
-
|
|
222
242
|
if (activeTabs.length > 0) {
|
|
223
243
|
const tab = activeTabs[0];
|
|
224
244
|
setSelectedIndex(tabs.current.indexOf(tab));
|
|
@@ -229,21 +249,20 @@ function TabList(_ref2) {
|
|
|
229
249
|
if (ref.current) {
|
|
230
250
|
setIsScrollable(ref.current.scrollWidth > ref.current.clientWidth);
|
|
231
251
|
}
|
|
232
|
-
|
|
233
252
|
function handler() {
|
|
234
253
|
if (ref.current) {
|
|
235
254
|
setIsScrollable(ref.current.scrollWidth > ref.current.clientWidth);
|
|
236
255
|
}
|
|
237
256
|
}
|
|
238
|
-
|
|
239
257
|
const debouncedHandler = debounce__default["default"](handler, 200);
|
|
240
258
|
window.addEventListener('resize', debouncedHandler);
|
|
241
259
|
return () => {
|
|
242
260
|
debouncedHandler.cancel();
|
|
243
261
|
window.removeEventListener('resize', debouncedHandler);
|
|
244
262
|
};
|
|
245
|
-
}, []);
|
|
263
|
+
}, []);
|
|
246
264
|
|
|
265
|
+
// updates scroll location for all scroll behavior.
|
|
247
266
|
useIsomorphicEffect["default"](() => {
|
|
248
267
|
if (scrollLeft !== null) {
|
|
249
268
|
ref.current.scrollLeft = scrollLeft;
|
|
@@ -253,67 +272,63 @@ function TabList(_ref2) {
|
|
|
253
272
|
if (!isScrollable) {
|
|
254
273
|
return;
|
|
255
274
|
}
|
|
256
|
-
|
|
257
275
|
const tab = activation === 'manual' ? tabs.current[activeIndex] : tabs.current[selectedIndex];
|
|
258
|
-
|
|
259
276
|
if (tab) {
|
|
260
277
|
// The width of the "scroll buttons"
|
|
278
|
+
|
|
261
279
|
// The start and end position of the selected tab
|
|
262
280
|
const {
|
|
263
281
|
width: tabWidth
|
|
264
282
|
} = tab.getBoundingClientRect();
|
|
265
283
|
const start = tab.offsetLeft;
|
|
266
|
-
const end = tab.offsetLeft + tabWidth;
|
|
284
|
+
const end = tab.offsetLeft + tabWidth;
|
|
267
285
|
|
|
286
|
+
// The start and end of the visible area for the tabs
|
|
268
287
|
const visibleStart = ref.current.scrollLeft + buttonWidth;
|
|
269
|
-
const visibleEnd = ref.current.scrollLeft + ref.current.clientWidth - buttonWidth;
|
|
288
|
+
const visibleEnd = ref.current.scrollLeft + ref.current.clientWidth - buttonWidth;
|
|
270
289
|
|
|
290
|
+
// The beginning of the tab is clipped and not visible
|
|
271
291
|
if (start < visibleStart) {
|
|
272
292
|
setScrollLeft(start - buttonWidth);
|
|
273
|
-
}
|
|
274
|
-
|
|
293
|
+
}
|
|
275
294
|
|
|
295
|
+
// The end of the tab is clipped and not visible
|
|
276
296
|
if (end > visibleEnd) {
|
|
277
297
|
setScrollLeft(end + buttonWidth - ref.current.clientWidth);
|
|
278
298
|
}
|
|
279
299
|
}
|
|
280
|
-
}, [activation, activeIndex, selectedIndex, isScrollable]);
|
|
300
|
+
}, [activation, activeIndex, selectedIndex, isScrollable, children]);
|
|
281
301
|
usePressable.usePressable(previousButton, {
|
|
282
302
|
onPress(_ref3) {
|
|
283
303
|
let {
|
|
284
304
|
longPress
|
|
285
305
|
} = _ref3;
|
|
286
|
-
|
|
287
306
|
if (!longPress) {
|
|
288
307
|
setScrollLeft(Math.max(scrollLeft - ref.current.scrollWidth / tabs.current.length * 1.5, 0));
|
|
289
308
|
}
|
|
290
309
|
},
|
|
291
|
-
|
|
292
310
|
onLongPress() {
|
|
293
311
|
return createLongPressBehavior(ref, 'backward', setScrollLeft);
|
|
294
312
|
}
|
|
295
|
-
|
|
296
313
|
});
|
|
297
314
|
usePressable.usePressable(nextButton, {
|
|
298
315
|
onPress(_ref4) {
|
|
299
316
|
let {
|
|
300
317
|
longPress
|
|
301
318
|
} = _ref4;
|
|
302
|
-
|
|
303
319
|
if (!longPress) {
|
|
304
320
|
setScrollLeft(Math.min(scrollLeft + ref.current.scrollWidth / tabs.current.length * 1.5, ref.current.scrollWidth - ref.current.clientWidth));
|
|
305
321
|
}
|
|
306
322
|
},
|
|
307
|
-
|
|
308
323
|
onLongPress() {
|
|
309
324
|
return createLongPressBehavior(ref, 'forward', setScrollLeft);
|
|
310
325
|
}
|
|
311
|
-
|
|
312
326
|
});
|
|
313
327
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
314
328
|
className: className
|
|
315
329
|
}, /*#__PURE__*/React__default["default"].createElement("button", _rollupPluginBabelHelpers["extends"]({
|
|
316
330
|
"aria-hidden": "true",
|
|
331
|
+
tabIndex: "-1",
|
|
317
332
|
"aria-label": "Scroll left",
|
|
318
333
|
ref: previousButton,
|
|
319
334
|
className: previousButtonClasses,
|
|
@@ -329,7 +344,8 @@ function TabList(_ref2) {
|
|
|
329
344
|
return /*#__PURE__*/React__default["default"].createElement(TabContext.Provider, {
|
|
330
345
|
value: {
|
|
331
346
|
index,
|
|
332
|
-
hasSecondaryLabel: hasSecondaryLabelTabs
|
|
347
|
+
hasSecondaryLabel: hasSecondaryLabelTabs,
|
|
348
|
+
contained
|
|
333
349
|
}
|
|
334
350
|
}, /*#__PURE__*/React__default["default"].cloneElement(child, {
|
|
335
351
|
ref: node => {
|
|
@@ -338,75 +354,66 @@ function TabList(_ref2) {
|
|
|
338
354
|
}));
|
|
339
355
|
})), /*#__PURE__*/React__default["default"].createElement("button", _rollupPluginBabelHelpers["extends"]({
|
|
340
356
|
"aria-hidden": "true",
|
|
357
|
+
tabIndex: "-1",
|
|
341
358
|
"aria-label": "Scroll right",
|
|
342
359
|
ref: nextButton,
|
|
343
360
|
className: nextButtonClasses,
|
|
344
361
|
type: "button"
|
|
345
362
|
}, rightOverflowButtonProps), _ChevronRight || (_ChevronRight = /*#__PURE__*/React__default["default"].createElement(iconsReact.ChevronRight, null))));
|
|
346
363
|
}
|
|
347
|
-
|
|
348
364
|
TabList.propTypes = {
|
|
349
365
|
/**
|
|
350
366
|
* Specify whether the content tab should be activated automatically or
|
|
351
367
|
* manually
|
|
352
368
|
*/
|
|
353
369
|
activation: PropTypes__default["default"].oneOf(['automatic', 'manual']),
|
|
354
|
-
|
|
355
370
|
/**
|
|
356
371
|
* Provide an accessible label to be read when a user interacts with this
|
|
357
372
|
* component
|
|
358
373
|
*/
|
|
359
374
|
'aria-label': PropTypes__default["default"].string.isRequired,
|
|
360
|
-
|
|
361
375
|
/**
|
|
362
376
|
* Provide child elements to be rendered inside of `ContentTabs`.
|
|
363
377
|
* These elements should render a `ContentTab`
|
|
364
378
|
*/
|
|
365
379
|
children: PropTypes__default["default"].node,
|
|
366
|
-
|
|
367
380
|
/**
|
|
368
381
|
* Specify an optional className to be added to the container node
|
|
369
382
|
*/
|
|
370
383
|
className: PropTypes__default["default"].string,
|
|
371
|
-
|
|
372
384
|
/**
|
|
373
385
|
* Specify whether component is contained type
|
|
374
386
|
*/
|
|
375
387
|
contained: PropTypes__default["default"].bool,
|
|
376
|
-
|
|
377
388
|
/**
|
|
378
389
|
* If using `IconTab`, specify the size of the icon being used.
|
|
379
390
|
*/
|
|
380
391
|
iconSize: PropTypes__default["default"].oneOf(['default', 'lg']),
|
|
381
|
-
|
|
382
392
|
/**
|
|
383
393
|
* Provide the props that describe the left overflow button
|
|
384
394
|
*/
|
|
385
395
|
leftOverflowButtonProps: PropTypes__default["default"].object,
|
|
386
|
-
|
|
387
396
|
/**
|
|
388
397
|
* Specify whether or not to use the light component variant
|
|
389
398
|
*/
|
|
390
399
|
light: deprecate["default"](PropTypes__default["default"].bool, 'The `light` prop for `TabList` has ' + 'been deprecated in favor of the new `Layer` component. It will be removed in the next major release.'),
|
|
391
|
-
|
|
392
400
|
/**
|
|
393
401
|
* Provide the props that describe the right overflow button
|
|
394
402
|
*/
|
|
395
403
|
rightOverflowButtonProps: PropTypes__default["default"].object,
|
|
396
|
-
|
|
397
404
|
/**
|
|
398
405
|
* Optionally provide a delay (in milliseconds) passed to the lodash
|
|
399
406
|
* debounce of the onScroll handler. This will impact the responsiveness
|
|
400
407
|
* of scroll arrow buttons rendering when scrolling to the first or last tab.
|
|
401
408
|
*/
|
|
402
409
|
scrollDebounceWait: PropTypes__default["default"].number,
|
|
403
|
-
|
|
404
410
|
/**
|
|
405
411
|
* Choose whether or not to automatically scroll to newly selected tabs
|
|
406
412
|
* on component rerender
|
|
407
413
|
*/
|
|
408
414
|
scrollIntoView: PropTypes__default["default"].bool
|
|
409
415
|
};
|
|
416
|
+
|
|
410
417
|
/**
|
|
411
418
|
* Helper function to setup the behavior when a button is "long pressed". This
|
|
412
419
|
* function will take a ref to the tablist, a direction, and a setter for
|
|
@@ -421,7 +428,6 @@ TabList.propTypes = {
|
|
|
421
428
|
* @param {Function} setScrollLeft
|
|
422
429
|
* @returns {Function}
|
|
423
430
|
*/
|
|
424
|
-
|
|
425
431
|
function createLongPressBehavior(ref, direction, setScrollLeft) {
|
|
426
432
|
// We manually override the scroll behavior to be "auto". If it is set as
|
|
427
433
|
// smooth, this animation does not update correctly
|
|
@@ -429,27 +435,24 @@ function createLongPressBehavior(ref, direction, setScrollLeft) {
|
|
|
429
435
|
ref.current.style['scroll-behavior'] = 'auto';
|
|
430
436
|
const scrollDelta = direction === 'forward' ? 5 : -5;
|
|
431
437
|
let frameId = null;
|
|
432
|
-
|
|
433
438
|
function tick() {
|
|
434
439
|
ref.current.scrollLeft = ref.current.scrollLeft + scrollDelta;
|
|
435
440
|
frameId = requestAnimationFrame(tick);
|
|
436
441
|
}
|
|
437
|
-
|
|
438
442
|
frameId = requestAnimationFrame(tick);
|
|
439
443
|
return () => {
|
|
440
444
|
// Restore the previous scroll behavior
|
|
441
|
-
ref.current.style['scroll-behavior'] = defaultScrollBehavior;
|
|
442
|
-
// `ref` after our requestAnimationFrame loop above
|
|
445
|
+
ref.current.style['scroll-behavior'] = defaultScrollBehavior;
|
|
443
446
|
|
|
447
|
+
// Make sure that our `scrollLeft` value is in sync with the existing
|
|
448
|
+
// `ref` after our requestAnimationFrame loop above
|
|
444
449
|
setScrollLeft(ref.current.scrollLeft);
|
|
445
|
-
|
|
446
450
|
if (frameId) {
|
|
447
451
|
cancelAnimationFrame(frameId);
|
|
448
452
|
}
|
|
449
453
|
};
|
|
450
454
|
}
|
|
451
|
-
|
|
452
|
-
const Tab = /*#__PURE__*/React__default["default"].forwardRef(function Tab(_ref5, ref) {
|
|
455
|
+
const Tab = /*#__PURE__*/React__default["default"].forwardRef(function Tab(_ref5, forwardRef) {
|
|
453
456
|
let {
|
|
454
457
|
as: BaseComponent = 'button',
|
|
455
458
|
children,
|
|
@@ -465,18 +468,67 @@ const Tab = /*#__PURE__*/React__default["default"].forwardRef(function Tab(_ref5
|
|
|
465
468
|
const {
|
|
466
469
|
selectedIndex,
|
|
467
470
|
setSelectedIndex,
|
|
468
|
-
baseId
|
|
471
|
+
baseId,
|
|
472
|
+
dismissable,
|
|
473
|
+
onTabCloseRequest
|
|
469
474
|
} = React__default["default"].useContext(TabsContext);
|
|
470
475
|
const {
|
|
471
476
|
index,
|
|
472
|
-
hasSecondaryLabel
|
|
477
|
+
hasSecondaryLabel,
|
|
478
|
+
contained
|
|
473
479
|
} = React__default["default"].useContext(TabContext);
|
|
480
|
+
const dismissIconRef = React.useRef(null);
|
|
481
|
+
const tabRef = React.useRef(null);
|
|
482
|
+
const ref = useMergedRefs.useMergedRefs([forwardRef, tabRef]);
|
|
483
|
+
const [ignoreHover, setIgnoreHover] = React.useState(false);
|
|
474
484
|
const id = `${baseId}-tab-${index}`;
|
|
475
485
|
const panelId = `${baseId}-tabpanel-${index}`;
|
|
476
486
|
const className = cx__default["default"](`${prefix}--tabs__nav-item`, `${prefix}--tabs__nav-link`, customClassName, {
|
|
477
487
|
[`${prefix}--tabs__nav-item--selected`]: selectedIndex === index,
|
|
478
|
-
[`${prefix}--tabs__nav-item--disabled`]: disabled
|
|
488
|
+
[`${prefix}--tabs__nav-item--disabled`]: disabled,
|
|
489
|
+
[`${prefix}--tabs__nav-item--hover-off`]: ignoreHover
|
|
479
490
|
});
|
|
491
|
+
const onDismissIconMouseEnter = evt => {
|
|
492
|
+
if (contained) {
|
|
493
|
+
evt.stopPropagation();
|
|
494
|
+
setIgnoreHover(true);
|
|
495
|
+
tabRef.current.classList.add(`${prefix}--tabs__nav-item--hover-off`);
|
|
496
|
+
}
|
|
497
|
+
};
|
|
498
|
+
const onDismissIconMouseLeave = () => {
|
|
499
|
+
if (contained) {
|
|
500
|
+
tabRef.current.classList.remove(`${prefix}--tabs__nav-item--hover-off`);
|
|
501
|
+
setIgnoreHover(false);
|
|
502
|
+
}
|
|
503
|
+
};
|
|
504
|
+
useEvent.useEvent(dismissIconRef, 'mouseover', onDismissIconMouseEnter);
|
|
505
|
+
useEvent.useEvent(dismissIconRef, 'mouseleave', onDismissIconMouseLeave);
|
|
506
|
+
const handleClose = evt => {
|
|
507
|
+
evt.stopPropagation();
|
|
508
|
+
onTabCloseRequest?.(index);
|
|
509
|
+
};
|
|
510
|
+
const handleKeyDown = event => {
|
|
511
|
+
if (dismissable && match.match(event, keys.Delete)) {
|
|
512
|
+
handleClose(event);
|
|
513
|
+
}
|
|
514
|
+
onKeyDown?.(event);
|
|
515
|
+
};
|
|
516
|
+
const DismissIcon =
|
|
517
|
+
/*#__PURE__*/
|
|
518
|
+
// eslint-disable-next-line jsx-a11y/click-events-have-key-events
|
|
519
|
+
React__default["default"].createElement("div", {
|
|
520
|
+
role: "button",
|
|
521
|
+
tabIndex: -1,
|
|
522
|
+
"aria-hidden": true,
|
|
523
|
+
className: cx__default["default"](`${prefix}--tabs__nav-item--close-icon`, {
|
|
524
|
+
[`${prefix}--visually-hidden`]: !dismissable
|
|
525
|
+
}),
|
|
526
|
+
onClick: handleClose,
|
|
527
|
+
"aria-label": "Close tab",
|
|
528
|
+
title: "Close tab",
|
|
529
|
+
ref: dismissIconRef
|
|
530
|
+
}, _Close || (_Close = /*#__PURE__*/React__default["default"].createElement(iconsReact.Close, null)));
|
|
531
|
+
const hasIcon = Icon || dismissable;
|
|
480
532
|
return /*#__PURE__*/React__default["default"].createElement(BaseComponent, _rollupPluginBabelHelpers["extends"]({}, rest, {
|
|
481
533
|
"aria-controls": panelId,
|
|
482
534
|
"aria-disabled": disabled,
|
|
@@ -490,23 +542,23 @@ const Tab = /*#__PURE__*/React__default["default"].forwardRef(function Tab(_ref5
|
|
|
490
542
|
if (disabled) {
|
|
491
543
|
return;
|
|
492
544
|
}
|
|
493
|
-
|
|
494
545
|
setSelectedIndex(index);
|
|
495
|
-
|
|
496
546
|
if (onClick) {
|
|
497
547
|
onClick(evt);
|
|
498
548
|
}
|
|
499
549
|
},
|
|
500
|
-
onKeyDown:
|
|
550
|
+
onKeyDown: handleKeyDown,
|
|
501
551
|
tabIndex: selectedIndex === index ? '0' : '-1',
|
|
502
552
|
type: "button"
|
|
503
553
|
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
504
554
|
className: `${prefix}--tabs__nav-item-label-wrapper`
|
|
505
555
|
}, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
506
556
|
className: `${prefix}--tabs__nav-item-label`
|
|
507
|
-
}, children),
|
|
508
|
-
className: `${prefix}--tabs__nav-item--icon
|
|
509
|
-
|
|
557
|
+
}, children), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
558
|
+
className: cx__default["default"](`${prefix}--tabs__nav-item--icon`, {
|
|
559
|
+
[`${prefix}--visually-hidden`]: !hasIcon
|
|
560
|
+
})
|
|
561
|
+
}, DismissIcon, !dismissable && hasIcon && /*#__PURE__*/React__default["default"].createElement(Icon, {
|
|
510
562
|
size: 16
|
|
511
563
|
}))), hasSecondaryLabel && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
512
564
|
className: `${prefix}--tabs__nav-item-secondary-label`
|
|
@@ -517,45 +569,37 @@ Tab.propTypes = {
|
|
|
517
569
|
* Provide a custom element to render instead of the default button
|
|
518
570
|
*/
|
|
519
571
|
as: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].elementType]),
|
|
520
|
-
|
|
521
572
|
/**
|
|
522
573
|
* Provide child elements to be rendered inside of `Tab`.
|
|
523
574
|
*/
|
|
524
575
|
children: PropTypes__default["default"].node,
|
|
525
|
-
|
|
526
576
|
/**
|
|
527
577
|
* Specify an optional className to be added to your Tab
|
|
528
578
|
*/
|
|
529
579
|
className: PropTypes__default["default"].string,
|
|
530
|
-
|
|
531
580
|
/**
|
|
532
581
|
* Whether your Tab is disabled.
|
|
533
582
|
*/
|
|
534
583
|
disabled: PropTypes__default["default"].bool,
|
|
535
|
-
|
|
536
584
|
/**
|
|
537
585
|
* Provide a handler that is invoked when a user clicks on the control
|
|
538
586
|
*/
|
|
539
587
|
onClick: PropTypes__default["default"].func,
|
|
540
|
-
|
|
541
588
|
/**
|
|
542
589
|
* Provide a handler that is invoked on the key down event for the control
|
|
543
590
|
*/
|
|
544
591
|
onKeyDown: PropTypes__default["default"].func,
|
|
545
|
-
|
|
546
592
|
/*
|
|
547
593
|
* An optional parameter to allow overriding the anchor rendering.
|
|
548
594
|
* Useful for using Tab along with react-router or other client
|
|
549
595
|
* side router libraries.
|
|
550
596
|
**/
|
|
551
597
|
renderButton: PropTypes__default["default"].func,
|
|
552
|
-
|
|
553
598
|
/**
|
|
554
599
|
* Optional prop to render an icon next to the label.
|
|
555
600
|
* Can be a React component class
|
|
556
601
|
*/
|
|
557
602
|
renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
|
|
558
|
-
|
|
559
603
|
/*
|
|
560
604
|
* An optional label to render under the primary tab label.
|
|
561
605
|
/* This prop is only useful for conained tabs
|
|
@@ -591,22 +635,18 @@ IconTab.propTypes = {
|
|
|
591
635
|
* Provide an icon to be rendered inside of `IconTab` as the visual label for Tab.
|
|
592
636
|
*/
|
|
593
637
|
children: PropTypes__default["default"].node,
|
|
594
|
-
|
|
595
638
|
/**
|
|
596
639
|
* Specify an optional className to be added to your Tab
|
|
597
640
|
*/
|
|
598
641
|
className: PropTypes__default["default"].string,
|
|
599
|
-
|
|
600
642
|
/**
|
|
601
643
|
* Specify whether the tooltip for the icon should be open when it first renders
|
|
602
644
|
*/
|
|
603
645
|
defaultOpen: PropTypes__default["default"].bool,
|
|
604
|
-
|
|
605
646
|
/**
|
|
606
647
|
* Specify the duration in milliseconds to delay before displaying the tooltip for the icon.
|
|
607
648
|
*/
|
|
608
649
|
enterDelayMs: PropTypes__default["default"].number,
|
|
609
|
-
|
|
610
650
|
/**
|
|
611
651
|
* Provide the label to be rendered inside of the Tooltip. The label will use
|
|
612
652
|
* `aria-labelledby` and will fully describe the child node that is provided.
|
|
@@ -614,7 +654,6 @@ IconTab.propTypes = {
|
|
|
614
654
|
* announced to the screen reader.
|
|
615
655
|
*/
|
|
616
656
|
label: PropTypes__default["default"].node.isRequired,
|
|
617
|
-
|
|
618
657
|
/**
|
|
619
658
|
* Specify the duration in milliseconds to delay before hiding the tooltip
|
|
620
659
|
*/
|
|
@@ -645,27 +684,23 @@ const TabPanel = /*#__PURE__*/React__default["default"].forwardRef(function TabP
|
|
|
645
684
|
if (!panel.current) {
|
|
646
685
|
return;
|
|
647
686
|
}
|
|
648
|
-
|
|
649
687
|
const content = useNoInteractiveChildren.getInteractiveContent(panel.current);
|
|
650
|
-
|
|
651
688
|
if (content) {
|
|
652
689
|
setInteractiveContent(true);
|
|
653
690
|
setTabIndex('-1');
|
|
654
691
|
}
|
|
655
|
-
});
|
|
692
|
+
});
|
|
656
693
|
|
|
694
|
+
// tabindex should only be 0 if no interactive content in children
|
|
657
695
|
React.useEffect(() => {
|
|
658
696
|
if (!panel.current) {
|
|
659
697
|
return;
|
|
660
698
|
}
|
|
661
|
-
|
|
662
699
|
const {
|
|
663
700
|
current: node
|
|
664
701
|
} = panel;
|
|
665
|
-
|
|
666
702
|
function callback() {
|
|
667
703
|
const content = useNoInteractiveChildren.getInteractiveContent(node);
|
|
668
|
-
|
|
669
704
|
if (content) {
|
|
670
705
|
setInteractiveContent(true);
|
|
671
706
|
setTabIndex('-1');
|
|
@@ -674,7 +709,6 @@ const TabPanel = /*#__PURE__*/React__default["default"].forwardRef(function TabP
|
|
|
674
709
|
setTabIndex('0');
|
|
675
710
|
}
|
|
676
711
|
}
|
|
677
|
-
|
|
678
712
|
const observer = new MutationObserver(callback);
|
|
679
713
|
observer.observe(node, {
|
|
680
714
|
childList: true,
|
|
@@ -699,13 +733,11 @@ TabPanel.propTypes = {
|
|
|
699
733
|
* Provide child elements to be rendered inside of `TabPanel`.
|
|
700
734
|
*/
|
|
701
735
|
children: PropTypes__default["default"].node,
|
|
702
|
-
|
|
703
736
|
/**
|
|
704
737
|
* Specify an optional className to be added to TabPanel.
|
|
705
738
|
*/
|
|
706
739
|
className: PropTypes__default["default"].string
|
|
707
740
|
};
|
|
708
|
-
|
|
709
741
|
function TabPanels(_ref8) {
|
|
710
742
|
let {
|
|
711
743
|
children
|
|
@@ -716,7 +748,6 @@ function TabPanels(_ref8) {
|
|
|
716
748
|
}, child);
|
|
717
749
|
});
|
|
718
750
|
}
|
|
719
|
-
|
|
720
751
|
TabPanels.propTypes = {
|
|
721
752
|
/**
|
|
722
753
|
* Provide child elements to be rendered inside of `TabPanels`.
|