@carbon/react 1.82.1 → 1.83.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 (402) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +943 -828
  2. package/es/components/AILabel/index.js +13 -13
  3. package/es/components/AISkeleton/AISkeletonIcon.js +2 -2
  4. package/es/components/AISkeleton/AISkeletonPlaceholder.js +2 -2
  5. package/es/components/AISkeleton/AISkeletonText.js +2 -2
  6. package/es/components/Accordion/Accordion.Skeleton.js +15 -15
  7. package/es/components/Accordion/Accordion.js +3 -3
  8. package/es/components/Accordion/AccordionItem.js +9 -9
  9. package/es/components/Accordion/AccordionProvider.js +2 -2
  10. package/es/components/AccordionItem/index.d.ts +9 -0
  11. package/es/components/AspectRatio/AspectRatio.js +2 -2
  12. package/es/components/BadgeIndicator/index.js +3 -3
  13. package/es/components/Breadcrumb/Breadcrumb.Skeleton.js +5 -5
  14. package/es/components/Breadcrumb/Breadcrumb.js +3 -3
  15. package/es/components/Breadcrumb/BreadcrumbItem.js +9 -9
  16. package/es/components/Button/Button.Skeleton.js +3 -3
  17. package/es/components/Button/Button.js +5 -5
  18. package/es/components/Button/ButtonBase.js +5 -5
  19. package/es/components/ButtonSet/ButtonSet.js +2 -2
  20. package/es/components/ChatButton/ChatButton.Skeleton.js +2 -2
  21. package/es/components/ChatButton/ChatButton.js +3 -3
  22. package/es/components/Checkbox/Checkbox.Skeleton.js +4 -4
  23. package/es/components/Checkbox/Checkbox.js +15 -15
  24. package/es/components/CheckboxGroup/CheckboxGroup.js +12 -12
  25. package/es/components/ClassPrefix/index.js +2 -2
  26. package/es/components/CodeSnippet/CodeSnippet.Skeleton.js +7 -7
  27. package/es/components/CodeSnippet/CodeSnippet.js +16 -16
  28. package/es/components/ComboBox/ComboBox.js +18 -18
  29. package/es/components/ComboButton/index.js +7 -7
  30. package/es/components/ComposedModal/ComposedModal.js +20 -20
  31. package/es/components/ComposedModal/ModalFooter.js +8 -8
  32. package/es/components/ComposedModal/ModalHeader.js +8 -8
  33. package/es/components/ContainedList/ContainedList.js +7 -7
  34. package/es/components/ContainedList/ContainedListItem/ContainedListItem.js +7 -7
  35. package/es/components/ContentSwitcher/ContentSwitcher.d.ts +8 -0
  36. package/es/components/ContentSwitcher/ContentSwitcher.js +13 -7
  37. package/es/components/Copy/Copy.js +2 -2
  38. package/es/components/CopyButton/CopyButton.js +4 -4
  39. package/es/components/DangerButton/DangerButton.js +2 -2
  40. package/es/components/DataTable/DataTable.d.ts +81 -283
  41. package/es/components/DataTable/DataTable.js +83 -123
  42. package/es/components/DataTable/Table.d.ts +2 -2
  43. package/es/components/DataTable/Table.js +4 -4
  44. package/es/components/DataTable/TableActionList.d.ts +1 -1
  45. package/es/components/DataTable/TableBatchAction.js +2 -2
  46. package/es/components/DataTable/TableBatchActions.js +9 -9
  47. package/es/components/DataTable/TableBody.d.ts +3 -3
  48. package/es/components/DataTable/TableBody.js +2 -2
  49. package/es/components/DataTable/TableCell.d.ts +3 -4
  50. package/es/components/DataTable/TableCell.js +2 -2
  51. package/es/components/DataTable/TableContainer.d.ts +2 -3
  52. package/es/components/DataTable/TableContainer.js +6 -6
  53. package/es/components/DataTable/TableDecoratorRow.js +4 -4
  54. package/es/components/DataTable/TableExpandHeader.d.ts +2 -3
  55. package/es/components/DataTable/TableExpandHeader.js +4 -4
  56. package/es/components/DataTable/TableExpandRow.js +8 -8
  57. package/es/components/DataTable/TableExpandedRow.d.ts +3 -3
  58. package/es/components/DataTable/TableExpandedRow.js +4 -4
  59. package/es/components/DataTable/TableHead.d.ts +1 -1
  60. package/es/components/DataTable/TableHeader.d.ts +4 -4
  61. package/es/components/DataTable/TableHeader.js +15 -15
  62. package/es/components/DataTable/TableRow.d.ts +3 -4
  63. package/es/components/DataTable/TableRow.js +4 -4
  64. package/es/components/DataTable/TableSelectAll.js +3 -3
  65. package/es/components/DataTable/TableSelectRow.js +4 -4
  66. package/es/components/DataTable/TableSlugRow.js +3 -3
  67. package/es/components/DataTable/TableToolbar.js +2 -2
  68. package/es/components/DataTable/TableToolbarAction.js +2 -2
  69. package/es/components/DataTable/TableToolbarContent.d.ts +1 -1
  70. package/es/components/DataTable/TableToolbarMenu.js +2 -2
  71. package/es/components/DataTable/TableToolbarSearch.js +2 -2
  72. package/es/components/DataTable/index.d.ts +1 -1
  73. package/es/components/DataTableSkeleton/DataTableSkeleton.js +15 -15
  74. package/es/components/DatePicker/DatePicker.Skeleton.js +8 -8
  75. package/es/components/DatePicker/DatePicker.d.ts +1 -1
  76. package/es/components/DatePicker/DatePicker.js +23 -20
  77. package/es/components/DatePickerInput/DatePickerInput.d.ts +3 -4
  78. package/es/components/DatePickerInput/DatePickerInput.js +19 -19
  79. package/es/components/Dialog/index.d.ts +5 -6
  80. package/es/components/Dialog/index.js +10 -10
  81. package/es/components/Dropdown/Dropdown.Skeleton.d.ts +2 -3
  82. package/es/components/Dropdown/Dropdown.Skeleton.js +4 -4
  83. package/es/components/Dropdown/Dropdown.d.ts +3 -3
  84. package/es/components/Dropdown/Dropdown.js +18 -18
  85. package/es/components/ErrorBoundary/ErrorBoundary.js +2 -2
  86. package/es/components/ExpandableSearch/ExpandableSearch.js +3 -3
  87. package/es/components/FeatureFlags/index.js +2 -2
  88. package/es/components/FileUploader/FileUploader.Skeleton.d.ts +3 -3
  89. package/es/components/FileUploader/FileUploader.Skeleton.js +5 -5
  90. package/es/components/FileUploader/FileUploader.d.ts +2 -3
  91. package/es/components/FileUploader/FileUploader.js +12 -12
  92. package/es/components/FileUploader/FileUploaderButton.d.ts +3 -4
  93. package/es/components/FileUploader/FileUploaderButton.js +6 -5
  94. package/es/components/FileUploader/FileUploaderDropContainer.d.ts +2 -3
  95. package/es/components/FileUploader/FileUploaderDropContainer.js +5 -5
  96. package/es/components/FileUploader/FileUploaderItem.d.ts +2 -3
  97. package/es/components/FileUploader/FileUploaderItem.js +13 -13
  98. package/es/components/FileUploader/Filename.d.ts +3 -4
  99. package/es/components/FileUploader/Filename.js +7 -7
  100. package/es/components/FluidComboBox/FluidComboBox.Skeleton.js +5 -5
  101. package/es/components/FluidComboBox/FluidComboBox.js +4 -4
  102. package/es/components/FluidDatePicker/FluidDatePicker.Skeleton.js +11 -11
  103. package/es/components/FluidDatePicker/FluidDatePicker.js +4 -4
  104. package/es/components/FluidDatePickerInput/FluidDatePickerInput.js +3 -3
  105. package/es/components/FluidDropdown/FluidDropdown.Skeleton.js +5 -5
  106. package/es/components/FluidDropdown/FluidDropdown.js +4 -4
  107. package/es/components/FluidForm/FluidForm.d.ts +3 -4
  108. package/es/components/FluidForm/FluidForm.js +3 -3
  109. package/es/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +5 -5
  110. package/es/components/FluidMultiSelect/FluidMultiSelect.js +5 -5
  111. package/es/components/FluidNumberInput/FluidNumberInput.Skeleton.js +5 -5
  112. package/es/components/FluidNumberInput/FluidNumberInput.js +4 -4
  113. package/es/components/FluidSearch/FluidSearch.Skeleton.js +5 -5
  114. package/es/components/FluidSearch/FluidSearch.js +4 -4
  115. package/es/components/FluidSelect/FluidSelect.Skeleton.js +5 -5
  116. package/es/components/FluidSelect/FluidSelect.js +4 -4
  117. package/es/components/FluidTextArea/FluidTextArea.Skeleton.js +5 -5
  118. package/es/components/FluidTextArea/FluidTextArea.js +3 -3
  119. package/es/components/FluidTextInput/FluidTextInput.Skeleton.js +5 -5
  120. package/es/components/FluidTextInput/FluidTextInput.js +5 -5
  121. package/es/components/FluidTimePicker/FluidTimePicker.Skeleton.js +3 -3
  122. package/es/components/FluidTimePicker/FluidTimePicker.js +13 -13
  123. package/es/components/FluidTimePickerSelect/FluidTimePickerSelect.js +3 -3
  124. package/es/components/Form/Form.js +2 -2
  125. package/es/components/FormGroup/FormGroup.d.ts +3 -4
  126. package/es/components/FormGroup/FormGroup.js +4 -4
  127. package/es/components/FormItem/FormItem.js +2 -2
  128. package/es/components/FormLabel/FormLabel.js +2 -2
  129. package/es/components/Grid/CSSGrid.js +8 -8
  130. package/es/components/Grid/Column.d.ts +5 -5
  131. package/es/components/Grid/Column.js +15 -15
  132. package/es/components/Grid/ColumnHang.js +2 -2
  133. package/es/components/Grid/FlexGrid.js +4 -4
  134. package/es/components/Grid/Grid.js +3 -3
  135. package/es/components/Grid/GridContext.d.ts +2 -2
  136. package/es/components/Grid/GridContext.js +1 -1
  137. package/es/components/Grid/Row.js +2 -2
  138. package/es/components/Heading/index.js +9 -9
  139. package/es/components/Icon/Icon.Skeleton.js +2 -2
  140. package/es/components/IconButton/index.js +11 -6
  141. package/es/components/IconIndicator/index.js +4 -4
  142. package/es/components/IdPrefix/index.js +2 -2
  143. package/es/components/InlineCheckbox/InlineCheckbox.js +6 -6
  144. package/es/components/InlineLoading/InlineLoading.js +10 -10
  145. package/es/components/Layer/LayerContext.js +2 -2
  146. package/es/components/Layer/index.d.ts +4 -0
  147. package/es/components/Layer/index.js +15 -8
  148. package/es/components/Layout/index.js +5 -5
  149. package/es/components/LayoutDirection/LayoutDirection.js +4 -4
  150. package/es/components/LayoutDirection/LayoutDirectionContext.js +2 -2
  151. package/es/components/LayoutDirection/index.d.ts +8 -0
  152. package/es/components/Link/Link.js +6 -6
  153. package/es/components/ListBox/ListBox.d.ts +2 -3
  154. package/es/components/ListBox/ListBox.js +5 -5
  155. package/es/components/ListBox/ListBoxField.d.ts +3 -4
  156. package/es/components/ListBox/ListBoxField.js +2 -2
  157. package/es/components/ListBox/ListBoxMenu.d.ts +2 -3
  158. package/es/components/ListBox/ListBoxMenu.js +2 -2
  159. package/es/components/ListBox/ListBoxMenuIcon.js +4 -4
  160. package/es/components/ListBox/ListBoxMenuItem.d.ts +2 -3
  161. package/es/components/ListBox/ListBoxMenuItem.js +3 -3
  162. package/es/components/ListBox/ListBoxSelection.js +6 -6
  163. package/es/components/ListBox/next/ListBoxSelection.js +7 -7
  164. package/es/components/ListBox/next/ListBoxTrigger.js +4 -4
  165. package/es/components/ListItem/ListItem.js +2 -2
  166. package/es/components/Loading/Loading.d.ts +3 -3
  167. package/es/components/Loading/Loading.js +6 -6
  168. package/es/components/Menu/Menu.js +5 -4
  169. package/es/components/Menu/MenuItem.js +18 -17
  170. package/es/components/MenuButton/index.js +4 -4
  171. package/es/components/Modal/Modal.d.ts +3 -4
  172. package/es/components/Modal/Modal.js +40 -38
  173. package/es/components/ModalWrapper/ModalWrapper.js +7 -7
  174. package/es/components/MultiSelect/FilterableMultiSelect.js +22 -26
  175. package/es/components/MultiSelect/MultiSelect.js +23 -23
  176. package/es/components/Notification/Notification.js +41 -41
  177. package/es/components/NumberInput/NumberInput.Skeleton.js +4 -4
  178. package/es/components/NumberInput/NumberInput.js +22 -22
  179. package/es/components/OrderedList/OrderedList.js +2 -2
  180. package/es/components/OverflowMenu/OverflowMenu.js +7 -7
  181. package/es/components/OverflowMenu/index.js +3 -3
  182. package/es/components/OverflowMenu/next/index.js +6 -6
  183. package/es/components/OverflowMenuItem/OverflowMenuItem.js +4 -4
  184. package/es/components/OverflowMenuV2/index.js +3 -3
  185. package/es/components/PageHeader/PageHeader.js +29 -29
  186. package/es/components/Pagination/Pagination.Skeleton.js +8 -8
  187. package/es/components/Pagination/Pagination.js +17 -17
  188. package/es/components/Pagination/experimental/PageSelector.js +3 -3
  189. package/es/components/Pagination/experimental/Pagination.js +14 -14
  190. package/es/components/PaginationNav/PaginationNav.js +31 -31
  191. package/es/components/Popover/index.js +15 -15
  192. package/es/components/PrimaryButton/PrimaryButton.js +2 -2
  193. package/es/components/ProgressBar/ProgressBar.js +13 -13
  194. package/es/components/ProgressIndicator/ProgressIndicator.Skeleton.js +7 -7
  195. package/es/components/ProgressIndicator/ProgressIndicator.js +20 -20
  196. package/es/components/RadioButton/RadioButton.Skeleton.js +4 -4
  197. package/es/components/RadioButton/RadioButton.js +10 -10
  198. package/es/components/RadioButtonGroup/RadioButtonGroup.js +16 -16
  199. package/es/components/RadioTile/RadioTile.js +12 -12
  200. package/es/components/Search/Search.Skeleton.js +4 -4
  201. package/es/components/Search/Search.js +11 -11
  202. package/es/components/SecondaryButton/SecondaryButton.js +2 -2
  203. package/es/components/Select/Select.Skeleton.js +5 -5
  204. package/es/components/Select/Select.js +19 -19
  205. package/es/components/SelectItem/SelectItem.js +2 -2
  206. package/es/components/SelectItemGroup/SelectItemGroup.js +2 -2
  207. package/es/components/ShapeIndicator/index.js +7 -7
  208. package/es/components/SkeletonIcon/SkeletonIcon.d.ts +0 -4
  209. package/es/components/SkeletonIcon/SkeletonIcon.js +3 -7
  210. package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.js +2 -2
  211. package/es/components/SkeletonText/SkeletonText.js +4 -4
  212. package/es/components/Slider/Slider.Skeleton.js +17 -17
  213. package/es/components/Slider/Slider.d.ts +8 -0
  214. package/es/components/Slider/Slider.js +44 -38
  215. package/es/components/Slider/SliderHandles.js +19 -19
  216. package/es/components/Stack/HStack.js +2 -2
  217. package/es/components/Stack/Stack.js +2 -2
  218. package/es/components/Stack/VStack.js +2 -2
  219. package/es/components/StructuredList/StructuredList.Skeleton.js +12 -12
  220. package/es/components/StructuredList/StructuredList.js +24 -24
  221. package/es/components/Switch/IconSwitch.js +3 -3
  222. package/es/components/Switch/Switch.js +4 -4
  223. package/es/components/TabContent/TabContent.js +2 -2
  224. package/es/components/Tabs/Tabs.Skeleton.js +7 -7
  225. package/es/components/Tabs/Tabs.js +65 -62
  226. package/es/components/Tag/DismissibleTag.d.ts +4 -0
  227. package/es/components/Tag/DismissibleTag.js +18 -13
  228. package/es/components/Tag/OperationalTag.js +6 -6
  229. package/es/components/Tag/SelectableTag.d.ts +4 -0
  230. package/es/components/Tag/SelectableTag.js +18 -9
  231. package/es/components/Tag/Tag.Skeleton.js +2 -2
  232. package/es/components/Tag/Tag.js +15 -15
  233. package/es/components/Text/Text.js +4 -4
  234. package/es/components/Text/TextDirection.js +2 -2
  235. package/es/components/Text/createTextComponent.js +2 -2
  236. package/es/components/TextArea/TextArea.Skeleton.js +4 -4
  237. package/es/components/TextArea/TextArea.js +19 -19
  238. package/es/components/TextInput/ControlledPasswordInput.d.ts +2 -3
  239. package/es/components/TextInput/ControlledPasswordInput.js +13 -13
  240. package/es/components/TextInput/PasswordInput.js +15 -15
  241. package/es/components/TextInput/TextInput.Skeleton.js +4 -4
  242. package/es/components/TextInput/TextInput.js +17 -17
  243. package/es/components/Theme/index.js +10 -10
  244. package/es/components/Tile/Tile.js +36 -36
  245. package/es/components/TileGroup/TileGroup.d.ts +3 -4
  246. package/es/components/TileGroup/TileGroup.js +8 -8
  247. package/es/components/TimePicker/TimePicker.d.ts +2 -3
  248. package/es/components/TimePicker/TimePicker.js +14 -14
  249. package/es/components/TimePickerSelect/TimePickerSelect.js +4 -4
  250. package/es/components/Toggle/Toggle.Skeleton.js +4 -4
  251. package/es/components/Toggle/Toggle.js +10 -10
  252. package/es/components/ToggleSmall/ToggleSmall.Skeleton.js +8 -8
  253. package/es/components/Toggletip/index.js +12 -12
  254. package/es/components/Tooltip/DefinitionTooltip.js +4 -4
  255. package/es/components/Tooltip/Tooltip.d.ts +3 -0
  256. package/es/components/Tooltip/Tooltip.js +25 -13
  257. package/es/components/TreeView/TreeNode.js +45 -36
  258. package/es/components/TreeView/TreeView.js +30 -21
  259. package/es/components/UIShell/Content.js +2 -2
  260. package/es/components/UIShell/Header.js +2 -2
  261. package/es/components/UIShell/HeaderContainer.js +2 -2
  262. package/es/components/UIShell/HeaderGlobalAction.js +3 -3
  263. package/es/components/UIShell/HeaderGlobalBar.d.ts +1 -1
  264. package/es/components/UIShell/HeaderMenu.js +14 -14
  265. package/es/components/UIShell/HeaderMenuButton.js +4 -4
  266. package/es/components/UIShell/HeaderMenuItem.js +11 -9
  267. package/es/components/UIShell/HeaderName.js +3 -3
  268. package/es/components/UIShell/HeaderNavigation.js +3 -3
  269. package/es/components/UIShell/HeaderPanel.js +3 -3
  270. package/es/components/UIShell/HeaderSideNavItems.js +2 -2
  271. package/es/components/UIShell/Link.js +3 -3
  272. package/es/components/UIShell/SideNav.js +7 -7
  273. package/es/components/UIShell/SideNavDetails.js +3 -3
  274. package/es/components/UIShell/SideNavDivider.js +3 -3
  275. package/es/components/UIShell/SideNavFooter.js +7 -7
  276. package/es/components/UIShell/SideNavHeader.js +3 -3
  277. package/es/components/UIShell/SideNavIcon.js +2 -2
  278. package/es/components/UIShell/SideNavItem.js +2 -2
  279. package/es/components/UIShell/SideNavItems.js +5 -5
  280. package/es/components/UIShell/SideNavLink.js +5 -5
  281. package/es/components/UIShell/SideNavLinkText.js +2 -2
  282. package/es/components/UIShell/SideNavMenu.js +10 -10
  283. package/es/components/UIShell/SideNavMenuItem.js +5 -5
  284. package/es/components/UIShell/SideNavSwitcher.js +8 -8
  285. package/es/components/UIShell/SkipToContent.js +2 -2
  286. package/es/components/UIShell/Switcher.js +9 -9
  287. package/es/components/UIShell/SwitcherDivider.js +2 -2
  288. package/es/components/UIShell/SwitcherItem.js +3 -3
  289. package/es/components/UnorderedList/UnorderedList.js +2 -2
  290. package/es/feature-flags.d.ts +7 -0
  291. package/es/index.js +25 -26
  292. package/es/internal/FloatingMenu.js +4 -4
  293. package/es/internal/__mocks__/mockHTMLElement.d.ts +9 -0
  294. package/es/internal/createClassWrapper.js +2 -2
  295. package/es/internal/debounce.d.ts +8 -0
  296. package/es/internal/environment.d.ts +12 -0
  297. package/es/internal/useId.js +2 -2
  298. package/es/internal/useIdPrefix.js +3 -3
  299. package/es/internal/useNormalizedInputProps.js +3 -3
  300. package/es/internal/usePrefix.js +3 -3
  301. package/es/internal/usePreviousValue.d.ts +17 -0
  302. package/es/internal/usePreviousValue.js +28 -0
  303. package/es/internal/useResizeObserver.d.ts +14 -0
  304. package/es/internal/useResizeObserver.js +74 -0
  305. package/es/internal/wrapFocus.js +3 -6
  306. package/es/prop-types/AriaPropTypes.d.ts +8 -0
  307. package/es/tools/wrapComponent.d.ts +3 -4
  308. package/es/tools/wrapComponent.js +2 -2
  309. package/es/types/common.d.ts +0 -2
  310. package/lib/components/AccordionItem/index.d.ts +9 -0
  311. package/lib/components/CodeSnippet/CodeSnippet.js +2 -3
  312. package/lib/components/ContentSwitcher/ContentSwitcher.d.ts +8 -0
  313. package/lib/components/ContentSwitcher/ContentSwitcher.js +7 -1
  314. package/lib/components/DataTable/DataTable.d.ts +81 -283
  315. package/lib/components/DataTable/DataTable.js +82 -123
  316. package/lib/components/DataTable/Table.d.ts +2 -2
  317. package/lib/components/DataTable/TableActionList.d.ts +1 -1
  318. package/lib/components/DataTable/TableBody.d.ts +3 -3
  319. package/lib/components/DataTable/TableCell.d.ts +3 -4
  320. package/lib/components/DataTable/TableContainer.d.ts +2 -3
  321. package/lib/components/DataTable/TableExpandHeader.d.ts +2 -3
  322. package/lib/components/DataTable/TableExpandedRow.d.ts +3 -3
  323. package/lib/components/DataTable/TableHead.d.ts +1 -1
  324. package/lib/components/DataTable/TableHeader.d.ts +4 -4
  325. package/lib/components/DataTable/TableRow.d.ts +3 -4
  326. package/lib/components/DataTable/TableToolbarContent.d.ts +1 -1
  327. package/lib/components/DataTable/index.d.ts +1 -1
  328. package/lib/components/DatePicker/DatePicker.d.ts +1 -1
  329. package/lib/components/DatePicker/DatePicker.js +6 -3
  330. package/lib/components/DatePickerInput/DatePickerInput.d.ts +3 -4
  331. package/lib/components/Dialog/index.d.ts +5 -6
  332. package/lib/components/Dropdown/Dropdown.Skeleton.d.ts +2 -3
  333. package/lib/components/Dropdown/Dropdown.d.ts +3 -3
  334. package/lib/components/FileUploader/FileUploader.Skeleton.d.ts +3 -3
  335. package/lib/components/FileUploader/FileUploader.d.ts +2 -3
  336. package/lib/components/FileUploader/FileUploaderButton.d.ts +3 -4
  337. package/lib/components/FileUploader/FileUploaderButton.js +3 -2
  338. package/lib/components/FileUploader/FileUploaderDropContainer.d.ts +2 -3
  339. package/lib/components/FileUploader/FileUploaderItem.d.ts +2 -3
  340. package/lib/components/FileUploader/Filename.d.ts +3 -4
  341. package/lib/components/FluidForm/FluidForm.d.ts +3 -4
  342. package/lib/components/FormGroup/FormGroup.d.ts +3 -4
  343. package/lib/components/Grid/Column.d.ts +5 -5
  344. package/lib/components/Grid/Column.js +10 -10
  345. package/lib/components/Grid/GridContext.d.ts +2 -2
  346. package/lib/components/Grid/GridContext.js +5 -23
  347. package/lib/components/IconButton/index.js +6 -1
  348. package/lib/components/Layer/index.d.ts +4 -0
  349. package/lib/components/Layer/index.js +9 -2
  350. package/lib/components/LayoutDirection/index.d.ts +8 -0
  351. package/lib/components/Link/Link.js +1 -1
  352. package/lib/components/ListBox/ListBox.d.ts +2 -3
  353. package/lib/components/ListBox/ListBoxField.d.ts +3 -4
  354. package/lib/components/ListBox/ListBoxMenu.d.ts +2 -3
  355. package/lib/components/ListBox/ListBoxMenuItem.d.ts +2 -3
  356. package/lib/components/Loading/Loading.d.ts +3 -3
  357. package/lib/components/Menu/Menu.js +2 -1
  358. package/lib/components/Menu/MenuItem.js +2 -1
  359. package/lib/components/Modal/Modal.d.ts +3 -4
  360. package/lib/components/Modal/Modal.js +5 -3
  361. package/lib/components/MultiSelect/FilterableMultiSelect.js +1 -5
  362. package/lib/components/SkeletonIcon/SkeletonIcon.d.ts +0 -4
  363. package/lib/components/SkeletonIcon/SkeletonIcon.js +1 -5
  364. package/lib/components/Slider/Slider.d.ts +8 -0
  365. package/lib/components/Slider/Slider.js +6 -0
  366. package/lib/components/Tabs/Tabs.js +5 -2
  367. package/lib/components/Tag/DismissibleTag.d.ts +4 -0
  368. package/lib/components/Tag/DismissibleTag.js +8 -3
  369. package/lib/components/Tag/SelectableTag.d.ts +4 -0
  370. package/lib/components/Tag/SelectableTag.js +12 -3
  371. package/lib/components/TextInput/ControlledPasswordInput.d.ts +2 -3
  372. package/lib/components/TileGroup/TileGroup.d.ts +3 -4
  373. package/lib/components/TimePicker/TimePicker.d.ts +2 -3
  374. package/lib/components/Tooltip/Tooltip.d.ts +3 -0
  375. package/lib/components/Tooltip/Tooltip.js +18 -6
  376. package/lib/components/TreeView/TreeNode.js +20 -11
  377. package/lib/components/TreeView/TreeView.js +27 -18
  378. package/lib/components/UIShell/HeaderGlobalBar.d.ts +1 -1
  379. package/lib/components/UIShell/HeaderMenuItem.js +7 -5
  380. package/lib/components/UIShell/Switcher.js +3 -3
  381. package/lib/feature-flags.d.ts +7 -0
  382. package/lib/index.js +50 -51
  383. package/lib/internal/__mocks__/mockHTMLElement.d.ts +9 -0
  384. package/lib/internal/debounce.d.ts +8 -0
  385. package/lib/internal/environment.d.ts +12 -0
  386. package/lib/internal/usePreviousValue.d.ts +17 -0
  387. package/lib/internal/usePreviousValue.js +32 -0
  388. package/lib/internal/useResizeObserver.d.ts +14 -0
  389. package/lib/internal/useResizeObserver.js +78 -0
  390. package/lib/internal/wrapFocus.js +3 -6
  391. package/lib/prop-types/AriaPropTypes.d.ts +8 -0
  392. package/lib/tools/wrapComponent.d.ts +3 -4
  393. package/lib/types/common.d.ts +0 -2
  394. package/package.json +5 -6
  395. package/scss/components/content-switcher/_tokens.scss +9 -0
  396. package/telemetry.yml +5 -1
  397. package/es/components/DataTable/index.js +0 -76
  398. package/es/prop-types/tools/getDisplayName.js +0 -34
  399. package/es/prop-types/types.js +0 -13
  400. package/lib/components/DataTable/index.js +0 -82
  401. package/lib/prop-types/tools/getDisplayName.js +0 -38
  402. package/lib/prop-types/types.js +0 -17
