@carbon/react 1.29.1 → 1.30.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 (580) hide show
  1. package/es/_virtual/_rollupPluginBabelHelpers.js +16 -5
  2. package/es/components/Accordion/Accordion.Skeleton.js +0 -7
  3. package/es/components/Accordion/Accordion.js +1 -8
  4. package/es/components/Accordion/AccordionItem.js +5 -19
  5. package/es/components/AspectRatio/AspectRatio.js +0 -5
  6. package/es/components/Breadcrumb/Breadcrumb.Skeleton.js +0 -3
  7. package/es/components/Breadcrumb/Breadcrumb.js +0 -3
  8. package/es/components/Breadcrumb/BreadcrumbItem.js +0 -7
  9. package/es/components/Button/Button.Skeleton.js +2 -7
  10. package/es/components/Button/Button.js +2 -36
  11. package/es/components/ButtonSet/ButtonSet.js +0 -2
  12. package/es/components/Checkbox/Checkbox.Skeleton.js +0 -1
  13. package/es/components/Checkbox/Checkbox.js +4 -20
  14. package/es/components/CheckboxGroup/CheckboxGroup.js +0 -11
  15. package/es/components/ClassPrefix/index.d.ts +26 -0
  16. package/es/components/ClassPrefix/index.js +0 -2
  17. package/es/components/CodeSnippet/CodeSnippet.Skeleton.js +0 -5
  18. package/es/components/CodeSnippet/CodeSnippet.js +6 -45
  19. package/es/components/ComboBox/ComboBox.js +12 -79
  20. package/es/components/ComboBox/tools/filter.js +0 -1
  21. package/es/components/ComboButton/index.js +0 -14
  22. package/es/components/ComposedModal/ComposedModal.js +2 -32
  23. package/es/components/ComposedModal/ModalFooter.js +0 -21
  24. package/es/components/ComposedModal/ModalHeader.js +0 -12
  25. package/es/components/ContainedList/ContainedList.js +5 -32
  26. package/es/components/ContainedList/ContainedListItem/ContainedListItem.js +0 -6
  27. package/es/components/ContentSwitcher/ContentSwitcher.js +11 -23
  28. package/es/components/ContextMenu/useContextMenu.js +1 -6
  29. package/es/components/Copy/Copy.js +8 -31
  30. package/es/components/CopyButton/CopyButton.js +0 -4
  31. package/es/components/DangerButton/DangerButton.js +0 -1
  32. package/es/components/DataTable/DataTable.js +171 -91
  33. package/es/components/DataTable/Table.js +0 -6
  34. package/es/components/DataTable/TableBatchAction.js +0 -4
  35. package/es/components/DataTable/TableBatchActions.js +0 -8
  36. package/es/components/DataTable/TableBody.js +0 -1
  37. package/es/components/DataTable/TableContainer.js +0 -5
  38. package/es/components/DataTable/TableExpandHeader.js +0 -7
  39. package/es/components/DataTable/TableExpandRow.js +0 -6
  40. package/es/components/DataTable/TableExpandedRow.js +0 -6
  41. package/es/components/DataTable/TableHeader.d.ts +1 -1
  42. package/es/components/DataTable/TableHeader.js +3 -19
  43. package/es/components/DataTable/TableRow.js +4 -5
  44. package/es/components/DataTable/TableSelectAll.js +0 -8
  45. package/es/components/DataTable/TableSelectRow.js +2 -10
  46. package/es/components/DataTable/TableToolbar.js +0 -3
  47. package/es/components/DataTable/TableToolbarMenu.d.ts +1 -1
  48. package/es/components/DataTable/TableToolbarMenu.js +3 -6
  49. package/es/components/DataTable/TableToolbarSearch.js +2 -30
  50. package/es/components/DataTable/state/getDerivedStateFromProps.js +0 -4
  51. package/es/components/DataTable/state/sorting.js +5 -8
  52. package/es/components/DataTable/tools/denormalize.js +2 -2
  53. package/es/components/DataTable/tools/filter.js +0 -2
  54. package/es/components/DataTable/tools/instanceId.js +0 -1
  55. package/es/components/DataTable/tools/normalize.js +10 -10
  56. package/es/components/DataTable/tools/sorting.js +5 -13
  57. package/es/components/DataTableSkeleton/DataTableSkeleton.js +5 -20
  58. package/es/components/DatePicker/DatePicker.Skeleton.js +0 -6
  59. package/es/components/DatePicker/DatePicker.js +153 -175
  60. package/es/components/DatePicker/plugins/appendToPlugin.js +3 -7
  61. package/es/components/DatePicker/plugins/fixEventsPlugin.js +14 -25
  62. package/es/components/DatePicker/plugins/rangePlugin.js +2 -7
  63. package/es/components/DatePickerInput/DatePickerInput.js +2 -28
  64. package/es/components/Dropdown/Dropdown.Skeleton.js +0 -2
  65. package/es/components/Dropdown/Dropdown.js +43 -52
  66. package/es/components/ErrorBoundary/ErrorBoundary.js +0 -10
  67. package/es/components/ErrorBoundary/ErrorBoundaryContext.js +0 -1
  68. package/es/components/ExpandableSearch/ExpandableSearch.js +1 -10
  69. package/es/components/FeatureFlags/index.js +8 -20
  70. package/es/components/FileUploader/FileUploader.Skeleton.js +0 -2
  71. package/es/components/FileUploader/FileUploader.js +3 -38
  72. package/es/components/FileUploader/FileUploaderButton.js +3 -24
  73. package/es/components/FileUploader/FileUploaderDropContainer.js +1 -28
  74. package/es/components/FileUploader/FileUploaderItem.js +5 -12
  75. package/es/components/FileUploader/Filename.js +6 -10
  76. package/es/components/FluidComboBox/FluidComboBox.Skeleton.js +0 -1
  77. package/es/components/FluidComboBox/FluidComboBox.js +0 -18
  78. package/es/components/FluidDatePicker/FluidDatePicker.Skeleton.js +0 -2
  79. package/es/components/FluidDatePicker/FluidDatePicker.js +0 -6
  80. package/es/components/FluidDatePickerInput/FluidDatePickerInput.js +2 -1
  81. package/es/components/FluidDropdown/FluidDropdown.Skeleton.js +0 -1
  82. package/es/components/FluidDropdown/FluidDropdown.js +0 -18
  83. package/es/components/FluidForm/FluidForm.js +0 -2
  84. package/es/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +0 -1
  85. package/es/components/FluidMultiSelect/FluidMultiSelect.js +0 -19
  86. package/es/components/FluidSelect/FluidSelect.Skeleton.js +0 -1
  87. package/es/components/FluidSelect/FluidSelect.js +0 -10
  88. package/es/components/FluidTextArea/FluidTextArea.Skeleton.js +0 -1
  89. package/es/components/FluidTextArea/FluidTextArea.js +0 -20
  90. package/es/components/FluidTextInput/FluidTextInput.Skeleton.js +0 -1
  91. package/es/components/FluidTextInput/FluidTextInput.js +0 -14
  92. package/es/components/FluidTimePicker/FluidTimePicker.Skeleton.js +0 -3
  93. package/es/components/FluidTimePicker/FluidTimePicker.js +1 -11
  94. package/es/components/FluidTimePickerSelect/FluidTimePickerSelect.js +0 -6
  95. package/es/components/Form/Form.d.ts +23 -0
  96. package/es/components/Form/Form.js +3 -6
  97. package/es/components/Form/index.d.ts +7 -0
  98. package/es/components/FormGroup/FormGroup.js +0 -7
  99. package/es/components/FormItem/FormItem.js +0 -2
  100. package/es/components/FormLabel/FormLabel.js +1 -7
  101. package/es/components/Grid/CSSGrid.js +2 -15
  102. package/es/components/Grid/Column.js +18 -59
  103. package/es/components/Grid/ColumnHang.js +2 -5
  104. package/es/components/Grid/FlexGrid.js +2 -8
  105. package/es/components/Grid/Grid.js +0 -8
  106. package/es/components/Grid/GridContext.js +1 -3
  107. package/es/components/Grid/Row.js +2 -7
  108. package/es/components/Heading/index.js +0 -4
  109. package/es/components/Icon/Icon.Skeleton.js +2 -2
  110. package/es/components/IconButton/index.js +0 -10
  111. package/es/components/IdPrefix/index.js +0 -2
  112. package/es/components/InlineCheckbox/InlineCheckbox.js +0 -14
  113. package/es/components/InlineLoading/InlineLoading.js +0 -12
  114. package/es/components/Layer/index.js +3 -6
  115. package/es/components/Layout/LayoutDirection.js +0 -3
  116. package/es/components/Layout/useLayoutDirection.js +0 -1
  117. package/es/components/Link/Link.js +3 -10
  118. package/es/components/ListBox/ListBox.js +2 -13
  119. package/es/components/ListBox/ListBoxField.js +0 -5
  120. package/es/components/ListBox/ListBoxMenuIcon.js +0 -4
  121. package/es/components/ListBox/ListBoxMenuItem.js +2 -6
  122. package/es/components/ListBox/ListBoxPropTypes.d.ts +2 -2
  123. package/es/components/ListBox/ListBoxSelection.js +1 -13
  124. package/es/components/ListBox/next/ListBoxSelection.js +1 -14
  125. package/es/components/ListBox/next/ListBoxTrigger.js +1 -3
  126. package/es/components/ListItem/ListItem.d.ts +23 -0
  127. package/es/components/ListItem/ListItem.js +4 -8
  128. package/es/components/ListItem/index.d.ts +7 -0
  129. package/es/components/Loading/Loading.js +0 -6
  130. package/es/components/Menu/Menu.js +22 -40
  131. package/es/components/Menu/MenuContext.js +4 -5
  132. package/es/components/Menu/MenuItem.js +5 -39
  133. package/es/components/MenuButton/index.js +0 -9
  134. package/es/components/Modal/Modal.js +1 -46
  135. package/es/components/ModalWrapper/ModalWrapper.js +2 -15
  136. package/es/components/MultiSelect/FilterableMultiSelect.js +2 -60
  137. package/es/components/MultiSelect/MultiSelect.js +22 -70
  138. package/es/components/MultiSelect/MultiSelectPropTypes.js +0 -1
  139. package/es/components/MultiSelect/index.js +0 -1
  140. package/es/components/MultiSelect/tools/itemToString.js +0 -2
  141. package/es/components/MultiSelect/tools/sorting.js +3 -4
  142. package/es/components/Notification/Notification.js +0 -78
  143. package/es/components/NumberInput/NumberInput.Skeleton.js +0 -2
  144. package/es/components/NumberInput/NumberInput.js +3 -60
  145. package/es/components/OrderedList/OrderedList.d.ts +39 -0
  146. package/es/components/OrderedList/OrderedList.js +7 -19
  147. package/es/components/{Form/index.js → OrderedList/index.d.ts} +1 -3
  148. package/es/components/OverflowMenu/OverflowMenu.js +65 -86
  149. package/es/components/OverflowMenuItem/OverflowMenuItem.js +6 -23
  150. package/es/components/OverflowMenuV2/index.js +0 -5
  151. package/es/components/Pagination/Pagination.Skeleton.js +0 -2
  152. package/es/components/Pagination/Pagination.js +11 -47
  153. package/es/components/Pagination/experimental/PageSelector.js +0 -10
  154. package/es/components/Pagination/experimental/Pagination.js +2 -48
  155. package/es/components/PaginationNav/PaginationNav.js +15 -59
  156. package/es/components/Popover/index.d.ts +14 -8
  157. package/es/components/Popover/index.js +44 -48
  158. package/es/components/PrimaryButton/PrimaryButton.js +0 -1
  159. package/es/components/ProgressBar/ProgressBar.js +0 -15
  160. package/es/components/ProgressIndicator/ProgressIndicator.Skeleton.js +0 -4
  161. package/es/components/ProgressIndicator/ProgressIndicator.js +2 -40
  162. package/es/components/RadioButton/RadioButton.Skeleton.js +0 -1
  163. package/es/components/RadioButton/RadioButton.js +0 -13
  164. package/es/components/RadioButtonGroup/RadioButtonGroup.js +3 -23
  165. package/es/components/RadioTile/RadioTile.js +0 -12
  166. package/es/components/Search/Search.Skeleton.js +0 -2
  167. package/es/components/Search/Search.js +1 -28
  168. package/es/components/SecondaryButton/SecondaryButton.js +0 -1
  169. package/es/components/Select/Select.Skeleton.js +0 -2
  170. package/es/components/Select/Select.d.ts +1 -1
  171. package/es/components/Select/Select.js +6 -33
  172. package/es/components/SelectItem/SelectItem.js +0 -5
  173. package/es/components/SelectItemGroup/SelectItemGroup.d.ts +0 -1
  174. package/es/components/SelectItemGroup/SelectItemGroup.js +1 -7
  175. package/es/components/SkeletonIcon/SkeletonIcon.js +0 -2
  176. package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.js +0 -1
  177. package/es/components/SkeletonText/SkeletonText.js +0 -12
  178. package/es/components/Slider/Slider.Skeleton.js +0 -2
  179. package/es/components/Slider/Slider.d.ts +0 -1
  180. package/es/components/Slider/Slider.js +112 -135
  181. package/es/components/Stack/Stack.js +1 -8
  182. package/es/components/StructuredList/StructuredList.Skeleton.js +0 -5
  183. package/es/components/StructuredList/StructuredList.js +1 -25
  184. package/es/components/Switch/IconSwitch.js +0 -18
  185. package/es/components/Switch/Switch.js +0 -11
  186. package/es/components/TabContent/TabContent.js +2 -6
  187. package/es/components/Tabs/Tabs.Skeleton.js +0 -4
  188. package/es/components/Tabs/Tabs.js +135 -104
  189. package/es/components/Tabs/usePressable.js +18 -31
  190. package/es/components/Tag/Tag.Skeleton.js +0 -2
  191. package/es/components/Tag/Tag.js +0 -15
  192. package/es/components/Text/Text.js +5 -18
  193. package/es/components/Text/TextDirection.js +0 -3
  194. package/es/components/Text/TextDirectionContext.js +0 -1
  195. package/es/components/Text/createTextComponent.js +0 -3
  196. package/es/components/TextArea/TextArea.Skeleton.js +0 -2
  197. package/es/components/TextArea/TextArea.js +11 -33
  198. package/es/components/TextInput/ControlledPasswordInput.js +0 -20
  199. package/es/components/TextInput/PasswordInput.js +0 -25
  200. package/es/components/TextInput/TextInput.Skeleton.js +0 -2
  201. package/es/components/TextInput/TextInput.d.ts +1 -1
  202. package/es/components/TextInput/TextInput.js +5 -33
  203. package/es/components/TextInput/util.js +3 -5
  204. package/es/components/Theme/index.js +1 -6
  205. package/es/components/Tile/Tile.js +32 -59
  206. package/es/components/TileGroup/TileGroup.js +1 -22
  207. package/es/components/TimePicker/TimePicker.js +6 -32
  208. package/es/components/TimePickerSelect/TimePickerSelect.js +2 -5
  209. package/es/components/Toggle/Toggle.Skeleton.js +0 -8
  210. package/es/components/Toggle/Toggle.js +0 -16
  211. package/es/components/ToggleSmall/ToggleSmall.Skeleton.js +0 -7
  212. package/es/components/Toggletip/index.d.ts +148 -0
  213. package/es/components/Toggletip/index.js +20 -44
  214. package/es/components/Tooltip/DefinitionTooltip.js +0 -11
  215. package/es/components/Tooltip/Tooltip.d.ts +1 -1
  216. package/es/components/Tooltip/Tooltip.js +4 -21
  217. package/es/components/TreeView/TreeNode.js +21 -66
  218. package/es/components/TreeView/TreeView.js +11 -67
  219. package/es/components/UIShell/Content.js +2 -4
  220. package/es/components/UIShell/Header.js +0 -2
  221. package/es/components/UIShell/HeaderContainer.d.ts +33 -0
  222. package/es/components/UIShell/HeaderContainer.js +13 -11
  223. package/es/components/UIShell/HeaderGlobalAction.js +0 -6
  224. package/es/components/UIShell/HeaderGlobalBar.js +0 -1
  225. package/es/components/UIShell/HeaderMenu.js +32 -31
  226. package/es/components/UIShell/HeaderMenuButton.js +2 -4
  227. package/es/components/UIShell/HeaderMenuItem.js +0 -8
  228. package/es/components/UIShell/HeaderName.js +0 -5
  229. package/es/components/UIShell/HeaderNavigation.js +0 -2
  230. package/es/components/UIShell/HeaderPanel.js +0 -2
  231. package/es/components/UIShell/HeaderSideNavItems.js +0 -2
  232. package/es/components/UIShell/Link.js +2 -3
  233. package/es/components/UIShell/SideNav.d.ts +3 -1
  234. package/es/components/UIShell/SideNav.js +44 -36
  235. package/es/components/UIShell/SideNavDetails.js +0 -3
  236. package/es/components/UIShell/SideNavDivider.js +0 -1
  237. package/es/components/UIShell/SideNavFooter.js +1 -4
  238. package/es/components/UIShell/SideNavHeader.js +0 -4
  239. package/es/components/UIShell/SideNavIcon.js +0 -3
  240. package/es/components/UIShell/SideNavItem.js +0 -3
  241. package/es/components/UIShell/SideNavItems.js +2 -6
  242. package/es/components/UIShell/SideNavLink.js +3 -7
  243. package/es/components/UIShell/SideNavLinkText.js +0 -2
  244. package/es/components/UIShell/SideNavMenu.js +0 -16
  245. package/es/components/UIShell/SideNavMenuItem.js +0 -2
  246. package/es/components/UIShell/SideNavSwitcher.js +2 -5
  247. package/es/components/UIShell/SkipToContent.d.ts +32 -0
  248. package/es/components/UIShell/SkipToContent.js +8 -15
  249. package/es/components/UIShell/Switcher.js +0 -2
  250. package/es/components/UIShell/SwitcherDivider.js +0 -1
  251. package/es/components/UIShell/SwitcherItem.js +0 -3
  252. package/es/components/UnorderedList/UnorderedList.d.ts +34 -0
  253. package/es/components/UnorderedList/UnorderedList.js +6 -16
  254. package/es/components/UnorderedList/index.d.ts +7 -0
  255. package/es/index.js +7 -8
  256. package/es/internal/ClickListener.js +3 -13
  257. package/es/internal/FloatingMenu.js +57 -63
  258. package/es/internal/OptimizedResize.js +6 -12
  259. package/es/internal/Selection.js +2 -25
  260. package/es/internal/createClassWrapper.js +0 -2
  261. package/es/internal/deprecateFieldOnObject.js +0 -4
  262. package/es/internal/focus/index.js +0 -1
  263. package/es/internal/keyboard/keys.js +2 -1
  264. package/es/internal/keyboard/match.js +1 -6
  265. package/es/internal/keyboard/navigation.js +8 -7
  266. package/es/internal/useAnnouncer.js +0 -1
  267. package/es/internal/useAttachedMenu.js +1 -9
  268. package/es/internal/useControllableState.js +6 -13
  269. package/es/internal/useDelayedState.js +2 -4
  270. package/es/internal/useEffectOnce.js +0 -1
  271. package/es/internal/useEvent.js +61 -3
  272. package/es/internal/useId.js +2 -5
  273. package/es/internal/useIsomorphicEffect.js +1 -0
  274. package/es/internal/useMergedRefs.js +2 -2
  275. package/es/internal/useNoInteractiveChildren.js +2 -13
  276. package/es/internal/useNormalizedInputProps.js +0 -3
  277. package/es/internal/useSavedCallback.js +0 -1
  278. package/es/internal/warning.js +0 -3
  279. package/es/internal/wrapFocus.js +1 -8
  280. package/es/prop-types/deprecate.js +2 -5
  281. package/es/prop-types/isRequiredOneOf.js +2 -5
  282. package/es/prop-types/requiredIfGivenPropIsTruthy.js +0 -2
  283. package/es/tools/array.js +0 -3
  284. package/es/tools/events.js +0 -3
  285. package/es/tools/mergeRefs.js +0 -2
  286. package/es/tools/wrapComponent.js +2 -5
  287. package/lib/_virtual/_rollupPluginBabelHelpers.js +17 -4
  288. package/lib/components/Accordion/Accordion.Skeleton.js +0 -7
  289. package/lib/components/Accordion/Accordion.js +1 -27
  290. package/lib/components/Accordion/AccordionItem.js +5 -19
  291. package/lib/components/AspectRatio/AspectRatio.js +0 -5
  292. package/lib/components/Breadcrumb/Breadcrumb.Skeleton.js +0 -3
  293. package/lib/components/Breadcrumb/Breadcrumb.js +0 -3
  294. package/lib/components/Breadcrumb/BreadcrumbItem.js +0 -7
  295. package/lib/components/Button/Button.Skeleton.js +2 -26
  296. package/lib/components/Button/Button.js +2 -36
  297. package/lib/components/ButtonSet/ButtonSet.js +0 -2
  298. package/lib/components/Checkbox/Checkbox.Skeleton.js +0 -1
  299. package/lib/components/Checkbox/Checkbox.js +4 -20
  300. package/lib/components/CheckboxGroup/CheckboxGroup.js +0 -11
  301. package/lib/components/ClassPrefix/index.d.ts +26 -0
  302. package/lib/components/ClassPrefix/index.js +0 -2
  303. package/lib/components/CodeSnippet/CodeSnippet.Skeleton.js +0 -5
  304. package/lib/components/CodeSnippet/CodeSnippet.js +6 -45
  305. package/lib/components/ComboBox/ComboBox.js +19 -86
  306. package/lib/components/ComboBox/tools/filter.js +0 -1
  307. package/lib/components/ComboButton/index.js +0 -14
  308. package/lib/components/ComposedModal/ComposedModal.js +2 -32
  309. package/lib/components/ComposedModal/ModalFooter.js +0 -21
  310. package/lib/components/ComposedModal/ModalHeader.js +0 -12
  311. package/lib/components/ContainedList/ContainedList.js +5 -32
  312. package/lib/components/ContainedList/ContainedListItem/ContainedListItem.js +0 -6
  313. package/lib/components/ContentSwitcher/ContentSwitcher.js +11 -23
  314. package/lib/components/ContextMenu/useContextMenu.js +1 -6
  315. package/lib/components/Copy/Copy.js +8 -50
  316. package/lib/components/CopyButton/CopyButton.js +0 -4
  317. package/lib/components/DangerButton/DangerButton.js +0 -1
  318. package/lib/components/DataTable/DataTable.js +171 -91
  319. package/lib/components/DataTable/Table.js +0 -6
  320. package/lib/components/DataTable/TableBatchAction.js +0 -4
  321. package/lib/components/DataTable/TableBatchActions.js +0 -8
  322. package/lib/components/DataTable/TableBody.js +0 -1
  323. package/lib/components/DataTable/TableContainer.js +0 -5
  324. package/lib/components/DataTable/TableExpandHeader.js +0 -7
  325. package/lib/components/DataTable/TableExpandRow.js +0 -6
  326. package/lib/components/DataTable/TableExpandedRow.js +0 -6
  327. package/lib/components/DataTable/TableHeader.d.ts +1 -1
  328. package/lib/components/DataTable/TableHeader.js +3 -19
  329. package/lib/components/DataTable/TableRow.js +4 -5
  330. package/lib/components/DataTable/TableSelectAll.js +0 -8
  331. package/lib/components/DataTable/TableSelectRow.js +2 -10
  332. package/lib/components/DataTable/TableToolbar.js +0 -3
  333. package/lib/components/DataTable/TableToolbarMenu.d.ts +1 -1
  334. package/lib/components/DataTable/TableToolbarMenu.js +3 -6
  335. package/lib/components/DataTable/TableToolbarSearch.js +2 -30
  336. package/lib/components/DataTable/state/getDerivedStateFromProps.js +0 -4
  337. package/lib/components/DataTable/state/sorting.js +5 -8
  338. package/lib/components/DataTable/tools/denormalize.js +2 -2
  339. package/lib/components/DataTable/tools/filter.js +0 -2
  340. package/lib/components/DataTable/tools/instanceId.js +0 -1
  341. package/lib/components/DataTable/tools/normalize.js +10 -10
  342. package/lib/components/DataTable/tools/sorting.js +5 -13
  343. package/lib/components/DataTableSkeleton/DataTableSkeleton.js +5 -20
  344. package/lib/components/DatePicker/DatePicker.Skeleton.js +0 -6
  345. package/lib/components/DatePicker/DatePicker.js +153 -175
  346. package/lib/components/DatePicker/plugins/appendToPlugin.js +3 -7
  347. package/lib/components/DatePicker/plugins/fixEventsPlugin.js +14 -25
  348. package/lib/components/DatePicker/plugins/rangePlugin.js +2 -7
  349. package/lib/components/DatePickerInput/DatePickerInput.js +2 -28
  350. package/lib/components/Dropdown/Dropdown.Skeleton.js +0 -2
  351. package/lib/components/Dropdown/Dropdown.js +50 -59
  352. package/lib/components/ErrorBoundary/ErrorBoundary.js +0 -10
  353. package/lib/components/ErrorBoundary/ErrorBoundaryContext.js +0 -1
  354. package/lib/components/ExpandableSearch/ExpandableSearch.js +1 -10
  355. package/lib/components/FeatureFlags/index.js +8 -20
  356. package/lib/components/FileUploader/FileUploader.Skeleton.js +0 -2
  357. package/lib/components/FileUploader/FileUploader.js +3 -57
  358. package/lib/components/FileUploader/FileUploaderButton.js +3 -43
  359. package/lib/components/FileUploader/FileUploaderDropContainer.js +1 -28
  360. package/lib/components/FileUploader/FileUploaderItem.js +5 -31
  361. package/lib/components/FileUploader/Filename.js +6 -10
  362. package/lib/components/FluidComboBox/FluidComboBox.Skeleton.js +0 -1
  363. package/lib/components/FluidComboBox/FluidComboBox.js +0 -18
  364. package/lib/components/FluidDatePicker/FluidDatePicker.Skeleton.js +0 -2
  365. package/lib/components/FluidDatePicker/FluidDatePicker.js +0 -6
  366. package/lib/components/FluidDatePickerInput/FluidDatePickerInput.js +2 -1
  367. package/lib/components/FluidDropdown/FluidDropdown.Skeleton.js +0 -1
  368. package/lib/components/FluidDropdown/FluidDropdown.js +0 -18
  369. package/lib/components/FluidForm/FluidForm.js +0 -2
  370. package/lib/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +0 -1
  371. package/lib/components/FluidMultiSelect/FluidMultiSelect.js +0 -19
  372. package/lib/components/FluidSelect/FluidSelect.Skeleton.js +0 -1
  373. package/lib/components/FluidSelect/FluidSelect.js +0 -10
  374. package/lib/components/FluidTextArea/FluidTextArea.Skeleton.js +0 -1
  375. package/lib/components/FluidTextArea/FluidTextArea.js +0 -20
  376. package/lib/components/FluidTextInput/FluidTextInput.Skeleton.js +0 -1
  377. package/lib/components/FluidTextInput/FluidTextInput.js +0 -14
  378. package/lib/components/FluidTimePicker/FluidTimePicker.Skeleton.js +0 -3
  379. package/lib/components/FluidTimePicker/FluidTimePicker.js +1 -11
  380. package/lib/components/FluidTimePickerSelect/FluidTimePickerSelect.js +0 -6
  381. package/lib/components/Form/Form.d.ts +23 -0
  382. package/lib/components/Form/Form.js +3 -6
  383. package/lib/components/Form/index.d.ts +7 -0
  384. package/lib/components/FormGroup/FormGroup.js +0 -7
  385. package/lib/components/FormItem/FormItem.js +0 -2
  386. package/lib/components/FormLabel/FormLabel.js +1 -26
  387. package/lib/components/Grid/CSSGrid.js +2 -15
  388. package/lib/components/Grid/Column.js +18 -59
  389. package/lib/components/Grid/ColumnHang.js +2 -5
  390. package/lib/components/Grid/FlexGrid.js +2 -8
  391. package/lib/components/Grid/Grid.js +0 -8
  392. package/lib/components/Grid/GridContext.js +1 -3
  393. package/lib/components/Grid/Row.js +2 -7
  394. package/lib/components/Heading/index.js +0 -4
  395. package/lib/components/Icon/Icon.Skeleton.js +2 -2
  396. package/lib/components/IconButton/index.js +0 -10
  397. package/lib/components/IdPrefix/index.js +0 -2
  398. package/lib/components/InlineCheckbox/InlineCheckbox.js +0 -14
  399. package/lib/components/InlineLoading/InlineLoading.js +0 -12
  400. package/lib/components/Layer/index.js +3 -6
  401. package/lib/components/Layout/LayoutDirection.js +0 -3
  402. package/lib/components/Layout/useLayoutDirection.js +0 -1
  403. package/lib/components/Link/Link.js +3 -10
  404. package/lib/components/ListBox/ListBox.js +2 -13
  405. package/lib/components/ListBox/ListBoxField.js +0 -5
  406. package/lib/components/ListBox/ListBoxMenuIcon.js +0 -4
  407. package/lib/components/ListBox/ListBoxMenuItem.js +2 -6
  408. package/lib/components/ListBox/ListBoxPropTypes.d.ts +2 -2
  409. package/lib/components/ListBox/ListBoxSelection.js +1 -13
  410. package/lib/components/ListBox/next/ListBoxSelection.js +1 -14
  411. package/lib/components/ListBox/next/ListBoxTrigger.js +1 -3
  412. package/lib/components/ListItem/ListItem.d.ts +23 -0
  413. package/lib/components/ListItem/ListItem.js +4 -8
  414. package/lib/components/ListItem/index.d.ts +7 -0
  415. package/lib/components/Loading/Loading.js +0 -6
  416. package/lib/components/Menu/Menu.js +22 -40
  417. package/lib/components/Menu/MenuContext.js +4 -5
  418. package/lib/components/Menu/MenuItem.js +5 -39
  419. package/lib/components/MenuButton/index.js +0 -9
  420. package/lib/components/Modal/Modal.js +1 -46
  421. package/lib/components/ModalWrapper/ModalWrapper.js +2 -15
  422. package/lib/components/MultiSelect/FilterableMultiSelect.js +8 -66
  423. package/lib/components/MultiSelect/MultiSelect.js +30 -78
  424. package/lib/components/MultiSelect/MultiSelectPropTypes.js +0 -1
  425. package/lib/components/MultiSelect/index.js +0 -1
  426. package/lib/components/MultiSelect/tools/itemToString.js +0 -2
  427. package/lib/components/MultiSelect/tools/sorting.js +3 -4
  428. package/lib/components/Notification/Notification.js +0 -78
  429. package/lib/components/NumberInput/NumberInput.Skeleton.js +0 -2
  430. package/lib/components/NumberInput/NumberInput.js +3 -60
  431. package/lib/components/OrderedList/OrderedList.d.ts +39 -0
  432. package/lib/components/OrderedList/OrderedList.js +7 -19
  433. package/lib/components/OrderedList/index.d.ts +7 -0
  434. package/lib/components/OverflowMenu/OverflowMenu.js +65 -86
  435. package/lib/components/OverflowMenuItem/OverflowMenuItem.js +6 -23
  436. package/lib/components/OverflowMenuV2/index.js +0 -5
  437. package/lib/components/Pagination/Pagination.Skeleton.js +0 -2
  438. package/lib/components/Pagination/Pagination.js +11 -47
  439. package/lib/components/Pagination/experimental/PageSelector.js +0 -10
  440. package/lib/components/Pagination/experimental/Pagination.js +2 -67
  441. package/lib/components/PaginationNav/PaginationNav.js +15 -78
  442. package/lib/components/Popover/index.d.ts +14 -8
  443. package/lib/components/Popover/index.js +44 -48
  444. package/lib/components/PrimaryButton/PrimaryButton.js +0 -1
  445. package/lib/components/ProgressBar/ProgressBar.js +0 -15
  446. package/lib/components/ProgressIndicator/ProgressIndicator.Skeleton.js +0 -4
  447. package/lib/components/ProgressIndicator/ProgressIndicator.js +2 -40
  448. package/lib/components/RadioButton/RadioButton.Skeleton.js +0 -1
  449. package/lib/components/RadioButton/RadioButton.js +0 -13
  450. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +3 -23
  451. package/lib/components/RadioTile/RadioTile.js +0 -12
  452. package/lib/components/Search/Search.Skeleton.js +0 -2
  453. package/lib/components/Search/Search.js +1 -28
  454. package/lib/components/SecondaryButton/SecondaryButton.js +0 -1
  455. package/lib/components/Select/Select.Skeleton.js +0 -2
  456. package/lib/components/Select/Select.d.ts +1 -1
  457. package/lib/components/Select/Select.js +6 -33
  458. package/lib/components/SelectItem/SelectItem.js +0 -5
  459. package/lib/components/SelectItemGroup/SelectItemGroup.d.ts +0 -1
  460. package/lib/components/SelectItemGroup/SelectItemGroup.js +1 -26
  461. package/lib/components/SkeletonIcon/SkeletonIcon.js +0 -2
  462. package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.js +0 -1
  463. package/lib/components/SkeletonText/SkeletonText.js +0 -12
  464. package/lib/components/Slider/Slider.Skeleton.js +0 -2
  465. package/lib/components/Slider/Slider.d.ts +0 -1
  466. package/lib/components/Slider/Slider.js +112 -154
  467. package/lib/components/Stack/Stack.js +1 -8
  468. package/lib/components/StructuredList/StructuredList.Skeleton.js +0 -5
  469. package/lib/components/StructuredList/StructuredList.js +1 -25
  470. package/lib/components/Switch/IconSwitch.js +0 -18
  471. package/lib/components/Switch/Switch.js +0 -11
  472. package/lib/components/TabContent/TabContent.js +2 -6
  473. package/lib/components/Tabs/Tabs.Skeleton.js +0 -4
  474. package/lib/components/Tabs/Tabs.js +133 -102
  475. package/lib/components/Tabs/usePressable.js +18 -31
  476. package/lib/components/Tag/Tag.Skeleton.js +0 -2
  477. package/lib/components/Tag/Tag.js +0 -15
  478. package/lib/components/Text/Text.js +5 -18
  479. package/lib/components/Text/TextDirection.js +0 -3
  480. package/lib/components/Text/TextDirectionContext.js +0 -1
  481. package/lib/components/Text/createTextComponent.js +0 -3
  482. package/lib/components/TextArea/TextArea.Skeleton.js +0 -2
  483. package/lib/components/TextArea/TextArea.js +10 -32
  484. package/lib/components/TextInput/ControlledPasswordInput.js +0 -20
  485. package/lib/components/TextInput/PasswordInput.js +0 -25
  486. package/lib/components/TextInput/TextInput.Skeleton.js +0 -2
  487. package/lib/components/TextInput/TextInput.d.ts +1 -1
  488. package/lib/components/TextInput/TextInput.js +5 -52
  489. package/lib/components/TextInput/util.js +3 -5
  490. package/lib/components/Theme/index.js +1 -6
  491. package/lib/components/Tile/Tile.js +31 -58
  492. package/lib/components/TileGroup/TileGroup.js +1 -22
  493. package/lib/components/TimePicker/TimePicker.js +6 -32
  494. package/lib/components/TimePickerSelect/TimePickerSelect.js +2 -5
  495. package/lib/components/Toggle/Toggle.Skeleton.js +0 -8
  496. package/lib/components/Toggle/Toggle.js +0 -16
  497. package/lib/components/ToggleSmall/ToggleSmall.Skeleton.js +0 -7
  498. package/lib/components/Toggletip/index.d.ts +148 -0
  499. package/lib/components/Toggletip/index.js +20 -44
  500. package/lib/components/Tooltip/DefinitionTooltip.js +0 -11
  501. package/lib/components/Tooltip/Tooltip.d.ts +1 -1
  502. package/lib/components/Tooltip/Tooltip.js +4 -21
  503. package/lib/components/TreeView/TreeNode.js +21 -66
  504. package/lib/components/TreeView/TreeView.js +11 -67
  505. package/lib/components/UIShell/Content.js +2 -4
  506. package/lib/components/UIShell/Header.js +0 -2
  507. package/lib/components/UIShell/HeaderContainer.d.ts +33 -0
  508. package/lib/components/UIShell/HeaderContainer.js +13 -11
  509. package/lib/components/UIShell/HeaderGlobalAction.js +0 -6
  510. package/lib/components/UIShell/HeaderGlobalBar.js +0 -1
  511. package/lib/components/UIShell/HeaderMenu.js +32 -31
  512. package/lib/components/UIShell/HeaderMenuButton.js +2 -4
  513. package/lib/components/UIShell/HeaderMenuItem.js +0 -8
  514. package/lib/components/UIShell/HeaderName.js +0 -5
  515. package/lib/components/UIShell/HeaderNavigation.js +0 -2
  516. package/lib/components/UIShell/HeaderPanel.js +0 -2
  517. package/lib/components/UIShell/HeaderSideNavItems.js +0 -2
  518. package/lib/components/UIShell/Link.js +2 -3
  519. package/lib/components/UIShell/SideNav.d.ts +3 -1
  520. package/lib/components/UIShell/SideNav.js +43 -35
  521. package/lib/components/UIShell/SideNavDetails.js +0 -3
  522. package/lib/components/UIShell/SideNavDivider.js +0 -1
  523. package/lib/components/UIShell/SideNavFooter.js +1 -4
  524. package/lib/components/UIShell/SideNavHeader.js +0 -4
  525. package/lib/components/UIShell/SideNavIcon.js +0 -3
  526. package/lib/components/UIShell/SideNavItem.js +0 -3
  527. package/lib/components/UIShell/SideNavItems.js +2 -6
  528. package/lib/components/UIShell/SideNavLink.js +3 -7
  529. package/lib/components/UIShell/SideNavLinkText.js +0 -2
  530. package/lib/components/UIShell/SideNavMenu.js +0 -16
  531. package/lib/components/UIShell/SideNavMenuItem.js +0 -2
  532. package/lib/components/UIShell/SideNavSwitcher.js +2 -5
  533. package/lib/components/UIShell/SkipToContent.d.ts +32 -0
  534. package/lib/components/UIShell/SkipToContent.js +8 -15
  535. package/lib/components/UIShell/Switcher.js +0 -2
  536. package/lib/components/UIShell/SwitcherDivider.js +0 -1
  537. package/lib/components/UIShell/SwitcherItem.js +0 -3
  538. package/lib/components/UnorderedList/UnorderedList.d.ts +34 -0
  539. package/lib/components/UnorderedList/UnorderedList.js +6 -16
  540. package/lib/components/UnorderedList/index.d.ts +7 -0
  541. package/lib/index.js +42 -43
  542. package/lib/internal/ClickListener.js +3 -13
  543. package/lib/internal/FloatingMenu.js +57 -63
  544. package/lib/internal/OptimizedResize.js +6 -12
  545. package/lib/internal/Selection.js +2 -25
  546. package/lib/internal/createClassWrapper.js +0 -2
  547. package/lib/internal/deprecateFieldOnObject.js +0 -4
  548. package/lib/internal/focus/index.js +0 -1
  549. package/lib/internal/keyboard/keys.js +2 -1
  550. package/lib/internal/keyboard/match.js +1 -6
  551. package/lib/internal/keyboard/navigation.js +8 -7
  552. package/lib/internal/useAnnouncer.js +0 -1
  553. package/lib/internal/useAttachedMenu.js +1 -9
  554. package/lib/internal/useControllableState.js +6 -13
  555. package/lib/internal/useDelayedState.js +2 -4
  556. package/lib/internal/useEffectOnce.js +0 -1
  557. package/lib/internal/useEvent.js +61 -2
  558. package/lib/internal/useId.js +2 -5
  559. package/lib/internal/useIsomorphicEffect.js +1 -0
  560. package/lib/internal/useMergedRefs.js +2 -2
  561. package/lib/internal/useNoInteractiveChildren.js +2 -13
  562. package/lib/internal/useNormalizedInputProps.js +0 -3
  563. package/lib/internal/useSavedCallback.js +0 -1
  564. package/lib/internal/warning.js +0 -3
  565. package/lib/internal/wrapFocus.js +1 -8
  566. package/lib/prop-types/deprecate.js +2 -5
  567. package/lib/prop-types/isRequiredOneOf.js +2 -5
  568. package/lib/prop-types/requiredIfGivenPropIsTruthy.js +0 -2
  569. package/lib/tools/array.js +0 -3
  570. package/lib/tools/events.js +0 -3
  571. package/lib/tools/mergeRefs.js +0 -2
  572. package/lib/tools/wrapComponent.js +2 -5
  573. package/package.json +9 -9
  574. package/es/components/Tab/Tab.js +0 -185
  575. package/es/components/Tab/index.js +0 -14
  576. package/es/components/TimePickerSelect/index.js +0 -13
  577. package/lib/components/Form/index.js +0 -17
  578. package/lib/components/Tab/Tab.js +0 -214
  579. package/lib/components/Tab/index.js +0 -39
  580. package/lib/components/TimePickerSelect/index.js +0 -38
