@carbon/react 1.83.0 → 1.84.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 (524) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +909 -874
  2. package/README.md +1 -1
  3. package/es/components/AILabel/index.js +27 -30
  4. package/es/components/AISkeleton/AISkeletonIcon.js +4 -5
  5. package/es/components/AISkeleton/AISkeletonPlaceholder.js +4 -5
  6. package/es/components/AISkeleton/AISkeletonText.js +4 -5
  7. package/es/components/Accordion/Accordion.Skeleton.js +9 -10
  8. package/es/components/Accordion/Accordion.js +10 -11
  9. package/es/components/Accordion/AccordionItem.js +13 -14
  10. package/es/components/Accordion/AccordionProvider.js +4 -5
  11. package/es/components/AspectRatio/AspectRatio.js +7 -8
  12. package/es/components/BadgeIndicator/index.js +5 -6
  13. package/es/components/Breadcrumb/Breadcrumb.Skeleton.js +4 -5
  14. package/es/components/Button/Button.Skeleton.js +7 -8
  15. package/es/components/Button/ButtonBase.js +23 -24
  16. package/es/components/ChatButton/ChatButton.Skeleton.js +5 -6
  17. package/es/components/ChatButton/ChatButton.js +11 -12
  18. package/es/components/Checkbox/Checkbox.Skeleton.js +4 -5
  19. package/es/components/Checkbox/Checkbox.js +19 -20
  20. package/es/components/CheckboxGroup/CheckboxGroup.js +16 -17
  21. package/es/components/ClassPrefix/index.js +4 -5
  22. package/es/components/CodeSnippet/CodeSnippet.Skeleton.js +5 -6
  23. package/es/components/CodeSnippet/CodeSnippet.js +25 -26
  24. package/es/components/ComboBox/ComboBox.js +24 -30
  25. package/es/components/ComboBox/tools/filter.js +9 -12
  26. package/es/components/ComboButton/index.js +16 -18
  27. package/es/components/ComposedModal/ComposedModal.js +50 -36
  28. package/es/components/ComposedModal/ModalFooter.js +37 -42
  29. package/es/components/ComposedModal/ModalHeader.js +14 -15
  30. package/es/components/ContainedList/ContainedList.js +10 -11
  31. package/es/components/ContainedList/ContainedListItem/ContainedListItem.js +9 -10
  32. package/es/components/ContentSwitcher/ContentSwitcher.d.ts +9 -29
  33. package/es/components/ContentSwitcher/ContentSwitcher.js +96 -128
  34. package/es/components/ContentSwitcher/index.d.ts +3 -4
  35. package/es/components/ContextMenu/useContextMenu.js +1 -2
  36. package/es/components/Copy/Copy.js +11 -12
  37. package/es/components/CopyButton/CopyButton.js +10 -11
  38. package/es/components/DataTable/DataTable.js +45 -53
  39. package/es/components/DataTable/Table.js +15 -18
  40. package/es/components/DataTable/TableBatchAction.js +8 -11
  41. package/es/components/DataTable/TableBatchActions.js +18 -20
  42. package/es/components/DataTable/TableBody.js +8 -11
  43. package/es/components/DataTable/TableContainer.js +9 -10
  44. package/es/components/DataTable/TableDecoratorRow.js +4 -5
  45. package/es/components/DataTable/TableExpandHeader.js +14 -15
  46. package/es/components/DataTable/TableExpandRow.js +13 -14
  47. package/es/components/DataTable/TableExpandedRow.js +6 -7
  48. package/es/components/DataTable/TableHeader.js +15 -16
  49. package/es/components/DataTable/TableSelectAll.js +11 -12
  50. package/es/components/DataTable/TableSelectRow.js +12 -13
  51. package/es/components/DataTable/TableSlugRow.js +4 -5
  52. package/es/components/DataTable/TableToolbar.js +7 -8
  53. package/es/components/DataTable/TableToolbarMenu.js +8 -9
  54. package/es/components/DataTable/TableToolbarSearch.js +22 -24
  55. package/es/components/DataTable/state/sorting.js +3 -4
  56. package/es/components/DataTable/tools/filter.js +10 -12
  57. package/es/components/DataTable/tools/normalize.js +6 -8
  58. package/es/components/DataTable/tools/sorting.js +24 -30
  59. package/es/components/DataTableSkeleton/DataTableSkeleton.js +11 -12
  60. package/es/components/DatePicker/DatePicker.Skeleton.js +7 -8
  61. package/es/components/DatePicker/DatePicker.js +88 -65
  62. package/es/components/DatePickerInput/DatePickerInput.js +5 -6
  63. package/es/components/Dialog/index.d.ts +193 -8
  64. package/es/components/Dialog/index.js +454 -35
  65. package/es/components/Dropdown/Dropdown.Skeleton.js +6 -7
  66. package/es/components/Dropdown/Dropdown.js +40 -43
  67. package/es/components/ErrorBoundary/ErrorBoundary.js +2 -2
  68. package/es/components/ExpandableSearch/ExpandableSearch.js +9 -10
  69. package/es/components/FeatureFlags/index.js +11 -12
  70. package/es/components/FileUploader/FileUploader.Skeleton.js +4 -5
  71. package/es/components/FileUploader/FileUploader.js +22 -24
  72. package/es/components/FileUploader/FileUploaderButton.js +16 -17
  73. package/es/components/FileUploader/FileUploaderDropContainer.js +15 -16
  74. package/es/components/FileUploader/FileUploaderItem.js +13 -14
  75. package/es/components/FileUploader/Filename.js +9 -10
  76. package/es/components/FluidComboBox/FluidComboBox.Skeleton.js +4 -5
  77. package/es/components/FluidComboBox/FluidComboBox.js +5 -6
  78. package/es/components/FluidDatePicker/FluidDatePicker.Skeleton.js +5 -6
  79. package/es/components/FluidDatePicker/FluidDatePicker.js +10 -11
  80. package/es/components/FluidDropdown/FluidDropdown.Skeleton.js +4 -5
  81. package/es/components/FluidDropdown/FluidDropdown.js +5 -6
  82. package/es/components/FluidForm/FluidForm.js +5 -6
  83. package/es/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +4 -5
  84. package/es/components/FluidMultiSelect/FluidMultiSelect.js +6 -7
  85. package/es/components/FluidNumberInput/FluidNumberInput.Skeleton.js +4 -5
  86. package/es/components/FluidNumberInput/FluidNumberInput.d.ts +40 -1
  87. package/es/components/FluidNumberInput/FluidNumberInput.js +38 -5
  88. package/es/components/FluidSearch/FluidSearch.Skeleton.js +4 -5
  89. package/es/components/FluidSearch/FluidSearch.js +4 -5
  90. package/es/components/FluidSelect/FluidSelect.Skeleton.js +4 -5
  91. package/es/components/FluidSelect/FluidSelect.js +5 -6
  92. package/es/components/FluidTextArea/FluidTextArea.Skeleton.js +4 -5
  93. package/es/components/FluidTextArea/FluidTextArea.js +4 -5
  94. package/es/components/FluidTextInput/FluidTextInput.Skeleton.js +4 -5
  95. package/es/components/FluidTextInput/FluidTextInput.js +5 -6
  96. package/es/components/FluidTimePicker/FluidTimePicker.Skeleton.js +5 -6
  97. package/es/components/FluidTimePicker/FluidTimePicker.js +11 -12
  98. package/es/components/FluidTimePickerSelect/FluidTimePickerSelect.js +5 -6
  99. package/es/components/Form/Form.js +5 -6
  100. package/es/components/FormGroup/FormGroup.js +11 -12
  101. package/es/components/FormItem/FormItem.js +5 -6
  102. package/es/components/FormLabel/FormLabel.js +6 -7
  103. package/es/components/Grid/CSSGrid.js +17 -19
  104. package/es/components/Grid/Column.js +28 -27
  105. package/es/components/Grid/ColumnHang.js +6 -7
  106. package/es/components/Grid/FlexGrid.js +9 -10
  107. package/es/components/Grid/GridContext.js +5 -6
  108. package/es/components/Grid/Row.js +8 -9
  109. package/es/components/Heading/index.js +5 -6
  110. package/es/components/Icon/Icon.Skeleton.js +4 -5
  111. package/es/components/IconButton/index.js +20 -21
  112. package/es/components/IconIndicator/index.js +7 -8
  113. package/es/components/IdPrefix/index.js +4 -5
  114. package/es/components/InlineLoading/InlineLoading.js +9 -10
  115. package/es/components/Layer/index.js +8 -9
  116. package/es/components/Layout/index.js +21 -26
  117. package/es/components/LayoutDirection/LayoutDirection.js +6 -7
  118. package/es/components/Link/Link.d.ts +1 -1
  119. package/es/components/Link/Link.js +14 -15
  120. package/es/components/ListBox/ListBoxField.js +6 -7
  121. package/es/components/ListBox/ListBoxMenu.js +5 -6
  122. package/es/components/ListBox/ListBoxMenuIcon.js +4 -5
  123. package/es/components/ListBox/ListBoxMenuItem.js +8 -10
  124. package/es/components/ListBox/ListBoxSelection.js +8 -9
  125. package/es/components/ListBox/next/ListBoxSelection.js +9 -10
  126. package/es/components/ListBox/next/ListBoxTrigger.js +5 -6
  127. package/es/components/ListItem/ListItem.js +5 -6
  128. package/es/components/Loading/Loading.js +8 -9
  129. package/es/components/Menu/Menu.js +23 -24
  130. package/es/components/Menu/MenuItem.js +39 -44
  131. package/es/components/MenuButton/index.js +16 -18
  132. package/es/components/Modal/Modal.js +74 -65
  133. package/es/components/ModalWrapper/ModalWrapper.js +2 -2
  134. package/es/components/MultiSelect/FilterableMultiSelect.js +67 -48
  135. package/es/components/MultiSelect/MultiSelect.js +43 -45
  136. package/es/components/MultiSelect/tools/sorting.js +11 -15
  137. package/es/components/Notification/Notification.js +96 -105
  138. package/es/components/NumberInput/NumberFormatPropTypes.d.ts +29 -0
  139. package/es/components/NumberInput/NumberFormatPropTypes.js +40 -0
  140. package/es/components/NumberInput/NumberInput.Skeleton.js +6 -7
  141. package/es/components/NumberInput/NumberInput.d.ts +39 -3
  142. package/es/components/NumberInput/NumberInput.js +174 -44
  143. package/es/components/OrderedList/OrderedList.js +7 -8
  144. package/es/components/OverflowMenu/OverflowMenu.d.ts +1 -1
  145. package/es/components/OverflowMenu/OverflowMenu.js +39 -46
  146. package/es/components/OverflowMenu/next/index.js +12 -13
  147. package/es/components/PageHeader/PageHeader.d.ts +39 -14
  148. package/es/components/PageHeader/PageHeader.js +187 -81
  149. package/es/components/PageHeader/index.d.ts +2 -2
  150. package/es/components/PageHeader/index.js +1 -1
  151. package/es/components/Pagination/Pagination.Skeleton.js +4 -5
  152. package/es/components/Pagination/Pagination.js +24 -25
  153. package/es/components/Pagination/experimental/PageSelector.js +8 -9
  154. package/es/components/Pagination/experimental/Pagination.js +20 -21
  155. package/es/components/PaginationNav/PaginationNav.js +33 -38
  156. package/es/components/Popover/index.js +26 -28
  157. package/es/components/ProgressBar/ProgressBar.js +11 -12
  158. package/es/components/ProgressIndicator/ProgressIndicator.Skeleton.js +5 -6
  159. package/es/components/ProgressIndicator/ProgressIndicator.js +29 -32
  160. package/es/components/RadioTile/RadioTile.js +17 -18
  161. package/es/components/Search/Search.Skeleton.js +5 -6
  162. package/es/components/Search/Search.js +26 -29
  163. package/es/components/Select/Select.Skeleton.js +5 -6
  164. package/es/components/Select/Select.js +24 -25
  165. package/es/components/SelectItem/SelectItem.js +8 -9
  166. package/es/components/SelectItemGroup/SelectItemGroup.js +7 -8
  167. package/es/components/ShapeIndicator/index.js +7 -8
  168. package/es/components/SkeletonIcon/SkeletonIcon.js +4 -5
  169. package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.js +4 -5
  170. package/es/components/SkeletonText/SkeletonText.js +8 -9
  171. package/es/components/Slider/Slider.Skeleton.js +8 -9
  172. package/es/components/Slider/Slider.js +75 -83
  173. package/es/components/Slider/SliderHandles.js +6 -6
  174. package/es/components/StructuredList/StructuredList.Skeleton.js +5 -6
  175. package/es/components/Tabs/Tabs.Skeleton.js +5 -6
  176. package/es/components/Tabs/Tabs.js +83 -98
  177. package/es/components/Tabs/usePressable.js +7 -8
  178. package/es/components/Tag/DismissibleTag.js +16 -17
  179. package/es/components/Tag/OperationalTag.js +10 -11
  180. package/es/components/Tag/SelectableTag.js +13 -14
  181. package/es/components/Tag/Tag.Skeleton.js +5 -6
  182. package/es/components/Tag/Tag.js +19 -20
  183. package/es/components/Text/Text.js +6 -7
  184. package/es/components/Text/TextDirection.js +5 -6
  185. package/es/components/TextArea/TextArea.js +7 -7
  186. package/es/components/TextInput/ControlledPasswordInput.js +24 -25
  187. package/es/components/TextInput/PasswordInput.js +26 -27
  188. package/es/components/TextInput/TextInput.Skeleton.js +5 -6
  189. package/es/components/TextInput/TextInput.js +27 -28
  190. package/es/components/TextInput/util.js +14 -17
  191. package/es/components/Theme/index.js +10 -12
  192. package/es/components/Tile/Tile.js +68 -74
  193. package/es/components/TileGroup/TileGroup.d.ts +4 -4
  194. package/es/components/TileGroup/TileGroup.js +45 -53
  195. package/es/components/TileGroup/index.d.ts +3 -3
  196. package/es/components/Toggle/Toggle.Skeleton.js +4 -5
  197. package/es/components/Toggle/Toggle.js +17 -18
  198. package/es/components/ToggleSmall/ToggleSmall.Skeleton.js +6 -7
  199. package/es/components/Toggletip/index.js +33 -39
  200. package/es/components/Tooltip/DefinitionTooltip.js +13 -14
  201. package/es/components/Tooltip/Tooltip.js +15 -16
  202. package/es/components/TreeView/TreeNode.js +20 -21
  203. package/es/components/TreeView/TreeView.js +14 -16
  204. package/es/components/UIShell/Content.js +6 -7
  205. package/es/components/UIShell/Header.js +5 -6
  206. package/es/components/UIShell/HeaderContainer.js +5 -6
  207. package/es/components/UIShell/HeaderGlobalAction.js +12 -13
  208. package/es/components/UIShell/HeaderMenu.d.ts +10 -112
  209. package/es/components/UIShell/HeaderMenu.js +154 -201
  210. package/es/components/UIShell/HeaderMenuButton.js +10 -11
  211. package/es/components/UIShell/HeaderMenuItem.js +12 -12
  212. package/es/components/UIShell/HeaderName.js +6 -7
  213. package/es/components/UIShell/HeaderNavigation.js +7 -8
  214. package/es/components/UIShell/HeaderPanel.js +9 -10
  215. package/es/components/UIShell/HeaderSideNavItems.js +5 -6
  216. package/es/components/UIShell/Link.js +8 -9
  217. package/es/components/UIShell/SideNav.js +23 -25
  218. package/es/components/UIShell/SideNavDetails.js +6 -7
  219. package/es/components/UIShell/SideNavDivider.js +3 -4
  220. package/es/components/UIShell/SideNavFooter.js +6 -7
  221. package/es/components/UIShell/SideNavHeader.js +5 -6
  222. package/es/components/UIShell/SideNavIcon.js +5 -6
  223. package/es/components/UIShell/SideNavItem.js +5 -6
  224. package/es/components/UIShell/SideNavItems.js +5 -6
  225. package/es/components/UIShell/SideNavLink.js +10 -11
  226. package/es/components/UIShell/SideNavLinkText.js +5 -6
  227. package/es/components/UIShell/SideNavMenu.js +11 -12
  228. package/es/components/UIShell/SkipToContent.js +7 -8
  229. package/es/components/UIShell/Switcher.js +4 -5
  230. package/es/components/UIShell/SwitcherDivider.js +4 -5
  231. package/es/components/UnorderedList/UnorderedList.js +6 -7
  232. package/es/index.js +3 -3
  233. package/es/internal/FloatingMenu.js +26 -28
  234. package/es/internal/Selection.js +15 -17
  235. package/es/internal/getAnnouncement.d.ts +8 -0
  236. package/es/internal/getAnnouncement.js +22 -0
  237. package/es/internal/keyboard/match.js +6 -7
  238. package/es/internal/useControllableState.d.ts +1 -1
  239. package/es/internal/useControllableState.js +8 -9
  240. package/es/internal/useDelayedState.js +1 -2
  241. package/es/internal/useDocumentLang.d.ts +12 -0
  242. package/es/internal/useId.js +2 -4
  243. package/es/internal/useMatchMedia.js +1 -2
  244. package/es/internal/useMergedRefs.d.ts +1 -1
  245. package/es/internal/useNoInteractiveChildren.js +2 -4
  246. package/es/internal/useNormalizedInputProps.js +9 -10
  247. package/es/internal/useOverflowItems.d.ts +29 -0
  248. package/es/internal/useOverflowItems.js +122 -0
  249. package/es/internal/useResizeObserver.js +4 -5
  250. package/es/internal/useSavedCallback.js +1 -3
  251. package/es/internal/wrapFocus.js +20 -29
  252. package/es/prop-types/deprecate.js +1 -4
  253. package/es/prop-types/deprecateValuesWithin.js +1 -4
  254. package/es/prop-types/isRequiredOneOf.js +1 -4
  255. package/es/prop-types/requiredIfGivenPropIsTruthy.js +1 -4
  256. package/es/tools/events.js +1 -4
  257. package/es/tools/mergeRefs.js +9 -14
  258. package/es/tools/uniqueId.js +1 -2
  259. package/es/tools/wrapComponent.js +9 -11
  260. package/lib/components/AILabel/index.js +27 -30
  261. package/lib/components/AISkeleton/AISkeletonIcon.js +4 -5
  262. package/lib/components/AISkeleton/AISkeletonPlaceholder.js +4 -5
  263. package/lib/components/AISkeleton/AISkeletonText.js +4 -5
  264. package/lib/components/Accordion/Accordion.Skeleton.js +9 -10
  265. package/lib/components/Accordion/Accordion.js +10 -11
  266. package/lib/components/Accordion/AccordionItem.js +13 -14
  267. package/lib/components/Accordion/AccordionProvider.js +4 -5
  268. package/lib/components/AspectRatio/AspectRatio.js +7 -8
  269. package/lib/components/BadgeIndicator/index.js +5 -6
  270. package/lib/components/Breadcrumb/Breadcrumb.Skeleton.js +4 -5
  271. package/lib/components/Button/Button.Skeleton.js +7 -8
  272. package/lib/components/Button/ButtonBase.js +23 -24
  273. package/lib/components/ChatButton/ChatButton.Skeleton.js +5 -6
  274. package/lib/components/ChatButton/ChatButton.js +11 -12
  275. package/lib/components/Checkbox/Checkbox.Skeleton.js +4 -5
  276. package/lib/components/Checkbox/Checkbox.js +19 -20
  277. package/lib/components/CheckboxGroup/CheckboxGroup.js +16 -17
  278. package/lib/components/ClassPrefix/index.js +4 -5
  279. package/lib/components/CodeSnippet/CodeSnippet.Skeleton.js +5 -6
  280. package/lib/components/CodeSnippet/CodeSnippet.js +25 -26
  281. package/lib/components/ComboBox/ComboBox.js +24 -30
  282. package/lib/components/ComboBox/tools/filter.js +9 -12
  283. package/lib/components/ComboButton/index.js +16 -18
  284. package/lib/components/ComposedModal/ComposedModal.js +50 -36
  285. package/lib/components/ComposedModal/ModalFooter.js +37 -42
  286. package/lib/components/ComposedModal/ModalHeader.js +14 -15
  287. package/lib/components/ContainedList/ContainedList.js +10 -11
  288. package/lib/components/ContainedList/ContainedListItem/ContainedListItem.js +9 -10
  289. package/lib/components/ContentSwitcher/ContentSwitcher.d.ts +9 -29
  290. package/lib/components/ContentSwitcher/ContentSwitcher.js +94 -126
  291. package/lib/components/ContentSwitcher/index.d.ts +3 -4
  292. package/lib/components/ContextMenu/useContextMenu.js +1 -2
  293. package/lib/components/Copy/Copy.js +11 -12
  294. package/lib/components/CopyButton/CopyButton.js +10 -11
  295. package/lib/components/DataTable/DataTable.js +45 -53
  296. package/lib/components/DataTable/Table.js +15 -18
  297. package/lib/components/DataTable/TableBatchAction.js +8 -11
  298. package/lib/components/DataTable/TableBatchActions.js +18 -20
  299. package/lib/components/DataTable/TableBody.js +8 -11
  300. package/lib/components/DataTable/TableContainer.js +9 -10
  301. package/lib/components/DataTable/TableDecoratorRow.js +4 -5
  302. package/lib/components/DataTable/TableExpandHeader.js +14 -15
  303. package/lib/components/DataTable/TableExpandRow.js +13 -14
  304. package/lib/components/DataTable/TableExpandedRow.js +6 -7
  305. package/lib/components/DataTable/TableHeader.js +15 -16
  306. package/lib/components/DataTable/TableSelectAll.js +11 -12
  307. package/lib/components/DataTable/TableSelectRow.js +12 -13
  308. package/lib/components/DataTable/TableSlugRow.js +4 -5
  309. package/lib/components/DataTable/TableToolbar.js +7 -8
  310. package/lib/components/DataTable/TableToolbarMenu.js +8 -9
  311. package/lib/components/DataTable/TableToolbarSearch.js +22 -24
  312. package/lib/components/DataTable/state/sorting.js +3 -4
  313. package/lib/components/DataTable/tools/filter.js +10 -12
  314. package/lib/components/DataTable/tools/normalize.js +6 -8
  315. package/lib/components/DataTable/tools/sorting.js +24 -30
  316. package/lib/components/DataTableSkeleton/DataTableSkeleton.js +11 -12
  317. package/lib/components/DatePicker/DatePicker.Skeleton.js +7 -8
  318. package/lib/components/DatePicker/DatePicker.js +87 -64
  319. package/lib/components/DatePickerInput/DatePickerInput.js +5 -6
  320. package/lib/components/Dialog/index.d.ts +193 -8
  321. package/lib/components/Dialog/index.js +457 -33
  322. package/lib/components/Dropdown/Dropdown.Skeleton.js +6 -7
  323. package/lib/components/Dropdown/Dropdown.js +40 -43
  324. package/lib/components/ErrorBoundary/ErrorBoundary.js +2 -2
  325. package/lib/components/ExpandableSearch/ExpandableSearch.js +9 -10
  326. package/lib/components/FeatureFlags/index.js +11 -12
  327. package/lib/components/FileUploader/FileUploader.Skeleton.js +4 -5
  328. package/lib/components/FileUploader/FileUploader.js +22 -24
  329. package/lib/components/FileUploader/FileUploaderButton.js +16 -17
  330. package/lib/components/FileUploader/FileUploaderDropContainer.js +15 -16
  331. package/lib/components/FileUploader/FileUploaderItem.js +13 -14
  332. package/lib/components/FileUploader/Filename.js +9 -10
  333. package/lib/components/FluidComboBox/FluidComboBox.Skeleton.js +4 -5
  334. package/lib/components/FluidComboBox/FluidComboBox.js +5 -6
  335. package/lib/components/FluidDatePicker/FluidDatePicker.Skeleton.js +5 -6
  336. package/lib/components/FluidDatePicker/FluidDatePicker.js +10 -11
  337. package/lib/components/FluidDropdown/FluidDropdown.Skeleton.js +4 -5
  338. package/lib/components/FluidDropdown/FluidDropdown.js +5 -6
  339. package/lib/components/FluidForm/FluidForm.js +5 -6
  340. package/lib/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +4 -5
  341. package/lib/components/FluidMultiSelect/FluidMultiSelect.js +6 -7
  342. package/lib/components/FluidNumberInput/FluidNumberInput.Skeleton.js +4 -5
  343. package/lib/components/FluidNumberInput/FluidNumberInput.d.ts +40 -1
  344. package/lib/components/FluidNumberInput/FluidNumberInput.js +38 -5
  345. package/lib/components/FluidSearch/FluidSearch.Skeleton.js +4 -5
  346. package/lib/components/FluidSearch/FluidSearch.js +4 -5
  347. package/lib/components/FluidSelect/FluidSelect.Skeleton.js +4 -5
  348. package/lib/components/FluidSelect/FluidSelect.js +5 -6
  349. package/lib/components/FluidTextArea/FluidTextArea.Skeleton.js +4 -5
  350. package/lib/components/FluidTextArea/FluidTextArea.js +4 -5
  351. package/lib/components/FluidTextInput/FluidTextInput.Skeleton.js +4 -5
  352. package/lib/components/FluidTextInput/FluidTextInput.js +5 -6
  353. package/lib/components/FluidTimePicker/FluidTimePicker.Skeleton.js +5 -6
  354. package/lib/components/FluidTimePicker/FluidTimePicker.js +11 -12
  355. package/lib/components/FluidTimePickerSelect/FluidTimePickerSelect.js +5 -6
  356. package/lib/components/Form/Form.js +5 -6
  357. package/lib/components/FormGroup/FormGroup.js +11 -12
  358. package/lib/components/FormItem/FormItem.js +5 -6
  359. package/lib/components/FormLabel/FormLabel.js +6 -7
  360. package/lib/components/Grid/CSSGrid.js +17 -19
  361. package/lib/components/Grid/Column.js +28 -27
  362. package/lib/components/Grid/ColumnHang.js +6 -7
  363. package/lib/components/Grid/FlexGrid.js +9 -10
  364. package/lib/components/Grid/GridContext.js +5 -6
  365. package/lib/components/Grid/Row.js +8 -9
  366. package/lib/components/Heading/index.js +5 -6
  367. package/lib/components/Icon/Icon.Skeleton.js +4 -5
  368. package/lib/components/IconButton/index.js +20 -21
  369. package/lib/components/IconIndicator/index.js +7 -8
  370. package/lib/components/IdPrefix/index.js +4 -5
  371. package/lib/components/InlineLoading/InlineLoading.js +9 -10
  372. package/lib/components/Layer/index.js +8 -9
  373. package/lib/components/Layout/index.js +21 -26
  374. package/lib/components/LayoutDirection/LayoutDirection.js +6 -7
  375. package/lib/components/Link/Link.d.ts +1 -1
  376. package/lib/components/Link/Link.js +14 -15
  377. package/lib/components/ListBox/ListBoxField.js +6 -7
  378. package/lib/components/ListBox/ListBoxMenu.js +5 -6
  379. package/lib/components/ListBox/ListBoxMenuIcon.js +4 -5
  380. package/lib/components/ListBox/ListBoxMenuItem.js +8 -10
  381. package/lib/components/ListBox/ListBoxSelection.js +8 -9
  382. package/lib/components/ListBox/next/ListBoxSelection.js +9 -10
  383. package/lib/components/ListBox/next/ListBoxTrigger.js +5 -6
  384. package/lib/components/ListItem/ListItem.js +5 -6
  385. package/lib/components/Loading/Loading.js +8 -9
  386. package/lib/components/Menu/Menu.js +23 -24
  387. package/lib/components/Menu/MenuItem.js +39 -44
  388. package/lib/components/MenuButton/index.js +16 -18
  389. package/lib/components/Modal/Modal.js +74 -65
  390. package/lib/components/ModalWrapper/ModalWrapper.js +2 -2
  391. package/lib/components/MultiSelect/FilterableMultiSelect.js +66 -47
  392. package/lib/components/MultiSelect/MultiSelect.js +43 -45
  393. package/lib/components/MultiSelect/tools/sorting.js +11 -15
  394. package/lib/components/Notification/Notification.js +96 -105
  395. package/lib/components/NumberInput/NumberFormatPropTypes.d.ts +29 -0
  396. package/lib/components/NumberInput/NumberFormatPropTypes.js +48 -0
  397. package/lib/components/NumberInput/NumberInput.Skeleton.js +6 -7
  398. package/lib/components/NumberInput/NumberInput.d.ts +39 -3
  399. package/lib/components/NumberInput/NumberInput.js +173 -43
  400. package/lib/components/OrderedList/OrderedList.js +7 -8
  401. package/lib/components/OverflowMenu/OverflowMenu.d.ts +1 -1
  402. package/lib/components/OverflowMenu/OverflowMenu.js +39 -46
  403. package/lib/components/OverflowMenu/next/index.js +12 -13
  404. package/lib/components/PageHeader/PageHeader.d.ts +39 -14
  405. package/lib/components/PageHeader/PageHeader.js +185 -81
  406. package/lib/components/PageHeader/index.d.ts +2 -2
  407. package/lib/components/PageHeader/index.js +0 -2
  408. package/lib/components/Pagination/Pagination.Skeleton.js +4 -5
  409. package/lib/components/Pagination/Pagination.js +24 -25
  410. package/lib/components/Pagination/experimental/PageSelector.js +8 -9
  411. package/lib/components/Pagination/experimental/Pagination.js +20 -21
  412. package/lib/components/PaginationNav/PaginationNav.js +33 -38
  413. package/lib/components/Popover/index.js +26 -28
  414. package/lib/components/ProgressBar/ProgressBar.js +11 -12
  415. package/lib/components/ProgressIndicator/ProgressIndicator.Skeleton.js +5 -6
  416. package/lib/components/ProgressIndicator/ProgressIndicator.js +29 -32
  417. package/lib/components/RadioTile/RadioTile.js +17 -18
  418. package/lib/components/Search/Search.Skeleton.js +5 -6
  419. package/lib/components/Search/Search.js +26 -29
  420. package/lib/components/Select/Select.Skeleton.js +5 -6
  421. package/lib/components/Select/Select.js +24 -25
  422. package/lib/components/SelectItem/SelectItem.js +8 -9
  423. package/lib/components/SelectItemGroup/SelectItemGroup.js +7 -8
  424. package/lib/components/ShapeIndicator/index.js +7 -8
  425. package/lib/components/SkeletonIcon/SkeletonIcon.js +4 -5
  426. package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.js +4 -5
  427. package/lib/components/SkeletonText/SkeletonText.js +8 -9
  428. package/lib/components/Slider/Slider.Skeleton.js +8 -9
  429. package/lib/components/Slider/Slider.js +75 -83
  430. package/lib/components/Slider/SliderHandles.js +6 -6
  431. package/lib/components/StructuredList/StructuredList.Skeleton.js +5 -6
  432. package/lib/components/Tabs/Tabs.Skeleton.js +5 -6
  433. package/lib/components/Tabs/Tabs.js +83 -98
  434. package/lib/components/Tabs/usePressable.js +7 -8
  435. package/lib/components/Tag/DismissibleTag.js +16 -17
  436. package/lib/components/Tag/OperationalTag.js +10 -11
  437. package/lib/components/Tag/SelectableTag.js +13 -14
  438. package/lib/components/Tag/Tag.Skeleton.js +5 -6
  439. package/lib/components/Tag/Tag.js +19 -20
  440. package/lib/components/Text/Text.js +6 -7
  441. package/lib/components/Text/TextDirection.js +5 -6
  442. package/lib/components/TextArea/TextArea.js +7 -7
  443. package/lib/components/TextInput/ControlledPasswordInput.js +24 -25
  444. package/lib/components/TextInput/PasswordInput.js +26 -27
  445. package/lib/components/TextInput/TextInput.Skeleton.js +5 -6
  446. package/lib/components/TextInput/TextInput.js +27 -28
  447. package/lib/components/TextInput/util.js +14 -17
  448. package/lib/components/Theme/index.js +10 -12
  449. package/lib/components/Tile/Tile.js +68 -74
  450. package/lib/components/TileGroup/TileGroup.d.ts +4 -4
  451. package/lib/components/TileGroup/TileGroup.js +44 -52
  452. package/lib/components/TileGroup/index.d.ts +3 -3
  453. package/lib/components/Toggle/Toggle.Skeleton.js +4 -5
  454. package/lib/components/Toggle/Toggle.js +17 -18
  455. package/lib/components/ToggleSmall/ToggleSmall.Skeleton.js +6 -7
  456. package/lib/components/Toggletip/index.js +33 -39
  457. package/lib/components/Tooltip/DefinitionTooltip.js +13 -14
  458. package/lib/components/Tooltip/Tooltip.js +15 -16
  459. package/lib/components/TreeView/TreeNode.js +20 -21
  460. package/lib/components/TreeView/TreeView.js +14 -16
  461. package/lib/components/UIShell/Content.js +6 -7
  462. package/lib/components/UIShell/Header.js +5 -6
  463. package/lib/components/UIShell/HeaderContainer.js +5 -6
  464. package/lib/components/UIShell/HeaderGlobalAction.js +12 -13
  465. package/lib/components/UIShell/HeaderMenu.d.ts +10 -112
  466. package/lib/components/UIShell/HeaderMenu.js +152 -199
  467. package/lib/components/UIShell/HeaderMenuButton.js +10 -11
  468. package/lib/components/UIShell/HeaderMenuItem.js +12 -12
  469. package/lib/components/UIShell/HeaderName.js +6 -7
  470. package/lib/components/UIShell/HeaderNavigation.js +7 -8
  471. package/lib/components/UIShell/HeaderPanel.js +9 -10
  472. package/lib/components/UIShell/HeaderSideNavItems.js +5 -6
  473. package/lib/components/UIShell/Link.js +8 -9
  474. package/lib/components/UIShell/SideNav.js +23 -25
  475. package/lib/components/UIShell/SideNavDetails.js +6 -7
  476. package/lib/components/UIShell/SideNavDivider.js +3 -4
  477. package/lib/components/UIShell/SideNavFooter.js +6 -7
  478. package/lib/components/UIShell/SideNavHeader.js +5 -6
  479. package/lib/components/UIShell/SideNavIcon.js +5 -6
  480. package/lib/components/UIShell/SideNavItem.js +5 -6
  481. package/lib/components/UIShell/SideNavItems.js +5 -6
  482. package/lib/components/UIShell/SideNavLink.js +10 -11
  483. package/lib/components/UIShell/SideNavLinkText.js +5 -6
  484. package/lib/components/UIShell/SideNavMenu.js +11 -12
  485. package/lib/components/UIShell/SkipToContent.js +7 -8
  486. package/lib/components/UIShell/Switcher.js +4 -5
  487. package/lib/components/UIShell/SwitcherDivider.js +4 -5
  488. package/lib/components/UnorderedList/UnorderedList.js +6 -7
  489. package/lib/index.js +36 -36
  490. package/lib/internal/FloatingMenu.js +26 -28
  491. package/lib/internal/Selection.js +15 -17
  492. package/lib/internal/getAnnouncement.d.ts +8 -0
  493. package/lib/internal/getAnnouncement.js +26 -0
  494. package/lib/internal/keyboard/match.js +6 -7
  495. package/lib/internal/useControllableState.d.ts +1 -1
  496. package/lib/internal/useControllableState.js +8 -9
  497. package/lib/internal/useDelayedState.js +1 -2
  498. package/lib/internal/useDocumentLang.d.ts +12 -0
  499. package/lib/internal/useId.js +2 -4
  500. package/lib/internal/useMatchMedia.js +1 -2
  501. package/lib/internal/useMergedRefs.d.ts +1 -1
  502. package/lib/internal/useNoInteractiveChildren.js +2 -4
  503. package/lib/internal/useNormalizedInputProps.js +9 -10
  504. package/lib/internal/useOverflowItems.d.ts +29 -0
  505. package/lib/internal/useOverflowItems.js +126 -0
  506. package/lib/internal/useResizeObserver.js +4 -5
  507. package/lib/internal/useSavedCallback.js +1 -3
  508. package/lib/internal/wrapFocus.js +20 -29
  509. package/lib/prop-types/deprecate.js +1 -4
  510. package/lib/prop-types/deprecateValuesWithin.js +1 -4
  511. package/lib/prop-types/isRequiredOneOf.js +1 -4
  512. package/lib/prop-types/requiredIfGivenPropIsTruthy.js +1 -4
  513. package/lib/tools/events.js +1 -4
  514. package/lib/tools/mergeRefs.js +9 -14
  515. package/lib/tools/uniqueId.js +1 -2
  516. package/lib/tools/wrapComponent.js +9 -11
  517. package/package.json +21 -19
  518. package/telemetry.yml +25 -1
  519. package/es/components/ContentSwitcher/index.js +0 -13
  520. package/es/feature-flags.d.ts +0 -7
  521. package/es/internal/useAnnouncer.js +0 -21
  522. package/lib/components/ContentSwitcher/index.js +0 -18
  523. package/lib/feature-flags.d.ts +0 -7
  524. package/lib/internal/useAnnouncer.js +0 -25
