@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,5 +1,5 @@
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.
@@ -10,68 +10,75 @@
10
10
  Object.defineProperty(exports, '__esModule', { value: true });
11
11
 
12
12
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
- var React = require('react');
14
- var ReactDOM = require('react-dom');
15
13
  var cx = require('classnames');
16
14
  var PropTypes = require('prop-types');
15
+ var React = require('react');
16
+ var ReactDOM = require('react-dom');
17
+ var useMergedRefs = require('../../internal/useMergedRefs.js');
17
18
  var usePrefix = require('../../internal/usePrefix.js');
18
- var _utils = require('./_utils.js');
19
- var MenuGroup = require('./MenuGroup.js');
20
- var MenuRadioGroup = require('./MenuRadioGroup.js');
21
- var MenuRadioGroupOptions = require('./MenuRadioGroupOptions.js');
22
- var MenuSelectableItem = require('./MenuSelectableItem.js');
19
+ var MenuContext = require('./MenuContext.js');
23
20
  var match = require('../../internal/keyboard/match.js');
24
21
  var keys = require('../../internal/keyboard/keys.js');
25
22
 
26
23
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
27
24
 
28
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
29
- var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
30
25
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
31
26
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
27
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
32
28
 
33
- var _excluded = ["children", "className", "id", "level", "open", "size", "target", "x", "y", "onClose"];
34
- var margin = 16; // distance to keep to body edges, in px
35
-
36
- var defaultSize = 'sm';
29
+ var _excluded = ["children", "className", "label", "onClose", "open", "size", "target", "x", "y"];
30
+ var spacing = 8; // distance to keep to window edges, in px
37
31
 
