@carbon/react 1.29.1 → 1.30.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 (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 +152 -174
  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 +1 -11
  75. package/es/components/FileUploader/Filename.js +0 -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 +0 -43
  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 +152 -174
  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 +1 -30
  361. package/lib/components/FileUploader/Filename.js +0 -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 +0 -43
  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
@@ -16,6 +16,8 @@ var PropTypes = require('prop-types');
16
16
  var AriaPropTypes = require('../../prop-types/AriaPropTypes.js');
17
17
  var _utils = require('./_utils.js');
18
18
  var usePrefix = require('../../internal/usePrefix.js');
19
+ var useMergedRefs = require('../../internal/useMergedRefs.js');
20
+ var useEvent = require('../../internal/useEvent.js');
19
21
  var match = require('../../internal/keyboard/match.js');
20
22
  var keys = require('../../internal/keyboard/keys.js');
21
23
 
@@ -25,8 +27,8 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
25
27
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
26
28
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
27
29
 
30
+ // TO-DO: comment back in when footer is added for rails
28
31
  // import SideNavFooter from './SideNavFooter';
29
-
30
32
  function SideNavRenderFunction(_ref, ref) {
31
33
  let {
32
34
  expanded: expandedProp,
@@ -39,12 +41,14 @@ function SideNavRenderFunction(_ref, ref) {
39
41
  className: customClassName,
40
42
  // TO-DO: comment back in when footer is added for rails
41
43
  // translateById: t = (id) => translations[id],
44
+ href,
42
45
  isFixedNav = false,
43
46
  isRail,
44
47
  isPersistent = true,
45
48
  addFocusListeners = true,
46
49
  addMouseListeners = true,
47
50
  onOverlayClick,
51
+ onSideNavBlur,
48
52
  ...other
49
53
  } = _ref;
50
54
  const prefix = usePrefix.usePrefix();
@@ -54,27 +58,26 @@ function SideNavRenderFunction(_ref, ref) {
54
58
  const [expandedState, setExpandedState] = React.useState(defaultExpanded);
55
59
  const [expandedViaHoverState, setExpandedViaHoverState] = React.useState(defaultExpanded);
56
60
  const expanded = controlled ? expandedProp : expandedState;
57
-
61
+ const sideNavRef = React.useRef(null);
62
+ const navRef = useMergedRefs.useMergedRefs([sideNavRef, ref]);
58
63
  const handleToggle = function (event) {
59
64
  let value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !expanded;
60
-
61
65
  if (!controlled) {
62
66
  setExpandedState(value);
63
67
  }
64
-
65
68
  if (onToggle) {
66
69
  onToggle(event, value);
67
70
  }
68
-
69
71
  if (controlled || isRail) {
70
72
  setExpandedViaHoverState(value);
71
73
  }
72
74
  };
73
-
74
75
  const accessibilityLabel = {
75
76
  'aria-label': ariaLabel,
76
77
  'aria-labelledby': ariaLabelledBy
77
- }; // TO-DO: comment back in when footer is added for rails
78
+ };
79
+
80
+ // TO-DO: comment back in when footer is added for rails
78
81
  // const assistiveText = expanded
79
82
  // ? t('carbon.sidenav.state.open')
80
83
  // : t('carbon.sidenav.state.closed');
@@ -91,56 +94,61 @@ function SideNavRenderFunction(_ref, ref) {
91
94
  [`${prefix}--side-nav__overlay`]: true,
92
95
  [`${prefix}--side-nav__overlay-active`]: expanded || expandedViaHoverState
93
96
  });
94
- let childrenToRender = children; // if a rail, pass the expansion state as a prop, so children can update themselves to match
97
+ let childrenToRender = children;
95
98
 
99
+ // if a rail, pass the expansion state as a prop, so children can update themselves to match
96
100
  if (isRail) {
97
101
  childrenToRender = React__default["default"].Children.map(children, child => {
98
102
  // if we are controlled, check for if we have hovered over or the expanded state, else just use the expanded state (uncontrolled)
99
103
  const currentExpansionState = controlled ? expandedViaHoverState || expanded : expanded;
100
-
101
104
  if ( /*#__PURE__*/React.isValidElement(child)) {
102
- var _childJsxElement$type, _childJsxElement$type2;
103
-
104
- const childJsxElement = child; // avoid spreading `isSideNavExpanded` to non-Carbon UI Shell children
105
-
106
- return /*#__PURE__*/React__default["default"].cloneElement(childJsxElement, { ...(_utils.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)) ? {
105
+ const childJsxElement = child;
106
+ // avoid spreading `isSideNavExpanded` to non-Carbon UI Shell children
107
+ return /*#__PURE__*/React__default["default"].cloneElement(childJsxElement, {
108
+ ...(_utils.CARBON_SIDENAV_ITEMS.includes(childJsxElement.type?.displayName ?? childJsxElement.type?.name) ? {
107
109
  isSideNavExpanded: currentExpansionState
108
110
  } : {})
109
111
  });
110
112
  }
111
-
112
113
  return child;
113
114
  });
114
115
  }
115
-
116
116
  const eventHandlers = {};
117
-
118
117
  if (addFocusListeners) {
119
118
  eventHandlers.onFocus = event => {
120
119
  if (!event.currentTarget.contains(event.relatedTarget)) {
121
120
  handleToggle(event, true);
122
121
  }
123
122
  };
124
-
125
123
  eventHandlers.onBlur = event => {
126
124
  if (!event.currentTarget.contains(event.relatedTarget)) {
127
125
  handleToggle(event, false);
128
126
  }
127
+ if (!event.currentTarget.contains(event.relatedTarget) && expanded) {
128
+ if (onSideNavBlur) {
129
+ onSideNavBlur();
130
+ }
131
+ }
129
132
  };
130
-
131
133
  eventHandlers.onKeyDown = event => {
132
134
  if (match.match(event, keys.Escape)) {
133
135
  handleToggle(event, false);
136
+ if (href) {
137
+ window.location.href = href;
138
+ }
134
139
  }
135
140
  };
136
141
  }
137
-
138
142
  if (addMouseListeners && isRail) {
139
143
  eventHandlers.onMouseEnter = () => handleToggle(true, true);
140
-
141
144
  eventHandlers.onMouseLeave = () => handleToggle(false, false);
142
145
  }
143
-
146
+ useEvent.useWindowEvent('keydown', event => {
147
+ const focusedElement = document.activeElement;
148
+ if (match.match(event, keys.Tab) && expanded && !isFixedNav && sideNavRef.current && focusedElement?.classList.contains(`${prefix}--header__menu-toggle`) && !focusedElement.closest('nav')) {
149
+ sideNavRef.current.focus();
150
+ }
151
+ });
144
152
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isFixedNav ? null :
145
153
  /*#__PURE__*/
146
154
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
@@ -148,11 +156,11 @@ function SideNavRenderFunction(_ref, ref) {
148
156
  className: overlayClassName,
149
157
  onClick: onOverlayClick
150
158
  }), /*#__PURE__*/React__default["default"].createElement("nav", _rollupPluginBabelHelpers["extends"]({
151
- ref: ref,
159
+ tabIndex: -1,
160
+ ref: navRef,
152
161
  className: `${prefix}--side-nav__navigation ${className}`
153
162
  }, accessibilityLabel, eventHandlers, other), childrenToRender));
154
163
  }
155
-
156
164
  const SideNav = /*#__PURE__*/React__default["default"].forwardRef(SideNavRenderFunction);
157
165
  SideNav.displayName = 'SideNav';
158
166
  SideNav.propTypes = {
@@ -160,60 +168,59 @@ SideNav.propTypes = {
160
168
  * Required props for accessibility label on the underlying menu
161
169
  */
162
170
  ...AriaPropTypes.AriaLabelPropType,
163
-
164
171
  /**
165
172
  * Specify whether focus and blur listeners are added. They are by default.
166
173
  */
167
174
  addFocusListeners: PropTypes__default["default"].bool,
168
-
169
175
  /**
170
176
  * Specify whether mouse entry/exit listeners are added. They are by default.
171
177
  */
172
178
  addMouseListeners: PropTypes__default["default"].bool,
173
-
174
179
  /**
175
180
  * Optionally provide a custom class to apply to the underlying `<li>` node
176
181
  */
177
182
  className: PropTypes__default["default"].string,
178
-
179
183
  /**
180
184
  * If `true`, the SideNav will be open on initial render.
181
185
  */
182
186
  defaultExpanded: PropTypes__default["default"].bool,
183
-
184
187
  /**
185
188
  * If `true`, the SideNav will be expanded, otherwise it will be collapsed.
186
189
  * Using this prop causes SideNav to become a controled component.
187
190
  */
188
191
  expanded: PropTypes__default["default"].bool,
189
-
192
+ /**
193
+ * Provide the `href` to the id of the element on your package that is the
194
+ * main content.
195
+ */
196
+ href: PropTypes__default["default"].string,
190
197
  /**
191
198
  * Optionally provide a custom class to apply to the underlying `<li>` node
192
199
  */
193
200
  isChildOfHeader: PropTypes__default["default"].bool,
194
-
195
201
  /**
196
202
  * Specify if sideNav is standalone
197
203
  */
198
204
  isFixedNav: PropTypes__default["default"].bool,
199
-
200
205
  /**
201
206
  * Specify if the sideNav will be persistent above the lg breakpoint
202
207
  */
203
208
  isPersistent: PropTypes__default["default"].bool,
204
-
205
209
  /**
206
210
  * Optional prop to display the side nav rail.
207
211
  */
208
212
  isRail: PropTypes__default["default"].bool,
209
-
210
213
  /**
211
214
  * An optional listener that is called when the SideNav overlay is clicked
212
215
  *
213
216
  * @param {object} event
214
217
  */
215
218
  onOverlayClick: PropTypes__default["default"].func,
219
+ /**
220
+ * An optional listener that is called a callback to collapse the SideNav
221
+ */
216
222
 
223
+ onSideNavBlur: PropTypes__default["default"].func,
217
224
  /**
218
225
  * An optional listener that is called when an event that would cause
219
226
  * toggling the SideNav occurs.
@@ -222,6 +229,7 @@ SideNav.propTypes = {
222
229
  * @param {boolean} value
223
230
  */
224
231
  onToggle: PropTypes__default["default"].func
232
+
225
233
  /**
226
234
  * Provide a custom function for translating all message ids within this
227
235
  * component. This function will take in two arguments: the mesasge Id and the
@@ -229,8 +237,8 @@ SideNav.propTypes = {
229
237
  * the label you want displayed or read by screen readers.
230
238
  */
231
239
  // translateById: PropTypes.func,
232
-
233
240
  };
241
+
234
242
  var SideNav$1 = SideNav;
235
243
 
236
244
  exports["default"] = SideNav$1;
@@ -37,19 +37,16 @@ const SideNavDetails = _ref => {
37
37
  title: title
38
38
  }, title), children);
