@carbon/react 1.84.0 → 1.85.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +784 -784
  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/DatePickerInput/DatePickerInput.js +8 -7
  24. package/es/components/Dialog/index.d.ts +5 -1
  25. package/es/components/Dialog/index.js +20 -0
  26. package/es/components/Dropdown/Dropdown.d.ts +1 -1
  27. package/es/components/Dropdown/Dropdown.js +8 -10
  28. package/es/components/FileUploader/FileUploaderButton.js +2 -2
  29. package/es/components/FileUploader/FileUploaderDropContainer.js +2 -2
  30. package/es/components/FileUploader/FileUploaderItem.js +2 -2
  31. package/es/components/Layer/index.d.ts +1 -3
  32. package/es/components/Layer/index.js +9 -8
  33. package/es/components/Menu/Menu.js +0 -6
  34. package/es/components/Modal/Modal.d.ts +2 -2
  35. package/es/components/Modal/Modal.js +20 -9
  36. package/es/components/MultiSelect/FilterableMultiSelect.d.ts +1 -1
  37. package/es/components/MultiSelect/FilterableMultiSelect.js +8 -7
  38. package/es/components/MultiSelect/MultiSelect.d.ts +1 -1
  39. package/es/components/MultiSelect/MultiSelect.js +8 -7
  40. package/es/components/NumberInput/NumberInput.d.ts +1 -1
  41. package/es/components/NumberInput/NumberInput.js +9 -8
  42. package/es/components/PageHeader/PageHeader.js +2 -2
  43. package/es/components/Popover/index.js +2 -1
  44. package/es/components/RadioButton/RadioButton.d.ts +2 -2
  45. package/es/components/RadioButton/RadioButton.js +8 -8
  46. package/es/components/RadioButtonGroup/RadioButtonGroup.d.ts +2 -2
  47. package/es/components/RadioButtonGroup/RadioButtonGroup.js +9 -8
  48. package/es/components/RadioTile/RadioTile.d.ts +1 -1
  49. package/es/components/RadioTile/RadioTile.js +8 -7
  50. package/es/components/Select/Select.d.ts +2 -2
  51. package/es/components/Select/Select.js +8 -7
  52. package/es/components/Tag/DismissibleTag.d.ts +1 -1
  53. package/es/components/Tag/DismissibleTag.js +9 -8
  54. package/es/components/Tag/Tag.d.ts +1 -1
  55. package/es/components/Tag/Tag.js +9 -8
  56. package/es/components/TextArea/TextArea.js +8 -7
  57. package/es/components/TextInput/TextInput.d.ts +1 -1
  58. package/es/components/TextInput/TextInput.js +20 -9
  59. package/es/components/Tile/Tile.d.ts +2 -2
  60. package/es/components/Tile/Tile.js +30 -36
  61. package/es/components/Toggletip/index.js +2 -2
  62. package/es/components/Tooltip/DefinitionTooltip.js +1 -0
  63. package/es/components/TreeView/TreeNode.js +3 -3
  64. package/es/components/TreeView/TreeView.js +3 -3
  65. package/es/components/UIShell/Content.d.ts +5 -3
  66. package/es/components/UIShell/HeaderPanel.d.ts +2 -2
  67. package/es/components/UIShell/HeaderPanel.js +9 -5
  68. package/es/internal/Selection.js +8 -3
  69. package/es/internal/environment.js +1 -12
  70. package/es/internal/{__mocks__/mockHTMLElement.d.ts → index.d.ts} +2 -4
  71. package/es/internal/useResizeObserver.d.ts +1 -1
  72. package/es/internal/utils.d.ts +14 -0
  73. package/es/internal/utils.js +18 -0
  74. package/es/tools/uniqueId.d.ts +1 -6
  75. package/lib/components/AILabel/index.js +6 -1
  76. package/lib/components/Checkbox/Checkbox.d.ts +2 -2
  77. package/lib/components/Checkbox/Checkbox.js +7 -7
  78. package/lib/components/CheckboxGroup/CheckboxGroup.d.ts +2 -2
  79. package/lib/components/CheckboxGroup/CheckboxGroup.js +8 -7
  80. package/lib/components/CodeSnippet/CodeSnippet.js +2 -4
  81. package/lib/components/ComboBox/ComboBox.d.ts +1 -1
  82. package/lib/components/ComboBox/ComboBox.js +11 -10
  83. package/lib/components/ComposedModal/ComposedModal.d.ts +1 -1
  84. package/lib/components/ComposedModal/ComposedModal.js +16 -11
  85. package/lib/components/ContainedList/ContainedList.d.ts +1 -1
  86. package/lib/components/ContainedList/ContainedList.js +4 -2
  87. package/lib/components/ContentSwitcher/ContentSwitcher.js +5 -4
  88. package/lib/components/DataTable/DataTable.js +3 -0
  89. package/lib/components/DataTable/TableDecoratorRow.d.ts +2 -2
  90. package/lib/components/DataTable/TableDecoratorRow.js +8 -8
  91. package/lib/components/DataTable/TableExpandRow.d.ts +1 -1
  92. package/lib/components/DataTable/TableExpandRow.js +14 -5
  93. package/lib/components/DataTable/TableHeader.js +9 -9
  94. package/lib/components/DataTable/TableRow.js +11 -3
  95. package/lib/components/DataTable/tools/normalize.js +2 -1
  96. package/lib/components/DatePickerInput/DatePickerInput.js +7 -6
  97. package/lib/components/Dialog/index.d.ts +5 -1
  98. package/lib/components/Dialog/index.js +20 -0
  99. package/lib/components/Dropdown/Dropdown.d.ts +1 -1
  100. package/lib/components/Dropdown/Dropdown.js +12 -14
  101. package/lib/components/FileUploader/FileUploaderButton.js +2 -2
  102. package/lib/components/FileUploader/FileUploaderDropContainer.js +2 -2
  103. package/lib/components/FileUploader/FileUploaderItem.js +2 -2
  104. package/lib/components/Layer/index.d.ts +1 -3
  105. package/lib/components/Layer/index.js +9 -8
  106. package/lib/components/Menu/Menu.js +0 -6
  107. package/lib/components/Modal/Modal.d.ts +2 -2
  108. package/lib/components/Modal/Modal.js +28 -17
  109. package/lib/components/MultiSelect/FilterableMultiSelect.d.ts +1 -1
  110. package/lib/components/MultiSelect/FilterableMultiSelect.js +12 -11
  111. package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
  112. package/lib/components/MultiSelect/MultiSelect.js +13 -12
  113. package/lib/components/NumberInput/NumberInput.d.ts +1 -1
  114. package/lib/components/NumberInput/NumberInput.js +8 -7
  115. package/lib/components/PageHeader/PageHeader.js +2 -2
  116. package/lib/components/Popover/index.js +2 -1
  117. package/lib/components/RadioButton/RadioButton.d.ts +2 -2
  118. package/lib/components/RadioButton/RadioButton.js +7 -7
  119. package/lib/components/RadioButtonGroup/RadioButtonGroup.d.ts +2 -2
  120. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +10 -9
  121. package/lib/components/RadioTile/RadioTile.d.ts +1 -1
  122. package/lib/components/RadioTile/RadioTile.js +7 -6
  123. package/lib/components/Select/Select.d.ts +2 -2
  124. package/lib/components/Select/Select.js +7 -6
  125. package/lib/components/Tag/DismissibleTag.d.ts +1 -1
  126. package/lib/components/Tag/DismissibleTag.js +8 -7
  127. package/lib/components/Tag/Tag.d.ts +1 -1
  128. package/lib/components/Tag/Tag.js +8 -7
  129. package/lib/components/TextArea/TextArea.js +7 -6
  130. package/lib/components/TextInput/TextInput.d.ts +1 -1
  131. package/lib/components/TextInput/TextInput.js +19 -8
  132. package/lib/components/Tile/Tile.d.ts +2 -2
  133. package/lib/components/Tile/Tile.js +29 -35
  134. package/lib/components/Toggletip/index.js +2 -2
  135. package/lib/components/Tooltip/DefinitionTooltip.js +1 -0
  136. package/lib/components/TreeView/TreeNode.js +3 -3
  137. package/lib/components/TreeView/TreeView.js +3 -3
  138. package/lib/components/UIShell/Content.d.ts +5 -3
  139. package/lib/components/UIShell/HeaderPanel.d.ts +2 -2
  140. package/lib/components/UIShell/HeaderPanel.js +8 -4
  141. package/lib/internal/Selection.js +8 -3
  142. package/lib/internal/environment.js +1 -12
  143. package/lib/internal/{__mocks__/mockHTMLElement.d.ts → index.d.ts} +2 -4
  144. package/lib/internal/useResizeObserver.d.ts +1 -1
  145. package/lib/internal/utils.d.ts +14 -0
  146. package/lib/internal/utils.js +22 -0
  147. package/lib/tools/uniqueId.d.ts +1 -6
  148. package/package.json +11 -20
  149. package/telemetry.yml +1 -0
  150. package/es/tools/uniqueId.js +0 -14
  151. package/lib/tools/uniqueId.js +0 -18
