@carbon/react 1.102.0-rc.0 → 1.103.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +976 -976
  2. package/es/components/Breadcrumb/BreadcrumbItem.js +1 -1
  3. package/es/components/Button/Button.Skeleton.js +2 -1
  4. package/es/components/Button/Button.d.ts +4 -4
  5. package/es/components/Button/Button.js +4 -4
  6. package/es/components/Button/index.js +1 -1
  7. package/es/components/ButtonSet/ButtonSet.js +1 -1
  8. package/es/components/Checkbox/index.js +1 -1
  9. package/es/components/CheckboxGroup/CheckboxGroup.d.ts +1 -1
  10. package/es/components/CheckboxGroup/CheckboxGroup.js +2 -2
  11. package/es/components/ComboBox/ComboBox.js +3 -4
  12. package/es/components/ComposedModal/ComposedModal.js +0 -3
  13. package/es/components/ComposedModal/ComposedModalPresence.d.ts +9 -1
  14. package/es/components/ComposedModal/ComposedModalPresence.js +14 -1
  15. package/es/components/ComposedModal/index.d.ts +1 -1
  16. package/es/components/ContainedList/index.js +1 -1
  17. package/es/components/ContentSwitcher/ContentSwitcher.js +3 -2
  18. package/es/components/DataTable/TableExpandRow.js +2 -2
  19. package/es/components/DataTable/TableHeader.js +1 -1
  20. package/es/components/DataTable/TableRow.js +1 -1
  21. package/es/components/DataTable/TableToolbarMenu.js +1 -1
  22. package/es/components/DataTable/tools/normalize.js +2 -1
  23. package/es/components/DatePicker/DatePicker.Skeleton.d.ts +8 -5
  24. package/es/components/DatePicker/DatePicker.Skeleton.js +2 -2
  25. package/es/components/DatePicker/DatePicker.js +3 -2
  26. package/es/components/DatePicker/index.js +1 -1
  27. package/es/components/DatePickerInput/DatePickerInput.js +1 -1
  28. package/es/components/Dialog/Dialog.js +1 -1
  29. package/es/components/Dropdown/Dropdown.js +1 -3
  30. package/es/components/Dropdown/index.js +1 -1
  31. package/es/components/ExpandableSearch/ExpandableSearch.js +1 -1
  32. package/es/components/FeatureFlags/index.d.ts +8 -18
  33. package/es/components/FeatureFlags/index.js +23 -103
  34. package/es/components/FileUploader/FileUploader.Skeleton.js +1 -1
  35. package/es/components/FileUploader/FileUploaderButton.d.ts +1 -1
  36. package/es/components/FileUploader/FileUploaderButton.js +3 -7
  37. package/es/components/Icon/Icon.Skeleton.js +1 -1
  38. package/es/components/IconIndicator/index.js +1 -1
  39. package/es/components/Menu/MenuItem.js +1 -1
  40. package/es/components/Modal/ModalPresence.d.ts +9 -1
  41. package/es/components/Modal/ModalPresence.js +14 -1
  42. package/es/components/Modal/index.d.ts +2 -2
  43. package/es/components/MultiSelect/MultiSelect.js +9 -10
  44. package/es/components/Notification/Notification.js +1 -1
  45. package/es/components/NumberInput/NumberInput.js +15 -13
  46. package/es/components/OverflowMenu/OverflowMenu.d.ts +1 -1
  47. package/es/components/OverflowMenu/OverflowMenu.js +3 -5
  48. package/es/components/OverflowMenuV2/index.js +1 -1
  49. package/es/components/PageHeader/PageHeader.js +2 -23
  50. package/es/components/Pagination/Pagination.Skeleton.js +1 -1
  51. package/es/components/Pagination/Pagination.d.ts +4 -0
  52. package/es/components/Pagination/Pagination.js +6 -1
  53. package/es/components/Pagination/experimental/Pagination.js +12 -1
  54. package/es/components/Popover/index.js +1 -1
  55. package/es/components/ProgressIndicator/ProgressIndicator.js +3 -3
  56. package/es/components/RadioButton/RadioButton.Skeleton.js +1 -1
  57. package/es/components/Search/index.js +1 -1
  58. package/es/components/Select/index.js +1 -1
  59. package/es/components/ShapeIndicator/index.js +1 -1
  60. package/es/components/Slider/Slider.d.ts +1 -1
  61. package/es/components/Slider/Slider.js +230 -255
  62. package/es/components/Slider/SliderHandles.js +65 -53
  63. package/es/components/Switch/IconSwitch.js +1 -1
  64. package/es/components/Tabs/Tabs.js +2 -6
  65. package/es/components/Tag/Tag.Skeleton.js +1 -1
  66. package/es/components/TextArea/TextArea.js +1 -1
  67. package/es/components/TextArea/index.js +1 -1
  68. package/es/components/TextInput/index.js +1 -1
  69. package/es/components/Tile/Tile.js +1 -1
  70. package/es/components/TileGroup/TileGroup.d.ts +1 -1
  71. package/es/components/TileGroup/TileGroup.js +2 -1
  72. package/es/components/Toggle/Toggle.Skeleton.js +1 -1
  73. package/es/components/Toggletip/index.js +1 -1
  74. package/es/components/UIShell/HeaderMenu.js +1 -1
  75. package/es/components/UIShell/HeaderPanel.js +3 -2
  76. package/es/components/UIShell/SideNav.d.ts +1 -4
  77. package/es/components/UIShell/SideNav.js +10 -25
  78. package/es/components/UIShell/SideNavContext.d.ts +17 -0
  79. package/es/components/UIShell/SideNavContext.js +24 -0
  80. package/es/components/UIShell/SideNavItems.d.ts +1 -1
  81. package/es/components/UIShell/SideNavItems.js +12 -16
  82. package/es/components/UIShell/SideNavLink.js +8 -4
  83. package/es/components/UIShell/SideNavMenu.js +7 -5
  84. package/es/components/UIShell/Switcher.js +5 -4
  85. package/es/index.js +30 -30
  86. package/es/internal/useNoInteractiveChildren.js +25 -30
  87. package/es/internal/useOverflowItems.d.ts +1 -5
  88. package/es/internal/useOverflowItems.js +6 -27
  89. package/es/internal/usePresence.d.ts +1 -1
  90. package/es/internal/usePresence.js +14 -17
  91. package/lib/components/Button/Button.Skeleton.js +2 -1
  92. package/lib/components/Button/Button.d.ts +4 -4
  93. package/lib/components/Button/Button.js +4 -4
  94. package/lib/components/Button/index.js +1 -1
  95. package/lib/components/ButtonSet/ButtonSet.js +1 -1
  96. package/lib/components/Checkbox/index.js +1 -1
  97. package/lib/components/CheckboxGroup/CheckboxGroup.d.ts +1 -1
  98. package/lib/components/CheckboxGroup/CheckboxGroup.js +1 -1
  99. package/lib/components/ComboBox/ComboBox.js +3 -4
  100. package/lib/components/ComposedModal/ComposedModal.js +0 -3
  101. package/lib/components/ComposedModal/ComposedModalPresence.d.ts +9 -1
  102. package/lib/components/ComposedModal/ComposedModalPresence.js +14 -0
  103. package/lib/components/ComposedModal/index.d.ts +1 -1
  104. package/lib/components/ContainedList/index.js +0 -3
  105. package/lib/components/ContentSwitcher/ContentSwitcher.js +2 -1
  106. package/lib/components/DataTable/TableExpandRow.js +1 -1
  107. package/lib/components/DataTable/TableToolbarMenu.js +1 -1
  108. package/lib/components/DataTable/tools/normalize.js +2 -1
  109. package/lib/components/DatePicker/DatePicker.Skeleton.d.ts +8 -5
  110. package/lib/components/DatePicker/DatePicker.Skeleton.js +2 -2
  111. package/lib/components/DatePicker/DatePicker.js +3 -2
  112. package/lib/components/DatePicker/index.js +1 -1
  113. package/lib/components/Dropdown/Dropdown.js +1 -3
  114. package/lib/components/Dropdown/index.js +1 -1
  115. package/lib/components/FeatureFlags/index.d.ts +8 -18
  116. package/lib/components/FeatureFlags/index.js +21 -102
  117. package/lib/components/FileUploader/FileUploader.Skeleton.js +1 -1
  118. package/lib/components/FileUploader/FileUploaderButton.d.ts +1 -1
  119. package/lib/components/FileUploader/FileUploaderButton.js +2 -6
  120. package/lib/components/Icon/Icon.Skeleton.js +0 -3
  121. package/lib/components/IconIndicator/index.js +0 -3
  122. package/lib/components/Modal/ModalPresence.d.ts +9 -1
  123. package/lib/components/Modal/ModalPresence.js +14 -0
  124. package/lib/components/Modal/index.d.ts +2 -2
  125. package/lib/components/MultiSelect/MultiSelect.js +8 -9
  126. package/lib/components/NumberInput/NumberInput.js +14 -12
  127. package/lib/components/OverflowMenu/OverflowMenu.d.ts +1 -1
  128. package/lib/components/OverflowMenu/OverflowMenu.js +2 -7
  129. package/lib/components/OverflowMenuV2/index.js +1 -1
  130. package/lib/components/PageHeader/PageHeader.js +2 -23
  131. package/lib/components/Pagination/Pagination.Skeleton.js +0 -3
  132. package/lib/components/Pagination/Pagination.d.ts +4 -0
  133. package/lib/components/Pagination/Pagination.js +6 -1
  134. package/lib/components/Pagination/experimental/Pagination.js +12 -1
  135. package/lib/components/ProgressIndicator/ProgressIndicator.js +3 -3
  136. package/lib/components/RadioButton/RadioButton.Skeleton.js +0 -3
  137. package/lib/components/Search/index.js +1 -1
  138. package/lib/components/Select/index.js +1 -1
  139. package/lib/components/ShapeIndicator/index.js +0 -3
  140. package/lib/components/Slider/Slider.d.ts +1 -1
  141. package/lib/components/Slider/Slider.js +229 -254
  142. package/lib/components/Slider/SliderHandles.js +64 -52
  143. package/lib/components/Tabs/Tabs.js +1 -5
  144. package/lib/components/Tag/Tag.Skeleton.js +0 -3
  145. package/lib/components/TextArea/index.js +1 -1
  146. package/lib/components/TextInput/index.js +1 -1
  147. package/lib/components/TileGroup/TileGroup.d.ts +1 -1
  148. package/lib/components/TileGroup/TileGroup.js +2 -1
  149. package/lib/components/Toggle/Toggle.Skeleton.js +0 -3
  150. package/lib/components/Toggletip/index.js +0 -3
  151. package/lib/components/UIShell/HeaderPanel.js +2 -1
  152. package/lib/components/UIShell/SideNav.d.ts +1 -4
  153. package/lib/components/UIShell/SideNav.js +8 -24
  154. package/lib/components/UIShell/SideNavContext.d.ts +17 -0
  155. package/lib/components/UIShell/SideNavContext.js +27 -0
  156. package/lib/components/UIShell/SideNavItems.d.ts +1 -1
  157. package/lib/components/UIShell/SideNavItems.js +11 -15
  158. package/lib/components/UIShell/SideNavLink.js +7 -3
  159. package/lib/components/UIShell/SideNavMenu.js +8 -6
  160. package/lib/components/UIShell/Switcher.js +4 -3
  161. package/lib/index.js +102 -100
  162. package/lib/internal/useNoInteractiveChildren.js +25 -30
  163. package/lib/internal/useOverflowItems.d.ts +1 -5
  164. package/lib/internal/useOverflowItems.js +6 -27
  165. package/lib/internal/usePresence.d.ts +1 -1
  166. package/lib/internal/usePresence.js +13 -16
  167. package/package.json +8 -8
  168. package/telemetry.yml +2 -1
  169. package/es/components/UIShell/_utils.d.ts +0 -7
  170. package/es/components/UIShell/_utils.js +0 -10
  171. package/lib/components/UIShell/_utils.d.ts +0 -7
  172. package/lib/components/UIShell/_utils.js +0 -12
