@carbon/react 1.72.0 → 1.73.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.
Files changed (68) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +810 -810
  2. package/es/components/AILabel/index.js +4 -2
  3. package/es/components/ComposedModal/ComposedModal.js +1 -1
  4. package/es/components/Copy/Copy.js +1 -1
  5. package/es/components/DataTable/DataTable.d.ts +8 -2
  6. package/es/components/DataTable/DataTable.js +6 -1
  7. package/es/components/DataTable/Table.js +1 -1
  8. package/es/components/DataTable/TableCell.d.ts +1 -1
  9. package/es/components/DataTable/TableCell.js +2 -2
  10. package/es/components/DataTable/TableDecoratorRow.d.ts +33 -0
  11. package/es/components/DataTable/TableDecoratorRow.js +48 -0
  12. package/es/components/DataTable/TableExpandRow.js +9 -9
  13. package/es/components/DataTable/TableHeader.d.ts +6 -1
  14. package/es/components/DataTable/TableHeader.js +20 -11
  15. package/es/components/DataTable/TableRow.js +17 -10
  16. package/es/components/DataTable/TableSlugRow.js +5 -1
  17. package/es/components/DataTable/index.d.ts +2 -1
  18. package/es/components/DataTable/index.js +3 -0
  19. package/es/components/DataTable/tools/normalize.js +3 -2
  20. package/es/components/Modal/Modal.js +1 -1
  21. package/es/components/Popover/index.js +6 -2
  22. package/es/components/Search/Search.js +1 -1
  23. package/es/components/Slider/Slider.Skeleton.d.ts +17 -1
  24. package/es/components/Slider/Slider.Skeleton.js +20 -3
  25. package/es/components/Slider/Slider.d.ts +1 -1
  26. package/es/components/Slider/Slider.js +20 -4
  27. package/es/components/Slider/SliderHandles.d.ts +4 -4
  28. package/es/components/Slider/SliderHandles.js +9 -8
  29. package/es/components/Stack/Stack.js +3 -1
  30. package/es/components/Tabs/Tabs.js +1 -1
  31. package/es/components/Toggletip/index.d.ts +16 -11
  32. package/es/components/Toggletip/index.js +5 -0
  33. package/es/index.js +1 -0
  34. package/es/prop-types/deprecateComponent.js +22 -0
  35. package/lib/components/AILabel/index.js +4 -2
  36. package/lib/components/ComposedModal/ComposedModal.js +2 -3
  37. package/lib/components/Copy/Copy.js +2 -3
  38. package/lib/components/DataTable/DataTable.d.ts +8 -2
  39. package/lib/components/DataTable/DataTable.js +6 -1
  40. package/lib/components/DataTable/Table.js +3 -4
  41. package/lib/components/DataTable/TableCell.d.ts +1 -1
  42. package/lib/components/DataTable/TableCell.js +2 -2
  43. package/lib/components/DataTable/TableDecoratorRow.d.ts +33 -0
  44. package/lib/components/DataTable/TableDecoratorRow.js +58 -0
  45. package/lib/components/DataTable/TableExpandRow.js +9 -9
  46. package/lib/components/DataTable/TableHeader.d.ts +6 -1
  47. package/lib/components/DataTable/TableHeader.js +20 -11
  48. package/lib/components/DataTable/TableRow.js +17 -11
  49. package/lib/components/DataTable/TableSlugRow.js +4 -0
  50. package/lib/components/DataTable/index.d.ts +2 -1
  51. package/lib/components/DataTable/index.js +3 -0
  52. package/lib/components/DataTable/tools/normalize.js +3 -2
  53. package/lib/components/Modal/Modal.js +2 -3
  54. package/lib/components/Popover/index.js +6 -2
  55. package/lib/components/Search/Search.js +1 -1
  56. package/lib/components/Slider/Slider.Skeleton.d.ts +17 -1
  57. package/lib/components/Slider/Slider.Skeleton.js +20 -3
  58. package/lib/components/Slider/Slider.d.ts +1 -1
  59. package/lib/components/Slider/Slider.js +21 -6
  60. package/lib/components/Slider/SliderHandles.d.ts +4 -4
  61. package/lib/components/Slider/SliderHandles.js +9 -8
  62. package/lib/components/Stack/Stack.js +3 -1
  63. package/lib/components/Tabs/Tabs.js +3 -4
  64. package/lib/components/Toggletip/index.d.ts +16 -11
  65. package/lib/components/Toggletip/index.js +5 -0
  66. package/lib/index.js +2 -0
  67. package/lib/prop-types/deprecateComponent.js +26 -0
  68. package/package.json +6 -8
