@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,58 +1,440 @@
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, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
- import React__default from 'react';
8
+ import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, defineProperty as _defineProperty, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
+ import cx from 'classnames';
10
10
  import PropTypes from 'prop-types';
11
- import MenuOption from './MenuOption.js';
11
+ import React__default, { useContext, useRef, useState, useEffect } from 'react';
12
+ import { CaretRight, Checkmark } from '@carbon/react/icons';
13
+ import { useControllableState } from '../../internal/useControllableState.js';
14
+ import { useMergedRefs } from '../../internal/useMergedRefs.js';
15
+ import { usePrefix } from '../../internal/usePrefix.js';
16
+ import { Menu } from './Menu.js';
17
+ import { MenuContext } from './MenuContext.js';
18
+ import { match } from '../../internal/keyboard/match.js';
19
+ import { ArrowRight, Enter, Space } from '../../internal/keyboard/keys.js';
12
20
 
13
- var _excluded = ["label", "children", "disabled", "kind", "shortcut"];
21
+ var _CaretRight;
14
22
 
15
- function MenuItem(_ref) {
16
- var label = _ref.label,
17
- children = _ref.children,
23
+ var _excluded = ["children", "className", "disabled", "kind", "label", "onClick", "renderIcon", "shortcut"],
24
+ _excluded2 = ["className", "defaultSelected", "label", "onChange", "selected"],
25
+ _excluded3 = ["children", "className", "label"],
26
+ _excluded4 = ["className", "defaultSelectedItem", "items", "itemToString", "label", "onChange", "selectedItem"],
27
+ _excluded5 = ["className"];
28
+ var hoverIntentDelay = 150; // in ms
29
+
30
+ var MenuItem = /*#__PURE__*/React__default.forwardRef(function MenuItem(_ref, forwardRef) {
31
+ var _cx;
32
+
33
+ var children = _ref.children,
34
+ className = _ref.className,
18
35
  disabled = _ref.disabled,
19
- kind = _ref.kind,
36
+ _ref$kind = _ref.kind,
37
+ kind = _ref$kind === void 0 ? 'default' : _ref$kind,
38
+ label = _ref.label,
39
+ onClick = _ref.onClick,
40
+ IconElement = _ref.renderIcon,
20
41
  shortcut = _ref.shortcut,
21
42
  rest = _objectWithoutProperties(_ref, _excluded);
22
43
 
23
- return /*#__PURE__*/React__default.createElement(MenuOption, _extends({}, rest, {
24
- label: label,
25
- disabled: disabled,
26
- kind: kind,
27
- shortcut: shortcut
28
- }), children);
29
- }
44
+ var prefix = usePrefix();
45
+ var context = useContext(MenuContext);
46
+ var menuItem = useRef();
47
+ var ref = useMergedRefs([forwardRef, menuItem]);
48
+
49
+ var _useState = useState({
50
+ x: -1,
51
+ y: -1
52
+ }),
53
+ _useState2 = _slicedToArray(_useState, 2),
54
+ boundaries = _useState2[0],
55
+ setBoundaries = _useState2[1];
56
+
57
+ var hasChildren = Boolean(children);
58
+
59
+ var _useState3 = useState(false),
60
+ _useState4 = _slicedToArray(_useState3, 2),
61
+ submenuOpen = _useState4[0],
62
+ setSubmenuOpen = _useState4[1];
63
+
64
+ var hoverIntentTimeout = useRef(null);
65
+ var isDisabled = disabled && !hasChildren;
66
+ var isDanger = kind === 'danger' && !hasChildren;
67
+
68
+ function registerItem() {
69
+ context.dispatch({
70
+ type: 'registerItem',
71
+ payload: {
72
+ ref: menuItem,
73
+ disabled: Boolean(disabled)
74
+ }
75
+ });
76
+ }
77
+
78
+ function openSubmenu() {
79
+ var _menuItem$current$get = menuItem.current.getBoundingClientRect(),
80
+ x = _menuItem$current$get.x,
81
+ y = _menuItem$current$get.y,
82
+ width = _menuItem$current$get.width,
83
+ height = _menuItem$current$get.height;
84
+
85
+ setBoundaries({
86
+ x: [x, x + width],
87
+ y: [y, y + height]
88
+ });
89
+ setSubmenuOpen(true);
90
+ }
91
+
92
+ function closeSubmenu() {
93
+ setSubmenuOpen(false);
94
+ setBoundaries({
95
+ x: -1,
96
+ y: -1
97
+ });
98
+ }
99
+
100
+ function handleClick(e) {
101
+ if (!isDisabled) {
102
+ if (hasChildren) {
103
+ openSubmenu();
104
+ } else {
105
+ context.state.requestCloseRoot(e);
30
106
 
107
+ if (onClick) {
108
+ onClick(e);
109
+ }
110
+ }
111
+ }
112
+ }
113
+
114
+ function handleMouseEnter() {
115
+ hoverIntentTimeout.current = setTimeout(function () {
116
+ openSubmenu();
117
+ }, hoverIntentDelay);
118
+ }
119
+
120
+ function handleMouseLeave() {
121
+ clearTimeout(hoverIntentTimeout.current);
122
+ closeSubmenu();
123
+ menuItem.current.focus();
124
+ }
125
+
126
+ function handleKeyDown(e) {
127
+ if (hasChildren && match(e, ArrowRight)) {
128
+ openSubmenu();
129
+ }
130
+
131
+ if (match(e, Enter) || match(e, Space)) {
132
+ handleClick(e);
133
+ }
134
+
135
+ if (rest.onKeyDown) {
136
+ rest.onKeyDown(e);
137
+ }
138
+ }
139
+
140
+ var classNames = cx(className, "".concat(prefix, "--menu-item"), (_cx = {}, _defineProperty(_cx, "".concat(prefix, "--menu-item--disabled"), isDisabled), _defineProperty(_cx, "".concat(prefix, "--menu-item--danger"), isDanger), _cx)); // on first render, register this menuitem in the context's state
141
+ // (used for keyboard navigation)
142
+
143
+ useEffect(function () {
144
+ registerItem(); // eslint-disable-next-line react-hooks/exhaustive-deps
145
+ }, []);
146
+ return /*#__PURE__*/React__default.createElement("li", _extends({
147
+ role: "menuitem"
148
+ }, rest, {
149
+ ref: ref,
150
+ className: classNames,
151
+ tabIndex: "-1",
152
+ "aria-disabled": isDisabled || null,
153
+ "aria-haspopup": hasChildren || null,
154
+ "aria-expanded": hasChildren ? submenuOpen : null,
155
+ onClick: handleClick,
156
+ onMouseEnter: hasChildren ? handleMouseEnter : null,
157
+ onMouseLeave: hasChildren ? handleMouseLeave : null,
158
+ onKeyDown: handleKeyDown
159
+ }), /*#__PURE__*/React__default.createElement("div", {
160
+ className: "".concat(prefix, "--menu-item__icon")
161
+ }, IconElement && /*#__PURE__*/React__default.createElement(IconElement, null)), /*#__PURE__*/React__default.createElement("div", {
162
+ className: "".concat(prefix, "--menu-item__label")
163
+ }, label), shortcut && !hasChildren && /*#__PURE__*/React__default.createElement("div", {
164
+ className: "".concat(prefix, "--menu-item__shortcut")
165
+ }, shortcut), hasChildren && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
166
+ className: "".concat(prefix, "--menu-item__shortcut")
167
+ }, _CaretRight || (_CaretRight = /*#__PURE__*/React__default.createElement(CaretRight, null))), /*#__PURE__*/React__default.createElement(Menu, {
168
+ label: label,
169
+ open: submenuOpen,
170
+ onClose: function onClose() {
171
+ closeSubmenu();
172
+ menuItem.current.focus();
173
+ },
174
+ x: boundaries.x,
175
+ y: boundaries.y
176
+ }, children)));
177
+ });
31
178
  MenuItem.propTypes = {
32
179
  /**
33
- * Specify the children of the MenuItem
180
+ * Optionally provide another Menu to create a submenu. props.children can't be used to specify the content of the MenuItem itself. Use props.label instead.
34
181
  */
35
182
  children: PropTypes.node,
36
183
 
37
184
  /**
38
- * Specify whether this MenuItem is disabled
185
+ * Additional CSS class names.
186
+ */
187
+ className: PropTypes.string,
188
+
189
+ /**
190
+ * Specify whether the MenuItem is disabled or not.
39
191
  */
40
192
  disabled: PropTypes.bool,
41
193
 
42
194
  /**
43
- * Optional prop to specify the kind of the MenuItem
195
+ * Specify the kind of the MenuItem.
44
196
  */
45
197
  kind: PropTypes.oneOf(['default', 'danger']),
46
198
 
47
199
  /**
48
- * Rendered label for the MenuItem
200
+ * A required label titling the MenuItem. Will be rendered as its text content.
49
201
  */
50
- label: PropTypes.node.isRequired,
202
+ label: PropTypes.string.isRequired,
203
+
204
+ /**
205
+ * Provide an optional function to be called when the MenuItem is clicked.
206
+ */
207
+ onClick: PropTypes.func,
208
+
209
+ /**
210
+ * This prop is not intended for use. The only supported icons are Checkmarks to depict single- and multi-selects. This prop is used by MenuItemSelectable and MenuItemRadioGroup automatically.
211
+ */
212
+ renderIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
213
+
214
+ /**
215
+ * Provide a shortcut for the action of this MenuItem. Note that the component will only render it as a hint but not actually register the shortcut.
216
+ */
217
+ shortcut: PropTypes.string
218
+ };
219
+ var MenuItemSelectable = /*#__PURE__*/React__default.forwardRef(function MenuItemSelectable(_ref2, forwardRef) {
220
+ var className = _ref2.className,
221
+ defaultSelected = _ref2.defaultSelected,
222
+ label = _ref2.label,
223
+ onChange = _ref2.onChange,
224
+ selected = _ref2.selected,
225
+ rest = _objectWithoutProperties(_ref2, _excluded2);
226
+
227
+ var prefix = usePrefix();
228
+ var context = useContext(MenuContext);
229
+
230
+ var _useControllableState = useControllableState({
231
+ value: selected,
232
+ onChange: onChange,
233
+ defaultValue: defaultSelected !== null && defaultSelected !== void 0 ? defaultSelected : false
234
+ }),
235
+ _useControllableState2 = _slicedToArray(_useControllableState, 2),
236
+ checked = _useControllableState2[0],
237
+ setChecked = _useControllableState2[1];
238
+
239
+ function handleClick(e) {
240
+ setChecked(!checked);
241
+
242
+ if (onChange) {
243
+ onChange(e);
244
+ }
245
+ }
246
+
247
+ useEffect(function () {
248
+ if (!context.state.hasIcons) {
249
+ context.dispatch({
250
+ type: 'enableIcons'
251
+ });
252
+ }
253
+ }, [context.state.hasIcons, context]);
254
+ var classNames = cx(className, "".concat(prefix, "--menu-item-selectable--selected"));
255
+ return /*#__PURE__*/React__default.createElement(MenuItem, _extends({}, rest, {
256
+ ref: forwardRef,
257
+ label: label,
258
+ className: classNames,
259
+ role: "menuitemcheckbox",
260
+ "aria-checked": checked,
261
+ renderIcon: checked && Checkmark,
262
+ onClick: handleClick
263
+ }));
264
+ });
265
+ MenuItemSelectable.propTypes = {
266
+ /**
267
+ * Additional CSS class names.
268
+ */
269
+ className: PropTypes.string,
270
+
271
+ /**
272
+ * Specify whether the option should be selected by default.
273
+ */
274
+ defaultSelected: PropTypes.bool,
275
+
276
+ /**
277
+ * A required label titling this option.
278
+ */
279
+ label: PropTypes.string.isRequired,
280
+
281
+ /**
282
+ * Provide an optional function to be called when the selection state changes.
283
+ */
284
+ onChange: PropTypes.func,
285
+
286
+ /**
287
+ * Pass a bool to props.selected to control the state of this option.
288
+ */
289
+ selected: PropTypes.bool
290
+ };
291
+ var MenuItemGroup = /*#__PURE__*/React__default.forwardRef(function MenuItemGroup(_ref3, forwardRef) {
292
+ var children = _ref3.children,
293
+ className = _ref3.className,
294
+ label = _ref3.label,
295
+ rest = _objectWithoutProperties(_ref3, _excluded3);
296
+
297
+ var prefix = usePrefix();
298
+ var classNames = cx(className, "".concat(prefix, "--menu-item-group"));
299
+ return /*#__PURE__*/React__default.createElement("li", {
300
+ className: classNames,
301
+ role: "none",
302
+ ref: forwardRef
303
+ }, /*#__PURE__*/React__default.createElement("ul", _extends({}, rest, {
304
+ role: "group",
305
+ "aria-label": label
306
+ }), children));
307
+ });
308
+ MenuItemGroup.propTypes = {
309
+ /**
310
+ * A collection of MenuItems to be rendered within this group.
311
+ */
312
+ children: PropTypes.node,
313
+
314
+ /**
315
+ * Additional CSS class names.
316
+ */
317
+ className: PropTypes.string,
318
+
319
+ /**
320
+ * A required label titling this group.
321
+ */
322
+ label: PropTypes.string.isRequired
323
+ };
324
+ var MenuItemRadioGroup = /*#__PURE__*/React__default.forwardRef(function MenuItemRadioGroup(_ref4, forwardRef) {
325
+ var className = _ref4.className,
326
+ defaultSelectedItem = _ref4.defaultSelectedItem,
327
+ items = _ref4.items,
328
+ _ref4$itemToString = _ref4.itemToString,
329
+ itemToString = _ref4$itemToString === void 0 ? function (item) {
330
+ return item.toString();
331
+ } : _ref4$itemToString,
332
+ label = _ref4.label,
333
+ onChange = _ref4.onChange,
334
+ selectedItem = _ref4.selectedItem,
335
+ rest = _objectWithoutProperties(_ref4, _excluded4);
336
+
337
+ var prefix = usePrefix();
338
+ var context = useContext(MenuContext);
339
+
340
+ var _useControllableState3 = useControllableState({
341
+ value: selectedItem,
342
+ onChange: onChange,
343
+ defaultValue: defaultSelectedItem
344
+ }),
345
+ _useControllableState4 = _slicedToArray(_useControllableState3, 2),
346
+ selection = _useControllableState4[0],
347
+ setSelection = _useControllableState4[1];
348
+
349
+ function handleClick(item, e) {
350
+ setSelection(item);
351
+
352
+ if (onChange) {
353
+ onChange(e);
354
+ }
355
+ }
356
+
357
+ useEffect(function () {
358
+ if (!context.state.hasIcons) {
359
+ context.dispatch({
360
+ type: 'enableIcons'
361
+ });
362
+ }
363
+ }, [context.state.hasIcons, context]);
364
+ var classNames = cx(className, "".concat(prefix, "--menu-item-radio-group"));
365
+ return /*#__PURE__*/React__default.createElement("li", {
366
+ className: classNames,
367
+ role: "none",
368
+ ref: forwardRef
369
+ }, /*#__PURE__*/React__default.createElement("ul", _extends({}, rest, {
370
+ role: "group",
371
+ "aria-label": label
372
+ }), items.map(function (item, i) {
373
+ return /*#__PURE__*/React__default.createElement(MenuItem, {
374
+ key: i,
375
+ label: itemToString(item),
376
+ role: "menuitemradio",
377
+ "aria-checked": item === selection,
378
+ renderIcon: item === selection && Checkmark,
379
+ onClick: function onClick(e) {
380
+ handleClick(item, e);
381
+ }
382
+ });
383
+ })));
384
+ });
385
+ MenuItemRadioGroup.propTypes = {
386
+ /**
387
+ * Additional CSS class names.
388
+ */
389
+ className: PropTypes.string,
390
+
391
+ /**
392
+ * Specify the default selected item. Must match the type of props.items.
393
+ */
394
+ defaultSelectedItem: PropTypes.any,
395
+
396
+ /**
397
+ * Provide a function to convert an item to the string that will be rendered. Defaults to item.toString().
398
+ */
399
+ itemToString: PropTypes.func,
400
+
401
+ /**
402
+ * Provide the options for this radio group. Can be of any type, as long as you provide an appropriate props.itemToString function.
403
+ */
404
+ items: PropTypes.array,
405
+
406
+ /**
407
+ * A required label titling this radio group.
408
+ */
409
+ label: PropTypes.string.isRequired,
410
+
411
+ /**
412
+ * Provide an optional function to be called when the selection changes.
413
+ */
414
+ onChange: PropTypes.func,
415
+
416
+ /**
417
+ * Provide props.selectedItem to control the state of this radio group. Must match the type of props.items.
418
+ */
419
+ selectedItem: PropTypes.any
420
+ };
421
+ var MenuItemDivider = /*#__PURE__*/React__default.forwardRef(function MenuItemDivider(_ref5, forwardRef) {
422
+ var className = _ref5.className,
423
+ rest = _objectWithoutProperties(_ref5, _excluded5);
51
424
 
425
+ var prefix = usePrefix();
426
+ var classNames = cx(className, "".concat(prefix, "--menu-item-divider"));
427
+ return /*#__PURE__*/React__default.createElement("li", _extends({}, rest, {
428
+ className: classNames,
429
+ role: "separator",
430
+ ref: forwardRef
431
+ }));
432
+ });
433
+ MenuItemDivider.propTypes = {
52
434
  /**
53
- * Rendered shortcut for the MenuItem
435
+ * Additional CSS class names.
54
436
  */
55
- shortcut: PropTypes.node
437
+ className: PropTypes.string
56
438
  };
