@carbon/react 1.23.0 → 1.24.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 (888) hide show
  1. package/es/_virtual/_rollupPluginBabelHelpers.js +1 -1
  2. package/es/components/Accordion/Accordion.Skeleton.js +1 -1
  3. package/es/components/Accordion/Accordion.js +1 -1
  4. package/es/components/Accordion/AccordionItem.js +1 -1
  5. package/es/components/AspectRatio/AspectRatio.js +1 -1
  6. package/es/components/Breadcrumb/Breadcrumb.Skeleton.js +1 -1
  7. package/es/components/Breadcrumb/Breadcrumb.js +1 -1
  8. package/es/components/Breadcrumb/BreadcrumbItem.js +1 -1
  9. package/es/components/Button/Button.Skeleton.js +1 -1
  10. package/es/components/Button/Button.js +2 -3
  11. package/es/components/Button/index.js +1 -1
  12. package/es/components/ButtonSet/ButtonSet.js +1 -1
  13. package/es/components/ButtonSet/index.js +1 -1
  14. package/es/components/Checkbox/Checkbox.Skeleton.d.ts +1 -1
  15. package/es/components/Checkbox/Checkbox.Skeleton.js +1 -1
  16. package/es/components/Checkbox/Checkbox.d.ts +1 -1
  17. package/es/components/Checkbox/Checkbox.js +1 -1
  18. package/es/components/Checkbox/index.d.ts +1 -1
  19. package/es/components/ClassPrefix/index.js +1 -1
  20. package/es/components/CodeSnippet/CodeSnippet.Skeleton.js +1 -1
  21. package/es/components/CodeSnippet/CodeSnippet.js +1 -1
  22. package/es/components/ComboBox/ComboBox.d.ts +1 -1
  23. package/es/components/ComboBox/ComboBox.js +1 -1
  24. package/es/components/ComboBox/index.js +1 -1
  25. package/es/components/ComboBox/tools/filter.js +1 -1
  26. package/es/components/ComposedModal/ComposedModal.js +1 -1
  27. package/es/components/ComposedModal/ModalFooter.js +1 -1
  28. package/es/components/ComposedModal/ModalHeader.js +1 -1
  29. package/es/components/ContainedList/ContainedList.js +1 -1
  30. package/es/components/ContainedList/ContainedListItem/ContainedListItem.js +1 -1
  31. package/es/components/ContainedList/ContainedListItem/index.js +1 -1
  32. package/es/components/ContentSwitcher/ContentSwitcher.js +1 -1
  33. package/es/components/ContentSwitcher/index.js +1 -1
  34. package/es/components/ContextMenu/useContextMenu.js +9 -5
  35. package/es/components/Copy/Copy.js +1 -1
  36. package/es/components/Copy/index.js +1 -1
  37. package/es/components/CopyButton/CopyButton.js +1 -1
  38. package/es/components/CopyButton/index.js +1 -1
  39. package/es/components/DangerButton/DangerButton.js +1 -1
  40. package/es/components/DataTable/DataTable.js +1 -1
  41. package/es/components/DataTable/Table.js +1 -1
  42. package/es/components/DataTable/TableActionList.js +1 -1
  43. package/es/components/DataTable/TableBatchAction.js +1 -1
  44. package/es/components/DataTable/TableBatchActions.js +1 -1
  45. package/es/components/DataTable/TableBody.js +1 -1
  46. package/es/components/DataTable/TableCell.js +1 -1
  47. package/es/components/DataTable/TableContainer.js +1 -1
  48. package/es/components/DataTable/TableContext.js +1 -1
  49. package/es/components/DataTable/TableExpandHeader.js +1 -1
  50. package/es/components/DataTable/TableExpandRow.js +1 -1
  51. package/es/components/DataTable/TableExpandedRow.js +1 -1
  52. package/es/components/DataTable/TableHead.js +1 -1
  53. package/es/components/DataTable/TableHeader.js +1 -1
  54. package/es/components/DataTable/TableRow.js +1 -1
  55. package/es/components/DataTable/TableSelectAll.d.ts +1 -1
  56. package/es/components/DataTable/TableSelectAll.js +1 -1
  57. package/es/components/DataTable/TableSelectRow.d.ts +1 -1
  58. package/es/components/DataTable/TableSelectRow.js +1 -1
  59. package/es/components/DataTable/TableToolbar.js +1 -1
  60. package/es/components/DataTable/TableToolbarAction.js +1 -1
  61. package/es/components/DataTable/TableToolbarContent.js +1 -1
  62. package/es/components/DataTable/TableToolbarMenu.js +1 -1
  63. package/es/components/DataTable/TableToolbarSearch.js +1 -1
  64. package/es/components/DataTable/state/getDerivedStateFromProps.js +1 -1
  65. package/es/components/DataTable/state/sortStates.js +1 -1
  66. package/es/components/DataTable/state/sorting.js +1 -1
  67. package/es/components/DataTable/tools/cells.js +1 -1
  68. package/es/components/DataTable/tools/denormalize.js +2 -2
  69. package/es/components/DataTable/tools/filter.js +1 -1
  70. package/es/components/DataTable/tools/instanceId.js +1 -1
  71. package/es/components/DataTable/tools/normalize.js +1 -1
  72. package/es/components/DataTable/tools/sorting.js +1 -1
  73. package/es/components/DataTableSkeleton/DataTableSkeleton.js +1 -1
  74. package/es/components/DatePicker/DatePicker.Skeleton.js +1 -1
  75. package/es/components/DatePicker/DatePicker.js +13 -1
  76. package/es/components/DatePicker/index.js +1 -1
  77. package/es/components/DatePicker/plugins/appendToPlugin.js +1 -1
  78. package/es/components/DatePicker/plugins/fixEventsPlugin.js +3 -3
  79. package/es/components/DatePicker/plugins/rangePlugin.js +1 -1
  80. package/es/components/DatePickerInput/DatePickerInput.js +1 -1
  81. package/es/components/DatePickerInput/index.js +1 -1
  82. package/es/components/Dropdown/Dropdown.Skeleton.d.ts +15 -0
  83. package/es/components/Dropdown/Dropdown.Skeleton.js +2 -3
  84. package/es/components/Dropdown/Dropdown.js +1 -1
  85. package/es/components/Dropdown/index.d.ts +1 -1
  86. package/es/components/Dropdown/index.js +2 -1
  87. package/es/components/ErrorBoundary/ErrorBoundary.js +1 -1
  88. package/es/components/ErrorBoundary/ErrorBoundaryContext.js +1 -1
  89. package/es/components/ExpandableSearch/ExpandableSearch.js +1 -1
  90. package/es/components/FeatureFlags/index.js +1 -1
  91. package/es/components/FileUploader/FileUploader.Skeleton.js +1 -1
  92. package/es/components/FileUploader/FileUploader.js +1 -1
  93. package/es/components/FileUploader/FileUploaderButton.js +1 -1
  94. package/es/components/FileUploader/FileUploaderDropContainer.js +1 -1
  95. package/es/components/FileUploader/FileUploaderItem.js +1 -1
  96. package/es/components/FileUploader/Filename.js +1 -1
  97. package/es/components/FluidComboBox/FluidComboBox.Skeleton.js +1 -1
  98. package/es/components/FluidComboBox/FluidComboBox.js +1 -1
  99. package/es/components/FluidDatePicker/FluidDatePicker.Skeleton.js +1 -1
  100. package/es/components/FluidDatePicker/FluidDatePicker.js +1 -1
  101. package/es/components/FluidDatePickerInput/FluidDatePickerInput.js +1 -1
  102. package/es/components/FluidDropdown/FluidDropdown.Skeleton.js +1 -1
  103. package/es/components/FluidDropdown/FluidDropdown.js +2 -1
  104. package/es/components/FluidForm/FluidForm.js +1 -1
  105. package/es/components/FluidForm/FormContext.js +1 -1
  106. package/es/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +1 -1
  107. package/es/components/FluidMultiSelect/FluidMultiSelect.js +1 -1
  108. package/es/components/FluidSelect/FluidSelect.Skeleton.js +1 -1
  109. package/es/components/FluidSelect/FluidSelect.js +1 -1
  110. package/es/components/FluidSelect/index.js +1 -1
  111. package/es/components/FluidTextArea/FluidTextArea.Skeleton.js +1 -1
  112. package/es/components/FluidTextArea/FluidTextArea.js +1 -1
  113. package/es/components/FluidTextInput/FluidTextInput.Skeleton.js +1 -1
  114. package/es/components/FluidTextInput/FluidTextInput.js +1 -1
  115. package/es/components/FluidTextInput/index.js +1 -1
  116. package/es/components/FluidTimePicker/FluidTimePicker.Skeleton.js +1 -1
  117. package/es/components/FluidTimePicker/FluidTimePicker.js +1 -1
  118. package/es/components/FluidTimePickerSelect/FluidTimePickerSelect.js +1 -1
  119. package/es/components/Form/Form.js +1 -1
  120. package/es/components/Form/index.js +1 -1
  121. package/es/components/FormGroup/FormGroup.js +1 -1
  122. package/es/components/FormItem/FormItem.js +1 -1
  123. package/es/components/FormLabel/FormLabel.js +1 -1
  124. package/es/components/Grid/CSSGrid.js +1 -1
  125. package/es/components/Grid/Column.js +1 -1
  126. package/es/components/Grid/ColumnHang.js +1 -1
  127. package/es/components/Grid/FlexGrid.js +1 -1
  128. package/es/components/Grid/Grid.js +1 -1
  129. package/es/components/Grid/GridContext.js +1 -1
  130. package/es/components/Grid/Row.js +1 -1
  131. package/es/components/Heading/index.js +12 -5
  132. package/es/components/Icon/Icon.Skeleton.js +1 -1
  133. package/es/components/IconButton/index.js +1 -1
  134. package/es/components/IdPrefix/index.js +1 -1
  135. package/es/components/InlineCheckbox/InlineCheckbox.js +1 -1
  136. package/es/components/InlineCheckbox/index.js +1 -1
  137. package/es/components/InlineLoading/InlineLoading.js +1 -1
  138. package/es/components/Layer/LayerContext.js +1 -1
  139. package/es/components/Layer/index.js +1 -1
  140. package/es/components/Layout/LayoutDirection.js +1 -1
  141. package/es/components/Layout/LayoutDirectionContext.js +1 -1
  142. package/es/components/Layout/useLayoutDirection.js +1 -1
  143. package/es/components/Link/Link.js +1 -1
  144. package/es/components/Link/index.js +1 -1
  145. package/es/components/ListBox/ListBox.js +1 -1
  146. package/es/components/ListBox/ListBoxField.js +1 -1
  147. package/es/components/ListBox/ListBoxMenu.js +1 -1
  148. package/es/components/ListBox/ListBoxMenuIcon.js +1 -1
  149. package/es/components/ListBox/ListBoxMenuItem.js +1 -1
  150. package/es/components/ListBox/ListBoxPropTypes.js +1 -1
  151. package/es/components/ListBox/ListBoxSelection.js +1 -1
  152. package/es/components/ListBox/index.js +1 -1
  153. package/es/components/ListBox/next/ListBoxSelection.js +1 -1
  154. package/es/components/ListBox/next/ListBoxTrigger.js +1 -1
  155. package/es/components/ListItem/ListItem.js +1 -1
  156. package/es/components/Loading/Loading.js +1 -1
  157. package/es/components/Loading/index.js +1 -1
  158. package/es/components/Menu/Menu.js +168 -216
  159. package/es/components/Menu/MenuContext.js +44 -0
  160. package/es/components/Menu/MenuItem.js +406 -24
  161. package/es/components/Modal/Modal.js +1 -1
  162. package/es/components/Modal/index.js +1 -1
  163. package/es/components/ModalWrapper/ModalWrapper.js +1 -1
  164. package/es/components/MultiSelect/FilterableMultiSelect.js +1 -1
  165. package/es/components/MultiSelect/MultiSelect.d.ts +170 -0
  166. package/es/components/MultiSelect/MultiSelect.js +116 -72
  167. package/es/components/MultiSelect/MultiSelectPropTypes.js +1 -1
  168. package/es/components/MultiSelect/index.js +1 -1
  169. package/es/components/MultiSelect/tools/itemToString.js +1 -1
  170. package/es/components/MultiSelect/tools/sorting.js +1 -1
  171. package/es/components/Notification/Notification.js +1 -6
  172. package/es/components/NumberInput/NumberInput.Skeleton.d.ts +1 -1
  173. package/es/components/NumberInput/NumberInput.Skeleton.js +1 -1
  174. package/es/components/NumberInput/NumberInput.d.ts +1 -1
  175. package/es/components/NumberInput/NumberInput.js +3 -5
  176. package/es/components/OrderedList/OrderedList.js +1 -1
  177. package/es/components/OverflowMenu/OverflowMenu.js +3 -3
  178. package/es/components/OverflowMenu/index.js +1 -1
  179. package/es/components/OverflowMenuItem/OverflowMenuItem.js +1 -1
  180. package/es/components/OverflowMenuItem/index.js +1 -1
  181. package/es/components/OverflowMenuV2/index.js +5 -15
  182. package/es/components/Pagination/Pagination.Skeleton.js +1 -1
  183. package/es/components/Pagination/Pagination.js +1 -1
  184. package/es/components/Pagination/experimental/PageSelector.js +1 -1
  185. package/es/components/Pagination/experimental/Pagination.js +1 -1
  186. package/es/components/PaginationNav/PaginationNav.js +1 -1
  187. package/es/components/Popover/index.js +1 -1
  188. package/es/components/PrimaryButton/PrimaryButton.js +1 -1
  189. package/es/components/ProgressBar/ProgressBar.js +1 -1
  190. package/es/components/ProgressIndicator/ProgressIndicator.Skeleton.js +1 -1
  191. package/es/components/ProgressIndicator/ProgressIndicator.js +1 -1
  192. package/es/components/RadioButton/RadioButton.Skeleton.js +1 -1
  193. package/es/components/RadioButton/RadioButton.js +1 -1
  194. package/es/components/RadioButton/index.js +1 -1
  195. package/es/components/RadioButtonGroup/RadioButtonGroup.js +1 -1
  196. package/es/components/RadioTile/RadioTile.js +1 -1
  197. package/es/components/RadioTile/index.js +1 -1
  198. package/es/components/Search/Search.Skeleton.js +1 -1
  199. package/es/components/Search/Search.js +4 -4
  200. package/es/components/Search/index.js +1 -1
  201. package/es/components/SecondaryButton/SecondaryButton.js +1 -1
  202. package/es/components/Select/Select.Skeleton.d.ts +1 -1
  203. package/es/components/Select/Select.Skeleton.js +1 -1
  204. package/es/components/Select/Select.js +1 -1
  205. package/es/components/Select/index.js +1 -1
  206. package/es/components/SelectItem/SelectItem.js +1 -1
  207. package/es/components/SelectItem/index.js +1 -1
  208. package/es/components/SelectItemGroup/SelectItemGroup.js +1 -1
  209. package/es/components/SkeletonIcon/SkeletonIcon.js +1 -1
  210. package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.js +1 -1
  211. package/es/components/SkeletonText/SkeletonText.js +1 -1
  212. package/es/components/SkeletonText/index.js +1 -1
  213. package/es/components/Slider/Slider.Skeleton.d.ts +1 -1
  214. package/es/components/Slider/Slider.Skeleton.js +1 -1
  215. package/es/components/Slider/Slider.js +1 -1
  216. package/es/components/Slider/index.js +1 -1
  217. package/es/components/Stack/Stack.js +1 -1
  218. package/es/components/Stack/index.js +1 -1
  219. package/es/components/StructuredList/StructuredList.Skeleton.js +1 -1
  220. package/es/components/StructuredList/StructuredList.js +1 -1
  221. package/es/components/Switch/Switch.js +1 -1
  222. package/es/components/Tab/Tab.js +1 -1
  223. package/es/components/Tab/index.js +1 -1
  224. package/es/components/TabContent/TabContent.js +1 -1
  225. package/es/components/Tabs/Tabs.Skeleton.js +1 -1
  226. package/es/components/Tabs/Tabs.js +1 -1
  227. package/es/components/Tabs/usePressable.js +1 -1
  228. package/es/components/Tag/Tag.Skeleton.js +1 -1
  229. package/es/components/Tag/Tag.js +1 -1
  230. package/es/components/Text/Text.d.ts +1 -1
  231. package/es/components/Text/Text.js +1 -1
  232. package/es/components/Text/TextDirection.d.ts +1 -1
  233. package/es/components/Text/TextDirection.js +1 -1
  234. package/es/components/Text/TextDirectionContext.js +1 -1
  235. package/es/components/Text/createTextComponent.d.ts +1 -1
  236. package/es/components/Text/createTextComponent.js +1 -1
  237. package/es/components/Text/index.d.ts +1 -1
  238. package/es/components/Text/index.js +1 -1
  239. package/es/components/TextArea/TextArea.Skeleton.js +1 -1
  240. package/es/components/TextArea/TextArea.d.ts +95 -0
  241. package/es/components/TextArea/TextArea.js +27 -28
  242. package/es/components/TextArea/index.js +1 -1
  243. package/es/components/TextInput/ControlledPasswordInput.js +1 -1
  244. package/es/components/TextInput/PasswordInput.js +1 -1
  245. package/es/components/TextInput/TextInput.Skeleton.js +1 -1
  246. package/es/components/TextInput/TextInput.js +1 -1
  247. package/es/components/TextInput/index.js +1 -1
  248. package/es/components/TextInput/util.js +1 -1
  249. package/es/components/Theme/index.js +1 -1
  250. package/es/components/Tile/Tile.js +1 -1
  251. package/es/components/TileGroup/TileGroup.js +1 -1
  252. package/es/components/TileGroup/index.js +1 -1
  253. package/es/components/TimePicker/TimePicker.d.ts +96 -0
  254. package/es/components/TimePicker/TimePicker.js +8 -7
  255. package/es/components/TimePickerSelect/TimePickerSelect.d.ts +33 -0
  256. package/es/components/TimePickerSelect/TimePickerSelect.js +7 -8
  257. package/es/components/TimePickerSelect/index.js +3 -3
  258. package/es/components/Toggle/Toggle.Skeleton.js +1 -1
  259. package/es/components/Toggle/Toggle.js +1 -1
  260. package/es/components/ToggleSmall/ToggleSmall.Skeleton.js +1 -1
  261. package/es/components/Toggletip/index.js +1 -1
  262. package/es/components/Tooltip/DefinitionTooltip.js +1 -1
  263. package/es/components/Tooltip/Tooltip.js +1 -1
  264. package/es/components/TreeView/TreeNode.js +1 -1
  265. package/es/components/TreeView/TreeView.js +1 -1
  266. package/es/components/UIShell/Content.js +1 -1
  267. package/es/components/UIShell/Header.js +1 -1
  268. package/es/components/UIShell/HeaderContainer.js +1 -1
  269. package/es/components/UIShell/HeaderGlobalAction.js +1 -1
  270. package/es/components/UIShell/HeaderGlobalBar.js +1 -1
  271. package/es/components/UIShell/HeaderMenu.js +1 -1
  272. package/es/components/UIShell/HeaderMenuButton.js +1 -1
  273. package/es/components/UIShell/HeaderMenuItem.js +1 -1
  274. package/es/components/UIShell/HeaderName.js +1 -1
  275. package/es/components/UIShell/HeaderNavigation.js +1 -1
  276. package/es/components/UIShell/HeaderPanel.js +1 -1
  277. package/es/components/UIShell/HeaderSideNavItems.js +1 -1
  278. package/es/components/UIShell/Link.js +1 -1
  279. package/es/components/UIShell/SideNav.js +1 -1
  280. package/es/components/UIShell/SideNavDetails.js +1 -1
  281. package/es/components/UIShell/SideNavDivider.js +1 -1
  282. package/es/components/UIShell/SideNavFooter.js +1 -1
  283. package/es/components/UIShell/SideNavHeader.js +1 -1
  284. package/es/components/UIShell/SideNavIcon.js +1 -1
  285. package/es/components/UIShell/SideNavItem.js +1 -1
  286. package/es/components/UIShell/SideNavItems.js +1 -1
  287. package/es/components/UIShell/SideNavLink.js +1 -1
  288. package/es/components/UIShell/SideNavLinkText.js +1 -1
  289. package/es/components/UIShell/SideNavMenu.js +1 -1
  290. package/es/components/UIShell/SideNavMenuItem.js +1 -1
  291. package/es/components/UIShell/SideNavSwitcher.js +1 -1
  292. package/es/components/UIShell/SkipToContent.js +1 -1
  293. package/es/components/UIShell/Switcher.js +1 -1
  294. package/es/components/UIShell/SwitcherDivider.js +1 -1
  295. package/es/components/UIShell/SwitcherItem.js +1 -1
  296. package/es/components/UIShell/_utils.js +1 -1
  297. package/es/components/UnorderedList/UnorderedList.js +1 -1
  298. package/es/feature-flags.js +1 -1
  299. package/es/index.d.ts +2 -2
  300. package/es/index.js +3 -7
  301. package/es/internal/ClickListener.js +1 -1
  302. package/es/internal/FloatingMenu.js +1 -1
  303. package/es/internal/OptimizedResize.js +1 -1
  304. package/es/internal/Selection.js +1 -1
  305. package/es/internal/createClassWrapper.js +1 -1
  306. package/es/internal/deprecateFieldOnObject.js +1 -1
  307. package/es/internal/environment.js +1 -1
  308. package/es/internal/focus/index.js +1 -1
  309. package/es/internal/keyboard/keys.js +1 -1
  310. package/es/internal/keyboard/match.js +1 -1
  311. package/es/internal/keyboard/navigation.js +1 -1
  312. package/es/internal/useAnnouncer.js +1 -1
  313. package/es/internal/useControllableState.js +1 -1
  314. package/es/internal/useDelayedState.js +1 -1
  315. package/es/internal/useEffectOnce.js +1 -1
  316. package/es/internal/useEvent.js +1 -1
  317. package/es/internal/useId.js +1 -1
  318. package/es/internal/useIdPrefix.js +1 -1
  319. package/es/internal/useIsomorphicEffect.js +1 -1
  320. package/es/internal/useMergedRefs.js +1 -1
  321. package/es/internal/useNoInteractiveChildren.js +1 -1
  322. package/es/internal/useNormalizedInputProps.js +1 -1
  323. package/es/internal/usePrefix.d.ts +1 -1
  324. package/es/internal/usePrefix.js +1 -1
  325. package/es/internal/useSavedCallback.js +1 -1
  326. package/es/internal/warning.js +1 -1
  327. package/es/internal/wrapFocus.js +1 -1
  328. package/es/prop-types/AriaPropTypes.js +1 -1
  329. package/es/prop-types/deprecate.js +1 -1
  330. package/es/prop-types/isRequiredOneOf.js +4 -4
  331. package/es/prop-types/requiredIfGivenPropIsTruthy.js +1 -1
  332. package/es/prop-types/types.js +1 -1
  333. package/es/tools/array.js +1 -1
  334. package/es/tools/events.js +1 -1
  335. package/es/tools/mergeRefs.js +1 -1
  336. package/es/tools/setupGetInstanceId.js +1 -1
  337. package/es/tools/toggleClass.js +1 -1
  338. package/es/tools/uniqueId.js +1 -1
  339. package/es/tools/wrapComponent.js +1 -1
  340. package/icons/index.esm.js +1 -1
  341. package/icons/index.js +1 -1
  342. package/index.scss +1 -1
  343. package/lib/_virtual/_rollupPluginBabelHelpers.js +1 -1
  344. package/lib/components/Accordion/Accordion.Skeleton.js +1 -1
  345. package/lib/components/Accordion/Accordion.js +1 -1
  346. package/lib/components/Accordion/AccordionItem.js +1 -1
  347. package/lib/components/AspectRatio/AspectRatio.js +1 -1
  348. package/lib/components/Breadcrumb/Breadcrumb.Skeleton.js +1 -1
  349. package/lib/components/Breadcrumb/Breadcrumb.js +1 -1
  350. package/lib/components/Breadcrumb/BreadcrumbItem.js +1 -1
  351. package/lib/components/Button/Button.Skeleton.js +1 -1
  352. package/lib/components/Button/Button.js +2 -3
  353. package/lib/components/Button/index.js +1 -1
  354. package/lib/components/ButtonSet/ButtonSet.js +1 -1
  355. package/lib/components/ButtonSet/index.js +1 -1
  356. package/lib/components/Checkbox/Checkbox.Skeleton.d.ts +1 -1
  357. package/lib/components/Checkbox/Checkbox.Skeleton.js +1 -1
  358. package/lib/components/Checkbox/Checkbox.d.ts +1 -1
  359. package/lib/components/Checkbox/Checkbox.js +1 -1
  360. package/lib/components/Checkbox/index.d.ts +1 -1
  361. package/lib/components/ClassPrefix/index.js +1 -1
  362. package/lib/components/CodeSnippet/CodeSnippet.Skeleton.js +1 -1
  363. package/lib/components/CodeSnippet/CodeSnippet.js +1 -1
  364. package/lib/components/ComboBox/ComboBox.d.ts +1 -1
  365. package/lib/components/ComboBox/ComboBox.js +1 -1
  366. package/lib/components/ComboBox/index.js +1 -1
  367. package/lib/components/ComboBox/tools/filter.js +1 -1
  368. package/lib/components/ComposedModal/ComposedModal.js +1 -1
  369. package/lib/components/ComposedModal/ModalFooter.js +1 -1
  370. package/lib/components/ComposedModal/ModalHeader.js +1 -1
  371. package/lib/components/ContainedList/ContainedList.js +1 -1
  372. package/lib/components/ContainedList/ContainedListItem/ContainedListItem.js +1 -1
  373. package/lib/components/ContainedList/ContainedListItem/index.js +1 -1
  374. package/lib/components/ContentSwitcher/ContentSwitcher.js +1 -1
  375. package/lib/components/ContentSwitcher/index.js +1 -1
  376. package/lib/components/ContextMenu/useContextMenu.js +9 -5
  377. package/lib/components/Copy/Copy.js +1 -1
  378. package/lib/components/Copy/index.js +1 -1
  379. package/lib/components/CopyButton/CopyButton.js +1 -1
  380. package/lib/components/CopyButton/index.js +1 -1
  381. package/lib/components/DangerButton/DangerButton.js +1 -1
  382. package/lib/components/DataTable/DataTable.js +1 -1
  383. package/lib/components/DataTable/Table.js +1 -1
  384. package/lib/components/DataTable/TableActionList.js +1 -1
  385. package/lib/components/DataTable/TableBatchAction.js +1 -1
  386. package/lib/components/DataTable/TableBatchActions.js +1 -1
  387. package/lib/components/DataTable/TableBody.js +1 -1
  388. package/lib/components/DataTable/TableCell.js +1 -1
  389. package/lib/components/DataTable/TableContainer.js +1 -1
  390. package/lib/components/DataTable/TableContext.js +1 -1
  391. package/lib/components/DataTable/TableExpandHeader.js +1 -1
  392. package/lib/components/DataTable/TableExpandRow.js +1 -1
  393. package/lib/components/DataTable/TableExpandedRow.js +1 -1
  394. package/lib/components/DataTable/TableHead.js +1 -1
  395. package/lib/components/DataTable/TableHeader.js +1 -1
  396. package/lib/components/DataTable/TableRow.js +1 -1
  397. package/lib/components/DataTable/TableSelectAll.d.ts +1 -1
  398. package/lib/components/DataTable/TableSelectAll.js +1 -1
  399. package/lib/components/DataTable/TableSelectRow.d.ts +1 -1
  400. package/lib/components/DataTable/TableSelectRow.js +1 -1
  401. package/lib/components/DataTable/TableToolbar.js +1 -1
  402. package/lib/components/DataTable/TableToolbarAction.js +1 -1
  403. package/lib/components/DataTable/TableToolbarContent.js +1 -1
  404. package/lib/components/DataTable/TableToolbarMenu.js +1 -1
  405. package/lib/components/DataTable/TableToolbarSearch.js +1 -1
  406. package/lib/components/DataTable/state/getDerivedStateFromProps.js +1 -1
  407. package/lib/components/DataTable/state/sortStates.js +1 -1
  408. package/lib/components/DataTable/state/sorting.js +1 -1
  409. package/lib/components/DataTable/tools/cells.js +1 -1
  410. package/lib/components/DataTable/tools/denormalize.js +2 -2
  411. package/lib/components/DataTable/tools/filter.js +1 -1
  412. package/lib/components/DataTable/tools/instanceId.js +1 -1
  413. package/lib/components/DataTable/tools/normalize.js +1 -1
  414. package/lib/components/DataTable/tools/sorting.js +1 -1
  415. package/lib/components/DataTableSkeleton/DataTableSkeleton.js +1 -1
  416. package/lib/components/DatePicker/DatePicker.Skeleton.js +1 -1
  417. package/lib/components/DatePicker/DatePicker.js +13 -1
  418. package/lib/components/DatePicker/index.js +1 -1
  419. package/lib/components/DatePicker/plugins/appendToPlugin.js +1 -1
  420. package/lib/components/DatePicker/plugins/fixEventsPlugin.js +3 -3
  421. package/lib/components/DatePicker/plugins/rangePlugin.js +1 -1
  422. package/lib/components/DatePickerInput/DatePickerInput.js +1 -1
  423. package/lib/components/DatePickerInput/index.js +1 -1
  424. package/lib/components/Dropdown/Dropdown.Skeleton.d.ts +15 -0
  425. package/lib/components/Dropdown/Dropdown.Skeleton.js +2 -3
  426. package/lib/components/Dropdown/Dropdown.js +1 -1
  427. package/lib/components/Dropdown/index.d.ts +1 -1
  428. package/lib/components/Dropdown/index.js +3 -1
  429. package/lib/components/ErrorBoundary/ErrorBoundary.js +1 -1
  430. package/lib/components/ErrorBoundary/ErrorBoundaryContext.js +1 -1
  431. package/lib/components/ExpandableSearch/ExpandableSearch.js +1 -1
  432. package/lib/components/FeatureFlags/index.js +1 -1
  433. package/lib/components/FileUploader/FileUploader.Skeleton.js +1 -1
  434. package/lib/components/FileUploader/FileUploader.js +1 -1
  435. package/lib/components/FileUploader/FileUploaderButton.js +1 -1
  436. package/lib/components/FileUploader/FileUploaderDropContainer.js +1 -1
  437. package/lib/components/FileUploader/FileUploaderItem.js +1 -1
  438. package/lib/components/FileUploader/Filename.js +1 -1
  439. package/lib/components/FluidComboBox/FluidComboBox.Skeleton.js +1 -1
  440. package/lib/components/FluidComboBox/FluidComboBox.js +1 -1
  441. package/lib/components/FluidDatePicker/FluidDatePicker.Skeleton.js +1 -1
  442. package/lib/components/FluidDatePicker/FluidDatePicker.js +1 -1
  443. package/lib/components/FluidDatePickerInput/FluidDatePickerInput.js +1 -1
  444. package/lib/components/FluidDropdown/FluidDropdown.Skeleton.js +1 -1
  445. package/lib/components/FluidDropdown/FluidDropdown.js +2 -1
  446. package/lib/components/FluidForm/FluidForm.js +1 -1
  447. package/lib/components/FluidForm/FormContext.js +1 -1
  448. package/lib/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +1 -1
  449. package/lib/components/FluidMultiSelect/FluidMultiSelect.js +1 -1
  450. package/lib/components/FluidSelect/FluidSelect.Skeleton.js +1 -1
  451. package/lib/components/FluidSelect/FluidSelect.js +1 -1
  452. package/lib/components/FluidSelect/index.js +1 -1
  453. package/lib/components/FluidTextArea/FluidTextArea.Skeleton.js +1 -1
  454. package/lib/components/FluidTextArea/FluidTextArea.js +1 -1
  455. package/lib/components/FluidTextInput/FluidTextInput.Skeleton.js +1 -1
  456. package/lib/components/FluidTextInput/FluidTextInput.js +1 -1
  457. package/lib/components/FluidTextInput/index.js +1 -1
  458. package/lib/components/FluidTimePicker/FluidTimePicker.Skeleton.js +1 -1
  459. package/lib/components/FluidTimePicker/FluidTimePicker.js +1 -1
  460. package/lib/components/FluidTimePickerSelect/FluidTimePickerSelect.js +1 -1
  461. package/lib/components/Form/Form.js +1 -1
  462. package/lib/components/Form/index.js +1 -1
  463. package/lib/components/FormGroup/FormGroup.js +1 -1
  464. package/lib/components/FormItem/FormItem.js +1 -1
  465. package/lib/components/FormLabel/FormLabel.js +1 -1
  466. package/lib/components/Grid/CSSGrid.js +1 -1
  467. package/lib/components/Grid/Column.js +1 -1
  468. package/lib/components/Grid/ColumnHang.js +1 -1
  469. package/lib/components/Grid/FlexGrid.js +1 -1
  470. package/lib/components/Grid/Grid.js +1 -1
  471. package/lib/components/Grid/GridContext.js +1 -1
  472. package/lib/components/Grid/Row.js +1 -1
  473. package/lib/components/Heading/index.js +12 -5
  474. package/lib/components/Icon/Icon.Skeleton.js +1 -1
  475. package/lib/components/IconButton/index.js +1 -1
  476. package/lib/components/IdPrefix/index.js +1 -1
  477. package/lib/components/InlineCheckbox/InlineCheckbox.js +1 -1
  478. package/lib/components/InlineCheckbox/index.js +1 -1
  479. package/lib/components/InlineLoading/InlineLoading.js +1 -1
  480. package/lib/components/Layer/LayerContext.js +1 -1
  481. package/lib/components/Layer/index.js +1 -1
  482. package/lib/components/Layout/LayoutDirection.js +1 -1
  483. package/lib/components/Layout/LayoutDirectionContext.js +1 -1
  484. package/lib/components/Layout/useLayoutDirection.js +1 -1
  485. package/lib/components/Link/Link.js +1 -1
  486. package/lib/components/Link/index.js +1 -1
  487. package/lib/components/ListBox/ListBox.js +1 -1
  488. package/lib/components/ListBox/ListBoxField.js +1 -1
  489. package/lib/components/ListBox/ListBoxMenu.js +1 -1
  490. package/lib/components/ListBox/ListBoxMenuIcon.js +1 -1
  491. package/lib/components/ListBox/ListBoxMenuItem.js +1 -1
  492. package/lib/components/ListBox/ListBoxPropTypes.js +1 -1
  493. package/lib/components/ListBox/ListBoxSelection.js +1 -1
  494. package/lib/components/ListBox/index.js +1 -1
  495. package/lib/components/ListBox/next/ListBoxSelection.js +1 -1
  496. package/lib/components/ListBox/next/ListBoxTrigger.js +1 -1
  497. package/lib/components/ListItem/ListItem.js +1 -1
  498. package/lib/components/Loading/Loading.js +1 -1
  499. package/lib/components/Loading/index.js +1 -1
  500. package/lib/components/Menu/Menu.js +167 -216
  501. package/lib/components/Menu/MenuContext.js +53 -0
  502. package/lib/components/Menu/MenuItem.js +411 -24
  503. package/lib/components/Modal/Modal.js +1 -1
  504. package/lib/components/Modal/index.js +1 -1
  505. package/lib/components/ModalWrapper/ModalWrapper.js +1 -1
  506. package/lib/components/MultiSelect/FilterableMultiSelect.js +1 -1
  507. package/lib/components/MultiSelect/MultiSelect.d.ts +170 -0
  508. package/lib/components/MultiSelect/MultiSelect.js +116 -72
  509. package/lib/components/MultiSelect/MultiSelectPropTypes.js +1 -1
  510. package/lib/components/MultiSelect/index.js +1 -1
  511. package/lib/components/MultiSelect/tools/itemToString.js +1 -1
  512. package/lib/components/MultiSelect/tools/sorting.js +1 -1
  513. package/lib/components/Notification/Notification.js +1 -6
  514. package/lib/components/NumberInput/NumberInput.Skeleton.d.ts +1 -1
  515. package/lib/components/NumberInput/NumberInput.Skeleton.js +1 -1
  516. package/lib/components/NumberInput/NumberInput.d.ts +1 -1
  517. package/lib/components/NumberInput/NumberInput.js +3 -5
  518. package/lib/components/OrderedList/OrderedList.js +1 -1
  519. package/lib/components/OverflowMenu/OverflowMenu.js +3 -3
  520. package/lib/components/OverflowMenu/index.js +1 -1
  521. package/lib/components/OverflowMenuItem/OverflowMenuItem.js +1 -1
  522. package/lib/components/OverflowMenuItem/index.js +1 -1
  523. package/lib/components/OverflowMenuV2/index.js +6 -16
  524. package/lib/components/Pagination/Pagination.Skeleton.js +1 -1
  525. package/lib/components/Pagination/Pagination.js +1 -1
  526. package/lib/components/Pagination/experimental/PageSelector.js +1 -1
  527. package/lib/components/Pagination/experimental/Pagination.js +1 -1
  528. package/lib/components/PaginationNav/PaginationNav.js +1 -1
  529. package/lib/components/Popover/index.js +1 -1
  530. package/lib/components/PrimaryButton/PrimaryButton.js +1 -1
  531. package/lib/components/ProgressBar/ProgressBar.js +1 -1
  532. package/lib/components/ProgressIndicator/ProgressIndicator.Skeleton.js +1 -1
  533. package/lib/components/ProgressIndicator/ProgressIndicator.js +1 -1
  534. package/lib/components/RadioButton/RadioButton.Skeleton.js +1 -1
  535. package/lib/components/RadioButton/RadioButton.js +1 -1
  536. package/lib/components/RadioButton/index.js +1 -1
  537. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +1 -1
  538. package/lib/components/RadioTile/RadioTile.js +1 -1
  539. package/lib/components/RadioTile/index.js +1 -1
  540. package/lib/components/Search/Search.Skeleton.js +1 -1
  541. package/lib/components/Search/Search.js +4 -4
  542. package/lib/components/Search/index.js +1 -1
  543. package/lib/components/SecondaryButton/SecondaryButton.js +1 -1
  544. package/lib/components/Select/Select.Skeleton.d.ts +1 -1
  545. package/lib/components/Select/Select.Skeleton.js +1 -1
  546. package/lib/components/Select/Select.js +1 -1
  547. package/lib/components/Select/index.js +1 -1
  548. package/lib/components/SelectItem/SelectItem.js +1 -1
  549. package/lib/components/SelectItem/index.js +1 -1
  550. package/lib/components/SelectItemGroup/SelectItemGroup.js +1 -1
  551. package/lib/components/SkeletonIcon/SkeletonIcon.js +1 -1
  552. package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.js +1 -1
  553. package/lib/components/SkeletonText/SkeletonText.js +1 -1
  554. package/lib/components/SkeletonText/index.js +1 -1
  555. package/lib/components/Slider/Slider.Skeleton.d.ts +1 -1
  556. package/lib/components/Slider/Slider.Skeleton.js +1 -1
  557. package/lib/components/Slider/Slider.js +1 -1
  558. package/lib/components/Slider/index.js +1 -1
  559. package/lib/components/Stack/Stack.js +1 -1
  560. package/lib/components/Stack/index.js +1 -1
  561. package/lib/components/StructuredList/StructuredList.Skeleton.js +1 -1
  562. package/lib/components/StructuredList/StructuredList.js +1 -1
  563. package/lib/components/Switch/Switch.js +1 -1
  564. package/lib/components/Tab/Tab.js +1 -1
  565. package/lib/components/Tab/index.js +1 -1
  566. package/lib/components/TabContent/TabContent.js +1 -1
  567. package/lib/components/Tabs/Tabs.Skeleton.js +1 -1
  568. package/lib/components/Tabs/Tabs.js +1 -1
  569. package/lib/components/Tabs/usePressable.js +1 -1
  570. package/lib/components/Tag/Tag.Skeleton.js +1 -1
  571. package/lib/components/Tag/Tag.js +1 -1
  572. package/lib/components/Text/Text.d.ts +1 -1
  573. package/lib/components/Text/Text.js +1 -1
  574. package/lib/components/Text/TextDirection.d.ts +1 -1
  575. package/lib/components/Text/TextDirection.js +1 -1
  576. package/lib/components/Text/TextDirectionContext.js +1 -1
  577. package/lib/components/Text/createTextComponent.d.ts +1 -1
  578. package/lib/components/Text/createTextComponent.js +1 -1
  579. package/lib/components/Text/index.d.ts +1 -1
  580. package/lib/components/Text/index.js +1 -1
  581. package/lib/components/TextArea/TextArea.Skeleton.js +1 -1
  582. package/lib/components/TextArea/TextArea.d.ts +95 -0
  583. package/lib/components/TextArea/TextArea.js +27 -28
  584. package/lib/components/TextArea/index.js +1 -1
  585. package/lib/components/TextInput/ControlledPasswordInput.js +1 -1
  586. package/lib/components/TextInput/PasswordInput.js +1 -1
  587. package/lib/components/TextInput/TextInput.Skeleton.js +1 -1
  588. package/lib/components/TextInput/TextInput.js +1 -1
  589. package/lib/components/TextInput/index.js +1 -1
  590. package/lib/components/TextInput/util.js +1 -1
  591. package/lib/components/Theme/index.js +1 -1
  592. package/lib/components/Tile/Tile.js +1 -1
  593. package/lib/components/TileGroup/TileGroup.js +1 -1
  594. package/lib/components/TileGroup/index.js +1 -1
  595. package/lib/components/TimePicker/TimePicker.d.ts +96 -0
  596. package/lib/components/TimePicker/TimePicker.js +8 -7
  597. package/lib/components/TimePickerSelect/TimePickerSelect.d.ts +33 -0
  598. package/lib/components/TimePickerSelect/TimePickerSelect.js +7 -8
  599. package/lib/components/TimePickerSelect/index.js +1 -1
  600. package/lib/components/Toggle/Toggle.Skeleton.js +1 -1
  601. package/lib/components/Toggle/Toggle.js +1 -1
  602. package/lib/components/ToggleSmall/ToggleSmall.Skeleton.js +1 -1
  603. package/lib/components/Toggletip/index.js +1 -1
  604. package/lib/components/Tooltip/DefinitionTooltip.js +1 -1
  605. package/lib/components/Tooltip/Tooltip.js +1 -1
  606. package/lib/components/TreeView/TreeNode.js +1 -1
  607. package/lib/components/TreeView/TreeView.js +1 -1
  608. package/lib/components/UIShell/Content.js +1 -1
  609. package/lib/components/UIShell/Header.js +1 -1
  610. package/lib/components/UIShell/HeaderContainer.js +1 -1
  611. package/lib/components/UIShell/HeaderGlobalAction.js +1 -1
  612. package/lib/components/UIShell/HeaderGlobalBar.js +1 -1
  613. package/lib/components/UIShell/HeaderMenu.js +1 -1
  614. package/lib/components/UIShell/HeaderMenuButton.js +1 -1
  615. package/lib/components/UIShell/HeaderMenuItem.js +1 -1
  616. package/lib/components/UIShell/HeaderName.js +1 -1
  617. package/lib/components/UIShell/HeaderNavigation.js +1 -1
  618. package/lib/components/UIShell/HeaderPanel.js +1 -1
  619. package/lib/components/UIShell/HeaderSideNavItems.js +1 -1
  620. package/lib/components/UIShell/Link.js +1 -1
  621. package/lib/components/UIShell/SideNav.js +1 -1
  622. package/lib/components/UIShell/SideNavDetails.js +1 -1
  623. package/lib/components/UIShell/SideNavDivider.js +1 -1
  624. package/lib/components/UIShell/SideNavFooter.js +1 -1
  625. package/lib/components/UIShell/SideNavHeader.js +1 -1
  626. package/lib/components/UIShell/SideNavIcon.js +1 -1
  627. package/lib/components/UIShell/SideNavItem.js +1 -1
  628. package/lib/components/UIShell/SideNavItems.js +1 -1
  629. package/lib/components/UIShell/SideNavLink.js +1 -1
  630. package/lib/components/UIShell/SideNavLinkText.js +1 -1
  631. package/lib/components/UIShell/SideNavMenu.js +1 -1
  632. package/lib/components/UIShell/SideNavMenuItem.js +1 -1
  633. package/lib/components/UIShell/SideNavSwitcher.js +1 -1
  634. package/lib/components/UIShell/SkipToContent.js +1 -1
  635. package/lib/components/UIShell/Switcher.js +1 -1
  636. package/lib/components/UIShell/SwitcherDivider.js +1 -1
  637. package/lib/components/UIShell/SwitcherItem.js +1 -1
  638. package/lib/components/UIShell/_utils.js +1 -1
  639. package/lib/components/UnorderedList/UnorderedList.js +1 -1
  640. package/lib/feature-flags.js +1 -1
  641. package/lib/index.d.ts +2 -2
  642. package/lib/index.js +8 -12
  643. package/lib/internal/ClickListener.js +1 -1
  644. package/lib/internal/FloatingMenu.js +1 -1
  645. package/lib/internal/OptimizedResize.js +1 -1
  646. package/lib/internal/Selection.js +1 -1
  647. package/lib/internal/createClassWrapper.js +1 -1
  648. package/lib/internal/deprecateFieldOnObject.js +1 -1
  649. package/lib/internal/environment.js +1 -1
  650. package/lib/internal/focus/index.js +1 -1
  651. package/lib/internal/keyboard/keys.js +1 -1
  652. package/lib/internal/keyboard/match.js +1 -1
  653. package/lib/internal/keyboard/navigation.js +1 -1
  654. package/lib/internal/useAnnouncer.js +1 -1
  655. package/lib/internal/useControllableState.js +1 -1
  656. package/lib/internal/useDelayedState.js +1 -1
  657. package/lib/internal/useEffectOnce.js +1 -1
  658. package/lib/internal/useEvent.js +1 -1
  659. package/lib/internal/useId.js +1 -1
  660. package/lib/internal/useIdPrefix.js +1 -1
  661. package/lib/internal/useIsomorphicEffect.js +1 -1
  662. package/lib/internal/useMergedRefs.js +1 -1
  663. package/lib/internal/useNoInteractiveChildren.js +1 -1
  664. package/lib/internal/useNormalizedInputProps.js +1 -1
  665. package/lib/internal/usePrefix.d.ts +1 -1
  666. package/lib/internal/usePrefix.js +1 -1
  667. package/lib/internal/useSavedCallback.js +1 -1
  668. package/lib/internal/warning.js +1 -1
  669. package/lib/internal/wrapFocus.js +1 -1
  670. package/lib/prop-types/AriaPropTypes.js +1 -1
  671. package/lib/prop-types/deprecate.js +1 -1
  672. package/lib/prop-types/isRequiredOneOf.js +4 -4
  673. package/lib/prop-types/requiredIfGivenPropIsTruthy.js +1 -1
  674. package/lib/prop-types/types.js +1 -1
  675. package/lib/tools/array.js +1 -1
  676. package/lib/tools/events.js +1 -1
  677. package/lib/tools/mergeRefs.js +1 -1
  678. package/lib/tools/setupGetInstanceId.js +1 -1
  679. package/lib/tools/toggleClass.js +1 -1
  680. package/lib/tools/uniqueId.js +1 -1
  681. package/lib/tools/wrapComponent.js +1 -1
  682. package/package.json +10 -10
  683. package/scss/_breakpoint.scss +1 -1
  684. package/scss/_colors.scss +1 -1
  685. package/scss/_config.scss +1 -1
  686. package/scss/_feature-flags.scss +1 -1
  687. package/scss/_layer.scss +1 -1
  688. package/scss/_motion.scss +1 -1
  689. package/scss/_reset.scss +1 -1
  690. package/scss/_spacing.scss +1 -1
  691. package/scss/_theme.scss +1 -1
  692. package/scss/_themes.scss +1 -1
  693. package/scss/_zone.scss +1 -1
  694. package/scss/compat/_theme.scss +1 -1
  695. package/scss/compat/_themes.scss +1 -1
  696. package/scss/components/_index.scss +1 -1
  697. package/scss/components/accordion/_accordion.scss +1 -1
  698. package/scss/components/accordion/_index.scss +1 -1
  699. package/scss/components/aspect-ratio/_aspect-ratio.scss +1 -1
  700. package/scss/components/aspect-ratio/_index.scss +1 -1
  701. package/scss/components/breadcrumb/_breadcrumb.scss +1 -1
  702. package/scss/components/breadcrumb/_index.scss +1 -1
  703. package/scss/components/button/_button.scss +1 -1
  704. package/scss/components/button/_index.scss +1 -1
  705. package/scss/components/button/_tokens.scss +1 -1
  706. package/scss/components/checkbox/_checkbox.scss +1 -1
  707. package/scss/components/checkbox/_index.scss +1 -1
  708. package/scss/components/code-snippet/_code-snippet.scss +1 -1
  709. package/scss/components/code-snippet/_index.scss +1 -1
  710. package/scss/components/combo-box/_combo-box.scss +1 -1
  711. package/scss/components/combo-box/_index.scss +1 -1
  712. package/scss/components/content-switcher/_content-switcher.scss +1 -1
  713. package/scss/components/content-switcher/_index.scss +1 -1
  714. package/scss/components/copy-button/_copy-button.scss +1 -1
  715. package/scss/components/copy-button/_index.scss +1 -1
  716. package/scss/components/data-table/_data-table.scss +1 -1
  717. package/scss/components/data-table/_index.scss +1 -1
  718. package/scss/components/data-table/action/_data-table-action.scss +1 -1
  719. package/scss/components/data-table/action/_index.scss +1 -1
  720. package/scss/components/data-table/expandable/_data-table-expandable.scss +1 -1
  721. package/scss/components/data-table/expandable/_index.scss +1 -1
  722. package/scss/components/data-table/skeleton/_data-table-skeleton.scss +1 -1
  723. package/scss/components/data-table/skeleton/_index.scss +1 -1
  724. package/scss/components/data-table/sort/_data-table-sort.scss +1 -1
  725. package/scss/components/data-table/sort/_index.scss +1 -1
  726. package/scss/components/date-picker/_date-picker.scss +1 -1
  727. package/scss/components/date-picker/_index.scss +1 -1
  728. package/scss/components/dropdown/_dropdown.scss +1 -1
  729. package/scss/components/dropdown/_index.scss +1 -1
  730. package/scss/components/file-uploader/_file-uploader.scss +1 -1
  731. package/scss/components/file-uploader/_index.scss +1 -1
  732. package/scss/components/fluid-combo-box/_fluid-combo-box.scss +1 -1
  733. package/scss/components/fluid-combo-box/_index.scss +1 -1
  734. package/scss/components/fluid-date-picker/_fluid-date-picker.scss +1 -1
  735. package/scss/components/fluid-date-picker/_index.scss +1 -1
  736. package/scss/components/fluid-dropdown/_fluid-dropdown.scss +1 -1
  737. package/scss/components/fluid-dropdown/_index.scss +1 -1
  738. package/scss/components/fluid-list-box/_fluid-list-box.scss +1 -1
  739. package/scss/components/fluid-list-box/_index.scss +1 -1
  740. package/scss/components/fluid-multiselect/_fluid-multiselect.scss +1 -1
  741. package/scss/components/fluid-multiselect/_index.scss +1 -1
  742. package/scss/components/fluid-number-input/_fluid-number-input.scss +1 -1
  743. package/scss/components/fluid-number-input/_index.scss +1 -1
  744. package/scss/components/fluid-search/_fluid-search.scss +1 -1
  745. package/scss/components/fluid-search/_index.scss +1 -1
  746. package/scss/components/fluid-select/_fluid-select.scss +1 -1
  747. package/scss/components/fluid-select/_index.scss +1 -1
  748. package/scss/components/fluid-text-area/_fluid-text-area.scss +1 -1
  749. package/scss/components/fluid-text-area/_index.scss +1 -1
  750. package/scss/components/fluid-text-input/_fluid-text-input.scss +1 -1
  751. package/scss/components/fluid-text-input/_index.scss +1 -1
  752. package/scss/components/fluid-time-picker/_fluid-time-picker.scss +1 -1
  753. package/scss/components/fluid-time-picker/_index.scss +1 -1
  754. package/scss/components/form/_form.scss +1 -1
  755. package/scss/components/form/_index.scss +1 -1
  756. package/scss/components/inline-loading/_index.scss +1 -1
  757. package/scss/components/inline-loading/_inline-loading.scss +1 -1
  758. package/scss/components/link/_index.scss +1 -1
  759. package/scss/components/link/_link.scss +1 -1
  760. package/scss/components/list/_index.scss +1 -1
  761. package/scss/components/list/_list.scss +1 -1
  762. package/scss/components/list-box/_index.scss +1 -1
  763. package/scss/components/list-box/_list-box.scss +1 -1
  764. package/scss/components/loading/_index.scss +1 -1
  765. package/scss/components/loading/_loading.scss +1 -1
  766. package/scss/components/menu/_index.scss +1 -1
  767. package/scss/components/menu/_menu.scss +1 -1
  768. package/scss/components/modal/_index.scss +1 -1
  769. package/scss/components/modal/_modal.scss +1 -1
  770. package/scss/components/multiselect/_index.scss +1 -1
  771. package/scss/components/multiselect/_multiselect.scss +1 -1
  772. package/scss/components/notification/_actionable-notification.scss +1 -1
  773. package/scss/components/notification/_index.scss +1 -1
  774. package/scss/components/notification/_inline-notification.scss +1 -1
  775. package/scss/components/notification/_toast-notification.scss +1 -1
  776. package/scss/components/notification/_tokens.scss +1 -1
  777. package/scss/components/number-input/_index.scss +1 -1
  778. package/scss/components/number-input/_number-input.scss +1 -1
  779. package/scss/components/overflow-menu/_index.scss +1 -1
  780. package/scss/components/overflow-menu/_overflow-menu.scss +1 -1
  781. package/scss/components/pagination/_index.scss +1 -1
  782. package/scss/components/pagination/_pagination.scss +1 -1
  783. package/scss/components/pagination/_unstable_pagination.scss +1 -1
  784. package/scss/components/pagination-nav/_index.scss +1 -1
  785. package/scss/components/pagination-nav/_pagination-nav.scss +1 -1
  786. package/scss/components/popover/_index.scss +1 -1
  787. package/scss/components/popover/_popover.scss +1 -1
  788. package/scss/components/progress-bar/_index.scss +1 -1
  789. package/scss/components/progress-bar/_progress-bar.scss +1 -1
  790. package/scss/components/progress-indicator/_index.scss +1 -1
  791. package/scss/components/progress-indicator/_progress-indicator.scss +1 -1
  792. package/scss/components/radio-button/_index.scss +1 -1
  793. package/scss/components/radio-button/_radio-button.scss +1 -1
  794. package/scss/components/search/_index.scss +1 -1
  795. package/scss/components/search/_search.scss +1 -1
  796. package/scss/components/select/_index.scss +1 -1
  797. package/scss/components/select/_select.scss +1 -1
  798. package/scss/components/skeleton-styles/_index.scss +1 -1
  799. package/scss/components/skeleton-styles/_skeleton-styles.scss +1 -1
  800. package/scss/components/slider/_index.scss +1 -1
  801. package/scss/components/slider/_slider.scss +1 -1
  802. package/scss/components/stack/_index.scss +1 -1
  803. package/scss/components/stack/_stack.scss +1 -1
  804. package/scss/components/structured-list/_index.scss +1 -1
  805. package/scss/components/structured-list/_structured-list.scss +1 -1
  806. package/scss/components/tabs/_index.scss +1 -1
  807. package/scss/components/tabs/_tabs.scss +1 -1
  808. package/scss/components/tag/_index.scss +1 -1
  809. package/scss/components/tag/_tag.scss +1 -1
  810. package/scss/components/tag/_tokens.scss +1 -1
  811. package/scss/components/text-area/_index.scss +1 -1
  812. package/scss/components/text-area/_text-area.scss +1 -1
  813. package/scss/components/text-input/_index.scss +1 -1
  814. package/scss/components/text-input/_text-input.scss +1 -1
  815. package/scss/components/tile/_index.scss +1 -1
  816. package/scss/components/tile/_tile.scss +1 -1
  817. package/scss/components/time-picker/_index.scss +1 -1
  818. package/scss/components/time-picker/_time-picker.scss +1 -1
  819. package/scss/components/toggle/_index.scss +1 -1
  820. package/scss/components/toggle/_toggle.scss +1 -1
  821. package/scss/components/toggletip/_index.scss +1 -1
  822. package/scss/components/toggletip/_toggletip.scss +1 -1
  823. package/scss/components/tooltip/_index.scss +1 -1
  824. package/scss/components/tooltip/_tooltip.scss +1 -1
  825. package/scss/components/treeview/_index.scss +1 -1
  826. package/scss/components/treeview/_treeview.scss +1 -1
  827. package/scss/components/ui-shell/_index.scss +1 -1
  828. package/scss/components/ui-shell/_ui-shell.scss +1 -1
  829. package/scss/components/ui-shell/content/_content.scss +1 -1
  830. package/scss/components/ui-shell/content/_index.scss +1 -1
  831. package/scss/components/ui-shell/header/_header.scss +1 -1
  832. package/scss/components/ui-shell/header/_index.scss +1 -1
  833. package/scss/components/ui-shell/header-panel/_header-panel.scss +1 -1
  834. package/scss/components/ui-shell/header-panel/_index.scss +1 -1
  835. package/scss/components/ui-shell/side-nav/_index.scss +1 -1
  836. package/scss/components/ui-shell/side-nav/_side-nav.scss +1 -1
  837. package/scss/components/ui-shell/switcher/_index.scss +1 -1
  838. package/scss/components/ui-shell/switcher/_switcher.scss +1 -1
  839. package/scss/fonts/_index.scss +1 -1
  840. package/scss/fonts/_mono.scss +1 -1
  841. package/scss/fonts/_sans-arabic.scss +1 -1
  842. package/scss/fonts/_sans-devanagari.scss +1 -1
  843. package/scss/fonts/_sans-hebrew.scss +1 -1
  844. package/scss/fonts/_sans-thai-looped.scss +1 -1
  845. package/scss/fonts/_sans-thai.scss +1 -1
  846. package/scss/fonts/_sans.scss +1 -1
  847. package/scss/fonts/_serif.scss +1 -1
  848. package/scss/fonts/_src.scss +1 -1
  849. package/scss/grid/_css-grid.scss +1 -1
  850. package/scss/grid/_flexbox.scss +1 -1
  851. package/scss/grid/_index.scss +1 -1
  852. package/scss/grid/_mixins.scss +1 -1
  853. package/scss/type/_index.scss +1 -1
  854. package/scss/type/_reset.scss +1 -1
  855. package/scss/utilities/_box-shadow.scss +1 -1
  856. package/scss/utilities/_button-reset.scss +1 -1
  857. package/scss/utilities/_component-reset.scss +1 -1
  858. package/scss/utilities/_component-tokens.scss +1 -1
  859. package/scss/utilities/_convert.scss +1 -1
  860. package/scss/utilities/_custom-property.scss +1 -1
  861. package/scss/utilities/_focus-outline.scss +1 -1
  862. package/scss/utilities/_hide-at-breakpoint.scss +1 -1
  863. package/scss/utilities/_high-contrast-mode.scss +1 -1
  864. package/scss/utilities/_index.scss +1 -1
  865. package/scss/utilities/_keyframes.scss +1 -1
  866. package/scss/utilities/_placeholder-colors.scss +1 -1
  867. package/scss/utilities/_rotate.scss +1 -1
  868. package/scss/utilities/_skeleton.scss +1 -1
  869. package/scss/utilities/_text-overflow.scss +1 -1
  870. package/scss/utilities/_text-truncate.scss +1 -1
  871. package/scss/utilities/_visually-hidden.scss +1 -1
  872. package/scss/utilities/_z-index.scss +1 -1
  873. package/es/components/Menu/MenuDivider.js +0 -19
  874. package/es/components/Menu/MenuGroup.js +0 -34
  875. package/es/components/Menu/MenuOption.js +0 -250
  876. package/es/components/Menu/MenuRadioGroup.js +0 -50
  877. package/es/components/Menu/MenuRadioGroupOptions.js +0 -64
  878. package/es/components/Menu/MenuSelectableItem.js +0 -57
  879. package/es/components/Menu/_utils.js +0 -177
  880. package/es/components/Menu/index.js +0 -25
  881. package/lib/components/Menu/MenuDivider.js +0 -27
  882. package/lib/components/Menu/MenuGroup.js +0 -43
  883. package/lib/components/Menu/MenuOption.js +0 -260
  884. package/lib/components/Menu/MenuRadioGroup.js +0 -59
  885. package/lib/components/Menu/MenuRadioGroupOptions.js +0 -73
  886. package/lib/components/Menu/MenuSelectableItem.js +0 -66
  887. package/lib/components/Menu/_utils.js +0 -191
  888. package/lib/components/Menu/index.js +0 -31
