@carbon/react 1.101.0-rc.0 → 1.101.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 (32) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +1000 -1000
  2. package/es/components/ComboBox/ComboBox.js +7 -2
  3. package/es/components/Dropdown/Dropdown.js +4 -4
  4. package/es/components/ExpandableSearch/ExpandableSearch.js +1 -1
  5. package/es/components/ListBox/test-helpers.d.ts +71 -0
  6. package/es/components/MultiSelect/FilterableMultiSelect.js +1 -1
  7. package/es/components/MultiSelect/MultiSelect.js +1 -1
  8. package/es/components/NumberInput/NumberInput.js +1 -1
  9. package/es/components/Popover/index.js +1 -1
  10. package/es/components/ProgressIndicator/ProgressIndicator.d.ts +1 -1
  11. package/es/components/ProgressIndicator/ProgressIndicator.js +1 -1
  12. package/es/components/Search/Search.d.ts +1 -1
  13. package/es/components/Search/Search.js +1 -1
  14. package/es/components/Select/Select.js +1 -1
  15. package/es/components/TextArea/TextArea.d.ts +1 -1
  16. package/es/components/TextArea/TextArea.js +1 -1
  17. package/lib/components/ComboBox/ComboBox.js +7 -2
  18. package/lib/components/Dropdown/Dropdown.js +4 -4
  19. package/lib/components/ExpandableSearch/ExpandableSearch.js +1 -1
  20. package/lib/components/ListBox/test-helpers.d.ts +71 -0
  21. package/lib/components/MultiSelect/FilterableMultiSelect.js +1 -1
  22. package/lib/components/MultiSelect/MultiSelect.js +1 -1
  23. package/lib/components/NumberInput/NumberInput.js +1 -1
  24. package/lib/components/Popover/index.js +1 -1
  25. package/lib/components/ProgressIndicator/ProgressIndicator.d.ts +1 -1
  26. package/lib/components/ProgressIndicator/ProgressIndicator.js +1 -1
  27. package/lib/components/Search/Search.d.ts +1 -1
  28. package/lib/components/Search/Search.js +1 -1
  29. package/lib/components/Select/Select.js +1 -1
  30. package/lib/components/TextArea/TextArea.d.ts +1 -1
  31. package/lib/components/TextArea/TextArea.js +1 -1
  32. package/package.json +9 -9
@@ -781,15 +781,20 @@ const ComboBox = /*#__PURE__*/forwardRef((props, ref) => {
781
781
  const {
782
782
  'aria-disabled': unusedAriaDisabled,
783
783
  // eslint-disable-line @typescript-eslint/no-unused-vars
784
+ 'aria-selected': unusedAriaSelected,
785
+ // eslint-disable-line @typescript-eslint/no-unused-vars
784
786
  ...modifiedItemProps
785
787
  } = itemProps;
788
+ const isSelected = isEqual(currentSelectedItem, item);
786
789
  return /*#__PURE__*/React.createElement(ListBox.MenuItem, _extends({
787
790
  key: itemProps.id,
788
- isActive: isEqual(currentSelectedItem, item),
791
+ isActive: isSelected,
789
792
  isHighlighted: highlightedIndex === index,
790
793
  title: title,
791
794
  disabled: disabled
792
- }, modifiedItemProps), itemToElement ? itemToElement(item) : itemToString(item), isEqual(currentSelectedItem, item) && /*#__PURE__*/React.createElement(Checkmark, {
795
+ }, modifiedItemProps, {
796
+ "aria-selected": isSelected
797
+ }), itemToElement ? itemToElement(item) : itemToString(item), isSelected && /*#__PURE__*/React.createElement(Checkmark, {
793
798
  className: `${prefix}--list-box__menu-item__selected-icon`
794
799
  }));
795
800
  }) : null)), helperText && !normalizedProps.invalid && !normalizedProps.warn && !isFluid && /*#__PURE__*/React.createElement(Text, {
@@ -260,7 +260,7 @@ const Dropdown = /*#__PURE__*/React.forwardRef(({
260
260
  className: helperClasses
261
261
  }, helperText) : null;
262
262
  const handleFocus = evt => {
263
- setIsFocused(evt.type === 'focus' && !selectedItem ? true : false);
263
+ setIsFocused(evt.type === 'focus' && !selectedItem);
264
264
  };
265
265
  const buttonRef = useRef(null);
266
266
  const mergedRef = mergeRefs(toggleButtonProps.ref, ref, buttonRef);
@@ -349,10 +349,10 @@ const Dropdown = /*#__PURE__*/React.forwardRef(({
349
349
  size: size$1,
350
350
  className: className,
351
351
  invalid: normalizedProps.invalid,
352
- invalidText: isFluid ? invalidText : undefined,
352
+ invalidText: invalidText,
353
353
  invalidTextId: normalizedProps.invalidId,
354
354
  warn: normalizedProps.warn,
355
- warnText: isFluid ? warnText : undefined,
355
+ warnText: warnText,
356
356
  warnTextId: normalizedProps.warnId,
357
357
  light: light,
358
358
  isOpen: isOpen,
@@ -398,7 +398,7 @@ const Dropdown = /*#__PURE__*/React.forwardRef(({
398
398
  }, itemProps), itemToElement ? itemToElement(item) : itemToString(item), selectedItem === item && /*#__PURE__*/React.createElement(Checkmark, {
399
399
  className: `${prefix}--list-box__menu-item__selected-icon`
400
400
  }));
401
- }))), !inline && !isFluid && !normalizedProps.validation && helper, !inline && !isFluid && normalizedProps.validation);
401
+ }))), !inline && !isFluid && !normalizedProps.validation && helper);
402
402
  });