57
439
 
58
- export { MenuItem as default };
440
+ export { MenuItem, MenuItemDivider, MenuItemGroup, MenuItemRadioGroup, MenuItemSelectable };
@@ -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.
@@ -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.
@@ -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.
@@ -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.
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { UseSelectProps } from 'downshift';
8
+ import React from 'react';
9
+ import { ListBoxSize, ListBoxType } from '../ListBox';
10
+ import { ListBoxProps } from '../ListBox/ListBox';
11
+ import { OnChangeData } from '../Dropdown';
12
+ interface SharedOptions {
13
+ locale: string;
14
+ }
15
+ interface DownshiftTypedProps<ItemType> {
16
+ itemToString?(item: ItemType): string;
17
+ }
18
+ interface InternationalProps<MID = string, ARGS = Record<string, unknown>> {
19
+ translateWithId?(messageId: MID, args?: ARGS): string;
20
+ }
21
+ interface SortItemsOptions<ItemType> extends SharedOptions, DownshiftTypedProps<ItemType> {
22
+ compareItems(item1: ItemType, item2: ItemType, options: SharedOptions): number;
23
+ selectedItems: ItemType[];
24
+ }
25
+ interface MultiSelectSortingProps<ItemType> {
26
+ compareItems?(item1: ItemType, item2: ItemType, options: SharedOptions): number;
27
+ sortItems?(items: ReadonlyArray<ItemType>, options: SortItemsOptions<ItemType>): ItemType[];
28
+ }
29
+ export interface MultiSelectProps<ItemType> extends MultiSelectSortingProps<ItemType>, InternationalProps<'close.menu' | 'open.menu' | 'clear.all' | 'clear.selection'> {
30
+ className?: string;
31
+ /**
32
+ * Specify the text that should be read for screen readers that describes total items selected
33
+ */
34
+ clearSelectionDescription?: string;
35
+ /**
36
+ * Specify the text that should be read for screen readers to clear selection.
37
+ */
38
+ clearSelectionText?: string;
39
+ /**
40
+ * Specify the direction of the multiselect dropdown. Can be either top or bottom.
41
+ */
42
+ direction?: 'bottom' | 'top';
43
+ /**
44
+ * Disable the control
45
+ */
46
+ disabled?: ListBoxProps['disabled'];
47
+ /**
48
+ * Additional props passed to Downshift
49
+ */
50
+ downshiftProps?: Partial<UseSelectProps<ItemType>>;
51
+ /**
52
+ * Provide helper text that is used alongside the control label for
53
+ * additional help
54
+ */
55
+ helperText?: React.ReactNode;
56
+ /**
57
+ * Specify whether the title text should be hidden or not
58
+ */
59
+ hideLabel?: boolean;
60
+ /**
61
+ * Specify a custom `id`
62
+ */
63
+ id: string;
64
+ /**
65
+ * Allow users to pass in arbitrary items from their collection that are
66
+ * pre-selected
67
+ */
68
+ initialSelectedItems?: ItemType[];
69
+ /**
70
+ * Is the current selection invalid?
71
+ */
72
+ invalid?: boolean;
73
+ /**
74
+ * If invalid, what is the error?
75
+ */
76
+ invalidText?: React.ReactNode;
77
+ /**
78
+ * Function to render items as custom components instead of strings.
79
+ * Defaults to null and is overridden by a getter
80
+ */
81
+ itemToElement?: React.JSXElementConstructor<ItemType>;
82
+ /**
83
+ * Helper function passed to downshift that allows the library to render a
84
+ * given item to a string label. By default, it extracts the `label` field
85
+ * from a given item to serve as the item label in the list.
86
+ */
87
+ itemToString?(item: ItemType): string;
88
+ /**
89
+ * We try to stay as generic as possible here to allow individuals to pass
90
+ * in a collection of whatever kind of data structure they prefer
91
+ */
92
+ items: ItemType[];
93
+ /**
94
+ * Generic `label` that will be used as the textual representation of what
95
+ * this field is for
96
+ */
97
+ label: NonNullable<React.ReactNode>;
98
+ /**
99
+ * `true` to use the light version.
100
+ *
101
+ * @deprecated The `light` prop for `MultiSelect` has
102
+ * been deprecated in favor of the new `Layer` component. It will be removed in the next major release.
103
+ */
104
+ light?: boolean;
105
+ /**
106
+ * Specify the locale of the control. Used for the default `compareItems`
107
+ * used for sorting the list of items in the control.
108
+ */
109
+ locale?: string;
110
+ /**
111
+ * `onChange` is a utility for this controlled component to communicate to a
112
+ * consuming component what kind of internal state changes are occurring.
113
+ */
114
+ onChange?(data: OnChangeData<ItemType>): void;
115
+ /**
116
+ * `onMenuChange` is a utility for this controlled component to communicate to a
117
+ * consuming component that the menu was opend(`true`)/closed(`false`).
118
+ */
119
+ onMenuChange?(open: boolean): void;
120
+ /**
121
+ * Initialize the component with an open(`true`)/closed(`false`) menu.
122
+ */
123
+ open?: boolean;
124
+ /**
125
+ * Whether or not the Dropdown is readonly
126
+ */
127
+ readOnly?: boolean;
128
+ /**
129
+ * For full control of the selected items
130
+ */
131
+ selectedItems?: ItemType[];
132
+ /**
133
+ * Specify feedback (mode) of the selection.
134
+ * `top`: selected item jumps to top
135
+ * `fixed`: selected item stays at it's position
136
+ * `top-after-reopen`: selected item jump to top after reopen dropdown
137
+ */
138
+ selectionFeedback?: 'fixed' | 'top' | 'top-after-reopen';
139
+ /**
140
+ * Specify the size of the ListBox. Currently supports either `sm`, `md` or `lg` as an option.
141
+ */
142
+ size?: ListBoxSize;
143
+ /**
144
+ * Provide text to be used in a `<label>` element that is tied to the
145
+ * multiselect via ARIA attributes.
146
+ */
147
+ titleText?: React.ReactNode;
148
+ /**
149
+ * Specify 'inline' to create an inline multi-select.
150
+ */
151
+ type?: ListBoxType;
152
+ /**
153
+ * Specify title to show title on hover
154
+ */
155
+ useTitleInItem?: boolean;
156
+ /**
157
+ * Specify whether the control is currently in warning state
158
+ */
159
+ warn?: boolean;
160
+ /**
161
+ * Provide the text that is displayed when the control is in warning state
162
+ */
163
+ warnText?: React.ReactNode;
164
+ }
165
+ type MultiSelectComponentProps<ItemType> = React.PropsWithChildren<MultiSelectProps<ItemType>> & React.RefAttributes<HTMLButtonElement>;
166
+ interface MultiSelectComponent {
167
+ <ItemType>(props: MultiSelectComponentProps<ItemType>): React.ReactElement | null;
168
+ }
169
+ declare const _default: MultiSelectComponent;
170
+ export default _default;