@carbon/react 1.29.0 → 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 +154 -177
  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 +1 -2
  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 +154 -177
  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 +1 -2
  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
@@ -32,39 +32,40 @@ const getNextIndex = (key, index, arrayLength) => {
32
32
  if (match.match(key, keys.ArrowRight)) {
33
33
  return (index + 1) % arrayLength;
34
34
  }
35
-
36
35
  if (match.match(key, keys.ArrowLeft)) {
37
36
  return (index + arrayLength - 1) % arrayLength;
38
37
  }
39
38
  };
39
+
40
40
  /**
41
41
  * A flag `node.compareDocumentPosition(target)` returns,
42
42
  * that indicates `target` is located earlier than `node` in the document or `target` contains `node`.
43
43
  */
44
-
45
- const DOCUMENT_POSITION_BROAD_PRECEDING = // Checks `typeof Node` for `react-docgen`
44
+ const DOCUMENT_POSITION_BROAD_PRECEDING =
45
+ // Checks `typeof Node` for `react-docgen`
46
46
  typeof Node !== 'undefined' && Node.DOCUMENT_POSITION_PRECEDING | Node.DOCUMENT_POSITION_CONTAINS;
47
+
47
48
  /**
48
49
  * A flag `node.compareDocumentPosition(target)` returns,
49
50
  * that indicates `target` is located later than `node` in the document or `node` contains `target`.
50
51
  */
51
-
52
- const DOCUMENT_POSITION_BROAD_FOLLOWING = // Checks `typeof Node` for `react-docgen`
52
+ const DOCUMENT_POSITION_BROAD_FOLLOWING =
53
+ // Checks `typeof Node` for `react-docgen`
53
54
  typeof Node !== 'undefined' && Node.DOCUMENT_POSITION_FOLLOWING | Node.DOCUMENT_POSITION_CONTAINED_BY;
55
+
54
56
  /**
55
57
  * CSS selector that selects major nodes that are sequential-focusable.
56
58
  */
57
-
58
59
  const selectorTabbable = `
59
60
  a[href], area[href], input:not([disabled]):not([tabindex='-1']),
60
61
  button:not([disabled]):not([tabindex='-1']),select:not([disabled]):not([tabindex='-1']),
61
62
  textarea:not([disabled]):not([tabindex='-1']),
62
63
  iframe, object, embed, *[tabindex]:not([tabindex='-1']):not([disabled]), *[contenteditable=true]
63
64
  `;
65
+
64
66
  /**
65
67
  * CSS selector that selects major nodes that are click focusable
66
68
  */