@@ -7,8 +7,6 @@
7
7
 
8
8
  'use strict';
9
9
 
10
- Object.defineProperty(exports, '__esModule', { value: true });
11
-
12
10
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
11
  var React = require('react');
14
12
  var iconsReact = require('@carbon/icons-react');
@@ -70,10 +68,8 @@ const getMenuOffset = (menuBody, direction, trigger, flip) => {
70
68
  if (process.env.NODE_ENV !== 'production') {
71
69
  !(triggerButtonPositionProp && triggerButtonPositionFactor) ? process.env.NODE_ENV !== "production" ? invariant(false, '[OverflowMenu] wrong floating menu direction: `%s`', direction) : invariant(false) : void 0;
72
70
  }
73
- // eslint-disable-next-line @typescript-eslint/no-unused-vars -- https://github.com/carbon-design-system/carbon/issues/20452
74
71
  const {
75
- offsetWidth: menuWidth,
76
- offsetHeight: menuHeight
72
+ offsetWidth: menuWidth
77
73
  } = menuBody;
78
74
  switch (triggerButtonPositionProp) {
79
75
  case 'top':
@@ -427,7 +423,7 @@ OverflowMenu.propTypes = {
427
423
  left: PropTypes.number.isRequired
428
424
  }), PropTypes.func]),
