@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
@@ -39,18 +39,18 @@ const TableExpandRow = /*#__PURE__*/React__default["default"].forwardRef((_ref,
39
39
  } = _ref;
40
40
  const prefix = usePrefix.usePrefix();
41
41
 
42
- // We need to put the slug before the expansion arrow and all other table cells after the arrow.
43
- let rowHasSlug;
44
- const slug = React__default["default"].Children.toArray(children).map(child => {
45
- if (child.type?.displayName === 'TableSlugRow') {
46
- if (child.props.slug) {
47
- rowHasSlug = true;
42
+ // We need to put the AILabel and Decorator before the expansion arrow and all other table cells after the arrow.
43
+ let rowHasAILabel;
44
+ const decorator = React__default["default"].Children.toArray(children).map(child => {
45
+ if (child.type?.displayName === 'TableSlugRow' || child.type?.displayName === 'TableDecoratorRow') {
46
+ if (child.props.slug || child.props.decorator?.type.displayName === 'AILabel') {
47
+ rowHasAILabel = true;
48
48
  }
49
49
  return child;
50
50
  }
51
51
  });
52
52
  const normalizedChildren = React__default["default"].Children.toArray(children).map(child => {
53
- if (child.type?.displayName !== 'TableSlugRow') {
53
+ if (child.type?.displayName !== 'TableSlugRow' && child.type?.displayName !== 'TableDecoratorRow') {
54
54
  return child;
55
55
  }
56
56
  });
@@ -58,14 +58,14 @@ const TableExpandRow = /*#__PURE__*/React__default["default"].forwardRef((_ref,
58
58
  [`${prefix}--parent-row`]: true,
59
59
  [`${prefix}--expandable-row`]: isExpanded,
60
60
  [`${prefix}--data-table--selected`]: isSelected,
61
- [`${prefix}--data-table--slug-row`]: rowHasSlug
61
+ [`${prefix}--data-table--slug-row ${prefix}--data-table--ai-label-row`]: rowHasAILabel
62
62
  }, rowClassName);
63
63
  const previousValue = isExpanded ? 'collapsed' : undefined;
64
64
  return /*#__PURE__*/React__default["default"].createElement("tr", _rollupPluginBabelHelpers["extends"]({}, rest, {
65
65
  ref: ref,
66
66
  className: className,
67
67
  "data-parent-row": true
68
- }), slug, /*#__PURE__*/React__default["default"].createElement(TableCell["default"], {
68
+ }), decorator, /*#__PURE__*/React__default["default"].createElement(TableCell["default"], {
69
69
  className: `${prefix}--table-expand`,
70
70
  "data-previous-value": previousValue,
71
71
  headers: expandHeader
@@ -58,9 +58,14 @@ interface TableHeaderProps extends ReactAttr<HTMLTableCellElement & HTMLButtonEl
58
58
  */
59
59
  scope?: string;
60
60
  /**
61
- * **Experimental**: Provide a `Slug` component to be rendered inside the `TableSlugRow` component
61
+ * @deprecated please use decorator instead.
62
+ * Provide a `Slug` component to be rendered inside the `TableSlugRow` component
62
63
  */
63
64
  slug?: ReactNode;
65
+ /**
66
+ * **Experimental**: Provide a `decorator` component to be rendered inside the `TableDecoratorRow` component
67
+ */
68
+ decorator?: ReactNode;
64
69
  /**
65
70
  * Specify which direction we are currently sorting by, should be one of DESC,
66
71
  * NONE, or ASC.
@@ -56,6 +56,7 @@ const TableHeader = /*#__PURE__*/React__default["default"].forwardRef(function T
56
56
  className: headerClassName,
57
57
  children,
58
58
  colSpan,
59
+ decorator,
59
60
  isSortable = false,
60
61
  isSortHeader,
61
62
  onClick,
@@ -69,18 +70,21 @@ const TableHeader = /*#__PURE__*/React__default["default"].forwardRef(function T
69
70
  const prefix = usePrefix.usePrefix();
70
71
  const uniqueId = useId.useId('table-sort');
71
72
 
72
- // Slug is always size `mini`
73
- const slugRef = React.useRef(null);
74
- let normalizedSlug;
75
- if (slug) {
76
- normalizedSlug = /*#__PURE__*/React__default["default"].cloneElement(slug, {
73
+ // AILabel is always size `mini`
74
+ const AILableRef = React.useRef(null);
75
+ let colHasAILabel;
76
+ let normalizedDecorator = /*#__PURE__*/React__default["default"].isValidElement(slug ?? decorator) ? slug ?? decorator : null;
77
+ if (normalizedDecorator && normalizedDecorator['type']?.displayName === 'AILabel') {
78
+ colHasAILabel = true;
79
+ normalizedDecorator = /*#__PURE__*/React__default["default"].cloneElement(normalizedDecorator, {
77
80
  size: 'mini',
78
- ref: slugRef
81
+ ref: AILableRef
79
82
  });
80
83
  }
81
84
  const headerLabelClassNames = cx__default["default"]({
82
85
  [`${prefix}--table-header-label`]: true,
83
- [`${prefix}--table-header-label--slug`]: slug
86
+ [`${prefix}--table-header-label--slug ${prefix}--table-header-label--ai-label`]: colHasAILabel,
87
+ [`${prefix}--table-header-label--decorator`]: decorator
84
88
  });
85
89
  if (!isSortable) {
86
90
  return /*#__PURE__*/React__default["default"].createElement("th", _rollupPluginBabelHelpers["extends"]({}, rest, {
@@ -91,7 +95,9 @@ const TableHeader = /*#__PURE__*/React__default["default"].forwardRef(function T
91
95
  ref: ref
92
96
  }), children ? /*#__PURE__*/React__default["default"].createElement("div", {
93
97
  className: headerLabelClassNames
94
- }, children, normalizedSlug) : null);
98
+ }, children, /*#__PURE__*/React__default["default"].createElement("div", {
99
+ className: `${prefix}--table-header-label--decorator-inner`
100
+ }, normalizedDecorator)) : null);
95
101
  }
96
102
  const className = cx__default["default"](headerClassName, {
97
103
  [`${prefix}--table-sort`]: true,
@@ -106,10 +112,11 @@ const TableHeader = /*#__PURE__*/React__default["default"].forwardRef(function T
106
112
  sortStates: sortStates.sortStates
107
113
  });
108
114
  const headerClasses = cx__default["default"](headerClassName, `${prefix}--table-sort__header`, {
109
- [`${prefix}--table-sort__header--slug`]: slug
115
+ [`${prefix}--table-sort__header--ai-label`]: colHasAILabel,
116
+ [`${prefix}--table-sort__header--decorator`]: decorator
110
117
  });
111
118
  const handleClick = evt => {
112
- if (slug && slugRef.current && slugRef.current.contains(evt.target)) {
119
+ if (colHasAILabel && AILableRef.current && AILableRef.current.contains(evt.target)) {
113
120
  return;
114
121
  } else if (onClick) {
115
122
  return onClick(evt);
@@ -140,7 +147,9 @@ const TableHeader = /*#__PURE__*/React__default["default"].forwardRef(function T
140
147
  }), /*#__PURE__*/React__default["default"].createElement(iconsReact.ArrowsVertical, {
141
148
  size: 20,
142
149
  className: `${prefix}--table-sort__icon-unsorted`
143
- }), normalizedSlug)));
150
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
151
+ className: `${prefix}--table-header-label--decorator-inner`
152
+ }, normalizedDecorator))));
144
153
  });
145
154
  TableHeader.propTypes = {
146
155
  /**
@@ -11,7 +11,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
11
11
 
12
12
  var React = require('react');
13
13
  var PropTypes = require('prop-types');
14
- var omit = require('lodash.omit');
15
14
  var cx = require('classnames');
16
15
  var usePrefix = require('../../internal/usePrefix.js');
17
16
 
@@ -19,17 +18,16 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
19
18
 
20
19
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
21
20
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
22
- var omit__default = /*#__PURE__*/_interopDefaultLegacy(omit);
23
21
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
24
22
 
25
23
  const TableRow = props => {
26
24
  const prefix = usePrefix.usePrefix();
27
- let rowHasSlug;
25
+ let rowHasAILabel;
28
26
  if (props?.children) {
29
27
  React__default["default"].Children.toArray(props.children).map(child => {
30
- if (child.type?.displayName === 'TableSlugRow') {
31
- if (child.props.slug) {
32
- rowHasSlug = true;
28
+ if (child.type?.displayName === 'TableSlugRow' || child.type?.displayName === 'TableDecoratorRow') {
29
+ if (child.props.slug || child.props.decorator?.type.displayName === 'AILabel') {
30
+ rowHasAILabel = true;
33
31
  }
34
32
  }
35
33
  });
@@ -38,12 +36,20 @@ const TableRow = props => {
38
36
  // only useful in `TableExpandRow`
39
37
  const className = cx__default["default"](props.className, {
40
38
  [`${prefix}--data-table--selected`]: props.isSelected,
41
- [`${prefix}--data-table--slug-row`]: rowHasSlug
39
+ [`${prefix}--data-table--slug-row ${prefix}--data-table--ai-label-row`]: rowHasAILabel
42
40
  });
43
- const cleanProps = {
44
- ...omit__default["default"](props, ['ariaLabel', 'aria-label', 'aria-controls', 'onExpand', 'isExpanded', 'isSelected']),
45
- className: className || undefined
46
- };
41
+ const {
42
+ ariaLabel,
43
+ 'aria-label': ariaLabelAlt,
44
+ 'aria-controls': ariaControls,
45
+ onExpand,
46
+ isExpanded,
47
+ isSelected,
48
+ ...cleanProps
49
+ } = props;
50
+ if (className) {
51
+ cleanProps.className = className;
52
+ }
47
53
  return /*#__PURE__*/React__default["default"].createElement("tr", cleanProps);
48
54
  };
49
55
  TableRow.propTypes = {
@@ -13,6 +13,7 @@ var PropTypes = require('prop-types');
13
13
  var React = require('react');
14
14
  var cx = require('classnames');
15
15
  var usePrefix = require('../../internal/usePrefix.js');
16
+ var deprecateComponent = require('../../prop-types/deprecateComponent.js');
16
17
 
17
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
19
 
@@ -25,6 +26,9 @@ const TableSlugRow = _ref => {
25
26
  className,
26
27
  slug
27
28
  } = _ref;
29
+ React.useEffect(() => {
30
+ deprecateComponent["default"]('TableSlugRow', 'The `TableSlugRow` component has been deprecated and will be removed in the next major version. Use the TableDecoratorRow component instead.');
31
+ }, []);
28
32
  const prefix = usePrefix.usePrefix();
29
33
  const TableSlugRowClasses = cx__default["default"]({
30
34
  ...(className && {
@@ -13,6 +13,7 @@ import TableBody from './TableBody';
13
13
  import TableCell from './TableCell';
14
14
  import TableContainer from './TableContainer';
15
15
  import TableExpandHeader from './TableExpandHeader';
16
+ import TableDecoratorRow from './TableDecoratorRow';
16
17
  import TableExpandRow from './TableExpandRow';
17
18
  import TableExpandedRow from './TableExpandedRow';
18
19
  import TableHead from './TableHead';
@@ -27,5 +28,5 @@ import TableToolbarContent from './TableToolbarContent';
27
28
  import TableToolbarSearch from './TableToolbarSearch';
28
29
  import TableToolbarMenu from './TableToolbarMenu';
29
30
  import type { DataTableSortState } from './state/sortStates';
30
- export { DataTable, type DataTableCell, type DataTableHeader, type DataTableProps, type DataTableRenderProps, type DataTableSortState, type DataTableRow, type DataTableSize, Table, TableActionList, TableBatchAction, TableBatchActions, TableBody, TableCell, TableContainer, TableExpandHeader, TableExpandRow, TableExpandedRow, TableHead, TableHeader, type TableHeaderTranslationKey, type TableHeaderTranslationArgs, TableRow, TableSelectAll, TableSelectRow, TableSlugRow, TableToolbar, TableToolbarAction, TableToolbarContent, TableToolbarSearch, TableToolbarMenu, };
31
+ export { DataTable, type DataTableCell, type DataTableHeader, type DataTableProps, type DataTableRenderProps, type DataTableSortState, type DataTableRow, type DataTableSize, Table, TableActionList, TableBatchAction, TableBatchActions, TableBody, TableCell, TableContainer, TableDecoratorRow, TableExpandHeader, TableExpandRow, TableExpandedRow, TableHead, TableHeader, type TableHeaderTranslationKey, type TableHeaderTranslationArgs, TableRow, TableSelectAll, TableSelectRow, TableSlugRow, TableToolbar, TableToolbarAction, TableToolbarContent, TableToolbarSearch, TableToolbarMenu, };
31
32
  export default DataTable;
@@ -18,6 +18,7 @@ var TableBody = require('./TableBody.js');
18
18
  var TableCell = require('./TableCell.js');
19
19
  var TableContainer = require('./TableContainer.js');
20
20
  var TableExpandHeader = require('./TableExpandHeader.js');
21
+ var TableDecoratorRow = require('./TableDecoratorRow.js');
21
22
  var TableExpandRow = require('./TableExpandRow.js');
22
23
  var TableExpandedRow = require('./TableExpandedRow.js');
23
24
  var TableHead = require('./TableHead.js');
@@ -39,6 +40,7 @@ DataTable["default"].TableBatchActions = TableBatchActions["default"];
39
40
  DataTable["default"].TableBody = TableBody["default"];
40
41
  DataTable["default"].TableCell = TableCell["default"];
41
42
  DataTable["default"].TableContainer = TableContainer["default"];
43
+ DataTable["default"].TableDecoratorRow = TableDecoratorRow["default"];
42
44
  DataTable["default"].TableExpandHeader = TableExpandHeader["default"];
43
45
  DataTable["default"].TableExpandRow = TableExpandRow["default"];
44
46
  DataTable["default"].TableExpandedRow = TableExpandedRow["default"];
@@ -64,6 +66,7 @@ exports.TableBody = TableBody["default"];
64
66
  exports.TableCell = TableCell["default"];
65
67
  exports.TableContainer = TableContainer["default"];
66
68
  exports.TableExpandHeader = TableExpandHeader["default"];
69
+ exports.TableDecoratorRow = TableDecoratorRow["default"];
67
70
  exports.TableExpandRow = TableExpandRow["default"];
68
71
  exports.TableExpandedRow = TableExpandedRow["default"];
69
72
  exports.TableHead = TableHead["default"];
@@ -53,7 +53,8 @@ const normalize = function (rows, headers) {
53
53
  headers.forEach((_ref, i) => {
54
54
  let {
55
55
  key,
56
- slug
56
+ slug,
57
+ decorator
57
58
  } = _ref;
58
59
  const id = cells.getCellId(row.id, key);
59
60
  // Initialize the cell info and state values, namely for editing
@@ -64,7 +65,7 @@ const normalize = function (rows, headers) {
64
65
  isEditing: false,
65
66
  isValid: true,
66
67
  errors: null,
67
- hasSlugHeader: !!slug,
68
+ hasAILabelHeader: !!(slug || decorator?.type?.displayName === 'AILabel'),
68
69
  info: {
69
70
  header: key
70
71
  }
@@ -22,7 +22,7 @@ var InlineLoading = require('../InlineLoading/InlineLoading.js');
22
22
  var index$1 = require('../Layer/index.js');
23
23
  var requiredIfGivenPropIsTruthy = require('../../prop-types/requiredIfGivenPropIsTruthy.js');
24
24
  var wrapFocus = require('../../internal/wrapFocus.js');
25
- var debounce = require('lodash.debounce');
25
+ var compat = require('es-toolkit/compat');
26
26
  var useIsomorphicEffect = require('../../internal/useIsomorphicEffect.js');
27
27
  var useId = require('../../internal/useId.js');
28
28
  var usePrefix = require('../../internal/usePrefix.js');
@@ -41,7 +41,6 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
41
41
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
42
42
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
43
43
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
44
- var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
45
44
 
46
45
  const ModalSizes = ['xs', 'sm', 'md', 'lg'];
47
46
  const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal(_ref, ref) {
@@ -233,7 +232,7 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal(_
233
232
  setIsScrollable(contentRef.current.scrollHeight > contentRef.current.clientHeight);
234
233
  }
235
234
  }
236
- const debouncedHandler = debounce__default["default"](handler, 200);
235
+ const debouncedHandler = compat.debounce(handler, 200);
237
236
  window.addEventListener('resize', debouncedHandler);
238
237
  return () => {
239
238
  debouncedHandler.cancel();
@@ -71,6 +71,7 @@ const Popover = /*#__PURE__*/React__default["default"].forwardRef(function Popov
71
71
  highContrast = false,
72
72
  onRequestClose,
73
73
  open,
74
+ alignmentAxisOffset,
74
75
  ...rest
75
76
  } = _ref;
76
77
  const prefix = usePrefix.usePrefix();
@@ -96,7 +97,7 @@ const Popover = /*#__PURE__*/React__default["default"].forwardRef(function Popov
96
97
  // needs to be placed 1px further outside the popover content. To do so,
97
98
  // we look to see if any of the children has a className containing "slug"
98
99
  const initialCaretHeight = React__default["default"].Children.toArray(children).some(x => {
99
- return x?.props?.className?.includes('slug');
100
+ return x?.props?.className?.includes('slug') || x?.props?.className?.includes('ai-label');
100
101
  }) ? 7 : 6;
101
102
  // These defaults match the defaults defined in packages/styles/scss/components/popover/_popover.scss
102
103
  const popoverDimensions = React.useRef({
@@ -138,7 +139,10 @@ const Popover = /*#__PURE__*/React__default["default"].forwardRef(function Popov
138
139
  // https://floating-ui.com/docs/misc#clipping
139
140
  strategy: 'fixed',
140
141
  // Middleware order matters, arrow should be last
141
- middleware: [react.offset(!isTabTip ? popoverDimensions?.current?.offset : 0), autoAlign && react.flip({
142
+ middleware: [react.offset(!isTabTip ? {
143
+ alignmentAxis: alignmentAxisOffset,
144
+ mainAxis: popoverDimensions?.current?.offset
145
+ } : 0), autoAlign && react.flip({
142
146
  fallbackPlacements: align.includes('bottom') ? ['bottom', 'bottom-start', 'bottom-end', 'right', 'right-start', 'right-end', 'left', 'left-start', 'left-end', 'top', 'top-start', 'top-end'] : ['top', 'top-start', 'top-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end'],
143
147
  fallbackStrategy: 'initialPlacement',
144
148
  fallbackAxisSideDirection: 'start',
@@ -131,7 +131,7 @@ const Search = /*#__PURE__*/React__default["default"].forwardRef(function Search
131
131
  className: searchClasses
132
132
  }, /*#__PURE__*/React__default["default"].createElement("div", {
133
133
  "aria-label": onExpand ? 'button' : undefined,
134
- "aria-labelledby": onExpand ? uniqueId : undefined,
134
+ "aria-labelledby": onExpand ? searchId : undefined,
135
135
  role: onExpand ? 'button' : undefined,
136
136
  className: `${prefix}--search-magnifier`,
137
137
  onClick: onExpand,
@@ -7,6 +7,14 @@
7
7
  import PropTypes from 'prop-types';
8
8
  import { HTMLAttributes } from 'react';
9
9
  export interface SliderSkeletonProps extends HTMLAttributes<HTMLDivElement> {
10
+ /**
11
+ * The `ariaLabel` for the handle icon.
12
+ */
13
+ ariaLabel?: string;
14
+ /**
15
+ * The `ariaLabel` for the upper bound slider handle when there are two handles.
16
+ */
17
+ unstable_ariaLabelHandleUpper?: string;
10
18
  /**
11
19
  * Specify an optional className to add to the form item wrapper.
12
20
  */
@@ -21,8 +29,16 @@ export interface SliderSkeletonProps extends HTMLAttributes<HTMLDivElement> {
21
29
  twoHandles?: boolean;
22
30
  }
23
31
  declare const SliderSkeleton: {
24
- ({ hideLabel, className, twoHandles, ...rest }: SliderSkeletonProps): import("react/jsx-runtime").JSX.Element;
32
+ ({ ariaLabel, unstable_ariaLabelHandleUpper: ariaLabelHandleUpper, hideLabel, className, twoHandles, ...rest }: SliderSkeletonProps): import("react/jsx-runtime").JSX.Element;
25
33
  propTypes: {
34
+ /**
35
+ * The `ariaLabel` for the handle icon.
36
+ */
37
+ ariaLabel: PropTypes.Requireable<string>;
38
+ /**
39
+ * The `ariaLabel` for the upper bound slider handle when there are two handles.
40
+ */
41
+ unstable_ariaLabelHandleUpper: PropTypes.Requireable<string>;
26
42
  /**
27
43
  * Specify an optional className to add to the form item wrapper.
28
44
  */
@@ -23,9 +23,10 @@ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
23
23
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
24
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
25
25
 
26
- var _LowerHandle, _UpperHandle, _UpperHandle2, _LowerHandle2;
27
26
  const SliderSkeleton = _ref => {
28
27
  let {
28
+ ariaLabel = 'slider handle',
29
+ unstable_ariaLabelHandleUpper: ariaLabelHandleUpper = 'upper slider handle',
29
30
  hideLabel,
30
31
  className,
31
32
  twoHandles,
@@ -70,15 +71,31 @@ const SliderSkeleton = _ref => {
70
71
  className: lowerThumbWrapperClasses
71
72
  }, /*#__PURE__*/React__default["default"].createElement("div", {
72
73
  className: lowerThumbClasses
73
- }, twoHandles && !isRtl ? _LowerHandle || (_LowerHandle = /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandle, null)) : twoHandles && isRtl ? _UpperHandle || (_UpperHandle = /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandle, null)) : undefined)), twoHandles ? /*#__PURE__*/React__default["default"].createElement("div", {
74
+ }, twoHandles && !isRtl ? /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandle, {
75
+ "aria-label": ariaLabel
76
+ }) : twoHandles && isRtl ? /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandle, {
77
+ "aria-label": ariaLabelHandleUpper
78
+ }) : undefined)), twoHandles ? /*#__PURE__*/React__default["default"].createElement("div", {
74
79
  className: upperThumbWrapperClasses
75
80
  }, /*#__PURE__*/React__default["default"].createElement("div", {
76
81
  className: upperThumbClasses
77
- }, twoHandles && !isRtl ? _UpperHandle2 || (_UpperHandle2 = /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandle, null)) : twoHandles && isRtl ? _LowerHandle2 || (_LowerHandle2 = /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandle, null)) : undefined)) : undefined), /*#__PURE__*/React__default["default"].createElement("span", {
82
+ }, twoHandles && !isRtl ? /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandle, {
83
+ "aria-label": ariaLabelHandleUpper
84
+ }) : twoHandles && isRtl ? /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandle, {
85
+ "aria-label": ariaLabel
86
+ }) : undefined)) : undefined), /*#__PURE__*/React__default["default"].createElement("span", {
78
87
  className: `${prefix}--slider__range-label`
79
88
  })));
80
89
  };
81
90
  SliderSkeleton.propTypes = {
91
+ /**
92
+ * The `ariaLabel` for the handle icon.
93
+ */
94
+ ariaLabel: PropTypes__default["default"].string,
95
+ /**
96
+ * The `ariaLabel` for the upper bound slider handle when there are two handles.
97
+ */
98
+ unstable_ariaLabelHandleUpper: PropTypes__default["default"].string,
82
99
  /**
83
100
  * Specify an optional className to add to the form item wrapper.
84
101
  */
@@ -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.
@@ -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 throttle = require('lodash.throttle');
16
+ var compat = require('es-toolkit/compat');
17
17
  var keys = require('../../internal/keyboard/keys.js');
18
18
  var usePrefix = require('../../internal/usePrefix.js');
19
19
  var deprecate = require('../../prop-types/deprecate.js');
@@ -31,9 +31,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
31
31
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
32
32
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
33
33
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
34
- var throttle__default = /*#__PURE__*/_interopDefaultLegacy(throttle);
35
34
 
36
- var _LowerHandle, _LowerHandleFocus, _UpperHandle, _UpperHandleFocus, _UpperHandle2, _UpperHandleFocus2, _LowerHandle2, _LowerHandleFocus2;
37
35
  const ThumbWrapper = _ref => {
38
36
  let {
39
37
  hasTooltip = false,
@@ -289,7 +287,7 @@ class Slider extends React.PureComponent {
289
287
  * Throttles calls to `this._onDrag` by limiting events to being processed at
290
288
  * most once every `EVENT_THROTTLE` milliseconds.
291
289
  */
292
- _rollupPluginBabelHelpers.defineProperty(this, "onDrag", throttle__default["default"](this._onDrag, EVENT_THROTTLE, {
290
+ _rollupPluginBabelHelpers.defineProperty(this, "onDrag", compat.throttle(this._onDrag, EVENT_THROTTLE, {
293
291
  leading: true,
294
292
  trailing: false
295
293
  }));
@@ -958,6 +956,7 @@ class Slider extends React.PureComponent {
958
956
  return Object.entries(derivedState).length > 0 ? derivedState : null;
959
957
  }
960
958
  render() {
959
+ var _LowerHandle, _LowerHandleFocus, _UpperHandle, _UpperHandleFocus, _UpperHandle2, _UpperHandleFocus2, _LowerHandle2, _LowerHandleFocus2;
961
960
  const {
962
961
  ariaLabelInput,
963
962
  unstable_ariaLabelInputUpper: ariaLabelInputUpper,
@@ -1125,7 +1124,15 @@ class Slider extends React.PureComponent {
1125
1124
  onFocus: () => this.setState({
1126
1125
  activeHandle: HandlePosition.LOWER
1127
1126
  })
1128
- }, twoHandles && !isRtl ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, _LowerHandle || (_LowerHandle = /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandle, null)), _LowerHandleFocus || (_LowerHandleFocus = /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandleFocus, null))) : twoHandles && isRtl ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, _UpperHandle || (_UpperHandle = /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandle, null)), _UpperHandleFocus || (_UpperHandleFocus = /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandleFocus, null))) : undefined)), twoHandles ? /*#__PURE__*/React__default["default"].createElement(ThumbWrapper, _rollupPluginBabelHelpers["extends"]({
1127
+ }, twoHandles && !isRtl ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, _LowerHandle || (_LowerHandle = /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandle, {
1128
+ "aria-label": ariaLabelInput
1129
+ })), _LowerHandleFocus || (_LowerHandleFocus = /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandleFocus, {
1130
+ "aria-label": ariaLabelInput
1131
+ }))) : twoHandles && isRtl ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, _UpperHandle || (_UpperHandle = /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandle, {
1132
+ "aria-label": ariaLabelInputUpper
1133
+ })), _UpperHandleFocus || (_UpperHandleFocus = /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandleFocus, {
1134
+ "aria-label": ariaLabelInputUpper
1135
+ }))) : undefined)), twoHandles ? /*#__PURE__*/React__default["default"].createElement(ThumbWrapper, _rollupPluginBabelHelpers["extends"]({
1129
1136
  hasTooltip: hideTextInput,
1130
1137
  className: upperThumbWrapperClasses,
1131
1138
  label: `${formatLabel(valueUpper || 0, '')}`,
@@ -1142,7 +1149,15 @@ class Slider extends React.PureComponent {
1142
1149
  onFocus: () => this.setState({
1143
1150
  activeHandle: HandlePosition.UPPER
1144
1151
  })
1145
- }, twoHandles && !isRtl ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, _UpperHandle2 || (_UpperHandle2 = /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandle, null)), _UpperHandleFocus2 || (_UpperHandleFocus2 = /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandleFocus, null))) : twoHandles && isRtl ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, _LowerHandle2 || (_LowerHandle2 = /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandle, null)), _LowerHandleFocus2 || (_LowerHandleFocus2 = /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandleFocus, null))) : undefined)) : null, /*#__PURE__*/React__default["default"].createElement("div", {
1152
+ }, twoHandles && !isRtl ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, _UpperHandle2 || (_UpperHandle2 = /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandle, {
1153
+ "aria-label": ariaLabelInputUpper
1154
+ })), _UpperHandleFocus2 || (_UpperHandleFocus2 = /*#__PURE__*/React__default["default"].createElement(SliderHandles.UpperHandleFocus, {
1155
+ "aria-label": ariaLabelInputUpper
1156
+ }))) : twoHandles && isRtl ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, _LowerHandle2 || (_LowerHandle2 = /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandle, {
1157
+ "aria-label": ariaLabelInput
1158
+ })), _LowerHandleFocus2 || (_LowerHandleFocus2 = /*#__PURE__*/React__default["default"].createElement(SliderHandles.LowerHandleFocus, {
1159
+ "aria-label": ariaLabelInput
1160
+ }))) : undefined)) : null, /*#__PURE__*/React__default["default"].createElement("div", {
1146
1161
  className: `${prefix}--slider__track`,
1147
1162
  ref: node => {
1148
1163
  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;
@@ -9,6 +9,7 @@
9
9
 
10
10
  Object.defineProperty(exports, '__esModule', { value: true });
11
11
 
12
+ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
12
13
  var usePrefix = require('../../internal/usePrefix.js');
13
14
  var React = require('react');
14
15
 
@@ -17,21 +18,21 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
17
18
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
18
19
 
19
20
  var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14;
20
- const LowerHandle = () => /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default["default"].createElement("svg", {
21
+ const LowerHandle = props => /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default["default"].createElement("svg", _rollupPluginBabelHelpers["extends"]({
21
22
  xmlns: "http://www.w3.org/2000/svg",
22
23
  viewBox: "0 0 16 24",
23
24
  className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--lower`
24
- }, _path || (_path = /*#__PURE__*/React__default["default"].createElement("path", {
25
+ }, props), _path || (_path = /*#__PURE__*/React__default["default"].createElement("path", {
25
26
  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"
26
27
  })), _path2 || (_path2 = /*#__PURE__*/React__default["default"].createElement("path", {
27
28
  fill: "none",
28
29
  d: "M-4 0h24v24H-4z"
29
30
  }))));
30
- const LowerHandleFocus = () => /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default["default"].createElement("svg", {
31
+ const LowerHandleFocus = props => /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default["default"].createElement("svg", _rollupPluginBabelHelpers["extends"]({
31
32
  xmlns: "http://www.w3.org/2000/svg",
32
33
  viewBox: "0 0 16 24",
33
34
  className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--lower ${prefix}--slider__thumb-icon--focus`
34
- }, _path3 || (_path3 = /*#__PURE__*/React__default["default"].createElement("path", {
35
+ }, props), _path3 || (_path3 = /*#__PURE__*/React__default["default"].createElement("path", {
35
36
  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"
36
37
  })), _path4 || (_path4 = /*#__PURE__*/React__default["default"].createElement("path", {
37
38
  fill: "none",
@@ -43,21 +44,21 @@ const LowerHandleFocus = () => /*#__PURE__*/React__default["default"].createElem
43
44
  })), _path7 || (_path7 = /*#__PURE__*/React__default["default"].createElement("path", {
44
45
  d: "M0 .92V0h16v.92zM0 24v-.92h16V24z"
45
46
  }))));
46
- const UpperHandle = () => /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default["default"].createElement("svg", {
47
+ const UpperHandle = props => /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default["default"].createElement("svg", _rollupPluginBabelHelpers["extends"]({
47
48
  xmlns: "http://www.w3.org/2000/svg",
48
49
  viewBox: "0 0 16 24",
49
50
  className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--upper`
50
- }, _path8 || (_path8 = /*#__PURE__*/React__default["default"].createElement("path", {
51
+ }, props), _path8 || (_path8 = /*#__PURE__*/React__default["default"].createElement("path", {
51
52
  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"
52
53
  })), _path9 || (_path9 = /*#__PURE__*/React__default["default"].createElement("path", {
53
54
  fill: "none",
54
55
  d: "M-4 0h24v24H-4z"
55
56
  }))));
56
- const UpperHandleFocus = () => /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default["default"].createElement("svg", {
57
+ const UpperHandleFocus = props => /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => /*#__PURE__*/React__default["default"].createElement("svg", _rollupPluginBabelHelpers["extends"]({
57
58
  xmlns: "http://www.w3.org/2000/svg",
58
59
  viewBox: "0 0 16 24",
59
60
  className: `${prefix}--slider__thumb-icon ${prefix}--slider__thumb-icon--upper ${prefix}--slider__thumb-icon--focus`
60
- }, _path10 || (_path10 = /*#__PURE__*/React__default["default"].createElement("path", {
61
+ }, props), _path10 || (_path10 = /*#__PURE__*/React__default["default"].createElement("path", {
61
62
  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"
62
63
  })), _path11 || (_path11 = /*#__PURE__*/React__default["default"].createElement("path", {
63
64
  fill: "none",
@@ -62,7 +62,9 @@ const Stack = /*#__PURE__*/React__default["default"].forwardRef(function Stack(p
62
62
  [`${prefix}--stack-${orientation}`]: true,
63
63
  [`${prefix}--stack-scale-${gap}`]: typeof gap === 'number'
64
64
  });
65
- const style = {};
65
+ const style = {
66
+ ...rest.style
67
+ };
66
68
  if (typeof gap === 'string') {
67
69
  style[`--${prefix}-stack-gap`] = gap;
68
70
  }
@@ -13,7 +13,7 @@ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelper
13
13
  var iconsReact = require('@carbon/icons-react');
14
14
  var layout = require('@carbon/layout');
15
15
  var cx = require('classnames');
16
- var debounce = require('lodash.debounce');
16
+ var compat = require('es-toolkit/compat');
17
17
  var PropTypes = require('prop-types');
18
18
  var React = require('react');
19
19
  require('../Grid/FlexGrid.js');
@@ -44,7 +44,6 @@ var keys = require('../../internal/keyboard/keys.js');
44
44
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
45
45
 
46
46
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
47
- var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
48
47
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
49
48
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
50
49
 
@@ -326,7 +325,7 @@ function TabList(_ref4) {
326
325
  });
327
326
  const tabs = React.useRef([]);
328
327
  const debouncedOnScroll = React.useCallback(() => {
329
- return debounce__default["default"](event => {
328
+ return compat.debounce(event => {
330
329
  setScrollLeft(event.target.scrollLeft);
331
330
  }, scrollDebounceWait);
332
331
  }, [scrollDebounceWait]);
@@ -432,7 +431,7 @@ function TabList(_ref4) {
432
431
  setIsScrollable(ref.current.scrollWidth > ref.current.clientWidth + 1);
433
432
  }
434
433
  }
435
- const debouncedHandler = debounce__default["default"](handler, 200);
434
+ const debouncedHandler = compat.debounce(handler, 200);
436
435
  window.addEventListener('resize', debouncedHandler);
437
436
  return () => {
438
437
  debouncedHandler.cancel();