38
- var Menu = function Menu(_ref) {
39
- var _classnames;
32
+ var Menu = /*#__PURE__*/React__default["default"].forwardRef(function Menu(_ref, forwardRef) {
33
+ var _cx;
40
34
 
41
35
  var children = _ref.children,
42
36
  className = _ref.className,
43
- id = _ref.id,
44
- _ref$level = _ref.level,
45
- level = _ref$level === void 0 ? 1 : _ref$level,
37
+ label = _ref.label,
38
+ onClose = _ref.onClose,
46
39
  open = _ref.open,
47
40
  _ref$size = _ref.size,
48
- size = _ref$size === void 0 ? defaultSize : _ref$size,
41
+ size = _ref$size === void 0 ? 'sm' : _ref$size,
49
42
  _ref$target = _ref.target,
50
43
  target = _ref$target === void 0 ? document.body : _ref$target,
51
44
  _ref$x = _ref.x,
52
45
  x = _ref$x === void 0 ? 0 : _ref$x,
53
46
  _ref$y = _ref.y,
54
47
  y = _ref$y === void 0 ? 0 : _ref$y,
55
- _ref$onClose = _ref.onClose,
56
- onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose,
57
48
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
58
49
 
59
- var rootRef = React.useRef(null);
60
-
61
- var _useState = React.useState(1),
50
+ var prefix = usePrefix.usePrefix();
51
+ var focusReturn = React.useRef(null);
52
+ var context = React.useContext(MenuContext.MenuContext);
53
+ var isRoot = context.state.isRoot;
54
+ var menuSize = isRoot ? size : context.state.size;
55
+
56
+ var _useReducer = React.useReducer(MenuContext.menuReducer, _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, context.state), {}, {
57
+ isRoot: false,
58
+ size: size,
59
+ requestCloseRoot: isRoot ? handleClose : context.state.requestCloseRoot
60
+ })),
61
+ _useReducer2 = _rollupPluginBabelHelpers.slicedToArray(_useReducer, 2),
62
+ childState = _useReducer2[0],
63
+ childDispatch = _useReducer2[1];
64
+
65
+ var childContext = React.useMemo(function () {
66
+ return {
67
+ state: childState,
68
+ dispatch: childDispatch
69
+ };
70
+ }, [childState, childDispatch]);
71
+ var menu = React.useRef();
72
+ var ref = useMergedRefs.useMergedRefs([forwardRef, menu]);
73
+
74
+ var _useState = React.useState([-1, -1]),
62
75
  _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
63
- direction = _useState2[0],
64
- setDirection = _useState2[1]; // 1 = to right, -1 = to left
76
+ position = _useState2[0],
77
+ setPosition = _useState2[1];
65
78
 
66
-
67
- var _useState3 = React.useState([x, y]),
68
- _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
69
- position = _useState4[0],
70
- setPosition = _useState4[1];
71
-
72
- var isRootMenu = level === 1;
73
- var focusReturn = React.useRef(null);
74
- var prefix = usePrefix.usePrefix();
79
+ var focusableItems = childContext.state.items.filter(function (item) {
80
+ return !item.disabled;
81
+ });
75
82
 
76
83
  function returnFocus() {
77
84
  if (focusReturn.current) {
@@ -79,261 +86,205 @@ var Menu = function Menu(_ref) {
79
86
  }
80
87
  }
81
88
 
82
- function close(eventType) {
83
- var isKeyboardEvent = /^key/.test(eventType);
89
+ function handleOpen() {
90
+ if (menu.current) {
91
+ focusReturn.current = document.activeElement;
92
+ setPosition(calculatePosition());
93
+ menu.current.focus();
94
+ }
95
+ }
84
96
 
85
- if (isKeyboardEvent) {
97
+ function handleClose(e) {
98
+ if (/^key/.test(e.type)) {
86
99
  window.addEventListener('keyup', returnFocus, {
87
100
  once: true
88
101
  });
89
- } else {
90
- window.addEventListener('mouseup', returnFocus, {
102
+ } else if (e.type === 'click' && menu.current) {
103
+ menu.current.addEventListener('focusout', returnFocus, {
91
104
  once: true
92
105
  });
106
+ } else {
107
+ returnFocus();
93
108
  }
94
109
 
95
- onClose();
96
- }
97
-
98
- function getContainerBoundaries() {
99
- var _document$body = document.body,
100
- bodyWidth = _document$body.clientWidth,
101
- bodyHeight = _document$body.clientHeight;
102
- return [margin, margin, bodyWidth - margin, bodyHeight - margin];
103
- }
104
-
105
- function getTargetBoundaries() {
106
- var xIsRange = _rollupPluginBabelHelpers["typeof"](x) === 'object' && x.length === 2;
107
- var yIsRange = _rollupPluginBabelHelpers["typeof"](y) === 'object' && y.length === 2;
108
- var targetBoundaries = [xIsRange ? x[0] : x, yIsRange ? y[0] : y, xIsRange ? x[1] : x, yIsRange ? y[1] : y];
109
-
110
- if (!isRootMenu) {
111
- var _getParentMenu;
112
-
113
- var _getParentMenu$getBou = (_getParentMenu = _utils.getParentMenu(rootRef.current)) === null || _getParentMenu === void 0 ? void 0 : _getParentMenu.getBoundingClientRect(),
114
- parentWidth = _getParentMenu$getBou.width;
115
-
116
- targetBoundaries[2] -= parentWidth;
117
- }
118
-
119
- var containerBoundaries = getContainerBoundaries();
120
- return [_utils.capWithinRange(targetBoundaries[0], containerBoundaries[0], containerBoundaries[2]), _utils.capWithinRange(targetBoundaries[1], containerBoundaries[1], containerBoundaries[3]), _utils.capWithinRange(targetBoundaries[2], containerBoundaries[0], containerBoundaries[2]), _utils.capWithinRange(targetBoundaries[3], containerBoundaries[1], containerBoundaries[3])];
121
- }
110
+ childDispatch({
111
+ type: 'clearRegisteredItems'
112
+ });
122
113
 
123
- function focusNode(node) {
124
- if (node) {
125
- _utils.resetFocus(rootRef.current);
126
- _utils.focusNode(node);
114
+ if (onClose) {
115
+ onClose();
127
116
  }
128
117
  }
129
118
 
130
- function handleKeyDown(event) {
131
- if (match.match(event, keys.Tab)) {
132
- event.preventDefault();
133
- close(event.type);
134
- }
119
+ function handleKeyDown(e) {
120
+ e.stopPropagation();
121
+ var currentItem = focusableItems.findIndex(function (item) {
122
+ return item.ref.current.contains(document.activeElement);
123
+ });
124
+ var indexToFocus = currentItem; // if the user presses escape or this is a submenu
125
+ // and the user presses ArrowLeft, close it
135
126
 
136
- if (event.target.tagName === 'LI' && (match.match(event, keys.Enter) || match.match(event, keys.Space))) {
137
- handleClick(event);
127
+ if ((match.match(e, keys.Escape) || !isRoot && match.match(e, keys.ArrowLeft)) && onClose) {
128
+ handleClose(e);
138
129
  } else {
139
- event.stopPropagation();
140
- }
141
-
142
- if (match.match(event, keys.Escape) || !isRootMenu && match.match(event, keys.ArrowLeft)) {
143
- close(event.type);
144
- }
145
-
146
- var nodeToFocus;
147
-
148
- if (event.target.tagName === 'LI') {
149
- var currentNode = event.target;
130
+ // if currentItem is -1, the menu itself is focused.
131
+ // in this case, the arrow keys define the first item
132
+ // to be focused.
133
+ if (match.match(e, keys.ArrowUp)) {
134
+ indexToFocus = currentItem === -1 ? focusableItems.length - 1 : indexToFocus - 1;
135
+ }
150
136
 
151
- if (match.match(event, keys.ArrowUp)) {
152
- nodeToFocus = _utils.getNextNode(currentNode, -1);
153
- } else if (match.match(event, keys.ArrowDown)) {
154
- nodeToFocus = _utils.getNextNode(currentNode, 1);
155
- } else if (match.match(event, keys.ArrowLeft)) {
156
- nodeToFocus = _utils.getParentNode(currentNode);
137
+ if (match.match(e, keys.ArrowDown)) {
138
+ indexToFocus = currentItem === -1 ? 0 : indexToFocus + 1;
157
139
  }
158
- } else if (event.target.tagName === 'UL') {
159
- var validNodes = _utils.getValidNodes(event.target);
160
140
 
161
- if (validNodes.length > 0 && match.match(event, keys.ArrowUp)) {
162
- nodeToFocus = validNodes[validNodes.length - 1];
163
- } else if (validNodes.length > 0 && match.match(event, keys.ArrowDown)) {
164
- nodeToFocus = validNodes[0];
141
+ if (indexToFocus < 0) {
142
+ indexToFocus = 0;
165
143
  }
166
- }
167
144
 
168
- focusNode(nodeToFocus);
145
+ if (indexToFocus >= focusableItems.length) {
146
+ indexToFocus = focusableItems.length - 1;
147
+ }
169
148
 
170
- if (rest.onKeyDown) {
171
- rest.onKeyDown(event);
149
+ if (indexToFocus !== currentItem) {
150
+ var nodeToFocus = focusableItems[indexToFocus];
151
+ nodeToFocus.ref.current.focus();
152
+ }
172
153
  }
173
154
  }
174
155
 
175
- function handleClick(event) {
176
- if (!_utils.clickedElementHasSubnodes(event) && event.target.tagName !== 'UL') {
177
- close(event.type);
178
- } else {
179
- event.stopPropagation();
156
+ function handleBlur(e) {
157
+ if (open && onClose && isRoot && !menu.current.contains(e.relatedTarget)) {
158
+ handleClose(e);
180
159
  }
181
160
  }
182
161
 
183
- function getCorrectedPosition(preferredDirection) {
184
- var _rootRef$current;
162
+ function fitValue(range, axis) {
163
+ var _menu$current$getBoun = menu.current.getBoundingClientRect(),
164
+ width = _menu$current$getBoun.width,
165
+ height = _menu$current$getBoun.height;
166
+
167
+ var alignment = isRoot ? 'vertical' : 'horizontal';
168
+ var axes = {
169
+ x: {
170
+ max: window.innerWidth,
171
+ size: width,
172
+ anchor: alignment === 'horizontal' ? range[1] : range[0],
173
+ reversedAnchor: alignment === 'horizontal' ? range[0] : range[1],
174
+ offset: 0
175
+ },
176
+ y: {
177
+ max: window.innerHeight,
178
+ size: height,
179
+ anchor: alignment === 'horizontal' ? range[0] : range[1],
180
+ reversedAnchor: alignment === 'horizontal' ? range[1] : range[0],
181
+ offset: isRoot ? 0 : 4 // top padding in menu, used to align the menu items
185
182
 
186
- var elementRect = (_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.getBoundingClientRect();
187
- var elementDimensions = [elementRect.width, elementRect.height];
188
- var targetBoundaries = getTargetBoundaries();
189
- var containerBoundaries = getContainerBoundaries();
190
-
191
- var _getPosition = _utils.getPosition(elementDimensions, targetBoundaries, containerBoundaries, preferredDirection, isRootMenu, rootRef.current),
192
- correctedPosition = _getPosition.position,
193
- correctedDirection = _getPosition.direction;
194
-
195
- setDirection(correctedDirection);
196
- return correctedPosition;
183
+ }
184
+ };
185
+ var _axes$axis = axes[axis],
186
+ max = _axes$axis.max,
187
+ size = _axes$axis.size,
188
+ anchor = _axes$axis.anchor,
189
+ reversedAnchor = _axes$axis.reversedAnchor,
190
+ offset = _axes$axis.offset; // get values for different scenarios, set to false if they don't work
191
+
192
+ var options = [// towards max (preferred)
193
+ max - spacing - size - anchor >= 0 ? anchor - offset : false, // towards min / reversed (first fallback)
194
+ reversedAnchor - size >= 0 ? reversedAnchor - size + offset : false, // align at max (second fallback)
195
+ max - spacing - size];
196
+ var bestOption = options.find(function (option) {
197
+ return option !== false;
198
+ });
199
+ return bestOption >= spacing ? bestOption : spacing;
197
200
  }
198
201
 
199
- function handleBlur(event) {
200
- var _rootRef$current2;
201
-
202
- if (isRootMenu && !((_rootRef$current2 = rootRef.current) !== null && _rootRef$current2 !== void 0 && _rootRef$current2.contains(event.relatedTarget))) {
203
- close(event.type);
202
+ function calculatePosition() {
203
+ if (menu.current) {
204
+ var ranges = {
205
+ x: _rollupPluginBabelHelpers["typeof"](x) === 'object' && x.length === 2 ? x : [x, x],
206
+ y: _rollupPluginBabelHelpers["typeof"](y) === 'object' && y.length === 2 ? y : [y, y]
207
+ };
208
+ return [fitValue(ranges.x, 'x'), fitValue(ranges.y, 'y')];
204
209
  }
210
+
211
+ return [-1, -1];
205
212
  }
206
213
 
207
214
  React.useEffect(function () {
208
215
  if (open) {
209
- focusReturn.current = document.activeElement;
210
- var localDirection = 1;
211
-
212
- if (isRootMenu) {
213
- var _rootRef$current3;
214
-
215
- (_rootRef$current3 = rootRef.current) === null || _rootRef$current3 === void 0 ? void 0 : _rootRef$current3.focus();
216
- } else {
217
- var parentMenu = _utils.getParentMenu(rootRef.current);
218
-
219
- if (parentMenu) {
220
- localDirection = Number(parentMenu.dataset.direction);
221
- }
222
- }
223
-
224
- var correctedPosition = getCorrectedPosition(localDirection);
225
- setPosition(correctedPosition);
216
+ handleOpen();
226
217
  } else {
227
- setPosition([0, 0]);
218
+ // reset position when menu is closed in order for the --shown
219
+ // modifier to be applied correctly
220
+ setPosition(-1, -1);
228
221
  } // eslint-disable-next-line react-hooks/exhaustive-deps
229
222
 
230
- }, [open, x, y]);
231
- var someNodesHaveIcons = React__default["default"].Children.toArray(children).some(function (node) {
232
- return node.type === MenuSelectableItem["default"] || node.type === MenuRadioGroup["default"];
233
- });
234
- var options = React__default["default"].Children.map(children, function (node) {
235
- if ( /*#__PURE__*/React__default["default"].isValidElement(node)) {
236
- return /*#__PURE__*/React__default["default"].cloneElement(node, {
237
- indented: someNodesHaveIcons,
238
- level: level
239
- });
240
- }
241
- });
242
- var classes = cx__default["default"]("".concat(prefix, "--menu"), (_classnames = {}, _rollupPluginBabelHelpers.defineProperty(_classnames, "".concat(prefix, "--menu--open"), open), _rollupPluginBabelHelpers.defineProperty(_classnames, "".concat(prefix, "--menu--invisible"), open && position[0] === 0 && position[1] === 0), _rollupPluginBabelHelpers.defineProperty(_classnames, "".concat(prefix, "--menu--root"), isRootMenu), _classnames), size !== defaultSize && "".concat(prefix, "--menu--").concat(size), className);
243
-
244
- var ulAttributes = _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, rest), {}, {
245
- id: id,
246
- ref: rootRef,
247
- className: classes,
248
- onKeyDown: handleKeyDown,
249
- onClick: handleClick,
250
- onBlur: handleBlur,
251
- role: 'menu',
223
+ }, [open]);
224
+ var classNames = cx__default["default"](className, "".concat(prefix, "--menu"), "".concat(prefix, "--menu--").concat(menuSize), (_cx = {}, _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--menu--open"), open), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--menu--shown"), position[0] >= 0 && position[1] >= 0), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--menu--with-icons"), childContext.state.hasIcons), _cx));
225
+ var rendered = /*#__PURE__*/React__default["default"].createElement(MenuContext.MenuContext.Provider, {
226
+ value: childContext
227
+ }, /*#__PURE__*/React__default["default"].createElement("ul", _rollupPluginBabelHelpers["extends"]({}, rest, {
228
+ className: classNames,
229
+ role: "menu",
230
+ ref: ref,
231
+ "aria-label": label,
252
232
  tabIndex: -1,
253
- 'data-direction': direction,
254
- 'data-level': level,
233
+ onKeyDown: handleKeyDown,
234
+ onBlur: handleBlur // eslint-disable-next-line react/forbid-dom-props
235
+ ,
255
236
  style: {
256
237
  left: "".concat(position[0], "px"),
257
238
  top: "".concat(position[1], "px")
258
239
  }
259
- });
260
-
261
- var childrenToRender = options; // if the only child is a radiogroup, don't render it as radiogroup component, but
262
- // only the items to prevent duplicate markup
263
-
264
- if (options && options.length === 1 && options[0].type === MenuRadioGroup["default"]) {
265
- var radioGroupProps = options[0].props;
266
- ulAttributes['aria-label'] = radioGroupProps.label;
267
- childrenToRender = /*#__PURE__*/React__default["default"].createElement(MenuRadioGroupOptions["default"], {
268
- items: radioGroupProps.items,
269
- initialSelectedItem: radioGroupProps.initialSelectedItem,
270
- onChange: radioGroupProps.onChange
271
- });
272
- } // if the only child is a generic group, don't render it as group component, but
273
- // only the children to prevent duplicate markup
274
-
275
-
276
- if (options && options.length === 1 && options[0].type === MenuGroup["default"]) {
277
- var groupProps = options[0].props;
278
- ulAttributes['aria-label'] = groupProps.label;
279
- childrenToRender = React__default["default"].Children.toArray(options[0].props.children);
280
- }
281
-
282
- var menu = /*#__PURE__*/React__default["default"].createElement("ul", ulAttributes, childrenToRender);
283
- return isRootMenu ? open && /*#__PURE__*/ReactDOM__default["default"].createPortal(menu, target) || null : menu;
284
- };
285
-
240
+ }), children));
241
+ return isRoot ? open && /*#__PURE__*/ReactDOM.createPortal(rendered, target) || null : rendered;
242
+ });
286
243
  Menu.propTypes = {
287
244
  /**
288
- * Specify the children of the Menu
245
+ * A collection of MenuItems to be rendered within this Menu.
289
246
  */
290
247
  children: PropTypes__default["default"].node,
291
248
 
292
249
  /**
293
- * Specify a custom className to apply to the ul node
250
+ * Additional CSS class names.
294
251
  */
295
252
  className: PropTypes__default["default"].string,
296
253
 
297
254
  /**
298
- * Define an ID for this menu
299
- */
300
- id: PropTypes__default["default"].string,
301
-
302
- /**
303
- * Internal: keeps track of the nesting level of the menu
255
+ * A label describing the Menu.
304
256
  */
305
- level: PropTypes__default["default"].number,
257
+ label: PropTypes__default["default"].string,
306
258
 
307
259
  /**
308
- * Function called when the menu is closed
260
+ * Provide an optional function to be called when the Menu should be closed.
309
261
  */
310
262
  onClose: PropTypes__default["default"].func,
311
263
 
312
264
  /**
313
- * Specify whether the Menu is currently open
265
+ * Whether the Menu is open or not.
314
266
  */
315
267
  open: PropTypes__default["default"].bool,
316
268
 
317
269
  /**
318
- * Specify the size of the menu, from a list of available sizes.
270
+ * Specify the size of the Menu.
319
271
  */
320
- size: PropTypes__default["default"].oneOf(['sm', 'md', 'lg']),
272
+ size: PropTypes__default["default"].oneOf(['xs', 'sm', 'md', 'lg']),
321
273
 
322
274
  /**
323
- * Optionally pass an element the Menu should be appended to as a child. Defaults to document.body.
275
+ * Specify a DOM node where the Menu should be rendered in. Defaults to document.body.
324
276
  */
325
277
  target: PropTypes__default["default"].object,
326
278
 
327
279
  /**
328
- * Specify the x position where this menu is rendered
280
+ * 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])
329
281
  */
330
282
  x: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].arrayOf(PropTypes__default["default"].number)]),
331
283
 
332
284
  /**
333
- * Specify the y position where this menu is rendered
285
+ * 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])
334
286
  */
335
287
  y: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].arrayOf(PropTypes__default["default"].number)])
336
288
  };
337
- var Menu$1 = Menu;
338
289
 
339
- exports["default"] = Menu$1;
290
+ exports.Menu = Menu;
@@ -0,0 +1,53 @@
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
+ 'use strict';
9
+
10
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
+ var React = require('react');
14
+
15
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
+
17
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
18
+
19
+ var menuDefaultState = {
20
+ isRoot: true,
21
+ hasIcons: false,
22
+ size: null,
23
+ items: [],
24
+ requestCloseRoot: function requestCloseRoot() {}
25
+ };
26
+
27
+ function menuReducer(state, action) {
28
+ switch (action.type) {
29
+ case 'enableIcons':
30
+ return _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, state), {}, {
31
+ hasIcons: true
32
+ });
33
+
34
+ case 'registerItem':
35
+ return _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, state), {}, {
36
+ items: [].concat(_rollupPluginBabelHelpers.toConsumableArray(state.items), [action.payload])
37
+ });
38
+
39
+ case 'clearRegisteredItems':
40
+ return _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, state), {}, {
41
+ items: []
42
+ });
43
+ }
44
+ }
45
+
46
+ var MenuContext = /*#__PURE__*/React__default["default"].createContext({
47
+ state: menuDefaultState,
48
+ // 'dispatch' is populated by the root menu
49
+ dispatch: function dispatch() {}
50
+ });
51
+
52
+ exports.MenuContext = MenuContext;
53
+ exports.menuReducer = menuReducer;