429
425
  /**
430
- * The adjustment in position applied to the floating menu.
426
+ * The adjustment in position applied to the floating menu when flipped.
431
427
  */
432
428
  menuOffsetFlip: PropTypes.oneOfType([PropTypes.shape({
433
429
  top: PropTypes.number.isRequired,
@@ -477,5 +473,4 @@ OverflowMenu.propTypes = {
477
473
  };
478
474
 
479
475
  exports.OverflowMenu = OverflowMenu;
480
- exports.default = OverflowMenu;
481
476
  exports.getMenuOffset = getMenuOffset;
@@ -20,7 +20,7 @@ function OverflowMenuV2(props) {
20
20
  }
21
21
  return /*#__PURE__*/React.createElement(index.FeatureFlags, {
22
22
  enableV12Overflowmenu: true
23
- }, /*#__PURE__*/React.createElement(index$1.default, props));
23
+ }, /*#__PURE__*/React.createElement(index$1.OverflowMenu, props));
24
24
  }
25
25
 
26
26
  exports.OverflowMenuV2 = OverflowMenuV2;
@@ -374,37 +374,19 @@ const PageHeaderTabBar = /*#__PURE__*/React.forwardRef(({
374
374
  const classNames = cx({
375
375
  [`${prefix}--page-header__tab-bar`]: true
376
376
  }, className);
377
- // Early return if no tags are provided
378
- if (!tags.length) {
379
- return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers.extends({
380
- className: classNames,
381
- ref: ref
382
- }, other), /*#__PURE__*/React.createElement(Grid.Grid, null, /*#__PURE__*/React.createElement(Column.default, {
383
- lg: 16,
384
- md: 8,
385
- sm: 4
386
- }, children)));
387
- }
388
- // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
389
377
  const [openPopover, setOpenPopover] = React.useState(false);
390
378
  const tagSize = tags[0]?.size || 'md';
391
- // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
392
379
  const instanceId = useId.useId('PageHeaderTabBar');
393
- // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
394
380
  const tagsWithIds = React.useMemo(() => {
395
381
  return tags.map((tag, index) => ({
396
382
  ...tag,
397
383
  id: tag.id || `tag-${index}-${instanceId}`
398
384
  }));
399
- // eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20452
400
- }, [tags]);
401
-
402
- // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
385
+ }, [instanceId, tags]);
403
386
  const tagsContainerRef = React.useRef(null);
404
- // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
405
387
  const offsetRef = React.useRef(null);
388
+
406
389
  // To close popover when window resizes
407
- // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
408
390
  React.useEffect(() => {
409
391
  const handleResize = () => {
410
392
  // Close the popover when window resizes to prevent unwanted opens
@@ -421,14 +403,11 @@ const PageHeaderTabBar = /*#__PURE__*/React.forwardRef(({
421
403
  visibleItems = [],
422
404
  hiddenItems = [],
423
405
  itemRefHandler = () => {}
424
- // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
425
406
  } = useOverflowItems.default(tagsWithIds, tagsContainerRef, offsetRef) || {
426
407
  visibleItems: [],
427
408
  hiddenItems: [],
428
409
  itemRefHandler: () => {}
429
410
  };
430
-
431
- // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
432
411
  const handleOverflowClick = React.useCallback(event => {
433
412
  event.stopPropagation();
434
413
  setOpenPopover(prev => !prev);
@@ -7,8 +7,6 @@
7
7
 
8
8
  'use strict';
9
9
 
10
- Object.defineProperty(exports, '__esModule', { value: true });
11
-
12
10
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
11
  var PropTypes = require('prop-types');
14
12
  var React = require('react');
@@ -46,4 +44,3 @@ PaginationSkeleton.propTypes = {
46
44
  };
47
45
 
48
46
  exports.PaginationSkeleton = PaginationSkeleton;
49
- exports.default = PaginationSkeleton;
@@ -69,6 +69,10 @@ export interface PaginationProps extends Omit<React.HTMLAttributes<HTMLDivElemen
69
69
  * A function returning PII showing where the current page is.
70
70
  */
71
71
  pageRangeText?: (current: number, total: number) => string;
72
+ /**
73
+ * A function returning the label for the page select.
74
+ */
75
+ pageSelectLabelText?: (total: number) => string;
72
76
  /**
73
77
  * The number dictating how many items a page contains.
74
78
  */
@@ -69,6 +69,7 @@ const Pagination = /*#__PURE__*/React.forwardRef(({
69
69
  // eslint-disable-next-line @typescript-eslint/no-unused-vars -- https://github.com/carbon-design-system/carbon/issues/20452
70
70
  pageNumberText: _pageNumberText = 'Page Number',
71
71
  pageRangeText = (_current, total) => `of ${total} ${total === 1 ? 'page' : 'pages'}`,
72
+ pageSelectLabelText = total => `Page of ${total} ${total === 1 ? 'page' : 'pages'}`,
72
73
  page: controlledPage = 1,
73
74
  pageInputDisabled,
74
75
  pageSize: controlledPageSize,
@@ -249,7 +250,7 @@ const Pagination = /*#__PURE__*/React.forwardRef(({
249
250
  }, pageText(page)) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Select.default, {
250
251
  id: `${prefix}-pagination-select-${inputId}-right`,
251
252
  className: `${prefix}--select__page-number`,
252
- labelText: `Page of ${totalPages} pages`,
253
+ labelText: pageSelectLabelText(totalPages),
253
254
  inline: true,
254
255
  hideLabel: true,
255
256
  onChange: handlePageInputChange,
@@ -336,6 +337,10 @@ Pagination.propTypes = {
336
337
  * A function returning PII showing where the current page is.
337
338
  */
338
339
  pageRangeText: PropTypes.func,
340
+ /**
341
+ * A function returning the label for the page select.
342
+ */
343
+ pageSelectLabelText: PropTypes.func,
339
344
  /**
340
345
  * The number dictating how many items a page contains.
341
346
  */
@@ -82,7 +82,18 @@ function Pagination({
82
82
  hideLabel: true,
83
83
  noLabel: true,
84
84
  inline: true,
85
- onChange: event => setCurrentPageSize(Number(event.target.value)),
85
+ onChange: event => {
86
+ const pageSize = Number(event.target.value);
87
+ const page = 1;
88
+ setCurrentPage(page);
89
+ setCurrentPageSize(pageSize);
90
+ if (onChange) {
91
+ onChange({
92
+ page,
93
+ pageSize
94
+ });
95
+ }
96
+ },
86
97
  value: currentPageSize
87
98
  }, pageSizes.map(size => /*#__PURE__*/React.createElement(SelectItem.default, {
88
99
  key: size,
@@ -182,7 +182,7 @@ function ProgressStep({
182
182
  }),
183
183
  disabled: disabled,
184
184
  "aria-disabled": disabled,
185
- tabIndex: !current && onClick && !disabled ? 0 : -1,
185
+ tabIndex: disabled ? -1 : 0,
186
186
  onClick: !current ? onClick : undefined,
187
187
  onKeyDown: handleKeyDown,
188
188
  title: label
@@ -195,10 +195,10 @@ function ProgressStep({
195
195
  }), /*#__PURE__*/React.createElement("div", {
196
196
  className: `${prefix}--progress-text`
197
197
  }, /*#__PURE__*/React.createElement(Text.Text, {
198
- as: "p",
198
+ as: "span",
199
199
  className: `${prefix}--progress-label`
200
200
  }, label), secondaryLabel !== null && secondaryLabel !== undefined ? /*#__PURE__*/React.createElement(Text.Text, {
201
- as: "p",
201
+ as: "span",
202
202
  className: `${prefix}--progress-optional`
203
203
  }, secondaryLabel) : null), /*#__PURE__*/React.createElement("span", {
204
204
  className: `${prefix}--assistive-text`
@@ -7,8 +7,6 @@
7
7
 
8
8
  'use strict';
9
9
 
10
- Object.defineProperty(exports, '__esModule', { value: true });
11
-
12
10
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
11
  var PropTypes = require('prop-types');
14
12
  var React = require('react');
@@ -37,4 +35,3 @@ RadioButtonSkeleton.propTypes = {
37
35
  };
38
36
 
39
37
  exports.RadioButtonSkeleton = RadioButtonSkeleton;
40
- exports.default = RadioButtonSkeleton;
@@ -16,4 +16,4 @@ var Search_Skeleton = require('./Search.Skeleton.js');
16
16
 
17
17
  exports.Search = Search.default;
18
18
  exports.default = Search.default;
19
- exports.SearchSkeleton = Search_Skeleton.default;
19
+ exports.SearchSkeleton = Search_Skeleton.SearchSkeleton;
@@ -16,4 +16,4 @@ var Select_Skeleton = require('./Select.Skeleton.js');
16
16
 
17
17
  exports.Select = Select.default;
18
18
  exports.default = Select.default;
19
- exports.SelectSkeleton = Select_Skeleton.default;
19
+ exports.SelectSkeleton = Select_Skeleton.SelectSkeleton;
@@ -7,8 +7,6 @@
7
7
 
8
8
  'use strict';
9
9
 
10
- Object.defineProperty(exports, '__esModule', { value: true });
11
-
12
10
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
11
  var PropTypes = require('prop-types');
14
12
  var React = require('react');
@@ -96,4 +94,3 @@ ShapeIndicator.propTypes = {
96
94
 
97
95
  exports.ShapeIndicator = ShapeIndicator;
98
96
  exports.ShapeIndicatorKinds = ShapeIndicatorKinds;
99
- exports.default = ShapeIndicator;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2025
2
+ * Copyright IBM Corp. 2016, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.