39
39
  };
40
-
41
40
  SideNavDetails.propTypes = {
42
41
  /**
43
42
  * Provide optional children to render in `SideNavDetails`. Useful for
44
43
  * rendering the `SideNavSwitcher` component.
45
44
  */
46
45
  children: PropTypes__default["default"].node,
47
-
48
46
  /**
49
47
  * Optionally provide a custom class to apply to the underlying `<li>` node
50
48
  */
51
49
  className: PropTypes__default["default"].string,
52
-
53
50
  /**
54
51
  * Provide the text that will be rendered as the title in the component
55
52
  */
@@ -31,7 +31,6 @@ function SideNavDivider(_ref) {
31
31
  className: classNames
32
32
  });
33
33
  }
34
-
35
34
  SideNavDivider.propTypes = {
36
35
  /**
37
36
  * Provide an optional class to be applied to the containing node
@@ -22,12 +22,12 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
22
22
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
23
23
 
24
24
  var _Close, _ChevronRight;
25
+
25
26
  /**
26
27
  * SideNavFooter is used for rendering the button at the bottom of the side
27
28
  * navigation that is a part of the UI Shell. It is responsible for handling the
28
29
  * user interaction to expand or collapse the side navigation.
29
30
  */
30
-
31
31
  function SideNavFooter(_ref) {
32
32
  let {
33
33
  assistiveText,
@@ -54,7 +54,6 @@ function SideNavFooter(_ref) {
54
54
  className: `${prefix}--assistive-text`
55
55
  }, assistiveText)));