@@ -12,11 +12,13 @@ import PropTypes from 'prop-types';
12
12
  import { AriaLabelPropType } from '../../prop-types/AriaPropTypes.js';
13
13
  import { CARBON_SIDENAV_ITEMS } from './_utils.js';
14
14
  import { usePrefix } from '../../internal/usePrefix.js';
15
+ import { useMergedRefs } from '../../internal/useMergedRefs.js';
16
+ import { useWindowEvent } from '../../internal/useEvent.js';
15
17
  import { match } from '../../internal/keyboard/match.js';
16
- import { Escape } from '../../internal/keyboard/keys.js';
18
+ import { Tab, Escape } from '../../internal/keyboard/keys.js';
17
19
 
20
+ // TO-DO: comment back in when footer is added for rails
18
21
  // import SideNavFooter from './SideNavFooter';
19
-
20
22
  function SideNavRenderFunction(_ref, ref) {
21
23
  let {
22
24
  expanded: expandedProp,
@@ -29,12 +31,14 @@ function SideNavRenderFunction(_ref, ref) {
29
31
  className: customClassName,
30
32
  // TO-DO: comment back in when footer is added for rails
31
33
  // translateById: t = (id) => translations[id],
34
+ href,
32
35
  isFixedNav = false,
33
36
  isRail,
34
37
  isPersistent = true,
35
38
  addFocusListeners = true,
36
39
  addMouseListeners = true,
37
40
  onOverlayClick,
41
+ onSideNavBlur,
38
42
  ...other
39
43
  } = _ref;
40
44
  const prefix = usePrefix();
@@ -44,27 +48,26 @@ function SideNavRenderFunction(_ref, ref) {
44
48
  const [expandedState, setExpandedState] = useState(defaultExpanded);
45
49
  const [expandedViaHoverState, setExpandedViaHoverState] = useState(defaultExpanded);
46
50
  const expanded = controlled ? expandedProp : expandedState;
47
-
51
+ const sideNavRef = useRef(null);
52
+ const navRef = useMergedRefs([sideNavRef, ref]);
48
53
  const handleToggle = function (event) {
49
54
  let value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !expanded;
50
-
51
55
  if (!controlled) {
52
56
  setExpandedState(value);
53
57
  }
54
-
55
58
  if (onToggle) {
56
59
  onToggle(event, value);
57
60
  }
58
-
59
61
  if (controlled || isRail) {
60
62
  setExpandedViaHoverState(value);
61
63
  }
62
64
  };
63
-
64
65
  const accessibilityLabel = {
65
66
  'aria-label': ariaLabel,
66
67
  'aria-labelledby': ariaLabelledBy
67
- }; // TO-DO: comment back in when footer is added for rails
68
+ };
69
+
70
+ // TO-DO: comment back in when footer is added for rails
68
71
  // const assistiveText = expanded
69
72
  // ? t('carbon.sidenav.state.open')
70
73
  // : t('carbon.sidenav.state.closed');
@@ -81,56 +84,61 @@ function SideNavRenderFunction(_ref, ref) {
81
84
  [`${prefix}--side-nav__overlay`]: true,
82
85
  [`${prefix}--side-nav__overlay-active`]: expanded || expandedViaHoverState
83
86
  });
84
- let childrenToRender = children; // if a rail, pass the expansion state as a prop, so children can update themselves to match
87
+ let childrenToRender = children;
85
88
 
89
+ // if a rail, pass the expansion state as a prop, so children can update themselves to match
86
90
  if (isRail) {
87
91
  childrenToRender = React__default.Children.map(children, child => {
88
92
  // if we are controlled, check for if we have hovered over or the expanded state, else just use the expanded state (uncontrolled)
89
93
  const currentExpansionState = controlled ? expandedViaHoverState || expanded : expanded;
90
-
91
94
  if ( /*#__PURE__*/isValidElement(child)) {
92
- var _childJsxElement$type, _childJsxElement$type2;
93
-
94
- const childJsxElement = child; // avoid spreading `isSideNavExpanded` to non-Carbon UI Shell children
95
-
96
- return /*#__PURE__*/React__default.cloneElement(childJsxElement, { ...(CARBON_SIDENAV_ITEMS.includes(((_childJsxElement$type = childJsxElement.type) === null || _childJsxElement$type === void 0 ? void 0 : _childJsxElement$type.displayName) ?? ((_childJsxElement$type2 = childJsxElement.type) === null || _childJsxElement$type2 === void 0 ? void 0 : _childJsxElement$type2.name)) ? {
95
+ const childJsxElement = child;
96
+ // avoid spreading `isSideNavExpanded` to non-Carbon UI Shell children
97
+ return /*#__PURE__*/React__default.cloneElement(childJsxElement, {
98
+ ...(CARBON_SIDENAV_ITEMS.includes(childJsxElement.type?.displayName ?? childJsxElement.type?.name) ? {
97
99
  isSideNavExpanded: currentExpansionState
98
100
  } : {})
99
101
  });
100
102
  }
101
-
102
103
  return child;
103
104
  });
104
105
  }
105
-
106
106
  const eventHandlers = {};
107
-
108
107
  if (addFocusListeners) {
109
108
  eventHandlers.onFocus = event => {
110
109
  if (!event.currentTarget.contains(event.relatedTarget)) {
111
110
  handleToggle(event, true);
112
111
  }
113
112
  };
114
-
115
113
  eventHandlers.onBlur = event => {
116
114
  if (!event.currentTarget.contains(event.relatedTarget)) {
117
115
  handleToggle(event, false);
118
116
  }
117
+ if (!event.currentTarget.contains(event.relatedTarget) && expanded) {
118
+ if (onSideNavBlur) {
119
+ onSideNavBlur();
120
+ }
121
+ }
119
122
  };
120
-
121
123
  eventHandlers.onKeyDown = event => {
122
124
  if (match(event, Escape)) {
123
125
  handleToggle(event, false);
126
+ if (href) {
127
+ window.location.href = href;
128
+ }
124
129
  }
125
130
  };
126
131
  }
127
-
128
132
  if (addMouseListeners && isRail) {
129
133
  eventHandlers.onMouseEnter = () => handleToggle(true, true);
130
-
131
134
  eventHandlers.onMouseLeave = () => handleToggle(false, false);
132
135
  }
133
-
136
+ useWindowEvent('keydown', event => {
137
+ const focusedElement = document.activeElement;
138
+ if (match(event, Tab) && expanded && !isFixedNav && sideNavRef.current && focusedElement?.classList.contains(`${prefix}--header__menu-toggle`) && !focusedElement.closest('nav')) {
139
+ sideNavRef.current.focus();
140
+ }
141
+ });
134
142
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, isFixedNav ? null :
135
143
  /*#__PURE__*/
136
144
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
@@ -138,11 +146,11 @@ function SideNavRenderFunction(_ref, ref) {
138
146
  className: overlayClassName,
139
147
  onClick: onOverlayClick
140
148
  }), /*#__PURE__*/React__default.createElement("nav", _extends({
141
- ref: ref,
149
+ tabIndex: -1,
150
+ ref: navRef,
142
151
  className: `${prefix}--side-nav__navigation ${className}`
143
152
  }, accessibilityLabel, eventHandlers, other), childrenToRender));
144
153
  }
145
-
146
154
  const SideNav = /*#__PURE__*/React__default.forwardRef(SideNavRenderFunction);
147
155
  SideNav.displayName = 'SideNav';
148
156
  SideNav.propTypes = {
@@ -150,60 +158,59 @@ SideNav.propTypes = {
150
158
  * Required props for accessibility label on the underlying menu
151
159
  */
152
160
  ...AriaLabelPropType,
153
-
154
161
  /**
155
162
  * Specify whether focus and blur listeners are added. They are by default.
156
163
  */
157
164
  addFocusListeners: PropTypes.bool,
158
-
159
165
  /**
160
166
  * Specify whether mouse entry/exit listeners are added. They are by default.
161
167
  */
162
168
  addMouseListeners: PropTypes.bool,
163
-
164
169
  /**
165
170
  * Optionally provide a custom class to apply to the underlying `<li>` node
166
171
  */
167
172
  className: PropTypes.string,
168
-
169
173
  /**
170
174
  * If `true`, the SideNav will be open on initial render.
171
175
  */
172
176
  defaultExpanded: PropTypes.bool,
173
-
174
177
  /**
175
178
  * If `true`, the SideNav will be expanded, otherwise it will be collapsed.
176
179
  * Using this prop causes SideNav to become a controled component.
177
180
  */
178
181
  expanded: PropTypes.bool,
179
-
182
+ /**
183
+ * Provide the `href` to the id of the element on your package that is the
184
+ * main content.
185
+ */
186
+ href: PropTypes.string,
180
187
  /**
181
188
  * Optionally provide a custom class to apply to the underlying `<li>` node
182
189
  */
183
190
  isChildOfHeader: PropTypes.bool,
184
-
185
191
  /**
186
192
  * Specify if sideNav is standalone
187
193
  */
188
194
  isFixedNav: PropTypes.bool,
189
-
190
195
  /**
191
196
  * Specify if the sideNav will be persistent above the lg breakpoint
192
197
  */
193
198
  isPersistent: PropTypes.bool,
194
-
195
199
  /**
196
200
  * Optional prop to display the side nav rail.
197
201
  */
198
202
  isRail: PropTypes.bool,
199
-
200
203
  /**
201
204
  * An optional listener that is called when the SideNav overlay is clicked
202
205
  *
203
206
  * @param {object} event
204
207
  */
205
208
  onOverlayClick: PropTypes.func,
209
+ /**
210
+ * An optional listener that is called a callback to collapse the SideNav
211
+ */
206
212
 
213
+ onSideNavBlur: PropTypes.func,
207
214
  /**
208
215
  * An optional listener that is called when an event that would cause
209
216
  * toggling the SideNav occurs.
@@ -212,6 +219,7 @@ SideNav.propTypes = {
212
219
  * @param {boolean} value
213
220
  */
214
221
  onToggle: PropTypes.func
222
+
215
223
  /**
216
224
  * Provide a custom function for translating all message ids within this
217
225
  * component. This function will take in two arguments: the mesasge Id and the
@@ -219,8 +227,8 @@ SideNav.propTypes = {
219
227
  * the label you want displayed or read by screen readers.
220
228
  */
221
229
  // translateById: PropTypes.func,
222
-
223
230
  };
231
+
224
232
  var SideNav$1 = SideNav;
225
233
 
226
234
  export { SideNav$1 as default };
@@ -27,19 +27,16 @@ const SideNavDetails = _ref => {
27
27
  title: title
28
28
  }, title), children);
29
29
  };
