@carbon/react 1.89.0 → 1.90.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/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +877 -877
- package/README.md +2 -2
- package/es/components/AILabel/index.js +8 -6
- package/es/components/Breadcrumb/BreadcrumbItem.js +2 -0
- package/es/components/Button/Button.js +3 -0
- package/es/components/ChatButton/ChatButton.js +1 -0
- package/es/components/CheckboxGroup/CheckboxGroup.js +21 -2
- package/es/components/ComboBox/ComboBox.js +17 -1
- package/es/components/ComboButton/index.js +1 -0
- package/es/components/ComposedModal/ComposedModal.js +18 -4
- package/es/components/DataTable/DataTable.d.ts +3 -8
- package/es/components/DataTable/DataTable.js +14 -0
- package/es/components/DataTable/Table.js +3 -3
- package/es/components/DataTable/TableExpandHeader.js +5 -1
- package/es/components/DataTable/TableExpandRow.d.ts +33 -5
- package/es/components/DataTable/TableExpandRow.js +5 -2
- package/es/components/DataTable/TableHeader.d.ts +1 -2
- package/es/components/DataTable/TableHeader.js +3 -2
- package/es/components/DataTable/TableRow.d.ts +3 -6
- package/es/components/DataTable/TableRow.js +40 -22
- package/es/components/DataTable/TableSlugRow.js +1 -0
- package/es/components/DataTable/TableToolbarMenu.js +3 -0
- package/es/components/DataTable/state/sorting.d.ts +57 -14
- package/es/components/DataTable/state/sorting.js +42 -50
- package/es/components/DataTable/tools/sorting.js +5 -0
- package/es/components/DatePicker/DatePicker.js +14 -3
- package/es/components/DatePickerInput/DatePickerInput.js +6 -0
- package/es/components/Dialog/Dialog.js +10 -2
- package/es/components/Dropdown/Dropdown.js +16 -4
- package/es/components/ErrorBoundary/ErrorBoundaryContext.js +1 -0
- package/es/components/FileUploader/FileUploader.js +9 -2
- package/es/components/FileUploader/FileUploaderButton.js +1 -1
- package/es/components/FileUploader/FileUploaderDropContainer.js +1 -1
- package/es/components/FileUploader/FileUploaderItem.js +3 -0
- package/es/components/FluidMultiSelect/FluidMultiSelect.js +2 -0
- package/es/components/FluidNumberInput/FluidNumberInput.js +3 -2
- package/es/components/FluidSearch/FluidSearch.js +3 -2
- package/es/components/FluidSelect/FluidSelect.js +3 -2
- package/es/components/FluidTextInput/FluidTextInput.js +3 -2
- package/es/components/FluidTimePicker/FluidTimePicker.js +11 -4
- package/es/components/FluidTimePickerSelect/FluidTimePickerSelect.js +3 -2
- package/es/components/Grid/CSSGrid.js +5 -0
- package/es/components/Grid/Column.js +3 -0
- package/es/components/Grid/ColumnHang.js +1 -0
- package/es/components/Grid/FlexGrid.js +1 -0
- package/es/components/Grid/Row.js +1 -0
- package/es/components/Heading/index.js +3 -1
- package/es/components/IconButton/index.js +4 -2
- package/es/components/IconIndicator/index.js +4 -2
- package/es/components/InlineCheckbox/InlineCheckbox.js +3 -2
- package/es/components/Layout/index.js +6 -4
- package/es/components/LayoutDirection/LayoutDirection.js +2 -0
- package/es/components/Link/Link.js +3 -0
- package/es/components/ListBox/ListBoxMenuItem.js +4 -1
- package/es/components/ListBox/next/ListBoxTrigger.js +3 -2
- package/es/components/Menu/Menu.js +6 -9
- package/es/components/Menu/MenuContext.js +1 -0
- package/es/components/Menu/MenuItem.js +5 -13
- package/es/components/MenuButton/index.js +7 -2
- package/es/components/Modal/Modal.js +15 -6
- package/es/components/ModalWrapper/ModalWrapper.js +2 -0
- package/es/components/MultiSelect/FilterableMultiSelect.js +24 -5
- package/es/components/MultiSelect/MultiSelect.js +21 -5
- package/es/components/Notification/Notification.js +1 -1
- package/es/components/NumberInput/NumberInput.js +18 -7
- package/es/components/OverflowMenu/OverflowMenu.js +2 -0
- package/es/components/OverflowMenu/next/index.js +3 -2
- package/es/components/OverflowMenuItem/OverflowMenuItem.js +2 -0
- package/es/components/PageHeader/PageHeader.d.ts +3 -3
- package/es/components/PageHeader/PageHeader.js +22 -8
- package/es/components/Pagination/Pagination.js +6 -2
- package/es/components/PaginationNav/PaginationNav.js +2 -5
- package/es/components/Popover/index.js +20 -6
- package/es/components/ProgressBar/ProgressBar.js +4 -2
- package/es/components/RadioTile/RadioTile.js +2 -2
- package/es/components/Search/Search.js +2 -2
- package/es/components/Select/Select.js +2 -3
- package/es/components/ShapeIndicator/index.js +4 -2
- package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.d.ts +4 -4
- package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.js +1 -2
- package/es/components/SkeletonText/SkeletonText.js +0 -2
- package/es/components/Slider/Slider.js +11 -16
- package/es/components/Stack/HStack.js +1 -0
- package/es/components/Stack/Stack.js +6 -9
- package/es/components/Stack/VStack.js +1 -0
- package/es/components/StructuredList/StructuredList.js +3 -0
- package/es/components/Switch/Switch.js +1 -1
- package/es/components/Tabs/Tabs.js +28 -17
- package/es/components/Tag/DismissibleTag.d.ts +5 -0
- package/es/components/Tag/DismissibleTag.js +8 -1
- package/es/components/Tag/OperationalTag.js +2 -0
- package/es/components/Tag/SelectableTag.js +2 -0
- package/es/components/Tag/Tag.js +4 -0
- package/es/components/Tag/isEllipsisActive.js +1 -0
- package/es/components/Text/Text.js +1 -0
- package/es/components/TextInput/ControlledPasswordInput.js +2 -4
- package/es/components/TextInput/PasswordInput.js +7 -2
- package/es/components/TextInput/TextInput.js +4 -2
- package/es/components/Theme/index.js +8 -3
- package/es/components/Tile/Tile.js +14 -17
- package/es/components/TimePicker/TimePicker.js +1 -0
- package/es/components/Toggle/Toggle.js +1 -1
- package/es/components/Toggletip/index.js +23 -8
- package/es/components/Tooltip/DefinitionTooltip.js +1 -0
- package/es/components/Tooltip/Tooltip.js +30 -23
- package/es/components/TreeView/TreeNode.d.ts +28 -0
- package/es/components/TreeView/TreeNode.js +19 -10
- package/es/components/TreeView/TreeView.js +7 -0
- package/es/components/UIShell/HeaderContainer.js +3 -1
- package/es/components/UIShell/HeaderGlobalAction.js +2 -2
- package/es/components/UIShell/HeaderMenu.js +3 -3
- package/es/components/UIShell/HeaderPanel.js +2 -2
- package/es/components/UIShell/Link.js +2 -0
- package/es/components/UIShell/SideNavItems.js +1 -0
- package/es/components/UIShell/SideNavMenu.js +2 -2
- package/es/components/UIShell/SideNavMenuItem.js +1 -1
- package/es/components/UIShell/SideNavSwitcher.js +1 -1
- package/es/components/UIShell/Switcher.js +2 -1
- package/es/components/UIShell/SwitcherItem.js +4 -2
- package/es/internal/FloatingMenu.js +7 -1
- package/es/internal/Selection.js +12 -3
- package/es/internal/useMergedRefs.js +1 -0
- package/es/internal/useNoInteractiveChildren.js +4 -0
- package/es/internal/useOutsideClick.js +1 -0
- package/es/internal/useOverflowItems.js +6 -0
- package/es/internal/useResizeObserver.js +4 -0
- package/es/internal/useSavedCallback.js +1 -0
- package/es/internal/warning.js +1 -0
- package/es/prop-types/isRequiredOneOf.js +4 -1
- package/es/tools/events.js +3 -1
- package/es/tools/wrapComponent.js +1 -0
- package/lib/components/AILabel/index.js +8 -6
- package/lib/components/Breadcrumb/BreadcrumbItem.js +2 -0
- package/lib/components/Button/Button.js +3 -0
- package/lib/components/ChatButton/ChatButton.js +1 -0
- package/lib/components/CheckboxGroup/CheckboxGroup.js +20 -1
- package/lib/components/ComboBox/ComboBox.js +17 -1
- package/lib/components/ComboButton/index.js +1 -0
- package/lib/components/ComposedModal/ComposedModal.js +18 -4
- package/lib/components/DataTable/DataTable.d.ts +3 -8
- package/lib/components/DataTable/DataTable.js +14 -0
- package/lib/components/DataTable/Table.js +3 -3
- package/lib/components/DataTable/TableExpandHeader.js +5 -1
- package/lib/components/DataTable/TableExpandRow.d.ts +33 -5
- package/lib/components/DataTable/TableExpandRow.js +5 -2
- package/lib/components/DataTable/TableHeader.d.ts +1 -2
- package/lib/components/DataTable/TableHeader.js +3 -2
- package/lib/components/DataTable/TableRow.d.ts +3 -6
- package/lib/components/DataTable/TableRow.js +39 -21
- package/lib/components/DataTable/TableSlugRow.js +1 -0
- package/lib/components/DataTable/TableToolbarMenu.js +3 -0
- package/lib/components/DataTable/state/sorting.d.ts +57 -14
- package/lib/components/DataTable/state/sorting.js +41 -50
- package/lib/components/DataTable/tools/sorting.js +5 -0
- package/lib/components/DatePicker/DatePicker.js +14 -3
- package/lib/components/DatePickerInput/DatePickerInput.js +6 -0
- package/lib/components/Dialog/Dialog.js +10 -2
- package/lib/components/Dropdown/Dropdown.js +16 -4
- package/lib/components/ErrorBoundary/ErrorBoundaryContext.js +1 -0
- package/lib/components/FileUploader/FileUploader.js +9 -2
- package/lib/components/FileUploader/FileUploaderButton.js +1 -1
- package/lib/components/FileUploader/FileUploaderDropContainer.js +1 -1
- package/lib/components/FileUploader/FileUploaderItem.js +3 -0
- package/lib/components/FluidMultiSelect/FluidMultiSelect.js +2 -0
- package/lib/components/FluidNumberInput/FluidNumberInput.js +3 -2
- package/lib/components/FluidSearch/FluidSearch.js +3 -2
- package/lib/components/FluidSelect/FluidSelect.js +3 -2
- package/lib/components/FluidTextInput/FluidTextInput.js +3 -2
- package/lib/components/FluidTimePicker/FluidTimePicker.js +11 -4
- package/lib/components/FluidTimePickerSelect/FluidTimePickerSelect.js +3 -2
- package/lib/components/Grid/CSSGrid.js +5 -0
- package/lib/components/Grid/Column.js +3 -0
- package/lib/components/Grid/ColumnHang.js +1 -0
- package/lib/components/Grid/FlexGrid.js +1 -0
- package/lib/components/Grid/Row.js +1 -0
- package/lib/components/Heading/index.js +3 -1
- package/lib/components/IconButton/index.js +4 -2
- package/lib/components/IconIndicator/index.js +4 -2
- package/lib/components/InlineCheckbox/InlineCheckbox.js +3 -2
- package/lib/components/Layout/index.js +6 -4
- package/lib/components/LayoutDirection/LayoutDirection.js +2 -0
- package/lib/components/Link/Link.js +3 -0
- package/lib/components/ListBox/ListBoxMenuItem.js +4 -1
- package/lib/components/ListBox/next/ListBoxTrigger.js +3 -2
- package/lib/components/Menu/Menu.js +6 -9
- package/lib/components/Menu/MenuContext.js +1 -0
- package/lib/components/Menu/MenuItem.js +5 -13
- package/lib/components/MenuButton/index.js +7 -2
- package/lib/components/Modal/Modal.js +15 -6
- package/lib/components/ModalWrapper/ModalWrapper.js +2 -0
- package/lib/components/MultiSelect/FilterableMultiSelect.js +24 -5
- package/lib/components/MultiSelect/MultiSelect.js +21 -5
- package/lib/components/Notification/Notification.js +1 -1
- package/lib/components/NumberInput/NumberInput.js +17 -6
- package/lib/components/OverflowMenu/OverflowMenu.js +2 -0
- package/lib/components/OverflowMenu/next/index.js +3 -2
- package/lib/components/OverflowMenuItem/OverflowMenuItem.js +2 -0
- package/lib/components/PageHeader/PageHeader.d.ts +3 -3
- package/lib/components/PageHeader/PageHeader.js +22 -8
- package/lib/components/Pagination/Pagination.js +6 -2
- package/lib/components/PaginationNav/PaginationNav.js +2 -5
- package/lib/components/Popover/index.js +20 -6
- package/lib/components/ProgressBar/ProgressBar.js +4 -2
- package/lib/components/RadioTile/RadioTile.js +2 -2
- package/lib/components/Search/Search.js +2 -2
- package/lib/components/Select/Select.js +2 -3
- package/lib/components/ShapeIndicator/index.js +4 -2
- package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.d.ts +4 -4
- package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.js +1 -2
- package/lib/components/SkeletonText/SkeletonText.js +0 -2
- package/lib/components/Slider/Slider.js +11 -16
- package/lib/components/Stack/HStack.js +1 -0
- package/lib/components/Stack/Stack.js +6 -9
- package/lib/components/Stack/VStack.js +1 -0
- package/lib/components/StructuredList/StructuredList.js +3 -0
- package/lib/components/Switch/Switch.js +1 -1
- package/lib/components/Tabs/Tabs.js +28 -17
- package/lib/components/Tag/DismissibleTag.d.ts +5 -0
- package/lib/components/Tag/DismissibleTag.js +8 -1
- package/lib/components/Tag/OperationalTag.js +2 -0
- package/lib/components/Tag/SelectableTag.js +2 -0
- package/lib/components/Tag/Tag.js +4 -0
- package/lib/components/Tag/isEllipsisActive.js +1 -0
- package/lib/components/Text/Text.js +1 -0
- package/lib/components/TextInput/ControlledPasswordInput.js +2 -4
- package/lib/components/TextInput/PasswordInput.js +7 -2
- package/lib/components/TextInput/TextInput.js +4 -2
- package/lib/components/Theme/index.js +8 -3
- package/lib/components/Tile/Tile.js +14 -17
- package/lib/components/TimePicker/TimePicker.js +1 -0
- package/lib/components/Toggle/Toggle.js +1 -1
- package/lib/components/Toggletip/index.js +22 -7
- package/lib/components/Tooltip/DefinitionTooltip.js +1 -0
- package/lib/components/Tooltip/Tooltip.js +30 -23
- package/lib/components/TreeView/TreeNode.d.ts +28 -0
- package/lib/components/TreeView/TreeNode.js +19 -10
- package/lib/components/TreeView/TreeView.js +7 -0
- package/lib/components/UIShell/HeaderContainer.js +3 -1
- package/lib/components/UIShell/HeaderGlobalAction.js +2 -2
- package/lib/components/UIShell/HeaderMenu.js +3 -3
- package/lib/components/UIShell/HeaderPanel.js +2 -2
- package/lib/components/UIShell/Link.js +2 -0
- package/lib/components/UIShell/SideNavItems.js +1 -0
- package/lib/components/UIShell/SideNavMenu.js +2 -2
- package/lib/components/UIShell/SideNavMenuItem.js +1 -1
- package/lib/components/UIShell/SideNavSwitcher.js +1 -1
- package/lib/components/UIShell/Switcher.js +2 -1
- package/lib/components/UIShell/SwitcherItem.js +4 -2
- package/lib/internal/FloatingMenu.js +7 -1
- package/lib/internal/Selection.js +12 -3
- package/lib/internal/useMergedRefs.js +1 -0
- package/lib/internal/useNoInteractiveChildren.js +4 -0
- package/lib/internal/useOutsideClick.js +1 -0
- package/lib/internal/useOverflowItems.js +6 -0
- package/lib/internal/useResizeObserver.js +4 -0
- package/lib/internal/useSavedCallback.js +1 -0
- package/lib/internal/warning.js +1 -0
- package/lib/prop-types/isRequiredOneOf.js +4 -1
- package/lib/tools/events.js +3 -1
- package/lib/tools/wrapComponent.js +1 -0
- package/package.json +11 -11
- package/telemetry.yml +14 -0
|
@@ -16,16 +16,20 @@ import { useMatchMedia } from '../../internal/useMatchMedia.js';
|
|
|
16
16
|
const ThemeContext = /*#__PURE__*/React.createContext({
|
|
17
17
|
theme: 'white'
|
|
18
18
|
});
|
|
19
|
-
|
|
19
|
+
|
|
20
|
+
// eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
21
|
+
const GlobalTheme = /*#__PURE__*/React.forwardRef(({
|
|
20
22
|
children,
|
|
21
23
|
theme
|
|
22
|
-
}, ref) {
|
|
24
|
+
}, ref) => {
|
|
23
25
|
const value = useMemo(() => {
|
|
24
26
|
return {
|
|
25
27
|
theme
|
|
26
28
|
};
|
|
27
29
|
}, [theme]);
|
|
28
|
-
const childrenWithProps = /*#__PURE__*/React.cloneElement(
|
|
30
|
+
const childrenWithProps = /*#__PURE__*/React.cloneElement(
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
32
|
+
children, {
|
|
29
33
|
ref: ref
|
|
30
34
|
});
|
|
31
35
|
return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
|
|
@@ -67,6 +71,7 @@ function Theme({
|
|
|
67
71
|
isDark
|
|
68
72
|
};
|
|
69
73
|
}, [theme]);
|
|
74
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
70
75
|
const BaseComponentAsAny = BaseComponent;
|
|
71
76
|
return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
|
|
72
77
|
value: value
|
|
@@ -27,7 +27,7 @@ import { isComponentElement } from '../../internal/utils.js';
|
|
|
27
27
|
import { Text } from '../Text/Text.js';
|
|
28
28
|
|
|
29
29
|
var _CheckboxCheckedFille, _Checkbox, _ChevronDown, _ChevronDown2;
|
|
30
|
-
const Tile = /*#__PURE__*/React.forwardRef(
|
|
30
|
+
const Tile = /*#__PURE__*/React.forwardRef(({
|
|
31
31
|
children,
|
|
32
32
|
className,
|
|
33
33
|
decorator,
|
|
@@ -35,7 +35,7 @@ const Tile = /*#__PURE__*/React.forwardRef(function Tile({
|
|
|
35
35
|
slug,
|
|
36
36
|
hasRoundedCorners = false,
|
|
37
37
|
...rest
|
|
38
|
-
}, ref) {
|
|
38
|
+
}, ref) => {
|
|
39
39
|
const prefix = usePrefix();
|
|
40
40
|
const tileClasses = cx(`${prefix}--tile`, {
|
|
41
41
|
[`${prefix}--tile--light`]: light,
|
|
@@ -82,7 +82,7 @@ Tile.propTypes = {
|
|
|
82
82
|
*/
|
|
83
83
|
slug: deprecate(PropTypes.node, 'The `slug` prop for `Tile` has ' + 'been deprecated in favor of the new `decorator` prop. It will be removed in the next major release.')
|
|
84
84
|
};
|
|
85
|
-
const ClickableTile = /*#__PURE__*/React.forwardRef(
|
|
85
|
+
const ClickableTile = /*#__PURE__*/React.forwardRef(({
|
|
86
86
|
children,
|
|
87
87
|
className,
|
|
88
88
|
clicked = false,
|
|
@@ -96,7 +96,7 @@ const ClickableTile = /*#__PURE__*/React.forwardRef(function ClickableTile({
|
|
|
96
96
|
hasRoundedCorners,
|
|
97
97
|
slug,
|
|
98
98
|
...rest
|
|
99
|
-
}, ref) {
|
|
99
|
+
}, ref) => {
|
|
100
100
|
const prefix = usePrefix();
|
|
101
101
|
const classes = cx(`${prefix}--tile`, `${prefix}--tile--clickable`, {
|
|
102
102
|
[`${prefix}--tile--is-clicked`]: clicked,
|
|
@@ -205,7 +205,8 @@ ClickableTile.propTypes = {
|
|
|
205
205
|
*/
|
|
206
206
|
renderIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
|
|
207
207
|
};
|
|
208
|
-
|
|
208
|
+
// eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
209
|
+
const SelectableTile = /*#__PURE__*/React.forwardRef(({
|
|
209
210
|
children,
|
|
210
211
|
className,
|
|
211
212
|
decorator,
|
|
@@ -221,7 +222,7 @@ const SelectableTile = /*#__PURE__*/React.forwardRef(function SelectableTile({
|
|
|
221
222
|
slug,
|
|
222
223
|
hasRoundedCorners,
|
|
223
224
|
...rest
|
|
224
|
-
}, ref) {
|
|
225
|
+
}, ref) => {
|
|
225
226
|
const prefix = usePrefix();
|
|
226
227
|
const clickHandler = onClick;
|
|
227
228
|
const keyDownHandler = onKeyDown;
|
|
@@ -282,9 +283,7 @@ const SelectableTile = /*#__PURE__*/React.forwardRef(function SelectableTile({
|
|
|
282
283
|
onClick: !disabled ? handleClick : undefined,
|
|
283
284
|
role: "checkbox",
|
|
284
285
|
"aria-checked": isSelected,
|
|
285
|
-
onKeyDown: !disabled ? handleKeyDown : undefined
|
|
286
|
-
// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
|
|
287
|
-
,
|
|
286
|
+
onKeyDown: !disabled ? handleKeyDown : undefined,
|
|
288
287
|
tabIndex: !disabled ? tabIndex : undefined,
|
|
289
288
|
ref: ref,
|
|
290
289
|
id: id,
|
|
@@ -364,16 +363,14 @@ SelectableTile.propTypes = {
|
|
|
364
363
|
*/
|
|
365
364
|
value: deprecate(PropTypes.oneOfType([PropTypes.string, PropTypes.number]), 'The `value` property is no longer used. It will be removed in the next major release.`')
|
|
366
365
|
};
|
|
367
|
-
const ExpandableTile = /*#__PURE__*/React.forwardRef(
|
|
366
|
+
const ExpandableTile = /*#__PURE__*/React.forwardRef(({
|
|
368
367
|
tabIndex = 0,
|
|
369
368
|
className,
|
|
370
369
|
children,
|
|
371
370
|
decorator,
|
|
372
371
|
expanded = false,
|
|
373
372
|
tileMaxHeight = 0,
|
|
374
|
-
// eslint-disable-line
|
|
375
373
|
tilePadding = 0,
|
|
376
|
-
// eslint-disable-line
|
|
377
374
|
onClick,
|
|
378
375
|
onKeyUp,
|
|
379
376
|
tileCollapsedIconText = 'Interact to expand Tile',
|
|
@@ -384,7 +381,7 @@ const ExpandableTile = /*#__PURE__*/React.forwardRef(function ExpandableTile({
|
|
|
384
381
|
slug,
|
|
385
382
|
hasRoundedCorners,
|
|
386
383
|
...rest
|
|
387
|
-
}, forwardRef) {
|
|
384
|
+
}, forwardRef) => {
|
|
388
385
|
const [isTileMaxHeight, setIsTileMaxHeight] = useState(tileMaxHeight);
|
|
389
386
|
const [isTilePadding, setIsTilePadding] = useState(tilePadding);
|
|
390
387
|
const [prevExpanded, setPrevExpanded] = useState(expanded);
|
|
@@ -609,9 +606,9 @@ ExpandableTile.propTypes = {
|
|
|
609
606
|
tileExpandedLabel: PropTypes.string
|
|
610
607
|
};
|
|
611
608
|
ExpandableTile.displayName = 'ExpandableTile';
|
|
612
|
-
const TileAboveTheFoldContent = /*#__PURE__*/React.forwardRef(
|
|
609
|
+
const TileAboveTheFoldContent = /*#__PURE__*/React.forwardRef(({
|
|
613
610
|
children
|
|
614
|
-
}, ref) {
|
|
611
|
+
}, ref) => {
|
|
615
612
|
const prefix = usePrefix();
|
|
616
613
|
return /*#__PURE__*/React.createElement("div", {
|
|
617
614
|
ref: ref,
|
|
@@ -625,9 +622,9 @@ TileAboveTheFoldContent.propTypes = {
|
|
|
625
622
|
children: PropTypes.node
|
|
626
623
|
};
|
|
627
624
|
TileAboveTheFoldContent.displayName = 'TileAboveTheFoldContent';
|
|
628
|
-
const TileBelowTheFoldContent = /*#__PURE__*/React.forwardRef(
|
|
625
|
+
const TileBelowTheFoldContent = /*#__PURE__*/React.forwardRef(({
|
|
629
626
|
children
|
|
630
|
-
}, ref) {
|
|
627
|
+
}, ref) => {
|
|
631
628
|
const prefix = usePrefix();
|
|
632
629
|
return /*#__PURE__*/React.createElement("div", {
|
|
633
630
|
ref: ref,
|
|
@@ -112,6 +112,7 @@ const TimePicker = frFn((props, ref) => {
|
|
|
112
112
|
}
|
|
113
113
|
};
|
|
114
114
|
const mappedChildren = React.Children.map(children, pickerSelect => {
|
|
115
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
115
116
|
const item = pickerSelect;
|
|
116
117
|
if (item) {
|
|
117
118
|
return /*#__PURE__*/React.cloneElement(item, {
|
|
@@ -67,7 +67,7 @@ function Toggle({
|
|
|
67
67
|
const labelId = `${id}_label`;
|
|
68
68
|
return (
|
|
69
69
|
/*#__PURE__*/
|
|
70
|
-
// eslint-disable-next-line jsx-a11y/click-events-have-key-events
|
|
70
|
+
// eslint-disable-next-line jsx-a11y/click-events-have-key-events
|
|
71
71
|
React.createElement("div", {
|
|
72
72
|
className: wrapperClasses,
|
|
73
73
|
onClick: !labelText ? e => {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
9
9
|
import cx from 'classnames';
|
|
10
10
|
import PropTypes from 'prop-types';
|
|
11
|
-
import React, { useContext, useRef, useState } from 'react';
|
|
11
|
+
import React, { useContext, useRef, useState, useEffect } from 'react';
|
|
12
12
|
import { Popover, PopoverContent } from '../Popover/index.js';
|
|
13
13
|
import { Escape } from '../../internal/keyboard/keys.js';
|
|
14
14
|
import { match } from '../../internal/keyboard/match.js';
|
|
@@ -27,6 +27,7 @@ function ToggletipLabel({
|
|
|
27
27
|
}) {
|
|
28
28
|
const prefix = usePrefix();
|
|
29
29
|
const className = cx(`${prefix}--toggletip-label`, customClassName);
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
30
31
|
const BaseComponentAsAny = BaseComponent;
|
|
31
32
|
return /*#__PURE__*/React.createElement(BaseComponentAsAny, _extends({
|
|
32
33
|
className: className
|
|
@@ -127,13 +128,25 @@ function Toggletip({
|
|
|
127
128
|
actions.close();
|
|
128
129
|
}
|
|
129
130
|
});
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
131
|
+
useEffect(() => {
|
|
132
|
+
if (!ref.current) return;
|
|
133
|
+
const targetDocument = ref.current.ownerDocument || document;
|
|
134
|
+
const eventType = 'PointerEvent' in window ? 'pointerdown' : 'mousedown';
|
|
135
|
+
const handleOutsideClick = event => {
|
|
136
|
+
const node = event.target;
|
|
137
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
138
|
+
if (open && node && !ref.current.contains(node)) {
|
|
139
|
+
setOpen(false);
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
const options = {
|
|
143
|
+
capture: true
|
|
144
|
+
};
|
|
145
|
+
targetDocument.addEventListener(eventType, handleOutsideClick, options);
|
|
146
|
+
return () => {
|
|
147
|
+
targetDocument.removeEventListener(eventType, handleOutsideClick, options);
|
|
148
|
+
};
|
|
149
|
+
}, [open]);
|
|
137
150
|
return /*#__PURE__*/React.createElement(ToggletipContext.Provider, {
|
|
138
151
|
value: value
|
|
139
152
|
}, /*#__PURE__*/React.createElement(Popover, _extends({
|
|
@@ -154,6 +167,7 @@ function Toggletip({
|
|
|
154
167
|
// Get all the properties from Popover except for "open".
|
|
155
168
|
// The Typescript types for PropTypes are really messed up so we need lots of
|
|
156
169
|
// casting. It will be great when we can finally get rid of PropTypes altogether.
|
|
170
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
157
171
|
const {
|
|
158
172
|
open,
|
|
159
173
|
...popoverNonOpenPropTypes
|
|
@@ -181,6 +195,7 @@ const ToggletipButton = /*#__PURE__*/React.forwardRef(function ToggletipButton({
|
|
|
181
195
|
const toggletip = useToggletip();
|
|
182
196
|
const prefix = usePrefix();
|
|
183
197
|
const className = cx(`${prefix}--toggletip-button`, customClassName);
|
|
198
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
184
199
|
const ComponentToggle = BaseComponent ?? 'button';
|
|
185
200
|
if (ComponentToggle !== 'button') {
|
|
186
201
|
return /*#__PURE__*/React.createElement(ComponentToggle, _extends({}, toggletip?.onClick, {
|
|
@@ -48,6 +48,7 @@ const DefinitionTooltip = ({
|
|
|
48
48
|
setOpen(false);
|
|
49
49
|
},
|
|
50
50
|
onMouseEnter: () => {
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
51
52
|
openOnHover ? setOpen(true) : null;
|
|
52
53
|
},
|
|
53
54
|
onFocus: () => {
|
|
@@ -22,6 +22,7 @@ import useIsomorphicEffect from '../../internal/useIsomorphicEffect.js';
|
|
|
22
22
|
* Event types that trigger a "drag" to stop.
|
|
23
23
|
*/
|
|
24
24
|
const DRAG_STOP_EVENT_TYPES = new Set(['mouseup', 'touchend', 'touchcancel']);
|
|
25
|
+
// eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
25
26
|
const Tooltip = /*#__PURE__*/React.forwardRef(({
|
|
26
27
|
as,
|
|
27
28
|
align = 'top',
|
|
@@ -68,6 +69,8 @@ const Tooltip = /*#__PURE__*/React.forwardRef(({
|
|
|
68
69
|
'aria-labelledby': labelledBy,
|
|
69
70
|
'aria-describedby': describedBy
|
|
70
71
|
};
|
|
72
|
+
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
71
74
|
function getChildEventHandlers(childProps) {
|
|
72
75
|
const eventHandlerFunctions = Object.keys(triggerProps).filter(prop => prop.startsWith('on'));
|
|
73
76
|
const eventHandlers = {};
|
|
@@ -154,29 +157,33 @@ const Tooltip = /*#__PURE__*/React.forwardRef(({
|
|
|
154
157
|
});
|
|
155
158
|
};
|
|
156
159
|
}, [isDragging, onDragStop]);
|
|
157
|
-
return
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
160
|
+
return (
|
|
161
|
+
/*#__PURE__*/
|
|
162
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
163
|
+
React.createElement(Popover, _extends({
|
|
164
|
+
as: as,
|
|
165
|
+
ref: ref
|
|
166
|
+
}, rest, {
|
|
167
|
+
align: align,
|
|
168
|
+
className: cx(`${prefix}--tooltip`, customClassName),
|
|
169
|
+
dropShadow: dropShadow,
|
|
170
|
+
highContrast: highContrast,
|
|
171
|
+
onKeyDown: onKeyDown,
|
|
172
|
+
onMouseLeave: onMouseLeave,
|
|
173
|
+
open: open
|
|
174
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
175
|
+
className: `${prefix}--tooltip-trigger__wrapper`
|
|
176
|
+
}, typeof child !== 'undefined' ? /*#__PURE__*/React.cloneElement(child, {
|
|
177
|
+
...triggerProps,
|
|
178
|
+
...getChildEventHandlers(child.props)
|
|
179
|
+
}) : null), /*#__PURE__*/React.createElement(PopoverContent, {
|
|
180
|
+
"aria-hidden": open ? 'false' : 'true',
|
|
181
|
+
className: `${prefix}--tooltip-content`,
|
|
182
|
+
id: id,
|
|
183
|
+
onMouseEnter: onMouseEnter,
|
|
184
|
+
role: "tooltip"
|
|
185
|
+
}, label || description))
|
|
186
|
+
);
|
|
180
187
|
});
|
|
181
188
|
Tooltip.propTypes = {
|
|
182
189
|
/**
|
|
@@ -11,6 +11,9 @@ export type TreeNodeProps = {
|
|
|
11
11
|
/**
|
|
12
12
|
* **Note:** this is controlled by the parent TreeView component, do not set manually.
|
|
13
13
|
* The ID of the active node in the tree
|
|
14
|
+
*
|
|
15
|
+
* @deprecated The `active` prop for `TreeNode` has
|
|
16
|
+
* been deprecated after the introduction of context. It will be removed in the next major release.
|
|
14
17
|
*/
|
|
15
18
|
active?: string | number;
|
|
16
19
|
/**
|
|
@@ -29,6 +32,9 @@ export type TreeNodeProps = {
|
|
|
29
32
|
/**
|
|
30
33
|
* **Note:** this is controlled by the parent TreeView component, do not set manually.
|
|
31
34
|
* TreeNode depth to determine spacing
|
|
35
|
+
*
|
|
36
|
+
* @deprecated The `depth` prop for `TreeNode` has
|
|
37
|
+
* been deprecated after the introduction of context. It will be removed in the next major release.
|
|
32
38
|
*/
|
|
33
39
|
depth?: number;
|
|
34
40
|
/**
|
|
@@ -49,6 +55,9 @@ export type TreeNodeProps = {
|
|
|
49
55
|
label: React.ReactNode;
|
|
50
56
|
/**
|
|
51
57
|
* Callback function for when the node receives or loses focus
|
|
58
|
+
*
|
|
59
|
+
* @deprecated The `onNodeFocusEvent` prop for `TreeNode` has
|
|
60
|
+
* been deprecated after the introduction of context. It will be removed in the next major release.
|
|
52
61
|
*/
|
|
53
62
|
onNodeFocusEvent?: (event: React.FocusEvent<HTMLElement>) => void;
|
|
54
63
|
/**
|
|
@@ -61,6 +70,9 @@ export type TreeNodeProps = {
|
|
|
61
70
|
onToggle?: UncontrolledOnToggle | ControlledOnToggle;
|
|
62
71
|
/**
|
|
63
72
|
* Callback function for when any node in the tree is selected
|
|
73
|
+
*
|
|
74
|
+
* @deprecated The `onTreeSelect` prop for `TreeNode` has
|
|
75
|
+
* been deprecated after the introduction of context. It will be removed in the next major release.
|
|
64
76
|
*/
|
|
65
77
|
onTreeSelect?: (event: React.MouseEvent | React.KeyboardEvent, node: Pick<TreeNodeProps, 'id' | 'label' | 'value'>) => void;
|
|
66
78
|
/**
|
|
@@ -70,6 +82,8 @@ export type TreeNodeProps = {
|
|
|
70
82
|
/**
|
|
71
83
|
* **Note:** this is controlled by the parent TreeView component, do not set manually.
|
|
72
84
|
* Array containing all selected node IDs in the tree
|
|
85
|
+
* @deprecated The `selected` prop for `TreeNode` has
|
|
86
|
+
* been deprecated after the introduction of context. It will be removed in the next major release.
|
|
73
87
|
*/
|
|
74
88
|
selected?: Array<string | number>;
|
|
75
89
|
/**
|
|
@@ -97,6 +111,9 @@ declare const TreeNode: React.ForwardRefExoticComponent<{
|
|
|
97
111
|
/**
|
|
98
112
|
* **Note:** this is controlled by the parent TreeView component, do not set manually.
|
|
99
113
|
* The ID of the active node in the tree
|
|
114
|
+
*
|
|
115
|
+
* @deprecated The `active` prop for `TreeNode` has
|
|
116
|
+
* been deprecated after the introduction of context. It will be removed in the next major release.
|
|
100
117
|
*/
|
|
101
118
|
active?: string | number;
|
|
102
119
|
/**
|
|
@@ -115,6 +132,9 @@ declare const TreeNode: React.ForwardRefExoticComponent<{
|
|
|
115
132
|
/**
|
|
116
133
|
* **Note:** this is controlled by the parent TreeView component, do not set manually.
|
|
117
134
|
* TreeNode depth to determine spacing
|
|
135
|
+
*
|
|
136
|
+
* @deprecated The `depth` prop for `TreeNode` has
|
|
137
|
+
* been deprecated after the introduction of context. It will be removed in the next major release.
|
|
118
138
|
*/
|
|
119
139
|
depth?: number;
|
|
120
140
|
/**
|
|
@@ -135,6 +155,9 @@ declare const TreeNode: React.ForwardRefExoticComponent<{
|
|
|
135
155
|
label: React.ReactNode;
|
|
136
156
|
/**
|
|
137
157
|
* Callback function for when the node receives or loses focus
|
|
158
|
+
*
|
|
159
|
+
* @deprecated The `onNodeFocusEvent` prop for `TreeNode` has
|
|
160
|
+
* been deprecated after the introduction of context. It will be removed in the next major release.
|
|
138
161
|
*/
|
|
139
162
|
onNodeFocusEvent?: (event: React.FocusEvent<HTMLElement>) => void;
|
|
140
163
|
/**
|
|
@@ -147,6 +170,9 @@ declare const TreeNode: React.ForwardRefExoticComponent<{
|
|
|
147
170
|
onToggle?: UncontrolledOnToggle | ControlledOnToggle;
|
|
148
171
|
/**
|
|
149
172
|
* Callback function for when any node in the tree is selected
|
|
173
|
+
*
|
|
174
|
+
* @deprecated The `onTreeSelect` prop for `TreeNode` has
|
|
175
|
+
* been deprecated after the introduction of context. It will be removed in the next major release.
|
|
150
176
|
*/
|
|
151
177
|
onTreeSelect?: (event: React.MouseEvent | React.KeyboardEvent, node: Pick<TreeNodeProps, "id" | "label" | "value">) => void;
|
|
152
178
|
/**
|
|
@@ -156,6 +182,8 @@ declare const TreeNode: React.ForwardRefExoticComponent<{
|
|
|
156
182
|
/**
|
|
157
183
|
* **Note:** this is controlled by the parent TreeView component, do not set manually.
|
|
158
184
|
* Array containing all selected node IDs in the tree
|
|
185
|
+
* @deprecated The `selected` prop for `TreeNode` has
|
|
186
|
+
* been deprecated after the introduction of context. It will be removed in the next major release.
|
|
159
187
|
*/
|
|
160
188
|
selected?: Array<string | number>;
|
|
161
189
|
/**
|
|
@@ -12,6 +12,7 @@ import PropTypes from 'prop-types';
|
|
|
12
12
|
import React, { useContext, useRef, useState, useEffect, useCallback } from 'react';
|
|
13
13
|
import { ArrowLeft, ArrowRight, Enter, Space } from '../../internal/keyboard/keys.js';
|
|
14
14
|
import { matches, match } from '../../internal/keyboard/match.js';
|
|
15
|
+
import { deprecate } from '../../prop-types/deprecate.js';
|
|
15
16
|
import { useControllableState } from '../../internal/useControllableState.js';
|
|
16
17
|
import { usePrefix } from '../../internal/usePrefix.js';
|
|
17
18
|
import { useId } from '../../internal/useId.js';
|
|
@@ -56,8 +57,7 @@ const useEllipsisCheck = (label, detailsWrapperRef) => {
|
|
|
56
57
|
}
|
|
57
58
|
}, [detailsWrapperRef]);
|
|
58
59
|
useEffect(() => {
|
|
59
|
-
|
|
60
|
-
animationFrameId = requestAnimationFrame(checkEllipsis);
|
|
60
|
+
const animationFrameId = requestAnimationFrame(checkEllipsis);
|
|
61
61
|
let resizeObserver;
|
|
62
62
|
if (typeof window !== 'undefined' && typeof window.ResizeObserver !== 'undefined' && labelTextRef.current) {
|
|
63
63
|
resizeObserver = new window.ResizeObserver(() => {
|
|
@@ -72,9 +72,11 @@ const useEllipsisCheck = (label, detailsWrapperRef) => {
|
|
|
72
72
|
cancelAnimationFrame(animationFrameId);
|
|
73
73
|
if (resizeObserver) {
|
|
74
74
|
if (labelTextRef.current) {
|
|
75
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
75
76
|
resizeObserver.unobserve(labelTextRef.current);
|
|
76
77
|
}
|
|
77
78
|
if (detailsWrapperRef.current) {
|
|
79
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
78
80
|
resizeObserver.unobserve(detailsWrapperRef.current);
|
|
79
81
|
}
|
|
80
82
|
resizeObserver.disconnect();
|
|
@@ -125,6 +127,8 @@ const TreeNode = /*#__PURE__*/React.forwardRef(({
|
|
|
125
127
|
tooltipText
|
|
126
128
|
} = useEllipsisCheck(label, detailsWrapperRef);
|
|
127
129
|
const enableTreeviewControllable = useFeatureFlag('enable-treeview-controllable');
|
|
130
|
+
|
|
131
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
128
132
|
const {
|
|
129
133
|
current: id
|
|
130
134
|
} = useRef(nodeId || useId());
|
|
@@ -367,7 +371,10 @@ const TreeNode = /*#__PURE__*/React.forwardRef(({
|
|
|
367
371
|
const nodeContent = /*#__PURE__*/React.createElement("div", {
|
|
368
372
|
className: `${prefix}--tree-node__label`,
|
|
369
373
|
ref: currentNodeLabel
|
|
370
|
-
}, children &&
|
|
374
|
+
}, children &&
|
|
375
|
+
/*#__PURE__*/
|
|
376
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions , jsx-a11y/click-events-have-key-events -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
377
|
+
React.createElement("span", {
|
|
371
378
|
className: `${prefix}--tree-parent-node__toggle`,
|
|
372
379
|
onClick: handleToggleClick
|
|
373
380
|
}, /*#__PURE__*/React.createElement(CaretDown, {
|
|
@@ -395,7 +402,7 @@ const TreeNode = /*#__PURE__*/React.forwardRef(({
|
|
|
395
402
|
value: depth + 1
|
|
396
403
|
}, children)));
|
|
397
404
|
}
|
|
398
|
-
return /*#__PURE__*/React.createElement("li", _extends({}, treeNodeProps, {
|
|
405
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("li", _extends({}, treeNodeProps, {
|
|
399
406
|
"aria-expanded": children ? !!expanded : undefined,
|
|
400
407
|
ref: setRefs
|
|
401
408
|
}), nodeContent, children && /*#__PURE__*/React.createElement("ul", {
|
|
@@ -406,14 +413,14 @@ const TreeNode = /*#__PURE__*/React.forwardRef(({
|
|
|
406
413
|
})
|
|
407
414
|
}, /*#__PURE__*/React.createElement(DepthContext.Provider, {
|
|
408
415
|
value: depth + 1
|
|
409
|
-
}, children)));
|
|
416
|
+
}, children))));
|
|
410
417
|
});
|
|
411
418
|
TreeNode.propTypes = {
|
|
412
419
|
/**
|
|
413
420
|
* **Note:** this is controlled by the parent TreeView component, do not set manually.
|
|
414
421
|
* The ID of the active node in the tree
|
|
415
422
|
*/
|
|
416
|
-
active: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
423
|
+
active: deprecate(PropTypes.oneOfType([PropTypes.string, PropTypes.number]), 'The `active` prop for `TreeNode` is no longer needed and has ' + 'been deprecated. It will be removed in the next major release.'),
|
|
417
424
|
/**
|
|
418
425
|
* Specify the children of the TreeNode
|
|
419
426
|
*/
|
|
@@ -431,7 +438,7 @@ TreeNode.propTypes = {
|
|
|
431
438
|
* **Note:** this is controlled by the parent TreeView component, do not set manually.
|
|
432
439
|
* TreeNode depth to determine spacing
|
|
433
440
|
*/
|
|
434
|
-
depth: PropTypes.number,
|
|
441
|
+
depth: deprecate(PropTypes.number, 'The `depth` prop for `TreeNode` is no longer needed and has ' + 'been deprecated. It will be removed in the next major release.'),
|
|
435
442
|
/**
|
|
436
443
|
* Specify if the TreeNode is disabled
|
|
437
444
|
*/
|
|
@@ -451,7 +458,7 @@ TreeNode.propTypes = {
|
|
|
451
458
|
/**
|
|
452
459
|
* Callback function for when the node receives or loses focus
|
|
453
460
|
*/
|
|
454
|
-
onNodeFocusEvent: PropTypes.func,
|
|
461
|
+
onNodeFocusEvent: deprecate(PropTypes.func, 'The `onNodeFocusEvent` prop for `TreeNode` is no longer needed and has ' + 'been deprecated. It will be removed in the next major release.'),
|
|
455
462
|
/**
|
|
456
463
|
* Callback function for when the node is selected
|
|
457
464
|
*/
|
|
@@ -463,18 +470,20 @@ TreeNode.propTypes = {
|
|
|
463
470
|
/**
|
|
464
471
|
* Callback function for when any node in the tree is selected
|
|
465
472
|
*/
|
|
466
|
-
onTreeSelect: PropTypes.func,
|
|
473
|
+
onTreeSelect: deprecate(PropTypes.func, 'The `onTreeSelect` prop for `TreeNode` is no longer needed and has ' + 'been deprecated. It will be removed in the next major release.'),
|
|
467
474
|
/**
|
|
468
475
|
* A component used to render an icon.
|
|
469
476
|
*/
|
|
477
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
470
478
|
// @ts-ignore
|
|
471
479
|
renderIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
|
|
472
480
|
/**
|
|
473
481
|
* **Note:** this is controlled by the parent TreeView component, do not set manually.
|
|
474
482
|
* Array containing all selected node IDs in the tree
|
|
475
483
|
*/
|
|
484
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
476
485
|
// @ts-ignore
|
|
477
|
-
selected: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),
|
|
486
|
+
selected: deprecate(PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])), 'The `selected` prop for `TreeNode` is no longer needed and has ' + 'been deprecated. It will be removed in the next major release.'),
|
|
478
487
|
/**
|
|
479
488
|
* Specify the value of the TreeNode
|
|
480
489
|
*/
|
|
@@ -32,11 +32,14 @@ const TreeView = ({
|
|
|
32
32
|
...rest
|
|
33
33
|
}) => {
|
|
34
34
|
const enableTreeviewControllable = useFeatureFlag('enable-treeview-controllable');
|
|
35
|
+
|
|
36
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
35
37
|
const {
|
|
36
38
|
current: treeId
|
|
37
39
|
} = useRef(rest.id || useId());
|
|
38
40
|
const prefix = usePrefix();
|
|
39
41
|
const treeClasses = cx(className, `${prefix}--tree`, {
|
|
42
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
40
43
|
// @ts-ignore - will always be false according to prop types
|
|
41
44
|
|
|
42
45
|
[`${prefix}--tree--${size}`]: size !== 'default'
|
|
@@ -62,6 +65,8 @@ const TreeView = ({
|
|
|
62
65
|
item.tabIndex = -1;
|
|
63
66
|
});
|
|
64
67
|
}
|
|
68
|
+
|
|
69
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
65
70
|
function handleTreeSelect(event, node) {
|
|
66
71
|
const nodeId = node.id;
|
|
67
72
|
if (nodeId) {
|
|
@@ -110,6 +115,7 @@ const TreeView = ({
|
|
|
110
115
|
if (match(event, ArrowDown)) {
|
|
111
116
|
nextFocusNode = treeWalker.current.nextNode();
|
|
112
117
|
}
|
|
118
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
113
119
|
// @ts-ignore - `matches` doesn't like the object syntax without missing properties
|
|
114
120
|
if (matches(event, [Home, End, {
|
|
115
121
|
code: 'KeyA'
|
|
@@ -126,6 +132,7 @@ const TreeView = ({
|
|
|
126
132
|
}
|
|
127
133
|
}
|
|
128
134
|
}
|
|
135
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
129
136
|
// @ts-ignore - `matches` doesn't like the object syntax without missing properties
|
|
130
137
|
if (match(event, {
|
|
131
138
|
code: 'KeyA'
|
|
@@ -27,7 +27,9 @@ function HeaderContainer({
|
|
|
27
27
|
const handleHeaderMenuButtonClick = useCallback(() => {
|
|
28
28
|
setIsSideNavExpandedState(prevIsSideNavExpanded => !prevIsSideNavExpanded);
|
|
29
29
|
}, [setIsSideNavExpandedState]);
|
|
30
|
-
return /*#__PURE__*/React.createElement(Children
|
|
30
|
+
return /*#__PURE__*/React.createElement(Children
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
32
|
+
, _extends({}, rest, {
|
|
31
33
|
isSideNavExpanded: isSideNavExpandedState,
|
|
32
34
|
onClickSideNavExpand: handleHeaderMenuButtonClick
|
|
33
35
|
}));
|
|
@@ -22,7 +22,7 @@ import { usePrefix } from '../../internal/usePrefix.js';
|
|
|
22
22
|
*
|
|
23
23
|
* Note: children passed to this component should be an Icon.
|
|
24
24
|
*/
|
|
25
|
-
const HeaderGlobalAction = /*#__PURE__*/React.forwardRef(
|
|
25
|
+
const HeaderGlobalAction = /*#__PURE__*/React.forwardRef(({
|
|
26
26
|
'aria-label': ariaLabel,
|
|
27
27
|
'aria-labelledby': ariaLabelledBy,
|
|
28
28
|
children,
|
|
@@ -33,7 +33,7 @@ const HeaderGlobalAction = /*#__PURE__*/React.forwardRef(function HeaderGlobalAc
|
|
|
33
33
|
isActive,
|
|
34
34
|
tooltipAlignment,
|
|
35
35
|
...rest
|
|
36
|
-
}, ref) {
|
|
36
|
+
}, ref) => {
|
|
37
37
|
const prefix = usePrefix();
|
|
38
38
|
const className = cx({
|
|
39
39
|
[customClassName]: !!customClassName,
|
|
@@ -120,6 +120,7 @@ const HeaderMenu = frFn((props, ref) => {
|
|
|
120
120
|
*/
|
|
121
121
|
const renderMenuItem = (item, index) => {
|
|
122
122
|
if (/*#__PURE__*/isValidElement(item)) {
|
|
123
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
123
124
|
return /*#__PURE__*/cloneElement(item, {
|
|
124
125
|
ref: handleItemRef(index)
|
|
125
126
|
});
|
|
@@ -157,9 +158,8 @@ const HeaderMenu = frFn((props, ref) => {
|
|
|
157
158
|
onBlur: composeEventHandlers([onBlur, handleOnBlur]),
|
|
158
159
|
ref: ref
|
|
159
160
|
}), /*#__PURE__*/React.createElement("a", _extends({
|
|
160
|
-
// eslint-disable-line jsx-a11y/
|
|
161
|
-
"aria-haspopup": "menu"
|
|
162
|
-
,
|
|
161
|
+
// eslint-disable-line jsx-a11y/anchor-is-valid
|
|
162
|
+
"aria-haspopup": "menu",
|
|
163
163
|
"aria-expanded": expanded,
|
|
164
164
|
className: linkClassName,
|
|
165
165
|
href: "#",
|
|
@@ -17,7 +17,7 @@ import { useMergedRefs } from '../../internal/useMergedRefs.js';
|
|
|
17
17
|
import Switcher from './Switcher.js';
|
|
18
18
|
import { noopFn } from '../../internal/noopFn.js';
|
|
19
19
|
|
|
20
|
-
const HeaderPanel = /*#__PURE__*/React.forwardRef(
|
|
20
|
+
const HeaderPanel = /*#__PURE__*/React.forwardRef(({
|
|
21
21
|
children,
|
|
22
22
|
className: customClassName,
|
|
23
23
|
expanded,
|
|
@@ -25,7 +25,7 @@ const HeaderPanel = /*#__PURE__*/React.forwardRef(function HeaderPanel({
|
|
|
25
25
|
onHeaderPanelFocus = noopFn,
|
|
26
26
|
href,
|
|
27
27
|
...rest
|
|
28
|
-
}, ref) {
|
|
28
|
+
}, ref) => {
|
|
29
29
|
const prefix = usePrefix();
|
|
30
30
|
const headerPanelReference = useRef(null);
|
|
31
31
|
const headerPanelRef = useMergedRefs([headerPanelReference, ref]);
|
|
@@ -17,9 +17,11 @@ const LinkBase = ({
|
|
|
17
17
|
as: BaseComponent,
|
|
18
18
|
// Captured here to prevent it from being passed into the created element.
|
|
19
19
|
// See https://github.com/carbon-design-system/carbon/issues/3970
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
20
21
|
isSideNavExpanded: _isSideNavExpanded,
|
|
21
22
|
...rest
|
|
22
23
|
}, ref) => {
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
23
25
|
const BaseComponentAsAny = BaseComponent ?? element ?? 'a';
|
|
24
26
|
return /*#__PURE__*/React.createElement(BaseComponentAsAny, _extends({
|
|
25
27
|
ref: ref
|
|
@@ -21,6 +21,7 @@ const SideNavItems = ({
|
|
|
21
21
|
const childrenWithExpandedState = React.Children.map(children, child => {
|
|
22
22
|
if (/*#__PURE__*/React.isValidElement(child)) {
|
|
23
23
|
// avoid spreading `isSideNavExpanded` to non-Carbon UI Shell children
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
|
|
24
25
|
const childDisplayName = child.type?.displayName;
|
|
25
26
|
return /*#__PURE__*/React.cloneElement(child, {
|
|
26
27
|
...(CARBON_SIDENAV_ITEMS.includes(childDisplayName) ? {
|