@carbon/react 1.89.0-rc.0 → 1.89.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 (63) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +1113 -851
  2. package/es/components/AILabel/index.d.ts +2 -5
  3. package/es/components/AILabel/index.js +2 -42
  4. package/es/components/ComposedModal/ComposedModal.js +2 -2
  5. package/es/components/Copy/Copy.js +1 -0
  6. package/es/components/DataTable/DataTable.js +10 -3
  7. package/es/components/Dialog/Dialog.d.ts +245 -0
  8. package/es/components/Dialog/Dialog.js +593 -0
  9. package/es/components/Dialog/index.d.ts +3 -251
  10. package/es/components/Dialog/index.js +1 -609
  11. package/es/components/FeatureFlags/index.d.ts +3 -1
  12. package/es/components/FeatureFlags/index.js +5 -2
  13. package/es/components/FileUploader/FileUploader.d.ts +28 -6
  14. package/es/components/FileUploader/FileUploader.js +152 -38
  15. package/es/components/Link/Link.js +15 -1
  16. package/es/components/Menu/MenuContext.d.ts +1 -1
  17. package/es/components/Menu/MenuContext.js +11 -4
  18. package/es/components/Menu/MenuItem.js +4 -10
  19. package/es/components/Modal/Modal.js +17 -9
  20. package/es/components/MultiSelect/FilterableMultiSelect.js +1 -5
  21. package/es/components/MultiSelect/MultiSelect.js +3 -7
  22. package/es/components/Popover/index.d.ts +4 -0
  23. package/es/components/Popover/index.js +8 -2
  24. package/es/components/StructuredList/StructuredList.d.ts +16 -0
  25. package/es/components/StructuredList/StructuredList.js +23 -11
  26. package/es/components/Toggletip/index.d.ts +13 -36
  27. package/es/components/Toggletip/index.js +12 -51
  28. package/es/index.d.ts +2 -1
  29. package/es/index.js +2 -0
  30. package/es/internal/Selection.js +1 -1
  31. package/es/internal/useMergedRefs.js +4 -3
  32. package/lib/components/AILabel/index.d.ts +2 -5
  33. package/lib/components/AILabel/index.js +1 -41
  34. package/lib/components/ComposedModal/ComposedModal.js +2 -2
  35. package/lib/components/Copy/Copy.js +1 -0
  36. package/lib/components/DataTable/DataTable.js +10 -3
  37. package/lib/components/Dialog/Dialog.d.ts +245 -0
  38. package/lib/components/Dialog/Dialog.js +602 -0
  39. package/lib/components/Dialog/index.d.ts +3 -251
  40. package/lib/components/Dialog/index.js +9 -614
  41. package/lib/components/FeatureFlags/index.d.ts +3 -1
  42. package/lib/components/FeatureFlags/index.js +5 -2
  43. package/lib/components/FileUploader/FileUploader.d.ts +28 -6
  44. package/lib/components/FileUploader/FileUploader.js +151 -37
  45. package/lib/components/Link/Link.js +15 -1
  46. package/lib/components/Menu/MenuContext.d.ts +1 -1
  47. package/lib/components/Menu/MenuContext.js +11 -4
  48. package/lib/components/Menu/MenuItem.js +4 -10
  49. package/lib/components/Modal/Modal.js +24 -16
  50. package/lib/components/MultiSelect/FilterableMultiSelect.js +1 -5
  51. package/lib/components/MultiSelect/MultiSelect.js +3 -7
  52. package/lib/components/Popover/index.d.ts +4 -0
  53. package/lib/components/Popover/index.js +8 -2
  54. package/lib/components/StructuredList/StructuredList.d.ts +16 -0
  55. package/lib/components/StructuredList/StructuredList.js +23 -11
  56. package/lib/components/Toggletip/index.d.ts +13 -36
  57. package/lib/components/Toggletip/index.js +11 -50
  58. package/lib/index.d.ts +2 -1
  59. package/lib/index.js +60 -58
  60. package/lib/internal/Selection.js +1 -1
  61. package/lib/internal/useMergedRefs.js +3 -2
  62. package/package.json +15 -16
  63. package/telemetry.yml +5 -2
@@ -32,6 +32,7 @@ function StructuredListWrapper(props) {
32
32
  ariaLabel: deprecatedAriaLabel,
33
33
  isCondensed,
34
34
  isFlush,
35
+ selectedInitialRow,
35
36
  ...other
36
37
  } = props;
37
38
  const prefix = usePrefix.usePrefix();
@@ -40,7 +41,7 @@ function StructuredListWrapper(props) {
40
41
  [`${prefix}--structured-list--condensed`]: isCondensed,
41
42
  [`${prefix}--structured-list--flush`]: isFlush && !selection
42
43
  }, className);