30
-
31
30
  SideNavDetails.propTypes = {
32
31
  /**
33
32
  * Provide optional children to render in `SideNavDetails`. Useful for
34
33
  * rendering the `SideNavSwitcher` component.
35
34
  */
36
35
  children: PropTypes.node,
37
-
38
36
  /**
39
37
  * Optionally provide a custom class to apply to the underlying `<li>` node
40
38
  */
41
39
  className: PropTypes.string,
42
-
43
40
  /**
44
41
  * Provide the text that will be rendered as the title in the component
45
42
  */
@@ -21,7 +21,6 @@ function SideNavDivider(_ref) {
21
21
  className: classNames
22
22
  });
23
23
  }
24
-
25
24
  SideNavDivider.propTypes = {
26
25
  /**
27
26
  * Provide an optional class to be applied to the containing node
@@ -12,12 +12,12 @@ import PropTypes from 'prop-types';
12
12
  import { usePrefix } from '../../internal/usePrefix.js';
13
13
 
14
14
  var _Close, _ChevronRight;
15
+
15
16
  /**
16
17
  * SideNavFooter is used for rendering the button at the bottom of the side
17
18
  * navigation that is a part of the UI Shell. It is responsible for handling the
18
19
  * user interaction to expand or collapse the side navigation.
19
20
  */
20
-
21
21
  function SideNavFooter(_ref) {
22
22
  let {
23
23
  assistiveText,
@@ -44,7 +44,6 @@ function SideNavFooter(_ref) {
44
44
  className: `${prefix}--assistive-text`
45
45
  }, assistiveText)));
