@carbon/react 1.84.0 → 1.85.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 (181) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +899 -829
  2. package/es/components/AILabel/index.js +6 -1
  3. package/es/components/Checkbox/Checkbox.d.ts +2 -2
  4. package/es/components/Checkbox/Checkbox.js +8 -8
  5. package/es/components/CheckboxGroup/CheckboxGroup.d.ts +2 -2
  6. package/es/components/CheckboxGroup/CheckboxGroup.js +9 -8
  7. package/es/components/CodeSnippet/CodeSnippet.js +2 -4
  8. package/es/components/ComboBox/ComboBox.d.ts +1 -1
  9. package/es/components/ComboBox/ComboBox.js +8 -7
  10. package/es/components/ComposedModal/ComposedModal.d.ts +1 -1
  11. package/es/components/ComposedModal/ComposedModal.js +15 -10
  12. package/es/components/ContainedList/ContainedList.d.ts +1 -1
  13. package/es/components/ContainedList/ContainedList.js +4 -2
  14. package/es/components/ContentSwitcher/ContentSwitcher.js +6 -5
  15. package/es/components/DataTable/DataTable.js +3 -0
  16. package/es/components/DataTable/TableDecoratorRow.d.ts +2 -2
  17. package/es/components/DataTable/TableDecoratorRow.js +8 -8
  18. package/es/components/DataTable/TableExpandRow.d.ts +1 -1
  19. package/es/components/DataTable/TableExpandRow.js +15 -6
  20. package/es/components/DataTable/TableHeader.js +10 -10
  21. package/es/components/DataTable/TableRow.js +12 -4
  22. package/es/components/DataTable/tools/normalize.js +2 -1
  23. package/es/components/DatePicker/DatePicker.d.ts +1 -1
  24. package/es/components/DatePicker/DatePicker.js +2 -2
  25. package/es/components/DatePicker/plugins/appendToPlugin.d.ts +12 -0
  26. package/es/components/DatePicker/plugins/appendToPlugin.js +9 -12
  27. package/es/components/DatePickerInput/DatePickerInput.js +8 -7
  28. package/es/components/Dialog/index.d.ts +5 -1
  29. package/es/components/Dialog/index.js +20 -0
  30. package/es/components/Dropdown/Dropdown.d.ts +1 -1
  31. package/es/components/Dropdown/Dropdown.js +8 -10
  32. package/es/components/FileUploader/FileUploaderButton.js +2 -2
  33. package/es/components/FileUploader/FileUploaderDropContainer.js +2 -2
  34. package/es/components/FileUploader/FileUploaderItem.js +2 -2
  35. package/es/components/Layer/index.d.ts +1 -3
  36. package/es/components/Layer/index.js +9 -8
  37. package/es/components/Menu/Menu.js +7 -8
  38. package/es/components/Menu/MenuItem.js +13 -2
  39. package/es/components/Modal/Modal.d.ts +2 -2
  40. package/es/components/Modal/Modal.js +20 -9
  41. package/es/components/MultiSelect/FilterableMultiSelect.d.ts +1 -1
  42. package/es/components/MultiSelect/FilterableMultiSelect.js +9 -8
  43. package/es/components/MultiSelect/MultiSelect.d.ts +1 -1
  44. package/es/components/MultiSelect/MultiSelect.js +8 -7
  45. package/es/components/MultiSelect/filter.d.ts +10 -0
  46. package/es/components/MultiSelect/filter.js +21 -0
  47. package/es/components/NumberInput/NumberInput.d.ts +1 -1
  48. package/es/components/NumberInput/NumberInput.js +9 -8
  49. package/es/components/PageHeader/PageHeader.js +2 -2
  50. package/es/components/Popover/index.js +2 -1
  51. package/es/components/RadioButton/RadioButton.d.ts +2 -2
  52. package/es/components/RadioButton/RadioButton.js +8 -8
  53. package/es/components/RadioButtonGroup/RadioButtonGroup.d.ts +2 -2
  54. package/es/components/RadioButtonGroup/RadioButtonGroup.js +9 -8
  55. package/es/components/RadioTile/RadioTile.d.ts +1 -1
  56. package/es/components/RadioTile/RadioTile.js +8 -7
  57. package/es/components/Select/Select.d.ts +2 -2
  58. package/es/components/Select/Select.js +8 -7
  59. package/es/components/Slider/Slider.d.ts +59 -198
  60. package/es/components/Slider/Slider.js +68 -120
  61. package/es/components/Tabs/usePressable.d.ts +19 -0
  62. package/es/components/Tabs/usePressable.js +19 -33
  63. package/es/components/Tag/DismissibleTag.d.ts +1 -1
  64. package/es/components/Tag/DismissibleTag.js +9 -8
  65. package/es/components/Tag/Tag.d.ts +1 -1
  66. package/es/components/Tag/Tag.js +9 -8
  67. package/es/components/TextArea/TextArea.js +8 -7
  68. package/es/components/TextInput/TextInput.d.ts +1 -1
  69. package/es/components/TextInput/TextInput.js +20 -9
  70. package/es/components/Tile/Tile.d.ts +2 -2
  71. package/es/components/Tile/Tile.js +30 -36
  72. package/es/components/Toggletip/index.js +2 -2
  73. package/es/components/Tooltip/DefinitionTooltip.js +1 -0
  74. package/es/components/Tooltip/Tooltip.d.ts +2 -2
  75. package/es/components/Tooltip/Tooltip.js +2 -2
  76. package/es/components/TreeView/TreeNode.d.ts +22 -0
  77. package/es/components/TreeView/TreeNode.js +119 -12
  78. package/es/components/TreeView/TreeView.js +3 -3
  79. package/es/components/UIShell/Content.d.ts +5 -3
  80. package/es/components/UIShell/HeaderPanel.d.ts +2 -2
  81. package/es/components/UIShell/HeaderPanel.js +9 -5
  82. package/es/internal/Selection.js +8 -3
  83. package/es/internal/environment.js +1 -12
  84. package/{lib/internal/__mocks__/mockHTMLElement.d.ts → es/internal/index.d.ts} +2 -4
  85. package/es/internal/useResizeObserver.d.ts +1 -1
  86. package/es/internal/utils.d.ts +14 -0
  87. package/es/internal/utils.js +18 -0
  88. package/es/tools/uniqueId.d.ts +1 -6
  89. package/lib/components/AILabel/index.js +6 -1
  90. package/lib/components/Checkbox/Checkbox.d.ts +2 -2
  91. package/lib/components/Checkbox/Checkbox.js +7 -7
  92. package/lib/components/CheckboxGroup/CheckboxGroup.d.ts +2 -2
  93. package/lib/components/CheckboxGroup/CheckboxGroup.js +8 -7
  94. package/lib/components/CodeSnippet/CodeSnippet.js +2 -4
  95. package/lib/components/ComboBox/ComboBox.d.ts +1 -1
  96. package/lib/components/ComboBox/ComboBox.js +11 -10
  97. package/lib/components/ComposedModal/ComposedModal.d.ts +1 -1
  98. package/lib/components/ComposedModal/ComposedModal.js +16 -11
  99. package/lib/components/ContainedList/ContainedList.d.ts +1 -1
  100. package/lib/components/ContainedList/ContainedList.js +4 -2
  101. package/lib/components/ContentSwitcher/ContentSwitcher.js +5 -4
  102. package/lib/components/DataTable/DataTable.js +3 -0
  103. package/lib/components/DataTable/TableDecoratorRow.d.ts +2 -2
  104. package/lib/components/DataTable/TableDecoratorRow.js +8 -8
  105. package/lib/components/DataTable/TableExpandRow.d.ts +1 -1
  106. package/lib/components/DataTable/TableExpandRow.js +14 -5
  107. package/lib/components/DataTable/TableHeader.js +9 -9
  108. package/lib/components/DataTable/TableRow.js +11 -3
  109. package/lib/components/DataTable/tools/normalize.js +2 -1
  110. package/lib/components/DatePicker/DatePicker.d.ts +1 -1
  111. package/lib/components/DatePicker/DatePicker.js +1 -1
  112. package/lib/components/DatePicker/plugins/appendToPlugin.d.ts +12 -0
  113. package/lib/components/DatePicker/plugins/appendToPlugin.js +9 -12
  114. package/lib/components/DatePickerInput/DatePickerInput.js +7 -6
  115. package/lib/components/Dialog/index.d.ts +5 -1
  116. package/lib/components/Dialog/index.js +20 -0
  117. package/lib/components/Dropdown/Dropdown.d.ts +1 -1
  118. package/lib/components/Dropdown/Dropdown.js +12 -14
  119. package/lib/components/FileUploader/FileUploaderButton.js +2 -2
  120. package/lib/components/FileUploader/FileUploaderDropContainer.js +2 -2
  121. package/lib/components/FileUploader/FileUploaderItem.js +2 -2
  122. package/lib/components/Layer/index.d.ts +1 -3
  123. package/lib/components/Layer/index.js +9 -8
  124. package/lib/components/Menu/Menu.js +7 -8
  125. package/lib/components/Menu/MenuItem.js +13 -2
  126. package/lib/components/Modal/Modal.d.ts +2 -2
  127. package/lib/components/Modal/Modal.js +28 -17
  128. package/lib/components/MultiSelect/FilterableMultiSelect.d.ts +1 -1
  129. package/lib/components/MultiSelect/FilterableMultiSelect.js +13 -12
  130. package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
  131. package/lib/components/MultiSelect/MultiSelect.js +13 -12
  132. package/lib/components/MultiSelect/filter.d.ts +10 -0
  133. package/lib/components/MultiSelect/filter.js +25 -0
  134. package/lib/components/NumberInput/NumberInput.d.ts +1 -1
  135. package/lib/components/NumberInput/NumberInput.js +8 -7
  136. package/lib/components/PageHeader/PageHeader.js +2 -2
  137. package/lib/components/Popover/index.js +2 -1
  138. package/lib/components/RadioButton/RadioButton.d.ts +2 -2
  139. package/lib/components/RadioButton/RadioButton.js +7 -7
  140. package/lib/components/RadioButtonGroup/RadioButtonGroup.d.ts +2 -2
  141. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +10 -9
  142. package/lib/components/RadioTile/RadioTile.d.ts +1 -1
  143. package/lib/components/RadioTile/RadioTile.js +7 -6
  144. package/lib/components/Select/Select.d.ts +2 -2
  145. package/lib/components/Select/Select.js +7 -6
  146. package/lib/components/Slider/Slider.d.ts +59 -198
  147. package/lib/components/Slider/Slider.js +67 -119
  148. package/lib/components/Tabs/usePressable.d.ts +19 -0
  149. package/lib/components/Tabs/usePressable.js +19 -33
  150. package/lib/components/Tag/DismissibleTag.d.ts +1 -1
  151. package/lib/components/Tag/DismissibleTag.js +8 -7
  152. package/lib/components/Tag/Tag.d.ts +1 -1
  153. package/lib/components/Tag/Tag.js +8 -7
  154. package/lib/components/TextArea/TextArea.js +7 -6
  155. package/lib/components/TextInput/TextInput.d.ts +1 -1
  156. package/lib/components/TextInput/TextInput.js +19 -8
  157. package/lib/components/Tile/Tile.d.ts +2 -2
  158. package/lib/components/Tile/Tile.js +29 -35
  159. package/lib/components/Toggletip/index.js +2 -2
  160. package/lib/components/Tooltip/DefinitionTooltip.js +1 -0
  161. package/lib/components/Tooltip/Tooltip.d.ts +2 -2
  162. package/lib/components/Tooltip/Tooltip.js +2 -2
  163. package/lib/components/TreeView/TreeNode.d.ts +22 -0
  164. package/lib/components/TreeView/TreeNode.js +118 -11
  165. package/lib/components/TreeView/TreeView.js +3 -3
  166. package/lib/components/UIShell/Content.d.ts +5 -3
  167. package/lib/components/UIShell/HeaderPanel.d.ts +2 -2
  168. package/lib/components/UIShell/HeaderPanel.js +8 -4
  169. package/lib/internal/Selection.js +8 -3
  170. package/lib/internal/environment.js +1 -12
  171. package/{es/internal/__mocks__/mockHTMLElement.d.ts → lib/internal/index.d.ts} +2 -4
  172. package/lib/internal/useResizeObserver.d.ts +1 -1
  173. package/lib/internal/utils.d.ts +14 -0
  174. package/lib/internal/utils.js +22 -0
  175. package/lib/tools/uniqueId.d.ts +1 -6
  176. package/package.json +11 -20
  177. package/telemetry.yml +1 -0
  178. package/es/components/ComboBox/tools/filter.js +0 -18
  179. package/es/tools/uniqueId.js +0 -14
  180. package/lib/components/ComboBox/tools/filter.js +0 -22
  181. package/lib/tools/uniqueId.js +0 -18