@@ -15,7 +15,7 @@ var Downshift = require('downshift');
15
15
  var cx = require('classnames');
16
16
  var PropTypes = require('prop-types');
17
17
  var iconsReact = require('@carbon/icons-react');
18
- var index$1 = require('../ListBox/index.js');
18
+ var index$2 = require('../ListBox/index.js');
19
19
  var mergeRefs = require('../../tools/mergeRefs.js');
20
20
  var deprecate = require('../../prop-types/deprecate.js');
21
21
  var usePrefix = require('../../internal/usePrefix.js');
@@ -24,6 +24,8 @@ var FormContext = require('../FluidForm/FormContext.js');
24
24
  var useId = require('../../internal/useId.js');
25
25
  var react = require('@floating-ui/react');
26
26
  var index = require('../FeatureFlags/index.js');
27
+ var index$1 = require('../AILabel/index.js');
28
+ var utils = require('../../internal/utils.js');
27
29
  var ListBoxPropTypes = require('../ListBox/ListBoxPropTypes.js');
28
30
 
29
31
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -318,15 +320,11 @@ const Dropdown = /*#__PURE__*/React__default["default"].forwardRef(({
318
320
  }), [autoAlign, getMenuProps, refs.setFloating, enableFloatingStyles]);
319
321
 