43
- const [selectedRow, setSelectedRow] = React.useState(null);
44
+ const [selectedRow, setSelectedRow] = React.useState(selectedInitialRow ?? null);
44
45
  return /*#__PURE__*/React.createElement(GridSelectedRowStateContext.Provider, {
45
46
  value: selectedRow
46
47
  }, /*#__PURE__*/React.createElement(GridSelectedRowDispatchContext.Provider, {
@@ -81,7 +82,11 @@ StructuredListWrapper.propTypes = {
81
82
  /**
82
83
  * Specify whether your StructuredListWrapper should have selections
83
84
  */
84
- selection: PropTypes.bool
85
+ selection: PropTypes.bool,
86
+ /**
87
+ * Specify which row will be selected initially
88
+ */
89
+ selectedInitialRow: PropTypes.string
85
90
  };
86
91
  function StructuredListHead(props) {
87
92
  const {
@@ -143,21 +148,22 @@ function StructuredListRow(props) {
143
148
  head,
144
149
  onClick,
145
150
  selection,
151
+ id,
146
152
  ...other
147
153
  } = props;
148
154
  const [hasFocusWithin, setHasFocusWithin] = React.useState(false);
149
- const id = useId.useId('grid-input');
155
+ const rowId = id ?? useId.useId('grid-input');
150
156
  const selectedRow = React.useContext(GridSelectedRowStateContext);
151
157
  const setSelectedRow = React.useContext(GridSelectedRowDispatchContext);
152
158
  const prefix = usePrefix.usePrefix();
153
159
  const value = {
154
- id
160
+ id: rowId
155
161
  };
156
162
  const classes = cx(`${prefix}--structured-list-row`, {
157
163
  [`${prefix}--structured-list-row--header-row`]: head,
158
- [`${prefix}--structured-list-row--focused-within`]: hasFocusWithin && !selection || hasFocusWithin && selection && (selectedRow === id || selectedRow === null),
164
+ [`${prefix}--structured-list-row--focused-within`]: hasFocusWithin && !selection || hasFocusWithin && selection && (selectedRow === rowId || selectedRow === null),
159
165
  // Ensure focus on the first item when navigating through Tab keys and no row is selected (selectedRow === null)
160
- [`${prefix}--structured-list-row--selected`]: selectedRow === id
166
+ [`${prefix}--structured-list-row--selected`]: selectedRow === rowId
161
167
  }, className);
162
168
  const itemRef = React.useRef(null);
163
169
  const handleClick = () => {
@@ -178,15 +184,17 @@ function StructuredListRow(props) {
178
184
  className: classes,
179
185
  ref: itemRef,
180
186
  onClick: event => {
181
- setSelectedRow?.(id);
187
+ setSelectedRow?.(rowId);
182
188
  onClick && onClick(event);
183
189
  if (selection) {
184
190
  // focus items only when selection is enabled
185
191
  setHasFocusWithin(true);
186
192
  }
187
193
  },
188
- onFocus: () => {
189
- setHasFocusWithin(true);
194
+ onFocus: event => {
195
+ if (selection || event.currentTarget === event.target) {
196
+ setHasFocusWithin(true);
197
+ }
190
198
  },
191
199
  onBlur: () => {
192
200
  setHasFocusWithin(false);
@@ -194,7 +202,7 @@ function StructuredListRow(props) {
194
202
  onKeyDown: onKeyDown
195
203
  }), /*#__PURE__*/React.createElement(GridRowContext.Provider, {
196
204
  value: value
197
- }, selection && /*#__PURE__*/React.createElement(StructuredListCell, null, selectedRow === id ? /*#__PURE__*/React.createElement(iconsReact.RadioButtonChecked, {
205
+ }, selection && /*#__PURE__*/React.createElement(StructuredListCell, null, selectedRow === rowId ? /*#__PURE__*/React.createElement(iconsReact.RadioButtonChecked, {
198
206
  className: `${prefix}--structured-list__icon`
199
207
  }) : /*#__PURE__*/React.createElement(iconsReact.RadioButton, {
200
208
  className: `${prefix}--structured-list__icon`
@@ -228,7 +236,11 @@ StructuredListRow.propTypes = {
228
236
  /**
229
237
  * Mark if this row should be selectable
230
238
  */
231
- selection: PropTypes.bool
239
+ selection: PropTypes.bool,
240
+ /**
241
+ * Specify row id so that it can be used for initial selection
242
+ */
243
+ id: PropTypes.string
232
244
  };
233
245
  function StructuredListInput(props) {
234
246
  const defaultId = useId.useId('structureListInput');
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import PropTypes from 'prop-types';
8
8
  import React, { type ElementType, type ReactNode } from 'react';
9
- import { type PopoverAlignment } from '../Popover';
9
+ import { type PopoverAlignment, PopoverBaseProps } from '../Popover';
10
10
  import { PolymorphicProps } from '../../types/common';
11
11
  import { PolymorphicComponentPropWithRef } from '../../internal/PolymorphicProps';
12
12
  type ToggletipLabelProps<E extends ElementType> = {
@@ -36,12 +36,7 @@ export declare namespace ToggletipLabel {
36
36
  className: PropTypes.Requireable<string>;
37
37
  };
38
38
  }
39
- export interface ToggletipBaseProps {
40
- align?: PopoverAlignment;
41
- alignmentAxisOffset?: number;
42
- autoAlign?: boolean;
43
- className?: string;
44
- children?: ReactNode;
39
+ export interface ToggletipBaseProps extends Omit<PopoverBaseProps, 'open'> {
45
40
  defaultOpen?: boolean;
46
41
  }
47
42
  export type ToggletipProps<T extends ElementType> = PolymorphicComponentPropWithRef<T, ToggletipBaseProps>;
@@ -53,39 +48,21 @@ export type ToggletipProps<T extends ElementType> = PolymorphicComponentPropWith
53
48
  export declare function Toggletip<E extends ElementType = 'span'>({ align, as, autoAlign, className: customClassName, children, defaultOpen, ...rest }: ToggletipProps<E>): import("react/jsx-runtime").JSX.Element;
54
49
  export declare namespace Toggletip {
55
50
  var propTypes: {
56
- /**
57
- * Specify how the toggletip should align with the button
58
- */
59
- align: PropTypes.Requireable<string>;
60
- /**
61
- * **Experimental:** Provide an offset value for alignment axis. Only takes effect when `autoalign` is enabled.
62
- */
63
- alignmentAxisOffset: PropTypes.Requireable<number>;
64
- /**
65
- * Provide a custom element or component to render the top-level node for the
66
- * component.
67
- */
68
- as: PropTypes.Requireable<PropTypes.ReactComponentLike>;
69
- /**
70
- * Will auto-align the popover on first render if it is not visible. This prop
71
- * is currently experimental and is subject to future changes. Requires
72
- * React v17+
73
- * @see https://github.com/carbon-design-system/carbon/issues/18714
74
- */
75
- autoAlign: PropTypes.Requireable<boolean>;
76
- /**
77
- * Custom children to be rendered as the content of the label
78
- */
79
- children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
80
- /**
81
- * Provide a custom class name to be added to the outermost node in the
82
- * component
83
- */
84
- className: PropTypes.Requireable<string>;
85
51
  /**
86
52
  * Specify if the toggletip should be open by default
87
53
  */
88
54
  defaultOpen: PropTypes.Requireable<boolean>;
55
+ align?: PopoverAlignment;
56
+ alignmentAxisOffset?: number;
57
+ autoAlign?: boolean;
58
+ autoAlignBoundary?: import("@floating-ui/dom").Boundary;
59
+ caret?: boolean;
60
+ children?: React.ReactNode;
61
+ className?: string;
62
+ dropShadow?: boolean;
63
+ highContrast?: boolean;
64
+ isTabTip?: boolean;
65
+ onRequestClose?: () => void;
89
66
  };
90
67
  }
91
68
  export interface ToggletipButtonBaseProps {
@@ -102,6 +102,7 @@ function Toggletip({
102
102
  };
103
103
  const onKeyDown = event => {
104
104
  if (open && match.match(event, keys.Escape)) {
105
+ event.stopPropagation();
105
106
  actions.close();
106
107
 
107
108
  // If the menu is closed while focus is still inside the menu, it should return to the trigger button (#12922)
@@ -151,57 +152,17 @@ function Toggletip({
151
152
  autoAlign: autoAlign
152
153
  }, rest), children));
153
154
  }
154
- Toggletip.propTypes = {
155
- /**
156
- * Specify how the toggletip should align with the button
157
- */
158
- align: PropTypes.oneOf(['top', 'top-left',
159
- // deprecated use top-start instead
160
- 'top-right',
161
- // deprecated use top-end instead
162
-
163
- 'bottom', 'bottom-left',
164
- // deprecated use bottom-start instead
165
- 'bottom-right',
166
- // deprecated use bottom-end instead
167
155
 
168
- 'left', 'left-bottom',
169
- // deprecated use left-end instead
170
- 'left-top',
171
- // deprecated use left-start instead
172
-
173
- 'right', 'right-bottom',
174
- // deprecated use right-end instead
175
- 'right-top',
176
- // deprecated use right-start instead
177
-
178
- // new values to match floating-ui
179
- 'top-start', 'top-end', 'bottom-start', 'bottom-end', 'left-end', 'left-start', 'right-end', 'right-start']),
180
- /**
181
- * **Experimental:** Provide an offset value for alignment axis. Only takes effect when `autoalign` is enabled.
182
- */
183
- alignmentAxisOffset: PropTypes.number,
184
- /**
185
- * Provide a custom element or component to render the top-level node for the
186
- * component.
187
- */
188
- as: PropTypes.elementType,
189
- /**
190
- * Will auto-align the popover on first render if it is not visible. This prop
191
- * is currently experimental and is subject to future changes. Requires
192
- * React v17+
193
- * @see https://github.com/carbon-design-system/carbon/issues/18714
194
- */
195
- autoAlign: PropTypes.bool,
196
- /**
197
- * Custom children to be rendered as the content of the label
198
- */
199
- children: PropTypes.node,
200
- /**
201
- * Provide a custom class name to be added to the outermost node in the
202
- * component
203
- */
204
- className: PropTypes.string,
156
+ // Get all the properties from Popover except for "open".
157
+ // The Typescript types for PropTypes are really messed up so we need lots of
158
+ // casting. It will be great when we can finally get rid of PropTypes altogether.
159
+ const {
160
+ open,
161
+ ...popoverNonOpenPropTypes
162
+ } = index.Popover.propTypes ?? {};
163
+ Toggletip.propTypes = {
164
+ // Has all of Popover's PropTypes except for "open".
165
+ ...popoverNonOpenPropTypes,
205
166
  /**
206
167
  * Specify if the toggletip should be open by default
207
168
  */
package/lib/index.d.ts CHANGED
@@ -58,6 +58,7 @@ export * from './components/OrderedList';
58
58
  export * from './components/OverflowMenu';
59
59
  export * from './components/OverflowMenuItem';
60
60
  export * as unstable__PageHeader from './components/PageHeader';
61
+ export * as preview__Dialog from './components/Dialog';
61
62
  export * from './components/Pagination';
62
63
  export * from './components/Pagination/Pagination.Skeleton';
63
64
  export * from './components/PaginationNav';
@@ -185,7 +186,6 @@ export type { TableToolbarSearchProps } from './components/DataTable/TableToolba
185
186
  export type { DataTableSkeletonProps } from './components/DataTableSkeleton/DataTableSkeleton';
186
187
  export type { DatePickerProps } from './components/DatePicker/DatePicker';
187
188
  export type { DatePickerInputProps } from './components/DatePickerInput/DatePickerInput';
188
- export type { DialogProps } from './components/Dialog/index';
189
189
  export type { DropdownProps } from './components/Dropdown/Dropdown';
190
190
  export type { ErrorBoundaryProps } from './components/ErrorBoundary/ErrorBoundary';
191
191
  export type { FeatureFlagsProps } from './components/FeatureFlags/index';
@@ -267,6 +267,7 @@ export type { OrderedListProps } from './components/OrderedList/OrderedList';
267
267
  export type { OverflowMenuProps } from './components/OverflowMenu/OverflowMenu';
268
268
  export type { OverflowMenuItemProps } from './components/OverflowMenuItem/OverflowMenuItem';
269
269
  export type { PageHeaderProps, PageHeaderBreadcrumbBarProps, PageHeaderContentProps, PageHeaderHeroImageProps, PageHeaderTabBarProps, } from './components/PageHeader';
270
+ export type { DialogProps, DialogHeaderProps, DialogControlsProps, DialogCloseButtonProps, DialogTitleProps, DialogSubtitleProps, DialogBodyProps, DialogFooterProps, } from './components/Dialog';
270
271
  export type { PaginationProps } from './components/Pagination/Pagination';
271
272
  export type { PaginationSkeletonProps } from './components/Pagination/Pagination.Skeleton';
272
273
  export type { DirectionButtonProps } from './components/PaginationNav/PaginationNav';
package/lib/index.js CHANGED
@@ -21,11 +21,11 @@ var ButtonSet = require('./components/ButtonSet/ButtonSet.js');
21
21
  var Checkbox = require('./components/Checkbox/Checkbox.js');
22
22
  var Checkbox_Skeleton = require('./components/Checkbox/Checkbox.Skeleton.js');
23
23
  var CheckboxGroup = require('./components/CheckboxGroup/CheckboxGroup.js');
24
- var index$7 = require('./components/ClassPrefix/index.js');
24
+ var index$8 = require('./components/ClassPrefix/index.js');
25
25
  var CodeSnippet = require('./components/CodeSnippet/CodeSnippet.js');
26
26
  var CodeSnippet_Skeleton = require('./components/CodeSnippet/CodeSnippet.Skeleton.js');
27
27
  var ComboBox = require('./components/ComboBox/ComboBox.js');
28
- var index$8 = require('./components/ComboButton/index.js');
28
+ var index$9 = require('./components/ComboButton/index.js');
29
29
  var ComposedModal = require('./components/ComposedModal/ComposedModal.js');
30
30
  var ModalHeader = require('./components/ComposedModal/ModalHeader.js');
31
31
  var ModalFooter = require('./components/ComposedModal/ModalFooter.js');
@@ -67,7 +67,7 @@ var Dropdown_Skeleton = require('./components/Dropdown/Dropdown.Skeleton.js');
67
67
  var ErrorBoundary = require('./components/ErrorBoundary/ErrorBoundary.js');
68
68
  var ErrorBoundaryContext = require('./components/ErrorBoundary/ErrorBoundaryContext.js');
69
69
  var ExpandableSearch = require('./components/ExpandableSearch/ExpandableSearch.js');
70
- var index$1 = require('./components/FeatureFlags/index.js');
70
+ var index$2 = require('./components/FeatureFlags/index.js');
71
71
  var FileUploader = require('./components/FileUploader/FileUploader.js');
72
72
  var Filename = require('./components/FileUploader/Filename.js');
73
73
  var FileUploader_Skeleton = require('./components/FileUploader/FileUploader.Skeleton.js');
@@ -87,14 +87,14 @@ var Column = require('./components/Grid/Column.js');
87
87
  var ColumnHang = require('./components/Grid/ColumnHang.js');
88
88
  var GridContext = require('./components/Grid/GridContext.js');
89
89
  var Icon_Skeleton = require('./components/Icon/Icon.Skeleton.js');
90
- var index$9 = require('./components/IdPrefix/index.js');
90
+ var index$a = require('./components/IdPrefix/index.js');
91
91
  var InlineLoading = require('./components/InlineLoading/InlineLoading.js');
92
92
  var Link = require('./components/Link/Link.js');
93
93
  var ListItem = require('./components/ListItem/ListItem.js');
94
94
  var Loading = require('./components/Loading/Loading.js');
95
95
  var Menu = require('./components/Menu/Menu.js');
96
96
  var MenuItem = require('./components/Menu/MenuItem.js');
97
- var index$a = require('./components/MenuButton/index.js');
97
+ var index$b = require('./components/MenuButton/index.js');
98
98
  var Modal = require('./components/Modal/Modal.js');
99
99
  var ModalWrapper = require('./components/ModalWrapper/ModalWrapper.js');
100
100
  var FilterableMultiSelect = require('./components/MultiSelect/FilterableMultiSelect.js');
@@ -103,9 +103,10 @@ var Notification = require('./components/Notification/Notification.js');
103
103
  var NumberInput_Skeleton = require('./components/NumberInput/NumberInput.Skeleton.js');
104
104
  var NumberInput = require('./components/NumberInput/NumberInput.js');
105
105
  var OrderedList = require('./components/OrderedList/OrderedList.js');
106
- var index$b = require('./components/OverflowMenu/index.js');
106
+ var index$c = require('./components/OverflowMenu/index.js');
107
107
  var OverflowMenuItem = require('./components/OverflowMenuItem/OverflowMenuItem.js');
108
108
  var index = require('./components/PageHeader/index.js');
109
+ var index$1 = require('./components/Dialog/index.js');
109
110
  var Pagination$1 = require('./components/Pagination/Pagination.js');
110
111
  var Pagination_Skeleton = require('./components/Pagination/Pagination.Skeleton.js');
111
112
  var PaginationNav = require('./components/PaginationNav/PaginationNav.js');
@@ -128,7 +129,7 @@ var SelectItemGroup = require('./components/SelectItemGroup/SelectItemGroup.js')
128
129
  var SkeletonIcon = require('./components/SkeletonIcon/SkeletonIcon.js');
129
130
  var SkeletonPlaceholder = require('./components/SkeletonPlaceholder/SkeletonPlaceholder.js');
130
131
  var SkeletonText = require('./components/SkeletonText/SkeletonText.js');
131
- var index$c = require('./components/Slider/index.js');
132
+ var index$d = require('./components/Slider/index.js');
132
133
  var HStack = require('./components/Stack/HStack.js');
133
134
  var Stack = require('./components/Stack/Stack.js');
134
135
  var VStack = require('./components/Stack/VStack.js');
@@ -155,7 +156,7 @@ var TimePickerSelect = require('./components/TimePickerSelect/TimePickerSelect.j
155
156
  var Toggle = require('./components/Toggle/Toggle.js');
156
157
  var Toggle_Skeleton = require('./components/Toggle/Toggle.Skeleton.js');
157
158
  var ToggleSmall_Skeleton = require('./components/ToggleSmall/ToggleSmall.Skeleton.js');
158
- var index$d = require('./components/Toggletip/index.js');
159
+ var index$e = require('./components/Toggletip/index.js');
159
160
  var TreeNode = require('./components/TreeView/TreeNode.js');
160
161
  var TreeView = require('./components/TreeView/TreeView.js');
161
162
  var Content = require('./components/UIShell/Content.js');
@@ -211,18 +212,18 @@ var FluidNumberInput_Skeleton = require('./components/FluidNumberInput/FluidNumb
211
212
  var FluidTimePicker = require('./components/FluidTimePicker/FluidTimePicker.js');
212
213
  var FluidTimePicker_Skeleton = require('./components/FluidTimePicker/FluidTimePicker.Skeleton.js');
213
214
  var FluidTimePickerSelect = require('./components/FluidTimePickerSelect/FluidTimePickerSelect.js');
214
- var index$e = require('./components/Heading/index.js');
215
- var index$f = require('./components/IconButton/index.js');
216
- var index$g = require('./components/Layer/index.js');
217
- var index$2 = require('./components/Layout/index.js');
215
+ var index$f = require('./components/Heading/index.js');
216
+ var index$g = require('./components/IconButton/index.js');
217
+ var index$h = require('./components/Layer/index.js');
218
+ var index$3 = require('./components/Layout/index.js');
218
219
  var LayoutDirection = require('./components/LayoutDirection/LayoutDirection.js');
219
220
  var useLayoutDirection = require('./components/LayoutDirection/useLayoutDirection.js');
220
- var index$3 = require('./components/OverflowMenuV2/index.js');
221
- var index$h = require('./components/Popover/index.js');
221
+ var index$4 = require('./components/OverflowMenuV2/index.js');
222
+ var index$i = require('./components/Popover/index.js');
222
223
  var ProgressBar = require('./components/ProgressBar/ProgressBar.js');
223
- var index$4 = require('./components/AILabel/index.js');
224
- var index$5 = require('./components/IconIndicator/index.js');
225
- var index$6 = require('./components/ShapeIndicator/index.js');
224
+ var index$5 = require('./components/AILabel/index.js');
225
+ var index$6 = require('./components/IconIndicator/index.js');
226
+ var index$7 = require('./components/ShapeIndicator/index.js');
226
227
  var ChatButton = require('./components/ChatButton/ChatButton.js');
227
228
  var ChatButton_Skeleton = require('./components/ChatButton/ChatButton.Skeleton.js');
228
229
  var AISkeletonPlaceholder = require('./components/AISkeleton/AISkeletonPlaceholder.js');
@@ -231,7 +232,7 @@ var AISkeletonText = require('./components/AISkeleton/AISkeletonText.js');
231
232
  var DefinitionTooltip = require('./components/Tooltip/DefinitionTooltip.js');
232
233
  var Tooltip = require('./components/Tooltip/Tooltip.js');
233
234
  require('./components/Text/index.js');
234
- var index$i = require('./components/Theme/index.js');
235
+ var index$j = require('./components/Theme/index.js');
235
236
  var usePrefix = require('./internal/usePrefix.js');
236
237
  var useIdPrefix = require('./internal/useIdPrefix.js');
237
238
  var PageSelector = require('./components/Pagination/experimental/PageSelector.js');
@@ -261,11 +262,11 @@ exports.ButtonSet = ButtonSet.default;
261
262
  exports.Checkbox = Checkbox.default;
262
263
  exports.CheckboxSkeleton = Checkbox_Skeleton.default;
263
264
  exports.CheckboxGroup = CheckboxGroup.default;
264
- exports.ClassPrefix = index$7.ClassPrefix;
265
+ exports.ClassPrefix = index$8.ClassPrefix;
265
266
  exports.CodeSnippet = CodeSnippet.default;
266
267
  exports.CodeSnippetSkeleton = CodeSnippet_Skeleton.default;
267
268
  exports.ComboBox = ComboBox.default;
268
- exports.ComboButton = index$8.ComboButton;
269
+ exports.ComboButton = index$9.ComboButton;
269
270
  exports.ComposedModal = ComposedModal.default;
270
271
  exports.ModalBody = ComposedModal.ModalBody;
271
272
  exports.ModalHeader = ModalHeader.ModalHeader;
@@ -307,12 +308,12 @@ exports.DropdownSkeleton = Dropdown_Skeleton.default;
307
308
  exports.ErrorBoundary = ErrorBoundary.default;
308
309
  exports.ErrorBoundaryContext = ErrorBoundaryContext.ErrorBoundaryContext;
309
310
  exports.ExpandableSearch = ExpandableSearch.default;
310
- exports.FeatureFlags = index$1.FeatureFlags;
311
- exports.unstable_FeatureFlags = index$1.FeatureFlags;
312
- exports.unstable_useFeatureFlag = index$1.useFeatureFlag;
313
- exports.unstable_useFeatureFlags = index$1.useFeatureFlags;
314
- exports.useFeatureFlag = index$1.useFeatureFlag;
315
- exports.useFeatureFlags = index$1.useFeatureFlags;
311
+ exports.FeatureFlags = index$2.FeatureFlags;
312
+ exports.unstable_FeatureFlags = index$2.FeatureFlags;
313
+ exports.unstable_useFeatureFlag = index$2.useFeatureFlag;
314
+ exports.unstable_useFeatureFlags = index$2.useFeatureFlags;
315
+ exports.useFeatureFlag = index$2.useFeatureFlag;
316
+ exports.useFeatureFlags = index$2.useFeatureFlags;
316
317
  exports.FileUploader = FileUploader.default;
317
318
  exports.Filename = Filename.default;
318
319
  exports.FileUploaderSkeleton = FileUploader_Skeleton.default;
@@ -332,7 +333,7 @@ exports.Column = Column.default;
332
333
  exports.ColumnHang = ColumnHang.ColumnHang;
333
334
  exports.GridSettings = GridContext.GridSettings;
334
335
  exports.IconSkeleton = Icon_Skeleton.default;
335
- exports.IdPrefix = index$9.IdPrefix;
336
+ exports.IdPrefix = index$a.IdPrefix;
336
337
  exports.InlineLoading = InlineLoading.default;
337
338
  exports.Link = Link.default;
338
339
  exports.ListItem = ListItem.default;
@@ -343,7 +344,7 @@ exports.MenuItemDivider = MenuItem.MenuItemDivider;
343
344
  exports.MenuItemGroup = MenuItem.MenuItemGroup;
344
345
  exports.MenuItemRadioGroup = MenuItem.MenuItemRadioGroup;
345
346
  exports.MenuItemSelectable = MenuItem.MenuItemSelectable;
346
- exports.MenuButton = index$a.MenuButton;
347
+ exports.MenuButton = index$b.MenuButton;
347
348
  exports.Modal = Modal.default;
348
349
  exports.ModalWrapper = ModalWrapper.default;
349
350
  exports.FilterableMultiSelect = FilterableMultiSelect.FilterableMultiSelect;
@@ -358,9 +359,10 @@ exports.ToastNotification = Notification.ToastNotification;
358
359
  exports.NumberInputSkeleton = NumberInput_Skeleton.default;
359
360
  exports.NumberInput = NumberInput.NumberInput;
360
361
  exports.OrderedList = OrderedList.default;
361
- exports.OverflowMenu = index$b.default;
362
+ exports.OverflowMenu = index$c.default;
362
363
  exports.OverflowMenuItem = OverflowMenuItem.default;
363
364
  exports.unstable__PageHeader = index;
365
+ exports.preview__Dialog = index$1;
364
366
  exports.Pagination = Pagination$1.default;
365
367
  exports.PaginationSkeleton = Pagination_Skeleton.default;
366
368
  exports.PaginationNav = PaginationNav.default;
@@ -384,7 +386,7 @@ exports.SelectItemGroup = SelectItemGroup.default;
384
386
  exports.SkeletonIcon = SkeletonIcon.default;
385
387
  exports.SkeletonPlaceholder = SkeletonPlaceholder.default;
386
388
  exports.SkeletonText = SkeletonText.default;
387
- exports.Slider = index$c.default;
389
+ exports.Slider = index$d.default;
388
390
  exports.HStack = HStack.HStack;
389
391
  exports.Stack = Stack.Stack;
390
392
  exports.VStack = VStack.VStack;
@@ -428,11 +430,11 @@ exports.TimePickerSelect = TimePickerSelect.default;
428
430
  exports.Toggle = Toggle.Toggle;
429
431
  exports.ToggleSkeleton = Toggle_Skeleton.default;
430
432
  exports.ToggleSmallSkeleton = ToggleSmall_Skeleton.ToggleSmallSkeleton;
431
- exports.Toggletip = index$d.Toggletip;
432
- exports.ToggletipActions = index$d.ToggletipActions;
433
- exports.ToggletipButton = index$d.ToggletipButton;
434
- exports.ToggletipContent = index$d.ToggletipContent;
435
- exports.ToggletipLabel = index$d.ToggletipLabel;
433
+ exports.Toggletip = index$e.Toggletip;
434
+ exports.ToggletipActions = index$e.ToggletipActions;
435
+ exports.ToggletipButton = index$e.ToggletipButton;
436
+ exports.ToggletipContent = index$e.ToggletipContent;
437
+ exports.ToggletipLabel = index$e.ToggletipLabel;
436
438
  exports.TreeNode = TreeNode.default;
437
439
  exports.TreeView = TreeView.default;
438
440
  exports.Content = Content.default;
@@ -487,27 +489,27 @@ exports.unstable__FluidNumberInputSkeleton = FluidNumberInput_Skeleton.default;
487
489
  exports.unstable__FluidTimePicker = FluidTimePicker.default;
488
490
  exports.unstable__FluidTimePickerSkeleton = FluidTimePicker_Skeleton.default;
489
491
  exports.unstable__FluidTimePickerSelect = FluidTimePickerSelect.default;
490
- exports.Heading = index$e.Heading;
491
- exports.Section = index$e.Section;
492
- exports.IconButton = index$f.IconButton;
493
- exports.IconButtonKinds = index$f.IconButtonKinds;
494
- exports.Layer = index$g.Layer;
495
- exports.useLayer = index$g.useLayer;
496
- exports.unstable_Layout = index$2.Layout;
492
+ exports.Heading = index$f.Heading;
493
+ exports.Section = index$f.Section;
494
+ exports.IconButton = index$g.IconButton;
495
+ exports.IconButtonKinds = index$g.IconButtonKinds;
496
+ exports.Layer = index$h.Layer;
497
+ exports.useLayer = index$h.useLayer;
498
+ exports.unstable_Layout = index$3.Layout;
497
499
  exports.unstable_LayoutDirection = LayoutDirection.LayoutDirection;
498
500
  exports.unstable_useLayoutDirection = useLayoutDirection.useLayoutDirection;
499
- exports.unstable_OverflowMenuV2 = index$3.OverflowMenuV2;
500
- exports.Popover = index$h.Popover;
501
- exports.PopoverContent = index$h.PopoverContent;
501
+ exports.unstable_OverflowMenuV2 = index$4.OverflowMenuV2;
502
+ exports.Popover = index$i.Popover;
503
+ exports.PopoverContent = index$i.PopoverContent;
502
504
  exports.ProgressBar = ProgressBar.default;
503
- exports.AILabel = index$4.AILabel;
504
- exports.AILabelActions = index$4.AILabelActions;
505
- exports.AILabelContent = index$4.AILabelContent;
506
- exports.unstable__Slug = index$4.AILabel;
507
- exports.unstable__SlugActions = index$4.AILabelActions;
508
- exports.unstable__SlugContent = index$4.AILabelContent;
509
- exports.unstable__IconIndicator = index$5.IconIndicator;
510
- exports.unstable__ShapeIndicator = index$6.ShapeIndicator;
505
+ exports.AILabel = index$5.AILabel;
506
+ exports.AILabelActions = index$5.AILabelActions;
507
+ exports.AILabelContent = index$5.AILabelContent;
508
+ exports.unstable__Slug = index$5.AILabel;
509
+ exports.unstable__SlugActions = index$5.AILabelActions;
510
+ exports.unstable__SlugContent = index$5.AILabelContent;
511
+ exports.unstable__IconIndicator = index$6.IconIndicator;
512
+ exports.unstable__ShapeIndicator = index$7.ShapeIndicator;
511
513
  exports.unstable__ChatButton = ChatButton.default;
512
514
  exports.unstable__ChatButtonSkeleton = ChatButton_Skeleton.default;
513
515
  exports.AISkeletonPlaceholder = AISkeletonPlaceholder.default;
@@ -518,11 +520,11 @@ exports.AISkeletonText = AISkeletonText.default;
518
520
  exports.unstable__AiSkeletonText = AISkeletonText.default;
519
521
  exports.DefinitionTooltip = DefinitionTooltip.DefinitionTooltip;
520
522
  exports.Tooltip = Tooltip.Tooltip;
521
- exports.GlobalTheme = index$i.GlobalTheme;
522
- exports.Theme = index$i.Theme;
523
- exports.ThemeContext = index$i.ThemeContext;
524
- exports.usePrefersDarkScheme = index$i.usePrefersDarkScheme;
525
- exports.useTheme = index$i.useTheme;
523
+ exports.GlobalTheme = index$j.GlobalTheme;
524
+ exports.Theme = index$j.Theme;
525
+ exports.ThemeContext = index$j.ThemeContext;
526
+ exports.usePrefersDarkScheme = index$j.usePrefersDarkScheme;
527
+ exports.useTheme = index$j.useTheme;
526
528
  exports.PrefixContext = usePrefix.PrefixContext;
527
529
  exports.usePrefix = usePrefix.usePrefix;
528
530
  exports.useIdPrefix = useIdPrefix.useIdPrefix;
@@ -50,7 +50,7 @@ const useSelection = ({
50
50
 
51
51
  // Assert special properties (e.g., `disabled`, `isSelectAll`, etc.) are
52
52
  // `any` since those properties aren’t part of the generic type.
53
- const allSelectableItems = filteredItems.filter(item => !item?.disabled);
53
+ const allSelectableItems = filteredItems.filter(item => !item?.disabled && !item?.isSelectAll);
54
54
  const disabledItemCount = filteredItems.filter(item => item?.disabled).length;
55
55
  let newSelectedItems;
56
56
 
@@ -18,15 +18,16 @@ var React = require('react');
18
18
  * node, assigns that node to every ref in the array.
19
19
  */
20
20
  const useMergedRefs = refs => {
21
+ const memoizedRefs = React.useMemo(() => refs, refs);
21
22
  return React.useCallback(node => {
22
- refs.forEach(ref => {
23
+ memoizedRefs.forEach(ref => {
23
24
  if (typeof ref === 'function') {
24
25
  ref(node);
25
26
  } else if (ref) {
26
27
  ref.current = node;
27
28
  }
28
29
  });
29
- }, [refs]);
30
+ }, [memoizedRefs]);
30
31
  };
31
32
 
32
33
  exports.useMergedRefs = useMergedRefs;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/react",
3
3
  "description": "React components for the Carbon Design System",
4
- "version": "1.89.0-rc.0",
4
+ "version": "1.89.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -52,16 +52,16 @@
52
52
  },
53
53
  "dependencies": {
54
54
  "@babel/runtime": "^7.27.3",
55
- "@carbon/feature-flags": "^0.29.0",
56
- "@carbon/icons-react": "^11.65.0-rc.0",
57
- "@carbon/layout": "^11.39.0-rc.0",
58
- "@carbon/styles": "^1.88.0-rc.0",
59
- "@carbon/utilities": "^0.7.0",
55
+ "@carbon/feature-flags": "^0.30.0",
56
+ "@carbon/icons-react": "^11.65.0",
57
+ "@carbon/layout": "^11.39.0",
58
+ "@carbon/styles": "^1.88.0",
59
+ "@carbon/utilities": "^0.8.0",
60
60
  "@floating-ui/react": "^0.27.4",
61
61
  "@ibm/telemetry-js": "^1.5.0",
62
62
  "classnames": "2.5.1",
63
63
  "copy-to-clipboard": "^3.3.1",
64
- "downshift": "9.0.9",
64
+ "downshift": "9.0.10",
65
65
  "es-toolkit": "^1.27.0",
66
66
  "flatpickr": "4.6.13",
67
67
  "invariant": "^2.2.3",
@@ -79,8 +79,8 @@
79
79
  "@babel/preset-env": "^7.27.2",
80
80
  "@babel/preset-react": "^7.27.1",
81
81
  "@babel/preset-typescript": "^7.27.1",
82
- "@carbon/test-utils": "^10.36.0",
83
- "@carbon/themes": "^11.58.0-rc.0",
82
+ "@carbon/test-utils": "^10.37.0",
83
+ "@carbon/themes": "^11.58.0",
84
84
  "@figma/code-connect": "^1.3.2",
85
85
  "@rollup/plugin-babel": "^6.0.0",
86
86
  "@rollup/plugin-commonjs": "^28.0.3",
@@ -96,26 +96,25 @@
96
96
  "autoprefixer": "^10.4.0",
97
97
  "babel-loader": "^10.0.0",
98
98
  "babel-plugin-dev-expression": "^0.2.3",
99
- "babel-preset-carbon": "^0.8.0-rc.0",
99
+ "babel-preset-carbon": "^0.8.0",
100
100
  "browserify-zlib": "^0.2.0",
101
101
  "browserslist-config-carbon": "^11.2.0",
102
- "clipboardy": "^2.1.0",
102
+ "clipboardy": "^4.0.0",
103
103
  "css-loader": "^7.0.0",
104
104
  "enquirer": "^2.3.6",
105
- "fast-glob": "^3.2.7",
105
+ "fast-glob": "^3.3.3",
106
106
  "fs-extra": "^11.0.0",
107
107
  "html-webpack-plugin": "^5.5.0",
108
108
  "mini-css-extract-plugin": "^2.4.5",
109
109
  "postcss": "^8.4.5",
110
110
  "postcss-loader": "^8.0.0",
111
- "prettier2": "npm:prettier@2",
112
111
  "process": "^0.11.10",
113
112
  "prop-types": "^15.8.1",
114
113
  "react": "^19.0.0",
115
114
  "react-dom": "^19.0.0",
116
115
  "react-is": "^16.13.1 || ^17.0.2 || ^18.3.1 || ^19.0.0",
117
116
  "remark-gfm": "^4.0.0",
118
- "rimraf": "^6.0.0",
117
+ "rimraf": "^6.0.1",
119
118
  "rollup": "^4.41.1",
120
119
  "rollup-plugin-strip-banner": "^3.0.0",
121
120
  "sass": "^1.77.7",
@@ -123,7 +122,7 @@
123
122
  "storybook": "^9.0.5",
124
123
  "stream-browserify": "^3.0.0",
125
124
  "style-loader": "^4.0.0",
126
- "typescript-config-carbon": "^0.5.0",
125
+ "typescript-config-carbon": "^0.6.0",
127
126
  "use-sync-external-store": "^1.5.0",
128
127
  "webpack": "^5.65.0",
129
128
  "webpack-dev-server": "^5.0.0"
@@ -139,5 +138,5 @@
139
138
  "**/*.scss",
140
139
  "**/*.css"
141
140
  ],
142
- "gitHead": "babd7a9692f8c0595b67877417d7ebf915e19b20"
141
+ "gitHead": "d66cc6afbdf6802cf8b14042f20f7c350beef90b"
143
142
  }