@@ -16,9 +16,9 @@ var Downshift = require('downshift');
16
16
  var isEqual = require('react-fast-compare');
17
17
  var PropTypes = require('prop-types');
18
18
  var React = require('react');
19
- var filter = require('../ComboBox/tools/filter.js');
19
+ var filter = require('./filter.js');
20
20
  var MultiSelectPropTypes = require('./MultiSelectPropTypes.js');
21
- var index = require('../ListBox/index.js');
21
+ var index$1 = require('../ListBox/index.js');
22
22
  var ListBoxSelection = require('../ListBox/next/ListBoxSelection.js');
23
23
  var ListBoxTrigger = require('../ListBox/next/ListBoxTrigger.js');
24
24
  var keys = require('../../internal/keyboard/keys.js');
@@ -33,6 +33,8 @@ require('../FluidForm/FluidForm.js');
33
33
  var FormContext = require('../FluidForm/FormContext.js');
34
34
  var Selection = require('../../internal/Selection.js');
35
35
  var react = require('@floating-ui/react');
36
+ var index = require('../AILabel/index.js');
37
+ var utils = require('../../internal/utils.js');
36
38
  var ListBoxPropTypes = require('../ListBox/ListBoxPropTypes.js');
37
39
 
38
40
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -456,12 +458,11 @@ const FilterableMultiSelect = /*#__PURE__*/React.forwardRef(function FilterableM
456
458
  }