@@ -1,66 +1,74 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2022
2
+ * Copyright IBM Corp. 2016, 2023
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, defineProperty as _defineProperty, objectSpread2 as _objectSpread2, typeof as _typeof } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
- import React__default, { useRef, useState, useEffect } from 'react';
10
- import ReactDOM from 'react-dom';
8
+ import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2, slicedToArray as _slicedToArray, defineProperty as _defineProperty, extends as _extends, typeof as _typeof } from '../../_virtual/_rollupPluginBabelHelpers.js';
11
9
  import cx from 'classnames';
12
10
  import PropTypes from 'prop-types';
11
+ import React__default, { useRef, useContext, useReducer, useMemo, useState, useEffect } from 'react';
12
+ import { createPortal } from 'react-dom';
13
+ import { useMergedRefs } from '../../internal/useMergedRefs.js';
13
14
  import { usePrefix } from '../../internal/usePrefix.js';
14
- import { getParentMenu, getNextNode, getParentNode, getValidNodes, clickedElementHasSubnodes, getPosition, capWithinRange, resetFocus, focusNode } from './_utils.js';
15
- import MenuGroup from './MenuGroup.js';
16
- import MenuRadioGroup from './MenuRadioGroup.js';
17
- import MenuRadioGroupOptions from './MenuRadioGroupOptions.js';
18
- import MenuSelectableItem from './MenuSelectableItem.js';
15
+ import { MenuContext, menuReducer } from './MenuContext.js';
19
16
  import { match } from '../../internal/keyboard/match.js';
