@carbon/react 1.27.0-rc.0 → 1.28.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (591) hide show
  1. package/es/_virtual/_rollupPluginBabelHelpers.js +1 -313
  2. package/es/components/Accordion/Accordion.Skeleton.js +28 -30
  3. package/es/components/Accordion/Accordion.js +18 -21
  4. package/es/components/Accordion/AccordionItem.js +37 -49
  5. package/es/components/AspectRatio/AspectRatio.js +10 -12
  6. package/es/components/Breadcrumb/Breadcrumb.Skeleton.js +10 -11
  7. package/es/components/Breadcrumb/Breadcrumb.js +14 -13
  8. package/es/components/Breadcrumb/BreadcrumbItem.js +24 -22
  9. package/es/components/Button/Button.Skeleton.js +25 -23
  10. package/es/components/Button/Button.js +77 -72
  11. package/es/components/ButtonSet/ButtonSet.js +12 -10
  12. package/es/components/Checkbox/Checkbox.Skeleton.js +10 -11
  13. package/es/components/Checkbox/Checkbox.js +55 -52
  14. package/es/components/CheckboxGroup/CheckboxGroup.js +33 -31
  15. package/es/components/ClassPrefix/index.js +4 -2
  16. package/es/components/CodeSnippet/CodeSnippet.Skeleton.js +15 -14
  17. package/es/components/CodeSnippet/CodeSnippet.js +199 -102
  18. package/es/components/ComboBox/ComboBox.js +349 -178
  19. package/es/components/ComboBox/tools/filter.js +6 -4
  20. package/es/components/ComboButton/index.js +38 -43
  21. package/es/components/ComposedModal/ComposedModal.js +187 -85
  22. package/es/components/ComposedModal/ModalFooter.js +54 -49
  23. package/es/components/ComposedModal/ModalHeader.js +39 -26
  24. package/es/components/ContainedList/ContainedList.js +18 -17
  25. package/es/components/ContainedList/ContainedListItem/ContainedListItem.js +20 -18
  26. package/es/components/ContentSwitcher/ContentSwitcher.js +83 -98
  27. package/es/components/ContentSwitcher/index.js +1 -1
  28. package/es/components/ContextMenu/useContextMenu.js +12 -21
  29. package/es/components/Copy/Copy.js +24 -29
  30. package/es/components/CopyButton/CopyButton.js +10 -10
  31. package/es/components/DangerButton/DangerButton.js +3 -5
  32. package/es/components/DataTable/DataTable.js +334 -361
  33. package/es/components/DataTable/Table.js +29 -26
  34. package/es/components/DataTable/TableActionList.js +2 -4
  35. package/es/components/DataTable/TableBatchAction.js +2 -4
  36. package/es/components/DataTable/TableBatchActions.js +29 -30
  37. package/es/components/DataTable/TableBody.js +7 -8
  38. package/es/components/DataTable/TableCell.js +1 -1
  39. package/es/components/DataTable/TableContainer.js +23 -23
  40. package/es/components/DataTable/TableContext.js +1 -1
  41. package/es/components/DataTable/TableExpandHeader.js +19 -21
  42. package/es/components/DataTable/TableExpandRow.js +23 -23
  43. package/es/components/DataTable/TableExpandedRow.js +18 -23
  44. package/es/components/DataTable/TableHead.js +1 -1
  45. package/es/components/DataTable/TableHeader.js +45 -41
  46. package/es/components/DataTable/TableRow.js +7 -8
  47. package/es/components/DataTable/TableSelectAll.js +13 -11
  48. package/es/components/DataTable/TableSelectRow.js +29 -21
  49. package/es/components/DataTable/TableToolbar.js +19 -14
  50. package/es/components/DataTable/TableToolbarAction.js +6 -6
  51. package/es/components/DataTable/TableToolbarContent.js +2 -4
  52. package/es/components/DataTable/TableToolbarMenu.js +11 -12
  53. package/es/components/DataTable/TableToolbarSearch.js +52 -71
  54. package/es/components/DataTable/state/getDerivedStateFromProps.js +15 -15
  55. package/es/components/DataTable/state/sortStates.js +1 -1
  56. package/es/components/DataTable/state/sorting.js +28 -20
  57. package/es/components/DataTable/tools/cells.js +1 -3
  58. package/es/components/DataTable/tools/denormalize.js +4 -17
  59. package/es/components/DataTable/tools/filter.js +18 -16
  60. package/es/components/DataTable/tools/instanceId.js +2 -2
  61. package/es/components/DataTable/tools/normalize.js +28 -25
  62. package/es/components/DataTable/tools/sorting.js +28 -25
  63. package/es/components/DataTableSkeleton/DataTableSkeleton.js +36 -38
  64. package/es/components/DatePicker/DatePicker.Skeleton.js +17 -18
  65. package/es/components/DatePicker/DatePicker.js +206 -195
  66. package/es/components/DatePicker/plugins/appendToPlugin.js +45 -43
  67. package/es/components/DatePicker/plugins/fixEventsPlugin.js +117 -107
  68. package/es/components/DatePicker/plugins/rangePlugin.js +19 -11
  69. package/es/components/DatePickerInput/DatePickerInput.js +83 -74
  70. package/es/components/Dropdown/Dropdown.Skeleton.js +13 -12
  71. package/es/components/Dropdown/Dropdown.js +266 -109
  72. package/es/components/ErrorBoundary/ErrorBoundary.js +27 -48
  73. package/es/components/ErrorBoundary/ErrorBoundaryContext.js +3 -2
  74. package/es/components/ExpandableSearch/ExpandableSearch.d.ts +13 -0
  75. package/es/components/ExpandableSearch/ExpandableSearch.js +18 -25
  76. package/es/components/FeatureFlags/index.js +25 -43
  77. package/es/components/FileUploader/FileUploader.Skeleton.js +8 -9
  78. package/es/components/FileUploader/FileUploader.js +120 -147
  79. package/es/components/FileUploader/FileUploaderButton.js +36 -48
  80. package/es/components/FileUploader/FileUploaderDropContainer.js +49 -53
  81. package/es/components/FileUploader/FileUploaderItem.js +30 -30
  82. package/es/components/FileUploader/Filename.js +13 -14
  83. package/es/components/FluidComboBox/FluidComboBox.Skeleton.js +11 -12
  84. package/es/components/FluidComboBox/FluidComboBox.js +11 -9
  85. package/es/components/FluidDatePicker/FluidDatePicker.Skeleton.js +18 -18
  86. package/es/components/FluidDatePicker/FluidDatePicker.js +19 -16
  87. package/es/components/FluidDatePickerInput/FluidDatePickerInput.js +3 -3
  88. package/es/components/FluidDropdown/FluidDropdown.Skeleton.js +11 -12
  89. package/es/components/FluidDropdown/FluidDropdown.js +11 -9
  90. package/es/components/FluidForm/FluidForm.js +9 -10
  91. package/es/components/FluidForm/FormContext.js +1 -1
  92. package/es/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +11 -12
  93. package/es/components/FluidMultiSelect/FluidMultiSelect.js +12 -10
  94. package/es/components/FluidSelect/FluidSelect.Skeleton.js +11 -12
  95. package/es/components/FluidSelect/FluidSelect.js +9 -9
  96. package/es/components/FluidTextArea/FluidTextArea.Skeleton.js +9 -10
  97. package/es/components/FluidTextArea/FluidTextArea.js +7 -8
  98. package/es/components/FluidTextInput/FluidTextInput.Skeleton.js +9 -10
  99. package/es/components/FluidTextInput/FluidTextInput.js +10 -9
  100. package/es/components/FluidTimePicker/FluidTimePicker.Skeleton.js +11 -10
  101. package/es/components/FluidTimePicker/FluidTimePicker.js +30 -26
  102. package/es/components/FluidTimePickerSelect/FluidTimePickerSelect.js +7 -7
  103. package/es/components/Form/Form.js +9 -10
  104. package/es/components/FormGroup/FormGroup.js +16 -17
  105. package/es/components/FormItem/FormItem.js +8 -9
  106. package/es/components/FormLabel/FormLabel.js +11 -10
  107. package/es/components/Grid/CSSGrid.js +38 -39
  108. package/es/components/Grid/Column.js +86 -79
  109. package/es/components/Grid/ColumnHang.js +12 -14
  110. package/es/components/Grid/FlexGrid.js +19 -21
  111. package/es/components/Grid/Grid.js +2 -2
  112. package/es/components/Grid/GridContext.js +12 -11
  113. package/es/components/Grid/Row.js +16 -18
  114. package/es/components/Heading/index.js +11 -13
  115. package/es/components/Icon/Icon.Skeleton.js +10 -12
  116. package/es/components/IconButton/index.js +19 -22
  117. package/es/components/IdPrefix/index.js +4 -2
  118. package/es/components/InlineCheckbox/InlineCheckbox.js +89 -36
  119. package/es/components/InlineLoading/InlineLoading.js +23 -25
  120. package/es/components/Layer/LayerContext.js +1 -1
  121. package/es/components/Layer/index.js +17 -18
  122. package/es/components/Layout/LayoutDirection.js +8 -10
  123. package/es/components/Layout/LayoutDirectionContext.js +1 -1
  124. package/es/components/Link/Link.js +25 -25
  125. package/es/components/ListBox/ListBox.js +38 -31
  126. package/es/components/ListBox/ListBoxField.js +9 -10
  127. package/es/components/ListBox/ListBoxMenu.js +9 -10
  128. package/es/components/ListBox/ListBoxMenuIcon.js +16 -14
  129. package/es/components/ListBox/ListBoxMenuItem.js +23 -26
  130. package/es/components/ListBox/ListBoxPropTypes.js +4 -4
  131. package/es/components/ListBox/ListBoxSelection.js +30 -25
  132. package/es/components/ListBox/index.js +1 -1
  133. package/es/components/ListBox/next/ListBoxSelection.js +27 -24
  134. package/es/components/ListBox/next/ListBoxTrigger.js +20 -19
  135. package/es/components/ListItem/ListItem.js +9 -10
  136. package/es/components/Loading/Loading.js +24 -24
  137. package/es/components/Menu/Menu.js +67 -80
  138. package/es/components/Menu/MenuContext.js +9 -12
  139. package/es/components/Menu/MenuItem.js +104 -128
  140. package/es/components/MenuButton/index.js +37 -41
  141. package/es/components/Modal/Modal.js +281 -120
  142. package/es/components/ModalWrapper/ModalWrapper.js +72 -96
  143. package/es/components/MultiSelect/FilterableMultiSelect.js +299 -163
  144. package/es/components/MultiSelect/MultiSelect.js +162 -174
  145. package/es/components/MultiSelect/MultiSelectPropTypes.js +1 -1
  146. package/es/components/MultiSelect/tools/itemToString.js +3 -4
  147. package/es/components/MultiSelect/tools/sorting.js +15 -13
  148. package/es/components/Notification/Notification.js +436 -164
  149. package/es/components/NumberInput/NumberInput.Skeleton.js +10 -11
  150. package/es/components/NumberInput/NumberInput.js +140 -139
  151. package/es/components/OrderedList/OrderedList.js +17 -15
  152. package/es/components/OverflowMenu/OverflowMenu.js +359 -227
  153. package/es/components/OverflowMenu/index.js +1 -1
  154. package/es/components/OverflowMenuItem/OverflowMenuItem.js +32 -37
  155. package/es/components/OverflowMenuV2/index.js +26 -28
  156. package/es/components/Pagination/Pagination.Skeleton.js +9 -10
  157. package/es/components/Pagination/Pagination.js +98 -140
  158. package/es/components/Pagination/experimental/PageSelector.js +16 -16
  159. package/es/components/Pagination/experimental/Pagination.js +73 -94
  160. package/es/components/PaginationNav/PaginationNav.js +98 -117
  161. package/es/components/Popover/index.js +74 -80
  162. package/es/components/PrimaryButton/PrimaryButton.js +3 -5
  163. package/es/components/ProgressBar/ProgressBar.js +39 -37
  164. package/es/components/ProgressIndicator/ProgressIndicator.Skeleton.js +15 -14
  165. package/es/components/ProgressIndicator/ProgressIndicator.js +71 -71
  166. package/es/components/RadioButton/RadioButton.Skeleton.js +9 -10
  167. package/es/components/RadioButton/RadioButton.js +27 -27
  168. package/es/components/RadioButtonGroup/RadioButtonGroup.js +55 -65
  169. package/es/components/RadioTile/RadioTile.js +28 -26
  170. package/es/components/Search/Search.Skeleton.js +16 -16
  171. package/es/components/Search/Search.d.ts +83 -0
  172. package/es/components/Search/Search.js +65 -72
  173. package/es/components/Search/index.d.ts +11 -0
  174. package/es/components/SecondaryButton/SecondaryButton.js +3 -5
  175. package/es/components/Select/Select.Skeleton.js +12 -13
  176. package/es/components/Select/Select.js +79 -73
  177. package/es/components/SelectItem/SelectItem.js +17 -13
  178. package/es/components/SelectItemGroup/SelectItemGroup.js +11 -12
  179. package/es/components/SkeletonIcon/SkeletonIcon.js +11 -11
  180. package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.js +11 -11
  181. package/es/components/SkeletonText/SkeletonText.js +29 -29
  182. package/es/components/Slider/Slider.Skeleton.js +17 -18
  183. package/es/components/Slider/Slider.js +306 -329
  184. package/es/components/Slider/index.js +1 -1
  185. package/es/components/Stack/Stack.js +19 -20
  186. package/es/components/Stack/index.js +2 -2
  187. package/es/components/StructuredList/StructuredList.Skeleton.js +25 -24
  188. package/es/components/StructuredList/StructuredList.js +134 -106
  189. package/es/components/Switch/IconSwitch.js +48 -54
  190. package/es/components/Switch/Switch.js +33 -31
  191. package/es/components/Tab/Tab.js +77 -83
  192. package/es/components/Tab/index.js +1 -1
  193. package/es/components/TabContent/TabContent.js +16 -18
  194. package/es/components/Tabs/Tabs.Skeleton.js +14 -13
  195. package/es/components/Tabs/Tabs.js +211 -210
  196. package/es/components/Tabs/usePressable.js +27 -36
  197. package/es/components/Tag/Tag.Skeleton.js +10 -9
  198. package/es/components/Tag/Tag.js +34 -31
  199. package/es/components/Text/Text.js +20 -20
  200. package/es/components/Text/TextDirection.js +8 -7
  201. package/es/components/Text/TextDirectionContext.js +1 -1
  202. package/es/components/Text/index.js +1 -1
  203. package/es/components/TextArea/TextArea.Skeleton.js +11 -12
  204. package/es/components/TextArea/TextArea.js +89 -83
  205. package/es/components/TextInput/ControlledPasswordInput.js +79 -73
  206. package/es/components/TextInput/PasswordInput.js +101 -91
  207. package/es/components/TextInput/TextInput.Skeleton.js +11 -12
  208. package/es/components/TextInput/TextInput.js +104 -92
  209. package/es/components/TextInput/util.js +26 -28
  210. package/es/components/Theme/index.js +25 -20
  211. package/es/components/Tile/Tile.js +135 -176
  212. package/es/components/TileGroup/TileGroup.js +55 -70
  213. package/es/components/TileGroup/index.js +1 -1
  214. package/es/components/TimePicker/TimePicker.js +60 -67
  215. package/es/components/TimePickerSelect/TimePickerSelect.js +20 -18
  216. package/es/components/TimePickerSelect/index.js +1 -1
  217. package/es/components/Toggle/Toggle.Skeleton.js +63 -52
  218. package/es/components/Toggle/Toggle.js +44 -48
  219. package/es/components/ToggleSmall/ToggleSmall.Skeleton.js +56 -50
  220. package/es/components/Toggletip/index.js +52 -48
  221. package/es/components/Tooltip/DefinitionTooltip.js +24 -31
  222. package/es/components/Tooltip/Tooltip.js +35 -50
  223. package/es/components/TreeView/TreeNode.js +94 -74
  224. package/es/components/TreeView/TreeView.js +72 -83
  225. package/es/components/UIShell/Content.js +12 -14
  226. package/es/components/UIShell/Header.js +16 -12
  227. package/es/components/UIShell/HeaderContainer.js +8 -14
  228. package/es/components/UIShell/HeaderGlobalAction.js +26 -19
  229. package/es/components/UIShell/HeaderGlobalBar.js +1 -3
  230. package/es/components/UIShell/HeaderMenu.js +114 -129
  231. package/es/components/UIShell/HeaderMenuButton.js +31 -22
  232. package/es/components/UIShell/HeaderMenuItem.js +28 -20
  233. package/es/components/UIShell/HeaderName.js +19 -14
  234. package/es/components/UIShell/HeaderNavigation.js +19 -15
  235. package/es/components/UIShell/HeaderPanel.js +23 -17
  236. package/es/components/UIShell/HeaderSideNavItems.js +11 -9
  237. package/es/components/UIShell/Link.js +11 -11
  238. package/es/components/UIShell/SideNav.js +66 -62
  239. package/es/components/UIShell/SideNavDetails.js +11 -12
  240. package/es/components/UIShell/SideNavDivider.js +5 -3
  241. package/es/components/UIShell/SideNavFooter.js +12 -12
  242. package/es/components/UIShell/SideNavHeader.js +8 -6
  243. package/es/components/UIShell/SideNavIcon.js +11 -8
  244. package/es/components/UIShell/SideNavItem.js +11 -9
  245. package/es/components/UIShell/SideNavItems.js +13 -11
  246. package/es/components/UIShell/SideNavLink.js +19 -17
  247. package/es/components/UIShell/SideNavLinkText.js +8 -9
  248. package/es/components/UIShell/SideNavMenu.js +28 -35
  249. package/es/components/UIShell/SideNavMenuItem.js +14 -14
  250. package/es/components/UIShell/SideNavSwitcher.js +19 -19
  251. package/es/components/UIShell/SkipToContent.js +10 -11
  252. package/es/components/UIShell/Switcher.js +20 -11
  253. package/es/components/UIShell/SwitcherDivider.js +10 -9
  254. package/es/components/UIShell/SwitcherItem.js +26 -19
  255. package/es/components/UIShell/_utils.js +1 -1
  256. package/es/components/UnorderedList/UnorderedList.js +14 -14
  257. package/es/index.js +5 -5
  258. package/es/internal/ClickListener.js +49 -65
  259. package/es/internal/FloatingMenu.js +193 -200
  260. package/es/internal/OptimizedResize.js +9 -8
  261. package/es/internal/Selection.js +92 -111
  262. package/es/internal/createClassWrapper.js +2 -2
  263. package/es/internal/deprecateFieldOnObject.js +5 -3
  264. package/es/internal/environment.js +1 -1
  265. package/es/internal/focus/index.js +1 -1
  266. package/es/internal/keyboard/keys.js +11 -11
  267. package/es/internal/keyboard/match.js +7 -6
  268. package/es/internal/keyboard/navigation.js +15 -5
  269. package/es/internal/useAnnouncer.js +2 -2
  270. package/es/internal/useAttachedMenu.js +12 -20
  271. package/es/internal/useControllableState.js +11 -16
  272. package/es/internal/useDelayedState.js +9 -18
  273. package/es/internal/useEffectOnce.js +4 -4
  274. package/es/internal/useEvent.js +4 -4
  275. package/es/internal/useId.js +15 -19
  276. package/es/internal/useIdPrefix.js +1 -1
  277. package/es/internal/useIsomorphicEffect.js +1 -1
  278. package/es/internal/useMergedRefs.js +3 -3
  279. package/es/internal/useNoInteractiveChildren.js +8 -19
  280. package/es/internal/useNormalizedInputProps.js +16 -14
  281. package/es/internal/usePrefix.js +1 -1
  282. package/es/internal/useSavedCallback.js +3 -3
  283. package/es/internal/warning.js +4 -4
  284. package/es/internal/wrapFocus.js +16 -21
  285. package/es/prop-types/AriaPropTypes.js +1 -1
  286. package/es/prop-types/deprecate.js +6 -5
  287. package/es/prop-types/isRequiredOneOf.js +12 -25
  288. package/es/prop-types/requiredIfGivenPropIsTruthy.js +2 -2
  289. package/es/prop-types/types.js +1 -1
  290. package/es/tools/array.js +1 -1
  291. package/es/tools/events.js +21 -14
  292. package/es/tools/mergeRefs.js +3 -3
  293. package/es/tools/setupGetInstanceId.js +1 -1
  294. package/es/tools/uniqueId.js +3 -3
  295. package/es/tools/wrapComponent.js +14 -13
  296. package/lib/_virtual/_rollupPluginBabelHelpers.js +0 -336
  297. package/lib/components/Accordion/Accordion.Skeleton.js +27 -29
  298. package/lib/components/Accordion/Accordion.js +17 -20
  299. package/lib/components/Accordion/AccordionItem.js +36 -48
  300. package/lib/components/AspectRatio/AspectRatio.js +9 -11
  301. package/lib/components/Breadcrumb/Breadcrumb.Skeleton.js +9 -10
  302. package/lib/components/Breadcrumb/Breadcrumb.js +13 -12
  303. package/lib/components/Breadcrumb/BreadcrumbItem.js +23 -21
  304. package/lib/components/Button/Button.Skeleton.js +24 -22
  305. package/lib/components/Button/Button.js +76 -71
  306. package/lib/components/ButtonSet/ButtonSet.js +11 -9
  307. package/lib/components/Checkbox/Checkbox.Skeleton.js +9 -10
  308. package/lib/components/Checkbox/Checkbox.js +54 -51
  309. package/lib/components/CheckboxGroup/CheckboxGroup.js +32 -30
  310. package/lib/components/ClassPrefix/index.js +4 -2
  311. package/lib/components/CodeSnippet/CodeSnippet.Skeleton.js +14 -13
  312. package/lib/components/CodeSnippet/CodeSnippet.js +198 -101
  313. package/lib/components/ComboBox/ComboBox.js +348 -177
  314. package/lib/components/ComboBox/tools/filter.js +6 -4
  315. package/lib/components/ComboButton/index.js +37 -42
  316. package/lib/components/ComposedModal/ComposedModal.js +187 -85
  317. package/lib/components/ComposedModal/ModalFooter.js +53 -48
  318. package/lib/components/ComposedModal/ModalHeader.js +38 -25
  319. package/lib/components/ContainedList/ContainedList.js +18 -17
  320. package/lib/components/ContainedList/ContainedListItem/ContainedListItem.js +20 -18
  321. package/lib/components/ContentSwitcher/ContentSwitcher.js +82 -97
  322. package/lib/components/ContentSwitcher/index.js +1 -1
  323. package/lib/components/ContextMenu/useContextMenu.js +12 -21
  324. package/lib/components/Copy/Copy.js +23 -28
  325. package/lib/components/CopyButton/CopyButton.js +9 -9
  326. package/lib/components/DangerButton/DangerButton.js +3 -5
  327. package/lib/components/DataTable/DataTable.js +332 -359
  328. package/lib/components/DataTable/Table.js +28 -25
  329. package/lib/components/DataTable/TableActionList.js +2 -4
  330. package/lib/components/DataTable/TableBatchAction.js +2 -4
  331. package/lib/components/DataTable/TableBatchActions.js +28 -29
  332. package/lib/components/DataTable/TableBody.js +6 -7
  333. package/lib/components/DataTable/TableCell.js +1 -1
  334. package/lib/components/DataTable/TableContainer.js +22 -22
  335. package/lib/components/DataTable/TableContext.js +1 -1
  336. package/lib/components/DataTable/TableExpandHeader.js +18 -20
  337. package/lib/components/DataTable/TableExpandRow.js +22 -22
  338. package/lib/components/DataTable/TableExpandedRow.js +17 -22
  339. package/lib/components/DataTable/TableHead.js +1 -1
  340. package/lib/components/DataTable/TableHeader.js +43 -39
  341. package/lib/components/DataTable/TableRow.js +7 -8
  342. package/lib/components/DataTable/TableSelectAll.js +13 -11
  343. package/lib/components/DataTable/TableSelectRow.js +28 -20
  344. package/lib/components/DataTable/TableToolbar.js +18 -13
  345. package/lib/components/DataTable/TableToolbarAction.js +5 -5
  346. package/lib/components/DataTable/TableToolbarContent.js +2 -4
  347. package/lib/components/DataTable/TableToolbarMenu.js +10 -11
  348. package/lib/components/DataTable/TableToolbarSearch.js +51 -70
  349. package/lib/components/DataTable/state/getDerivedStateFromProps.js +15 -15
  350. package/lib/components/DataTable/state/sortStates.js +1 -1
  351. package/lib/components/DataTable/state/sorting.js +28 -20
  352. package/lib/components/DataTable/tools/cells.js +1 -3
  353. package/lib/components/DataTable/tools/denormalize.js +4 -17
  354. package/lib/components/DataTable/tools/filter.js +18 -16
  355. package/lib/components/DataTable/tools/instanceId.js +2 -2
  356. package/lib/components/DataTable/tools/normalize.js +28 -25
  357. package/lib/components/DataTable/tools/sorting.js +27 -24
  358. package/lib/components/DataTableSkeleton/DataTableSkeleton.js +35 -37
  359. package/lib/components/DatePicker/DatePicker.Skeleton.js +16 -17
  360. package/lib/components/DatePicker/DatePicker.js +205 -194
  361. package/lib/components/DatePicker/plugins/appendToPlugin.js +45 -43
  362. package/lib/components/DatePicker/plugins/fixEventsPlugin.js +117 -107
  363. package/lib/components/DatePicker/plugins/rangePlugin.js +19 -11
  364. package/lib/components/DatePickerInput/DatePickerInput.js +83 -74
  365. package/lib/components/Dropdown/Dropdown.Skeleton.js +12 -11
  366. package/lib/components/Dropdown/Dropdown.js +265 -108
  367. package/lib/components/ErrorBoundary/ErrorBoundary.js +27 -48
  368. package/lib/components/ErrorBoundary/ErrorBoundaryContext.js +3 -2
  369. package/lib/components/ExpandableSearch/ExpandableSearch.d.ts +13 -0
  370. package/lib/components/ExpandableSearch/ExpandableSearch.js +17 -24
  371. package/lib/components/FeatureFlags/index.js +25 -43
  372. package/lib/components/FileUploader/FileUploader.Skeleton.js +7 -8
  373. package/lib/components/FileUploader/FileUploader.js +119 -146
  374. package/lib/components/FileUploader/FileUploaderButton.js +35 -47
  375. package/lib/components/FileUploader/FileUploaderDropContainer.js +48 -52
  376. package/lib/components/FileUploader/FileUploaderItem.js +29 -29
  377. package/lib/components/FileUploader/Filename.js +12 -13
  378. package/lib/components/FluidComboBox/FluidComboBox.Skeleton.js +10 -11
  379. package/lib/components/FluidComboBox/FluidComboBox.js +10 -8
  380. package/lib/components/FluidDatePicker/FluidDatePicker.Skeleton.js +17 -17
  381. package/lib/components/FluidDatePicker/FluidDatePicker.js +18 -15
  382. package/lib/components/FluidDatePickerInput/FluidDatePickerInput.js +3 -3
  383. package/lib/components/FluidDropdown/FluidDropdown.Skeleton.js +10 -11
  384. package/lib/components/FluidDropdown/FluidDropdown.js +10 -8
  385. package/lib/components/FluidForm/FluidForm.js +8 -9
  386. package/lib/components/FluidForm/FormContext.js +1 -1
  387. package/lib/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +10 -11
  388. package/lib/components/FluidMultiSelect/FluidMultiSelect.js +11 -9
  389. package/lib/components/FluidSelect/FluidSelect.Skeleton.js +10 -11
  390. package/lib/components/FluidSelect/FluidSelect.js +8 -8
  391. package/lib/components/FluidTextArea/FluidTextArea.Skeleton.js +8 -9
  392. package/lib/components/FluidTextArea/FluidTextArea.js +6 -7
  393. package/lib/components/FluidTextInput/FluidTextInput.Skeleton.js +8 -9
  394. package/lib/components/FluidTextInput/FluidTextInput.js +9 -8
  395. package/lib/components/FluidTimePicker/FluidTimePicker.Skeleton.js +10 -9
  396. package/lib/components/FluidTimePicker/FluidTimePicker.js +30 -26
  397. package/lib/components/FluidTimePickerSelect/FluidTimePickerSelect.js +6 -6
  398. package/lib/components/Form/Form.js +8 -9
  399. package/lib/components/FormGroup/FormGroup.js +15 -16
  400. package/lib/components/FormItem/FormItem.js +7 -8
  401. package/lib/components/FormLabel/FormLabel.js +10 -9
  402. package/lib/components/Grid/CSSGrid.js +37 -38
  403. package/lib/components/Grid/Column.js +85 -78
  404. package/lib/components/Grid/ColumnHang.js +11 -13
  405. package/lib/components/Grid/FlexGrid.js +19 -21
  406. package/lib/components/Grid/Grid.js +2 -2
  407. package/lib/components/Grid/GridContext.js +12 -11
  408. package/lib/components/Grid/Row.js +16 -18
  409. package/lib/components/Heading/index.js +11 -13
  410. package/lib/components/Icon/Icon.Skeleton.js +9 -11
  411. package/lib/components/IconButton/index.js +18 -21
  412. package/lib/components/IdPrefix/index.js +4 -2
  413. package/lib/components/InlineCheckbox/InlineCheckbox.js +89 -36
  414. package/lib/components/InlineLoading/InlineLoading.js +22 -24
  415. package/lib/components/Layer/LayerContext.js +1 -1
  416. package/lib/components/Layer/index.js +16 -17
  417. package/lib/components/Layout/LayoutDirection.js +7 -9
  418. package/lib/components/Layout/LayoutDirectionContext.js +1 -1
  419. package/lib/components/Link/Link.js +24 -24
  420. package/lib/components/ListBox/ListBox.js +37 -30
  421. package/lib/components/ListBox/ListBoxField.js +8 -9
  422. package/lib/components/ListBox/ListBoxMenu.js +8 -9
  423. package/lib/components/ListBox/ListBoxMenuIcon.js +16 -14
  424. package/lib/components/ListBox/ListBoxMenuItem.js +22 -25
  425. package/lib/components/ListBox/ListBoxPropTypes.js +4 -4
  426. package/lib/components/ListBox/ListBoxSelection.js +30 -25
  427. package/lib/components/ListBox/index.js +1 -1
  428. package/lib/components/ListBox/next/ListBoxSelection.js +26 -23
  429. package/lib/components/ListBox/next/ListBoxTrigger.js +19 -18
  430. package/lib/components/ListItem/ListItem.js +8 -9
  431. package/lib/components/Loading/Loading.js +23 -23
  432. package/lib/components/Menu/Menu.js +66 -79
  433. package/lib/components/Menu/MenuContext.js +9 -12
  434. package/lib/components/Menu/MenuItem.js +103 -127
  435. package/lib/components/MenuButton/index.js +36 -40
  436. package/lib/components/Modal/Modal.js +280 -119
  437. package/lib/components/ModalWrapper/ModalWrapper.js +71 -95
  438. package/lib/components/MultiSelect/FilterableMultiSelect.js +298 -162
  439. package/lib/components/MultiSelect/MultiSelect.js +163 -175
  440. package/lib/components/MultiSelect/MultiSelectPropTypes.js +1 -1
  441. package/lib/components/MultiSelect/tools/itemToString.js +3 -4
  442. package/lib/components/MultiSelect/tools/sorting.js +15 -13
  443. package/lib/components/Notification/Notification.js +434 -162
  444. package/lib/components/NumberInput/NumberInput.Skeleton.js +9 -10
  445. package/lib/components/NumberInput/NumberInput.js +139 -138
  446. package/lib/components/OrderedList/OrderedList.js +16 -14
  447. package/lib/components/OverflowMenu/OverflowMenu.js +358 -226
  448. package/lib/components/OverflowMenu/index.js +1 -1
  449. package/lib/components/OverflowMenuItem/OverflowMenuItem.js +31 -36
  450. package/lib/components/OverflowMenuV2/index.js +25 -27
  451. package/lib/components/Pagination/Pagination.Skeleton.js +8 -9
  452. package/lib/components/Pagination/Pagination.js +97 -139
  453. package/lib/components/Pagination/experimental/PageSelector.js +17 -17
  454. package/lib/components/Pagination/experimental/Pagination.js +72 -93
  455. package/lib/components/PaginationNav/PaginationNav.js +97 -116
  456. package/lib/components/Popover/index.js +73 -79
  457. package/lib/components/PrimaryButton/PrimaryButton.js +3 -5
  458. package/lib/components/ProgressBar/ProgressBar.js +38 -36
  459. package/lib/components/ProgressIndicator/ProgressIndicator.Skeleton.js +14 -13
  460. package/lib/components/ProgressIndicator/ProgressIndicator.js +70 -70
  461. package/lib/components/RadioButton/RadioButton.Skeleton.js +8 -9
  462. package/lib/components/RadioButton/RadioButton.js +26 -26
  463. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +54 -64
  464. package/lib/components/RadioTile/RadioTile.js +27 -25
  465. package/lib/components/Search/Search.Skeleton.js +15 -15
  466. package/lib/components/Search/Search.d.ts +83 -0
  467. package/lib/components/Search/Search.js +62 -69
  468. package/lib/components/Search/index.d.ts +11 -0
  469. package/lib/components/SecondaryButton/SecondaryButton.js +3 -5
  470. package/lib/components/Select/Select.Skeleton.js +11 -12
  471. package/lib/components/Select/Select.js +78 -72
  472. package/lib/components/SelectItem/SelectItem.js +16 -12
  473. package/lib/components/SelectItemGroup/SelectItemGroup.js +10 -11
  474. package/lib/components/SkeletonIcon/SkeletonIcon.js +10 -10
  475. package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.js +10 -10
  476. package/lib/components/SkeletonText/SkeletonText.js +28 -28
  477. package/lib/components/Slider/Slider.Skeleton.js +16 -17
  478. package/lib/components/Slider/Slider.js +305 -328
  479. package/lib/components/Slider/index.js +1 -1
  480. package/lib/components/Stack/Stack.js +18 -19
  481. package/lib/components/Stack/index.js +2 -2
  482. package/lib/components/StructuredList/StructuredList.Skeleton.js +24 -23
  483. package/lib/components/StructuredList/StructuredList.js +133 -105
  484. package/lib/components/Switch/IconSwitch.js +45 -51
  485. package/lib/components/Switch/Switch.js +33 -31
  486. package/lib/components/Tab/Tab.js +76 -82
  487. package/lib/components/Tab/index.js +1 -1
  488. package/lib/components/TabContent/TabContent.js +15 -17
  489. package/lib/components/Tabs/Tabs.Skeleton.js +13 -12
  490. package/lib/components/Tabs/Tabs.js +210 -209
  491. package/lib/components/Tabs/usePressable.js +27 -36
  492. package/lib/components/Tag/Tag.Skeleton.js +9 -8
  493. package/lib/components/Tag/Tag.js +33 -30
  494. package/lib/components/Text/Text.js +19 -19
  495. package/lib/components/Text/TextDirection.js +8 -7
  496. package/lib/components/Text/TextDirectionContext.js +1 -1
  497. package/lib/components/Text/index.js +1 -1
  498. package/lib/components/TextArea/TextArea.Skeleton.js +10 -11
  499. package/lib/components/TextArea/TextArea.js +88 -82
  500. package/lib/components/TextInput/ControlledPasswordInput.js +78 -72
  501. package/lib/components/TextInput/PasswordInput.js +100 -90
  502. package/lib/components/TextInput/TextInput.Skeleton.js +10 -11
  503. package/lib/components/TextInput/TextInput.js +104 -92
  504. package/lib/components/TextInput/util.js +28 -30
  505. package/lib/components/Theme/index.js +24 -19
  506. package/lib/components/Tile/Tile.js +134 -175
  507. package/lib/components/TileGroup/TileGroup.js +54 -69
  508. package/lib/components/TileGroup/index.js +1 -1
  509. package/lib/components/TimePicker/TimePicker.js +59 -66
  510. package/lib/components/TimePickerSelect/TimePickerSelect.js +19 -17
  511. package/lib/components/TimePickerSelect/index.js +1 -1
  512. package/lib/components/Toggle/Toggle.Skeleton.js +68 -57
  513. package/lib/components/Toggle/Toggle.js +43 -47
  514. package/lib/components/ToggleSmall/ToggleSmall.Skeleton.js +60 -54
  515. package/lib/components/Toggletip/index.js +51 -47
  516. package/lib/components/Tooltip/DefinitionTooltip.js +23 -30
  517. package/lib/components/Tooltip/Tooltip.js +34 -49
  518. package/lib/components/TreeView/TreeNode.js +93 -73
  519. package/lib/components/TreeView/TreeView.js +71 -82
  520. package/lib/components/UIShell/Content.js +12 -14
  521. package/lib/components/UIShell/Header.js +15 -11
  522. package/lib/components/UIShell/HeaderContainer.js +8 -14
  523. package/lib/components/UIShell/HeaderGlobalAction.js +25 -18
  524. package/lib/components/UIShell/HeaderGlobalBar.js +1 -3
  525. package/lib/components/UIShell/HeaderMenu.js +113 -128
  526. package/lib/components/UIShell/HeaderMenuButton.js +30 -21
  527. package/lib/components/UIShell/HeaderMenuItem.js +27 -19
  528. package/lib/components/UIShell/HeaderName.js +18 -13
  529. package/lib/components/UIShell/HeaderNavigation.js +18 -14
  530. package/lib/components/UIShell/HeaderPanel.js +22 -16
  531. package/lib/components/UIShell/HeaderSideNavItems.js +11 -9
  532. package/lib/components/UIShell/Link.js +11 -11
  533. package/lib/components/UIShell/SideNav.js +65 -61
  534. package/lib/components/UIShell/SideNavDetails.js +10 -11
  535. package/lib/components/UIShell/SideNavDivider.js +5 -3
  536. package/lib/components/UIShell/SideNavFooter.js +12 -12
  537. package/lib/components/UIShell/SideNavHeader.js +8 -6
  538. package/lib/components/UIShell/SideNavIcon.js +11 -8
  539. package/lib/components/UIShell/SideNavItem.js +11 -9
  540. package/lib/components/UIShell/SideNavItems.js +13 -11
  541. package/lib/components/UIShell/SideNavLink.js +18 -16
  542. package/lib/components/UIShell/SideNavLinkText.js +7 -8
  543. package/lib/components/UIShell/SideNavMenu.js +28 -35
  544. package/lib/components/UIShell/SideNavMenuItem.js +13 -13
  545. package/lib/components/UIShell/SideNavSwitcher.js +19 -19
  546. package/lib/components/UIShell/SkipToContent.js +9 -10
  547. package/lib/components/UIShell/Switcher.js +19 -10
  548. package/lib/components/UIShell/SwitcherDivider.js +9 -8
  549. package/lib/components/UIShell/SwitcherItem.js +25 -18
  550. package/lib/components/UIShell/_utils.js +1 -1
  551. package/lib/components/UnorderedList/UnorderedList.js +13 -13
  552. package/lib/index.js +10 -10
  553. package/lib/internal/ClickListener.js +49 -65
  554. package/lib/internal/FloatingMenu.js +192 -199
  555. package/lib/internal/OptimizedResize.js +9 -8
  556. package/lib/internal/Selection.js +91 -110
  557. package/lib/internal/createClassWrapper.js +2 -2
  558. package/lib/internal/deprecateFieldOnObject.js +5 -3
  559. package/lib/internal/environment.js +1 -1
  560. package/lib/internal/focus/index.js +1 -1
  561. package/lib/internal/keyboard/keys.js +11 -11
  562. package/lib/internal/keyboard/match.js +7 -6
  563. package/lib/internal/keyboard/navigation.js +15 -5
  564. package/lib/internal/useAnnouncer.js +2 -2
  565. package/lib/internal/useAttachedMenu.js +12 -20
  566. package/lib/internal/useControllableState.js +11 -16
  567. package/lib/internal/useDelayedState.js +9 -18
  568. package/lib/internal/useEffectOnce.js +4 -4
  569. package/lib/internal/useEvent.js +4 -4
  570. package/lib/internal/useId.js +14 -18
  571. package/lib/internal/useIdPrefix.js +1 -1
  572. package/lib/internal/useIsomorphicEffect.js +1 -1
  573. package/lib/internal/useMergedRefs.js +3 -3
  574. package/lib/internal/useNoInteractiveChildren.js +8 -19
  575. package/lib/internal/useNormalizedInputProps.js +16 -14
  576. package/lib/internal/usePrefix.js +1 -1
  577. package/lib/internal/useSavedCallback.js +3 -3
  578. package/lib/internal/warning.js +4 -4
  579. package/lib/internal/wrapFocus.js +16 -21
  580. package/lib/prop-types/AriaPropTypes.js +1 -1
  581. package/lib/prop-types/deprecate.js +6 -5
  582. package/lib/prop-types/isRequiredOneOf.js +15 -28
  583. package/lib/prop-types/requiredIfGivenPropIsTruthy.js +2 -2
  584. package/lib/prop-types/types.js +1 -1
  585. package/lib/tools/array.js +1 -1
  586. package/lib/tools/events.js +21 -14
  587. package/lib/tools/mergeRefs.js +3 -3
  588. package/lib/tools/setupGetInstanceId.js +1 -1
  589. package/lib/tools/uniqueId.js +3 -3
  590. package/lib/tools/wrapComponent.js +14 -13
  591. package/package.json +9 -9
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { slicedToArray as _slicedToArray, objectWithoutProperties as _objectWithoutProperties, defineProperty as _defineProperty, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
8
+ import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import { ChevronLeft, ChevronRight } from '@carbon/icons-react';
10
10
  import cx from 'classnames';
11
11
  import debounce from 'lodash.debounce';
@@ -27,53 +27,41 @@ import { ArrowRight, ArrowLeft, Home, End } from '../../internal/keyboard/keys.j
27
27
 
28
28
  var _ChevronLeft, _ChevronRight;
29
29
 
30
- var _excluded = ["activation", "aria-label", "children", "className", "contained", "iconSize", "leftOverflowButtonProps", "light", "rightOverflowButtonProps", "scrollDebounceWait", "scrollIntoView"],
31
- _excluded2 = ["as", "children", "className", "disabled", "onClick", "onKeyDown", "secondaryLabel", "hasSecondaryLabel"],
32
- _excluded3 = ["children", "className", "defaultOpen", "enterDelayMs", "leaveDelayMs", "label"],
33
- _excluded4 = ["children", "className"];
30
+ const TabsContext = /*#__PURE__*/React__default.createContext(); // Used to keep track of position in a tablist
34
31
 
35
- var TabsContext = /*#__PURE__*/React__default.createContext(); // Used to keep track of position in a tablist
32
+ const TabContext = /*#__PURE__*/React__default.createContext(); // Used to keep track of position in a list of tab panels
36
33
 
37
- var TabContext = /*#__PURE__*/React__default.createContext(); // Used to keep track of position in a list of tab panels
38
-
39
- var TabPanelContext = /*#__PURE__*/React__default.createContext();
34
+ const TabPanelContext = /*#__PURE__*/React__default.createContext();
40
35
 
41
36
  function Tabs(_ref) {
42
- var children = _ref.children,
43
- _ref$defaultSelectedI = _ref.defaultSelectedIndex,
44
- defaultSelectedIndex = _ref$defaultSelectedI === void 0 ? 0 : _ref$defaultSelectedI,
45
- _onChange = _ref.onChange,
46
- controlledSelectedIndex = _ref.selectedIndex;
47
- var baseId = useId('ccs'); // The active index is used to track the element which has focus in our tablist
48
-
49
- var _useState = useState(defaultSelectedIndex),
50
- _useState2 = _slicedToArray(_useState, 2),
51
- activeIndex = _useState2[0],
52
- setActiveIndex = _useState2[1]; // The selected index is used for the tab/panel pairing which is "visible"
37
+ let {
38
+ children,
39
+ defaultSelectedIndex = 0,
40
+ onChange,
41
+ selectedIndex: controlledSelectedIndex
42
+ } = _ref;
43
+ const baseId = useId('ccs'); // The active index is used to track the element which has focus in our tablist
53
44
 
45
+ const [activeIndex, setActiveIndex] = useState(defaultSelectedIndex); // The selected index is used for the tab/panel pairing which is "visible"
54
46
 
55
- var _useControllableState = useControllableState({
47
+ const [selectedIndex, setSelectedIndex] = useControllableState({
56
48
  value: controlledSelectedIndex,
57
49
  defaultValue: defaultSelectedIndex,
58
- onChange: function onChange(value) {
59
- if (_onChange) {
60
- _onChange({
50
+ onChange: value => {
51
+ if (onChange) {
52
+ onChange({
61
53
  selectedIndex: value
62
54
  });
63
55
  }
64
56
  }
65
- }),
66
- _useControllableState2 = _slicedToArray(_useControllableState, 2),
67
- selectedIndex = _useControllableState2[0],
68
- setSelectedIndex = _useControllableState2[1];
69
-
70
- var value = {
71
- baseId: baseId,
72
- activeIndex: activeIndex,
73
- defaultSelectedIndex: defaultSelectedIndex,
74
- setActiveIndex: setActiveIndex,
75
- selectedIndex: selectedIndex,
76
- setSelectedIndex: setSelectedIndex
57
+ });
58
+ const value = {
59
+ baseId,
60
+ activeIndex,
61
+ defaultSelectedIndex,
62
+ setActiveIndex,
63
+ selectedIndex,
64
+ setSelectedIndex
77
65
  };
78
66
  return /*#__PURE__*/React__default.createElement(TabsContext.Provider, {
79
67
  value: value
@@ -127,65 +115,60 @@ function getNextIndex(event, total, index) {
127
115
  }
128
116
 
129
117
  function TabList(_ref2) {
130
- var _cx;
131
-
132
- var _ref2$activation = _ref2.activation,
133
- activation = _ref2$activation === void 0 ? 'automatic' : _ref2$activation,
134
- label = _ref2['aria-label'],
135
- children = _ref2.children,
136
- customClassName = _ref2.className,
137
- _ref2$contained = _ref2.contained,
138
- contained = _ref2$contained === void 0 ? false : _ref2$contained,
139
- iconSize = _ref2.iconSize,
140
- leftOverflowButtonProps = _ref2.leftOverflowButtonProps,
141
- light = _ref2.light,
142
- rightOverflowButtonProps = _ref2.rightOverflowButtonProps,
143
- _ref2$scrollDebounceW = _ref2.scrollDebounceWait,
144
- scrollDebounceWait = _ref2$scrollDebounceW === void 0 ? 200 : _ref2$scrollDebounceW,
145
- scrollIntoView = _ref2.scrollIntoView,
146
- rest = _objectWithoutProperties(_ref2, _excluded);
147
-
148
- var _React$useContext = React__default.useContext(TabsContext),
149
- activeIndex = _React$useContext.activeIndex,
150
- selectedIndex = _React$useContext.selectedIndex,
151
- setSelectedIndex = _React$useContext.setSelectedIndex,
152
- setActiveIndex = _React$useContext.setActiveIndex;
153
-
154
- var prefix = usePrefix();
155
- var ref = useRef(null);
156
- var previousButton = useRef(null);
157
- var nextButton = useRef(null);
158
-
159
- var _useState3 = useState(false),
160
- _useState4 = _slicedToArray(_useState3, 2),
161
- isScrollable = _useState4[0],
162
- setIsScrollable = _useState4[1];
163
-
164
- var _useState5 = useState(null),
165
- _useState6 = _slicedToArray(_useState5, 2),
166
- scrollLeft = _useState6[0],
167
- setScrollLeft = _useState6[1];
168
-
169
- var hasSecondaryLabelTabs = contained && !!React__default.Children.toArray(children).filter(function (child) {
170
- return child.props.secondaryLabel;
171
- }).length;
172
- var className = cx("".concat(prefix, "--tabs"), customClassName, (_cx = {}, _defineProperty(_cx, "".concat(prefix, "--tabs--contained"), contained), _defineProperty(_cx, "".concat(prefix, "--tabs--light"), light), _defineProperty(_cx, "".concat(prefix, "--tabs__icon--default"), iconSize === 'default'), _defineProperty(_cx, "".concat(prefix, "--tabs__icon--lg"), iconSize === 'lg'), _defineProperty(_cx, "".concat(prefix, "--tabs--tall"), hasSecondaryLabelTabs), _cx)); // Previous Button
118
+ let {
119
+ activation = 'automatic',
120
+ 'aria-label': label,
121
+ children,
122
+ className: customClassName,
123
+ contained = false,
124
+ iconSize,
125
+ leftOverflowButtonProps,
126
+ light,
127
+ rightOverflowButtonProps,
128
+ scrollDebounceWait = 200,
129
+ scrollIntoView,
130
+ ...rest
131
+ } = _ref2;
132
+ const {
133
+ activeIndex,
134
+ selectedIndex,
135
+ setSelectedIndex,
136
+ setActiveIndex
137
+ } = React__default.useContext(TabsContext);
138
+ const prefix = usePrefix();
139
+ const ref = useRef(null);
140
+ const previousButton = useRef(null);
141
+ const nextButton = useRef(null);
142
+ const [isScrollable, setIsScrollable] = useState(false);
143
+ const [scrollLeft, setScrollLeft] = useState(null);
144
+ const hasSecondaryLabelTabs = contained && !!React__default.Children.toArray(children).filter(child => child.props.secondaryLabel).length;
145
+ const className = cx(`${prefix}--tabs`, customClassName, {
146
+ [`${prefix}--tabs--contained`]: contained,
147
+ [`${prefix}--tabs--light`]: light,
148
+ [`${prefix}--tabs__icon--default`]: iconSize === 'default',
149
+ [`${prefix}--tabs__icon--lg`]: iconSize === 'lg',
150
+ [`${prefix}--tabs--tall`]: hasSecondaryLabelTabs
151
+ }); // Previous Button
173
152
  // VISIBLE IF:
174
153
  // SCROLLABLE
175
154
  // AND SCROLL_LEFT > 0
176
155
 
177
- var buttonWidth = 44;
178
- var isPreviousButtonVisible = ref.current ? isScrollable && scrollLeft > 0 : false; // Next Button
156
+ const buttonWidth = 44;
157
+ const isPreviousButtonVisible = ref.current ? isScrollable && scrollLeft > 0 : false; // Next Button
179
158
  // VISIBLE IF:
180
159
  // SCROLLABLE
181
160
  // AND SCROLL_LEFT + CLIENT_WIDTH < SCROLL_WIDTH
182
161
 
183
- var isNextButtonVisible = ref.current ? scrollLeft + buttonWidth + ref.current.clientWidth < ref.current.scrollWidth : false;
184
- var previousButtonClasses = cx("".concat(prefix, "--tab--overflow-nav-button"), "".concat(prefix, "--tab--overflow-nav-button--previous"), _defineProperty({}, "".concat(prefix, "--tab--overflow-nav-button--hidden"), !isPreviousButtonVisible));
185
- var nextButtonClasses = cx("".concat(prefix, "--tab--overflow-nav-button"), "".concat(prefix, "--tab--overflow-nav-button--next"), _defineProperty({}, "".concat(prefix, "--tab--overflow-nav-button--hidden"), !isNextButtonVisible));
186
- var tabs = useRef([]);
187
- var debouncedOnScroll = useCallback(function () {
188
- return debounce(function (event) {
162
+ const isNextButtonVisible = ref.current ? scrollLeft + buttonWidth + ref.current.clientWidth < ref.current.scrollWidth : false;
163
+ const previousButtonClasses = cx(`${prefix}--tab--overflow-nav-button`, `${prefix}--tab--overflow-nav-button--previous`, {
164
+ [`${prefix}--tab--overflow-nav-button--hidden`]: !isPreviousButtonVisible
165
+ });
166
+ const nextButtonClasses = cx(`${prefix}--tab--overflow-nav-button`, `${prefix}--tab--overflow-nav-button--next`, {
167
+ [`${prefix}--tab--overflow-nav-button--hidden`]: !isNextButtonVisible
168
+ });
169
+ const tabs = useRef([]);
170
+ const debouncedOnScroll = useCallback(() => {
171
+ return debounce(event => {
189
172
  setScrollLeft(event.target.scrollLeft);
190
173
  }, scrollDebounceWait);
191
174
  }, [scrollDebounceWait]);
@@ -193,11 +176,11 @@ function TabList(_ref2) {
193
176
  function onKeyDown(event) {
194
177
  if (matches(event, [ArrowRight, ArrowLeft, Home, End])) {
195
178
  event.preventDefault();
196
- var activeTabs = tabs.current.filter(function (tab) {
179
+ const activeTabs = tabs.current.filter(tab => {
197
180
  return !tab.disabled;
198
181
  });
199
- var currentIndex = activeTabs.indexOf(tabs.current[activation === 'automatic' ? selectedIndex : activeIndex]);
200
- var nextIndex = tabs.current.indexOf(activeTabs[getNextIndex(event, activeTabs.length, currentIndex)]);
182
+ const currentIndex = activeTabs.indexOf(tabs.current[activation === 'automatic' ? selectedIndex : activeIndex]);
183
+ const nextIndex = tabs.current.indexOf(activeTabs[getNextIndex(event, activeTabs.length, currentIndex)]);
201
184
 
202
185
  if (activation === 'automatic') {
203
186
  setSelectedIndex(nextIndex);
@@ -209,8 +192,8 @@ function TabList(_ref2) {
209
192
  }
210
193
  }
211
194
 
212
- useEffectOnce(function () {
213
- var tab = tabs.current[selectedIndex];
195
+ useEffectOnce(() => {
196
+ const tab = tabs.current[selectedIndex];
214
197
 
215
198
  if (scrollIntoView && tab) {
216
199
  tab.scrollIntoView({
@@ -219,19 +202,19 @@ function TabList(_ref2) {
219
202
  });
220
203
  }
221
204
  });
222
- useEffectOnce(function () {
205
+ useEffectOnce(() => {
223
206
  if (tabs.current[selectedIndex].disabled) {
224
- var activeTabs = tabs.current.filter(function (tab) {
207
+ const activeTabs = tabs.current.filter(tab => {
225
208
  return !tab.disabled;
226
209
  });
227
210
 
228
211
  if (activeTabs.length > 0) {
229
- var tab = activeTabs[0];
212
+ const tab = activeTabs[0];
230
213
  setSelectedIndex(tabs.current.indexOf(tab));
231
214
  }
232
215
  }
233
216
  });
234
- useIsomorphicEffect(function () {
217
+ useIsomorphicEffect(() => {
235
218
  if (ref.current) {
236
219
  setIsScrollable(ref.current.scrollWidth > ref.current.clientWidth);
237
220
  }
@@ -242,37 +225,37 @@ function TabList(_ref2) {
242
225
  }
243
226
  }
244
227
 
245
- var debouncedHandler = debounce(handler, 200);
228
+ const debouncedHandler = debounce(handler, 200);
246
229
  window.addEventListener('resize', debouncedHandler);
247
- return function () {
230
+ return () => {
248
231
  debouncedHandler.cancel();
249
232
  window.removeEventListener('resize', debouncedHandler);
250
233
  };
251
234
  }, []); // updates scroll location for all scroll behavior.
252
235
 
253
- useIsomorphicEffect(function () {
236
+ useIsomorphicEffect(() => {
254
237
  if (scrollLeft !== null) {
255
238
  ref.current.scrollLeft = scrollLeft;
256
239
  }
257
240
  }, [scrollLeft]);
258
- useIsomorphicEffect(function () {
241
+ useIsomorphicEffect(() => {
259
242
  if (!isScrollable) {
260
243
  return;
261
244
  }
262
245
 
263
- var tab = activation === 'manual' ? tabs.current[activeIndex] : tabs.current[selectedIndex];
246
+ const tab = activation === 'manual' ? tabs.current[activeIndex] : tabs.current[selectedIndex];
264
247
 
265
248
  if (tab) {
266
249
  // The width of the "scroll buttons"
267
250
  // The start and end position of the selected tab
268
- var _tab$getBoundingClien = tab.getBoundingClientRect(),
269
- tabWidth = _tab$getBoundingClien.width;
270
-
271
- var start = tab.offsetLeft;
272
- var end = tab.offsetLeft + tabWidth; // The start and end of the visible area for the tabs
251
+ const {
252
+ width: tabWidth
253
+ } = tab.getBoundingClientRect();
254
+ const start = tab.offsetLeft;
255
+ const end = tab.offsetLeft + tabWidth; // The start and end of the visible area for the tabs
273
256
 
274
- var visibleStart = ref.current.scrollLeft + buttonWidth;
275
- var visibleEnd = ref.current.scrollLeft + ref.current.clientWidth - buttonWidth; // The beginning of the tab is clipped and not visible
257
+ const visibleStart = ref.current.scrollLeft + buttonWidth;
258
+ const visibleEnd = ref.current.scrollLeft + ref.current.clientWidth - buttonWidth; // The beginning of the tab is clipped and not visible
276
259
 
277
260
  if (start < visibleStart) {
278
261
  setScrollLeft(start - buttonWidth);
@@ -285,28 +268,36 @@ function TabList(_ref2) {
285
268
  }
286
269
  }, [activation, activeIndex, selectedIndex, isScrollable]);
287
270
  usePressable(previousButton, {
288
- onPress: function onPress(_ref3) {
289
- var longPress = _ref3.longPress;
271
+ onPress(_ref3) {
272
+ let {
273
+ longPress
274
+ } = _ref3;
290
275
 
291
276
  if (!longPress) {
292
277
  setScrollLeft(Math.max(scrollLeft - ref.current.scrollWidth / tabs.current.length * 1.5, 0));
293
278
  }
294
279
  },
295
- onLongPress: function onLongPress() {
280
+
281
+ onLongPress() {
296
282
  return createLongPressBehavior(ref, 'backward', setScrollLeft);
297
283
  }
284
+
298
285
  });
299
286
  usePressable(nextButton, {
300
- onPress: function onPress(_ref4) {
301
- var longPress = _ref4.longPress;
287
+ onPress(_ref4) {
288
+ let {
289
+ longPress
290
+ } = _ref4;
302
291
 
303
292
  if (!longPress) {
304
293
  setScrollLeft(Math.min(scrollLeft + ref.current.scrollWidth / tabs.current.length * 1.5, ref.current.scrollWidth - ref.current.clientWidth));
305
294
  }
306
295
  },
307
- onLongPress: function onLongPress() {
296
+
297
+ onLongPress() {
308
298
  return createLongPressBehavior(ref, 'forward', setScrollLeft);
309
299
  }
300
+
310
301
  });
311
302
  return /*#__PURE__*/React__default.createElement("div", {
312
303
  className: className
@@ -320,17 +311,19 @@ function TabList(_ref2) {
320
311
  "aria-label": label,
321
312
  ref: ref,
322
313
  role: "tablist",
323
- className: "".concat(prefix, "--tab--list"),
314
+ className: `${prefix}--tab--list`,
324
315
  onScroll: debouncedOnScroll,
325
316
  onKeyDown: onKeyDown
326
- }), React__default.Children.map(children, function (child, index) {
317
+ }), React__default.Children.map(children, (child, index) => {
327
318
  return /*#__PURE__*/React__default.createElement(TabContext.Provider, {
328
- value: index
319
+ value: {
320
+ index,
321
+ hasSecondaryLabel: hasSecondaryLabelTabs
322
+ }
329
323
  }, /*#__PURE__*/React__default.cloneElement(child, {
330
- ref: function ref(node) {
324
+ ref: node => {
331
325
  tabs.current[index] = node;
332
- },
333
- hasSecondaryLabel: hasSecondaryLabelTabs
326
+ }
334
327
  }));
335
328
  })), /*#__PURE__*/React__default.createElement("button", _extends({
336
329
  "aria-hidden": "true",
@@ -421,10 +414,10 @@ TabList.propTypes = {
421
414
  function createLongPressBehavior(ref, direction, setScrollLeft) {
422
415
  // We manually override the scroll behavior to be "auto". If it is set as
423
416
  // smooth, this animation does not update correctly
424
- var defaultScrollBehavior = ref.current.style['scroll-behavior'];
417
+ let defaultScrollBehavior = ref.current.style['scroll-behavior'];
425
418
  ref.current.style['scroll-behavior'] = 'auto';
426
- var scrollDelta = direction === 'forward' ? 5 : -5;
427
- var frameId = null;
419
+ const scrollDelta = direction === 'forward' ? 5 : -5;
420
+ let frameId = null;
428
421
 
429
422
  function tick() {
430
423
  ref.current.scrollLeft = ref.current.scrollLeft + scrollDelta;
@@ -432,7 +425,7 @@ function createLongPressBehavior(ref, direction, setScrollLeft) {
432
425
  }
433
426
 
434
427
  frameId = requestAnimationFrame(tick);
435
- return function () {
428
+ return () => {
436
429
  // Restore the previous scroll behavior
437
430
  ref.current.style['scroll-behavior'] = defaultScrollBehavior; // Make sure that our `scrollLeft` value is in sync with the existing
438
431
  // `ref` after our requestAnimationFrame loop above
@@ -445,31 +438,34 @@ function createLongPressBehavior(ref, direction, setScrollLeft) {
445
438
  };
446
439
  }
447
440
 
448
- var Tab = /*#__PURE__*/React__default.forwardRef(function Tab(_ref5, ref) {
449
- var _cx4;
450
-
451
- var _ref5$as = _ref5.as,
452
- BaseComponent = _ref5$as === void 0 ? 'button' : _ref5$as,
453
- children = _ref5.children,
454
- customClassName = _ref5.className,
455
- disabled = _ref5.disabled,
456
- _onClick = _ref5.onClick,
457
- onKeyDown = _ref5.onKeyDown,
458
- secondaryLabel = _ref5.secondaryLabel,
459
- hasSecondaryLabel = _ref5.hasSecondaryLabel,
460
- rest = _objectWithoutProperties(_ref5, _excluded2);
461
-
462
- var prefix = usePrefix();
463
-
464
- var _React$useContext2 = React__default.useContext(TabsContext),
465
- selectedIndex = _React$useContext2.selectedIndex,
466
- setSelectedIndex = _React$useContext2.setSelectedIndex,
467
- baseId = _React$useContext2.baseId;
468
-
469
- var index = React__default.useContext(TabContext);
470
- var id = "".concat(baseId, "-tab-").concat(index);
471
- var panelId = "".concat(baseId, "-tabpanel-").concat(index);
472
- var className = cx("".concat(prefix, "--tabs__nav-item"), "".concat(prefix, "--tabs__nav-link"), customClassName, (_cx4 = {}, _defineProperty(_cx4, "".concat(prefix, "--tabs__nav-item--selected"), selectedIndex === index), _defineProperty(_cx4, "".concat(prefix, "--tabs__nav-item--disabled"), disabled), _cx4));
441
+ const Tab = /*#__PURE__*/React__default.forwardRef(function Tab(_ref5, ref) {
442
+ let {
443
+ as: BaseComponent = 'button',
444
+ children,
445
+ className: customClassName,
446
+ disabled,
447
+ onClick,
448
+ onKeyDown,
449
+ secondaryLabel,
450
+ renderIcon: Icon,
451
+ ...rest
452
+ } = _ref5;
453
+ const prefix = usePrefix();
454
+ const {
455
+ selectedIndex,
456
+ setSelectedIndex,
457
+ baseId
458
+ } = React__default.useContext(TabsContext);
459
+ const {
460
+ index,
461
+ hasSecondaryLabel
462
+ } = React__default.useContext(TabContext);
463
+ const id = `${baseId}-tab-${index}`;
464
+ const panelId = `${baseId}-tabpanel-${index}`;
465
+ const className = cx(`${prefix}--tabs__nav-item`, `${prefix}--tabs__nav-link`, customClassName, {
466
+ [`${prefix}--tabs__nav-item--selected`]: selectedIndex === index,
467
+ [`${prefix}--tabs__nav-item--disabled`]: disabled
468
+ });
473
469
  return /*#__PURE__*/React__default.createElement(BaseComponent, _extends({}, rest, {
474
470
  "aria-controls": panelId,
475
471
  "aria-disabled": disabled,
@@ -479,24 +475,30 @@ var Tab = /*#__PURE__*/React__default.forwardRef(function Tab(_ref5, ref) {
479
475
  role: "tab",
480
476
  className: className,
481
477
  disabled: disabled,
482
- onClick: function onClick(evt) {
478
+ onClick: evt => {
483
479
  if (disabled) {
484
480
  return;
485
481
  }
486
482
 
487
483
  setSelectedIndex(index);
488
484
 
489
- if (_onClick) {
490
- _onClick(evt);
485
+ if (onClick) {
486
+ onClick(evt);
491
487
  }
492
488
  },
493
489
  onKeyDown: onKeyDown,
494
490
  tabIndex: selectedIndex === index ? '0' : '-1',
495
491
  type: "button"
496
- }), /*#__PURE__*/React__default.createElement("span", {
497
- className: "".concat(prefix, "--tabs__nav-item-label")
498
- }, children), hasSecondaryLabel && /*#__PURE__*/React__default.createElement("div", {
499
- className: "".concat(prefix, "--tabs__nav-item-secondary-label")
492
+ }), /*#__PURE__*/React__default.createElement("div", {
493
+ className: `${prefix}--tabs__nav-item-label-wrapper`
494
+ }, /*#__PURE__*/React__default.createElement("span", {
495
+ className: `${prefix}--tabs__nav-item-label`
496
+ }, children), Icon && /*#__PURE__*/React__default.createElement("div", {
497
+ className: `${prefix}--tabs__nav-item--icon`
498
+ }, /*#__PURE__*/React__default.createElement(Icon, {
499
+ size: 16
500
+ }))), hasSecondaryLabel && /*#__PURE__*/React__default.createElement("div", {
501
+ className: `${prefix}--tabs__nav-item-secondary-label`
500
502
  }, secondaryLabel));
501
503
  });
502
504
  Tab.propTypes = {
@@ -520,11 +522,6 @@ Tab.propTypes = {
520
522
  */
521
523
  disabled: PropTypes.bool,
522
524
 
523
- /*
524
- * Internal use only, determines wether a tab should render as a secondary label tab
525
- **/
526
- hasSecondaryLabel: PropTypes.bool,
527
-
528
525
  /**
529
526
  * Provide a handler that is invoked when a user clicks on the control
530
527
  */
@@ -542,28 +539,34 @@ Tab.propTypes = {
542
539
  **/
543
540
  renderButton: PropTypes.func,
544
541
 
542
+ /**
543
+ * Optional prop to render an icon next to the label.
544
+ * Can be a React component class
545
+ */
546
+ renderIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
547
+
545
548
  /*
546
549
  * An optional label to render under the primary tab label.
547
550
  /* This prop is only useful for conained tabs
548
551
  **/
549
552
  secondaryLabel: PropTypes.string
550
553
  };
551
- var IconTab = /*#__PURE__*/React__default.forwardRef(function IconTab(_ref6, ref) {
552
- var children = _ref6.children,
553
- customClassName = _ref6.className,
554
- _ref6$defaultOpen = _ref6.defaultOpen,
555
- defaultOpen = _ref6$defaultOpen === void 0 ? false : _ref6$defaultOpen,
556
- enterDelayMs = _ref6.enterDelayMs,
557
- leaveDelayMs = _ref6.leaveDelayMs,
558
- label = _ref6.label,
559
- rest = _objectWithoutProperties(_ref6, _excluded3);
560
-
561
- var prefix = usePrefix();
562
- var classNames = cx("".concat(prefix, "--tabs__nav-item--icon"), customClassName);
554
+ const IconTab = /*#__PURE__*/React__default.forwardRef(function IconTab(_ref6, ref) {
555
+ let {
556
+ children,
557
+ className: customClassName,
558
+ defaultOpen = false,
559
+ enterDelayMs,
560
+ leaveDelayMs,
561
+ label,
562
+ ...rest
563
+ } = _ref6;
564
+ const prefix = usePrefix();
565
+ const classNames = cx(`${prefix}--tabs__nav-item--icon-only`, customClassName);
563
566
  return /*#__PURE__*/React__default.createElement(Tooltip, {
564
567
  align: "bottom",
565
568
  defaultOpen: defaultOpen,
566
- className: "".concat(prefix, "--icon-tooltip"),
569
+ className: `${prefix}--icon-tooltip`,
567
570
  enterDelayMs: enterDelayMs,
568
571
  label: label,
569
572
  leaveDelayMs: leaveDelayMs
@@ -606,39 +609,33 @@ IconTab.propTypes = {
606
609
  */
607
610
  leaveDelayMs: PropTypes.number
608
611
  };
609
- var TabPanel = /*#__PURE__*/React__default.forwardRef(function TabPanel(_ref7, forwardRef) {
610
- var children = _ref7.children,
611
- customClassName = _ref7.className,
612
- rest = _objectWithoutProperties(_ref7, _excluded4);
613
-
614
- var prefix = usePrefix();
615
- var panel = useRef(null);
616
- var ref = useMergedRefs([forwardRef, panel]);
617
-
618
- var _useState7 = useState('0'),
619
- _useState8 = _slicedToArray(_useState7, 2),
620
- tabIndex = _useState8[0],
621
- setTabIndex = _useState8[1];
622
-
623
- var _useState9 = useState(false),
624
- _useState10 = _slicedToArray(_useState9, 2),
625
- interactiveContent = _useState10[0],
626
- setInteractiveContent = _useState10[1];
627
-
628
- var _React$useContext3 = React__default.useContext(TabsContext),
629
- selectedIndex = _React$useContext3.selectedIndex,
630
- baseId = _React$useContext3.baseId;
631
-
632
- var index = React__default.useContext(TabPanelContext);
633
- var id = "".concat(baseId, "-tabpanel-").concat(index);
634
- var tabId = "".concat(baseId, "-tab-").concat(index);
635
- var className = cx("".concat(prefix, "--tab-content"), customClassName, _defineProperty({}, "".concat(prefix, "--tab-content--interactive"), interactiveContent));
636
- useEffectOnce(function () {
612
+ const TabPanel = /*#__PURE__*/React__default.forwardRef(function TabPanel(_ref7, forwardRef) {
613
+ let {
614
+ children,
615
+ className: customClassName,
616
+ ...rest
617
+ } = _ref7;
618
+ const prefix = usePrefix();
619
+ const panel = useRef(null);
620
+ const ref = useMergedRefs([forwardRef, panel]);
621
+ const [tabIndex, setTabIndex] = useState('0');
622
+ const [interactiveContent, setInteractiveContent] = useState(false);
623
+ const {
624
+ selectedIndex,
625
+ baseId
626
+ } = React__default.useContext(TabsContext);
627
+ const index = React__default.useContext(TabPanelContext);
628
+ const id = `${baseId}-tabpanel-${index}`;
629
+ const tabId = `${baseId}-tab-${index}`;
630
+ const className = cx(`${prefix}--tab-content`, customClassName, {
631
+ [`${prefix}--tab-content--interactive`]: interactiveContent
632
+ });
633
+ useEffectOnce(() => {
637
634
  if (!panel.current) {
638
635
  return;
639
636
  }
640
637
 
641
- var content = getInteractiveContent(panel.current);
638
+ const content = getInteractiveContent(panel.current);
642
639
 
643
640
  if (content) {
644
641
  setInteractiveContent(true);
@@ -646,15 +643,17 @@ var TabPanel = /*#__PURE__*/React__default.forwardRef(function TabPanel(_ref7, f
646
643
  }
647
644
  }); // tabindex should only be 0 if no interactive content in children
648
645
 
649
- useEffect(function () {
646
+ useEffect(() => {
650
647
  if (!panel.current) {
651
648
  return;
652
649
  }
653
650
 
654
- var node = panel.current;
651
+ const {
652
+ current: node
653
+ } = panel;
655
654
 
656
655
  function callback() {
657
- var content = getInteractiveContent(node);
656
+ const content = getInteractiveContent(node);
658
657
 
659
658
  if (content) {
660
659
  setInteractiveContent(true);
@@ -665,12 +664,12 @@ var TabPanel = /*#__PURE__*/React__default.forwardRef(function TabPanel(_ref7, f
665
664
  }
666
665
  }
667
666
 
668
- var observer = new MutationObserver(callback);
667
+ const observer = new MutationObserver(callback);
669
668
  observer.observe(node, {
670
669
  childList: true,
671
670
  subtree: true
672
671
  });
673
- return function () {
672
+ return () => {
674
673
  observer.disconnect(node);
675
674
  };
676
675
  }, []);
@@ -697,8 +696,10 @@ TabPanel.propTypes = {
697
696
  };
698
697
 
699
698
  function TabPanels(_ref8) {
700
- var children = _ref8.children;
701
- return React__default.Children.map(children, function (child, index) {
699
+ let {
700
+ children
701
+ } = _ref8;
702
+ return React__default.Children.map(children, (child, index) => {
702
703
  return /*#__PURE__*/React__default.createElement(TabPanelContext.Provider, {
703
704
  value: index
704
705
  }, child);