403
403
 
404
404
  // Workaround problems with forwardRef() and generics. In the long term, should stop using forwardRef().
@@ -28,7 +28,7 @@ const ExpandableSearch = frFn((props, forwardedRef) => {
28
28
  ...rest
29
29
  } = props;
30
30
  const [expanded, setExpanded] = useState(isExpanded || false);
31
- const [hasContent, setHasContent] = useState(defaultValue ? true : false);
31
+ const [hasContent, setHasContent] = useState(Boolean(defaultValue));
32
32
  const searchRef = useRef(null);
33
33
  const prefix = usePrefix();
34
34
  function handleBlur(evt) {
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2026
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import '@testing-library/jest-dom/jest-globals';
8
+ export declare const findListBoxNode: () => Element | null;
9
+ export declare const findMenuNode: () => Element | null;
10
+ export declare const findMenuItemNode: (index: number) => Element;
11
+ export declare const findMenuIconNode: () => Element | null;
12
+ export declare const findFieldNode: () => Element | null;
13
+ export declare const findComboboxNode: () => Element | null;
14
+ export declare const findPopupNode: () => Element | null;
15
+ export declare const openMenu: () => Promise<void>;
16
+ export declare const assertMenuOpen: (mockProps: {
17
+ items: unknown[];
18
+ }) => void;
19
+ export declare const assertMenuClosed: () => void;
20
+ /**
21
+ * 'GenericItem' corresponds to an item in a collection that is passed to
22
+ * `MultiSelect` that is in a predictable shape and works with the default
23
+ * `itemToString` function.
24
+ */
25
+ export declare const generateGenericItem: (index: number) => {
26
+ id: string;
27
+ label: string;
28
+ value: number;
29
+ };
30
+ /**
31
+ * 'CustomItem' corresponds to a potentially different item structure that might
32
+ * be passed into `MultiSelect` that we would need to supply a custom
33
+ * `itemToString` method for.
34
+ */
35
+ export declare const generateCustomItem: (index: number) => {
36
+ field: string;
37
+ value: string;
38
+ };
39
+ /**
40
+ * Generates an array of values generated by the `generator` function.
41
+ */
42
+ export declare const generateItems: <T>(amount: number, generator: (index: number) => T) => T[];
43
+ export declare const customItemToString: ({ field, }: {
44
+ field: string;
45
+ value: string;
46
+ }) => string;
47
+ /**
48
+ * This object contains two sets of three items that share the same root
49
+ * word in different portions of the string (beginning, middle, end):
50
+ *
51
+ * - 'struct'
52
+ * - 'port'
53
+ *
54
+ * Separated by a disabled item, these derivative words are helpful when
55
+ * testing fuzzy search functions and components that do substring filtering.
56
+ */
57
+ export declare const cognateItems: ({
58
+ id: string;
59
+ text: string;
60
+ disabled?: undefined;
61
+ } | {
62
+ id: string;
63
+ text: string;
64
+ disabled: boolean;
65
+ })[];
66
+ /**
67
+ * Flushes microtasks to ensure element position state is settled
68
+ * From https://floating-ui.com/docs/react#testing
69
+ * More context here: https://github.com/floating-ui/react-popper/issues/368#issuecomment-1340413010
70
+ */
71
+ export declare const waitForPosition: () => Promise<void>;
@@ -622,7 +622,7 @@ const FilterableMultiSelect = /*#__PURE__*/forwardRef(function FilterableMultiSe
622
622
  if (evt?.target.classList.contains(`${prefix}--tag__close-icon`) || evt?.target.classList.contains(`${prefix}--list-box__selection`)) {
623
623
  setIsFocused(false);
624
624
  } else {
625
- setIsFocused(evt?.type === 'focus' ? true : false);
625
+ setIsFocused(evt?.type === 'focus');
626
626
  }
627
627
  };
628
628
  const mergedRef = mergeRefs(textInput, inputProp.ref);
@@ -390,7 +390,7 @@ const MultiSelect = /*#__PURE__*/React.forwardRef(({
390
390
  if (evt.target.classList.contains(`${prefix}--tag__close-icon`)) {
391
391
  setIsFocused(false);
392
392
  } else {
393
- setIsFocused(evt.type === 'focus' ? true : false);
393
+ setIsFocused(evt.type === 'focus');
394
394
  }
395
395
  };
396
396
  const readOnlyEventHandlers = readOnly ? {
@@ -445,7 +445,7 @@ const NumberInput = /*#__PURE__*/React.forwardRef((props, forwardRef) => {
445
445
  if ('type' in evt.target && evt.target.type === 'button') {
446
446
  setIsFocused(false);
447
447
  } else {
448
- setIsFocused(evt.type === 'focus' ? true : false);
448
+ setIsFocused(evt.type === 'focus');
449
449
  }
450
450
  };
451
451
  const outerElementClasses = cx(`${prefix}--form-item`, {
@@ -40,7 +40,7 @@ const Popover = /*#__PURE__*/React.forwardRef(function PopoverRenderFunction({
40
40
  autoAlign = false,
41
41
  autoAlignBoundary,
42
42
  backgroundToken = 'layer',
43
- caret = isTabTip ? false : true,
43
+ caret = !isTabTip,
44
44
  className: customClassName,
45
45
  children,
46
46
  border = false,
@@ -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.
@@ -65,7 +65,7 @@ function ProgressIndicator({
65
65
  if (index === currentIndex) {
66
66
  return /*#__PURE__*/React.cloneElement(child, {
67
67
  complete: child.props.complete,
68
- current: child.props.complete ? false : true,
68
+ current: !child.props.complete,
69
69
  index,
70
70
  onClick
71
71
  });
@@ -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.
@@ -47,7 +47,7 @@ const Search = /*#__PURE__*/React.forwardRef(({
47
47
  value,
48
48
  ...rest
49
49
  }, forwardRef) => {
50
- const hasPropValue = value || defaultValue ? true : false;
50
+ const hasPropValue = Boolean(value || defaultValue);
51
51
  const prefix = usePrefix();
52
52
  const {
53
53
  isFluid
@@ -107,7 +107,7 @@ const Select = /*#__PURE__*/forwardRef(({
107
107
  ariaProps['aria-describedby'] = helper ? normalizedProps.helperId : undefined;
108
108
  }
109
109
  const handleFocus = evt => {
110
- setIsFocused(evt.type === 'focus' ? true : false);
110
+ setIsFocused(evt.type === 'focus');
111
111
  };
112
112
  const handleChange = evt => {
113
113
  const selectedOption = evt?.target?.options[evt.target.selectedIndex];
@@ -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.
@@ -278,7 +278,7 @@ const TextArea = frFn((props, forwardRef) => {
278
278
  }, [ariaAnnouncement, prevAnnouncement, counterMode]);
279
279
  const input = /*#__PURE__*/React.createElement("textarea", _extends({}, other, textareaProps, {
280
280
  placeholder: placeholder,
281
- "aria-readonly": other.readOnly ? true : false,
281
+ "aria-readonly": Boolean(other.readOnly),
282
282
  className: textareaClasses,
283
283
  "aria-invalid": invalid,
284
284
  "aria-describedby": ariaDescribedBy,
@@ -785,15 +785,20 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
785
785
  const {
786
786
  'aria-disabled': unusedAriaDisabled,
787
787
  // eslint-disable-line @typescript-eslint/no-unused-vars
788
+ 'aria-selected': unusedAriaSelected,
789
+ // eslint-disable-line @typescript-eslint/no-unused-vars
788
790
  ...modifiedItemProps
789
791
  } = itemProps;
792
+ const isSelected = isEqual(currentSelectedItem, item);
790
793
  return /*#__PURE__*/React.createElement(index$2.default.MenuItem, _rollupPluginBabelHelpers.extends({
791
794
  key: itemProps.id,
792
- isActive: isEqual(currentSelectedItem, item),
795
+ isActive: isSelected,
793
796
  isHighlighted: highlightedIndex === index,
794
797
  title: title,
795
798
  disabled: disabled
796
- }, modifiedItemProps), itemToElement ? itemToElement(item) : itemToString(item), isEqual(currentSelectedItem, item) && /*#__PURE__*/React.createElement(iconsReact.Checkmark, {
799
+ }, modifiedItemProps, {
800
+ "aria-selected": isSelected
801
+ }), itemToElement ? itemToElement(item) : itemToString(item), isSelected && /*#__PURE__*/React.createElement(iconsReact.Checkmark, {
797
802
  className: `${prefix}--list-box__menu-item__selected-icon`
798
803
  }));
799
804
  }) : null)), helperText && !normalizedProps.invalid && !normalizedProps.warn && !isFluid && /*#__PURE__*/React.createElement(Text.Text, {
@@ -264,7 +264,7 @@ const Dropdown = /*#__PURE__*/React.forwardRef(({
264
264
  className: helperClasses
265
265
  }, helperText) : null;
266
266
  const handleFocus = evt => {
267
- setIsFocused(evt.type === 'focus' && !selectedItem ? true : false);
267
+ setIsFocused(evt.type === 'focus' && !selectedItem);
268
268
  };
269
269
  const buttonRef = React.useRef(null);
270
270
  const mergedRef = mergeRefs.mergeRefs(toggleButtonProps.ref, ref, buttonRef);
@@ -353,10 +353,10 @@ const Dropdown = /*#__PURE__*/React.forwardRef(({
353
353
  size: size,
354
354
  className: className,
355
355
  invalid: normalizedProps.invalid,
356
- invalidText: isFluid ? invalidText : undefined,
356
+ invalidText: invalidText,
357
357
  invalidTextId: normalizedProps.invalidId,
358
358
  warn: normalizedProps.warn,
359
- warnText: isFluid ? warnText : undefined,
359
+ warnText: warnText,
360
360
  warnTextId: normalizedProps.warnId,
361
361
  light: light,
362
362
  isOpen: isOpen,
@@ -402,7 +402,7 @@ const Dropdown = /*#__PURE__*/React.forwardRef(({
402
402
  }, itemProps), itemToElement ? itemToElement(item) : itemToString(item), selectedItem === item && /*#__PURE__*/React.createElement(iconsReact.Checkmark, {
403
403
  className: `${prefix}--list-box__menu-item__selected-icon`
404
404
  }));
405
- }))), !inline && !isFluid && !normalizedProps.validation && helper, !inline && !isFluid && normalizedProps.validation);
405
+ }))), !inline && !isFluid && !normalizedProps.validation && helper);
406
406
  });
407
407
 
408
408
  // Workaround problems with forwardRef() and generics. In the long term, should stop using forwardRef().
@@ -32,7 +32,7 @@ const ExpandableSearch = frFn((props, forwardedRef) => {
32
32
  ...rest
33
33
  } = props;
34
34
  const [expanded, setExpanded] = React.useState(isExpanded || false);
35
- const [hasContent, setHasContent] = React.useState(defaultValue ? true : false);
35
+ const [hasContent, setHasContent] = React.useState(Boolean(defaultValue));
36
36
  const searchRef = React.useRef(null);
37
37
  const prefix = usePrefix.usePrefix();
38
38
  function handleBlur(evt) {
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2026
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import '@testing-library/jest-dom/jest-globals';
8
+ export declare const findListBoxNode: () => Element | null;
9
+ export declare const findMenuNode: () => Element | null;
10
+ export declare const findMenuItemNode: (index: number) => Element;
11
+ export declare const findMenuIconNode: () => Element | null;
12
+ export declare const findFieldNode: () => Element | null;
13
+ export declare const findComboboxNode: () => Element | null;
14
+ export declare const findPopupNode: () => Element | null;
15
+ export declare const openMenu: () => Promise<void>;
16
+ export declare const assertMenuOpen: (mockProps: {
17
+ items: unknown[];
18
+ }) => void;
19
+ export declare const assertMenuClosed: () => void;
20
+ /**
21
+ * 'GenericItem' corresponds to an item in a collection that is passed to
22
+ * `MultiSelect` that is in a predictable shape and works with the default
23
+ * `itemToString` function.
24
+ */
25
+ export declare const generateGenericItem: (index: number) => {
26
+ id: string;
27
+ label: string;
28
+ value: number;
29
+ };
30
+ /**
31
+ * 'CustomItem' corresponds to a potentially different item structure that might
32
+ * be passed into `MultiSelect` that we would need to supply a custom
33
+ * `itemToString` method for.
34
+ */
35
+ export declare const generateCustomItem: (index: number) => {
36
+ field: string;
37
+ value: string;
38
+ };
39
+ /**
40
+ * Generates an array of values generated by the `generator` function.
41
+ */
42
+ export declare const generateItems: <T>(amount: number, generator: (index: number) => T) => T[];
43
+ export declare const customItemToString: ({ field, }: {
44
+ field: string;
45
+ value: string;
46
+ }) => string;
47
+ /**
48
+ * This object contains two sets of three items that share the same root
49
+ * word in different portions of the string (beginning, middle, end):
50
+ *
51
+ * - 'struct'
52
+ * - 'port'
53
+ *
54
+ * Separated by a disabled item, these derivative words are helpful when
55
+ * testing fuzzy search functions and components that do substring filtering.
56
+ */
57
+ export declare const cognateItems: ({
58
+ id: string;
59
+ text: string;
60
+ disabled?: undefined;
61
+ } | {
62
+ id: string;
63
+ text: string;
64
+ disabled: boolean;
65
+ })[];
66
+ /**
67
+ * Flushes microtasks to ensure element position state is settled
68
+ * From https://floating-ui.com/docs/react#testing
69
+ * More context here: https://github.com/floating-ui/react-popper/issues/368#issuecomment-1340413010
70
+ */
71
+ export declare const waitForPosition: () => Promise<void>;
@@ -624,7 +624,7 @@ const FilterableMultiSelect = /*#__PURE__*/React.forwardRef(function FilterableM
624
624
  if (evt?.target.classList.contains(`${prefix}--tag__close-icon`) || evt?.target.classList.contains(`${prefix}--list-box__selection`)) {
625
625
  setIsFocused(false);
626
626
  } else {
627
- setIsFocused(evt?.type === 'focus' ? true : false);
627
+ setIsFocused(evt?.type === 'focus');
628
628
  }
629
629
  };
630
630
  const mergedRef = mergeRefs.mergeRefs(textInput, inputProp.ref);
@@ -392,7 +392,7 @@ const MultiSelect = /*#__PURE__*/React.forwardRef(({
392
392
  if (evt.target.classList.contains(`${prefix}--tag__close-icon`)) {
393
393
  setIsFocused(false);
394
394
  } else {
395
- setIsFocused(evt.type === 'focus' ? true : false);
395
+ setIsFocused(evt.type === 'focus');
396
396
  }
397
397
  };
398
398
  const readOnlyEventHandlers = readOnly ? {
@@ -447,7 +447,7 @@ const NumberInput = /*#__PURE__*/React.forwardRef((props, forwardRef) => {
447
447
  if ('type' in evt.target && evt.target.type === 'button') {
448
448
  setIsFocused(false);
449
449
  } else {
450
- setIsFocused(evt.type === 'focus' ? true : false);
450
+ setIsFocused(evt.type === 'focus');
451
451
  }
452
452
  };
453
453
  const outerElementClasses = cx(`${prefix}--form-item`, {
@@ -42,7 +42,7 @@ const Popover = /*#__PURE__*/React.forwardRef(function PopoverRenderFunction({
42
42
  autoAlign = false,
43
43
  autoAlignBoundary,
44
44
  backgroundToken = 'layer',
45
- caret = isTabTip ? false : true,
45
+ caret = !isTabTip,
46
46
  className: customClassName,
47
47
  children,
48
48
  border = false,
@@ -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.
@@ -67,7 +67,7 @@ function ProgressIndicator({
67
67
  if (index === currentIndex) {
68
68
  return /*#__PURE__*/React.cloneElement(child, {
69
69
  complete: child.props.complete,
70
- current: child.props.complete ? false : true,
70
+ current: !child.props.complete,
71
71
  index,
72
72
  onClick
73
73
  });
@@ -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.
@@ -51,7 +51,7 @@ const Search = /*#__PURE__*/React.forwardRef(({
51
51
  value,
52
52
  ...rest
53
53
  }, forwardRef) => {
54
- const hasPropValue = value || defaultValue ? true : false;
54
+ const hasPropValue = Boolean(value || defaultValue);
55
55
  const prefix = usePrefix.usePrefix();
56
56
  const {
57
57
  isFluid
@@ -111,7 +111,7 @@ const Select = /*#__PURE__*/React.forwardRef(({
111
111
  ariaProps['aria-describedby'] = helper ? normalizedProps.helperId : undefined;
112
112
  }
113
113
  const handleFocus = evt => {
114
- setIsFocused(evt.type === 'focus' ? true : false);
114
+ setIsFocused(evt.type === 'focus');
115
115
  };
116
116
  const handleChange = evt => {
117
117
  const selectedOption = evt?.target?.options[evt.target.selectedIndex];
@@ -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.
@@ -282,7 +282,7 @@ const TextArea = frFn((props, forwardRef) => {
282
282
  }, [ariaAnnouncement, prevAnnouncement, counterMode]);
283
283
  const input = /*#__PURE__*/React.createElement("textarea", _rollupPluginBabelHelpers.extends({}, other, textareaProps, {
284
284
  placeholder: placeholder,
285
- "aria-readonly": other.readOnly ? true : false,
285
+ "aria-readonly": Boolean(other.readOnly),
286
286
  className: textareaClasses,
287
287
  "aria-invalid": invalid,
288
288
  "aria-describedby": ariaDescribedBy,
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.101.0-rc.0",
4
+ "version": "1.101.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -52,11 +52,11 @@
52
52
  },
53
53
  "dependencies": {
54
54
  "@babel/runtime": "^7.27.3",
55
- "@carbon/feature-flags": "0.33.0-rc.0",
56
- "@carbon/icons-react": "^11.75.0-rc.0",
57
- "@carbon/layout": "^11.48.0-rc.0",
58
- "@carbon/styles": "^1.100.0-rc.0",
59
- "@carbon/utilities": "^0.16.0-rc.0",
55
+ "@carbon/feature-flags": "1.0.0",
56
+ "@carbon/icons-react": "^11.75.0",
57
+ "@carbon/layout": "^11.48.0",
58
+ "@carbon/styles": "^1.100.0",
59
+ "@carbon/utilities": "^0.16.0",
60
60
  "@floating-ui/react": "^0.27.4",
61
61
  "@ibm/telemetry-js": "^1.5.0",
62
62
  "classnames": "2.5.1",
@@ -78,8 +78,8 @@
78
78
  "@babel/preset-env": "^7.27.2",
79
79
  "@babel/preset-react": "^7.27.1",
80
80
  "@babel/preset-typescript": "^7.27.1",
81
- "@carbon/test-utils": "^10.39.0",
82
- "@carbon/themes": "^11.68.0-rc.0",
81
+ "@carbon/test-utils": "^10.40.0",
82
+ "@carbon/themes": "^11.68.0",
83
83
  "@figma/code-connect": "^1.3.5",
84
84
  "@rollup/plugin-babel": "^6.0.0",
85
85
  "@rollup/plugin-commonjs": "^28.0.3",
@@ -131,5 +131,5 @@
131
131
  "**/*.scss",
132
132
  "**/*.css"
133
133
  ],
134
- "gitHead": "2878146d9047a6482e745e7279807c93855e9c09"
134
+ "gitHead": "6dde90f9edfb378e1585f1954c92484a37f22f02"
135
135
  }