67
-
68
69
  const selectorFocusable = `
69
70
  a[href], area[href], input:not([disabled]),
70
71
  button:not([disabled]),select:not([disabled]),
@@ -11,7 +11,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
11
11
 
12
12
  function useAnnouncer(textCount, maxCount) {
13
13
  const lastTen = maxCount - 10;
14
-
15
14
  if (textCount >= lastTen) {
16
15
  return `${maxCount - textCount} characters left.`;
17
16
  }
@@ -27,14 +27,11 @@ var React = require('react');
27
27
  * @param {Element|object} anchor The element or ref the menu should visually be attached to.
28
28
  * @returns {useAttachedMenuReturn}
29
29
  */
30
-
31
30
  function useAttachedMenu(anchor) {
32
31
  const [open, setOpen] = React.useState(false);
33
32
  const [position, setPosition] = React.useState([[-1, -1], [-1, -1]]);
34
-
35
33
  function openMenu() {
36
- const anchorEl = (anchor === null || anchor === void 0 ? void 0 : anchor.current) || anchor;
37
-
34
+ const anchorEl = anchor?.current || anchor;
38
35
  if (anchorEl) {
39
36
  const {
40
37
  left,
@@ -44,14 +41,11 @@ function useAttachedMenu(anchor) {
44
41
  } = anchorEl.getBoundingClientRect();
45
42
  setPosition([[left, right], [top, bottom]]);
46
43
  }
47
-
48
44
  setOpen(true);
49
45
  }
50
-
51
46
  function closeMenu() {
52
47
  setOpen(false);
53
48
  }
54
-
55
49
  function handleClick() {
56
50
  if (open) {
57
51
  closeMenu();
@@ -59,7 +53,6 @@ function useAttachedMenu(anchor) {
59
53
  openMenu();
60
54
  }
61
55
  }
62
-
63
56
  function handleMousedown(e) {
64
57
  // prevent default for mousedown on trigger element to avoid
65
58
  // the "blur" event from firing on the menu as this would close
@@ -67,7 +60,6 @@ function useAttachedMenu(anchor) {
67
60
  // "blur" event.
68
61
  e.preventDefault();
69
62
  }
70
-
71
63
  return {
72
64
  open,
73
65
  x: position[0],
@@ -33,7 +33,6 @@ var warning = require('./warning.js');
33
33
  * uncontrolled
34
34
  * @returns {[any, Function]}
35
35
  */
36
-
37
36
  function useControllableState(_ref) {
38
37
  let {
39
38
  defaultValue,
@@ -43,42 +42,36 @@ function useControllableState(_ref) {
43
42
  } = _ref;
44
43
  const [state, internalSetState] = React.useState(value ?? defaultValue);
45
44
  const controlled = React.useRef(null);
46
-
47
45
  if (controlled.current === null) {
48
46
  controlled.current = value !== undefined;
49
47
  }
50
-
51
48
  function setState(stateOrUpdater) {
52
49
  const value = typeof stateOrUpdater === 'function' ? stateOrUpdater(state) : stateOrUpdater;
53
-
54
50
  if (controlled.current === false) {
55
51
  internalSetState(value);
56
52
  }
57
-
58
53
  if (onChange) {
59
54
  onChange(value);
60
55
  }
61
56
  }
62
-
63
57
  React.useEffect(() => {
64
- const controlledValue = value !== undefined; // Uncontrolled -> Controlled
65
- // If the component prop is uncontrolled, the prop value should be undefined
58
+ const controlledValue = value !== undefined;
66
59
 
60
+ // Uncontrolled -> Controlled
61
+ // If the component prop is uncontrolled, the prop value should be undefined
67
62
  if (controlled.current === false && controlledValue) {
68
63
  process.env.NODE_ENV !== "production" ? warning.warning(false, 'A component is changing an uncontrolled %s component to be controlled. ' + 'This is likely caused by the value changing to a defined value ' + 'from undefined. Decide between using a controlled or uncontrolled ' + 'value for the lifetime of the component. ' + 'More info: https://reactjs.org/link/controlled-components', name) : void 0;
69
- } // Controlled -> Uncontrolled
70
- // If the component prop is controlled, the prop value should be defined
71
-
64
+ }
72
65
 
66
+ // Controlled -> Uncontrolled
67
+ // If the component prop is controlled, the prop value should be defined
73
68
  if (controlled.current === true && !controlledValue) {
74
69
  process.env.NODE_ENV !== "production" ? warning.warning(false, 'A component is changing a controlled %s component to be uncontrolled. ' + 'This is likely caused by the value changing to an undefined value ' + 'from a defined one. Decide between using a controlled or ' + 'uncontrolled value for the lifetime of the component. ' + 'More info: https://reactjs.org/link/controlled-components', name) : void 0;
75
70
  }
76
71
  }, [name, value]);
77
-
78
72
  if (controlled.current === true) {
79
73
  return [value, setState];
80
74
  }
81
-
82
75
  return [state, setState];
83
76
  }
84
77
 
@@ -24,19 +24,17 @@ var React = require('react');
24
24
 
25
25
  function useDelayedState(initialState) {
26
26
  const [state, setState] = React.useState(initialState);
27
- const timeoutId = React.useRef(null); // We use `useCallback` to match the signature of React's `useState` which will
27
+ const timeoutId = React.useRef(null);
28
+ // We use `useCallback` to match the signature of React's `useState` which will
28
29
  // always return the same reference for the `setState` updater
29
-
30
30
  const setStateWithDelay = React.useCallback(function (stateToSet) {
31
31
  let delayMs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
32
32
  window.clearTimeout(timeoutId.current ?? undefined);
33
33
  timeoutId.current = null;
34
-
35
34
  if (delayMs === 0) {
36
35
  setState(stateToSet);
37
36
  return;
38
37
  }
39
-
40
38
  timeoutId.current = window.setTimeout(() => {
41
39
  setState(stateToSet);
42
40
  timeoutId.current = null;
@@ -17,7 +17,6 @@ var React = require('react');
17
17
  *
18
18
  * @param {Function} callback
19
19
  */
20
-
21
20
  function useEffectOnce(callback) {
22
21
  const savedCallback = React.useRef(callback);
23
22
  const effectGuard = React.useRef(false);
@@ -11,18 +11,76 @@ Object.defineProperty(exports, '__esModule', { value: true });
11
11
 
12
12
  var React = require('react');
13
13
 
14
+ /* eslint-disable jsdoc/check-tag-names */
15
+
16
+ /**
17
+ * @template {keyof GlobalEventHandlersEventMap} E
18
+ * @typedef {(event: GlobalEventHandlersEventMap[E]) => void} GlobalEventCallback
19
+ */
20
+
21
+ /**
22
+ * @template T
23
+ * @typedef {import('react').MutableRefObject<T>} MutableRefObject<T>
24
+ */
25
+
26
+ /**
27
+ * @template {keyof GlobalEventHandlersEventMap} E
28
+ * @param {HTMLElement | MutableRefObject<HTMLElement | null>} elementOrRef
29
+ * @param {E} eventName
30
+ * @param {GlobalEventCallback<E>} callback
31
+ */
32
+ function useEvent(elementOrRef, eventName, callback) {
33
+ /**
34
+ * @type {MutableRefObject<GlobalEventCallback<E> | null>}
35
+ */
36
+ const savedCallback = React.useRef(null);
37
+ React.useEffect(() => {
38
+ savedCallback.current = callback;
39
+ }, [callback]);
40
+ React.useEffect(() => {
41
+ /**
42
+ * @type {GlobalEventCallback<E>}
43
+ */
44
+ const handler = event => {
45
+ if (savedCallback.current) {
46
+ savedCallback.current(event);
47
+ }
48
+ };
49
+ const element = 'current' in elementOrRef ? elementOrRef.current : elementOrRef;
50
+ element?.addEventListener?.(eventName, handler);
51
+ return () => {
52
+ element?.removeEventListener?.(eventName, handler);
53
+ };
54
+ }, [elementOrRef, eventName]);
55
+ }
56
+
57
+ /**
58
+ * @template {keyof WindowEventMap} E
59
+ * @typedef {(event: WindowEventMap[E]) => void} WindowEventCallback
60
+ */
61
+
62
+ /**
63
+ * @template {keyof WindowEventMap} E
64
+ * @param {E} eventName
65
+ * @param {WindowEventCallback<E>} callback
66
+ */
14
67
  function useWindowEvent(eventName, callback) {
68
+ /**
69
+ * @type {MutableRefObject<WindowEventCallback<E> | null>}
70
+ */
15
71
  const savedCallback = React.useRef(null);
16
72
  React.useEffect(() => {
17
73
  savedCallback.current = callback;
18
- });
74
+ }, [callback]);
19
75
  React.useEffect(() => {
76
+ /**
77
+ * @type {WindowEventCallback<E>}
78
+ */
20
79
  function handler(event) {
21
80
  if (savedCallback.current) {
22
81
  savedCallback.current(event);
23
82
  }
24
83
  }
25
-
26
84
  window.addEventListener(eventName, handler);
27
85
  return () => {
28
86
  window.removeEventListener(eventName, handler);
@@ -30,4 +88,5 @@ function useWindowEvent(eventName, callback) {
30
88
  }, [eventName]);
31
89
  }
32
90
 
91
+ exports.useEvent = useEvent;
33
92
  exports.useWindowEvent = useWindowEvent;
@@ -18,22 +18,19 @@ var useIdPrefix = require('./useIdPrefix.js');
18
18
  const getId = setupGetInstanceId["default"]();
19
19
  const useIsomorphicLayoutEffect = environment.canUseDOM ? React.useLayoutEffect : React.useEffect;
20
20
  let serverHandoffCompleted = false;
21
+
21
22
  /**
22
23
  * Generate a unique ID with an optional prefix prepended to it
23
24
  * @param {string} [prefix]
24
25
  * @returns {string}
25
26
  */
26
-
27
27
  function useId() {
28
28
  let prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'id';
29
-
30
29
  const _prefix = useIdPrefix.useIdPrefix();
31
-
32
30
  const [id, setId] = React.useState(() => {
33
31
  if (serverHandoffCompleted) {
34
32
  return `${_prefix ? `${_prefix}-` : ``}${prefix}-${getId()}`;
35
33
  }
36
-
37
34
  return null;
38
35
  });
39
36
  useIsomorphicLayoutEffect(() => {
@@ -48,12 +45,12 @@ function useId() {
48
45
  }, []);
49
46
  return id;
50
47
  }
48
+
51
49
  /**
52
50
  * Generate a unique id if a given `id` is not provided
53
51
  * @param {string|undefined} id
54
52
  * @returns {string}
55
53
  */
56
-
57
54
  function useFallbackId(id) {
58
55
  const fallback = useId();
59
56
  return id ?? fallback;
@@ -11,6 +11,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
11
11
 
12
12
  var React = require('react');
13
13
 
14
+ // useLayoutEffect on the client, useEffect on the server
14
15
  const useIsomorphicEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
15
16
  var useIsomorphicEffect$1 = useIsomorphicEffect;
16
17
 
@@ -16,7 +16,6 @@ var React = require('react');
16
16
  * refs from both `React.forwardRef` and `useRef` that you would like to add to
17
17
  * the same node.
18
18
  */
19
-
20
19
  const useMergedRefs = refs => {
21
20
  return React.useCallback(node => {
22
21
  refs.forEach(ref => {
@@ -25,7 +24,8 @@ const useMergedRefs = refs => {
25
24
  } else if (ref !== null && ref !== undefined) {
26
25
  ref.current = node;
27
26
  }
28
- }); // eslint-disable-next-line react-hooks/exhaustive-deps
27
+ });
28
+ // eslint-disable-next-line react-hooks/exhaustive-deps
29
29
  }, refs);
30
30
  };
31
31
 
@@ -13,18 +13,17 @@ var React = require('react');
13
13
 
14
14
  function useNoInteractiveChildren(ref) {
15
15
  let message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'component should have no interactive child nodes';
16
-
17
16
  if (process.env.NODE_ENV !== "production") {
18
17
  // eslint-disable-next-line react-hooks/rules-of-hooks
19
18
  React.useEffect(() => {
20
19
  const node = ref.current ? getInteractiveContent(ref.current) : false;
21
-
22
20
  if (node) {
23
21
  throw new Error(`Error: ${message}.\n\nInstead found: ${node.outerHTML}`);
24
22
  }
25
23
  });
26
24
  }
27
25
  }
26
+
28
27
  /**
29
28
  * Determines if a given DOM node has interactive content, or is itself
30
29
  * interactive. It returns the interactive node if one is found
@@ -32,26 +31,22 @@ function useNoInteractiveChildren(ref) {
32
31
  * @param {HTMLElement} node
33
32
  * @returns {HTMLElement}
34
33
  */
35
-
36
34
  function getInteractiveContent(node) {
37
35
  if (!node || !node.childNodes) {
38
36
  return null;
39
37
  }
40
-
41
38
  if (isFocusable(node)) {
42
39
  return node;
43
40
  }
44
-
45
41
  for (const childNode of node.childNodes) {
46
42
  const interactiveNode = getInteractiveContent(childNode);
47
-
48
43
  if (interactiveNode) {
49
44
  return interactiveNode;
50
45
  }
51
46
  }
52
-
53
47
  return null;
54
48
  }
49
+
55
50
  /**
56
51
  * Determines if the given element is focusable, or not
57
52
  *
@@ -59,28 +54,22 @@ function getInteractiveContent(node) {
59
54
  * @returns {boolean}
60
55
  * @see https://github.com/w3c/aria-practices/blob/0553bb51588ffa517506e2a1b2ca1422ed438c5f/examples/js/utils.js#L68
61
56
  */
62
-
63
57
  function isFocusable(element) {
64
58
  if (element.tabIndex < 0) {
65
59
  return false;
66
60
  }
67
-
68
61
  if (element.disabled) {
69
62
  return false;
70
63
  }
71
-
72
64
  switch (element.nodeName) {
73
65
  case 'A':
74
66
  return !!element.href && element.rel !== 'ignore';
75
-
76
67
  case 'INPUT':
77
68
  return element.type !== 'hidden';
78
-
79
69
  case 'BUTTON':
80
70
  case 'SELECT':
81
71
  case 'TEXTAREA':
82
72
  return true;
83
-
84
73
  default:
85
74
  return false;
86
75
  }
@@ -53,7 +53,6 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
53
53
  * @param {InputProps} props - The props passed to the component
54
54
  * @returns {NormalizedInputProps}
55
55
  */
56
-
57
56
  function useNormalizedInputProps(_ref) {
58
57
  let {
59
58
  id,
@@ -75,7 +74,6 @@ function useNormalizedInputProps(_ref) {
75
74
  icon: null,
76
75
  helperId: `${id}-helper-text`
77
76
  };
78
-
79
77
  if (normalizedProps.invalid) {
80
78
  normalizedProps.icon = iconsReact.WarningFilled;
81
79
  normalizedProps.validation = /*#__PURE__*/React__default["default"].createElement("div", {
@@ -89,7 +87,6 @@ function useNormalizedInputProps(_ref) {
89
87
  id: normalizedProps.warnId
90
88
  }, warnText);
91
89
  }
92
-
93
90
  return normalizedProps;
94
91
  }
95
92
 
@@ -17,10 +17,9 @@ var React = require('react');
17
17
  * callback prop but don't want it to be added to the dependency array of an
18
18
  * effect.
19
19
  *
20
- * @param {Function} callback
20
+ * @param {Function | undefined} callback
21
21
  * @returns {Function}
22
22
  */
23
-
24
23
  function useSavedCallback(callback) {
25
24
  const savedCallback = React.useRef(callback);
26
25
  React.useEffect(() => {
@@ -10,16 +10,13 @@
10
10
  Object.defineProperty(exports, '__esModule', { value: true });
11
11
 
12
12
  const emptyFunction = function () {};
13
-
14
13
  const warning = process.env.NODE_ENV !== "production" ? function warning(condition, format) {
15
14
  for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
16
15
  args[_key - 2] = arguments[_key];
17
16
  }
18
-
19
17
  if (format === undefined) {
20
18
  throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'format argument');
21
19
  }
22
-
23
20
  if (!condition) {
24
21
  let index = 0;
25
22
  const message = format.replace(/%s/g, () => {
@@ -21,15 +21,14 @@ var findLast__default = /*#__PURE__*/_interopDefaultLegacy(findLast);
21
21
  * @param {string[]} selectorsFloatingMenus The CSS selectors that matches floating menus.
22
22
  * @returns {boolean} `true` of the given `node` is in a floating menu.
23
23
  */
24
-
25
24
  function elementOrParentIsFloatingMenu(node) {
26
25
  let selectorsFloatingMenus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
27
-
28
26
  if (node && typeof node.closest === 'function') {
29
27
  const allSelectorsFloatingMenus = [`.cds--overflow-menu-options`, `.cds--tooltip`, '.flatpickr-calendar', ...selectorsFloatingMenus];
30
28
  return allSelectorsFloatingMenus.some(selector => node.closest(selector));
31
29
  }
32
30
  }
31
+
33
32
  /**
34
33
  * Ensures the focus is kept in the given `modalNode`, implementing "focus-wrap" behavior.
35
34
  * @param {object} options The options.
@@ -40,8 +39,6 @@ function elementOrParentIsFloatingMenu(node) {
40
39
  * @param {Node} options.oldActiveNode The DOM node that previously had focus.
41
40
  * @param {Node} [options.selectorsFloatingMenus] The CSS selectors that matches floating menus.
42
41
  */
43
-
44
-
45
42
  function wrapFocus(_ref) {
46
43
  let {
47
44
  bodyNode,
@@ -51,13 +48,10 @@ function wrapFocus(_ref) {
51
48
  oldActiveNode,
52
49
  selectorsFloatingMenus
53
50
  } = _ref;
54
-
55
51
  if (bodyNode && currentActiveNode && oldActiveNode && !bodyNode.contains(currentActiveNode) && !elementOrParentIsFloatingMenu(currentActiveNode, selectorsFloatingMenus)) {
56
52
  const comparisonResult = oldActiveNode.compareDocumentPosition(currentActiveNode);
57
-
58
53
  if (currentActiveNode === startTrapNode || comparisonResult & navigation.DOCUMENT_POSITION_BROAD_PRECEDING) {
59
54
  const tabbable = findLast__default["default"](bodyNode.querySelectorAll(navigation.selectorTabbable), elem => Boolean(elem.offsetParent));
60
-
61
55
  if (tabbable) {
62
56
  tabbable.focus();
63
57
  } else if (bodyNode !== oldActiveNode) {
@@ -65,7 +59,6 @@ function wrapFocus(_ref) {
65
59
  }
66
60
  } else if (currentActiveNode === endTrapNode || comparisonResult & navigation.DOCUMENT_POSITION_BROAD_FOLLOWING) {
67
61
  const tabbable = Array.prototype.find.call(bodyNode.querySelectorAll(navigation.selectorTabbable), elem => Boolean(elem.offsetParent));
68
-
69
62
  if (tabbable) {
70
63
  tabbable.focus();
71
64
  } else if (bodyNode !== oldActiveNode) {
@@ -17,21 +17,18 @@ function deprecate(propType, message) {
17
17
  if (props[propName] === undefined) {
18
18
  return;
19
19
  }
20
-
21
20
  if (!didWarnAboutDeprecation[componentName] || !didWarnAboutDeprecation[componentName][propName]) {
22
- didWarnAboutDeprecation[componentName] = { ...didWarnAboutDeprecation[componentName],
21
+ didWarnAboutDeprecation[componentName] = {
22
+ ...didWarnAboutDeprecation[componentName],
23
23
  [propName]: true
24
24
  };
25
25
  process.env.NODE_ENV !== "production" ? warning.warning(false, message || `The prop \`${propName}\` has been deprecated for the ` + `${componentName} component. It will be removed in the next major ` + `release`) : void 0;