320
322
  // AILabel is always size `mini`
321
- const normalizedDecorator = React.useMemo(() => {
322
- let element = slug ?? decorator;
323
- if (element && element['type']?.displayName === 'AILabel') {
324
- return /*#__PURE__*/React__default["default"].cloneElement(element, {
325
- size: 'mini'
326
- });
327
- }
328
- return /*#__PURE__*/React__default["default"].isValidElement(element) ? element : null;
329
- }, [slug, decorator]);
323
+ const candidate = slug ?? decorator;
324
+ const candidateIsAILabel = utils.isComponentElement(candidate, index$1.AILabel);
325
+ const normalizedDecorator = candidateIsAILabel ? /*#__PURE__*/React.cloneElement(candidate, {
326
+ size: 'mini'
327
+ }) : null;
330
328
  const allLabelProps = getLabelProps();
331
329
  const labelProps = /*#__PURE__*/React.isValidElement(titleText) ? {
332
330
  id: allLabelProps.id
@@ -335,7 +333,7 @@ const Dropdown = /*#__PURE__*/React__default["default"].forwardRef(({
335
333
  className: wrapperClasses
336
334
  }, other), titleText && /*#__PURE__*/React__default["default"].createElement("label", _rollupPluginBabelHelpers["extends"]({
337
335
  className: titleClasses
338
- }, labelProps), titleText), /*#__PURE__*/React__default["default"].createElement(index$1["default"], {
336
+ }, labelProps), titleText), /*#__PURE__*/React__default["default"].createElement(index$2["default"], {
339
337
  onFocus: handleFocus,
340
338
  onBlur: handleFocus,
341
339
  size: size,
@@ -366,19 +364,19 @@ const Dropdown = /*#__PURE__*/React__default["default"].forwardRef(({
366
364
  ref: mergedRef
367
365
  }), /*#__PURE__*/React__default["default"].createElement("span", {
368
366
  className: `${prefix}--list-box__label`
369
- }, selectedItem ? renderSelectedItem ? renderSelectedItem(selectedItem) : itemToString(selectedItem) : label), /*#__PURE__*/React__default["default"].createElement(index$1["default"].MenuIcon, {
367
+ }, selectedItem ? renderSelectedItem ? renderSelectedItem(selectedItem) : itemToString(selectedItem) : label), /*#__PURE__*/React__default["default"].createElement(index$2["default"].MenuIcon, {
370
368
  isOpen: isOpen,
371
369
  translateWithId: translateWithId
372
370
  })), slug ? normalizedDecorator : decorator ? /*#__PURE__*/React__default["default"].createElement("div", {
373
371
  className: `${prefix}--list-box__inner-wrapper--decorator`
374
- }, normalizedDecorator) : '', /*#__PURE__*/React__default["default"].createElement(index$1["default"].Menu, menuProps, isOpen && items.map((item, index) => {
372
+ }, normalizedDecorator) : '', /*#__PURE__*/React__default["default"].createElement(index$2["default"].Menu, menuProps, isOpen && items.map((item, index) => {
375
373
  const isObject = item !== null && typeof item === 'object';
376
374
  const itemProps = getItemProps({
377
375
  item,
378
376
  index
379
377
  });
380
378
  const title = isObject && 'text' in item && itemToElement ? item.text : itemToString(item);
381
- return /*#__PURE__*/React__default["default"].createElement(index$1["default"].MenuItem, _rollupPluginBabelHelpers["extends"]({
379
+ return /*#__PURE__*/React__default["default"].createElement(index$2["default"].MenuItem, _rollupPluginBabelHelpers["extends"]({
382
380
  key: itemProps.id,
383
381
  isActive: selectedItem === item,
384
382
  isHighlighted: highlightedIndex === index,
@@ -15,7 +15,7 @@ var PropTypes = require('prop-types');
15
15
  var React = require('react');
16
16
  var keys = require('../../internal/keyboard/keys.js');
17
17
  var match = require('../../internal/keyboard/match.js');
18
- var uniqueId = require('../../tools/uniqueId.js');
18
+ var useId = require('../../internal/useId.js');
19
19
  var usePrefix = require('../../internal/usePrefix.js');
20
20
  var deprecate = require('../../prop-types/deprecate.js');
21
21
  var noopFn = require('../../internal/noopFn.js');
@@ -49,7 +49,7 @@ function FileUploaderButton({
49
49
  const [prevOwnerLabelText, setPrevOwnerLabelText] = React.useState(ownerLabelText);
50
50
  const {
51
51
  current: inputId
52
- } = React.useRef(id || uniqueId.uniqueId());
52
+ } = React.useRef(id || useId.useId());
53
53
  const inputNode = React.useRef(null);
54
54
  const classes = cx__default["default"](`${prefix}--btn`, className, {
55
55
  [`${prefix}--btn--${buttonKind}`]: buttonKind,
@@ -15,7 +15,7 @@ var PropTypes = require('prop-types');
15
15
  var cx = require('classnames');
16
16
  var keys = require('../../internal/keyboard/keys.js');
17
17
  var match = require('../../internal/keyboard/match.js');
18
- var uniqueId = require('../../tools/uniqueId.js');
18
+ var useId = require('../../internal/useId.js');
19
19
  var usePrefix = require('../../internal/usePrefix.js');
20
20
  var events = require('../../tools/events.js');
21
21
  var deprecate = require('../../prop-types/deprecate.js');
@@ -46,7 +46,7 @@ function FileUploaderDropContainer({
46
46
  const inputRef = React.useRef(null);
47
47
  const {
48
48
  current: uid
49
- } = React.useRef(id || uniqueId.uniqueId());
49
+ } = React.useRef(id || useId.useId());
50
50
  const [isActive, setActive] = React.useState(false);
51
51
  const dropareaClasses = cx__default["default"](`${prefix}--file__drop-container`, `${prefix}--file-browse-btn`, {
52
52
  [`${prefix}--file__drop-container--drag-over`]: isActive,
@@ -16,7 +16,7 @@ var React = require('react');
16
16
  var Filename = require('./Filename.js');
17
17
  var keys = require('../../internal/keyboard/keys.js');
18
18
  var match = require('../../internal/keyboard/match.js');
19
- var uniqueId = require('../../tools/uniqueId.js');
19
+ var useId = require('../../internal/useId.js');
20
20
  var usePrefix = require('../../internal/usePrefix.js');
21
21
  var noopFn = require('../../internal/noopFn.js');
22
22
  require('../Text/index.js');
@@ -48,7 +48,7 @@ function FileUploaderItem({
48
48
  const prefix = usePrefix.usePrefix();
49
49
  const {
50
50
  current: id
51
- } = React.useRef(uuid || uniqueId.uniqueId());
51
+ } = React.useRef(uuid || useId.useId());
52
52
  const classes = cx__default["default"](`${prefix}--file__selected-file`, className, {
53
53
  [`${prefix}--file__selected-file--invalid`]: invalid,
54
54
  [`${prefix}--file__selected-file--md`]: size === 'md',
@@ -35,7 +35,5 @@ export interface LayerBaseProps {
35
35
  withBackground?: boolean;
36
36
  }
37
37
  export type LayerProps<T extends React.ElementType> = PolymorphicComponentPropWithRef<T, LayerBaseProps>;
38
- declare const Layer: React.ForwardRefExoticComponent<LayerBaseProps & {
39
- as?: React.ElementType;
40
- } & React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<any>>;
38
+ declare const Layer: React.ForwardRefExoticComponent<Omit<LayerProps<React.ElementType<any, keyof React.JSX.IntrinsicElements>>, "ref"> & React.RefAttributes<unknown>>;
41
39
  export { Layer };
@@ -35,14 +35,15 @@ function useLayer() {
35
35
  level
36
36
  };
37
37
  }
38
- const Layer = /*#__PURE__*/React__default["default"].forwardRef(({
39
- as,
40
- className: customClassName,
41
- children,
42
- level: overrideLevel,
43
- withBackground = false,
44
- ...rest
45
- }, ref) => {
38
+ const Layer = /*#__PURE__*/React__default["default"].forwardRef((props, ref) => {
39
+ const {
40
+ as,
41
+ className: customClassName,
42
+ children,
43
+ level: overrideLevel,
44
+ withBackground = false,
45
+ ...rest
46
+ } = props;
46
47
  const contextLevel = React__default["default"].useContext(LayerContext.LayerContext);
47
48
  const level = overrideLevel ?? contextLevel;
48
49
  const prefix = usePrefix.usePrefix();
@@ -44,12 +44,6 @@ const Menu = /*#__PURE__*/React.forwardRef(function Menu({
44
44
  open,
45
45
  size = 'sm',
46
46
  legacyAutoalign = 'true',
47
- // TODO: `ssr-friendly` doesn't support ESLint v9.
48
- // https://github.com/kopiro/eslint-plugin-ssr-friendly/issues/30
49
- // https://github.com/carbon-design-system/carbon/issues/18991
50
- /*
51
- // eslint-disable-next-line ssr-friendly/no-dom-globals-in-react-fc
52
- */
53
47
  target = environment.canUseDOM && document.body,
54
48
  x = 0,
55
49
  y = 0,
@@ -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, { type HTMLAttributes, type ReactNode, type Ref } from 'react';
7
+ import React, { type HTMLAttributes, type ReactNode, type RefObject } from 'react';
8
8
  import { InlineLoadingStatus } from '../InlineLoading/InlineLoading';
9
9
  export declare const ModalSizes: readonly ["xs", "sm", "md", "lg"];
10
10
  export type ModalSize = (typeof ModalSizes)[number];
@@ -57,7 +57,7 @@ export interface ModalProps extends HTMLAttributes<HTMLDivElement> {
57
57
  /**
58
58
  * Provide a ref to return focus to once the modal is closed.
59
59
  */
60
- launcherButtonRef?: Ref<HTMLButtonElement>;
60
+ launcherButtonRef?: RefObject<HTMLButtonElement | null>;
61
61
  /**
62
62
  * Specify the description for the loading text
63
63
  */
@@ -19,7 +19,7 @@ var Button = require('../Button/Button.js');
19
19
  require('../Button/Button.Skeleton.js');
20
20
  var ButtonSet = require('../ButtonSet/ButtonSet.js');
21
21
  var InlineLoading = require('../InlineLoading/InlineLoading.js');
22
- var index$3 = require('../Layer/index.js');
22
+ var index$4 = require('../Layer/index.js');
23
23
  var requiredIfGivenPropIsTruthy = require('../../prop-types/requiredIfGivenPropIsTruthy.js');
24
24
  var wrapFocus = require('../../internal/wrapFocus.js');
25
25
  var useIsomorphicEffect = require('../../internal/useIsomorphicEffect.js');
@@ -28,13 +28,15 @@ var usePrefix = require('../../internal/usePrefix.js');
28
28
  var usePreviousValue = require('../../internal/usePreviousValue.js');
29
29
  var keys = require('../../internal/keyboard/keys.js');
30
30
  var match = require('../../internal/keyboard/match.js');
31
- var index$2 = require('../IconButton/index.js');
31
+ var index$3 = require('../IconButton/index.js');
32
32
  var noopFn = require('../../internal/noopFn.js');
33
33
  require('../Text/index.js');
34
34
  var index = require('../FeatureFlags/index.js');
35
35
  var events = require('../../tools/events.js');
36
36
  var deprecate = require('../../prop-types/deprecate.js');
37
- var index$1 = require('../Dialog/index.js');
37
+ var index$2 = require('../Dialog/index.js');
38
+ var index$1 = require('../AILabel/index.js');
39
+ var utils = require('../../internal/utils.js');
38
40
  var warning = require('../../internal/warning.js');
39
41
  var debounce = require('../../node_modules/es-toolkit/dist/compat/function/debounce.mjs.js');
40
42
  var Text = require('../Text/Text.js');
@@ -46,6 +48,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
46
48
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
47
49
 
48
50
  const ModalSizes = ['xs', 'sm', 'md', 'lg'];
51
+ const invalidOutsideClickMessage = '`Modal`: `preventCloseOnClickOutside` should not be `false` when `passiveModal` is `false`. Non-passive `Modal`s should not be dismissible by clicking outside.';
49
52
  const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal({
50
53
  'aria-label': ariaLabelProp,
51
54
  children,
@@ -71,7 +74,7 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal({
71
74
  size,
72
75
  hasScrollingContent = false,
73
76
  closeButtonLabel = 'Close',
74
- preventCloseOnClickOutside = false,
77
+ preventCloseOnClickOutside = !passiveModal,
75
78
  isFullWidth,
76
79
  launcherButtonRef,
77
80
  loadingStatus = 'inactive',
@@ -102,6 +105,9 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal({
102
105
  const focusTrapWithoutSentinels = index.useFeatureFlag('enable-experimental-focus-wrap-without-sentinels');
103
106
  const enableDialogElement = index.useFeatureFlag('enable-dialog-element');
104
107
  process.env.NODE_ENV !== "production" ? warning.warning(!(focusTrapWithoutSentinels && enableDialogElement), '`<Modal>` detected both `focusTrapWithoutSentinels` and ' + '`enableDialogElement` feature flags are enabled. The native dialog ' + 'element handles focus, so `enableDialogElement` must be off for ' + '`focusTrapWithoutSentinels` to have any effect.') : void 0;
108
+ if (!passiveModal && preventCloseOnClickOutside === false) {
109
+ console.error(invalidOutsideClickMessage);
110
+ }
105
111
  function isCloseButton(element) {
106
112
  return !onSecondarySubmit && element === secondaryButton.current || element.classList.contains(modalCloseButtonClass);
107
113
  }
@@ -275,15 +281,14 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal({
275
281
  }, []);
276
282
 
277
283
  // AILabel always size `sm`
278
- let normalizedDecorator = /*#__PURE__*/React__default["default"].isValidElement(slug ?? decorator) ? slug ?? decorator : null;
279
- if (normalizedDecorator && normalizedDecorator['type']?.displayName === 'AILabel') {
280
- normalizedDecorator = /*#__PURE__*/React__default["default"].cloneElement(normalizedDecorator, {
281
- size: 'sm'
282
- });
283
- }
284
+ const candidate = slug ?? decorator;
285
+ const candidateIsAILabel = utils.isComponentElement(candidate, index$1.AILabel);
286
+ const normalizedDecorator = candidateIsAILabel ? /*#__PURE__*/React.cloneElement(candidate, {
287
+ size: 'sm'
288
+ }) : null;
284
289
  const modalButton = /*#__PURE__*/React__default["default"].createElement("div", {
285
290
  className: `${prefix}--modal-close-button`
286
- }, /*#__PURE__*/React__default["default"].createElement(index$2.IconButton, {
291
+ }, /*#__PURE__*/React__default["default"].createElement(index$3.IconButton, {
287
292
  className: modalCloseButtonClass,
288
293
  label: closeButtonLabel,
289
294
  onClick: onRequestClose,
@@ -300,8 +305,9 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal({
300
305
  // alertdialog is the only permitted aria role for a native dialog element
301
306
  // https://www.w3.org/TR/html-aria/#docconformance:~:text=Role%3A-,alertdialog,-.%20(dialog%20is
302
307
  const isAlertDialog = alert && !passiveModal;
303
- const modalBody = enableDialogElement ? /*#__PURE__*/React__default["default"].createElement(index$1.unstable__Dialog, {
308
+ const modalBody = enableDialogElement ? /*#__PURE__*/React__default["default"].createElement(index$2.unstable__Dialog, {
304
309
  open: open,
310
+ focusAfterCloseRef: launcherButtonRef,
305
311
  modal: true,
306
312
  ref: innerModal,
307
313
  role: isAlertDialog ? 'alertdialog' : '',
@@ -322,7 +328,7 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal({
322
328
  className: `${prefix}--modal--inner__decorator`
323
329
  }, normalizedDecorator) : '', /*#__PURE__*/React__default["default"].createElement("div", {
324
330
  className: `${prefix}--modal-close-button`
325
- }, /*#__PURE__*/React__default["default"].createElement(index$2.IconButton, {
331
+ }, /*#__PURE__*/React__default["default"].createElement(index$3.IconButton, {
326
332
  className: modalCloseButtonClass,
327
333
  label: closeButtonLabel,
328
334
  onClick: onRequestClose,
@@ -334,7 +340,7 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal({
334
340
  "aria-hidden": "true",
335
341
  tabIndex: "-1",
336
342
  className: `${modalCloseButtonClass}__icon`
337
- })))), /*#__PURE__*/React__default["default"].createElement(index$3.Layer, _rollupPluginBabelHelpers["extends"]({
343
+ })))), /*#__PURE__*/React__default["default"].createElement(index$4.Layer, _rollupPluginBabelHelpers["extends"]({
338
344
  ref: contentRef,
339
345
  id: modalBodyId,
340
346
  className: contentClasses
@@ -390,7 +396,7 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal({
390
396
  className: `${prefix}--modal-header__heading`
391
397
  }, modalHeading), slug ? normalizedDecorator : decorator ? /*#__PURE__*/React__default["default"].createElement("div", {
392
398
  className: `${prefix}--modal--inner__decorator`
393
- }, normalizedDecorator) : '', !passiveModal && modalButton), /*#__PURE__*/React__default["default"].createElement(index$3.Layer, _rollupPluginBabelHelpers["extends"]({
399
+ }, normalizedDecorator) : '', !passiveModal && modalButton), /*#__PURE__*/React__default["default"].createElement(index$4.Layer, _rollupPluginBabelHelpers["extends"]({
394
400
  ref: contentRef,
395
401
  id: modalBodyId,
396
402
  className: contentClasses
@@ -427,7 +433,7 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal({
427
433
  role: "link",
428
434
  className: `${prefix}--visually-hidden`
429
435
  }, "Focus sentinel"));
430
- return /*#__PURE__*/React__default["default"].createElement(index$3.Layer, _rollupPluginBabelHelpers["extends"]({}, rest, {
436
+ return /*#__PURE__*/React__default["default"].createElement(index$4.Layer, _rollupPluginBabelHelpers["extends"]({}, rest, {
431
437
  level: 0,
432
438
  onKeyDown: handleKeyDown,
433
439
  onClick: events.composeEventHandlers([rest?.onClick, handleOnClick]),
@@ -548,7 +554,12 @@ Modal.propTypes = {
548
554
  /**
549
555
  * Prevent closing on click outside of modal
550
556
  */
551
- preventCloseOnClickOutside: PropTypes__default["default"].bool,
557
+ preventCloseOnClickOutside: (props, propName) => {
558
+ if (!props.passiveModal && props[propName] === false) {
559
+ return new Error(invalidOutsideClickMessage);
560
+ }
561
+ return null;
562
+ },
552
563
  /**
553
564
  * Specify whether the Button should be disabled, or not
554
565
  */
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import { type UseComboboxProps, type UseMultipleSelectionProps } from 'downshift';
8
- import React, { ReactNode, FunctionComponent, ReactElement } from 'react';
8
+ import React, { type FunctionComponent, type ReactElement, type ReactNode } from 'react';
9
9
  import { type MultiSelectSortingProps } from './MultiSelectPropTypes';
10
10
  import { type ListBoxSize, type ListBoxType } from '../ListBox';
11
11
  import { TranslateWithId } from '../../types/common';
@@ -18,7 +18,7 @@ var PropTypes = require('prop-types');
18
18
  var React = require('react');
19
19
  var filter = require('../ComboBox/tools/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,
@@ -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, {