@@ -387,7 +387,7 @@ declare class Slider extends PureComponent<SliderProps> {
387
387
  * Throttles calls to `this._onDrag` by limiting events to being processed at
388
388
  * most once every `EVENT_THROTTLE` milliseconds.
389
389
  */
390
- onDrag: any;
390
+ onDrag: import("es-toolkit/dist/compat/function/debounce").DebouncedFunction<(evt: any, activeHandle?: HandlePosition | null) => void>;
391
391
  /**
392
392
  * Handles a `keydown` event by recalculating the value/thumb and setting
393
393
  * state accordingly.
@@ -9,7 +9,7 @@ import { defineProperty as _defineProperty, extends as _extends } from '../../_v
9
9
  import React__default, { PureComponent } from 'react';
10
10
  import PropTypes from 'prop-types';
11
11
  import cx from 'classnames';
12
- import throttle from 'lodash.throttle';
12
+ import { throttle } from 'es-toolkit/compat';
13
13
  import { ArrowDown, ArrowLeft, ArrowUp, ArrowRight, Enter } from '../../internal/keyboard/keys.js';
14
14
  import { PrefixContext } from '../../internal/usePrefix.js';
15
15
  import deprecate from '../../prop-types/deprecate.js';
@@ -22,7 +22,6 @@ import { LowerHandle, LowerHandleFocus, UpperHandle, UpperHandleFocus } from './
22
22
  import { matches } from '../../internal/keyboard/match.js';
23
23
  import { Text } from '../Text/Text.js';
24
24
 
25
- var _LowerHandle, _LowerHandleFocus, _UpperHandle, _UpperHandleFocus, _UpperHandle2, _UpperHandleFocus2, _LowerHandle2, _LowerHandleFocus2;
26
25
  const ThumbWrapper = _ref => {
27
26
  let {
28
27
  hasTooltip = false,
@@ -947,6 +946,7 @@ class Slider extends PureComponent {
947
946
  return Object.entries(derivedState).length > 0 ? derivedState : null;
948
947
  }
949
948
  render() {
949
+ var _LowerHandle, _LowerHandleFocus, _UpperHandle, _UpperHandleFocus, _UpperHandle2, _UpperHandleFocus2, _LowerHandle2, _LowerHandleFocus2;
950
950
  const {
951
951
  ariaLabelInput,
952
952
  unstable_ariaLabelInputUpper: ariaLabelInputUpper,
@@ -1114,7 +1114,15 @@ class Slider extends PureComponent {
1114
1114
  onFocus: () => this.setState({
1115
1115
  activeHandle: HandlePosition.LOWER
1116
1116
  })
1117
- }, twoHandles && !isRtl ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, _LowerHandle || (_LowerHandle = /*#__PURE__*/React__default.createElement(LowerHandle, null)), _LowerHandleFocus || (_LowerHandleFocus = /*#__PURE__*/React__default.createElement(LowerHandleFocus, null))) : twoHandles && isRtl ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, _UpperHandle || (_UpperHandle = /*#__PURE__*/React__default.createElement(UpperHandle, null)), _UpperHandleFocus || (_UpperHandleFocus = /*#__PURE__*/React__default.createElement(UpperHandleFocus, null))) : undefined)), twoHandles ? /*#__PURE__*/React__default.createElement(ThumbWrapper, _extends({
1117
+ }, twoHandles && !isRtl ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, _LowerHandle || (_LowerHandle = /*#__PURE__*/React__default.createElement(LowerHandle, {
1118
+ "aria-label": ariaLabelInput
1119
+ })), _LowerHandleFocus || (_LowerHandleFocus = /*#__PURE__*/React__default.createElement(LowerHandleFocus, {
1120
+ "aria-label": ariaLabelInput
1121
+ }))) : twoHandles && isRtl ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, _UpperHandle || (_UpperHandle = /*#__PURE__*/React__default.createElement(UpperHandle, {
1122
+ "aria-label": ariaLabelInputUpper
1123
+ })), _UpperHandleFocus || (_UpperHandleFocus = /*#__PURE__*/React__default.createElement(UpperHandleFocus, {
1124
+ "aria-label": ariaLabelInputUpper
1125
+ }))) : undefined)), twoHandles ? /*#__PURE__*/React__default.createElement(ThumbWrapper, _extends({
1118
1126
  hasTooltip: hideTextInput,
1119
1127
  className: upperThumbWrapperClasses,
1120
1128
  label: `${formatLabel(valueUpper || 0, '')}`,
@@ -1131,7 +1139,15 @@ class Slider extends PureComponent {
1131
1139
  onFocus: () => this.setState({
1132
1140
  activeHandle: HandlePosition.UPPER
1133
1141
  })
1134
- }, twoHandles && !isRtl ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, _UpperHandle2 || (_UpperHandle2 = /*#__PURE__*/React__default.createElement(UpperHandle, null)), _UpperHandleFocus2 || (_UpperHandleFocus2 = /*#__PURE__*/React__default.createElement(UpperHandleFocus, null))) : twoHandles && isRtl ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, _LowerHandle2 || (_LowerHandle2 = /*#__PURE__*/React__default.createElement(LowerHandle, null)), _LowerHandleFocus2 || (_LowerHandleFocus2 = /*#__PURE__*/React__default.createElement(LowerHandleFocus, null))) : undefined)) : null, /*#__PURE__*/React__default.createElement("div", {
1142
+ }, twoHandles && !isRtl ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, _UpperHandle2 || (_UpperHandle2 = /*#__PURE__*/React__default.createElement(UpperHandle, {
1143
+ "aria-label": ariaLabelInputUpper
1144
+ })), _UpperHandleFocus2 || (_UpperHandleFocus2 = /*#__PURE__*/React__default.createElement(UpperHandleFocus, {
1145
+ "aria-label": ariaLabelInputUpper
1146
+ }))) : twoHandles && isRtl ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, _LowerHandle2 || (_LowerHandle2 = /*#__PURE__*/React__default.createElement(LowerHandle, {
1147
+ "aria-label": ariaLabelInput
1148
+ })), _LowerHandleFocus2 || (_LowerHandleFocus2 = /*#__PURE__*/React__default.createElement(LowerHandleFocus, {
1149
+ "aria-label": ariaLabelInput
1150
+ }))) : undefined)) : null, /*#__PURE__*/React__default.createElement("div", {
1135
1151
  className: `${prefix}--slider__track`,
1136
1152
  ref: node => {
1137
1153
  this.track = node;
@@ -1,4 +1,4 @@
1
- export declare const LowerHandle: () => import("react/jsx-runtime").JSX.Element;
2
- export declare const LowerHandleFocus: () => import("react/jsx-runtime").JSX.Element;
3
- export declare const UpperHandle: () => import("react/jsx-runtime").JSX.Element;
4
- export declare const UpperHandleFocus: () => import("react/jsx-runtime").JSX.Element;
1
+ export declare const LowerHandle: (props: any) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const LowerHandleFocus: (props: any) => import("react/jsx-runtime").JSX.Element;
3
+ export declare const UpperHandle: (props: any) => import("react/jsx-runtime").JSX.Element;
4
+ export declare const UpperHandleFocus: (props: any) => import("react/jsx-runtime").JSX.Element;
@@ -5,25 +5,26 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
+ import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
8
9
  import { PrefixContext } from '../../internal/usePrefix.js';
9
10
  import React__default from 'react';
10
11
 
11
12
  var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14;
12
- const LowerHandle = () => /*#__PURE__*/React__default.createElement(PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default.createElement("svg", {
13
+ const LowerHandle = props => /*#__PURE__*/React__default.createElement(PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default.createElement("svg", _extends({
13
14
  xmlns: "http://www.w3.org/2000/svg",
14
15
  viewBox: "0 0 16 24",
15
16
  className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--lower`
16
- }, _path || (_path = /*#__PURE__*/React__default.createElement("path", {
17
+ }, props), _path || (_path = /*#__PURE__*/React__default.createElement("path", {
17
18
  d: "M15.08 6.46H16v11.08h-.92zM4.46 17.54c-.25 0-.46-.21-.46-.46V6.92a.465.465 0 0 1 .69-.4l8.77 5.08a.46.46 0 0 1 0 .8l-8.77 5.08c-.07.04-.15.06-.23.06Z"
18
19
  })), _path2 || (_path2 = /*#__PURE__*/React__default.createElement("path", {
19
20
  fill: "none",
20
21
  d: "M-4 0h24v24H-4z"
21
22
  }))));
22
- const LowerHandleFocus = () => /*#__PURE__*/React__default.createElement(PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default.createElement("svg", {
23
+ const LowerHandleFocus = props => /*#__PURE__*/React__default.createElement(PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default.createElement("svg", _extends({
23
24
  xmlns: "http://www.w3.org/2000/svg",
24
25
  viewBox: "0 0 16 24",
25
26
  className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--lower ${prefix}--slider__thumb-icon--focus`
26
- }, _path3 || (_path3 = /*#__PURE__*/React__default.createElement("path", {
27
+ }, props), _path3 || (_path3 = /*#__PURE__*/React__default.createElement("path", {
27
28
  d: "M15.08 6.46H16v11.08h-.92zM4.46 17.54c-.25 0-.46-.21-.46-.46V6.92a.465.465 0 0 1 .69-.4l8.77 5.08a.46.46 0 0 1 0 .8l-8.77 5.08c-.07.04-.15.06-.23.06Z"
28
29
  })), _path4 || (_path4 = /*#__PURE__*/React__default.createElement("path", {
29
30
  fill: "none",
@@ -35,21 +36,21 @@ const LowerHandleFocus = () => /*#__PURE__*/React__default.createElement(PrefixC
35
36
  })), _path7 || (_path7 = /*#__PURE__*/React__default.createElement("path", {
36
37
  d: "M0 .92V0h16v.92zM0 24v-.92h16V24z"
37
38
  }))));
38
- const UpperHandle = () => /*#__PURE__*/React__default.createElement(PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default.createElement("svg", {
39
+ const UpperHandle = props => /*#__PURE__*/React__default.createElement(PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default.createElement("svg", _extends({
39
40
  xmlns: "http://www.w3.org/2000/svg",
40
41
  viewBox: "0 0 16 24",
41
42
  className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--upper`
42
- }, _path8 || (_path8 = /*#__PURE__*/React__default.createElement("path", {
43
+ }, props), _path8 || (_path8 = /*#__PURE__*/React__default.createElement("path", {
43
44
  d: "M0 6.46h.92v11.08H0zM11.54 6.46c.25 0 .46.21.46.46v10.15a.465.465 0 0 1-.69.4L2.54 12.4a.46.46 0 0 1 0-.8l8.77-5.08c.07-.04.15-.06.23-.06Z"
44
45
  })), _path9 || (_path9 = /*#__PURE__*/React__default.createElement("path", {
45
46
  fill: "none",
46
47
  d: "M-4 0h24v24H-4z"
47
48
  }))));
48
- const UpperHandleFocus = () => /*#__PURE__*/React__default.createElement(PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default.createElement("svg", {
49
+ const UpperHandleFocus = props => /*#__PURE__*/React__default.createElement(PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default.createElement("svg", _extends({
49
50
  xmlns: "http://www.w3.org/2000/svg",
50
51
  viewBox: "0 0 16 24",
51
52
  className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--upper ${prefix}--slider__thumb-icon--focus`
52
- }, _path10 || (_path10 = /*#__PURE__*/React__default.createElement("path", {
53
+ }, props), _path10 || (_path10 = /*#__PURE__*/React__default.createElement("path", {
53
54
  d: "M0 6.46h.92v11.08H0zM11.54 6.46c.25 0 .46.21.46.46v10.15a.465.465 0 0 1-.69.4L2.54 12.4a.46.46 0 0 1 0-.8l8.77-5.08c.07-.04.15-.06.23-.06Z"
54
55
  })), _path11 || (_path11 = /*#__PURE__*/React__default.createElement("path", {
55
56
  fill: "none",
@@ -52,7 +52,9 @@ const Stack = /*#__PURE__*/React__default.forwardRef(function Stack(props, ref)
52
52
  [`${prefix}--stack-${orientation}`]: true,
53
53
  [`${prefix}--stack-scale-${gap}`]: typeof gap === 'number'
54
54
  });
55
- const style = {};
55
+ const style = {
56
+ ...rest.style
57
+ };
56
58
  if (typeof gap === 'string') {
57
59
  style[`--${prefix}-stack-gap`] = gap;
58
60
  }
@@ -9,7 +9,7 @@ import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js
9
9
  import { ChevronLeft, ChevronRight, Close } from '@carbon/icons-react';
10
10
  import { breakpoints } from '@carbon/layout';
11
11
  import cx from 'classnames';
12
- import debounce from 'lodash.debounce';
12
+ import { debounce } from 'es-toolkit/compat';
13
13
  import PropTypes from 'prop-types';
14
14
  import React__default, { useState, useRef, useCallback, useEffect, forwardRef } from 'react';
15
15
  import '../Grid/FlexGrid.js';
@@ -9,9 +9,9 @@ import React, { type ElementType, type ReactNode } from 'react';
9
9
  import { type PopoverAlignment } from '../Popover';
10
10
  import { PolymorphicProps } from '../../types/common';
11
11
  type ToggletipLabelProps<E extends ElementType> = {
12
- as?: E | undefined;
12
+ as?: E;
13
13
  children?: ReactNode;
14
- className?: string | undefined;
14
+ className?: string;
15
15
  };
16
16
  /**
17
17
  * Used to render the label for a Toggletip
@@ -36,12 +36,13 @@ export declare namespace ToggletipLabel {
36
36
  };
37
37
  }
38
38
  interface ToggletipProps<E extends ElementType> {
39
- align?: PopoverAlignment | undefined;
40
- as?: E | undefined;
41
- autoAlign?: boolean | undefined;
42
- className?: string | undefined;
39
+ align?: PopoverAlignment;
40
+ alignmentAxisOffset?: number;
41
+ as?: E;
42
+ autoAlign?: boolean;
43
+ className?: string;
43
44
  children?: ReactNode;
44
- defaultOpen?: boolean | undefined;
45
+ defaultOpen?: boolean;
45
46
  }
46
47
  /**
47
48
  * Used as a container for the button and content of a toggletip. This component
@@ -55,6 +56,10 @@ export declare namespace Toggletip {
55
56
  * Specify how the toggletip should align with the button
56
57
  */
57
58
  align: PropTypes.Requireable<string>;
59
+ /**
60
+ * Provide an offset value for alignment axis.
61
+ */
62
+ alignmentAxisOffset: PropTypes.Requireable<number>;
58
63
  /**
59
64
  * Provide a custom element or component to render the top-level node for the
60
65
  * component.
@@ -81,8 +86,8 @@ export declare namespace Toggletip {
81
86
  }
82
87
  interface ToggletipButtonBaseProps {
83
88
  children?: ReactNode;
84
- className?: string | undefined;
85
- label?: string | undefined;
89
+ className?: string;
90
+ label?: string;
86
91
  }
87
92
  export type ToggleTipButtonProps<T extends React.ElementType> = PolymorphicProps<T, ToggletipButtonBaseProps>;
88
93
  /**
@@ -92,7 +97,7 @@ export type ToggleTipButtonProps<T extends React.ElementType> = PolymorphicProps
92
97
  export declare const ToggletipButton: React.ForwardRefExoticComponent<Omit<ToggleTipButtonProps<React.ElementType<any, keyof React.JSX.IntrinsicElements>>, "ref"> & React.RefAttributes<unknown>>;
93
98
  interface ToggletipContentProps {
94
99
  children?: ReactNode;
95
- className?: string | undefined;
100
+ className?: string;
96
101
  }
97
102
  /**
98
103
  * `ToggletipContent` is a wrapper around `PopoverContent`. It places the
@@ -103,7 +108,7 @@ declare const ToggletipContent: React.ForwardRefExoticComponent<ToggletipContent
103
108
  export { ToggletipContent };
104
109
  interface ToggleTipActionsProps {
105
110
  children?: ReactNode;
106
- className?: string | undefined;
111
+ className?: string;
107
112
  }
108
113
  /**
109
114
  * `ToggletipActions` is a container for one or two actions present at the base
@@ -173,6 +173,10 @@ Toggletip.propTypes = {
173
173
 
174
174
  // new values to match floating-ui
175
175
  'top-start', 'top-end', 'bottom-start', 'bottom-end', 'left-end', 'left-start', 'right-end', 'right-start']),
176
+ /**
177
+ * Provide an offset value for alignment axis.
178
+ */
179
+ alignmentAxisOffset: PropTypes.number,
176
180
  /**
177
181
  * Provide a custom element or component to render the top-level node for the
178
182
  * component.
@@ -200,6 +204,7 @@ Toggletip.propTypes = {
200
204
  * `ToggletipButton` controls the visibility of the Toggletip through mouse
201
205
  * clicks and keyboard interactions.
202
206
  */
207
+
203
208
  const ToggletipButton = /*#__PURE__*/React__default.forwardRef(function ToggletipButton(_ref3, ref) {
204
209
  let {
205
210
  children,
package/es/index.js CHANGED
@@ -220,6 +220,7 @@ export { default as TableBatchActions } from './components/DataTable/TableBatchA
220
220
  export { default as TableBody } from './components/DataTable/TableBody.js';
221
221
  export { default as TableCell } from './components/DataTable/TableCell.js';
222
222
  export { default as TableContainer } from './components/DataTable/TableContainer.js';
223
+ export { default as TableDecoratorRow } from './components/DataTable/TableDecoratorRow.js';
223
224
  export { default as TableExpandHeader } from './components/DataTable/TableExpandHeader.js';
224
225
  export { default as TableExpandRow } from './components/DataTable/TableExpandRow.js';
225
226
  export { default as TableExpandedRow } from './components/DataTable/TableExpandedRow.js';
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import { warning } from '../internal/warning.js';
9
+
10
+ const didWarnAboutDeprecation = {};
11
+ function deprecateComponent(componentName, message) {
12
+ if (!componentName) {
13
+ return;
14
+ }
15
+ if (!didWarnAboutDeprecation[componentName]) {
16
+ didWarnAboutDeprecation[componentName] = true;
17
+ process.env.NODE_ENV !== "production" ? warning(false, message || `The ${componentName} component has been deprecated and will be removed in the next major release.`) : void 0;
18
+ }
19
+ return componentName;
20
+ }
21
+
22
+ export { deprecateComponent as default };
@@ -128,7 +128,8 @@ const AILabel = /*#__PURE__*/React__default["default"].forwardRef(function AILab
128
128
  onRevertClick(evt);
129
129
  }
130
130
  };
131
- const ariaLabelText = !aiTextLabel && !textLabel ? `${aiText} - ${slugLabel || ariaLabel}` : `${aiText} - ${aiTextLabel || textLabel}`;
131
+ const ariaLabelText = !aiTextLabel && !textLabel ? `${aiText} ${slugLabel || ariaLabel}` : `${aiText} ${aiTextLabel || textLabel}`;
132
+ const isSmallIcon = ['xs', '2xs', 'mini'].includes(size);
132
133
  return /*#__PURE__*/React__default["default"].createElement("div", {
133
134
  className: aiLabelClasses,
134
135
  ref: ref,
@@ -140,7 +141,8 @@ const AILabel = /*#__PURE__*/React__default["default"].forwardRef(function AILab
140
141
  label: revertLabel
141
142
  }, rest), _Undo || (_Undo = /*#__PURE__*/React__default["default"].createElement(iconsReact.Undo, null))) : /*#__PURE__*/React__default["default"].createElement(index.Toggletip, _rollupPluginBabelHelpers["extends"]({
142
143
  align: align,
143
- autoAlign: autoAlign
144
+ autoAlign: autoAlign,
145
+ alignmentAxisOffset: isSmallIcon ? -24 : 0
144
146
  }, rest), /*#__PURE__*/React__default["default"].createElement(index.ToggletipButton, {
145
147
  className: aiLabelButtonClasses,
146
148
  label: ariaLabelText
@@ -16,7 +16,7 @@ var PropTypes = require('prop-types');
16
16
  var index = require('../Layer/index.js');
17
17
  var ModalHeader = require('./ModalHeader.js');
18
18
  var ModalFooter = require('./ModalFooter.js');
19
- var debounce = require('lodash.debounce');
19
+ var compat = require('es-toolkit/compat');
20
20
  var useIsomorphicEffect = require('../../internal/useIsomorphicEffect.js');
21
21
  var mergeRefs = require('../../tools/mergeRefs.js');
22
22
  var cx = require('classnames');
@@ -34,7 +34,6 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
34
34
 
35
35
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
36
36
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
37
- var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
38
37
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
39
38
 
40
39
  const ModalBody = /*#__PURE__*/React__default["default"].forwardRef(function ModalBody(_ref, ref) {
@@ -62,7 +61,7 @@ const ModalBody = /*#__PURE__*/React__default["default"].forwardRef(function Mod
62
61
  setIsScrollable(contentRef.current.scrollHeight > contentRef.current.clientHeight);
63
62
  }
64
63
  }
65
- const debouncedHandler = debounce__default["default"](handler, 200);
64
+ const debouncedHandler = compat.debounce(handler, 200);
66
65
  window.addEventListener('resize', debouncedHandler);
67
66
  return () => {
68
67
  debouncedHandler.cancel();
@@ -12,7 +12,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
12
12
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
13
  var PropTypes = require('prop-types');
14
14
  var React = require('react');
15
- var debounce = require('lodash.debounce');
15
+ var compat = require('es-toolkit/compat');
16
16
  var cx = require('classnames');
17
17
  var events = require('../../tools/events.js');
18
18
  var usePrefix = require('../../internal/usePrefix.js');
@@ -24,7 +24,6 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
24
24
 
25
25
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
26
26
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
27
- var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
28
27
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
29
28
 
30
29
  const propMappingFunction = deprecatedValue => {
@@ -59,7 +58,7 @@ function Copy(_ref) {
59
58
  [`${prefix}--copy-btn--${animation}`]: animation
60
59
  });
61
60
  // eslint-disable-next-line react-hooks/exhaustive-deps
62
- const handleFadeOut = React.useCallback(debounce__default["default"](() => {
61
+ const handleFadeOut = React.useCallback(compat.debounce(() => {
63
62
  setAnimation('fade-out');
64
63
  }, feedbackTimeout), [feedbackTimeout]);
65
64
  const handleClick = React.useCallback(() => {
@@ -15,6 +15,7 @@ import TableBatchActions from './TableBatchActions';
15
15
  import TableBody from './TableBody';
16
16
  import TableCell from './TableCell';
17
17
  import TableContainer from './TableContainer';
18
+ import TableDecoratorRow from './TableDecoratorRow';
18
19
  import TableExpandHeader from './TableExpandHeader';
19
20
  import TableExpandRow from './TableExpandRow';
20
21
  import TableExpandedRow from './TableExpandedRow';
@@ -70,6 +71,7 @@ export interface DataTableHeader {
70
71
  key: string;
71
72
  header: React.ReactNode;
72
73
  slug?: React.ReactElement;
74
+ decorator?: React.ReactElement;
73
75
  }
74
76
  export interface DataTableRenderProps<RowType, ColTypes extends any[]> {
75
77
  headers: Array<DataTableHeader>;
@@ -174,7 +176,8 @@ export interface DataTableRenderProps<RowType, ColTypes extends any[]> {
174
176
  cell: DataTableCell<ColTypes>;
175
177
  }) => {
176
178
  [key: string]: unknown;
177
- hasSlugHeader?: boolean;
179
+ hasAILabelHeader?: boolean;
180
+ hasDecoratorHeader?: boolean;
178
181
  };
179
182
  onInputChange: (e: React.ChangeEvent<HTMLInputElement>, defaultValue?: string) => void;
180
183
  sortBy: (headerKey: string) => void;
@@ -318,6 +321,7 @@ declare class DataTable<RowType, ColTypes extends any[]> extends React.Component
318
321
  static TableBody: typeof TableBody;
319
322
  static TableCell: typeof TableCell;
320
323
  static TableContainer: typeof TableContainer;
324
+ static TableDecoratorRow: typeof TableDecoratorRow;
321
325
  static TableExpandHeader: typeof TableExpandHeader;
322
326
  static TableExpandRow: typeof TableExpandRow;
323
327
  static TableExpandedRow: typeof TableExpandedRow;
@@ -358,6 +362,7 @@ declare class DataTable<RowType, ColTypes extends any[]> extends React.Component
358
362
  isSortable: boolean | undefined;
359
363
  isSortHeader: boolean;
360
364
  slug: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
365
+ decorator: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
361
366
  onClick: (event: any) => void;
362
367
  };
363
368
  /**
@@ -505,7 +510,8 @@ declare class DataTable<RowType, ColTypes extends any[]> extends React.Component
505
510
  [x: string]: any;
506
511
  cell: any;
507
512
  }) => {
508
- hasSlugHeader: any;
513
+ hasAILabelHeader: any;
514
+ hasDecoratorHeader: any;
509
515
  };
510
516
  /**
511
517
  * Helper utility to get all the currently selected rows
@@ -27,6 +27,7 @@ var TableBatchActions = require('./TableBatchActions.js');
27
27
  var TableBody = require('./TableBody.js');
28
28
  var TableCell = require('./TableCell.js');
29
29
  var TableContainer = require('./TableContainer.js');
30
+ var TableDecoratorRow = require('./TableDecoratorRow.js');
30
31
  var TableExpandHeader = require('./TableExpandHeader.js');
31
32
  var TableExpandRow = require('./TableExpandRow.js');
32
33
  var TableExpandedRow = require('./TableExpandedRow.js');
@@ -119,6 +120,7 @@ class DataTable extends React__default["default"].Component {
119
120
  isSortable,
120
121
  isSortHeader: sortHeaderKey === header.key,
121
122
  slug: header.slug,
123
+ decorator: header.decorator,
122
124
  onClick: event => {
123
125
  const nextSortState = sorting.getNextSortState(this.props, this.state, {
124
126
  key: header.key
@@ -373,7 +375,8 @@ class DataTable extends React__default["default"].Component {
373
375
  } = _ref4;
374
376
  return {
375
377
  ...rest,
376
- hasSlugHeader: cell.hasSlugHeader
378
+ hasAILabelHeader: cell.hasAILabelHeader,
379
+ hasDecoratorHeader: cell.hasDecoratorHeader
377
380
  };
378
381
  });
379
382
  /**
@@ -753,6 +756,7 @@ _rollupPluginBabelHelpers.defineProperty(DataTable, "TableBatchActions", void 0)
753
756
  _rollupPluginBabelHelpers.defineProperty(DataTable, "TableBody", void 0);
754
757
  _rollupPluginBabelHelpers.defineProperty(DataTable, "TableCell", void 0);
755
758
  _rollupPluginBabelHelpers.defineProperty(DataTable, "TableContainer", void 0);
759
+ _rollupPluginBabelHelpers.defineProperty(DataTable, "TableDecoratorRow", void 0);
756
760
  _rollupPluginBabelHelpers.defineProperty(DataTable, "TableExpandHeader", void 0);
757
761
  _rollupPluginBabelHelpers.defineProperty(DataTable, "TableExpandRow", void 0);
758
762
  _rollupPluginBabelHelpers.defineProperty(DataTable, "TableExpandedRow", void 0);
@@ -774,6 +778,7 @@ DataTable.TableBatchActions = TableBatchActions["default"];
774
778
  DataTable.TableBody = TableBody["default"];
775
779
  DataTable.TableCell = TableCell["default"];
776
780
  DataTable.TableContainer = TableContainer["default"];
781
+ DataTable.TableDecoratorRow = TableDecoratorRow["default"];
777
782
  DataTable.TableExpandHeader = TableExpandHeader["default"];
778
783
  DataTable.TableExpandRow = TableExpandRow["default"];
779
784
  DataTable.TableExpandedRow = TableExpandedRow["default"];
@@ -13,7 +13,7 @@ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelper
13
13
  var React = require('react');
14
14
  var PropTypes = require('prop-types');
15
15
  var cx = require('classnames');
16
- var debounce = require('lodash.debounce');
16
+ var compat = require('es-toolkit/compat');
17
17
  var usePrefix = require('../../internal/usePrefix.js');
18
18
  var TableContext = require('./TableContext.js');
19
19
  var useEvent = require('../../internal/useEvent.js');
@@ -24,7 +24,6 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
24
24
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
25
25
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
26
26
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
27
- var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
28
27
 
29
28
  const isElementWrappingContent = (element, context) => {
30
29
  if (element.children.length > 0) {
@@ -109,7 +108,7 @@ const Table = _ref => {
109
108
  toggleTableHeaderAlignmentClass(false);
110
109
  }
111
110
  }, [experimentalAutoAlign, toggleTableBodyAlignmentClass, toggleTableHeaderAlignmentClass, prefix]);
112
- const debouncedSetTableAlignment = debounce__default["default"](setTableAlignment, 100);
111
+ const debouncedSetTableAlignment = compat.debounce(setTableAlignment, 100);
113
112
  useEvent.useWindowEvent('resize', debouncedSetTableAlignment);
114
113
 
115
114
  // Used to set a tabIndex when the Table is horizontally scrollable
@@ -122,7 +121,7 @@ const Table = _ref => {
122
121
  setIsScrollable(false);
123
122
  }
124
123
  }, []);
125
- const debouncedSetTabIndex = debounce__default["default"](setTabIndex, 100);
124
+ const debouncedSetTabIndex = compat.debounce(setTabIndex, 100);
126
125
  useEvent.useWindowEvent('resize', debouncedSetTabIndex);
127
126
  useIsomorphicEffect["default"](() => {
128
127
  setTabIndex();
@@ -22,7 +22,7 @@ interface TableCellProps extends ReactAttr<HTMLTableCellElement> {
22
22
  /**
23
23
  * Specify if the table cell is in an AI column
24
24
  */
25
- hasSlugHeader?: boolean;
25
+ hasAILabelHeader?: boolean;
26
26
  /**
27
27
  * The id of the matching th node in the table head. Addresses a11y concerns outlined here: https://www.ibm.com/able/guidelines/ci162/info_and_relationships.html and https://www.w3.org/TR/WCAG20-TECHS/H43
28
28
  */
@@ -23,13 +23,13 @@ const TableCell = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref)
23
23
  let {
24
24
  children,
25
25
  className,
26
- hasSlugHeader,
26
+ hasAILabelHeader,
27
27
  colSpan,
28
28
  ...rest
29
29
  } = _ref;
30
30
  const prefix = usePrefix.usePrefix();
31
31
  const tableCellClassNames = cx__default["default"](className, {
32
- [`${prefix}--table-cell--column-slug`]: hasSlugHeader
32
+ [`${prefix}--table-cell--column-slug`]: hasAILabelHeader
33
33
  });
34
34
  return /*#__PURE__*/React__default["default"].createElement("td", _rollupPluginBabelHelpers["extends"]({
35
35
  className: tableCellClassNames ? tableCellClassNames : undefined,
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import PropTypes from 'prop-types';
8
+ import { ReactNode } from 'react';
9
+ export interface TableDecoratorRowProps {
10
+ /**
11
+ * The CSS class names of the cell that wraps the underlying input control
12
+ */
13
+ className?: string;
14
+ /**
15
+ * **Experimental**: Provide a `decorator` component to be rendered inside the `TableDecoratorRow` component
16
+ */
17
+ decorator?: ReactNode;
18
+ }
19
+ declare const TableDecoratorRow: {
20
+ ({ className, decorator, }: TableDecoratorRowProps): import("react/jsx-runtime").JSX.Element;
21
+ displayName: string;
22
+ propTypes: {
23
+ /**
24
+ * The CSS class names of the cell that wraps the underlying input control
25
+ */
26
+ className: PropTypes.Requireable<string>;
27
+ /**
28
+ * **Experimental**: Provide a `decorator` component to be rendered inside the `TableDecoratorRow` component
29
+ */
30
+ decorator: PropTypes.Requireable<PropTypes.ReactNodeLike>;
31
+ };
32
+ };
33
+ export default TableDecoratorRow;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ var PropTypes = require('prop-types');
13
+ var React = require('react');
14
+ var cx = require('classnames');
15
+ var usePrefix = require('../../internal/usePrefix.js');
16
+
17
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
+
19
+ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
20
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
21
+ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
22
+
23
+ const TableDecoratorRow = _ref => {
24
+ let {
25
+ className,
26
+ decorator
27
+ } = _ref;
28
+ const prefix = usePrefix.usePrefix();
29
+ const TableDecoratorRowClasses = cx__default["default"]({
30
+ ...(className && {
31
+ [className]: true
32
+ }),
33
+ [`${prefix}--table-column-decorator`]: true,
34
+ [`${prefix}--table-column-decorator--active`]: decorator
35
+ });
36
+ let normalizedDecorator = /*#__PURE__*/React__default["default"].isValidElement(decorator) ? decorator : null;
37
+ if (normalizedDecorator && normalizedDecorator['type']?.displayName === 'AILabel') {
38
+ normalizedDecorator = /*#__PURE__*/React__default["default"].cloneElement(normalizedDecorator, {
39
+ size: 'mini'
40
+ });
41
+ }
42
+ return /*#__PURE__*/React__default["default"].createElement("td", {
43
+ className: TableDecoratorRowClasses
44
+ }, normalizedDecorator);
45
+ };
46
+ TableDecoratorRow.displayName = 'TableDecoratorRow';
47
+ TableDecoratorRow.propTypes = {
48
+ /**
49
+ * The CSS class names of the cell that wraps the underlying input control
50
+ */
51
+ className: PropTypes__default["default"].string,
52
+ /**
53
+ * **Experimental**: Provide a `decorator` component to be rendered inside the `TableDecoratorRow` component
54
+ */
55
+ decorator: PropTypes__default["default"].node
56
+ };
57
+
58
+ exports["default"] = TableDecoratorRow;