26
26
  }
27
-
28
27
  for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
29
28
  rest[_key - 3] = arguments[_key];
30
29
  }
31
-
32
30
  return propType(props, propName, componentName, ...rest);
33
31
  }
34
-
35
32
  return checker;
36
33
  }
37
34
 
@@ -17,20 +17,17 @@ Object.defineProperty(exports, '__esModule', { value: true });
17
17
  */
18
18
  function isRequiredOneOf(propTypes) {
19
19
  const names = Object.keys(propTypes);
20
-
21
20
  const checker = propType => function (props, propName, componentName) {
22
21
  if (process.env.NODE_ENV !== "production" && names.every(name => typeof props[name] === 'undefined')) {
23
22
  return new Error(`${componentName} requires one of the following props: ${names.join(', ')}`);
24
23
  }
25
-
26
24
  for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
27
25
  rest[_key - 3] = arguments[_key];
28
26
  }
29
-
30
27
  return propType(props, propName, componentName, ...rest);
31
28
  };
32
-
33
- return names.reduce((o, name) => ({ ...o,
29
+ return names.reduce((o, name) => ({
30
+ ...o,
34
31
  [name]: checker(propTypes[name])
35
32
  }), {});
36
33
  }
@@ -21,11 +21,9 @@ function requiredIfGivenPropIsTruthy(name, propType) {
21
21
  if (process.env.NODE_ENV !== "production" && props[name] == true && props[propName] == null) {
22
22
  return new Error(`You must provide a value for \`${propName}\` in \`${componentName}\` if \`${name}\` exists.`);
23
23
  }
24
-
25
24
  for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
26
25
  rest[_key - 3] = arguments[_key];
27
26
  }
28
-
29
27
  return propType(props, propName, componentName, ...rest);
30
28
  };
31
29
  }