56
56
  }
57
-
58
57
  SideNavFooter.displayName = 'SideNavFooter';
59
58
  SideNavFooter.propTypes = {
60
59
  /**
@@ -63,12 +62,10 @@ SideNavFooter.propTypes = {
63
62
  */
64
63
  assistiveText: PropTypes__default["default"].string.isRequired,
65
64
  className: PropTypes__default["default"].string,
66
-
67
65
  /**
68
66
  * Specify whether the side navigation is expanded or collapsed
69
67
  */
70
68
  expanded: PropTypes__default["default"].bool.isRequired,
71
-
72
69
  /**
73
70
  * Provide a function that is called when the toggle button is interacted
74
71
  * with. Useful for controlling the expansion state of the side navigation.
@@ -33,25 +33,21 @@ const SideNavHeader = _ref => {
33
33
  className: className
34
34
  }, /*#__PURE__*/React__default["default"].createElement(SideNavIcon["default"], null, /*#__PURE__*/React__default["default"].createElement(IconElement, null)), children);
35
35
  };
36
-
37
36
  SideNavHeader.displayName = 'SideNavHeader';
38
37
  SideNavHeader.propTypes = {
39
38
  /**
40
39
  * The child nodes to be rendered
41
40
  */
42
41
  children: PropTypes__default["default"].node,
43
-
44
42
  /**
45
43
  * Provide an optional class to be applied to the containing node
46
44
  */
47
45
  className: PropTypes__default["default"].string,
48
-
49
46
  /**
50
47
  * Property to indicate if the side nav container is open (or not). Use to
51
48
  * keep local state and styling in step with the SideNav expansion state.
52
49
  */
53
50
  isSideNavExpanded: PropTypes__default["default"].bool,
54
-
55
51
  /**
56
52
  * Provide an icon to render in the header of the side navigation. Should be
57
53
  * a React class.
@@ -36,19 +36,16 @@ function SideNavIcon(_ref) {
36
36
  className: className
37
37
  }, children);
38
38
  }
39
-
40
39
  SideNavIcon.propTypes = {
41
40
  /**
42
41
  * Provide a single icon as the child to `SideNavIcon` to render in the
43
42
  * container
44
43
  */
45
44
  children: PropTypes__default["default"].node.isRequired,
46
-
47
45
  /**
48
46
  * Provide an optional class to be applied to the containing node
49
47
  */
50
48
  className: PropTypes__default["default"].string,
51
-
52
49
  /**
53
50
  * Specify whether the icon should be placed in a smaller bounding box
54
51
  */
@@ -36,19 +36,16 @@ function SideNavItem(_ref) {
36
36
  className: className
37
37
  }, children);