@@ -25,6 +25,7 @@ var wrapFocus = require('../../internal/wrapFocus.js');
25
25
  var useIsomorphicEffect = require('../../internal/useIsomorphicEffect.js');
26
26
  var useId = require('../../internal/useId.js');
27
27
  var usePrefix = require('../../internal/usePrefix.js');
28
+ var usePreviousValue = require('../../internal/usePreviousValue.js');
28
29
  var keys = require('../../internal/keyboard/keys.js');
29
30
  var match = require('../../internal/keyboard/match.js');
30
31
  var index$2 = require('../IconButton/index.js');
@@ -89,6 +90,7 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal(_
89
90
  const startTrap = React.useRef(null);
90
91
  const endTrap = React.useRef(null);
91
92
  const [isScrollable, setIsScrollable] = React.useState(false);
93
+ const prevOpen = usePreviousValue.usePreviousValue(open);
92
94
  const modalInstanceId = `modal-${useId.useId()}`;
93
95
  const modalLabelId = `${prefix}--modal-header__label--${modalInstanceId}`;
94
96
  const modalHeadingId = `${prefix}--modal-header__heading--${modalInstanceId}`;
@@ -211,14 +213,14 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal(_
211
213
  }
212
214
  }, [open, prefix, enableDialogElement]);