@@ -19,17 +19,14 @@ function equals(arr1, arr2) {
19
19
  if (!Array.isArray(arr1) || !Array.isArray(arr2) || arr1.length !== arr2.length) {
20
20
  return false;
21
21
  }
22
-
23
22
  if (arr1 === arr2) {
24
23
  return true;
25
24
  }
26
-
27
25
  for (let i = 0; i < arr1.length; i++) {
28
26
  if (arr1[i] !== arr2[i]) {
29
27
  return false;
30
28
  }
31
29
  }
32
-
33
30
  return true;
34
31
  }
35
32
 
@@ -29,14 +29,11 @@ const composeEventHandlers = fns => function (event) {
29
29
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
30
30
  args[_key - 1] = arguments[_key];
31
31
  }
32
-
33
32
  for (let i = 0; i < fns.length; i++) {
34
33
  if (event.defaultPrevented) {
35
34
  break;
36
35
  }
37
-
38
36
  const fn = fns[i];
39
-
40
37
  if (typeof fn === 'function') {
41
38
  fn(event, ...args);
42
39
  }
@@ -17,7 +17,6 @@ const mergeRefs = function () {
17
17
  for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
18
18
  refs[_key] = arguments[_key];
19
19
  }
20
-
21
20
  return el => {
22
21
  refs.forEach(ref => {
23
22
  // https://github.com/facebook/react/issues/13029#issuecomment-410002316
@@ -29,7 +28,6 @@ const mergeRefs = function () {
29
28
  });
30
29
  };
31
30
  };
32
-
33
31
  var mergeRefs$1 = mergeRefs;
34
32
 
35
33
  exports["default"] = mergeRefs$1;
@@ -24,14 +24,12 @@ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
24
24
  * @param {{ name: string, type: string, className?: string | (prefix: string) => string }} props
25
25
  * @returns
26
26
  */
27
-
28
27
  const wrapComponent = _ref => {
29
28
  let {
30
29
  name,
31
30
  className: getClassName,
32
31
  type
33
32
  } = _ref;
34
-
35
33
  /**
36
34
  *
37
35
  * @param {{ className?: string, [x: string]: any}} param0
@@ -44,21 +42,20 @@ const wrapComponent = _ref => {
44
42
  } = _ref2;
45
43
  const prefix = usePrefix.usePrefix();
46
44
  const componentClass = cx__default["default"](typeof getClassName === 'function' ? getClassName(prefix) : getClassName, baseClassName);
47
- return /*#__PURE__*/React__default["default"].createElement(type, { ...other,
45
+ return /*#__PURE__*/React__default["default"].createElement(type, {
46
+ ...other,
48
47
  // Prevent Weird quirk where `cx` will evaluate to an empty string, '',
49
48
  // and so we have empty `class` attributes in the resulting markup
50
49
  // eslint-disable-next-line no-extra-boolean-cast
51
50
  className: !!componentClass ? componentClass : undefined
52
51
  });
53
52
  }
54
-
55
53
  Component.displayName = name;
56
54
  Component.propTypes = {
57
55
  className: PropTypes__default["default"].string
58
56
  };
59
57
  return Component;
60
58
  };
61
-
62
59
  var wrapComponent$1 = wrapComponent;
63
60
 
64
61
  exports["default"] = wrapComponent$1;