46
46
  }
47
-
48
47
  SideNavFooter.displayName = 'SideNavFooter';
49
48
  SideNavFooter.propTypes = {
50
49
  /**
@@ -53,12 +52,10 @@ SideNavFooter.propTypes = {
53
52
  */
54
53
  assistiveText: PropTypes.string.isRequired,
55
54
  className: PropTypes.string,
56
-
57
55
  /**
58
56
  * Specify whether the side navigation is expanded or collapsed
59
57
  */
60
58
  expanded: PropTypes.bool.isRequired,
61
-
62
59
  /**
63
60
  * Provide a function that is called when the toggle button is interacted
64
61
  * with. Useful for controlling the expansion state of the side navigation.
@@ -23,25 +23,21 @@ const SideNavHeader = _ref => {
23
23
  className: className
24
24
  }, /*#__PURE__*/React__default.createElement(SideNavIcon, null, /*#__PURE__*/React__default.createElement(IconElement, null)), children);
25
25
  };
26
-
27
26
  SideNavHeader.displayName = 'SideNavHeader';
28
27
  SideNavHeader.propTypes = {
29
28
  /**
30
29
  * The child nodes to be rendered
31
30
  */
32
31
  children: PropTypes.node,
33
-
34
32
  /**
35
33
  * Provide an optional class to be applied to the containing node
36
34
  */
37
35
  className: PropTypes.string,
38
-
39
36
  /**
40
37
  * Property to indicate if the side nav container is open (or not). Use to
41
38
  * keep local state and styling in step with the SideNav expansion state.
42
39
  */
43
40
  isSideNavExpanded: PropTypes.bool,
44
-
45
41
  /**
46
42
  * Provide an icon to render in the header of the side navigation. Should be
47
43
  * a React class.
@@ -26,19 +26,16 @@ function SideNavIcon(_ref) {
26
26
  className: className
27
27
  }, children);
28
28
  }
29
-
30
29
  SideNavIcon.propTypes = {
31
30
  /**
32
31
  * Provide a single icon as the child to `SideNavIcon` to render in the
33
32
  * container
34
33
  */
35
34
  children: PropTypes.node.isRequired,
36
-
37
35
  /**
38
36
  * Provide an optional class to be applied to the containing node
39
37
  */
40
38
  className: PropTypes.string,
41
-
42
39
  /**
43
40
  * Specify whether the icon should be placed in a smaller bounding box
44
41
  */
@@ -26,19 +26,16 @@ function SideNavItem(_ref) {
26
26
  className: className
27
27
  }, children);
