@carbon/react 1.106.0 → 1.107.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 (161) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +1017 -982
  2. package/es/components/Accordion/AccordionItem.d.ts +2 -2
  3. package/es/components/Button/Button.d.ts +2 -2
  4. package/es/components/Button/Button.js +1 -1
  5. package/es/components/Checkbox/Checkbox.js +2 -1
  6. package/es/components/CheckboxGroup/CheckboxGroup.js +2 -1
  7. package/es/components/ComboBox/ComboBox.d.ts +1 -1
  8. package/es/components/ComboBox/ComboBox.js +1 -1
  9. package/es/components/ComboButton/index.js +2 -2
  10. package/es/components/ContentSwitcher/ContentSwitcher.d.ts +1 -1
  11. package/es/components/ContentSwitcher/ContentSwitcher.js +24 -15
  12. package/es/components/DataTable/DataTable.d.ts +3 -3
  13. package/es/components/DataTable/TableActionList.d.ts +1 -1
  14. package/es/components/DataTable/TableHead.d.ts +1 -1
  15. package/es/components/DataTable/TableSlugRow.d.ts +2 -2
  16. package/es/components/DataTable/TableSlugRow.js +8 -11
  17. package/es/components/DataTable/TableToolbarContent.d.ts +1 -1
  18. package/es/components/DataTable/TableToolbarSearch.d.ts +5 -1
  19. package/es/components/DatePicker/DatePicker.js +15 -13
  20. package/es/components/DatePicker/plugins/fixEventsPlugin.js +2 -3
  21. package/es/components/Dropdown/Dropdown.d.ts +1 -1
  22. package/es/components/FluidTimePicker/FluidTimePicker.d.ts +1 -1
  23. package/es/components/FluidTimePicker/FluidTimePicker.js +6 -4
  24. package/es/components/FluidTimePickerSelect/FluidTimePickerSelect.d.ts +4 -0
  25. package/es/components/FluidTimePickerSelect/FluidTimePickerSelect.js +2 -1
  26. package/es/components/FluidTimePickerSelect/index.js +18 -0
  27. package/es/components/Grid/CSSGrid.js +11 -6
  28. package/es/components/Grid/Column.d.ts +2 -2
  29. package/es/components/Grid/ColumnHang.d.ts +3 -3
  30. package/es/components/Grid/ColumnHang.js +1 -1
  31. package/es/components/Grid/FlexGrid.js +5 -3
  32. package/es/components/Grid/Grid.js +2 -1
  33. package/es/components/Grid/GridTypes.d.ts +5 -0
  34. package/es/components/Grid/Row.d.ts +3 -3
  35. package/es/components/Grid/Row.js +1 -1
  36. package/es/components/Menu/Menu.js +1 -1
  37. package/es/components/Menu/MenuItem.js +4 -0
  38. package/es/components/Modal/Modal.d.ts +1 -1
  39. package/es/components/Modal/Modal.js +20 -6
  40. package/es/components/MultiSelect/FilterableMultiSelect.d.ts +1 -1
  41. package/es/components/MultiSelect/FilterableMultiSelect.js +3 -2
  42. package/es/components/MultiSelect/MultiSelect.d.ts +1 -1
  43. package/es/components/NumberInput/NumberInput.js +4 -2
  44. package/es/components/OverflowMenu/OverflowMenu.js +11 -12
  45. package/es/components/Pagination/Pagination.d.ts +1 -1
  46. package/es/components/Pagination/Pagination.js +2 -0
  47. package/es/components/Popover/index.js +14 -1
  48. package/es/components/RadioButtonGroup/RadioButtonGroup.d.ts +1 -1
  49. package/es/components/RadioButtonGroup/RadioButtonGroup.js +8 -6
  50. package/es/components/Search/Search.Skeleton.d.ts +12 -3
  51. package/es/components/Search/Search.Skeleton.js +16 -8
  52. package/es/components/Search/Search.d.ts +1 -1
  53. package/es/components/Search/Search.js +4 -4
  54. package/es/components/Select/Select.d.ts +1 -1
  55. package/es/components/Select/Select.js +7 -6
  56. package/es/components/Slider/Slider.js +58 -76
  57. package/es/components/Tabs/Tabs.js +2 -2
  58. package/es/components/TextArea/TextArea.js +5 -2
  59. package/es/components/TextInput/ControlledPasswordInput.js +2 -1
  60. package/es/components/TextInput/PasswordInput.d.ts +2 -2
  61. package/es/components/TextInput/PasswordInput.js +33 -21
  62. package/es/components/TextInput/TextInput.Skeleton.d.ts +10 -2
  63. package/es/components/TextInput/TextInput.Skeleton.js +10 -4
  64. package/es/components/TextInput/TextInput.d.ts +1 -1
  65. package/es/components/TextInput/TextInput.js +39 -30
  66. package/es/components/TextInput/util.d.ts +1 -0
  67. package/es/components/TextInput/util.js +1 -1
  68. package/es/components/Theme/index.d.ts +2 -2
  69. package/es/components/Theme/index.js +3 -3
  70. package/es/components/TimePicker/TimePicker.js +5 -2
  71. package/es/components/TreeView/TreeNode.js +2 -2
  72. package/es/components/UIShell/HeaderGlobalBar.d.ts +1 -1
  73. package/es/components/UIShell/HeaderMenu.d.ts +1 -1
  74. package/es/components/UIShell/HeaderMenu.js +5 -3
  75. package/es/index.js +2 -2
  76. package/es/internal/FloatingMenu.d.ts +5 -1
  77. package/es/internal/hasHelperText.d.ts +8 -0
  78. package/es/internal/hasHelperText.js +11 -0
  79. package/es/tools/wrapComponent.d.ts +3 -3
  80. package/es/tools/wrapComponent.js +1 -1
  81. package/lib/components/Accordion/AccordionItem.d.ts +2 -2
  82. package/lib/components/Button/Button.d.ts +2 -2
  83. package/lib/components/Button/Button.js +1 -1
  84. package/lib/components/Checkbox/Checkbox.js +2 -1
  85. package/lib/components/CheckboxGroup/CheckboxGroup.js +2 -1
  86. package/lib/components/ComboBox/ComboBox.d.ts +1 -1
  87. package/lib/components/ComboBox/ComboBox.js +1 -1
  88. package/lib/components/ComboButton/index.js +2 -2
  89. package/lib/components/ContentSwitcher/ContentSwitcher.d.ts +1 -1
  90. package/lib/components/ContentSwitcher/ContentSwitcher.js +22 -13
  91. package/lib/components/DataTable/DataTable.d.ts +3 -3
  92. package/lib/components/DataTable/TableActionList.d.ts +1 -1
  93. package/lib/components/DataTable/TableHead.d.ts +1 -1
  94. package/lib/components/DataTable/TableSlugRow.d.ts +2 -2
  95. package/lib/components/DataTable/TableSlugRow.js +7 -10
  96. package/lib/components/DataTable/TableToolbarContent.d.ts +1 -1
  97. package/lib/components/DataTable/TableToolbarSearch.d.ts +5 -1
  98. package/lib/components/DatePicker/DatePicker.js +15 -13
  99. package/lib/components/DatePicker/plugins/fixEventsPlugin.js +1 -2
  100. package/lib/components/Dropdown/Dropdown.d.ts +1 -1
  101. package/lib/components/FluidTimePicker/FluidTimePicker.d.ts +1 -1
  102. package/lib/components/FluidTimePicker/FluidTimePicker.js +5 -3
  103. package/lib/components/FluidTimePickerSelect/FluidTimePickerSelect.d.ts +4 -0
  104. package/lib/components/FluidTimePickerSelect/FluidTimePickerSelect.js +2 -1
  105. package/lib/components/FluidTimePickerSelect/index.js +17 -0
  106. package/lib/components/Grid/CSSGrid.js +11 -6
  107. package/lib/components/Grid/Column.d.ts +2 -2
  108. package/lib/components/Grid/ColumnHang.d.ts +3 -3
  109. package/lib/components/Grid/ColumnHang.js +1 -1
  110. package/lib/components/Grid/FlexGrid.js +5 -3
  111. package/lib/components/Grid/Grid.js +2 -1
  112. package/lib/components/Grid/GridTypes.d.ts +5 -0
  113. package/lib/components/Grid/Row.d.ts +3 -3
  114. package/lib/components/Grid/Row.js +1 -1
  115. package/lib/components/Menu/Menu.js +1 -1
  116. package/lib/components/Menu/MenuItem.js +4 -0
  117. package/lib/components/Modal/Modal.d.ts +1 -1
  118. package/lib/components/Modal/Modal.js +19 -5
  119. package/lib/components/MultiSelect/FilterableMultiSelect.d.ts +1 -1
  120. package/lib/components/MultiSelect/FilterableMultiSelect.js +3 -2
  121. package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
  122. package/lib/components/NumberInput/NumberInput.js +4 -2
  123. package/lib/components/OverflowMenu/OverflowMenu.js +10 -11
  124. package/lib/components/Pagination/Pagination.d.ts +1 -1
  125. package/lib/components/Pagination/Pagination.js +2 -0
  126. package/lib/components/Popover/index.js +14 -1
  127. package/lib/components/RadioButtonGroup/RadioButtonGroup.d.ts +1 -1
  128. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +7 -5
  129. package/lib/components/Search/Search.Skeleton.d.ts +12 -3
  130. package/lib/components/Search/Search.Skeleton.js +15 -7
  131. package/lib/components/Search/Search.d.ts +1 -1
  132. package/lib/components/Search/Search.js +4 -4
  133. package/lib/components/Select/Select.d.ts +1 -1
  134. package/lib/components/Select/Select.js +7 -6
  135. package/lib/components/Slider/Slider.js +58 -76
  136. package/lib/components/Tabs/Tabs.js +2 -2
  137. package/lib/components/TextArea/TextArea.js +5 -2
  138. package/lib/components/TextInput/ControlledPasswordInput.js +2 -1
  139. package/lib/components/TextInput/PasswordInput.d.ts +2 -2
  140. package/lib/components/TextInput/PasswordInput.js +33 -21
  141. package/lib/components/TextInput/TextInput.Skeleton.d.ts +10 -2
  142. package/lib/components/TextInput/TextInput.Skeleton.js +10 -4
  143. package/lib/components/TextInput/TextInput.d.ts +1 -1
  144. package/lib/components/TextInput/TextInput.js +39 -30
  145. package/lib/components/TextInput/util.d.ts +1 -0
  146. package/lib/components/TextInput/util.js +1 -1
  147. package/lib/components/Theme/index.d.ts +2 -2
  148. package/lib/components/Theme/index.js +2 -2
  149. package/lib/components/TimePicker/TimePicker.js +5 -2
  150. package/lib/components/TreeView/TreeNode.js +1 -1
  151. package/lib/components/UIShell/HeaderGlobalBar.d.ts +1 -1
  152. package/lib/components/UIShell/HeaderMenu.d.ts +1 -1
  153. package/lib/components/UIShell/HeaderMenu.js +5 -3
  154. package/lib/index.js +2 -2
  155. package/lib/internal/FloatingMenu.d.ts +5 -1
  156. package/lib/internal/hasHelperText.d.ts +8 -0
  157. package/lib/internal/hasHelperText.js +11 -0
  158. package/lib/tools/wrapComponent.d.ts +3 -3
  159. package/lib/tools/wrapComponent.js +1 -1
  160. package/package.json +11 -11
  161. package/telemetry.yml +1 -0
