@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
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
- import React__default, { useRef } from 'react';
9
+ import React, { useRef } from 'react';
10
10
  import PropTypes from 'prop-types';
11
11
  import cx from 'classnames';
12
12
  import { useControllableState } from '../../internal/useControllableState.js';
@@ -69,7 +69,7 @@ function Toggle(_ref) {
69
69
  return (
70
70
  /*#__PURE__*/
71
71
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
72
- React__default.createElement("div", {
72
+ React.createElement("div", {
73
73
  className: wrapperClasses,
74
74
  onClick: !labelText ? e => {
75
75
  // the underlying <button> can only be activated by keyboard as it is visually hidden;
@@ -82,7 +82,7 @@ function Toggle(_ref) {
82
82
  buttonElement.current.focus();
83
83
  }
84
84
  } : undefined
85
- }, /*#__PURE__*/React__default.createElement("button", _extends({}, other, {
85
+ }, /*#__PURE__*/React.createElement("button", _extends({}, other, {
86
86
  ref: buttonElement,
87
87
  id: id,
88
88
  className: `${prefix}--toggle__button`,
@@ -92,26 +92,26 @@ function Toggle(_ref) {
92
92
  "aria-labelledby": ariaLabelledby ?? (labelText ? labelId : undefined),
93
93
  disabled: disabled,
94
94
  onClick: handleClick
95
- })), /*#__PURE__*/React__default.createElement(LabelComponent, {
95
+ })), /*#__PURE__*/React.createElement(LabelComponent, {
96
96
  id: labelId,
97
97
  htmlFor: ariaLabelledby ? undefined : id,
98
98
  className: `${prefix}--toggle__label`
99
- }, labelText && /*#__PURE__*/React__default.createElement(Text, {
99
+ }, labelText && /*#__PURE__*/React.createElement(Text, {
100
100
  className: labelTextClasses
101
- }, labelText), /*#__PURE__*/React__default.createElement("div", {
101
+ }, labelText), /*#__PURE__*/React.createElement("div", {
102
102
  className: appearanceClasses
103
- }, /*#__PURE__*/React__default.createElement("div", {
103
+ }, /*#__PURE__*/React.createElement("div", {
104
104
  className: switchClasses
105
- }, isSm && /*#__PURE__*/React__default.createElement("svg", {
105
+ }, isSm && /*#__PURE__*/React.createElement("svg", {
106
106
  "aria-hidden": "true",
107
107
  focusable: "false",
108
108
  className: `${prefix}--toggle__check`,
109
109
  width: "6px",
110
110
  height: "5px",
111
111
  viewBox: "0 0 6 5"
112
- }, _path || (_path = /*#__PURE__*/React__default.createElement("path", {
112
+ }, _path || (_path = /*#__PURE__*/React.createElement("path", {
113
113
  d: "M2.2 2.7L5 0 6 1 2.2 5 0 2.7 1 1.5z"
114
- })))), renderSideLabel && /*#__PURE__*/React__default.createElement(Text, {
114
+ })))), renderSideLabel && /*#__PURE__*/React.createElement(Text, {
115
115
  className: `${prefix}--toggle__text`,
116
116
  "aria-hidden": "true"
117
117
  }, sideLabel))))
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import PropTypes from 'prop-types';
10
- import React__default, { useContext } from 'react';
10
+ import React, { useContext } from 'react';
11
11
  import cx from 'classnames';
12
12
  import { PrefixContext } from '../../internal/usePrefix.js';
13
13
 
@@ -20,25 +20,25 @@ const ToggleSmallSkeleton = _ref => {
20
20
  ...rest
21
21
  } = _ref;
22
22
  const prefix = useContext(PrefixContext);
23
- return /*#__PURE__*/React__default.createElement("div", _extends({
23
+ return /*#__PURE__*/React.createElement("div", _extends({
24
24
  className: cx(`${prefix}--form-item`, className)
25
- }, rest), /*#__PURE__*/React__default.createElement("input", {
25
+ }, rest), /*#__PURE__*/React.createElement("input", {
26
26
  type: "checkbox",
27
27
  id: id,
28
28
  className: `${prefix}--toggle ${prefix}--toggle--small ${prefix}--skeleton`
29
- }), /*#__PURE__*/React__default.createElement("label", {
29
+ }), /*#__PURE__*/React.createElement("label", {
30
30
  className: `${prefix}--toggle__label ${prefix}--skeleton`,
31
31
  htmlFor: id
32
- }, labelText && /*#__PURE__*/React__default.createElement("span", {
32
+ }, labelText && /*#__PURE__*/React.createElement("span", {
33
33
  className: `${prefix}--toggle__label-text`
34
- }, labelText), /*#__PURE__*/React__default.createElement("span", {
34
+ }, labelText), /*#__PURE__*/React.createElement("span", {
35
35
  className: `${prefix}--toggle__appearance`
36
- }, /*#__PURE__*/React__default.createElement("svg", {
36
+ }, /*#__PURE__*/React.createElement("svg", {
37
37
  className: `${prefix}--toggle__check`,
38
38
  width: "6px",
39
39
  height: "5px",
40
40
  viewBox: "0 0 6 5"
41
- }, _path || (_path = /*#__PURE__*/React__default.createElement("path", {
41
+ }, _path || (_path = /*#__PURE__*/React.createElement("path", {
42
42
  d: "M2.2403 2.7299L4.9245 0 6 1.1117 2.2384 5 0 2.6863 1.0612 1.511z"
43
43
  }))))));
44
44
  };
@@ -8,7 +8,7 @@
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__default, { useRef, useState, useContext } from 'react';
11
+ import React, { useRef, useState, useContext } from 'react';
12
12
  import { Popover, PopoverContent } from '../Popover/index.js';
13
13
  import { Escape } from '../../internal/keyboard/keys.js';
14
14
  import { match } from '../../internal/keyboard/match.js';
@@ -29,7 +29,7 @@ function ToggletipLabel(_ref) {
29
29
  const prefix = usePrefix();
30
30
  const className = cx(`${prefix}--toggletip-label`, customClassName);
31
31
  const BaseComponentAsAny = BaseComponent;
32
- return /*#__PURE__*/React__default.createElement(BaseComponentAsAny, _extends({
32
+ return /*#__PURE__*/React.createElement(BaseComponentAsAny, _extends({
33
33
  className: className
34
34
  }, rest), children);
35
35
  }
@@ -51,7 +51,7 @@ ToggletipLabel.propTypes = {
51
51
  };
52
52
  // Used to coordinate accessibility props between button and content along with
53
53
  // the actions to open and close the toggletip
54
- const ToggletipContext = /*#__PURE__*/React__default.createContext(undefined);
54
+ const ToggletipContext = /*#__PURE__*/React.createContext(undefined);
55
55
  function useToggletip() {
56
56
  return useContext(ToggletipContext);
57
57
  }
@@ -135,9 +135,9 @@ function Toggletip(_ref2) {
135
135
  actions.close();
136
136
  }
137
137
  });
138
- return /*#__PURE__*/React__default.createElement(ToggletipContext.Provider, {
138
+ return /*#__PURE__*/React.createElement(ToggletipContext.Provider, {
139
139
  value: value
140
- }, /*#__PURE__*/React__default.createElement(Popover, _extends({
140
+ }, /*#__PURE__*/React.createElement(Popover, _extends({
141
141
  align: align,
142
142
  as: as,
143
143
  caret: true,
@@ -209,7 +209,7 @@ Toggletip.propTypes = {
209
209
  * clicks and keyboard interactions.
210
210
  */
211
211
 
212
- const ToggletipButton = /*#__PURE__*/React__default.forwardRef(function ToggletipButton(_ref4, ref) {
212
+ const ToggletipButton = /*#__PURE__*/React.forwardRef(function ToggletipButton(_ref4, ref) {
213
213
  let {
214
214
  children,
215
215
  className: customClassName,
@@ -222,11 +222,11 @@ const ToggletipButton = /*#__PURE__*/React__default.forwardRef(function Toggleti
222
222
  const className = cx(`${prefix}--toggletip-button`, customClassName);
223
223
  const ComponentToggle = BaseComponent ?? 'button';
224
224
  if (ComponentToggle !== 'button') {
225
- return /*#__PURE__*/React__default.createElement(ComponentToggle, _extends({}, toggletip?.onClick, {
225
+ return /*#__PURE__*/React.createElement(ComponentToggle, _extends({}, toggletip?.onClick, {
226
226
  className: className
227
227
  }, rest), children);
228
228
  }
229
- return /*#__PURE__*/React__default.createElement("button", _extends({}, toggletip?.buttonProps, {
229
+ return /*#__PURE__*/React.createElement("button", _extends({}, toggletip?.buttonProps, {
230
230
  "aria-label": label,
231
231
  type: "button",
232
232
  className: className,
@@ -254,19 +254,19 @@ ToggletipButton.displayName = 'ToggletipButton';
254
254
  * `children` passed in as a prop inside of `PopoverContent` so that they will
255
255
  * be rendered inside of the popover for this component.
256
256
  */
257
- const ToggletipContent = /*#__PURE__*/React__default.forwardRef(function ToggletipContent(_ref5, ref) {
257
+ const ToggletipContent = /*#__PURE__*/React.forwardRef(function ToggletipContent(_ref5, ref) {
258
258
  let {
259
259
  children,
260
260
  className: customClassName
261
261
  } = _ref5;
262
262
  const toggletip = useToggletip();
263
263
  const prefix = usePrefix();
264
- return /*#__PURE__*/React__default.createElement(PopoverContent, _extends({
264
+ return /*#__PURE__*/React.createElement(PopoverContent, _extends({
265
265
  className: customClassName
266
266
  }, toggletip?.contentProps, {
267
267
  ref: ref,
268
268
  "aria-live": "polite"
269
- }), /*#__PURE__*/React__default.createElement("div", {
269
+ }), /*#__PURE__*/React.createElement("div", {
270
270
  className: `${prefix}--toggletip-content`
271
271
  }, children));
272
272
  });
@@ -293,7 +293,7 @@ function ToggletipActions(_ref6) {
293
293
  } = _ref6;
294
294
  const prefix = usePrefix();
295
295
  const className = cx(`${prefix}--toggletip-actions`, customClassName);
296
- return /*#__PURE__*/React__default.createElement("div", {
296
+ return /*#__PURE__*/React.createElement("div", {
297
297
  className: className
298
298
  }, children);
299
299
  }
@@ -8,7 +8,7 @@
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__default, { useState } from 'react';
11
+ import React, { useState } from 'react';
12
12
  import { Popover, PopoverContent } from '../Popover/index.js';
13
13
  import { Escape } from '../../internal/keyboard/keys.js';
14
14
  import { match } from '../../internal/keyboard/match.js';
@@ -39,7 +39,7 @@ const DefinitionTooltip = _ref => {
39
39
  setOpen(false);
40
40
  }
41
41
  }
42
- return /*#__PURE__*/React__default.createElement(Popover, {
42
+ return /*#__PURE__*/React.createElement(Popover, {
43
43
  align: align,
44
44
  className: className,
45
45
  autoAlign: autoAlign,
@@ -55,7 +55,7 @@ const DefinitionTooltip = _ref => {
55
55
  setOpen(true);
56
56
  },
57
57
  open: isOpen
58
- }, /*#__PURE__*/React__default.createElement("button", _extends({}, rest, {
58
+ }, /*#__PURE__*/React.createElement("button", _extends({}, rest, {
59
59
  className: cx(`${prefix}--definition-term`, triggerClassName),
60
60
  "aria-controls": tooltipId,
61
61
  "aria-expanded": isOpen,
@@ -69,7 +69,7 @@ const DefinitionTooltip = _ref => {
69
69
  },
70
70
  onKeyDown: onKeyDown,
71
71
  type: "button"
72
- }), children), /*#__PURE__*/React__default.createElement(PopoverContent, {
72
+ }), children), /*#__PURE__*/React.createElement(PopoverContent, {
73
73
  className: `${prefix}--definition-tooltip`,
74
74
  id: tooltipId
75
75
  }, tooltipText ?? definition));
@@ -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
  *
@@ -8,7 +8,7 @@
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__default, { useRef, useState, useCallback, useEffect } from 'react';
11
+ import React, { useRef, useState, useCallback, useEffect } from 'react';
12
12
  import { Popover, PopoverContent } from '../Popover/index.js';
13
13
  import { Escape, Enter, Space } from '../../internal/keyboard/keys.js';
14
14
  import { match } from '../../internal/keyboard/match.js';
@@ -22,7 +22,7 @@ import useIsomorphicEffect from '../../internal/useIsomorphicEffect.js';
22
22
  * Event types that trigger a "drag" to stop.
23
23
  */
24
24
  const DRAG_STOP_EVENT_TYPES = new Set(['mouseup', 'touchend', 'touchcancel']);
25
- const Tooltip = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
25
+ const Tooltip = /*#__PURE__*/React.forwardRef((_ref, ref) => {
26
26
  let {
27
27
  as,
28
28
  align = 'top',
@@ -45,7 +45,22 @@ const Tooltip = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
45
45
  const [isPointerIntersecting, setIsPointerIntersecting] = useState(false);
46
46
  const id = useId('tooltip');
47
47
  const prefix = usePrefix();
48
- const child = React__default.Children.only(children);
48
+ const child = React.Children.only(children);
49
+ const {
50
+ 'aria-label': ariaLabel,
51
+ 'aria-labelledby': ariaLabelledBy,
52
+ 'aria-describedby': ariaDescribedBy
53
+ } = child?.props ?? {};
54
+ const hasLabel = !!label;
55
+ const hasAriaLabel = typeof ariaLabel === 'string' ? ariaLabel.trim() !== '' : false;
56
+
57
+ // An `aria-label` takes precedence over `aria-describedby`, but when it's
58
+ // needed and the user doesn't specify one, the fallback `id` is used.
59
+ const labelledBy = hasAriaLabel ? null : hasLabel ? ariaLabelledBy ?? id : undefined;
60
+
61
+ // If `aria-label` is present, use any provided `aria-describedby`.
62
+ // If not, fallback to child's `aria-describedby` or the tooltip `id` if needed.
63
+ const describedBy = hasAriaLabel ? ariaDescribedBy : ariaDescribedBy ?? (!hasLabel && !ariaLabelledBy ? id : undefined);
49
64
  const triggerProps = {
50
65
  onFocus: () => !focusByMouse && setOpen(true),
51
66
  onBlur: () => {
@@ -58,7 +73,9 @@ const Tooltip = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
58
73
  onMouseLeave,
59
74
  onMouseDown,
60
75
  onMouseMove: onMouseMove,
61
- onTouchStart: onDragStart
76
+ onTouchStart: onDragStart,
77
+ 'aria-labelledby': labelledBy,
78
+ 'aria-describedby': describedBy
62
79
  };
63
80
  function getChildEventHandlers(childProps) {
64
81
  const eventHandlerFunctions = Object.keys(triggerProps).filter(prop => prop.startsWith('on'));
@@ -73,11 +90,6 @@ const Tooltip = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
73
90
  });
74
91
  return eventHandlers;
75
92
  }
76
- if (label) {
77
- triggerProps['aria-labelledby'] = id;
78
- } else {
79
- triggerProps['aria-describedby'] = id;
80
- }
81
93
  const onKeyDown = useCallback(event => {
82
94
  if (open && match(event, Escape)) {
83
95
  event.stopPropagation();
@@ -151,7 +163,7 @@ const Tooltip = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
151
163
  });
152
164
  };
153
165
  }, [isDragging, onDragStop]);
154
- return /*#__PURE__*/React__default.createElement(Popover, _extends({
166
+ return /*#__PURE__*/React.createElement(Popover, _extends({
155
167
  as: as,
156
168
  ref: ref
157
169
  }, rest, {
@@ -162,12 +174,12 @@ const Tooltip = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
162
174
  onKeyDown: onKeyDown,
163
175
  onMouseLeave: onMouseLeave,
164
176
  open: open
165
- }), /*#__PURE__*/React__default.createElement("div", {
177
+ }), /*#__PURE__*/React.createElement("div", {
166
178
  className: `${prefix}--tooltip-trigger__wrapper`
167
- }, child !== undefined ? /*#__PURE__*/React__default.cloneElement(child, {
179
+ }, child !== undefined ? /*#__PURE__*/React.cloneElement(child, {
168
180
  ...triggerProps,
169
181
  ...getChildEventHandlers(child.props)
170
- }) : null), /*#__PURE__*/React__default.createElement(PopoverContent, {
182
+ }) : null), /*#__PURE__*/React.createElement(PopoverContent, {
171
183
  "aria-hidden": open ? 'false' : 'true',
172
184
  className: `${prefix}--tooltip-content`,
173
185
  id: id,
@@ -9,7 +9,7 @@ import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js
9
9
  import { CaretDown } from '@carbon/icons-react';
10
10
  import cx from 'classnames';
11
11
  import PropTypes from 'prop-types';
12
- import React__default, { useRef, useState, useEffect } from 'react';
12
+ import React, { useRef, useState, useEffect } from 'react';
13
13
  import { ArrowLeft, ArrowRight, Enter, Space } from '../../internal/keyboard/keys.js';
14
14
  import { matches, match } from '../../internal/keyboard/match.js';
15
15
  import { useControllableState } from '../../internal/useControllableState.js';
@@ -17,7 +17,7 @@ import { usePrefix } from '../../internal/usePrefix.js';
17
17
  import { uniqueId } from '../../tools/uniqueId.js';
18
18
  import { useFeatureFlag } from '../FeatureFlags/index.js';
19
19
 
20
- const TreeNode = /*#__PURE__*/React__default.forwardRef((_ref, forwardedRef) => {
20
+ const TreeNode = /*#__PURE__*/React.forwardRef((_ref, forwardedRef) => {
21
21
  let {
22
22
  active,
23
23
  children,
@@ -70,19 +70,28 @@ const TreeNode = /*#__PURE__*/React__default.forwardRef((_ref, forwardedRef) =>
70
70
  forwardedRef.current = element;
71
71
  }
72
72
  };
73
- const nodesWithProps = React__default.Children.map(children, node => {
74
- if (/*#__PURE__*/React__default.isValidElement(node)) {
75
- return /*#__PURE__*/React__default.cloneElement(node, {
76
- active,
77
- depth: depth + 1,
78
- disabled: disabled || node.props.disabled,
79
- onTreeSelect,
80
- onNodeFocusEvent,
81
- selected,
82
- tabIndex: !node.props.disabled && -1 || null
73
+ function enhanceTreeNodes(children) {
74
+ return React.Children.map(children, node => {
75
+ if (! /*#__PURE__*/React.isValidElement(node)) return node;
76
+ const isTreeNode = node.type.displayName === 'TreeNode';
77
+ if (isTreeNode) {
78
+ return /*#__PURE__*/React.cloneElement(node, {
79
+ active,
80
+ depth: depth + 1,
81
+ disabled: disabled || node.props.disabled,
82
+ onTreeSelect,
83
+ onNodeFocusEvent,
84
+ selected,
85
+ tabIndex: node.props.disabled ? null : -1
86
+ });
87
+ }
88
+ const newChildren = enhanceTreeNodes(node.props.children);
89
+ return /*#__PURE__*/React.cloneElement(node, {
90
+ children: newChildren
83
91
  });
84
- }
85
- });
92
+ });
93
+ }
94
+ const nodesWithProps = enhanceTreeNodes(children);
86
95
  const isActive = active === id;
87
96
  const isSelected = selected.includes(id);
88
97
  const treeNodeClasses = cx(className, `${prefix}--tree-node`, {
@@ -282,52 +291,52 @@ const TreeNode = /*#__PURE__*/React__default.forwardRef((_ref, forwardedRef) =>
282
291
  };
283
292
  if (!children) {
284
293
  if (href) {
285
- return /*#__PURE__*/React__default.createElement("li", {
294
+ return /*#__PURE__*/React.createElement("li", {
286
295
  role: "none"
287
- }, /*#__PURE__*/React__default.createElement("a", _extends({}, treeNodeProps, {
296
+ }, /*#__PURE__*/React.createElement("a", _extends({}, treeNodeProps, {
288
297
  ref: setRefs,
289
298
  href: !disabled ? href : undefined
290
- }), /*#__PURE__*/React__default.createElement("div", {
299
+ }), /*#__PURE__*/React.createElement("div", {
291
300
  className: `${prefix}--tree-node__label`,
292
301
  ref: currentNodeLabel
293
- }, Icon && /*#__PURE__*/React__default.createElement(Icon, {
302
+ }, Icon && /*#__PURE__*/React.createElement(Icon, {
294
303
  className: `${prefix}--tree-node__icon`
295
304
  }), label)));
296
305
  } else {
297
- return /*#__PURE__*/React__default.createElement("li", _extends({}, treeNodeProps, {
306
+ return /*#__PURE__*/React.createElement("li", _extends({}, treeNodeProps, {
298
307
  ref: setRefs
299
- }), /*#__PURE__*/React__default.createElement("div", {
308
+ }), /*#__PURE__*/React.createElement("div", {
300
309
  className: `${prefix}--tree-node__label`,
301
310
  ref: currentNodeLabel
302
- }, Icon && /*#__PURE__*/React__default.createElement(Icon, {
311
+ }, Icon && /*#__PURE__*/React.createElement(Icon, {
303
312
  className: `${prefix}--tree-node__icon`
304
313
  }), label));
305
314
  }
306
315
  }
307
316
  if (href) {
308
- return /*#__PURE__*/React__default.createElement("li", {
317
+ return /*#__PURE__*/React.createElement("li", {
309
318
  role: "none",
310
319
  className: `${prefix}--tree-node-link-parent`
311
- }, /*#__PURE__*/React__default.createElement("a", _extends({}, treeNodeProps, {
320
+ }, /*#__PURE__*/React.createElement("a", _extends({}, treeNodeProps, {
312
321
  "aria-expanded": !!expanded,
313
322
  ref: setRefs,
314
323
  href: !disabled ? href : undefined
315
- }), /*#__PURE__*/React__default.createElement("div", {
324
+ }), /*#__PURE__*/React.createElement("div", {
316
325
  className: `${prefix}--tree-node__label`,
317
326
  ref: currentNodeLabel
318
- }, /*#__PURE__*/React__default.createElement("span", {
327
+ }, /*#__PURE__*/React.createElement("span", {
319
328
  className: `${prefix}--tree-parent-node__toggle`
320
329
  // @ts-ignore
321
330
  ,
322
331
  disabled: disabled,
323
332
  onClick: handleToggleClick
324
- }, /*#__PURE__*/React__default.createElement(CaretDown, {
333
+ }, /*#__PURE__*/React.createElement(CaretDown, {
325
334
  className: toggleClasses
326
- })), /*#__PURE__*/React__default.createElement("span", {
335
+ })), /*#__PURE__*/React.createElement("span", {
327
336
  className: `${prefix}--tree-node__label__details`
328
- }, Icon && /*#__PURE__*/React__default.createElement(Icon, {
337
+ }, Icon && /*#__PURE__*/React.createElement(Icon, {
329
338
  className: `${prefix}--tree-node__icon`
330
- }), label))), /*#__PURE__*/React__default.createElement("ul", {
339
+ }), label))), /*#__PURE__*/React.createElement("ul", {
331
340
  id: `${id}-subtree`,
332
341
  role: "group",
333
342
  className: cx(`${prefix}--tree-node__children`, {
@@ -335,25 +344,25 @@ const TreeNode = /*#__PURE__*/React__default.forwardRef((_ref, forwardedRef) =>
335
344
  })
336
345
  }, nodesWithProps));
337
346
  } else {
338
- return /*#__PURE__*/React__default.createElement("li", _extends({}, treeNodeProps, {
347
+ return /*#__PURE__*/React.createElement("li", _extends({}, treeNodeProps, {
339
348
  "aria-expanded": !!expanded,
340
349
  ref: setRefs
341
- }), /*#__PURE__*/React__default.createElement("div", {
350
+ }), /*#__PURE__*/React.createElement("div", {
342
351
  className: `${prefix}--tree-node__label`,
343
352
  ref: currentNodeLabel
344
- }, /*#__PURE__*/React__default.createElement("span", {
353
+ }, /*#__PURE__*/React.createElement("span", {
345
354
  className: `${prefix}--tree-parent-node__toggle`
346
355
  // @ts-ignore
347
356
  ,
348
357
  disabled: disabled,
349
358
  onClick: handleToggleClick
350
- }, /*#__PURE__*/React__default.createElement(CaretDown, {
359
+ }, /*#__PURE__*/React.createElement(CaretDown, {
351
360
  className: toggleClasses
352
- })), /*#__PURE__*/React__default.createElement("span", {
361
+ })), /*#__PURE__*/React.createElement("span", {
353
362
  className: `${prefix}--tree-node__label__details`
354
- }, Icon && /*#__PURE__*/React__default.createElement(Icon, {
363
+ }, Icon && /*#__PURE__*/React.createElement(Icon, {
355
364
  className: `${prefix}--tree-node__icon`
356
- }), label)), /*#__PURE__*/React__default.createElement("ul", {
365
+ }), label)), /*#__PURE__*/React.createElement("ul", {
357
366
  id: `${id}-subtree`,
358
367
  role: "group",
359
368
  className: cx(`${prefix}--tree-node__children`, {
@@ -8,7 +8,7 @@
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__default, { useRef, useState, useEffect } from 'react';
11
+ import React, { useRef, useState, useEffect } from 'react';
12
12
  import { ArrowUp, ArrowDown, Home, End } from '../../internal/keyboard/keys.js';
13
13
  import { matches, match } from '../../internal/keyboard/match.js';
14
14
  import { useControllableState } from '../../internal/useControllableState.js';
@@ -111,24 +111,33 @@ const TreeView = _ref => {
111
111
  }
112
112
  }
113
113
  let focusTarget = false;
114
- const nodesWithProps = React__default.Children.map(children, _node => {
115
- const node = _node;
116
- const sharedNodeProps = {
117
- active,
118
- depth: 0,
119
- onNodeFocusEvent: handleFocusEvent,
120
- onTreeSelect: handleTreeSelect,
121
- selected,
122
- tabIndex: !node.props.disabled && -1 || undefined
123
- };
124
- if (!focusTarget && !node.props.disabled) {
125
- sharedNodeProps.tabIndex = 0;
126
- focusTarget = true;
127
- }
128
- if (/*#__PURE__*/React__default.isValidElement(node)) {
129
- return /*#__PURE__*/React__default.cloneElement(node, sharedNodeProps);
130
- }
131
- });
114
+ function enhanceTreeNodes(children) {
115
+ return React.Children.map(children, child => {
116
+ if (! /*#__PURE__*/React.isValidElement(child)) return child;
117
+ const isTreeNode = child.type.displayName === 'TreeNode';
118
+ if (isTreeNode) {
119
+ const node = child;
120
+ const sharedNodeProps = {
121
+ active,
122
+ depth: 0,
123
+ onNodeFocusEvent: handleFocusEvent,
124
+ onTreeSelect: handleTreeSelect,
125
+ selected,
126
+ tabIndex: node.props.disabled ? undefined : -1
127
+ };
128
+ if (!focusTarget && !node.props.disabled) {
129
+ sharedNodeProps.tabIndex = 0;
130
+ focusTarget = true;
131
+ }
132
+ return /*#__PURE__*/React.cloneElement(child, sharedNodeProps);
133
+ }
134
+ const newChildren = enhanceTreeNodes(child.props.children);
135
+ return /*#__PURE__*/React.cloneElement(child, {
136
+ children: newChildren
137
+ });
138
+ });
139
+ }
140
+ const nodesWithProps = enhanceTreeNodes(children);
132
141
  function handleKeyDown(event) {
133
142
  event.stopPropagation();
134
143
  if (matches(event, [ArrowUp, ArrowDown, Home, End])) {
@@ -211,11 +220,11 @@ const TreeView = _ref => {
211
220
  }, []);
212
221
  useActiveAndSelectedOnMount();
213
222
  const labelId = `${treeId}__label`;
214
- const TreeLabel = () => !hideLabel ? /*#__PURE__*/React__default.createElement("label", {
223
+ const TreeLabel = () => !hideLabel ? /*#__PURE__*/React.createElement("label", {
215
224
  id: labelId,
216
225
  className: `${prefix}--label`
217
226
  }, label) : null;
218
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TreeLabel, null), /*#__PURE__*/React__default.createElement("ul", _extends({}, rest, {
227
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TreeLabel, null), /*#__PURE__*/React.createElement("ul", _extends({}, rest, {
219
228
  "aria-label": hideLabel ? label : undefined,
220
229
  "aria-labelledby": !hideLabel ? labelId : undefined,
221
230
  "aria-multiselectable": multiselect || undefined,
@@ -7,7 +7,7 @@
7
7
 
8
8
  import cx from 'classnames';
9
9
  import PropTypes from 'prop-types';
10
- import React__default from 'react';
10
+ import React from 'react';
11
11
  import { usePrefix } from '../../internal/usePrefix.js';
12
12
 
13
13
  const Content = _ref => {
@@ -19,7 +19,7 @@ const Content = _ref => {
19
19
  } = _ref;
20
20
  const prefix = usePrefix();
21
21
  const className = cx(`${prefix}--content`, customClassName);
22
- return /*#__PURE__*/React__default.createElement(tagName, {
22
+ return /*#__PURE__*/React.createElement(tagName, {
23
23
  ...rest,
24
24
  className
25
25
  }, children);
@@ -8,7 +8,7 @@
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__default from 'react';
11
+ import React from 'react';
12
12
  import { AriaLabelPropType } from '../../prop-types/AriaPropTypes.js';
13
13
  import { usePrefix } from '../../internal/usePrefix.js';
14
14
 
@@ -20,7 +20,7 @@ const Header = _ref => {
20
20
  } = _ref;
21
21
  const prefix = usePrefix();
22
22
  const className = cx(`${prefix}--header`, customClassName);
23
- return /*#__PURE__*/React__default.createElement("header", _extends({}, rest, {
23
+ return /*#__PURE__*/React.createElement("header", _extends({}, rest, {
24
24
  className: className
25
25
  }), children);
26
26
  };
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import PropTypes from 'prop-types';
10
- import React__default, { useState, useCallback } from 'react';
10
+ import React, { useState, useCallback } from 'react';
11
11
  import { Escape } from '../../internal/keyboard/keys.js';
12
12
  import { match } from '../../internal/keyboard/match.js';
13
13
  import { useWindowEvent } from '../../internal/useEvent.js';
@@ -28,7 +28,7 @@ function HeaderContainer(_ref) {
28
28
  const handleHeaderMenuButtonClick = useCallback(() => {
29
29
  setIsSideNavExpandedState(prevIsSideNavExpanded => !prevIsSideNavExpanded);
30
30
  }, [setIsSideNavExpandedState]);
31
- return /*#__PURE__*/React__default.createElement(Children, _extends({}, rest, {
31
+ return /*#__PURE__*/React.createElement(Children, _extends({}, rest, {
32
32
  isSideNavExpanded: isSideNavExpandedState,
33
33
  onClickSideNavExpand: handleHeaderMenuButtonClick
34
34
  }));
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import cx from 'classnames';
10
- import React__default from 'react';
10
+ import React from 'react';
11
11
  import PropTypes from 'prop-types';
12
12
  import { AriaLabelPropType } from '../../prop-types/AriaPropTypes.js';
13
13
  import Button from '../Button/Button.js';
@@ -22,7 +22,7 @@ import { usePrefix } from '../../internal/usePrefix.js';
22
22
  *
23
23
  * Note: children passed to this component should be an Icon.
24
24
  */
25
- const HeaderGlobalAction = /*#__PURE__*/React__default.forwardRef(function HeaderGlobalAction(_ref, ref) {
25
+ const HeaderGlobalAction = /*#__PURE__*/React.forwardRef(function HeaderGlobalAction(_ref, ref) {
26
26
  let {
27
27
  'aria-label': ariaLabel,
28
28
  'aria-labelledby': ariaLabelledBy,
@@ -45,7 +45,7 @@ const HeaderGlobalAction = /*#__PURE__*/React__default.forwardRef(function Heade
45
45
  'aria-label': ariaLabel,
46
46
  'aria-labelledby': ariaLabelledBy
47
47
  };
48
- return /*#__PURE__*/React__default.createElement(Button, _extends({}, rest, accessibilityLabel, {
48
+ return /*#__PURE__*/React.createElement(Button, _extends({}, rest, accessibilityLabel, {
49
49
  className: className,
50
50
  onClick: onClick,
51
51
  type: "button",