20
- import { Tab, Enter, Space, Escape, ArrowLeft, ArrowUp, ArrowDown } from '../../internal/keyboard/keys.js';
17
+ import { Escape, ArrowLeft, ArrowUp, ArrowDown } from '../../internal/keyboard/keys.js';
21
18
 
22
- var _excluded = ["children", "className", "id", "level", "open", "size", "target", "x", "y", "onClose"];
23
- var margin = 16; // distance to keep to body edges, in px
19
+ var _excluded = ["children", "className", "label", "onClose", "open", "size", "target", "x", "y"];
20
+ var spacing = 8; // distance to keep to window edges, in px
24
21
 
25
- var defaultSize = 'sm';
26
-
27
- var Menu = function Menu(_ref) {
28
- var _classnames;
22
+ var Menu = /*#__PURE__*/React__default.forwardRef(function Menu(_ref, forwardRef) {
23
+ var _cx;
29
24
 
30
25
  var children = _ref.children,
31
26
  className = _ref.className,
32
- id = _ref.id,
33
- _ref$level = _ref.level,
34
- level = _ref$level === void 0 ? 1 : _ref$level,
27
+ label = _ref.label,
28
+ onClose = _ref.onClose,
35
29
  open = _ref.open,
36
30
  _ref$size = _ref.size,
37
- size = _ref$size === void 0 ? defaultSize : _ref$size,
31
+ size = _ref$size === void 0 ? 'sm' : _ref$size,
38
32
  _ref$target = _ref.target,
39
33
  target = _ref$target === void 0 ? document.body : _ref$target,
40
34
  _ref$x = _ref.x,
41
35
  x = _ref$x === void 0 ? 0 : _ref$x,
42
36
  _ref$y = _ref.y,
43
37
  y = _ref$y === void 0 ? 0 : _ref$y,
44
- _ref$onClose = _ref.onClose,
45
- onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose,
46
38
  rest = _objectWithoutProperties(_ref, _excluded);
47
39
 
48
- var rootRef = useRef(null);
49
-
50
- var _useState = useState(1),
40
+ var prefix = usePrefix();
41
+ var focusReturn = useRef(null);
42
+ var context = useContext(MenuContext);
43
+ var isRoot = context.state.isRoot;
44
+ var menuSize = isRoot ? size : context.state.size;
45
+
46
+ var _useReducer = useReducer(menuReducer, _objectSpread2(_objectSpread2({}, context.state), {}, {
47
+ isRoot: false,
48
+ size: size,
49
+ requestCloseRoot: isRoot ? handleClose : context.state.requestCloseRoot
50
+ })),
51
+ _useReducer2 = _slicedToArray(_useReducer, 2),
52
+ childState = _useReducer2[0],
53
+ childDispatch = _useReducer2[1];
54
+
55
+ var childContext = useMemo(function () {
56
+ return {
57
+ state: childState,
58
+ dispatch: childDispatch
59
+ };
60
+ }, [childState, childDispatch]);
61
+ var menu = useRef();
62
+ var ref = useMergedRefs([forwardRef, menu]);
63
+
64
+ var _useState = useState([-1, -1]),
51
65
  _useState2 = _slicedToArray(_useState, 2),
52
- direction = _useState2[0],
53
- setDirection = _useState2[1]; // 1 = to right, -1 = to left
54
-
66
+ position = _useState2[0],
67
+ setPosition = _useState2[1];
55
68
 
56
- var _useState3 = useState([x, y]),
57
- _useState4 = _slicedToArray(_useState3, 2),
58
- position = _useState4[0],
59
- setPosition = _useState4[1];
60
-
61
- var isRootMenu = level === 1;
62
- var focusReturn = useRef(null);
63
- var prefix = usePrefix();
69
+ var focusableItems = childContext.state.items.filter(function (item) {
70
+ return !item.disabled;
71
+ });
64
72
 
65
73
  function returnFocus() {
66
74
  if (focusReturn.current) {
@@ -68,261 +76,205 @@ var Menu = function Menu(_ref) {
68
76
  }
69
77
  }
70
78
 
71
- function close(eventType) {
72
- var isKeyboardEvent = /^key/.test(eventType);
79
+ function handleOpen() {
80
+ if (menu.current) {
81
+ focusReturn.current = document.activeElement;
82
+ setPosition(calculatePosition());
83
+ menu.current.focus();
84
+ }
85
+ }
73
86
 
74
- if (isKeyboardEvent) {
87
+ function handleClose(e) {
88
+ if (/^key/.test(e.type)) {
75
89
  window.addEventListener('keyup', returnFocus, {
76
90
  once: true
77
91
  });
78
- } else {
79
- window.addEventListener('mouseup', returnFocus, {
92
+ } else if (e.type === 'click' && menu.current) {
93
+ menu.current.addEventListener('focusout', returnFocus, {
80
94
  once: true
81
95
  });
96
+ } else {
97
+ returnFocus();
82
98
  }
83
99
 
84
- onClose();
85
- }
86
-
87
- function getContainerBoundaries() {
88
- var _document$body = document.body,
89
- bodyWidth = _document$body.clientWidth,
90
- bodyHeight = _document$body.clientHeight;
91
- return [margin, margin, bodyWidth - margin, bodyHeight - margin];
92
- }
93
-
94
- function getTargetBoundaries() {
95
- var xIsRange = _typeof(x) === 'object' && x.length === 2;
96
- var yIsRange = _typeof(y) === 'object' && y.length === 2;
97
- var targetBoundaries = [xIsRange ? x[0] : x, yIsRange ? y[0] : y, xIsRange ? x[1] : x, yIsRange ? y[1] : y];
98
-
99
- if (!isRootMenu) {
100
- var _getParentMenu;
101
-
102
- var _getParentMenu$getBou = (_getParentMenu = getParentMenu(rootRef.current)) === null || _getParentMenu === void 0 ? void 0 : _getParentMenu.getBoundingClientRect(),
103
- parentWidth = _getParentMenu$getBou.width;
104
-
105
- targetBoundaries[2] -= parentWidth;
106
- }
107
-
108
- var containerBoundaries = getContainerBoundaries();
109
- return [capWithinRange(targetBoundaries[0], containerBoundaries[0], containerBoundaries[2]), capWithinRange(targetBoundaries[1], containerBoundaries[1], containerBoundaries[3]), capWithinRange(targetBoundaries[2], containerBoundaries[0], containerBoundaries[2]), capWithinRange(targetBoundaries[3], containerBoundaries[1], containerBoundaries[3])];
110
- }
100
+ childDispatch({
101
+ type: 'clearRegisteredItems'
102
+ });
111
103
 
112
- function focusNode$1(node) {
113
- if (node) {
114
- resetFocus(rootRef.current);
115
- focusNode(node);
104
+ if (onClose) {
105
+ onClose();
116
106
  }
117
107
  }
118
108
 
119
- function handleKeyDown(event) {
120
- if (match(event, Tab)) {
121
- event.preventDefault();
122
- close(event.type);
123
- }
109
+ function handleKeyDown(e) {
110
+ e.stopPropagation();
111
+ var currentItem = focusableItems.findIndex(function (item) {
112
+ return item.ref.current.contains(document.activeElement);
113
+ });
114
+ var indexToFocus = currentItem; // if the user presses escape or this is a submenu
115
+ // and the user presses ArrowLeft, close it
124
116
 
125
- if (event.target.tagName === 'LI' && (match(event, Enter) || match(event, Space))) {
126
- handleClick(event);
117
+ if ((match(e, Escape) || !isRoot && match(e, ArrowLeft)) && onClose) {
118
+ handleClose(e);
127
119
  } else {
128
- event.stopPropagation();
129
- }
130
-
131
- if (match(event, Escape) || !isRootMenu && match(event, ArrowLeft)) {
132
- close(event.type);
133
- }
134
-
135
- var nodeToFocus;
136
-
137
- if (event.target.tagName === 'LI') {
138
- var currentNode = event.target;
120
+ // if currentItem is -1, the menu itself is focused.
121
+ // in this case, the arrow keys define the first item
122
+ // to be focused.
123
+ if (match(e, ArrowUp)) {
124
+ indexToFocus = currentItem === -1 ? focusableItems.length - 1 : indexToFocus - 1;
125
+ }
139
126
 
140
- if (match(event, ArrowUp)) {
141
- nodeToFocus = getNextNode(currentNode, -1);
142
- } else if (match(event, ArrowDown)) {
143
- nodeToFocus = getNextNode(currentNode, 1);
144
- } else if (match(event, ArrowLeft)) {
145
- nodeToFocus = getParentNode(currentNode);
127
+ if (match(e, ArrowDown)) {
128
+ indexToFocus = currentItem === -1 ? 0 : indexToFocus + 1;
146
129
  }
147
- } else if (event.target.tagName === 'UL') {
148
- var validNodes = getValidNodes(event.target);
149
130
 
150
- if (validNodes.length > 0 && match(event, ArrowUp)) {
151
- nodeToFocus = validNodes[validNodes.length - 1];
152
- } else if (validNodes.length > 0 && match(event, ArrowDown)) {
153
- nodeToFocus = validNodes[0];
131
+ if (indexToFocus < 0) {
132
+ indexToFocus = 0;
154
133
  }
155
- }
156
134
 
157
- focusNode$1(nodeToFocus);
135
+ if (indexToFocus >= focusableItems.length) {
136
+ indexToFocus = focusableItems.length - 1;
137
+ }
158
138
 
159
- if (rest.onKeyDown) {
160
- rest.onKeyDown(event);
139
+ if (indexToFocus !== currentItem) {
140
+ var nodeToFocus = focusableItems[indexToFocus];
141
+ nodeToFocus.ref.current.focus();
142
+ }
161
143
  }
162
144
  }
163
145
 
164
- function handleClick(event) {
165
- if (!clickedElementHasSubnodes(event) && event.target.tagName !== 'UL') {
166
- close(event.type);
167
- } else {
168
- event.stopPropagation();
146
+ function handleBlur(e) {
147
+ if (open && onClose && isRoot && !menu.current.contains(e.relatedTarget)) {
148
+ handleClose(e);
169
149
  }
170
150
  }
171
151
 
172
- function getCorrectedPosition(preferredDirection) {
173
- var _rootRef$current;
174
-
175
- var elementRect = (_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.getBoundingClientRect();
176
- var elementDimensions = [elementRect.width, elementRect.height];
177
- var targetBoundaries = getTargetBoundaries();
178
- var containerBoundaries = getContainerBoundaries();
152
+ function fitValue(range, axis) {
153
+ var _menu$current$getBoun = menu.current.getBoundingClientRect(),
154
+ width = _menu$current$getBoun.width,
155
+ height = _menu$current$getBoun.height;
156
+
157
+ var alignment = isRoot ? 'vertical' : 'horizontal';
158
+ var axes = {
159
+ x: {
160
+ max: window.innerWidth,
161
+ size: width,
162
+ anchor: alignment === 'horizontal' ? range[1] : range[0],
163
+ reversedAnchor: alignment === 'horizontal' ? range[0] : range[1],
164
+ offset: 0
165
+ },
166
+ y: {
167
+ max: window.innerHeight,
168
+ size: height,
169
+ anchor: alignment === 'horizontal' ? range[0] : range[1],
170
+ reversedAnchor: alignment === 'horizontal' ? range[1] : range[0],
171
+ offset: isRoot ? 0 : 4 // top padding in menu, used to align the menu items
179
172
 
180
- var _getPosition = getPosition(elementDimensions, targetBoundaries, containerBoundaries, preferredDirection, isRootMenu, rootRef.current),
181
- correctedPosition = _getPosition.position,
182
- correctedDirection = _getPosition.direction;
183
-
184
- setDirection(correctedDirection);
185
- return correctedPosition;
173
+ }
174
+ };
175
+ var _axes$axis = axes[axis],
176
+ max = _axes$axis.max,
177
+ size = _axes$axis.size,
178
+ anchor = _axes$axis.anchor,
179
+ reversedAnchor = _axes$axis.reversedAnchor,
180
+ offset = _axes$axis.offset; // get values for different scenarios, set to false if they don't work
181
+
182
+ var options = [// towards max (preferred)
183
+ max - spacing - size - anchor >= 0 ? anchor - offset : false, // towards min / reversed (first fallback)
184
+ reversedAnchor - size >= 0 ? reversedAnchor - size + offset : false, // align at max (second fallback)
185
+ max - spacing - size];
186
+ var bestOption = options.find(function (option) {
187
+ return option !== false;
188
+ });
189
+ return bestOption >= spacing ? bestOption : spacing;
186
190
  }
187
191
 
188
- function handleBlur(event) {
189
- var _rootRef$current2;
190
-
191
- if (isRootMenu && !((_rootRef$current2 = rootRef.current) !== null && _rootRef$current2 !== void 0 && _rootRef$current2.contains(event.relatedTarget))) {
192
- close(event.type);
192
+ function calculatePosition() {
193
+ if (menu.current) {
194
+ var ranges = {
195
+ x: _typeof(x) === 'object' && x.length === 2 ? x : [x, x],
196
+ y: _typeof(y) === 'object' && y.length === 2 ? y : [y, y]
197
+ };
198
+ return [fitValue(ranges.x, 'x'), fitValue(ranges.y, 'y')];
193
199
  }
200
+
201
+ return [-1, -1];
194
202
  }
195
203
 
196
204
  useEffect(function () {
197
205
  if (open) {
198
- focusReturn.current = document.activeElement;
199
- var localDirection = 1;
200
-
201
- if (isRootMenu) {
202
- var _rootRef$current3;
203
-
204
- (_rootRef$current3 = rootRef.current) === null || _rootRef$current3 === void 0 ? void 0 : _rootRef$current3.focus();
205
- } else {
206
- var parentMenu = getParentMenu(rootRef.current);
207
-
208
- if (parentMenu) {
209
- localDirection = Number(parentMenu.dataset.direction);
210
- }
211
- }
212
-
213
- var correctedPosition = getCorrectedPosition(localDirection);
214
- setPosition(correctedPosition);
206
+ handleOpen();
215
207
  } else {
216
- setPosition([0, 0]);
208
+ // reset position when menu is closed in order for the --shown
209
+ // modifier to be applied correctly
210
+ setPosition(-1, -1);
217
211
  } // eslint-disable-next-line react-hooks/exhaustive-deps
218
212
 
219
- }, [open, x, y]);
220
- var someNodesHaveIcons = React__default.Children.toArray(children).some(function (node) {
221
- return node.type === MenuSelectableItem || node.type === MenuRadioGroup;
222
- });
223
- var options = React__default.Children.map(children, function (node) {
224
- if ( /*#__PURE__*/React__default.isValidElement(node)) {
225
- return /*#__PURE__*/React__default.cloneElement(node, {
226
- indented: someNodesHaveIcons,
227
- level: level
228
- });
229
- }
230
- });
231
- var classes = cx("".concat(prefix, "--menu"), (_classnames = {}, _defineProperty(_classnames, "".concat(prefix, "--menu--open"), open), _defineProperty(_classnames, "".concat(prefix, "--menu--invisible"), open && position[0] === 0 && position[1] === 0), _defineProperty(_classnames, "".concat(prefix, "--menu--root"), isRootMenu), _classnames), size !== defaultSize && "".concat(prefix, "--menu--").concat(size), className);
232
-
233
- var ulAttributes = _objectSpread2(_objectSpread2({}, rest), {}, {
234
- id: id,
235
- ref: rootRef,
236
- className: classes,
237
- onKeyDown: handleKeyDown,
238
- onClick: handleClick,
239
- onBlur: handleBlur,
240
- role: 'menu',
213
+ }, [open]);
214
+ var classNames = cx(className, "".concat(prefix, "--menu"), "".concat(prefix, "--menu--").concat(menuSize), (_cx = {}, _defineProperty(_cx, "".concat(prefix, "--menu--open"), open), _defineProperty(_cx, "".concat(prefix, "--menu--shown"), position[0] >= 0 && position[1] >= 0), _defineProperty(_cx, "".concat(prefix, "--menu--with-icons"), childContext.state.hasIcons), _cx));
215
+ var rendered = /*#__PURE__*/React__default.createElement(MenuContext.Provider, {
216
+ value: childContext
217
+ }, /*#__PURE__*/React__default.createElement("ul", _extends({}, rest, {
218
+ className: classNames,
219
+ role: "menu",
220
+ ref: ref,
221
+ "aria-label": label,
241
222
  tabIndex: -1,
242
- 'data-direction': direction,
243
- 'data-level': level,
223
+ onKeyDown: handleKeyDown,
224
+ onBlur: handleBlur // eslint-disable-next-line react/forbid-dom-props
225
+ ,
244
226
  style: {
245
227
  left: "".concat(position[0], "px"),
246
228
  top: "".concat(position[1], "px")
247
229
  }
248
- });
249
-
250
- var childrenToRender = options; // if the only child is a radiogroup, don't render it as radiogroup component, but
251
- // only the items to prevent duplicate markup
252
-
253
- if (options && options.length === 1 && options[0].type === MenuRadioGroup) {
254
- var radioGroupProps = options[0].props;
255
- ulAttributes['aria-label'] = radioGroupProps.label;
256
- childrenToRender = /*#__PURE__*/React__default.createElement(MenuRadioGroupOptions, {
257
- items: radioGroupProps.items,
258
- initialSelectedItem: radioGroupProps.initialSelectedItem,
259
- onChange: radioGroupProps.onChange
260
- });
261
- } // if the only child is a generic group, don't render it as group component, but
262
- // only the children to prevent duplicate markup
263
-
264
-
265
- if (options && options.length === 1 && options[0].type === MenuGroup) {
266
- var groupProps = options[0].props;
267
- ulAttributes['aria-label'] = groupProps.label;
268
- childrenToRender = React__default.Children.toArray(options[0].props.children);
269
- }
270
-
271
- var menu = /*#__PURE__*/React__default.createElement("ul", ulAttributes, childrenToRender);
272
- return isRootMenu ? open && /*#__PURE__*/ReactDOM.createPortal(menu, target) || null : menu;
273
- };
274
-
230
+ }), children));
231
+ return isRoot ? open && /*#__PURE__*/createPortal(rendered, target) || null : rendered;
232
+ });
275
233
  Menu.propTypes = {
276
234
  /**
277
- * Specify the children of the Menu
235
+ * A collection of MenuItems to be rendered within this Menu.
278
236
  */
279
237
  children: PropTypes.node,
280
238
 
281
239
  /**
282
- * Specify a custom className to apply to the ul node
240
+ * Additional CSS class names.
283
241
  */
284
242
  className: PropTypes.string,
285
243
 
286
244
  /**
287
- * Define an ID for this menu
288
- */
289
- id: PropTypes.string,
290
-
291
- /**
292
- * Internal: keeps track of the nesting level of the menu
245
+ * A label describing the Menu.
293
246
  */
294
- level: PropTypes.number,
247
+ label: PropTypes.string,
295
248
 
296
249
  /**
297
- * Function called when the menu is closed
250
+ * Provide an optional function to be called when the Menu should be closed.
298
251
  */
299
252
  onClose: PropTypes.func,
300
253
 
301
254
  /**
302
- * Specify whether the Menu is currently open
255
+ * Whether the Menu is open or not.
303
256
  */
304
257
  open: PropTypes.bool,
305
258
 
306
259
  /**
307
- * Specify the size of the menu, from a list of available sizes.
260
+ * Specify the size of the Menu.
308
261
  */
309
- size: PropTypes.oneOf(['sm', 'md', 'lg']),
262
+ size: PropTypes.oneOf(['xs', 'sm', 'md', 'lg']),
310
263
 
311
264
  /**
312
- * Optionally pass an element the Menu should be appended to as a child. Defaults to document.body.
265
+ * Specify a DOM node where the Menu should be rendered in. Defaults to document.body.
313
266
  */
314
267
  target: PropTypes.object,
315
268
 
316
269
  /**
317
- * Specify the x position where this menu is rendered
270
+ * Specify the x position of the Menu. Either pass a single number or an array with two numbers describing your activator's boundaries ([x1, x2])
318
271
  */
319
272
  x: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),
320
273
 
321
274
  /**
322
- * Specify the y position where this menu is rendered
275
+ * Specify the y position of the Menu. Either pass a single number or an array with two numbers describing your activator's boundaries ([y1, y2])
323
276
  */
324
277
  y: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)])
325
278
  };
326
- var Menu$1 = Menu;
327
279
 
328
- export { Menu$1 as default };
280
+ export { Menu };
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import { objectSpread2 as _objectSpread2, toConsumableArray as _toConsumableArray } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
+ import React__default from 'react';
10
+
11
+ var menuDefaultState = {
12
+ isRoot: true,
13
+ hasIcons: false,
14
+ size: null,
15
+ items: [],
16
+ requestCloseRoot: function requestCloseRoot() {}
17
+ };
18
+
19
+ function menuReducer(state, action) {
20
+ switch (action.type) {
21
+ case 'enableIcons':
22
+ return _objectSpread2(_objectSpread2({}, state), {}, {
23
+ hasIcons: true
24
+ });
25
+
26
+ case 'registerItem':
27
+ return _objectSpread2(_objectSpread2({}, state), {}, {
28
+ items: [].concat(_toConsumableArray(state.items), [action.payload])
29
+ });
30
+
31
+ case 'clearRegisteredItems':
32
+ return _objectSpread2(_objectSpread2({}, state), {}, {
33
+ items: []
34
+ });
35
+ }
36
+ }
37
+
38
+ var MenuContext = /*#__PURE__*/React__default.createContext({
39
+ state: menuDefaultState,
40
+ // 'dispatch' is populated by the root menu
41
+ dispatch: function dispatch() {}
42
+ });
43
+
44
+ export { MenuContext, menuReducer };