213
215
  React.useEffect(() => {
214
- if (!enableDialogElement && !open && launcherButtonRef) {
216
+ if (!enableDialogElement && prevOpen && !open && launcherButtonRef) {
215
217
  setTimeout(() => {
216
218
  if ('current' in launcherButtonRef) {
217
219
  launcherButtonRef.current?.focus();
218
220
  }
219
221
  });
220
222
  }
221
- }, [open, launcherButtonRef, enableDialogElement]);
223
+ }, [open, prevOpen, launcherButtonRef, enableDialogElement]);
222
224
  React.useEffect(() => {
223
225
  if (!enableDialogElement) {
224
226
  const initialFocus = focusContainerElement => {
@@ -445,7 +447,7 @@ Modal.propTypes = {
445
447
  */
446
448
  className: PropTypes__default["default"].string,
447
449
  /**
448
- * Specify an label for the close button of the modal; defaults to close
450
+ * Specify label for the close button of the modal; defaults to close
449
451
  */
450
452
  closeButtonLabel: PropTypes__default["default"].string,
451
453
  /**
@@ -555,11 +555,7 @@ const FilterableMultiSelect = /*#__PURE__*/React.forwardRef(function FilterableM
555
555
  }
556
556
  }
557
557
  } : {};
558
- const clearSelectionContent = controlledSelectedItems.length > 0 ? /*#__PURE__*/React__default["default"].createElement("span", {
559
- className: `${prefix}--visually-hidden`
560
- }, clearSelectionDescription, " ", controlledSelectedItems.length, ",", clearSelectionText) : /*#__PURE__*/React__default["default"].createElement("span", {
561
- className: `${prefix}--visually-hidden`
562
- }, clearSelectionDescription, ": 0");
558
+ const clearSelectionContent = controlledSelectedItems.length > 0 ? `${clearSelectionDescription} ${controlledSelectedItems.length}. ${clearSelectionText}.` : `${clearSelectionDescription} 0.`;
563
559
  return /*#__PURE__*/React__default["default"].createElement("div", {
564
560
  className: wrapperClasses
565
561
  }, titleText ? /*#__PURE__*/React__default["default"].createElement("label", _rollupPluginBabelHelpers["extends"]({
@@ -4,10 +4,6 @@ export interface SkeletonIconProps {
4
4
  * Specify an optional className to add.
5
5
  */
6
6
  className?: string;
7
- /**
8
- * The CSS styles.
9
- */
10
- style?: React.CSSProperties;
11
7
  }
12
8
  declare const SkeletonIcon: React.FC<SkeletonIconProps>;
13
9
  export default SkeletonIcon;
@@ -38,11 +38,7 @@ SkeletonIcon.propTypes = {
38
38
  /**
39
39
  * Specify an optional className to add.
40
40
  */
41
- className: PropTypes__default["default"].string,
42
- /**
43
- * The CSS styles.
44
- */
45
- style: PropTypes__default["default"].object
41
+ className: PropTypes__default["default"].string
46
42
  };
47
43
 
48
44
  exports["default"] = SkeletonIcon;
@@ -73,6 +73,10 @@ export interface SliderProps extends Omit<React.InputHTMLAttributes<HTMLInputEle
73
73
  * The label for the slider.
74
74
  */
75
75
  labelText?: ReactNode;
76
+ /**
77
+ * Specify whether you want the underlying label to be visually hidden
78
+ */
79
+ hideLabel?: boolean;
76
80
  /**
77
81
  * @deprecated
78
82
  * `true` to use the light version.
@@ -215,6 +219,10 @@ declare class Slider extends PureComponent<SliderProps> {
215
219
  * The label for the slider.
216
220
  */
217
221
  labelText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
222
+ /**
223
+ * Specify whether you want the underlying label to be visually hidden
224
+ */
225
+ hideLabel: PropTypes.Requireable<boolean>;
218
226
  /**
219
227
  * `true` to use the light version.
220
228
  */
@@ -955,6 +955,7 @@ class Slider extends React.PureComponent {
955
955
  maxLabel = '',
956
956
  formatLabel = defaultFormatLabel,
957
957
  labelText,
958
+ hideLabel,
958
959
  step = 1,
959
960
  stepMultiplier: _stepMultiplier,
960
961
  inputType = 'number',
@@ -988,6 +989,7 @@ class Slider extends React.PureComponent {
988
989
  return /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, prefix => {
989
990
  const labelId = `${id}-label`;
990
991
  const labelClasses = cx__default["default"](`${prefix}--label`, {
992
+ [`${prefix}--visually-hidden`]: hideLabel,
991
993
  [`${prefix}--label--disabled`]: disabled
992
994
  });
993
995
  const containerClasses = cx__default["default"](`${prefix}--slider-container`, {
@@ -1241,6 +1243,10 @@ _rollupPluginBabelHelpers.defineProperty(Slider, "propTypes", {
1241
1243
  * The label for the slider.
1242
1244
  */
1243
1245
  labelText: PropTypes__default["default"].node,
1246
+ /**
1247
+ * Specify whether you want the underlying label to be visually hidden
1248
+ */
1249
+ hideLabel: PropTypes__default["default"].bool,
1244
1250
  /**
1245
1251
  * `true` to use the light version.
1246
1252
  */
@@ -329,9 +329,12 @@ function TabList(_ref4) {
329
329
  });
330
330
  const tabs = React.useRef([]);
331
331
  const debouncedOnScroll = React.useCallback(() => {
332
- return debounce.debounce(event => {
333
- setScrollLeft(event.target.scrollLeft);
332
+ const updateScroll = debounce.debounce(() => {
333
+ if (ref.current) {
334
+ setScrollLeft(ref.current.scrollLeft);
335
+ }
334
336
  }, scrollDebounceWait);
337
+ updateScroll();
335
338
  }, [scrollDebounceWait]);
336
339
  function onKeyDown(event) {
337
340
  if (match.matches(event, [keys.ArrowRight, keys.ArrowLeft, keys.Home, keys.End])) {
@@ -20,6 +20,10 @@ export interface DismissibleTagBaseProps {
20
20
  * Specify if the `DismissibleTag` is disabled
21
21
  */
22
22
  disabled?: boolean;
23
+ /**
24
+ * Provide a custom tooltip label for the dismiss button
25
+ */
26
+ dismissTooltipLabel?: string;
23
27
  /**
24
28
  * Specify the id for the selectable tag.
25
29
  */
@@ -46,6 +46,7 @@ const DismissibleTag = /*#__PURE__*/React.forwardRef((_ref, forwardRef) => {
46
46
  text,
47
47
  tagTitle,
48
48
  type,
49
+ dismissTooltipLabel = 'Dismiss tag',
49
50
  ...other
50
51
  } = _ref;
51
52
  const prefix = usePrefix.usePrefix();
@@ -79,7 +80,7 @@ const DismissibleTag = /*#__PURE__*/React.forwardRef((_ref, forwardRef) => {
79
80
  onClick,
80
81
  ...otherProps
81
82
  } = other;
82
- const dismissLabel = `Dismiss "${text}"`;
83
+ const dismissActionLabel = isEllipsisApplied ? dismissTooltipLabel : title;
83
84
  return /*#__PURE__*/React__default["default"].createElement(Tag["default"], _rollupPluginBabelHelpers["extends"]({
84
85
  ref: combinedRef,
85
86
  type: type,
@@ -96,7 +97,7 @@ const DismissibleTag = /*#__PURE__*/React.forwardRef((_ref, forwardRef) => {
96
97
  }, text), slug ? normalizedDecorator : decorator ? /*#__PURE__*/React__default["default"].createElement("div", {
97
98
  className: `${prefix}--tag__decorator`
98
99
  }, normalizedDecorator) : '', /*#__PURE__*/React__default["default"].createElement(Tooltip.Tooltip, {
99
- label: isEllipsisApplied ? dismissLabel : title,
100
+ label: dismissActionLabel,
100
101
  align: "bottom",
101
102
  className: tooltipClasses,
102
103
  leaveDelayMs: 0,
@@ -106,7 +107,7 @@ const DismissibleTag = /*#__PURE__*/React.forwardRef((_ref, forwardRef) => {
106
107
  className: `${prefix}--tag__close-icon`,
107
108
  onClick: handleClose,
108
109
  disabled: disabled,
109
- "aria-label": title
110
+ "aria-label": dismissActionLabel
110
111
  }, _Close || (_Close = /*#__PURE__*/React__default["default"].createElement(iconsReact.Close, null))))));
111
112
  });
112
113
  DismissibleTag.propTypes = {
@@ -122,6 +123,10 @@ DismissibleTag.propTypes = {
122
123
  * Specify if the `DismissibleTag` is disabled
123
124
  */
124
125
  disabled: PropTypes__default["default"].bool,
126
+ /**
127
+ * Provide a custom tooltip label for the dismiss button
128
+ */
129
+ dismissTooltipLabel: PropTypes__default["default"].string,
125
130
  /**
126
131
  * Specify the id for the tag.
127
132
  */
@@ -36,6 +36,10 @@ export interface SelectableTagBaseProps {
36
36
  * Specify the state of the selectable tag.
37
37
  */
38
38
  selected?: boolean;
39
+ /**
40
+ * Specify the default state of the selectable tag.
41
+ */
42
+ defaultSelected?: boolean;
39
43
  /**
40
44
  * Specify the size of the Tag. Currently supports either `sm`,
41
45
  * `md` (default) or `lg` sizes.
@@ -21,6 +21,7 @@ var Tooltip = require('../Tooltip/Tooltip.js');
21
21
  require('../Text/index.js');
22
22
  var isEllipsisActive = require('./isEllipsisActive.js');
23
23
  var mergeRefs = require('../../tools/mergeRefs.js');
24
+ var useControllableState = require('../../internal/useControllableState.js');
24
25
  var Text = require('../Text/Text.js');
25
26
 
26
27
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -37,15 +38,20 @@ const SelectableTag = /*#__PURE__*/React.forwardRef((_ref, forwardRef) => {
37
38
  renderIcon,
38
39
  onChange,
39
40
  onClick,
40
- selected = false,
41
+ selected,
41
42
  size,
42
43
  text,
44
+ defaultSelected = false,
43
45
  ...other
44
46
  } = _ref;
45
47
  const prefix = usePrefix.usePrefix();
46
48
  const tagRef = React.useRef(null);
47
49
  const tagId = id || `tag-${useId.useId()}`;
48
- const [selectedTag, setSelectedTag] = React.useState(selected);
50
+ const [selectedTag, setSelectedTag] = useControllableState.useControllableState({
51
+ value: selected,
52
+ onChange: onChange,
53
+ defaultValue: defaultSelected
54
+ });
49
55
  const tagClasses = cx__default["default"](`${prefix}--tag--selectable`, className, {
50
56
  [`${prefix}--tag--selectable-selected`]: selectedTag
51
57
  });
@@ -58,7 +64,6 @@ const SelectableTag = /*#__PURE__*/React.forwardRef((_ref, forwardRef) => {
58
64
  const combinedRef = mergeRefs["default"](tagRef, forwardRef);
59
65
  const handleClick = e => {
60
66
  setSelectedTag(!selectedTag);
61
- onChange?.(!selectedTag);
62
67
  onClick?.(e);
63
68
  };
64
69
  if (isEllipsisApplied) {
@@ -125,6 +130,10 @@ SelectableTag.propTypes = {
125
130
  * Specify the state of the selectable tag.
126
131
  */
127
132
  selected: PropTypes__default["default"].bool,
133
+ /**
134
+ * Specify the default state of the selectable tag.
135
+ */
136
+ defaultSelected: PropTypes__default["default"].bool,
128
137
  /**
129
138
  * Specify the size of the Tag. Currently supports either `sm`,
130
139
  * `md` (default) or `lg` sizes.
@@ -4,9 +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 from 'react';
8
- import { ReactAttr } from '../../types/common';
9
- export interface ControlledPasswordInputProps extends ReactAttr<HTMLInputElement> {
7
+ import React, { type HTMLAttributes } from 'react';
8
+ export interface ControlledPasswordInputProps extends HTMLAttributes<HTMLInputElement> {
10
9
  /**
11
10
  * Provide a custom className that is applied directly to the underlying
12
11
  * `<input>` node
@@ -1,14 +1,13 @@
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
7
  import PropTypes from 'prop-types';
8
- import { ReactNode } from 'react';
9
- import { ReactAttr } from '../../types/common';
8
+ import { type HTMLAttributes, type ReactNode } from 'react';
10
9
  type ExcludedAttributes = 'onChange';
11
- export interface TileGroupProps extends Omit<ReactAttr<HTMLFieldSetElement>, ExcludedAttributes> {
10
+ export interface TileGroupProps extends Omit<HTMLAttributes<HTMLFieldSetElement>, ExcludedAttributes> {
12
11
  /**
13
12
  * Provide a collection of <RadioTile> components to render in the group
14
13
  */
@@ -4,10 +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 from 'react';
8
- import { ReactAttr } from '../../types/common';
7
+ import React, { type HTMLAttributes } from 'react';
9
8
  type ExcludedAttributes = 'id' | 'value';
10
- export interface TimePickerProps extends Omit<ReactAttr<HTMLInputElement>, ExcludedAttributes> {
9
+ export interface TimePickerProps extends Omit<HTMLAttributes<HTMLInputElement>, ExcludedAttributes> {
11
10
  /**
12
11
  * Pass in the children that will be rendered next to the form control
13
12
  */
@@ -54,6 +54,9 @@ interface TooltipBaseProps {
54
54
  /**
55
55
  * Provide the label to be rendered inside of the Tooltip. The label will use
56
56
  * `aria-labelledby` and will fully describe the child node that is provided.
57
+ * If the child already has an `aria-label`, the tooltip will not apply
58
+ * `aria-labelledby`. If the child has its own `aria-labelledby`, that value
59
+ * will be kept. Otherwise, the tooltip will use its own ID to label the child.
57
60
  * This means that if you have text in the child node, that it will not be
58
61
  * announced to the screen reader.
59
62
  *
@@ -56,6 +56,21 @@ const Tooltip = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) =>
56
56
  const id = useId.useId('tooltip');
57
57
  const prefix = usePrefix.usePrefix();
58
58
  const child = React__default["default"].Children.only(children);
59
+ const {
60
+ 'aria-label': ariaLabel,
61
+ 'aria-labelledby': ariaLabelledBy,
62
+ 'aria-describedby': ariaDescribedBy
63
+ } = child?.props ?? {};
64
+ const hasLabel = !!label;
65
+ const hasAriaLabel = typeof ariaLabel === 'string' ? ariaLabel.trim() !== '' : false;
66
+
67
+ // An `aria-label` takes precedence over `aria-describedby`, but when it's
68
+ // needed and the user doesn't specify one, the fallback `id` is used.
69
+ const labelledBy = hasAriaLabel ? null : hasLabel ? ariaLabelledBy ?? id : undefined;
70
+
71
+ // If `aria-label` is present, use any provided `aria-describedby`.
72
+ // If not, fallback to child's `aria-describedby` or the tooltip `id` if needed.
73
+ const describedBy = hasAriaLabel ? ariaDescribedBy : ariaDescribedBy ?? (!hasLabel && !ariaLabelledBy ? id : undefined);
59
74
  const triggerProps = {
60
75
  onFocus: () => !focusByMouse && setOpen(true),
61
76
  onBlur: () => {
@@ -68,7 +83,9 @@ const Tooltip = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) =>
68
83
  onMouseLeave,
69
84
  onMouseDown,
70
85
  onMouseMove: onMouseMove,
71
- onTouchStart: onDragStart
86
+ onTouchStart: onDragStart,
87
+ 'aria-labelledby': labelledBy,
88
+ 'aria-describedby': describedBy
72
89
  };
73
90
  function getChildEventHandlers(childProps) {
74
91
  const eventHandlerFunctions = Object.keys(triggerProps).filter(prop => prop.startsWith('on'));
@@ -83,11 +100,6 @@ const Tooltip = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) =>
83
100
  });
84
101
  return eventHandlers;
85
102
  }
86
- if (label) {
87
- triggerProps['aria-labelledby'] = id;
88
- } else {
89
- triggerProps['aria-describedby'] = id;
90
- }
91
103
  const onKeyDown = React.useCallback(event => {
92
104
  if (open && match.match(event, keys.Escape)) {
93
105
  event.stopPropagation();
@@ -80,19 +80,28 @@ const TreeNode = /*#__PURE__*/React__default["default"].forwardRef((_ref, forwar
80
80
  forwardedRef.current = element;
81
81
  }
82
82
  };
83
- const nodesWithProps = React__default["default"].Children.map(children, node => {
84
- if (/*#__PURE__*/React__default["default"].isValidElement(node)) {
83
+ function enhanceTreeNodes(children) {
84
+ return React__default["default"].Children.map(children, node => {
85
+ if (! /*#__PURE__*/React__default["default"].isValidElement(node)) return node;
86
+ const isTreeNode = node.type.displayName === 'TreeNode';
87
+ if (isTreeNode) {
88
+ return /*#__PURE__*/React__default["default"].cloneElement(node, {
89
+ active,
90
+ depth: depth + 1,
91
+ disabled: disabled || node.props.disabled,
92
+ onTreeSelect,
93
+ onNodeFocusEvent,
94
+ selected,
95
+ tabIndex: node.props.disabled ? null : -1
96
+ });
97
+ }
98
+ const newChildren = enhanceTreeNodes(node.props.children);
85
99
  return /*#__PURE__*/React__default["default"].cloneElement(node, {
86
- active,
87
- depth: depth + 1,
88
- disabled: disabled || node.props.disabled,
89
- onTreeSelect,
90
- onNodeFocusEvent,
91
- selected,
92
- tabIndex: !node.props.disabled && -1 || null
100
+ children: newChildren
93
101
  });
94
- }
95
- });
102
+ });
103
+ }
104
+ const nodesWithProps = enhanceTreeNodes(children);
96
105
  const isActive = active === id;
97
106
  const isSelected = selected.includes(id);
98
107
  const treeNodeClasses = cx__default["default"](className, `${prefix}--tree-node`, {
@@ -121,24 +121,33 @@ const TreeView = _ref => {
121
121
  }
122
122
  }
123
123
  let focusTarget = false;
124
- const nodesWithProps = React__default["default"].Children.map(children, _node => {
125
- const node = _node;
126
- const sharedNodeProps = {
127
- active,
128
- depth: 0,
129
- onNodeFocusEvent: handleFocusEvent,
130
- onTreeSelect: handleTreeSelect,
131
- selected,
132
- tabIndex: !node.props.disabled && -1 || undefined
133
- };
134
- if (!focusTarget && !node.props.disabled) {
135
- sharedNodeProps.tabIndex = 0;
136
- focusTarget = true;
137
- }
138
- if (/*#__PURE__*/React__default["default"].isValidElement(node)) {
139
- return /*#__PURE__*/React__default["default"].cloneElement(node, sharedNodeProps);
140
- }
141
- });
124
+ function enhanceTreeNodes(children) {
125
+ return React__default["default"].Children.map(children, child => {
126
+ if (! /*#__PURE__*/React__default["default"].isValidElement(child)) return child;
127
+ const isTreeNode = child.type.displayName === 'TreeNode';
128
+ if (isTreeNode) {
129
+ const node = child;
130
+ const sharedNodeProps = {
131
+ active,
132
+ depth: 0,
133
+ onNodeFocusEvent: handleFocusEvent,
134
+ onTreeSelect: handleTreeSelect,
135
+ selected,
136
+ tabIndex: node.props.disabled ? undefined : -1
137
+ };
138
+ if (!focusTarget && !node.props.disabled) {
139
+ sharedNodeProps.tabIndex = 0;
140
+ focusTarget = true;
141
+ }
142
+ return /*#__PURE__*/React__default["default"].cloneElement(child, sharedNodeProps);
143
+ }
144
+ const newChildren = enhanceTreeNodes(child.props.children);
145
+ return /*#__PURE__*/React__default["default"].cloneElement(child, {
146
+ children: newChildren
147
+ });
148
+ });
149
+ }
150
+ const nodesWithProps = enhanceTreeNodes(children);
142
151
  function handleKeyDown(event) {
143
152
  event.stopPropagation();
144
153
  if (match.matches(event, [keys.ArrowUp, keys.ArrowDown, keys.Home, keys.End])) {
@@ -7,5 +7,5 @@
7
7
  /**
8
8
  * Generic container for `HeaderGlobalAction` components
9
9
  */
10
- declare const HeaderGlobalBar: (props: import("../../types/common").ReactAttr<"div">) => React.ReactElement<any>;
10
+ declare const HeaderGlobalBar: (props: import("react").HTMLAttributes<"div">) => React.ReactElement<any>;
11
11
  export default HeaderGlobalBar;
@@ -38,17 +38,19 @@ const HeaderMenuItem = /*#__PURE__*/React.forwardRef(function HeaderMenuItem(_re
38
38
  if (isCurrentPage) {
39
39
  isActive = isCurrentPage;
40
40
  }
41
+ // We set the current class only if `isActive` is passed in and we do
42
+ // not have an `aria-current="page"` set for the breadcrumb item. When this
43
+ // class is added we also set `aria-current` as `true`
44
+ const hasCurrentClass = isActive && ariaCurrent !== 'page';
41
45
  const linkClassName = cx__default["default"]({
42
46
  [`${prefix}--header__menu-item`]: true,
43
- // We set the current class only if `isActive` is passed in and we do
44
- // not have an `aria-current="page"` set for the breadcrumb item
45
- [`${prefix}--header__menu-item--current`]: isActive && ariaCurrent !== 'page'
47
+ [`${prefix}--header__menu-item--current`]: hasCurrentClass
46
48
  });
47
49
  return /*#__PURE__*/React__default["default"].createElement("li", {
48
50
  className: className,
49
51
  role: role
50
52
  }, /*#__PURE__*/React__default["default"].createElement(Link["default"], _rollupPluginBabelHelpers["extends"]({}, rest, {
51
- "aria-current": ariaCurrent,
53
+ "aria-current": hasCurrentClass ? true : ariaCurrent,
52
54
  className: linkClassName,
53
55
  ref: ref,
54
56
  tabIndex: tabIndex
@@ -73,7 +75,7 @@ HeaderMenuItem.propTypes = {
73
75
  */
74
76
  className: PropTypes__default["default"].string,
75
77
  /**
76
- * Applies selected styles to the item if a user sets this to true and `aria-current !== 'page'`.
78
+ * If `true` and `aria-current !== 'page'`, applies selected styles to the item and sets `aria-current="true"`.
77
79
  */
78
80
  isActive: PropTypes__default["default"].bool,
79
81
  /**
@@ -16,7 +16,7 @@ var usePrefix = require('../../internal/usePrefix.js');
16
16
  var useMergedRefs = require('../../internal/useMergedRefs.js');
17
17
  var PropTypes = require('prop-types');
18
18
  var AriaPropTypes = require('../../prop-types/AriaPropTypes.js');
19
- var getDisplayName = require('../../prop-types/tools/getDisplayName.js');
19
+ var SwitcherItem = require('./SwitcherItem.js');
20
20
 
21
21
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
22
 
@@ -48,7 +48,7 @@ const Switcher = /*#__PURE__*/React.forwardRef(function Switcher(props, forwardR
48
48
  direction
49
49
  } = _ref;
50
50
  const enabledIndices = React__default["default"].Children.toArray(children).reduce((acc, curr, i) => {
51
- if (/*#__PURE__*/React__default["default"].isValidElement(curr) && Object.keys(curr.props).length !== 0 && getDisplayName["default"](curr.type) === 'SwitcherItem') {
51
+ if (/*#__PURE__*/React__default["default"].isValidElement(curr) && Object.keys(curr.props).length !== 0 && curr.type === SwitcherItem["default"]) {
52
52
  acc.push(i);
53
53
  }
54
54
  return acc;
@@ -76,7 +76,7 @@ const Switcher = /*#__PURE__*/React.forwardRef(function Switcher(props, forwardR
76
76
  };
77
77
  const childrenWithProps = React__default["default"].Children.toArray(children).map((child, index) => {
78
78
  // only setup click handlers if onChange event is passed
79
- if (/*#__PURE__*/React__default["default"].isValidElement(child) && child.type && getDisplayName["default"](child.type) === 'SwitcherItem') {
79
+ if (/*#__PURE__*/React__default["default"].isValidElement(child) && child.type === SwitcherItem["default"]) {
80
80
  return /*#__PURE__*/React__default["default"].cloneElement(child, {
81
81
  handleSwitcherItemFocus,
82
82
  index,
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2025
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ export {};