457
459
 
458
460
  // AILabel always size `mini`
459
- let normalizedDecorator = /*#__PURE__*/React__default["default"].isValidElement(slug ?? decorator) ? slug ?? decorator : null;
460
- if (normalizedDecorator && normalizedDecorator['type']?.displayName === 'AILabel') {
461
- normalizedDecorator = /*#__PURE__*/React__default["default"].cloneElement(normalizedDecorator, {
462
- size: 'mini'
463
- });
464
- }
461
+ const candidate = slug ?? decorator;
462
+ const candidateIsAILabel = utils.isComponentElement(candidate, index.AILabel);
463
+ const normalizedDecorator = candidateIsAILabel ? /*#__PURE__*/React.cloneElement(candidate, {
464
+ size: 'mini'
465
+ }) : null;
465
466
  const className = cx__default["default"](`${prefix}--multi-select`, `${prefix}--combo-box`, `${prefix}--multi-select--filterable`, {
466
467
  [`${prefix}--multi-select--invalid`]: invalid,
467
468
  [`${prefix}--multi-select--invalid--focused`]: invalid && inputFocused,
@@ -581,7 +582,7 @@ const FilterableMultiSelect = /*#__PURE__*/React.forwardRef(function FilterableM
581
582
  className: titleClasses
582
583
  }, labelProps), titleText, /*#__PURE__*/React__default["default"].createElement("span", {
583
584
  className: `${prefix}--visually-hidden`
584
- }, clearSelectionContent)) : null, /*#__PURE__*/React__default["default"].createElement(index["default"], {
585
+ }, clearSelectionContent)) : null, /*#__PURE__*/React__default["default"].createElement(index$1["default"], {
585
586
  onFocus: isFluid ? handleFocus : undefined,
586
587
  onBlur: isFluid ? handleFocus : undefined,
587
588
  className: className,
@@ -637,7 +638,7 @@ const FilterableMultiSelect = /*#__PURE__*/React.forwardRef(function FilterableM
637
638
  translateWithId: translateWithId
638
639
  }))), slug ? normalizedDecorator : decorator ? /*#__PURE__*/React__default["default"].createElement("div", {
639
640
  className: `${prefix}--list-box__inner-wrapper--decorator`
640
- }, normalizedDecorator) : '', /*#__PURE__*/React__default["default"].createElement(index["default"].Menu, menuProps, isOpen ? sortedItems.map((item, index$1) => {
641
+ }, normalizedDecorator) : '', /*#__PURE__*/React__default["default"].createElement(index$1["default"].Menu, menuProps, isOpen ? sortedItems.map((item, index) => {
641
642
  const isChecked = controlledSelectedItems.filter(selected => isEqual__default["default"](selected, item)).length > 0;
642
643
  const itemProps = getItemProps({
643
644
  item,
@@ -655,11 +656,11 @@ const FilterableMultiSelect = /*#__PURE__*/React.forwardRef(function FilterableM
655
656
  // eslint-disable-line @typescript-eslint/no-unused-vars
656
657
  ...modifiedItemProps
657
658
  } = itemProps;
658
- return /*#__PURE__*/React__default["default"].createElement(index["default"].MenuItem, _rollupPluginBabelHelpers["extends"]({
659
+ return /*#__PURE__*/React__default["default"].createElement(index$1["default"].MenuItem, _rollupPluginBabelHelpers["extends"]({
659
660
  key: itemProps.id,
660
661
  "aria-label": itemText,
661
662
  isActive: isChecked,
662
- isHighlighted: highlightedIndex === index$1,
663
+ isHighlighted: highlightedIndex === index,
663
664
  title: itemText,
664
665
  disabled: disabled
665
666
  }, modifiedItemProps), /*#__PURE__*/React__default["default"].createElement("div", {
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import { UseSelectProps } from 'downshift';
8
- import React, { ReactNode } from 'react';
8
+ import React, { type ReactNode } from 'react';
9
9
  import { type ListBoxSize, type ListBoxType } from '../ListBox';
10
10
  import { MultiSelectSortingProps } from './MultiSelectPropTypes';
11
11
  import { ListBoxProps } from '../ListBox/ListBox';
@@ -16,7 +16,7 @@ var Downshift = require('downshift');
16
16
  var isEqual = require('react-fast-compare');
17
17
  var PropTypes = require('prop-types');
18
18
  var React = require('react');
19
- var index$1 = require('../ListBox/index.js');
19
+ var index$2 = require('../ListBox/index.js');
20
20
  var MultiSelectPropTypes = require('./MultiSelectPropTypes.js');
21
21
  var sorting = require('./tools/sorting.js');
22
22
  var Selection = require('../../internal/Selection.js');
@@ -33,6 +33,8 @@ require('../Checkbox/Checkbox.Skeleton.js');
33
33
  var noopFn = require('../../internal/noopFn.js');
34
34
  var react = require('@floating-ui/react');
35
35
  var index = require('../FeatureFlags/index.js');
36
+ var index$1 = require('../AILabel/index.js');
37
+ var utils = require('../../internal/utils.js');
36
38
  var ListBoxPropTypes = require('../ListBox/ListBoxPropTypes.js');
37
39
 
38
40
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -420,12 +422,11 @@ const MultiSelect = /*#__PURE__*/React__default["default"].forwardRef(({
420
422
  } : {};
421
423
 
422
424
  // AILabel always size `mini`
423
- let normalizedDecorator = /*#__PURE__*/React__default["default"].isValidElement(slug ?? decorator) ? slug ?? decorator : null;
424
- if (normalizedDecorator && normalizedDecorator['type']?.displayName === 'AILabel') {
425
- normalizedDecorator = /*#__PURE__*/React__default["default"].cloneElement(normalizedDecorator, {
426
- size: 'mini'
427
- });
428
- }
425
+ const candidate = slug ?? decorator;
426
+ const candidateIsAILabel = utils.isComponentElement(candidate, index$1.AILabel);
427
+ const normalizedDecorator = candidateIsAILabel ? /*#__PURE__*/React.cloneElement(candidate, {
428
+ size: 'mini'
429
+ }) : null;
429
430
  const itemsSelectedText = selectedItems.length > 0 && selectedItems.map(item => item?.text);
430
431
  const selectedItemsLength = selectAll ? selectedItems.filter(item => !item.isSelectAll).length : selectedItems.length;
431
432
 
@@ -453,7 +454,7 @@ const MultiSelect = /*#__PURE__*/React__default["default"].forwardRef(({
453
454
  className: titleClasses
454
455
  }, labelProps), titleText && titleText, selectedItems.length > 0 && /*#__PURE__*/React__default["default"].createElement("span", {
455
456
  className: `${prefix}--visually-hidden`
456
- }, clearSelectionDescription, " ", selectedItems.length, ' ', itemsSelectedText, ",", clearSelectionText)), /*#__PURE__*/React__default["default"].createElement(index$1["default"], {
457
+ }, clearSelectionDescription, " ", selectedItems.length, ' ', itemsSelectedText, ",", clearSelectionText)), /*#__PURE__*/React__default["default"].createElement(index$2["default"], {
457
458
  onFocus: isFluid ? handleFocus : undefined,
458
459
  onBlur: isFluid ? handleFocus : undefined,
459
460
  type: type,
@@ -474,7 +475,7 @@ const MultiSelect = /*#__PURE__*/React__default["default"].forwardRef(({
474
475
  }), /*#__PURE__*/React__default["default"].createElement("div", {
475
476
  className: multiSelectFieldWrapperClasses,
476
477
  ref: enableFloatingStyles ? refs.setReference : null
477
- }, selectedItems.length > 0 && /*#__PURE__*/React__default["default"].createElement(index$1["default"].Selection, {
478
+ }, selectedItems.length > 0 && /*#__PURE__*/React__default["default"].createElement(index$2["default"].Selection, {
478
479
  readOnly: readOnly,
479
480
  clearSelection: !disabled && !readOnly ? clearSelection : noopFn.noopFn,
480
481
  selectionCount: selectedItemsLength
@@ -493,12 +494,12 @@ const MultiSelect = /*#__PURE__*/React__default["default"].forwardRef(({
493
494
  }, readOnlyEventHandlers), /*#__PURE__*/React__default["default"].createElement("span", {
494
495
  id: fieldLabelId,
495
496
  className: `${prefix}--list-box__label`
496
- }, label), /*#__PURE__*/React__default["default"].createElement(index$1["default"].MenuIcon, {
497
+ }, label), /*#__PURE__*/React__default["default"].createElement(index$2["default"].MenuIcon, {
497
498
  isOpen: isOpen,
498
499
  translateWithId: translateWithId
499
500
  })), slug ? normalizedDecorator : decorator ? /*#__PURE__*/React__default["default"].createElement("div", {
500
501
  className: `${prefix}--list-box__inner-wrapper--decorator`
501
- }, normalizedDecorator) : ''), /*#__PURE__*/React__default["default"].createElement(index$1["default"].Menu, menuProps, isOpen && sortItems(filteredItems, sortOptions).map((item, index) => {
502
+ }, normalizedDecorator) : ''), /*#__PURE__*/React__default["default"].createElement(index$2["default"].Menu, menuProps, isOpen && sortItems(filteredItems, sortOptions).map((item, index) => {
502
503
  const isChecked = selectedItems.filter(selected => isEqual__default["default"](selected, item)).length > 0;
503
504
  const {
504
505
  hasIndividualSelections,
@@ -513,7 +514,7 @@ const MultiSelect = /*#__PURE__*/React__default["default"].forwardRef(({
513
514
  ['aria-selected']: isChecked
514
515
  });
515
516
  const itemText = itemToString(item);
516
- return /*#__PURE__*/React__default["default"].createElement(index$1["default"].MenuItem, _rollupPluginBabelHelpers["extends"]({
517
+ return /*#__PURE__*/React__default["default"].createElement(index$2["default"].MenuItem, _rollupPluginBabelHelpers["extends"]({
517
518
  key: itemProps.id,
518
519
  isActive: isChecked && !item['isSelectAll'],
519
520
  "aria-label": itemText,
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2025
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
+ export declare const defaultFilterItems: <ItemType>(items: ItemType[], { itemToString, inputValue, }: {
8
+ itemToString: (item: ItemType | null) => string;
9
+ inputValue: string | null;
10
+ }) => ItemType[];
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ // TODO [@carbon-design-system/monorepo-reviewers]: This file was in the
13
+ // `ComboBox` directory before but it wasn't used there. Now it's used in
14
+ // `FilterableMultiSelect`. Is that expected?
15
+
16
+ const defaultFilterItems = (items, {
17
+ itemToString,
18
+ inputValue
19
+ }) => {
20
+ if (!inputValue) return items;
21
+ const normalizedInput = inputValue.toLowerCase();
22
+ return items.filter(item => itemToString(item).toLowerCase().includes(normalizedInput));
23
+ };
24
+
25
+ exports.defaultFilterItems = defaultFilterItems;
@@ -4,7 +4,7 @@
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.
6
6
  */
7
- import React, { ReactNode } from 'react';
7
+ import React, { type ReactNode } from 'react';
8
8
  import { TranslateWithId } from '../../types/common';
9
9
  import { type NumberFormatOptions } from '@carbon/utilities';
10
10
  export declare const translationIds: {
@@ -27,6 +27,8 @@ var utilities = require('@carbon/utilities');
27
27
  var keys = require('../../internal/keyboard/keys.js');
28
28
  var match = require('../../internal/keyboard/match.js');
29
29
  var NumberFormatPropTypes = require('./NumberFormatPropTypes.js');
30
+ var index = require('../AILabel/index.js');
31
+ var utils = require('../../internal/utils.js');
30
32
  var Text = require('../Text/Text.js');
31
33
 
32
34
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -272,16 +274,15 @@ const NumberInput = /*#__PURE__*/React__default["default"].forwardRef(function N
272
274
  };
273
275
 
274
276
  // AILabel always size `mini`
275
- let normalizedDecorator = /*#__PURE__*/React__default["default"].isValidElement(slug ?? decorator) ? slug ?? decorator : null;
276
- if (normalizedDecorator && normalizedDecorator['type']?.displayName === 'AILabel') {
277
- normalizedDecorator = /*#__PURE__*/React__default["default"].cloneElement(normalizedDecorator, {
278
- size: 'mini'
279
- });
280
- }
277
+ const candidate = slug ?? decorator;
278
+ const candidateIsAILabel = utils.isComponentElement(candidate, index.AILabel);
279
+ const normalizedDecorator = candidateIsAILabel ? /*#__PURE__*/React.cloneElement(candidate, {
280
+ size: 'mini'
281
+ }) : null;
281
282
 
282
283
  // Need to update the internal value when the revert button is clicked
283
284
  let isRevertActive;
284
- if (normalizedDecorator && normalizedDecorator['type']?.displayName === 'AILabel') {
285
+ if (normalizedDecorator?.type === index.AILabel) {
285
286
  isRevertActive = normalizedDecorator.props.revertActive;
286
287
  }
287
288
  React.useEffect(() => {
@@ -480,9 +480,9 @@ BreadcrumbBar.displayName = 'PageHeaderBreadcrumbBar';
480
480
  const Content = PageHeaderContent;
481
481
  Content.displayName = 'PageHeaderContent';
482
482
  const ContentPageActions = PageHeaderContentPageActions;
483
- Content.displayName = 'PageHeaderContentPageActions';
483
+ ContentPageActions.displayName = 'PageHeaderContentPageActions';
484
484
  const ContentText = PageHeaderContentText;
485
- Content.displayName = 'PageHeaderContentText';
485
+ ContentText.displayName = 'PageHeaderContentText';
486
486
  const HeroImage = PageHeaderHeroImage;
487
487
  HeroImage.displayName = 'PageHeaderHeroImage';
488
488
  const TabBar = PageHeaderTabBar;
@@ -21,6 +21,7 @@ var useEvent = require('../../internal/useEvent.js');
21
21
  var mapPopoverAlign = require('../../tools/mapPopoverAlign.js');
22
22
  var react = require('@floating-ui/react');
23
23
  var index = require('../FeatureFlags/index.js');
24
+ var index$1 = require('../Toggletip/index.js');
24
25
 
25
26
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
26
27
 
@@ -236,7 +237,7 @@ forwardRef) {
236
237
  // For a toggletip there is a specific trigger component, ToggletipButton.
237
238
  // In either of these cases we want to set this as the reference node for floating-ui autoAlign
238
239
  // positioning.
239
- if (enableFloatingStyles && item?.type?.displayName !== 'PopoverContent' || enableFloatingStyles && item?.type?.displayName === 'ToggletipButton') {
240
+ if (enableFloatingStyles && item?.type !== PopoverContent || enableFloatingStyles && item?.type === index$1.ToggletipButton) {
240
241
  // Set the reference element for floating-ui
241
242
  refs.setReference(node);
242
243
  }
@@ -1,10 +1,10 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2023
2
+ * Copyright IBM Corp. 2016, 2025
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.
6
6
  */
7
- import React, { ReactNode } from 'react';
7
+ import React, { type ReactNode } from 'react';
8
8
  type ExcludedAttributes = 'onChange';
9
9
  export interface RadioButtonProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, ExcludedAttributes> {
10
10
  /**
@@ -18,6 +18,8 @@ var deprecate = require('../../prop-types/deprecate.js');
18
18
  var usePrefix = require('../../internal/usePrefix.js');
19
19
  var useId = require('../../internal/useId.js');
20
20
  var mergeRefs = require('../../tools/mergeRefs.js');
21
+ var index = require('../AILabel/index.js');
22
+ var utils = require('../../internal/utils.js');
21
23
  var Text = require('../Text/Text.js');
22
24
 
23
25
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -57,13 +59,11 @@ const RadioButton = /*#__PURE__*/React__default["default"].forwardRef((props, re
57
59
  [`${prefix}--radio-button-wrapper--decorator`]: decorator
58
60
  });
59
61
  const inputRef = React.useRef(null);
60
- let normalizedDecorator = /*#__PURE__*/React__default["default"].isValidElement(slug ?? decorator) ? slug ?? decorator : null;
61
- if (normalizedDecorator && normalizedDecorator['type']?.displayName === 'AILabel') {
62
- const size = normalizedDecorator.props?.['kind'] === 'inline' ? 'md' : 'mini';
63
- normalizedDecorator = /*#__PURE__*/React__default["default"].cloneElement(normalizedDecorator, {
64
- size
65
- });
66
- }
62
+ const candidate = slug ?? decorator;
63
+ const candidateIsAILabel = utils.isComponentElement(candidate, index.AILabel);
64
+ const normalizedDecorator = candidateIsAILabel ? /*#__PURE__*/React.cloneElement(candidate, {
65
+ size: candidate.props?.['kind'] === 'inline' ? 'md' : 'mini'
66
+ }) : null;
67
67
  return /*#__PURE__*/React__default["default"].createElement("div", {
68
68
  className: wrapperClasses
69
69
  }, /*#__PURE__*/React__default["default"].createElement("input", _rollupPluginBabelHelpers["extends"]({}, rest, {
@@ -1,10 +1,10 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2023
2
+ * Copyright IBM Corp. 2016, 2025
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.
6
6
  */
7
- import React, { ReactNode } from 'react';
7
+ import React, { type ReactNode } from 'react';
8
8
  import type { RadioButtonProps } from '../RadioButton';
9
9
  export declare const RadioButtonGroupContext: React.Context<null>;
10
10
  type ExcludedAttributes = 'onChange';
@@ -13,12 +13,14 @@ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelper
13
13
  var PropTypes = require('prop-types');
14
14
  var React = require('react');
15
15
  var cx = require('classnames');
16
- var index = require('../Text/index.js');
16
+ var index$1 = require('../Text/index.js');
17
17
  var usePrefix = require('../../internal/usePrefix.js');
18
18
  var iconsReact = require('@carbon/icons-react');
19
19
  var deprecate = require('../../prop-types/deprecate.js');
20
20
  var mergeRefs = require('../../tools/mergeRefs.js');
21
21
  var useId = require('../../internal/useId.js');
22
+ var index = require('../AILabel/index.js');
23
+ var utils = require('../../internal/utils.js');
22
24
 
23
25
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
24
26
 
@@ -113,13 +115,12 @@ const RadioButtonGroup = /*#__PURE__*/React__default["default"].forwardRef((prop
113
115
  const divRef = React.useRef(null);
114
116
 
115
117
  // AILabel is always size `mini`
116
- let normalizedDecorator = /*#__PURE__*/React__default["default"].isValidElement(slug ?? decorator) ? slug ?? decorator : null;
117
- if (normalizedDecorator && normalizedDecorator['type']?.displayName === 'AILabel') {
118
- normalizedDecorator = /*#__PURE__*/React__default["default"].cloneElement(normalizedDecorator, {
119
- size: 'mini',
120
- kind: 'default'
121
- });
122
- }
118
+ const candidate = slug ?? decorator;
119
+ const candidateIsAILabel = utils.isComponentElement(candidate, index.AILabel);
120
+ const normalizedDecorator = candidateIsAILabel ? /*#__PURE__*/React.cloneElement(candidate, {
121
+ size: 'mini',
122
+ kind: 'default'
123
+ }) : null;
123
124
  return /*#__PURE__*/React__default["default"].createElement("div", {
124
125
  className: wrapperClasses,
125
126
  ref: mergeRefs["default"](divRef, ref)
@@ -128,7 +129,7 @@ const RadioButtonGroup = /*#__PURE__*/React__default["default"].forwardRef((prop
128
129
  disabled: disabled,
129
130
  "data-invalid": invalid ? true : undefined,
130
131
  "aria-describedby": showHelper && helperText ? helperId : undefined
131
- }, rest), legendText && /*#__PURE__*/React__default["default"].createElement(index.Legend, {
132
+ }, rest), legendText && /*#__PURE__*/React__default["default"].createElement(index$1.Legend, {
132
133
  className: `${prefix}--label`
133
134
  }, legendText, slug ? normalizedDecorator : decorator ? /*#__PURE__*/React__default["default"].createElement("div", {
134
135
  className: `${prefix}--radio-button-group-inner--decorator`
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2023
2
+ * Copyright IBM Corp. 2016, 2025
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.
@@ -22,6 +22,8 @@ var deprecate = require('../../prop-types/deprecate.js');
22
22
  var noopFn = require('../../internal/noopFn.js');
23
23
  require('../Text/index.js');
24
24
  var index = require('../FeatureFlags/index.js');
25
+ var index$1 = require('../AILabel/index.js');
26
+ var utils = require('../../internal/utils.js');
25
27
  var Text = require('../Text/Text.js');
26
28
 
27
29
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -82,12 +84,11 @@ const RadioTile = /*#__PURE__*/React__default["default"].forwardRef(function Rad
82
84
  }
83
85
 
84
86
  // AILabel is always size `xs`
85
- let normalizedDecorator = /*#__PURE__*/React__default["default"].isValidElement(slug ?? decorator) ? slug ?? decorator : null;
86
- if (normalizedDecorator && normalizedDecorator['type']?.displayName === 'AILabel') {
87
- normalizedDecorator = /*#__PURE__*/React__default["default"].cloneElement(normalizedDecorator, {
88
- size: 'xs'
89
- });
90
- }
87
+ const candidate = slug ?? decorator;
88
+ const candidateIsAILabel = utils.isComponentElement(candidate, index$1.AILabel);
89
+ const normalizedDecorator = candidateIsAILabel ? /*#__PURE__*/React.cloneElement(candidate, {
90
+ size: 'xs'
91
+ }) : null;
91
92
  return /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("input", {
92
93
  checked: checked,
93
94
  className: `${prefix}--tile-input`,
@@ -1,10 +1,10 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2023
2
+ * Copyright IBM Corp. 2016, 2025
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.
6
6
  */
7
- import React, { ChangeEventHandler, ComponentPropsWithRef, ReactNode } from 'react';
7
+ import React, { type ChangeEventHandler, type ComponentPropsWithRef, type ReactNode } from 'react';
8
8
  type ExcludedAttributes = 'size';
9
9
  export interface SelectProps extends Omit<ComponentPropsWithRef<'select'>, ExcludedAttributes> {
10
10
  /**
@@ -21,6 +21,8 @@ var FormContext = require('../FluidForm/FormContext.js');
21
21
  var useId = require('../../internal/useId.js');
22
22
  var events = require('../../tools/events.js');
23
23
  require('../Text/index.js');
24
+ var index = require('../AILabel/index.js');
25
+ var utils = require('../../internal/utils.js');
24
26
  var Text = require('../Text/Text.js');
25
27
 
26
28
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -144,12 +146,11 @@ const Select = /*#__PURE__*/React__default["default"].forwardRef(function Select
144
146
  };
145
147
 
146
148
  // AILabel always size `mini`
147
- let normalizedDecorator = /*#__PURE__*/React__default["default"].isValidElement(slug ?? decorator) ? slug ?? decorator : null;
148
- if (normalizedDecorator && normalizedDecorator['type']?.displayName === 'AILabel') {
149
- normalizedDecorator = /*#__PURE__*/React__default["default"].cloneElement(normalizedDecorator, {
150
- size: 'mini'
151
- });
152
- }
149
+ const candidate = slug ?? decorator;
150
+ const candidateIsAILabel = utils.isComponentElement(candidate, index.AILabel);
151
+ const normalizedDecorator = candidateIsAILabel ? /*#__PURE__*/React.cloneElement(candidate, {
152
+ size: 'mini'
153
+ }) : null;
153
154
  const input = (() => {
154
155
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("select", _rollupPluginBabelHelpers["extends"]({}, other, ariaProps, {
155
156
  id: id,