@carbon/react 1.99.0-rc.0 → 1.100.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 (255) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +942 -942
  2. package/es/components/BadgeIndicator/index.d.ts +1 -1
  3. package/es/components/BadgeIndicator/index.js +8 -6
  4. package/es/components/Breadcrumb/BreadcrumbItem.d.ts +1 -1
  5. package/es/components/Breadcrumb/BreadcrumbItem.js +6 -7
  6. package/es/components/Button/Button.Skeleton.d.ts +28 -2
  7. package/es/components/Button/Button.js +3 -2
  8. package/es/components/ChatButton/ChatButton.d.ts +3 -2
  9. package/es/components/CheckboxGroup/CheckboxGroup.d.ts +60 -2
  10. package/es/components/ComboBox/ComboBox.d.ts +4 -4
  11. package/es/components/ComboBox/ComboBox.js +21 -3
  12. package/es/components/ComposedModal/ComposedModal.d.ts +2 -2
  13. package/es/components/ContainedList/ContainedList.d.ts +35 -6
  14. package/es/components/ContainedList/ContainedList.js +3 -1
  15. package/es/components/ContainedList/ContainedListItem/ContainedListItem.d.ts +32 -3
  16. package/es/components/ContainedList/index.d.ts +1 -1
  17. package/es/components/ContainedList/index.js +4 -1
  18. package/es/components/DangerButton/DangerButton.d.ts +1 -1
  19. package/es/components/DataTable/DataTable.d.ts +22 -5
  20. package/es/components/DataTable/DataTable.js +1 -1
  21. package/es/components/DataTable/TableExpandRow.d.ts +1 -1
  22. package/es/components/DataTable/TableExpandRow.js +2 -2
  23. package/es/components/DataTable/TableHeader.d.ts +1 -1
  24. package/es/components/DataTable/TableHeader.js +18 -16
  25. package/es/components/DataTable/TableToolbar.d.ts +25 -1
  26. package/es/components/DataTable/TableToolbarMenu.d.ts +25 -5
  27. package/es/components/DataTable/TableToolbarMenu.js +0 -3
  28. package/es/components/DataTableSkeleton/DataTableSkeleton.d.ts +51 -2
  29. package/es/components/DataTableSkeleton/DataTableSkeleton.js +6 -0
  30. package/es/components/DatePicker/DatePicker.d.ts +2 -2
  31. package/es/components/DatePicker/DatePicker.js +38 -53
  32. package/es/components/DatePicker/plugins/fixEventsPlugin.js +28 -2
  33. package/es/components/DatePickerInput/DatePickerInput.d.ts +1 -1
  34. package/es/components/DatePickerInput/DatePickerInput.js +3 -2
  35. package/es/components/Dialog/Dialog.d.ts +1 -1
  36. package/es/components/Dropdown/Dropdown.Skeleton.d.ts +19 -2
  37. package/es/components/ExpandableSearch/ExpandableSearch.d.ts +1 -1
  38. package/es/components/ExpandableSearch/ExpandableSearch.js +14 -12
  39. package/es/components/FileUploader/FileUploader.d.ts +1 -1
  40. package/es/components/FileUploader/FileUploader.js +2 -2
  41. package/es/components/FileUploader/FileUploaderDropContainer.d.ts +1 -1
  42. package/es/components/FileUploader/FileUploaderDropContainer.js +28 -10
  43. package/es/components/FluidComboBox/FluidComboBox.Skeleton.d.ts +11 -3
  44. package/es/components/FluidDatePicker/FluidDatePicker.Skeleton.d.ts +15 -3
  45. package/es/components/FluidDatePicker/FluidDatePicker.d.ts +2 -2
  46. package/es/components/FluidDropdown/FluidDropdown.Skeleton.d.ts +11 -3
  47. package/es/components/FluidForm/FluidForm.d.ts +15 -2
  48. package/es/components/FluidMultiSelect/FluidFilterableMultiSelect.d.ts +2 -2
  49. package/es/components/FluidMultiSelect/FluidMultiSelect.Skeleton.d.ts +11 -3
  50. package/es/components/FluidNumberInput/FluidNumberInput.Skeleton.d.ts +11 -3
  51. package/es/components/FluidNumberInput/FluidNumberInput.d.ts +1 -1
  52. package/es/components/FluidSearch/FluidSearch.Skeleton.d.ts +11 -3
  53. package/es/components/FluidSearch/FluidSearch.d.ts +1 -1
  54. package/es/components/FluidSearch/FluidSearch.js +3 -3
  55. package/es/components/FluidSelect/FluidSelect.Skeleton.d.ts +11 -3
  56. package/es/components/FluidTextArea/FluidTextArea.Skeleton.d.ts +11 -3
  57. package/es/components/FluidTextArea/FluidTextArea.d.ts +95 -1
  58. package/es/components/FluidTextInput/FluidPasswordInput.d.ts +83 -2
  59. package/es/components/FluidTextInput/FluidTextInput.Skeleton.d.ts +11 -3
  60. package/es/components/Grid/GridContext.d.ts +19 -1
  61. package/es/components/IconButton/index.d.ts +1 -1
  62. package/es/components/IconButton/index.js +2 -2
  63. package/es/components/Link/Link.js +3 -0
  64. package/es/components/ListBox/ListBoxField.d.ts +35 -2
  65. package/es/components/ListBox/ListBoxMenuIcon.d.ts +16 -3
  66. package/es/components/ListBox/ListBoxMenuItem.d.ts +1 -1
  67. package/es/components/ListBox/ListBoxSelection.d.ts +34 -3
  68. package/es/components/Menu/MenuItem.d.ts +2 -2
  69. package/es/components/MultiSelect/FilterableMultiSelect.d.ts +2 -2
  70. package/es/components/MultiSelect/FilterableMultiSelect.js +22 -13
  71. package/es/components/MultiSelect/MultiSelect.js +22 -13
  72. package/es/components/Notification/Notification.d.ts +8 -7
  73. package/es/components/Notification/Notification.js +0 -1
  74. package/es/components/NumberInput/NumberInput.d.ts +9 -0
  75. package/es/components/NumberInput/NumberInput.js +206 -38
  76. package/es/components/OverflowMenu/OverflowMenu.d.ts +1 -1
  77. package/es/components/OverflowMenu/OverflowMenu.js +0 -1
  78. package/es/components/OverflowMenu/index.d.ts +1 -1
  79. package/es/components/PageHeader/PageHeader.d.ts +3 -3
  80. package/es/components/Popover/index.js +21 -12
  81. package/es/components/Search/Search.d.ts +2 -2
  82. package/es/components/Select/Select.d.ts +1 -1
  83. package/es/components/Select/Select.js +2 -2
  84. package/es/components/SkeletonIcon/SkeletonIcon.d.ts +16 -2
  85. package/es/components/SkeletonText/SkeletonText.d.ts +1 -1
  86. package/es/components/Tag/Tag.d.ts +1 -1
  87. package/es/components/Tag/Tag.js +2 -0
  88. package/es/components/Text/Text.d.ts +1 -1
  89. package/es/components/Text/Text.js +4 -3
  90. package/es/components/Text/TextDirection.d.ts +1 -1
  91. package/es/components/Text/TextDirection.js +1 -3
  92. package/es/components/Text/TextDirectionContext.d.ts +3 -3
  93. package/es/components/TextInput/ControlledPasswordInput.d.ts +1 -1
  94. package/es/components/TextInput/ControlledPasswordInput.js +2 -2
  95. package/es/components/TextInput/PasswordInput.d.ts +1 -1
  96. package/es/components/TextInput/PasswordInput.js +2 -2
  97. package/es/components/TextInput/TextInput.d.ts +1 -1
  98. package/es/components/TextInput/TextInput.js +2 -2
  99. package/es/components/Toggle/Toggle.Skeleton.d.ts +9 -3
  100. package/es/components/Toggletip/index.d.ts +1 -1
  101. package/es/components/Toggletip/index.js +9 -7
  102. package/es/components/Tooltip/DefinitionTooltip.d.ts +52 -1
  103. package/es/components/Tooltip/Tooltip.js +2 -0
  104. package/es/components/TreeView/TreeNode.d.ts +4 -4
  105. package/es/components/UIShell/Header.d.ts +20 -3
  106. package/es/components/UIShell/HeaderGlobalAction.d.ts +2 -2
  107. package/es/components/UIShell/HeaderName.js +1 -1
  108. package/es/components/UIShell/Link.d.ts +1 -1
  109. package/es/components/UIShell/Link.js +14 -14
  110. package/es/components/UIShell/SideNav.d.ts +3 -3
  111. package/es/components/UIShell/SideNav.js +26 -25
  112. package/es/components/UIShell/SideNavDivider.d.ts +11 -3
  113. package/es/components/UIShell/SideNavHeader.d.ts +24 -1
  114. package/es/components/UIShell/SideNavIcon.d.ts +20 -2
  115. package/es/components/UIShell/SideNavItem.d.ts +20 -2
  116. package/es/components/UIShell/SideNavItems.d.ts +22 -2
  117. package/es/components/UIShell/SideNavLink.d.ts +1 -1
  118. package/es/components/UIShell/SideNavLink.js +14 -14
  119. package/es/components/UIShell/SideNavMenu.d.ts +1 -1
  120. package/es/components/UIShell/SideNavMenu.js +2 -2
  121. package/es/components/UIShell/SideNavMenuItem.d.ts +2 -2
  122. package/es/components/UIShell/SideNavMenuItem.js +2 -2
  123. package/es/components/UIShell/SwitcherDivider.d.ts +10 -2
  124. package/es/internal/FloatingMenu.d.ts +1 -1
  125. package/es/internal/FloatingMenu.js +0 -2
  126. package/es/internal/PolymorphicProps.d.ts +3 -3
  127. package/es/internal/useNoInteractiveChildren.d.ts +1 -1
  128. package/es/internal/useNoInteractiveChildren.js +8 -10
  129. package/es/internal/useOutsideClick.d.ts +1 -1
  130. package/es/internal/useOutsideClick.js +0 -4
  131. package/lib/components/BadgeIndicator/index.d.ts +1 -1
  132. package/lib/components/BadgeIndicator/index.js +7 -5
  133. package/lib/components/Breadcrumb/BreadcrumbItem.d.ts +1 -1
  134. package/lib/components/Breadcrumb/BreadcrumbItem.js +5 -6
  135. package/lib/components/Button/Button.Skeleton.d.ts +28 -2
  136. package/lib/components/Button/Button.js +3 -2
  137. package/lib/components/ChatButton/ChatButton.d.ts +3 -2
  138. package/lib/components/CheckboxGroup/CheckboxGroup.d.ts +60 -2
  139. package/lib/components/ComboBox/ComboBox.d.ts +4 -4
  140. package/lib/components/ComboBox/ComboBox.js +21 -3
  141. package/lib/components/ComposedModal/ComposedModal.d.ts +2 -2
  142. package/lib/components/ContainedList/ContainedList.d.ts +35 -6
  143. package/lib/components/ContainedList/ContainedList.js +3 -1
  144. package/lib/components/ContainedList/ContainedListItem/ContainedListItem.d.ts +32 -3
  145. package/lib/components/ContainedList/index.d.ts +1 -1
  146. package/lib/components/ContainedList/index.js +4 -1
  147. package/lib/components/DangerButton/DangerButton.d.ts +1 -1
  148. package/lib/components/DataTable/DataTable.d.ts +22 -5
  149. package/lib/components/DataTable/DataTable.js +1 -1
  150. package/lib/components/DataTable/TableExpandRow.d.ts +1 -1
  151. package/lib/components/DataTable/TableHeader.d.ts +1 -1
  152. package/lib/components/DataTable/TableHeader.js +17 -15
  153. package/lib/components/DataTable/TableToolbar.d.ts +25 -1
  154. package/lib/components/DataTable/TableToolbarMenu.d.ts +25 -5
  155. package/lib/components/DataTable/TableToolbarMenu.js +0 -3
  156. package/lib/components/DataTableSkeleton/DataTableSkeleton.d.ts +51 -2
  157. package/lib/components/DataTableSkeleton/DataTableSkeleton.js +6 -0
  158. package/lib/components/DatePicker/DatePicker.d.ts +2 -2
  159. package/lib/components/DatePicker/DatePicker.js +37 -52
  160. package/lib/components/DatePicker/plugins/fixEventsPlugin.js +28 -2
  161. package/lib/components/DatePickerInput/DatePickerInput.d.ts +1 -1
  162. package/lib/components/DatePickerInput/DatePickerInput.js +2 -1
  163. package/lib/components/Dialog/Dialog.d.ts +1 -1
  164. package/lib/components/Dropdown/Dropdown.Skeleton.d.ts +19 -2
  165. package/lib/components/ExpandableSearch/ExpandableSearch.d.ts +1 -1
  166. package/lib/components/ExpandableSearch/ExpandableSearch.js +13 -11
  167. package/lib/components/FileUploader/FileUploader.d.ts +1 -1
  168. package/lib/components/FileUploader/FileUploaderDropContainer.d.ts +1 -1
  169. package/lib/components/FileUploader/FileUploaderDropContainer.js +28 -10
  170. package/lib/components/FluidComboBox/FluidComboBox.Skeleton.d.ts +11 -3
  171. package/lib/components/FluidDatePicker/FluidDatePicker.Skeleton.d.ts +15 -3
  172. package/lib/components/FluidDatePicker/FluidDatePicker.d.ts +2 -2
  173. package/lib/components/FluidDropdown/FluidDropdown.Skeleton.d.ts +11 -3
  174. package/lib/components/FluidForm/FluidForm.d.ts +15 -2
  175. package/lib/components/FluidMultiSelect/FluidFilterableMultiSelect.d.ts +2 -2
  176. package/lib/components/FluidMultiSelect/FluidMultiSelect.Skeleton.d.ts +11 -3
  177. package/lib/components/FluidNumberInput/FluidNumberInput.Skeleton.d.ts +11 -3
  178. package/lib/components/FluidNumberInput/FluidNumberInput.d.ts +1 -1
  179. package/lib/components/FluidSearch/FluidSearch.Skeleton.d.ts +11 -3
  180. package/lib/components/FluidSearch/FluidSearch.d.ts +1 -1
  181. package/lib/components/FluidSearch/FluidSearch.js +2 -2
  182. package/lib/components/FluidSelect/FluidSelect.Skeleton.d.ts +11 -3
  183. package/lib/components/FluidTextArea/FluidTextArea.Skeleton.d.ts +11 -3
  184. package/lib/components/FluidTextArea/FluidTextArea.d.ts +95 -1
  185. package/lib/components/FluidTextInput/FluidPasswordInput.d.ts +83 -2
  186. package/lib/components/FluidTextInput/FluidTextInput.Skeleton.d.ts +11 -3
  187. package/lib/components/Grid/GridContext.d.ts +19 -1
  188. package/lib/components/IconButton/index.d.ts +1 -1
  189. package/lib/components/Link/Link.js +3 -0
  190. package/lib/components/ListBox/ListBoxField.d.ts +35 -2
  191. package/lib/components/ListBox/ListBoxMenuIcon.d.ts +16 -3
  192. package/lib/components/ListBox/ListBoxMenuItem.d.ts +1 -1
  193. package/lib/components/ListBox/ListBoxSelection.d.ts +34 -3
  194. package/lib/components/Menu/MenuItem.d.ts +2 -2
  195. package/lib/components/MultiSelect/FilterableMultiSelect.d.ts +2 -2
  196. package/lib/components/MultiSelect/FilterableMultiSelect.js +22 -13
  197. package/lib/components/MultiSelect/MultiSelect.js +22 -13
  198. package/lib/components/Notification/Notification.d.ts +8 -7
  199. package/lib/components/Notification/Notification.js +0 -1
  200. package/lib/components/NumberInput/NumberInput.d.ts +9 -0
  201. package/lib/components/NumberInput/NumberInput.js +206 -37
  202. package/lib/components/OverflowMenu/OverflowMenu.d.ts +1 -1
  203. package/lib/components/OverflowMenu/OverflowMenu.js +0 -1
  204. package/lib/components/OverflowMenu/index.d.ts +1 -1
  205. package/lib/components/PageHeader/PageHeader.d.ts +3 -3
  206. package/lib/components/Popover/index.js +19 -10
  207. package/lib/components/Search/Search.d.ts +2 -2
  208. package/lib/components/Select/Select.d.ts +1 -1
  209. package/lib/components/SkeletonIcon/SkeletonIcon.d.ts +16 -2
  210. package/lib/components/SkeletonText/SkeletonText.d.ts +1 -1
  211. package/lib/components/Tag/Tag.d.ts +1 -1
  212. package/lib/components/Tag/Tag.js +2 -0
  213. package/lib/components/Text/Text.d.ts +1 -1
  214. package/lib/components/Text/Text.js +3 -2
  215. package/lib/components/Text/TextDirection.d.ts +1 -1
  216. package/lib/components/Text/TextDirection.js +1 -3
  217. package/lib/components/Text/TextDirectionContext.d.ts +3 -3
  218. package/lib/components/TextInput/ControlledPasswordInput.d.ts +1 -1
  219. package/lib/components/TextInput/PasswordInput.d.ts +1 -1
  220. package/lib/components/TextInput/TextInput.d.ts +1 -1
  221. package/lib/components/Toggle/Toggle.Skeleton.d.ts +9 -3
  222. package/lib/components/Toggletip/index.d.ts +1 -1
  223. package/lib/components/Toggletip/index.js +7 -5
  224. package/lib/components/Tooltip/DefinitionTooltip.d.ts +52 -1
  225. package/lib/components/Tooltip/Tooltip.js +2 -0
  226. package/lib/components/TreeView/TreeNode.d.ts +4 -4
  227. package/lib/components/UIShell/Header.d.ts +20 -3
  228. package/lib/components/UIShell/HeaderGlobalAction.d.ts +2 -2
  229. package/lib/components/UIShell/HeaderName.js +1 -1
  230. package/lib/components/UIShell/Link.d.ts +1 -1
  231. package/lib/components/UIShell/Link.js +13 -13
  232. package/lib/components/UIShell/SideNav.d.ts +3 -3
  233. package/lib/components/UIShell/SideNav.js +25 -24
  234. package/lib/components/UIShell/SideNavDivider.d.ts +11 -3
  235. package/lib/components/UIShell/SideNavHeader.d.ts +24 -1
  236. package/lib/components/UIShell/SideNavIcon.d.ts +20 -2
  237. package/lib/components/UIShell/SideNavItem.d.ts +20 -2
  238. package/lib/components/UIShell/SideNavItems.d.ts +22 -2
  239. package/lib/components/UIShell/SideNavLink.d.ts +1 -1
  240. package/lib/components/UIShell/SideNavLink.js +14 -14
  241. package/lib/components/UIShell/SideNavMenu.d.ts +1 -1
  242. package/lib/components/UIShell/SideNavMenuItem.d.ts +2 -2
  243. package/lib/components/UIShell/SwitcherDivider.d.ts +10 -2
  244. package/lib/internal/FloatingMenu.d.ts +1 -1
  245. package/lib/internal/FloatingMenu.js +0 -2
  246. package/lib/internal/PolymorphicProps.d.ts +3 -3
  247. package/lib/internal/useNoInteractiveChildren.d.ts +1 -1
  248. package/lib/internal/useNoInteractiveChildren.js +8 -10
  249. package/lib/internal/useOutsideClick.d.ts +1 -1
  250. package/lib/internal/useOutsideClick.js +0 -4
  251. package/package.json +8 -8
  252. package/scss/_carbon-utilities.scss +9 -0
  253. package/telemetry.yml +0 -1
  254. package/es/internal/createClassWrapper.d.ts +0 -12
  255. package/lib/internal/createClassWrapper.d.ts +0 -12