28
28
  }
29
-
30
29
  SideNavItem.propTypes = {
31
30
  /**
32
31
  * Provide a single icon as the child to `SideNavItem` to render in the
33
32
  * container
34
33
  */
35
34
  children: PropTypes.node.isRequired,
36
-
37
35
  /**
38
36
  * Provide an optional class to be applied to the containing node
39
37
  */
40
38
  className: PropTypes.string,
41
-
42
39
  /**
43
40
  * Specify if this is a large variation of the SideNavItem
44
41
  */
@@ -21,10 +21,9 @@ const SideNavItems = _ref => {
21
21
  const className = cx([`${prefix}--side-nav__items`], customClassName);
22
22
  const childrenWithExpandedState = React__default.Children.map(children, child => {
23
23
  if ( /*#__PURE__*/React__default.isValidElement(child)) {
24
- var _child$type;
25
-
26
24
  // avoid spreading `isSideNavExpanded` to non-Carbon UI Shell children
27
- return /*#__PURE__*/React__default.cloneElement(child, { ...(CARBON_SIDENAV_ITEMS.includes((_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.displayName) ? {
25
+ return /*#__PURE__*/React__default.cloneElement(child, {
26
+ ...(CARBON_SIDENAV_ITEMS.includes(child.type?.displayName) ? {
28
27
  isSideNavExpanded
29
28
  } : {})
30
29
  });
@@ -34,7 +33,6 @@ const SideNavItems = _ref => {
34
33
  className: className
35
34
  }, childrenWithExpandedState);
36
35
  };
37
-
38
36
  SideNavItems.displayName = 'SideNavItems';
39
37
  SideNavItems.propTypes = {
40
38
  /**
@@ -42,12 +40,10 @@ SideNavItems.propTypes = {
42
40
  * container
43
41
  */
44
42
  children: PropTypes.node.isRequired,
45
-
46
43
  /**
47
44
  * Provide an optional class to be applied to the containing node
48
45
  */
49
46
  className: PropTypes.string,
50
-
51
47
  /**
52
48
  * Property to indicate if the side nav container is open (or not). Use to
53
49
  * keep local state and styling in step with the SideNav expansion state.
@@ -40,33 +40,29 @@ const SideNavLink = /*#__PURE__*/React__default.forwardRef(function SideNavLink(
40
40
  }, /*#__PURE__*/React__default.createElement(IconElement, null)), /*#__PURE__*/React__default.createElement(SideNavLinkText, null, children)));
41
41
  });
42
42
  SideNavLink.displayName = 'SideNavLink';
43
- SideNavLink.propTypes = { ...LinkPropTypes,
44
-
43
+ SideNavLink.propTypes = {
44
+ ...LinkPropTypes,
45
45
  /**
46
46
  * Specify the text content for the link
47
47
  */
48
48
  children: PropTypes.node.isRequired,
49
-
50
49
  /**
51
50
  * Provide an optional class to be applied to the containing node
52
51
  */
53
52
  className: PropTypes.string,
54
-
55
53
  /**
56
54
  * Specify whether the link is the current page
57
55
  */
58
56
  isActive: PropTypes.bool,
59
-
60
57
  /**
61
58
  * Specify if this is a large variation of the SideNavLink
62
59
  */
63
60
  large: PropTypes.bool,
64
-
65
61
  /**
66
62
  * Provide an icon to render in the side navigation link. Should be a React class.
67
63
  */
68
64
  renderIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
69
- }; // eslint-disable-next-line react/display-name
65
+ };
70
66
  var SideNavLink$1 = SideNavLink;
71
67
 
72
68
  export { SideNavLink$1 as default };
@@ -23,13 +23,11 @@ function SideNavLinkText(_ref) {
23
23
  className: className
24
24
  }), children);
25
25
  }
26
-
27
26
  SideNavLinkText.propTypes = {
28
27
  /**
29
28
  * Provide the content for the link text
30
29
  */
31
30
  children: PropTypes.node.isRequired,
32
-
33
31
  /**
34
32
  * Provide an optional class to be applied to the containing node
35
33
  */
@@ -36,7 +36,6 @@ const SideNavMenu = /*#__PURE__*/React__default.forwardRef(function SideNavMenu(
36
36
  [`${prefix}--side-nav__item--large`]: large,
37
37
  [customClassName]: !!customClassName
38
38
  });
39
-
40
39
  if (isSideNavExpanded === false && isExpanded === true) {
41
40
  setIsExpanded(false);
42
41
  setPrevExpanded(true);
@@ -44,7 +43,6 @@ const SideNavMenu = /*#__PURE__*/React__default.forwardRef(function SideNavMenu(
44
43
  setIsExpanded(true);
45
44
  setPrevExpanded(false);
46
45
  }
47
-
48
46
  return (
49
47
  /*#__PURE__*/
50
48
  // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
@@ -82,47 +80,39 @@ SideNavMenu.propTypes = {
82
80
  * Provide <SideNavMenuItem>'s inside of the `SideNavMenu`
83
81
  */
84
82
  children: PropTypes.node,
85
-
86
83
  /**
87
84
  * Provide an optional class to be applied to the containing node
88
85
  */
89
86
  className: PropTypes.string,
90
-
91
87
  /**
92
88
  * Specify whether the menu should default to expanded. By default, it will
93
89
  * be closed.
94
90
  */
95
91
  defaultExpanded: PropTypes.bool,
96
-
97
92
  /**
98
93
  * Specify whether the `SideNavMenu` is "active". `SideNavMenu` should be
99
94
  * considered active if one of its menu items are a link for the current
100
95
  * page.
101
96
  */
102
97
  isActive: PropTypes.bool,
103
-
104
98
  /**
105
99
  * Property to indicate if the side nav container is open (or not). Use to
106
100
  * keep local state and styling in step with the SideNav expansion state.
107
101
  */
108
102
  isSideNavExpanded: PropTypes.bool,
109
-
110
103
  /**
111
104
  * Specify if this is a large variation of the SideNavMenu
112
105
  */
113
106
  large: PropTypes.bool,
114
-
115
107
  /**
116
108
  * Pass in a custom icon to render next to the `SideNavMenu` title
117
109
  */
118
110
  renderIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
119
-
120
111
  /**
121
112
  * Provide the text for the overall menu name
122
113
  */
123
114
  title: PropTypes.string.isRequired
124
115
  };
125
-
126
116
  function hasActiveChild(children) {
127
117
  // if we have children, either a single or multiple, find if it is active
128
118
  if (Array.isArray(children)) {
@@ -130,28 +120,22 @@ function hasActiveChild(children) {
130
120
  if (!child.props) {
131
121
  return false;
132
122
  }
133
-
134
123
  if (child.props.isActive === true) {
135
124
  return true;
136
125
  }
137
-
138
126
  if (child.props['aria-current']) {
139
127
  return true;
140
128
  }
141
-
142
129
  return false;
143
130
  });
144
131
  }
145
-
146
132
  if (children.props) {
147
133
  if (children.props.isActive === true || children.props['aria-current']) {
148
134
  return true;
149
135
  }
150
136
  }
151
-
152
137
  return false;
153
138
  }
154
-
155
139
  var SideNavMenu$1 = SideNavMenu;
156
140
 
157
141
  export { SideNavMenu, SideNavMenu$1 as default };
@@ -39,12 +39,10 @@ SideNavMenuItem.propTypes = {
39
39
  * Specify the children to be rendered inside of the `SideNavMenuItem`
40
40
  */
41
41
  children: PropTypes.node,
42
-
43
42
  /**
44
43
  * Provide an optional class to be applied to the containing node
45
44
  */
46
45
  className: PropTypes.string,
47
-
48
46
  /**
49
47
  * Optionally specify whether the link is "active". An active link is one that
50
48
  * has an href that is the same as the current page. Can also pass in
@@ -22,8 +22,8 @@ const SideNavSwitcher = /*#__PURE__*/React__default.forwardRef(function SideNavS
22
22
  onChange,
23
23
  options
24
24
  } = props;
25
- const className = cx(`${prefix}--side-nav__switcher`, customClassName); // Note for usage around `onBlur`: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-onchange.md
26
-
25
+ const className = cx(`${prefix}--side-nav__switcher`, customClassName);
26
+ // Note for usage around `onBlur`: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-onchange.md
27
27
  return /*#__PURE__*/React__default.createElement("div", {
28
28
  className: className
29
29
  }, /*#__PURE__*/React__default.createElement("label", {
@@ -57,19 +57,16 @@ SideNavSwitcher.propTypes = {
57
57
  * Provide an optional class to be applied to the containing node
58
58
  */
59
59
  className: PropTypes.string,
60
-
61
60
  /**
62
61
  * Provide the label for the switcher. This will be the first visible option
63
62
  * when someone views this control
64
63
  */
65
64
  labelText: PropTypes.string.isRequired,
66
-
67
65
  /**
68
66
  * Provide a callback function that is called whenever the switcher value is
69
67
  * updated
70
68
  */
71
69
  onChange: PropTypes.func,
72
-
73
70
  /**
74
71
  * Provide an array of options to be rendered in the switcher as an
75
72
  * `<option>`. The text value will be what is displayed to the user and is set
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { ComponentProps } from 'react';
8
+ import PropTypes from 'prop-types';
9
+ type SkipToContentProps = Omit<ComponentProps<'a'>, 'children'> & {
10
+ children?: string | undefined;
11
+ };
12
+ declare function SkipToContent({ children, className: customClassName, href, tabIndex, ...rest }: SkipToContentProps): JSX.Element;
13
+ declare namespace SkipToContent {
14
+ var propTypes: {
15
+ /**
16
+ * A ReactNode to display in the SkipToContent `a` tag.
17
+ * `'Skip to main content'` by default.
18
+ */
19
+ children: PropTypes.Requireable<string>;
20
+ className: PropTypes.Requireable<string>;
21
+ /**
22
+ * Provide the `href` to the id of the element on your package that is the
23
+ * main content. `#main-content` by default.
24
+ */
25
+ href: PropTypes.Requireable<string>;
26
+ /**
27
+ * Optionally override the default tabindex of 0
28
+ */
29
+ tabIndex: PropTypes.Requireable<string>;
30
+ };
31
+ }
32
+ export default SkipToContent;
@@ -13,10 +13,10 @@ import { usePrefix } from '../../internal/usePrefix.js';
13
13
 
14
14
  function SkipToContent(_ref) {
15
15
  let {
16
- children,
16
+ children = 'Skip to main content',
17
17
  className: customClassName,
18
- href,
19
- tabIndex,
18
+ href = '#main-content',
19
+ tabIndex = 0,
20
20
  ...rest
21
21
  } = _ref;
22
22
  const prefix = usePrefix();
@@ -27,29 +27,22 @@ function SkipToContent(_ref) {
27
27
  tabIndex: tabIndex
28
28
  }), children);
29
29
  }
30
-
31
30
  SkipToContent.propTypes = {
32
31
  /**
33
- * Provide text to display in the SkipToContent `a` tag
32
+ * A ReactNode to display in the SkipToContent `a` tag.
33
+ * `'Skip to main content'` by default.
34
34
  */
35
- children: PropTypes.string.isRequired,
35
+ children: PropTypes.string,
36
36
  className: PropTypes.string,
37
-
38
37
  /**
39
38
  * Provide the `href` to the id of the element on your package that is the
40
- * main content.
39
+ * main content. `#main-content` by default.
41
40
  */
42
- href: PropTypes.string.isRequired,
43
-
41
+ href: PropTypes.string,
44
42
  /**
45
43
  * Optionally override the default tabindex of 0
46
44
  */
47
45
  tabIndex: PropTypes.string
48
46
  };
49
- SkipToContent.defaultProps = {
50
- children: 'Skip to main content',
51
- href: '#main-content',
52
- tabIndex: '0'
53
- };
54
47
 
55
48
  export { SkipToContent as default };