@@ -36,28 +36,27 @@ const translationKeys = {
36
36
  const translateWithId = id => {
37
37
  return translationKeys[id];
38
38
  };
39
- const TableToolbarSearch = _ref => {
40
- let {
41
- className,
42
- searchContainerClass,
43
- onChange: onChangeProp,
44
- onClear = noopFn.noopFn,
45
- translateWithId: t = translateWithId,
46
- placeholder,
47
- labelText,
48
- expanded: expandedProp,
49
- defaultExpanded,
50
- defaultValue,
51
- disabled,
52
- onExpand,
53
- persistent = false,
54
- id,
55
- onBlur,
56
- onFocus,
57
- size = 'lg',
58
- tabIndex = '0',
59
- ...rest
60
- } = _ref;
39
+ const TableToolbarSearch = ({
40
+ className,
41
+ searchContainerClass,
42
+ onChange: onChangeProp,
43
+ onClear = noopFn.noopFn,
44
+ translateWithId: t = translateWithId,
45
+ placeholder,
46
+ labelText,
47
+ expanded: expandedProp,
48
+ defaultExpanded,
49
+ defaultValue,
50
+ disabled,
51
+ onExpand,
52
+ persistent = false,
53
+ id,
54
+ onBlur,
55
+ onFocus,
56
+ size = 'lg',
57
+ tabIndex = '0',
58
+ ...rest
59
+ }) => {
61
60
  const {
62
61
  current: controlled
63
62
  } = React.useRef(expandedProp !== undefined);
@@ -88,8 +87,7 @@ const TableToolbarSearch = _ref => {
88
87
  [`${prefix}--toolbar-search-container-expandable`]: !persistent,
89
88
  [`${prefix}--toolbar-search-container-persistent`]: persistent
90
89
  });
91
- const handleExpand = function (event) {
92
- let value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !expanded;
90
+ const handleExpand = (event, value = !expanded) => {
93
91
  if (!disabled) {
94
92
  if (!controlled && !persistent) {
95
93
  setExpandedState(value);
@@ -43,10 +43,9 @@ const getNextSortDirection = (prevHeader, header, prevState) => {
43
43
  // in descending order by default
44
44
  return sortStates.sortStates.ASC;
45
45
  };
46
- const getNextSortState = (props, state, _ref) => {
47
- let {
48
- key
49
- } = _ref;
46
+ const getNextSortState = (props, state, {
47
+ key
48
+ }) => {
50
49
  const {
51
50
  sortDirection,
52
51
  sortHeaderKey
@@ -13,20 +13,18 @@ Object.defineProperty(exports, '__esModule', { value: true });
13
13
  * Filters row IDs based on whether any of the cell values in the row include
14
14
  * the input value as a substring. Boolean cell values are ignored.
15
15
  */
16
- const defaultFilterRows = _ref => {
17
- let {
18
- rowIds,
19
- headers,
20
- cellsById,
21
- inputValue,
22
- getCellId
23
- } = _ref;
16
+ const defaultFilterRows = ({
17
+ rowIds,
18
+ headers,
19
+ cellsById,
20
+ inputValue,
21
+ getCellId
22
+ }) => {
24
23
  const normalizedInput = inputValue.trim().toLowerCase();
25
24
  if (!normalizedInput) return rowIds;
26
- return rowIds.filter(rowId => headers.some(_ref2 => {
27
- let {
28
- key
29
- } = _ref2;
25
+ return rowIds.filter(rowId => headers.some(({
26
+ key
27
+ }) => {
30
28
  const cellId = getCellId(rowId, key);
31
29
  const cell = cellsById[cellId];
32
30
  if (typeof cell.value === 'boolean') return false;
@@ -18,8 +18,7 @@ var cells = require('./cells.js');
18
18
  * @param {Array<object>} headers
19
19
  * @returns {object}
20
20
  */
21
- const normalize = function (rows, headers) {
22
- let prevState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
21
+ const normalize = (rows, headers, prevState = {}) => {
23
22
  const {
24
23
  rowsById: prevRowsByIds
25
24
  } = prevState;
@@ -50,12 +49,11 @@ const normalize = function (rows, headers) {
50
49
  rowsById[row.id].isSelected = prevRowsByIds[row.id].isSelected;
51
50
  rowsById[row.id].isExpanded = prevRowsByIds[row.id].isExpanded;
52
51
  }
53
- headers.forEach((_ref, i) => {
54
- let {
55
- key,
56
- slug,
57
- decorator
58
- } = _ref;
52
+ headers.forEach(({
53
+ key,
54
+ slug,
55
+ decorator
56
+ }, i) => {
59
57
  const id = cells.getCellId(row.id, key);
60
58
  // Initialize the cell info and state values, namely for editing
61
59
  cellsById[id] = {
@@ -17,8 +17,7 @@ var sortStates = require('../state/sortStates.js');
17
17
  * type, the default sort algorithm will be used for those types. Otherwise, the
18
18
  * values will be converted to strings for comparison.
19
19
  */
20
- const compare = function (a, b) {
21
- let locale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'en';
20
+ const compare = (a, b, locale = 'en') => {
22
21
  // prevent multiple null values in one column (sorting breaks)
23
22
  if (a === null) a = '';
24
23
  if (b === null) b = '';
@@ -41,8 +40,7 @@ const compare = function (a, b) {
41
40
  *
42
41
  * Note: Uses numeric comparison if strings are numeric.
43
42
  */
44
- const compareStrings = function (a, b) {
45
- let locale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'en';
43
+ const compareStrings = (a, b, locale = 'en') => {
46
44
  const isNumeric = !isNaN(parseFloat(a)) && !isNaN(parseFloat(b));
47
45
  return a.localeCompare(b, locale, {
48
46
  numeric: isNumeric
@@ -51,38 +49,34 @@ const compareStrings = function (a, b) {
51
49
  /**
52
50
  * Sorts table rows based on the provided column key and direction.
53
51
  */
54
- const sortRows = _ref => {
55
- let {
56
- rowIds,
57
- cellsById,
58
- sortDirection,
52
+ const sortRows = ({
53
+ rowIds,
54
+ cellsById,
55
+ sortDirection,
56
+ key,
57
+ locale = 'en',
58
+ sortRow = defaultSortRow
59
+ }) => rowIds.slice().sort((a, b) => {
60
+ const cellA = cellsById[cells.getCellId(a, key)];
61
+ const cellB = cellsById[cells.getCellId(b, key)];
62
+ return sortRow(cellA?.value, cellB?.value, {
59
63
  key,
60
- locale = 'en',
61
- sortRow = defaultSortRow
62
- } = _ref;
63
- return rowIds.slice().sort((a, b) => {
64
- const cellA = cellsById[cells.getCellId(a, key)];
65
- const cellB = cellsById[cells.getCellId(b, key)];
66
- return sortRow(cellA?.value, cellB?.value, {
67
- key,
68
- sortDirection,
69
- sortStates: sortStates.sortStates,
70
- locale,
71
- compare,
72
- rowIds: [a, b]
73
- });
64
+ sortDirection,
65
+ sortStates: sortStates.sortStates,
66
+ locale,
67
+ compare,
68
+ rowIds: [a, b]
74
69
  });
75
- };
70
+ });
76
71
 
77
72
  /**
78
73
  * Sorts table rows based on the sort direction.
79
74
  */
80
- const defaultSortRow = (cellA, cellB, _ref2) => {
81
- let {
82
- sortDirection,
83
- sortStates,
84
- locale
85
- } = _ref2;
75
+ const defaultSortRow = (cellA, cellB, {
76
+ sortDirection,
77
+ sortStates,
78
+ locale
79
+ }) => {
86
80
  if (sortDirection === sortStates.ASC) {
87
81
  return compare(cellA, cellB, locale);
88
82
  }
@@ -22,18 +22,17 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
22
22
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
23
23
 
24
24
  var _span, _span2;
25
- const DataTableSkeleton = _ref => {
26
- let {
27
- headers,
28
- rowCount = 5,
29
- columnCount = 5,
30
- zebra = false,
31
- compact = false,
32
- className,
33
- showHeader = true,
34
- showToolbar = true,
35
- ...rest
36
- } = _ref;
25
+ const DataTableSkeleton = ({
26
+ headers,
27
+ rowCount = 5,
28
+ columnCount = 5,
29
+ zebra = false,
30
+ compact = false,
31
+ className,
32
+ showHeader = true,
33
+ showToolbar = true,
34
+ ...rest
35
+ }) => {
37
36
  const prefix = usePrefix.usePrefix();
38
37
  const dataTableSkeletonClasses = cx__default["default"](className, {
39
38
  [`${prefix}--skeleton`]: true,
@@ -21,14 +21,13 @@ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
21
21
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
22
22
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
23
23
 
24
- const DatePickerSkeleton = _ref => {
25
- let {
26
- range,
27
- id,
28
- hideLabel,
29
- className,
30
- ...rest
31
- } = _ref;
24
+ const DatePickerSkeleton = ({
25
+ range,
26
+ id,
27
+ hideLabel,
28
+ className,
29
+ ...rest
30
+ }) => {
32
31
  const prefix = usePrefix.usePrefix();
33
32
  const dateInput = /*#__PURE__*/React__default["default"].createElement("div", {
34
33
  className: `${prefix}--date-picker-container`
@@ -144,35 +144,34 @@ function updateClassNames(calendar, prefix) {
144
144
  });
145
145
  }
146
146
  }
147
- const DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function DatePicker(_ref, ref) {
148
- let {
149
- allowInput,
150
- appendTo,
151
- children,
152
- className,
153
- closeOnSelect = true,
154
- dateFormat = 'm/d/Y',
155
- datePickerType,
156
- disable,
157
- enable,
158
- inline,
159
- invalid,
160
- invalidText,
161
- warn,
162
- warnText,
163
- light = false,
164
- locale = 'en',
165
- maxDate,
166
- minDate,
167
- onChange,
168
- onClose,
169
- onOpen,
170
- readOnly = false,
171
- short = false,
172
- value,
173
- parseDate: parseDateProp,
174
- ...rest
175
- } = _ref;
147
+ const DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function DatePicker({
148
+ allowInput,
149
+ appendTo,
150
+ children,
151
+ className,
152
+ closeOnSelect = true,
153
+ dateFormat = 'm/d/Y',
154
+ datePickerType,
155
+ disable,
156
+ enable,
157
+ inline,
158
+ invalid,
159
+ invalidText,
160
+ warn,
161
+ warnText,
162
+ light = false,
163
+ locale = 'en',
164
+ maxDate,
165
+ minDate,
166
+ onChange,
167
+ onClose,
168
+ onOpen,
169
+ readOnly = false,
170
+ short = false,
171
+ value,
172
+ parseDate: parseDateProp,
173
+ ...rest
174
+ }, ref) {
176
175
  const prefix = usePrefix.usePrefix();
177
176
  const {
178
177
  isFluid
@@ -220,6 +219,7 @@ const DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Da
220
219
  }
221
220
  }, [calendarCloseEvent, handleCalendarClose]);
222
221
  const endInputField = React.useRef(null);
222
+ const lastFocusedField = React.useRef(null);
223
223
  const savedOnChange = useSavedCallback.useSavedCallback(onChange);
224
224
  const savedOnOpen = useSavedCallback.useSavedCallback(onOpen);
225
225
  const datePickerClasses = cx__default["default"](`${prefix}--date-picker`, {
@@ -368,40 +368,68 @@ const DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Da
368
368
  noCalendar: readOnly,
369
369
  nextArrow: rightArrowHTML,
370
370
  prevArrow: leftArrowHTML,
371
- onChange: function () {
371
+ onChange: (...args) => {
372
372
  if (!readOnly) {
373
- savedOnChange(...arguments);
373
+ savedOnChange(...args);
374
374
  }
375
375
  },
376
376
  onReady: onHook,
377
377
  onMonthChange: onHook,
378
378
  onYearChange: onHook,
379
- onOpen: function () {
380
- onHook(...arguments);
381
- savedOnOpen(...arguments);
379
+ onOpen: (...args) => {
380
+ onHook(...args);
381
+ savedOnOpen(...args);
382
382
  },
383
383
  onValueUpdate: onHook
384
384
  };
385
385
  const calendar = flatpickr__default["default"](start, flatpickerConfig);
386
386
  calendarRef.current = calendar;
387
- function handleArrowDown(event) {
387
+ const handleInputFieldKeyDown = event => {
388
+ const {
389
+ calendarContainer,
390
+ selectedDateElem: fpSelectedDateElem,
391
+ todayDateElem: fpTodayDateElem
392
+ } = calendar;
388
393
  if (match.match(event, keys.Escape)) {
389
- calendar?.calendarContainer?.classList.remove('open');
394
+ calendarContainer.classList.remove('open');
390
395
  }
391
- if (match.match(event, keys.ArrowDown)) {
392
- if (event.target == endInputField.current) {
393
- calendar?.calendarContainer?.classList.add('open');
396
+ if (match.match(event, keys.Tab)) {
397
+ if (!event.shiftKey) {
398
+ event.preventDefault();
399
+ calendarContainer.classList.add('open');
400
+ const selectedDateElem = calendarContainer.querySelector('.selected') && fpSelectedDateElem;
401
+ const todayDateElem = calendarContainer.querySelector('.today') && fpTodayDateElem;
402
+ (selectedDateElem || todayDateElem || calendarContainer.querySelector('.flatpickr-day[tabindex]') || calendarContainer).focus();
403
+ if (event.target === startInputField.current) {
404
+ lastFocusedField.current = startInputField.current;
405
+ } else if (event.target === endInputField.current) {
406
+ lastFocusedField.current = endInputField.current;
407
+ }
408
+ } else if (calendarRef.current?.isOpen && event.target === startInputField.current) {
409
+ calendarRef.current.close();
410
+ onCalendarClose(calendarRef.current.selectedDates, '', calendarRef.current, event);
394
411
  }
395
- const {
396
- calendarContainer,
397
- selectedDateElem: fpSelectedDateElem,
398
- todayDateElem: fpTodayDateElem
399
- } = calendar;
400
- const selectedDateElem = calendarContainer.querySelector('.selected') && fpSelectedDateElem;
401
- const todayDateElem = calendarContainer.querySelector('.today') && fpTodayDateElem;
402
- (selectedDateElem || todayDateElem || calendarContainer.querySelector('.flatpickr-day[tabindex]') || calendarContainer).focus();
403
412
  }
404
- }
413
+ };
414
+ const handleCalendarKeyDown = event => {
415
+ if (!calendarRef.current || !startInputField.current) return;
416
+ const lastInputField = datePickerType == 'range' ? endInputField.current : startInputField.current;
417
+ if (match.match(event, keys.Tab)) {
418
+ if (!event.shiftKey) {
419
+ if (lastFocusedField.current === lastInputField) {
420
+ lastInputField.focus();
421
+ calendarRef.current.close();
422
+ onCalendarClose(calendarRef.current.selectedDates, '', calendarRef.current, event);
423
+ } else {
424
+ event.preventDefault();
425
+ lastInputField.focus();
426
+ }
427
+ } else {
428
+ event.preventDefault();
429
+ (lastFocusedField.current || startInputField.current).focus();
430
+ }
431
+ }
432
+ };
405
433
  function handleOnChange(event) {
406
434
  const {
407
435
  target
@@ -425,7 +453,7 @@ const DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Da
425
453
  }
426
454
  }
427
455
  if (start) {
428
- start.addEventListener('keydown', handleArrowDown);
456
+ start.addEventListener('keydown', handleInputFieldKeyDown);
429
457
  start.addEventListener('change', handleOnChange);
430
458
  start.addEventListener('keypress', handleKeyPress);
431
459
  if (calendar && calendar.calendarContainer) {
@@ -438,10 +466,13 @@ const DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Da
438
466
  }
439
467
  }
440
468
  if (end) {
441
- end.addEventListener('keydown', handleArrowDown);
469
+ end.addEventListener('keydown', handleInputFieldKeyDown);
442
470
  end.addEventListener('change', handleOnChange);
443
471
  end.addEventListener('keypress', handleKeyPress);
444
472
  }
473
+ if (calendar.calendarContainer) {
474
+ calendar.calendarContainer.addEventListener('keydown', handleCalendarKeyDown);
475
+ }
445
476
 
446
477
  //component did unmount equivalent
447
478
  return () => {
@@ -462,14 +493,17 @@ const DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Da
462
493
  }
463
494
  }
464
495
  if (start) {
465
- start.removeEventListener('keydown', handleArrowDown);
496
+ start.removeEventListener('keydown', handleInputFieldKeyDown);
466
497
  start.removeEventListener('change', handleOnChange);
467
498
  start.removeEventListener('keypress', handleKeyPress);
468
499
  }
469
500
  if (end) {
470
- end.removeEventListener('keydown', handleArrowDown);
501
+ end.removeEventListener('keydown', handleInputFieldKeyDown);
471
502
  end.removeEventListener('change', handleOnChange);
472
- end.removeEventListener('change', handleKeyPress);
503
+ end.removeEventListener('keypress', handleKeyPress);
504
+ }
505
+ if (calendar.calendarContainer) {
506
+ calendar.calendarContainer.removeEventListener('keydown', handleCalendarKeyDown);
473
507
  }
474
508
  };
475
509
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -566,17 +600,6 @@ const DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Da
566
600
  }
567
601
  }, [value, prefix]); //eslint-disable-line react-hooks/exhaustive-deps
568
602
 
569
- React.useEffect(() => {
570
- if (!calendarRef.current || !startInputField.current) return;
571
- const handleKeyDown = event => {
572
- if (match.match(event, keys.Tab) && !event.shiftKey && document.activeElement === endInputField.current && calendarRef.current?.isOpen) {
573
- calendarRef.current.close();
574
- onCalendarClose(calendarRef.current.selectedDates, '', calendarRef.current, event);
575
- }
576
- };
577
- document.addEventListener('keydown', handleKeyDown, true);
578
- return () => document.removeEventListener('keydown', handleKeyDown, true);
579
- }, [calendarRef, startInputField, endInputField, onCalendarClose]);
580
603
  let fluidError;
581
604
  if (isFluid) {
582
605
  if (invalid) {
@@ -237,12 +237,11 @@ DatePickerInput.propTypes = {
237
237
  */
238
238
  warnText: PropTypes__default["default"].node
239
239
  };
240
- function DatePickerIcon(_ref) {
241
- let {
242
- datePickerType,
243
- invalid,
244
- warn
245
- } = _ref;
240
+ function DatePickerIcon({
241
+ datePickerType,
242
+ invalid,
243
+ warn
244
+ }) {
246
245
  const prefix = usePrefix.usePrefix();
247
246
  const {
248
247
  isFluid