@@ -13,9 +13,11 @@ const require_setupGetInstanceId = require("../../tools/setupGetInstanceId.js");
13
13
  const require_noopFn = require("../../internal/noopFn.js");
14
14
  const require_deprecate = require("../../prop-types/deprecate.js");
15
15
  const require_deprecateValuesWithin = require("../../prop-types/deprecateValuesWithin.js");
16
+ const require_utils = require("../../internal/utils.js");
16
17
  const require_mapPopoverAlign = require("../../tools/mapPopoverAlign.js");
17
18
  const require_index = require("../IconButton/index.js");
18
19
  const require_mergeRefs = require("../../tools/mergeRefs.js");
20
+ const require_OverflowMenuItem = require("../OverflowMenuItem/OverflowMenuItem.js");
19
21
  const require_FloatingMenu = require("../../internal/FloatingMenu.js");
20
22
  const require_useOutsideClick = require("../../internal/useOutsideClick.js");
21
23
  let classnames = require("classnames");
@@ -227,17 +229,14 @@ const OverflowMenu = (0, react.forwardRef)(({ align, ["aria-label"]: ariaLabel =
227
229
  });
228
230
  const overflowMenuIconClasses = (0, classnames.default)(`${prefix}--overflow-menu__icon`, iconClass);
229
231
  const childrenWithProps = react.Children.toArray(children).map((child, index) => {
230
- if ((0, react.isValidElement)(child)) {
231
- const childElement = child;
232
- return (0, react.cloneElement)(childElement, {
233
- closeMenu: childElement.props.closeMenu || closeMenuAndFocus,
234
- handleOverflowMenuItemFocus,
235
- ref: (el) => {
236
- menuItemRefs.current[index] = el;
237
- },
238
- index
239
- });
240
- }
232
+ if (require_utils.isComponentElement(child, require_OverflowMenuItem.default)) return (0, react.cloneElement)(child, {
233
+ closeMenu: child.props.closeMenu || closeMenuAndFocus,
234
+ handleOverflowMenuItemFocus,
235
+ ref: (el) => {
236
+ menuItemRefs.current[index] = el;
237
+ },
238
+ index
239
+ });
241
240
  return null;
242
241
  });
243
242
  const wrappedMenuBody = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_FloatingMenu.FloatingMenu, {
@@ -96,7 +96,7 @@ export interface PaginationProps extends Omit<React.HTMLAttributes<HTMLDivElemen
96
96
  /**
97
97
  * Specify the size of the Pagination.
98
98
  */
99
- size?: 'sm' | 'md' | 'lg';
99
+ size?: 'xs' | 'sm' | 'md' | 'lg';
100
100
  /**
101
101
  * The total number of items.
102
102
  */
@@ -75,6 +75,7 @@ const Pagination = react.default.forwardRef(({ backwardText = "Previous page", c
75
75
  const className = (0, classnames.default)({
76
76
  [`${prefix}--pagination`]: true,
77
77
  [`${prefix}--pagination--${size}`]: size,
78
+ [`${prefix}--layout--size-${size}`]: size,
78
79
  [customClassName]: !!customClassName
79
80
  });
80
81
  const totalPages = totalItems ? Math.max(Math.ceil(totalItems / pageSize), 1) : 1;
@@ -292,6 +293,7 @@ Pagination.propTypes = {
292
293
  pageText: prop_types.default.func,
293
294
  pagesUnknown: prop_types.default.bool,
294
295
  size: prop_types.default.oneOf([
296
+ "xs",
295
297
  "sm",
296
298
  "md",
297
299
  "lg"
@@ -41,6 +41,18 @@ const Popover = react.default.forwardRef(function PopoverRenderFunction({ isTabT
41
41
  const popover = (0, react.useRef)(null);
42
42
  const enableFloatingStyles = require_index.useFeatureFlag("enable-v12-dynamic-floating-styles") || autoAlign;
43
43
  const lastClickWasInsidePopoverContent = (0, react.useRef)(false);
44
+ const isTargetInDatePickerInsidePopover = (target) => {
45
+ if (!popover.current) return false;
46
+ const calendar = target instanceof Element && target.closest(".flatpickr-calendar");
47
+ if (!calendar) return false;
48
+ const inputs = popover.current.querySelectorAll("input");
49
+ for (const input of inputs) {
50
+ if (!("_flatpickr" in input)) continue;
51
+ const fp = input._flatpickr;
52
+ if (fp && typeof fp === "object" && "calendarContainer" in fp && fp.calendarContainer === calendar) return true;
53
+ }
54
+ return false;
55
+ };
44
56
  let align = require_mapPopoverAlign.mapPopoverAlign(initialAlign);
45
57
  require_useEvent.useEvent(popover, "mousedown", (event) => {
46
58
  const target = event.target;
@@ -58,13 +70,14 @@ const Popover = react.default.forwardRef(function PopoverRenderFunction({ isTabT
58
70
  }
59
71
  onRequestClose?.();
60
72
  } else if (relatedTarget && !popover.current?.contains(relatedTarget)) {
73
+ if (isTargetInDatePickerInsidePopover(relatedTarget)) return;
61
74
  const isOutsideFloating = enableFloatingStyles && refs.floating.current ? !refs.floating.current.contains(relatedTarget) : true;
62
75
  const isFocusableWrapper = relatedTarget && popover.current && relatedTarget.contains(popover.current);
63
76
  if (isOutsideFloating && !isFocusableWrapper) onRequestClose?.();
64
77
  }
65
78
  });
66
79
  require_useEvent.useWindowEvent("click", ({ target }) => {
67
- if (open && target instanceof Node && !popover.current?.contains(target)) onRequestClose?.();
80
+ if (open && target instanceof Node && !popover.current?.contains(target) && !isTargetInDatePickerInsidePopover(target)) onRequestClose?.();
68
81
  });
69
82
  const popoverDimensions = (0, react.useRef)({
70
83
  offset: 10,
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React, { type ReactNode } from 'react';
8
- import type { RadioButtonProps } from '../RadioButton';
8
+ import { type RadioButtonProps } from '../RadioButton';
9
9
  export declare const RadioButtonGroupContext: React.Context<null>;
10
10
  type ExcludedAttributes = 'onChange';
11
11
  export interface RadioButtonGroupProps extends Omit<React.InputHTMLAttributes<HTMLFieldSetElement>, ExcludedAttributes> {
@@ -10,8 +10,10 @@ const require_usePrefix = require("../../internal/usePrefix.js");
10
10
  const require_useId = require("../../internal/useId.js");
11
11
  const require_deprecate = require("../../prop-types/deprecate.js");
12
12
  const require_utils = require("../../internal/utils.js");
13
+ const require_hasHelperText = require("../../internal/hasHelperText.js");
13
14
  const require_index = require("../AILabel/index.js");
14
15
  const require_mergeRefs = require("../../tools/mergeRefs.js");
16
+ const require_index$1 = require("../RadioButton/index.js");
15
17
  const require_createTextComponent = require("../Text/createTextComponent.js");
16
18
  let classnames = require("classnames");
17
19
  classnames = require_runtime.__toESM(classnames);
@@ -35,8 +37,8 @@ const RadioButtonGroup = react.default.forwardRef((props, ref) => {
35
37
  }
36
38
  }, [valueSelected]);
37
39
  function getRadioButtons() {
38
- return react.default.Children.map(children, (radioButton) => {
39
- if (!radioButton) return;
40
+ return react.Children.map(children, (radioButton) => {
41
+ if (!require_utils.isComponentElement(radioButton, require_index$1.default)) return radioButton;
40
42
  const newProps = {
41
43
  name,
42
44
  key: radioButton.props.value,
@@ -46,7 +48,7 @@ const RadioButtonGroup = react.default.forwardRef((props, ref) => {
46
48
  required
47
49
  };
48
50
  if (!selected && radioButton.props.checked) newProps.checked = true;
49
- return react.default.cloneElement(radioButton, newProps);
51
+ return (0, react.cloneElement)(radioButton, newProps);
50
52
  });
51
53
  }
52
54
  function handleOnChange(newSelection, value, evt) {
@@ -70,7 +72,7 @@ const RadioButtonGroup = react.default.forwardRef((props, ref) => {
70
72
  [`${prefix}--radio-button-group--decorator`]: decorator
71
73
  });
72
74
  const helperClasses = (0, classnames.default)(`${prefix}--form__helper-text`, { [`${prefix}--form__helper-text--disabled`]: disabled });
73
- const hasHelper = typeof helperText !== "undefined" && helperText !== null;
75
+ const hasHelper = require_hasHelperText.hasHelperText(helperText);
74
76
  const helperId = !hasHelper ? void 0 : `radio-button-group-helper-text-${radioButtonGroupInstanceId}`;
75
77
  const helper = hasHelper && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
76
78
  id: helperId,
@@ -91,7 +93,7 @@ const RadioButtonGroup = react.default.forwardRef((props, ref) => {
91
93
  className: fieldsetClasses,
92
94
  disabled,
93
95
  "data-invalid": invalid ? true : void 0,
94
- "aria-describedby": showHelper && helperText ? helperId : void 0,
96
+ "aria-describedby": showHelper && hasHelper ? helperId : void 0,
95
97
  ...rest,
96
98
  children: [legendText && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_createTextComponent.Legend, {
97
99
  className: `${prefix}--label`,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2023
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.
@@ -11,22 +11,31 @@ export interface SearchSkeletonProps extends React.HTMLAttributes<HTMLDivElement
11
11
  * Specify an optional className to add.
12
12
  */
13
13
  className?: string;
14
+ /**
15
+ * Specify the size of the SearchSkeleton
16
+ */
17
+ size?: 'xs' | 'sm' | 'md' | 'lg';
14
18
  /**
15
19
  * Specify whether the Search should be a small variant.
20
+ * @deprecated Use `size` prop instead. This prop will be removed in the next major release.
16
21
  */
17
22
  small?: boolean;
18
23
  }
19
24
  declare const SearchSkeleton: {
20
- ({ small, className, ...rest }: SearchSkeletonProps): import("react/jsx-runtime").JSX.Element;
25
+ ({ small, size, className, ...rest }: SearchSkeletonProps): import("react/jsx-runtime").JSX.Element;
21
26
  propTypes: {
22
27
  /**
23
28
  * Specify an optional className to add.
24
29
  */
25
30
  className: PropTypes.Requireable<string>;
31
+ /**
32
+ * Specify the size of the SearchSkeleton
33
+ */
34
+ size: PropTypes.Requireable<string>;
26
35
  /**
27
36
  * Specify whether the Search should be a small variant
28
37
  */
29
- small: PropTypes.Requireable<boolean>;
38
+ small: (props: Record<string, any>, propName: string, componentName: string, ...rest: any[]) => any;
30
39
  };
31
40
  };
32
41
  export default SearchSkeleton;
@@ -7,6 +7,7 @@
7
7
 
8
8
  const require_runtime = require("../../_virtual/_rolldown/runtime.js");
9
9
  const require_usePrefix = require("../../internal/usePrefix.js");
10
+ const require_deprecate = require("../../prop-types/deprecate.js");
10
11
  let classnames = require("classnames");
11
12
  classnames = require_runtime.__toESM(classnames);
12
13
  let react = require("react");
@@ -16,26 +17,33 @@ prop_types = require_runtime.__toESM(prop_types);
16
17
  let react_jsx_runtime = require("react/jsx-runtime");
17
18
  //#region src/components/Search/Search.Skeleton.tsx
18
19
  /**
19
- * Copyright IBM Corp. 2016, 2023
20
+ * Copyright IBM Corp. 2016, 2026
20
21
  *
21
22
  * This source code is licensed under the Apache-2.0 license found in the
22
23
  * LICENSE file in the root directory of this source tree.
23
24
  */
24
- const SearchSkeleton = ({ small = false, className, ...rest }) => {
25
+ const SearchSkeleton = ({ small = false, size, className, ...rest }) => {
25
26
  const prefix = require_usePrefix.usePrefix();
26
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
27
+ const normalizedSize = small ? "sm" : size;
28
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
27
29
  className: (0, classnames.default)(className, {
28
30
  [`${prefix}--skeleton`]: true,
29
- [`${prefix}--search--xl`]: !small,
30
- [`${prefix}--search--sm`]: small
31
+ [`${prefix}--search--sm`]: small,
32
+ [`${prefix}--layout--size-${normalizedSize}`]: normalizedSize
31
33
  }),
32
34
  ...rest,
33
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: `${prefix}--label` }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: `${prefix}--search-input` })]
35
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: `${prefix}--search-input` })
34
36
  });
35
37
  };
36
38
  SearchSkeleton.propTypes = {
37
39
  className: prop_types.default.string,
38
- small: prop_types.default.bool
40
+ size: prop_types.default.oneOf([
41
+ "xs",
42
+ "sm",
43
+ "md",
44
+ "lg"
45
+ ]),
46
+ small: require_deprecate.deprecate(prop_types.default.bool, "The `small` prop has been deprecated and will be removed in the next major release. Please use the `size` prop instead.")
39
47
  };
40
48
  //#endregion
41
49
  exports.default = SearchSkeleton;
@@ -71,7 +71,7 @@ export interface SearchProps extends InputPropsBase {
71
71
  /**
72
72
  * Specify the size of the Search
73
73
  */
74
- size?: 'sm' | 'md' | 'lg';
74
+ size?: 'xs' | 'sm' | 'md' | 'lg';
75
75
  /**
76
76
  * Specify the type of the `<input>`
77
77
  */
@@ -32,7 +32,7 @@ let _carbon_icons_react = require("@carbon/icons-react");
32
32
  * This source code is licensed under the Apache-2.0 license found in the
33
33
  * LICENSE file in the root directory of this source tree.
34
34
  */
35
- const Search = react.default.forwardRef(({ autoComplete = "off", className, closeButtonLabelText = "Clear search input", defaultValue, disabled, isExpanded = true, id, labelText, light, onChange = () => {}, onClear = () => {}, onKeyDown, onExpand, placeholder = "Search", renderIcon, role, size = "md", type = "search", value, ...rest }, forwardRef) => {
35
+ const Search = react.default.forwardRef(({ autoComplete = "off", className, closeButtonLabelText = "Clear search input", defaultValue, disabled, isExpanded = true, id, labelText, light, onChange = () => {}, onClear = () => {}, onKeyDown, onExpand, placeholder = "Search", renderIcon, role, size, type = "search", value, ...rest }, forwardRef) => {
36
36
  const hasPropValue = require_utils.isSearchValuePresent(value) || require_utils.isSearchValuePresent(defaultValue);
37
37
  const prefix = require_usePrefix.usePrefix();
38
38
  const { isFluid } = (0, react.useContext)(require_FormContext.FormContext);
@@ -45,9 +45,8 @@ const Search = react.default.forwardRef(({ autoComplete = "off", className, clos
45
45
  const [hasContent, setHasContent] = (0, react.useState)(hasPropValue || false);
46
46
  const searchClasses = (0, classnames.default)({
47
47
  [`${prefix}--search`]: true,
48
- [`${prefix}--search--sm`]: size === "sm",
49
- [`${prefix}--search--md`]: size === "md",
50
- [`${prefix}--search--lg`]: size === "lg",
48
+ [`${prefix}--search--${size}`]: size,
49
+ [`${prefix}--layout--size-${size}`]: size,
51
50
  [`${prefix}--search--light`]: light,
52
51
  [`${prefix}--search--disabled`]: disabled,
53
52
  [`${prefix}--search--fluid`]: isFluid
@@ -177,6 +176,7 @@ Search.propTypes = {
177
176
  renderIcon: prop_types.default.oneOfType([prop_types.default.func, prop_types.default.object]),
178
177
  role: require_deprecate.deprecate(prop_types.default.string, "The `role` prop has been deprecated since <input type=\"search\"> already provides correct semantics. It will be removed in the next major release of Carbon."),
179
178
  size: prop_types.default.oneOf([
179
+ "xs",
180
180
  "sm",
181
181
  "md",
182
182
  "lg"
@@ -79,7 +79,7 @@ export interface SelectProps extends Omit<ComponentPropsWithRef<'select'>, Exclu
79
79
  /**
80
80
  * Specify the size of the Select Input.
81
81
  */
82
- size?: 'sm' | 'md' | 'lg';
82
+ size?: 'xs' | 'sm' | 'md' | 'lg';
83
83
  /**
84
84
  * @deprecated please use decorator instead.
85
85
  * **Experimental**: Provide a `Slug` component to be rendered inside the `Dropdown` component
@@ -10,6 +10,7 @@ const require_usePrefix = require("../../internal/usePrefix.js");
10
10
  const require_Text = require("../Text/Text.js");
11
11
  const require_deprecate = require("../../prop-types/deprecate.js");
12
12
  const require_utils = require("../../internal/utils.js");
13
+ const require_hasHelperText = require("../../internal/hasHelperText.js");
13
14
  const require_useNormalizedInputProps = require("../../internal/useNormalizedInputProps.js");
14
15
  const require_index = require("../AILabel/index.js");
15
16
  const require_events = require("../../tools/events.js");
@@ -57,19 +58,18 @@ const Select = (0, react.forwardRef)(({ className, decorator, id, inline = false
57
58
  [`${prefix}--select--fluid--invalid`]: isFluid && normalizedProps.invalid,
58
59
  [`${prefix}--select--fluid--focus`]: isFluid && isFocused,
59
60
  [`${prefix}--select--slug`]: slug,
60
- [`${prefix}--select--decorator`]: decorator
61
+ [`${prefix}--select--decorator`]: decorator,
62
+ [`${prefix}--select--${size}`]: size,
63
+ [`${prefix}--layout--size-${size}`]: size
61
64
  });
62
65
  const labelClasses = (0, classnames.default)(`${prefix}--label`, {
63
66
  [`${prefix}--visually-hidden`]: hideLabel,
64
67
  [`${prefix}--label--disabled`]: normalizedProps.disabled
65
68
  });
66
- const inputClasses = (0, classnames.default)({
67
- [`${prefix}--select-input`]: true,
68
- [`${prefix}--select-input--${size}`]: size
69
- });
69
+ const inputClasses = (0, classnames.default)({ [`${prefix}--select-input`]: true });
70
70
  const error = normalizedProps.validation;
71
71
  const helperTextClasses = (0, classnames.default)(`${prefix}--form__helper-text`, { [`${prefix}--form__helper-text--disabled`]: normalizedProps.disabled });
72
- const helper = typeof helperText !== "undefined" && helperText !== null ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Text.Text, {
72
+ const helper = require_hasHelperText.hasHelperText(helperText) ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Text.Text, {
73
73
  as: "div",
74
74
  id: normalizedProps.helperId,
75
75
  className: helperTextClasses,
@@ -179,6 +179,7 @@ Select.propTypes = {
179
179
  onChange: prop_types.default.func,
180
180
  readOnly: prop_types.default.bool,
181
181
  size: prop_types.default.oneOf([
182
+ "xs",
182
183
  "sm",
183
184
  "md",
184
185
  "lg"