38
38
  }
39
-
40
39
  SideNavItem.propTypes = {
41
40
  /**
42
41
  * Provide a single icon as the child to `SideNavItem` to render in the
43
42
  * container
44
43
  */
45
44
  children: PropTypes__default["default"].node.isRequired,
46
-
47
45
  /**
48
46
  * Provide an optional class to be applied to the containing node
49
47
  */
50
48
  className: PropTypes__default["default"].string,
51
-
52
49
  /**
53
50
  * Specify if this is a large variation of the SideNavItem
54
51
  */
@@ -31,10 +31,9 @@ const SideNavItems = _ref => {
31
31
  const className = cx__default["default"]([`${prefix}--side-nav__items`], customClassName);
32
32
  const childrenWithExpandedState = React__default["default"].Children.map(children, child => {
33
33
  if ( /*#__PURE__*/React__default["default"].isValidElement(child)) {
34
- var _child$type;
35
-
36
34
  // avoid spreading `isSideNavExpanded` to non-Carbon UI Shell children
37
- return /*#__PURE__*/React__default["default"].cloneElement(child, { ...(_utils.CARBON_SIDENAV_ITEMS.includes((_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.displayName) ? {
35
+ return /*#__PURE__*/React__default["default"].cloneElement(child, {
36
+ ...(_utils.CARBON_SIDENAV_ITEMS.includes(child.type?.displayName) ? {
38
37
  isSideNavExpanded
39
38
  } : {})
40
39
  });
@@ -44,7 +43,6 @@ const SideNavItems = _ref => {
44
43
  className: className
45
44
  }, childrenWithExpandedState);
46
45
  };
47
-
48
46
  SideNavItems.displayName = 'SideNavItems';
49
47
  SideNavItems.propTypes = {
50
48
  /**
@@ -52,12 +50,10 @@ SideNavItems.propTypes = {
52
50
  * container
53
51
  */
54
52
  children: PropTypes__default["default"].node.isRequired,
55
-
56
53
  /**
57
54
  * Provide an optional class to be applied to the containing node
58
55
  */
59
56
  className: PropTypes__default["default"].string,
60
-
61
57
  /**
62
58
  * Property to indicate if the side nav container is open (or not). Use to
63
59
  * keep local state and styling in step with the SideNav expansion state.
@@ -50,33 +50,29 @@ const SideNavLink = /*#__PURE__*/React__default["default"].forwardRef(function S
50
50
  }, /*#__PURE__*/React__default["default"].createElement(IconElement, null)), /*#__PURE__*/React__default["default"].createElement(SideNavLinkText["default"], null, children)));
51
51
  });
52
52
  SideNavLink.displayName = 'SideNavLink';
53
- SideNavLink.propTypes = { ...Link.LinkPropTypes,
54
-
53
+ SideNavLink.propTypes = {
54
+ ...Link.LinkPropTypes,
55
55
  /**
56
56
  * Specify the text content for the link
57
57
  */
58
58
  children: PropTypes__default["default"].node.isRequired,
59
-
60
59
  /**
61
60
  * Provide an optional class to be applied to the containing node
62
61
  */
63
62
  className: PropTypes__default["default"].string,
64
-
65
63
  /**
66
64
  * Specify whether the link is the current page
67
65
  */
68
66
  isActive: PropTypes__default["default"].bool,
69
-
70
67
  /**
71
68
  * Specify if this is a large variation of the SideNavLink
72
69
  */
73
70
  large: PropTypes__default["default"].bool,
74
-
75
71
  /**
76
72
  * Provide an icon to render in the side navigation link. Should be a React class.
77
73
  */
78
74
  renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object])
79
- }; // eslint-disable-next-line react/display-name
75
+ };
80
76
  var SideNavLink$1 = SideNavLink;
81
77
 
82
78
  exports["default"] = SideNavLink$1;
@@ -33,13 +33,11 @@ function SideNavLinkText(_ref) {
33
33
  className: className
34
34
  }), children);