@@ -8,7 +8,7 @@
8
8
  import { ChevronDown } from '@carbon/icons-react';
9
9
  import cx from 'classnames';
10
10
  import PropTypes from 'prop-types';
11
- import React, { useContext, useState } from 'react';
11
+ import React, { forwardRef, useContext, useState } from 'react';
12
12
  import SideNavIcon from './SideNavIcon.js';
13
13
  import { Escape } from '../../internal/keyboard/keys.js';
14
14
  import { match } from '../../internal/keyboard/match.js';
@@ -16,7 +16,7 @@ import { usePrefix } from '../../internal/usePrefix.js';
16
16
  import { SideNavContext } from './SideNav.js';
17
17
 
18
18
  var _ChevronDown;
19
- const SideNavMenu = /*#__PURE__*/React.forwardRef(({
19
+ const SideNavMenu = /*#__PURE__*/forwardRef(({
20
20
  className: customClassName,
21
21
  children,
22
22
  defaultExpanded = false,
@@ -1,10 +1,10 @@
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.
6
6
  */
7
- import React, { ElementType, ComponentProps } from 'react';
7
+ import React, { type ComponentProps, type ElementType } from 'react';
8
8
  import Link from './Link';
9
9
  export type SideNavMenuItemProps = ComponentProps<typeof Link> & {
10
10
  /**
@@ -8,12 +8,12 @@
8
8
  import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import cx from 'classnames';
10
10
  import PropTypes from 'prop-types';
11
- import React from 'react';
11
+ import React, { forwardRef } from 'react';
12
12
  import SideNavLinkText from './SideNavLinkText.js';
13
13
  import Link from './Link.js';
14
14
  import { usePrefix } from '../../internal/usePrefix.js';
15
15
 
16
- const SideNavMenuItem = /*#__PURE__*/React.forwardRef((props, ref) => {
16
+ const SideNavMenuItem = /*#__PURE__*/forwardRef((props, ref) => {
17
17
  const prefix = usePrefix();
18
18
  const {
19
19
  children,
@@ -4,12 +4,20 @@
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 from 'react';
7
+ import PropTypes from 'prop-types';
8
8
  export interface SwitcherDividerProps {
9
9
  /**
10
10
  * Optionally provide a custom class to apply to the underlying `<li>` node
11
11
  */
12
12
  className?: string;
13
13
  }
14
- declare const SwitcherDivider: React.FC<SwitcherDividerProps>;
14
+ declare const SwitcherDivider: {
15
+ ({ className: customClassName, ...other }: SwitcherDividerProps): import("react/jsx-runtime").JSX.Element;
16
+ propTypes: {
17
+ /**
18
+ * Optionally provide a custom class to apply to the underlying `<li>` node
19
+ */
20
+ className: PropTypes.Requireable<string>;
21
+ };
22
+ };
15
23
  export default SwitcherDivider;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2025
2
+ * Copyright IBM Corp. 2016, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -153,8 +153,6 @@ const FloatingMenu = ({
153
153
  // Re-check after setting the position if not already adjusting.
154
154
  if (!isAdjustment) {
155
155
  const newMenuSize = menuBody.getBoundingClientRect();
156
- // TODO: Was there a bug in the old code? How could one `DOMRect` be
157
- // compared to another using `!==`?
158
156
  if (newMenuSize.width !== menuSize.width || newMenuSize.height !== menuSize.height) {
159
157
  updateMenuPosition(true);
160
158
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2025
2
+ * Copyright IBM Corp. 2025, 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.
@@ -8,9 +8,9 @@ type AsProp<C extends React.ElementType> = {
8
8
  as?: C;
9
9
  };
10
10
  type PropsToOmit<C extends React.ElementType, P> = keyof (AsProp<C> & P);
11
- export type PolymorphicComponentProp<C extends React.ElementType, Props = {}> = React.PropsWithChildren<Props & AsProp<C>> & Omit<React.ComponentPropsWithoutRef<C>, PropsToOmit<C, Props>>;
11
+ export type PolymorphicComponentProp<C extends React.ElementType, Props = Record<string, never>> = React.PropsWithChildren<Props & AsProp<C>> & Omit<React.ComponentPropsWithoutRef<C>, PropsToOmit<C, Props>>;
12
12
  export type PolymorphicRef<C extends React.ElementType> = React.ComponentPropsWithRef<C>['ref'];
13
- export type PolymorphicComponentPropWithRef<C extends React.ElementType, Props = {}> = PolymorphicComponentProp<C, Props> & {
13
+ export type PolymorphicComponentPropWithRef<C extends React.ElementType, Props = Record<string, never>> = PolymorphicComponentProp<C, Props> & {
14
14
  ref?: PolymorphicRef<C>;
15
15
  };
16
16
  export {};
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2025
2
+ * Copyright IBM Corp. 2016, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -8,13 +8,12 @@
8
8
  import { useEffect } from 'react';
9
9
 
10
10
  const useNoInteractiveChildren = (ref, message = 'component should have no interactive child nodes') => {
11
- // TODO: Why can't the condition go inside the hook?
12
11
  if (process.env.NODE_ENV !== 'production') {
13
- // TODO: https://github.com/carbon-design-system/carbon/issues/19005
14
- /*
12
+ // This hook is intentionally called conditionally because it is
13
+ // stripped from production builds. In development it runs once
14
+ // to enforce accessibility constraints.
15
+ //
15
16
  // eslint-disable-next-line react-hooks/rules-of-hooks
16
- */
17
- // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
18
17
  useEffect(() => {
19
18
  const node = ref.current ? getInteractiveContent(ref.current) : false;
20
19
  if (node) {
@@ -28,13 +27,12 @@ const useNoInteractiveChildren = (ref, message = 'component should have no inter
28
27
  }
29
28
  };
30
29
  const useInteractiveChildrenNeedDescription = (ref, message = `interactive child node(s) should have an \`aria-describedby\` property`) => {
31
- // TODO: Why can't the condition go inside the hook?
32
30
  if (process.env.NODE_ENV !== 'production') {
33
- // TODO: https://github.com/carbon-design-system/carbon/issues/19005
34
- /*
31
+ // This hook is intentionally called conditionally because it is
32
+ // stripped from production builds. In development it runs once
33
+ // to enforce accessibility constraints.
34
+ //
35
35
  // eslint-disable-next-line react-hooks/rules-of-hooks
36
- */
37
- // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
38
36
  useEffect(() => {
39
37
  const node = ref.current ? getInteractiveContent(ref.current) : false;
40
38
  if (node && !node.hasAttribute('aria-describedby')) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2025
2
+ * Copyright IBM Corp. 2016, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -19,11 +19,7 @@ const useOutsideClick = (ref, callback) => {
19
19
  // treated as a constant as it will be false when executed in a Node.js
20
20
  // environment and true when executed in the browser
21
21
  if (canUseDOM) {
22
- // TODO: https://github.com/carbon-design-system/carbon/issues/19005
23
- /*
24
22
  // eslint-disable-next-line react-hooks/rules-of-hooks
25
- */
26
- // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
27
23
  useWindowEvent('click', event => {
28
24
  const {
29
25
  target
@@ -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.
@@ -15,11 +15,13 @@ var React = require('react');
15
15
  var cx = require('classnames');
16
16
  var usePrefix = require('../../internal/usePrefix.js');
17
17
 
18
- const BadgeIndicator = /*#__PURE__*/React.forwardRef(function BadgeIndicatorContent({
19
- className: customClassName,
20
- count,
21
- ...rest
22
- }, ref) {
18
+ const frFn = React.forwardRef;
19
+ const BadgeIndicator = frFn((props, ref) => {
20
+ const {
21
+ className: customClassName,
22
+ count,
23
+ ...rest
24
+ } = props;
23
25
  const prefix = usePrefix.usePrefix();
24
26
  const classNames = cx(`${prefix}--badge-indicator`, customClassName, {
25
27
  [`${prefix}--badge-indicator--count`]: count
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2025
2
+ * Copyright IBM Corp. 2016, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -37,10 +37,9 @@ const BreadcrumbItem = frFn((props, ref) => {
37
37
  [`${prefix}--breadcrumb-item--current`]: isCurrentPage && ariaCurrent !== 'page',
38
38
  [customClassName]: !!customClassName
39
39
  });
40
-
41
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
42
- const child = children;
43
- if (child.type && child.type.displayName !== undefined && child.type.displayName.includes('OverflowMenu')) {
40
+ const child = /*#__PURE__*/React.isValidElement(children) ? children : null;
41
+ const childType = child?.type;
42
+ if (child && typeof child.type !== 'string' && childType?.displayName?.includes('OverflowMenu')) {
44
43
  const horizontalOverflowIcon = /*#__PURE__*/React.createElement(iconsReact.OverflowMenuHorizontal, {
45
44
  className: `${prefix}--overflow-menu__icon`
46
45
  });
@@ -70,10 +69,10 @@ const BreadcrumbItem = frFn((props, ref) => {
70
69
  return /*#__PURE__*/React.createElement("li", _rollupPluginBabelHelpers.extends({
71
70
  className: className,
72
71
  ref: ref
73
- }, rest), /*#__PURE__*/React.cloneElement(child, {
72
+ }, rest), child ? /*#__PURE__*/React.cloneElement(child, {
74
73
  'aria-current': ariaCurrent,
75
74
  className: cx(`${prefix}--link`, child.props.className)
76
- }));
75
+ }) : children);
77
76
  });
78
77
  BreadcrumbItem.displayName = 'BreadcrumbItem';
79
78
  BreadcrumbItem.propTypes = {
@@ -1,9 +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 PropTypes from 'prop-types';
7
8
  import React from 'react';
8
9
  import { ButtonSize } from './Button';
9
10
  export interface ButtonSkeletonProps extends React.HTMLAttributes<HTMLElement> {
@@ -23,6 +24,31 @@ export interface ButtonSkeletonProps extends React.HTMLAttributes<HTMLElement> {
23
24
  */
24
25
  small?: boolean;
25
26
  }
26
- declare const ButtonSkeleton: React.FC<ButtonSkeletonProps>;
27
+ declare const ButtonSkeleton: {
28
+ ({ className, small, href, size, ...rest }: ButtonSkeletonProps): import("react/jsx-runtime").JSX.Element;
29
+ propTypes: {
30
+ /**
31
+ * Specify an optional className to add.
32
+ */
33
+ className: PropTypes.Requireable<string>;
34
+ /**
35
+ * Optionally specify an href for your Button to become an `<a>` element
36
+ */
37
+ href: PropTypes.Requireable<string>;
38
+ /**
39
+ * Specify the size of the button, from a list of available sizes.
40
+ * For `default` buttons, this prop can remain unspecified or use `default`.
41
+ * In the next major release of Carbon, `default`, `field`, and `small` will be removed
42
+ */
43
+ size: PropTypes.Requireable<string>;
44
+ /**
45
+ * @deprecated This property will be removed in the next major Carbon version,
46
+ * use size={sm} instead.
47
+ *
48
+ * Specify whether the Button should be a small variant
49
+ */
50
+ small: PropTypes.Requireable<boolean>;
51
+ };
52
+ };
27
53
  export default ButtonSkeleton;
28
54
  export { ButtonSkeleton };
@@ -25,8 +25,6 @@ function isIconOnlyButton(hasIconOnly, _kind) {
25
25
  }
26
26
  return false;
27
27
  }
28
-
29
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
30
28
  const Button = /*#__PURE__*/React.forwardRef((props, ref) => {
31
29
  const {
32
30
  as,
@@ -108,7 +106,10 @@ const Button = /*#__PURE__*/React.forwardRef((props, ref) => {
108
106
  );
109
107
  }
110
108
  });
109
+
110
+ // @ts-expect-error - `displayName` isn't typed.
111
111
  Button.displayName = 'Button';
112
+ // @ts-expect-error - `propTypes` isn't typed.
112
113
  Button.propTypes = {
113
114
  /**
114
115
  * Specify how the button itself should be rendered.
@@ -4,7 +4,8 @@
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 ComponentType, type FunctionComponent } from 'react';
7
+ import React, { type ComponentProps } from 'react';
8
+ import Button from '../Button';
8
9
  export type ChatButtonKind = 'primary' | 'secondary' | 'danger' | 'ghost' | 'tertiary';
9
10
  export type ChatButtonSize = 'sm' | 'md' | 'lg';
10
11
  export interface ChatButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
@@ -35,7 +36,7 @@ export interface ChatButtonProps extends React.ButtonHTMLAttributes<HTMLButtonEl
35
36
  /**
36
37
  * A component used to render an icon.
37
38
  */
38
- renderIcon?: ComponentType | FunctionComponent;
39
+ renderIcon?: ComponentProps<typeof Button>['renderIcon'];
39
40
  /**
40
41
  * Specify the size of the `ChatButton`, from the following list of sizes:
41
42
  */
@@ -4,7 +4,8 @@
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 ReactNode } from 'react';
7
+ import PropTypes from 'prop-types';
8
+ import { type ReactNode } from 'react';
8
9
  export interface CheckboxGroupProps {
9
10
  children?: ReactNode;
10
11
  className?: string;
@@ -28,5 +29,62 @@ export interface CustomType {
28
29
  size: string;
29
30
  kind: string;
30
31
  }
31
- declare const CheckboxGroup: React.FC<CheckboxGroupProps>;
32
+ declare const CheckboxGroup: {
33
+ ({ children, className, decorator, helperText, invalid, invalidText, legendId, legendText, readOnly, warn, warnText, slug, orientation, ...rest }: CheckboxGroupProps): import("react/jsx-runtime").JSX.Element;
34
+ propTypes: {
35
+ /**
36
+ * Provide the children form elements to be rendered inside of the <fieldset>
37
+ */
38
+ children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
39
+ /**
40
+ * Provide a custom className to be applied to the containing <fieldset> node
41
+ */
42
+ className: PropTypes.Requireable<string>;
43
+ /**
44
+ * **Experimental**: Provide a decorator component to be rendered inside the `CheckboxGroup` component
45
+ */
46
+ decorator: PropTypes.Requireable<PropTypes.ReactNodeLike>;
47
+ /**
48
+ * Provide text for the form group for additional help
49
+ */
50
+ helperText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
51
+ /**
52
+ * Specify whether the form group is currently invalid
53
+ */
54
+ invalid: PropTypes.Requireable<boolean>;
55
+ /**
56
+ * Provide the text that is displayed when the form group is in an invalid state
57
+ */
58
+ invalidText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
59
+ /**
60
+ * Provide id for the fieldset <legend> which corresponds to the fieldset
61
+ * `aria-labelledby`
62
+ */
63
+ legendId: PropTypes.Requireable<PropTypes.ReactNodeLike>;
64
+ /**
65
+ * Provide the text to be rendered inside of the fieldset <legend>
66
+ */
67
+ legendText: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
68
+ /**
69
+ * Provide the orientation for how the checkbox should be displayed
70
+ */
71
+ orientation: PropTypes.Requireable<string>;
72
+ /**
73
+ * Whether the CheckboxGroup should be read-only
74
+ */
75
+ readOnly: PropTypes.Requireable<boolean>;
76
+ /**
77
+ * **Experimental**: Provide a `Slug` component to be rendered inside the `CheckboxGroup` component
78
+ */
79
+ slug: (props: Record<string, any>, propName: string, componentName: string, ...rest: any[]) => any;
80
+ /**
81
+ * Specify whether the form group is currently in warning state
82
+ */
83
+ warn: PropTypes.Requireable<boolean>;
84
+ /**
85
+ * Provide the text that is displayed when the form group is in warning state
86
+ */
87
+ warnText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
88
+ };
89
+ };
32
90
  export default CheckboxGroup;
@@ -1,11 +1,11 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2025
2
+ * Copyright IBM Corp. 2016, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import { UseComboboxProps, UseComboboxActions } from 'downshift';
8
- import React, { type ComponentType, type InputHTMLAttributes, type MouseEvent, type PropsWithChildren, type PropsWithRef, type ReactElement, type ReactNode, type RefAttributes } from 'react';
8
+ import { type ComponentType, type InputHTMLAttributes, type MouseEvent, type PropsWithChildren, type ReactElement, type ReactNode, type RefAttributes, type RefObject } from 'react';
9
9
  import { type ListBoxMenuIconTranslationKey, type ListBoxSelectionTranslationKey, type ListBoxSize } from '../ListBox';
10
10
  import type { TranslateWithId } from '../../types/common';
11
11
  type ExcludedAttributes = 'id' | 'onChange' | 'onClick' | 'type' | 'size';
@@ -74,7 +74,7 @@ export interface ComboBoxProps<ItemType> extends Omit<InputHTMLAttributes<HTMLIn
74
74
  * cases they can not be shimmed by Carbon to shield you from potentially breaking
75
75
  * changes.
76
76
  */
77
- downshiftActions?: React.MutableRefObject<UseComboboxActions<ItemType> | undefined>;
77
+ downshiftActions?: RefObject<UseComboboxActions<ItemType> | undefined>;
78
78
  /**
79
79
  * Provide helper text that is used alongside the control label for
80
80
  * additional help
@@ -196,7 +196,7 @@ export interface ComboBoxProps<ItemType> extends Omit<InputHTMLAttributes<HTMLIn
196
196
  */
197
197
  inputProps?: InputHTMLAttributes<HTMLInputElement>;
198
198
  }
199
- type ComboboxComponentProps<ItemType> = PropsWithRef<PropsWithChildren<ComboBoxProps<ItemType>> & RefAttributes<HTMLInputElement>>;
199
+ type ComboboxComponentProps<ItemType> = PropsWithChildren<ComboBoxProps<ItemType>> & RefAttributes<HTMLInputElement>;
200
200
  export interface ComboBoxComponent {
201
201
  <ItemType>(props: ComboboxComponentProps<ItemType>): ReactElement<any> | null;
202
202
  }
@@ -197,6 +197,7 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
197
197
  // eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20452
198
198
  }, [typeahead, inputValue, items, itemToString, autocompleteCustomFilter]);
199
199
  const isManualClearingRef = React.useRef(false);
200
+ const committedCustomValueRef = React.useRef('');
200
201
  const [isClearing, setIsClearing] = React.useState(false);
201
202
  const prefix = usePrefix.usePrefix();
202
203
  const {
@@ -286,11 +287,13 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
286
287
  return changes;
287
288
  }
288
289
  const nextSelectedItem = items.find(item => itemToString(item) === inputValue) ?? inputValue;
290
+ const isCustomSelection = typeof nextSelectedItem === 'string' && !items.some(item => isEqual(item, nextSelectedItem));
289
291
  if (!isEqual(currentSelectedItem, nextSelectedItem) && onChange) {
290
292
  onChange({
291
293
  selectedItem: nextSelectedItem,
292
294
  inputValue
293
295
  });
296
+ committedCustomValueRef.current = isCustomSelection ? inputValue : '';
294
297
  }
295
298
  return {
296
299
  ...changes,
@@ -529,6 +532,9 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
529
532
  return;
530
533
  }
531
534
  if ((type === ItemClick || type === FunctionSelectItem || type === InputKeyDownEnter) && typeof newSelectedItem !== 'undefined' && !isEqual(selectedItemProp, newSelectedItem)) {
535
+ if (items.some(item => isEqual(item, newSelectedItem))) {
536
+ committedCustomValueRef.current = '';
537
+ }
532
538
  onChange({
533
539
  selectedItem: newSelectedItem
534
540
  });
@@ -538,7 +544,7 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
538
544
 
539
545
  // Keep the dropdown highlight in sync with either the controlled value or
540
546
  // Downshift's own selection when uncontrolled.
541
- const menuSelectedItem = typeof selectedItemProp !== 'undefined' ? selectedItemProp : selectedItem;
547
+ const currentSelectedItem = typeof selectedItemProp !== 'undefined' ? selectedItemProp : selectedItem;
542
548
  React.useEffect(() => {
543
549
  // Used to expose the downshift actions to consumers for use with downshiftProps
544
550
  // An odd pattern, here we mutate the value stored in the ref provided from the consumer.
@@ -653,8 +659,18 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
653
659
  ...inputProps,
654
660
  onChange: e => {
655
661
  const newValue = e.target.value;
662
+ const shouldClearSelection = allowCustomValue && committedCustomValueRef.current && inputValue === committedCustomValueRef.current && newValue === '';
656
663
  setInputValue(newValue);
657
664
  downshiftSetInputValue(newValue);
665
+ if (shouldClearSelection) {
666
+ setIsClearing(true);
667
+ onChange({
668
+ selectedItem: null,
669
+ inputValue: ''
670
+ });
671
+ selectItem(null);
672
+ committedCustomValueRef.current = '';
673
+ }
658
674
  },
659
675
  ref: mergeRefs.mergeRefs(textInput, ref, inputRef),
660
676
  onKeyDown: event => {
@@ -671,6 +687,7 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
671
687
  // manually fire it when `allowCustomValue` is provided, the menu is closing,
672
688
  // and there is a value.
673
689
  if (allowCustomValue && isOpen && inputValue && highlightedIndex === -1) {
690
+ committedCustomValueRef.current = inputValue;
674
691
  onChange({
675
692
  selectedItem: null,
676
693
  inputValue
@@ -735,6 +752,7 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
735
752
  selectedItem: null
736
753
  });
737
754
  selectItem(null);
755
+ committedCustomValueRef.current = '';
738
756
  handleSelectionClear();
739
757
  },
740
758
  translateWithId: translateWithId,
@@ -766,13 +784,13 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
766
784
  } = itemProps;
767
785
  return /*#__PURE__*/React.createElement(index$2.default.MenuItem, _rollupPluginBabelHelpers.extends({
768
786
  key: itemProps.id,
769
- isActive: isEqual(menuSelectedItem, item),
787
+ isActive: isEqual(currentSelectedItem, item),
770
788
  isHighlighted: highlightedIndex === index,
771
789
  title: title,
772
790
  disabled: disabled
773
791
  }, modifiedItemProps), ItemToElement ? /*#__PURE__*/React.createElement(ItemToElement, _rollupPluginBabelHelpers.extends({
774
792
  key: itemProps.id
775
- }, item)) : itemToString(item), isEqual(menuSelectedItem, item) && /*#__PURE__*/React.createElement(iconsReact.Checkmark, {
793
+ }, item)) : itemToString(item), isEqual(currentSelectedItem, item) && /*#__PURE__*/React.createElement(iconsReact.Checkmark, {
776
794
  className: `${prefix}--list-box__menu-item__selected-icon`
777
795
  }));
778
796
  }) : null)), helperText && !invalid && !warn && !isFluid && /*#__PURE__*/React.createElement(Text.Text, {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2023, 2025
2
+ * Copyright IBM Corp. 2023, 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.
@@ -61,7 +61,7 @@ export interface ComposedModalProps extends HTMLAttributes<HTMLDivElement> {
61
61
  * Specify an optional handler for closing modal.
62
62
  * Returning `false` here prevents closing modal.
63
63
  */
64
- onClose?(event: MouseEvent): void | boolean;
64
+ onClose?: ((event: MouseEvent) => boolean) | ((event: MouseEvent) => void);
65
65
  /**
66
66
  * Called for all `onKeyDown` events that do not close the modal
67
67
  */
@@ -4,12 +4,9 @@
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';
8
- import ContainedListItem from './ContainedListItem';
7
+ import { ReactNode } from 'react';
8
+ import PropTypes from 'prop-types';
9
9
  declare const variants: readonly ["on-page", "disclosed"];
10
- export type ContainedListType = React.FC<ContainedListProps> & {
11
- ContainedListItem: typeof ContainedListItem;
12
- };
13
10
  export type Variants = (typeof variants)[number];
14
11
  export interface ContainedListProps {
15
12
  /**
@@ -41,5 +38,37 @@ export interface ContainedListProps {
41
38
  */
42
39
  size?: 'sm' | 'md' | 'lg' | 'xl';
43
40
  }
44
- declare const ContainedList: ContainedListType;
41
+ declare const ContainedList: {
42
+ ({ action, children, className, isInset, kind, label, size, ...rest }: ContainedListProps): import("react/jsx-runtime").JSX.Element;
43
+ propTypes: {
44
+ /**
45
+ * A slot for a possible interactive element to render.
46
+ */
47
+ action: PropTypes.Requireable<PropTypes.ReactNodeLike>;
48
+ /**
49
+ * A collection of ContainedListItems to be rendered in the ContainedList
50
+ */
51
+ children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
52
+ /**
53
+ * Additional CSS class names.
54
+ */
55
+ className: PropTypes.Requireable<string>;
56
+ /**
57
+ * Specify whether the dividing lines in between list items should be inset.
58
+ */
59
+ isInset: PropTypes.Requireable<boolean>;
60
+ /**
61
+ * The kind of ContainedList you want to display
62
+ */
63
+ kind: PropTypes.Requireable<"on-page" | "disclosed">;
64
+ /**
65
+ * A label describing the contained list.
66
+ */
67
+ label: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
68
+ /**
69
+ * Specify the size of the contained list.
70
+ */
71
+ size: PropTypes.Requireable<string>;
72
+ };
73
+ };
45
74
  export default ContainedList;
@@ -136,6 +136,8 @@ ContainedList.propTypes = {
136
136
  */
137
137
  size: PropTypes.oneOf(['sm', 'md', 'lg', 'xl'])
138
138
  };
139
- ContainedList.ContainedListItem = ContainedListItem.default;
139
+ Object.assign(ContainedList, {
140
+ ContainedListItem: ContainedListItem.default
141
+ });
140
142
 
141
143
  exports.default = ContainedList;
@@ -4,7 +4,8 @@
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 ComponentType, type FunctionComponent, ReactNode } from 'react';
7
+ import { type ElementType, type ReactNode } from 'react';
8
+ import PropTypes from 'prop-types';
8
9
  interface ContainedListItemProps {
9
10
  /**
10
11
  * A slot for a possible interactive element to render within the item.
@@ -29,7 +30,35 @@ interface ContainedListItemProps {
29
30
  /**
30
31
  * A component used to render an icon.
31
32
  */
32
- renderIcon?: ComponentType | FunctionComponent;
33
+ renderIcon?: ElementType;
33
34
  }
34
- declare const ContainedListItem: React.FC<ContainedListItemProps>;
35
+ declare const ContainedListItem: {
36
+ ({ action, children, className, disabled, onClick, renderIcon: IconElement, ...rest }: ContainedListItemProps): import("react/jsx-runtime").JSX.Element;
37
+ propTypes: {
38
+ /**
39
+ * A slot for a possible interactive element to render within the item.
40
+ */
41
+ action: PropTypes.Requireable<PropTypes.ReactNodeLike>;
42
+ /**
43
+ * The content of this item. Must not contain any interactive elements. Use props.action to include those.
44
+ */
45
+ children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
46
+ /**
47
+ * Additional CSS class names.
48
+ */
49
+ className: PropTypes.Requireable<string>;
50
+ /**
51
+ * Whether this item is disabled.
52
+ */
53
+ disabled: PropTypes.Requireable<boolean>;
54
+ /**
55
+ * Provide an optional function to be called when the item is clicked.
56
+ */
57
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
58
+ /**
59
+ * A component used to render an icon.
60
+ */
61
+ renderIcon: PropTypes.Requireable<object>;
62
+ };
63
+ };
35
64
  export default ContainedListItem;