35
35
  }
36
-
37
36
  SideNavLinkText.propTypes = {
38
37
  /**
39
38
  * Provide the content for the link text
40
39
  */
41
40
  children: PropTypes__default["default"].node.isRequired,
42
-
43
41
  /**
44
42
  * Provide an optional class to be applied to the containing node
45
43
  */
@@ -46,7 +46,6 @@ const SideNavMenu = /*#__PURE__*/React__default["default"].forwardRef(function S
46
46
  [`${prefix}--side-nav__item--large`]: large,
47
47
  [customClassName]: !!customClassName
48
48
  });
49
-
50
49
  if (isSideNavExpanded === false && isExpanded === true) {
51
50
  setIsExpanded(false);
52
51
  setPrevExpanded(true);
@@ -54,7 +53,6 @@ const SideNavMenu = /*#__PURE__*/React__default["default"].forwardRef(function S
54
53
  setIsExpanded(true);
55
54
  setPrevExpanded(false);
56
55
  }
57
-
58
56
  return (
59
57
  /*#__PURE__*/
60
58
  // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
@@ -92,47 +90,39 @@ SideNavMenu.propTypes = {
92
90
  * Provide <SideNavMenuItem>'s inside of the `SideNavMenu`
93
91
  */
94
92
  children: PropTypes__default["default"].node,
95
-
96
93
  /**
97
94
  * Provide an optional class to be applied to the containing node
98
95
  */
99
96
  className: PropTypes__default["default"].string,
100
-
101
97
  /**
102
98
  * Specify whether the menu should default to expanded. By default, it will
103
99
  * be closed.
104
100
  */
105
101
  defaultExpanded: PropTypes__default["default"].bool,
106
-
107
102
  /**
108
103
  * Specify whether the `SideNavMenu` is "active". `SideNavMenu` should be
109
104
  * considered active if one of its menu items are a link for the current
110
105
  * page.
111
106
  */
112
107
  isActive: PropTypes__default["default"].bool,
113
-
114
108
  /**
115
109
  * Property to indicate if the side nav container is open (or not). Use to
116
110
  * keep local state and styling in step with the SideNav expansion state.
117
111
  */
118
112
  isSideNavExpanded: PropTypes__default["default"].bool,
119
-
120
113
  /**
121
114
  * Specify if this is a large variation of the SideNavMenu
122
115
  */
123
116
  large: PropTypes__default["default"].bool,
124
-
125
117
  /**
126
118
  * Pass in a custom icon to render next to the `SideNavMenu` title
127
119
  */
128
120
  renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
129
-
130
121
  /**
131
122
  * Provide the text for the overall menu name
132
123
  */
133
124
  title: PropTypes__default["default"].string.isRequired
134
125
  };
135
-
136
126
  function hasActiveChild(children) {
137
127
  // if we have children, either a single or multiple, find if it is active
138
128
  if (Array.isArray(children)) {
@@ -140,28 +130,22 @@ function hasActiveChild(children) {
140
130
  if (!child.props) {
141
131
  return false;
142
132
  }
143
-
144
133
  if (child.props.isActive === true) {
145
134
  return true;
146
135
  }
147
-
148
136
  if (child.props['aria-current']) {
149
137
  return true;
150
138
  }
151
-
152
139
  return false;
153
140
  });
154
141
  }
155
-
156
142
  if (children.props) {
157
143
  if (children.props.isActive === true || children.props['aria-current']) {
158
144
  return true;
159
145
  }
160
146
  }
161
-
162
147
  return false;
163
148
  }
164
-
165
149
  var SideNavMenu$1 = SideNavMenu;
166
150
 
167
151
  exports.SideNavMenu = SideNavMenu;
@@ -49,12 +49,10 @@ SideNavMenuItem.propTypes = {
49
49
  * Specify the children to be rendered inside of the `SideNavMenuItem`
50
50
  */
51
51
  children: PropTypes__default["default"].node,
52
-
53
52
  /**
54
53
  * Provide an optional class to be applied to the containing node
55
54
  */
56
55
  className: PropTypes__default["default"].string,
57
-
58
56
  /**
59
57
  * Optionally specify whether the link is "active". An active link is one that
60
58
  * has an href that is the same as the current page. Can also pass in
@@ -32,8 +32,8 @@ const SideNavSwitcher = /*#__PURE__*/React__default["default"].forwardRef(functi
32
32
  onChange,
33
33
  options
34
34
  } = props;
35
- const className = cx__default["default"](`${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
36
-
35
+ const className = cx__default["default"](`${prefix}--side-nav__switcher`, customClassName);
36
+ // Note for usage around `onBlur`: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-onchange.md
37
37
  return /*#__PURE__*/React__default["default"].createElement("div", {
38
38
  className: className
39
39
  }, /*#__PURE__*/React__default["default"].createElement("label", {
@@ -67,19 +67,16 @@ SideNavSwitcher.propTypes = {
67
67
  * Provide an optional class to be applied to the containing node
68
68
  */
69
69
  className: PropTypes__default["default"].string,
70
-
71
70
  /**
72
71
  * Provide the label for the switcher. This will be the first visible option
73
72
  * when someone views this control
74
73
  */
75
74
  labelText: PropTypes__default["default"].string.isRequired,
76
-
77
75
  /**
78
76
  * Provide a callback function that is called whenever the switcher value is
79
77
  * updated
80
78
  */
81
79
  onChange: PropTypes__default["default"].func,
82
-
83
80
  /**
84
81
  * Provide an array of options to be rendered in the switcher as an
85
82
  * `<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;
@@ -23,10 +23,10 @@ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
23
23
 
24
24
  function SkipToContent(_ref) {
25
25
  let {
26
- children,
26
+ children = 'Skip to main content',
27
27
  className: customClassName,
28
- href,
29
- tabIndex,
28
+ href = '#main-content',
29
+ tabIndex = 0,
30
30
  ...rest
31
31
  } = _ref;
32
32
  const prefix = usePrefix.usePrefix();
@@ -37,29 +37,22 @@ function SkipToContent(_ref) {
37
37
  tabIndex: tabIndex
38
38
  }), children);
39
39
  }
40
-
41
40
  SkipToContent.propTypes = {
42
41
  /**
43
- * Provide text to display in the SkipToContent `a` tag
42
+ * A ReactNode to display in the SkipToContent `a` tag.
43
+ * `'Skip to main content'` by default.
44
44
  */
45
- children: PropTypes__default["default"].string.isRequired,
45
+ children: PropTypes__default["default"].string,
46
46
  className: PropTypes__default["default"].string,
47
-
48
47
  /**
49
48
  * Provide the `href` to the id of the element on your package that is the
50
- * main content.
49
+ * main content. `#main-content` by default.
51
50
  */
52
- href: PropTypes__default["default"].string.isRequired,
53
-
51
+ href: PropTypes__default["default"].string,
54
52
  /**
55
53
  * Optionally override the default tabindex of 0
56
54
  */
57
55
  tabIndex: PropTypes__default["default"].string
58
56
  };
59
- SkipToContent.defaultProps = {
60
- children: 'Skip to main content',
61
- href: '#main-content',
62
- tabIndex: '0'
63
- };
64
57
 
65
58
  exports["default"] = SkipToContent;