@react-md/core 6.5.2 → 7.0.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 (647) hide show
  1. package/dist/app-bar/AppBar.d.ts +3 -2
  2. package/dist/app-bar/AppBar.js +3 -4
  3. package/dist/app-bar/AppBar.js.map +1 -1
  4. package/dist/app-bar/AppBarTitle.d.ts +3 -1
  5. package/dist/app-bar/AppBarTitle.js +3 -4
  6. package/dist/app-bar/AppBarTitle.js.map +1 -1
  7. package/dist/autocomplete/AutocompleteChip.d.ts +2 -1
  8. package/dist/autocomplete/AutocompleteChip.js +3 -4
  9. package/dist/autocomplete/AutocompleteChip.js.map +1 -1
  10. package/dist/autocomplete/types.d.ts +1 -0
  11. package/dist/autocomplete/types.js.map +1 -1
  12. package/dist/autocomplete/utils.d.ts +4 -4
  13. package/dist/autocomplete/utils.js.map +1 -1
  14. package/dist/avatar/Avatar.d.ts +3 -2
  15. package/dist/avatar/Avatar.js +3 -4
  16. package/dist/avatar/Avatar.js.map +1 -1
  17. package/dist/badge/Badge.d.ts +3 -2
  18. package/dist/badge/Badge.js +3 -4
  19. package/dist/badge/Badge.js.map +1 -1
  20. package/dist/box/Box.d.ts +3 -2
  21. package/dist/box/Box.js +3 -4
  22. package/dist/box/Box.js.map +1 -1
  23. package/dist/button/AsyncButton.d.ts +3 -2
  24. package/dist/button/AsyncButton.js +3 -4
  25. package/dist/button/AsyncButton.js.map +1 -1
  26. package/dist/button/Button.d.ts +3 -2
  27. package/dist/button/Button.js +3 -4
  28. package/dist/button/Button.js.map +1 -1
  29. package/dist/button/ButtonUnstyled.d.ts +5 -3
  30. package/dist/button/ButtonUnstyled.js +3 -4
  31. package/dist/button/ButtonUnstyled.js.map +1 -1
  32. package/dist/button/FloatingActionButton.d.ts +3 -2
  33. package/dist/button/FloatingActionButton.js +3 -4
  34. package/dist/button/FloatingActionButton.js.map +1 -1
  35. package/dist/button/TooltippedButton.d.ts +3 -2
  36. package/dist/button/TooltippedButton.js +3 -4
  37. package/dist/button/TooltippedButton.js.map +1 -1
  38. package/dist/card/Card.d.ts +3 -2
  39. package/dist/card/Card.js +3 -4
  40. package/dist/card/Card.js.map +1 -1
  41. package/dist/card/CardContent.d.ts +3 -2
  42. package/dist/card/CardContent.js +3 -4
  43. package/dist/card/CardContent.js.map +1 -1
  44. package/dist/card/CardFooter.d.ts +3 -1
  45. package/dist/card/CardFooter.js +3 -4
  46. package/dist/card/CardFooter.js.map +1 -1
  47. package/dist/card/CardHeader.d.ts +3 -2
  48. package/dist/card/CardHeader.js +3 -4
  49. package/dist/card/CardHeader.js.map +1 -1
  50. package/dist/card/CardSubtitle.d.ts +3 -1
  51. package/dist/card/CardSubtitle.js +3 -4
  52. package/dist/card/CardSubtitle.js.map +1 -1
  53. package/dist/card/CardTitle.d.ts +3 -1
  54. package/dist/card/CardTitle.js +3 -4
  55. package/dist/card/CardTitle.js.map +1 -1
  56. package/dist/card/ClickableCard.d.ts +3 -2
  57. package/dist/card/ClickableCard.js +3 -4
  58. package/dist/card/ClickableCard.js.map +1 -1
  59. package/dist/chip/Chip.d.ts +4 -2
  60. package/dist/chip/Chip.js +4 -4
  61. package/dist/chip/Chip.js.map +1 -1
  62. package/dist/datetime/NativeDateField.d.ts +3 -1
  63. package/dist/datetime/NativeDateField.js +3 -4
  64. package/dist/datetime/NativeDateField.js.map +1 -1
  65. package/dist/datetime/NativeTimeField.d.ts +3 -1
  66. package/dist/datetime/NativeTimeField.js +3 -4
  67. package/dist/datetime/NativeTimeField.js.map +1 -1
  68. package/dist/dialog/Dialog.d.ts +3 -2
  69. package/dist/dialog/Dialog.js +4 -4
  70. package/dist/dialog/Dialog.js.map +1 -1
  71. package/dist/dialog/DialogContainer.d.ts +3 -2
  72. package/dist/dialog/DialogContainer.js +3 -4
  73. package/dist/dialog/DialogContainer.js.map +1 -1
  74. package/dist/dialog/DialogContent.d.ts +3 -2
  75. package/dist/dialog/DialogContent.js +3 -4
  76. package/dist/dialog/DialogContent.js.map +1 -1
  77. package/dist/dialog/DialogFooter.d.ts +3 -2
  78. package/dist/dialog/DialogFooter.js +3 -4
  79. package/dist/dialog/DialogFooter.js.map +1 -1
  80. package/dist/dialog/DialogHeader.d.ts +3 -1
  81. package/dist/dialog/DialogHeader.js +3 -4
  82. package/dist/dialog/DialogHeader.js.map +1 -1
  83. package/dist/dialog/DialogTitle.d.ts +3 -1
  84. package/dist/dialog/DialogTitle.js +3 -4
  85. package/dist/dialog/DialogTitle.js.map +1 -1
  86. package/dist/dialog/FixedDialog.d.ts +4 -3
  87. package/dist/dialog/FixedDialog.js +4 -4
  88. package/dist/dialog/FixedDialog.js.map +1 -1
  89. package/dist/divider/Divider.d.ts +3 -2
  90. package/dist/divider/Divider.js +3 -4
  91. package/dist/divider/Divider.js.map +1 -1
  92. package/dist/draggable/useDraggable.d.ts +3 -3
  93. package/dist/draggable/useDraggable.js.map +1 -1
  94. package/dist/draggable/utils.d.ts +1 -1
  95. package/dist/draggable/utils.js.map +1 -1
  96. package/dist/expansion-panel/ExpansionList.d.ts +3 -2
  97. package/dist/expansion-panel/ExpansionList.js +3 -4
  98. package/dist/expansion-panel/ExpansionList.js.map +1 -1
  99. package/dist/expansion-panel/ExpansionPanel.d.ts +3 -2
  100. package/dist/expansion-panel/ExpansionPanel.js +3 -4
  101. package/dist/expansion-panel/ExpansionPanel.js.map +1 -1
  102. package/dist/expansion-panel/ExpansionPanelHeader.d.ts +3 -2
  103. package/dist/expansion-panel/ExpansionPanelHeader.js +3 -4
  104. package/dist/expansion-panel/ExpansionPanelHeader.js.map +1 -1
  105. package/dist/files/FileInput.d.ts +3 -2
  106. package/dist/files/FileInput.js +3 -4
  107. package/dist/files/FileInput.js.map +1 -1
  108. package/dist/focus/useFocusContainer.d.ts +1 -1
  109. package/dist/focus/useFocusContainer.js.map +1 -1
  110. package/dist/form/Checkbox.d.ts +2 -1
  111. package/dist/form/Checkbox.js +4 -4
  112. package/dist/form/Checkbox.js.map +1 -1
  113. package/dist/form/Fieldset.d.ts +3 -2
  114. package/dist/form/Fieldset.js +3 -4
  115. package/dist/form/Fieldset.js.map +1 -1
  116. package/dist/form/Form.d.ts +3 -2
  117. package/dist/form/Form.js +3 -4
  118. package/dist/form/Form.js.map +1 -1
  119. package/dist/form/FormMessage.d.ts +8 -2
  120. package/dist/form/FormMessage.js +3 -4
  121. package/dist/form/FormMessage.js.map +1 -1
  122. package/dist/form/FormMessageContainer.d.ts +5 -4
  123. package/dist/form/FormMessageContainer.js +3 -4
  124. package/dist/form/FormMessageContainer.js.map +1 -1
  125. package/dist/form/FormMessageCounter.d.ts +3 -2
  126. package/dist/form/FormMessageCounter.js +3 -4
  127. package/dist/form/FormMessageCounter.js.map +1 -1
  128. package/dist/form/InputToggle.d.ts +3 -2
  129. package/dist/form/InputToggle.js +3 -4
  130. package/dist/form/InputToggle.js.map +1 -1
  131. package/dist/form/InputToggleIcon.d.ts +3 -2
  132. package/dist/form/InputToggleIcon.js +3 -4
  133. package/dist/form/InputToggleIcon.js.map +1 -1
  134. package/dist/form/Label.d.ts +2 -1
  135. package/dist/form/Label.js +3 -4
  136. package/dist/form/Label.js.map +1 -1
  137. package/dist/form/Legend.d.ts +3 -1
  138. package/dist/form/Legend.js +3 -4
  139. package/dist/form/Legend.js.map +1 -1
  140. package/dist/form/NativeSelect.d.ts +3 -2
  141. package/dist/form/NativeSelect.js +3 -4
  142. package/dist/form/NativeSelect.js.map +1 -1
  143. package/dist/form/OptGroup.d.ts +3 -2
  144. package/dist/form/OptGroup.js +3 -4
  145. package/dist/form/OptGroup.js.map +1 -1
  146. package/dist/form/Option.d.ts +3 -2
  147. package/dist/form/Option.js +4 -4
  148. package/dist/form/Option.js.map +1 -1
  149. package/dist/form/Password.d.ts +2 -2
  150. package/dist/form/Password.js +3 -4
  151. package/dist/form/Password.js.map +1 -1
  152. package/dist/form/Radio.d.ts +2 -1
  153. package/dist/form/Radio.js +4 -4
  154. package/dist/form/Radio.js.map +1 -1
  155. package/dist/form/ResizingTextAreaWrapper.d.ts +3 -2
  156. package/dist/form/ResizingTextAreaWrapper.js +3 -4
  157. package/dist/form/ResizingTextAreaWrapper.js.map +1 -1
  158. package/dist/form/SliderContainer.d.ts +3 -2
  159. package/dist/form/SliderContainer.js +3 -4
  160. package/dist/form/SliderContainer.js.map +1 -1
  161. package/dist/form/SliderThumb.d.ts +3 -2
  162. package/dist/form/SliderThumb.js +4 -4
  163. package/dist/form/SliderThumb.js.map +1 -1
  164. package/dist/form/SliderTrack.d.ts +3 -2
  165. package/dist/form/SliderTrack.js +3 -4
  166. package/dist/form/SliderTrack.js.map +1 -1
  167. package/dist/form/Switch.d.ts +3 -2
  168. package/dist/form/Switch.js +3 -4
  169. package/dist/form/Switch.js.map +1 -1
  170. package/dist/form/SwitchTrack.d.ts +3 -2
  171. package/dist/form/SwitchTrack.js +3 -4
  172. package/dist/form/SwitchTrack.js.map +1 -1
  173. package/dist/form/TextArea.d.ts +3 -2
  174. package/dist/form/TextArea.js +3 -4
  175. package/dist/form/TextArea.js.map +1 -1
  176. package/dist/form/TextField.d.ts +3 -2
  177. package/dist/form/TextField.js +3 -4
  178. package/dist/form/TextField.js.map +1 -1
  179. package/dist/form/TextFieldAddon.d.ts +2 -1
  180. package/dist/form/TextFieldAddon.js +3 -4
  181. package/dist/form/TextFieldAddon.js.map +1 -1
  182. package/dist/form/TextFieldContainer.d.ts +3 -2
  183. package/dist/form/TextFieldContainer.js +3 -4
  184. package/dist/form/TextFieldContainer.js.map +1 -1
  185. package/dist/form/sliderUtils.d.ts +1 -1
  186. package/dist/form/sliderUtils.js.map +1 -1
  187. package/dist/form/types.d.ts +11 -5
  188. package/dist/form/types.js.map +1 -1
  189. package/dist/form/useCombobox.d.ts +6 -6
  190. package/dist/form/useCombobox.js.map +1 -1
  191. package/dist/form/useFormReset.d.ts +1 -1
  192. package/dist/form/useFormReset.js.map +1 -1
  193. package/dist/form/useTextField.d.ts +4 -4
  194. package/dist/form/useTextField.js.map +1 -1
  195. package/dist/hoverMode/useHoverMode.js +1 -1
  196. package/dist/hoverMode/useHoverMode.js.map +1 -1
  197. package/dist/hoverMode/useHoverModeProvider.d.ts +5 -5
  198. package/dist/hoverMode/useHoverModeProvider.js +1 -1
  199. package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
  200. package/dist/icon/FontIcon.d.ts +3 -2
  201. package/dist/icon/FontIcon.js +3 -4
  202. package/dist/icon/FontIcon.js.map +1 -1
  203. package/dist/icon/IconRotator.d.ts +3 -2
  204. package/dist/icon/IconRotator.js +4 -4
  205. package/dist/icon/IconRotator.js.map +1 -1
  206. package/dist/icon/MaterialIcon.d.ts +3 -2
  207. package/dist/icon/MaterialIcon.js +3 -4
  208. package/dist/icon/MaterialIcon.js.map +1 -1
  209. package/dist/icon/MaterialSymbol.d.ts +3 -2
  210. package/dist/icon/MaterialSymbol.js +3 -4
  211. package/dist/icon/MaterialSymbol.js.map +1 -1
  212. package/dist/icon/SVGIcon.d.ts +3 -2
  213. package/dist/icon/SVGIcon.js +3 -4
  214. package/dist/icon/SVGIcon.js.map +1 -1
  215. package/dist/layout/LayoutAppBar.d.ts +3 -1
  216. package/dist/layout/LayoutAppBar.js +3 -4
  217. package/dist/layout/LayoutAppBar.js.map +1 -1
  218. package/dist/layout/LayoutNav.d.ts +3 -2
  219. package/dist/layout/LayoutNav.js +3 -4
  220. package/dist/layout/LayoutNav.js.map +1 -1
  221. package/dist/layout/LayoutWindowSplitter.d.ts +4 -2
  222. package/dist/layout/LayoutWindowSplitter.js +4 -4
  223. package/dist/layout/LayoutWindowSplitter.js.map +1 -1
  224. package/dist/layout/Main.d.ts +4 -3
  225. package/dist/layout/Main.js +3 -4
  226. package/dist/layout/Main.js.map +1 -1
  227. package/dist/link/Link.d.ts +10 -2
  228. package/dist/link/Link.js +4 -4
  229. package/dist/link/Link.js.map +1 -1
  230. package/dist/link/SkipToMainContent.d.ts +3 -2
  231. package/dist/link/SkipToMainContent.js +4 -4
  232. package/dist/link/SkipToMainContent.js.map +1 -1
  233. package/dist/list/List.d.ts +3 -2
  234. package/dist/list/List.js +3 -4
  235. package/dist/list/List.js.map +1 -1
  236. package/dist/list/ListItem.d.ts +3 -2
  237. package/dist/list/ListItem.js +3 -4
  238. package/dist/list/ListItem.js.map +1 -1
  239. package/dist/list/ListItemLink.d.ts +3 -2
  240. package/dist/list/ListItemLink.js +3 -4
  241. package/dist/list/ListItemLink.js.map +1 -1
  242. package/dist/list/ListItemText.d.ts +3 -2
  243. package/dist/list/ListItemText.js +3 -4
  244. package/dist/list/ListItemText.js.map +1 -1
  245. package/dist/list/ListSubheader.d.ts +3 -2
  246. package/dist/list/ListSubheader.js +3 -4
  247. package/dist/list/ListSubheader.js.map +1 -1
  248. package/dist/menu/DropdownMenu.js.map +1 -1
  249. package/dist/menu/Menu.d.ts +4 -2
  250. package/dist/menu/Menu.js +5 -4
  251. package/dist/menu/Menu.js.map +1 -1
  252. package/dist/menu/MenuBar.d.ts +3 -1
  253. package/dist/menu/MenuBar.js +3 -4
  254. package/dist/menu/MenuBar.js.map +1 -1
  255. package/dist/menu/MenuButton.d.ts +2 -1
  256. package/dist/menu/MenuButton.js +3 -4
  257. package/dist/menu/MenuButton.js.map +1 -1
  258. package/dist/menu/MenuItem.d.ts +3 -1
  259. package/dist/menu/MenuItem.js +3 -4
  260. package/dist/menu/MenuItem.js.map +1 -1
  261. package/dist/menu/MenuItemButton.d.ts +2 -1
  262. package/dist/menu/MenuItemButton.js +4 -4
  263. package/dist/menu/MenuItemButton.js.map +1 -1
  264. package/dist/menu/MenuItemCheckbox.d.ts +2 -1
  265. package/dist/menu/MenuItemCheckbox.js +4 -4
  266. package/dist/menu/MenuItemCheckbox.js.map +1 -1
  267. package/dist/menu/MenuItemCircularProgress.d.ts +3 -2
  268. package/dist/menu/MenuItemCircularProgress.js +3 -4
  269. package/dist/menu/MenuItemCircularProgress.js.map +1 -1
  270. package/dist/menu/MenuItemFileInput.d.ts +2 -2
  271. package/dist/menu/MenuItemFileInput.js +3 -4
  272. package/dist/menu/MenuItemFileInput.js.map +1 -1
  273. package/dist/menu/MenuItemGroup.d.ts +3 -3
  274. package/dist/menu/MenuItemGroup.js +4 -4
  275. package/dist/menu/MenuItemGroup.js.map +1 -1
  276. package/dist/menu/MenuItemInputToggle.d.ts +3 -2
  277. package/dist/menu/MenuItemInputToggle.js +3 -4
  278. package/dist/menu/MenuItemInputToggle.js.map +1 -1
  279. package/dist/menu/MenuItemRadio.d.ts +3 -1
  280. package/dist/menu/MenuItemRadio.js +4 -4
  281. package/dist/menu/MenuItemRadio.js.map +1 -1
  282. package/dist/menu/MenuItemSeparator.d.ts +3 -2
  283. package/dist/menu/MenuItemSeparator.js +3 -4
  284. package/dist/menu/MenuItemSeparator.js.map +1 -1
  285. package/dist/menu/MenuItemSwitch.d.ts +2 -1
  286. package/dist/menu/MenuItemSwitch.js +4 -4
  287. package/dist/menu/MenuItemSwitch.js.map +1 -1
  288. package/dist/menu/MenuItemTextField.d.ts +2 -2
  289. package/dist/menu/MenuItemTextField.js +3 -4
  290. package/dist/menu/MenuItemTextField.js.map +1 -1
  291. package/dist/menu/MenuVisibilityProvider.d.ts +3 -3
  292. package/dist/menu/MenuVisibilityProvider.js.map +1 -1
  293. package/dist/menu/MenuWidget.d.ts +4 -4
  294. package/dist/menu/MenuWidget.js +4 -4
  295. package/dist/menu/MenuWidget.js.map +1 -1
  296. package/dist/menu/useContextMenu.d.ts +4 -4
  297. package/dist/menu/useContextMenu.js.map +1 -1
  298. package/dist/movement/types.d.ts +5 -5
  299. package/dist/movement/types.js.map +1 -1
  300. package/dist/navigation/CollapsibleNavGroup.d.ts +2 -2
  301. package/dist/navigation/CollapsibleNavGroup.js +3 -4
  302. package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
  303. package/dist/navigation/NavGroup.d.ts +3 -2
  304. package/dist/navigation/NavGroup.js +3 -4
  305. package/dist/navigation/NavGroup.js.map +1 -1
  306. package/dist/navigation/NavItem.d.ts +3 -2
  307. package/dist/navigation/NavItem.js +3 -4
  308. package/dist/navigation/NavItem.js.map +1 -1
  309. package/dist/navigation/NavItemButton.d.ts +2 -2
  310. package/dist/navigation/NavItemButton.js +3 -4
  311. package/dist/navigation/NavItemButton.js.map +1 -1
  312. package/dist/navigation/NavItemLink.d.ts +3 -2
  313. package/dist/navigation/NavItemLink.js +4 -4
  314. package/dist/navigation/NavItemLink.js.map +1 -1
  315. package/dist/navigation/NavSubheader.d.ts +2 -1
  316. package/dist/navigation/NavSubheader.js +3 -4
  317. package/dist/navigation/NavSubheader.js.map +1 -1
  318. package/dist/navigation/Navigation.d.ts +1 -1
  319. package/dist/navigation/Navigation.js +1 -1
  320. package/dist/navigation/Navigation.js.map +1 -1
  321. package/dist/navigation/types.d.ts +5 -2
  322. package/dist/navigation/types.js.map +1 -1
  323. package/dist/navigation/useActiveHeadingId.js +1 -1
  324. package/dist/navigation/useActiveHeadingId.js.map +1 -1
  325. package/dist/overlay/Overlay.d.ts +3 -2
  326. package/dist/overlay/Overlay.js +3 -4
  327. package/dist/overlay/Overlay.js.map +1 -1
  328. package/dist/positioning/useFixedPositioning.d.ts +1 -1
  329. package/dist/positioning/useFixedPositioning.js.map +1 -1
  330. package/dist/progress/CircularProgress.d.ts +2 -2
  331. package/dist/progress/CircularProgress.js +4 -4
  332. package/dist/progress/CircularProgress.js.map +1 -1
  333. package/dist/progress/LinearProgress.d.ts +2 -2
  334. package/dist/progress/LinearProgress.js +4 -4
  335. package/dist/progress/LinearProgress.js.map +1 -1
  336. package/dist/progress/types.d.ts +2 -0
  337. package/dist/progress/types.js.map +1 -1
  338. package/dist/responsive-item/ResponsiveItem.d.ts +3 -2
  339. package/dist/responsive-item/ResponsiveItem.js +3 -4
  340. package/dist/responsive-item/ResponsiveItem.js.map +1 -1
  341. package/dist/responsive-item/ResponsiveItemOverlay.d.ts +3 -2
  342. package/dist/responsive-item/ResponsiveItemOverlay.js +3 -4
  343. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  344. package/dist/segmented-button/SegmentedButton.d.ts +3 -2
  345. package/dist/segmented-button/SegmentedButton.js +3 -4
  346. package/dist/segmented-button/SegmentedButton.js.map +1 -1
  347. package/dist/segmented-button/SegmentedButtonContainer.d.ts +4 -3
  348. package/dist/segmented-button/SegmentedButtonContainer.js +4 -5
  349. package/dist/segmented-button/SegmentedButtonContainer.js.map +1 -1
  350. package/dist/sheet/Sheet.d.ts +2 -1
  351. package/dist/sheet/Sheet.js +3 -4
  352. package/dist/sheet/Sheet.js.map +1 -1
  353. package/dist/snackbar/Snackbar.d.ts +3 -2
  354. package/dist/snackbar/Snackbar.js +3 -4
  355. package/dist/snackbar/Snackbar.js.map +1 -1
  356. package/dist/snackbar/Toast.d.ts +3 -2
  357. package/dist/snackbar/Toast.js +4 -4
  358. package/dist/snackbar/Toast.js.map +1 -1
  359. package/dist/snackbar/ToastActionButton.d.ts +2 -1
  360. package/dist/snackbar/ToastActionButton.js +3 -4
  361. package/dist/snackbar/ToastActionButton.js.map +1 -1
  362. package/dist/snackbar/ToastCloseButton.d.ts +2 -1
  363. package/dist/snackbar/ToastCloseButton.js +3 -4
  364. package/dist/snackbar/ToastCloseButton.js.map +1 -1
  365. package/dist/snackbar/ToastContent.d.ts +3 -2
  366. package/dist/snackbar/ToastContent.js +4 -4
  367. package/dist/snackbar/ToastContent.js.map +1 -1
  368. package/dist/spinbutton/SpinButton.d.ts +4 -3
  369. package/dist/spinbutton/SpinButton.js +3 -4
  370. package/dist/spinbutton/SpinButton.js.map +1 -1
  371. package/dist/spinbutton/types.d.ts +1 -1
  372. package/dist/spinbutton/types.js.map +1 -1
  373. package/dist/table/StickyTableSection.d.ts +3 -2
  374. package/dist/table/StickyTableSection.js +3 -4
  375. package/dist/table/StickyTableSection.js.map +1 -1
  376. package/dist/table/Table.d.ts +3 -2
  377. package/dist/table/Table.js +4 -4
  378. package/dist/table/Table.js.map +1 -1
  379. package/dist/table/TableBody.d.ts +3 -2
  380. package/dist/table/TableBody.js +4 -4
  381. package/dist/table/TableBody.js.map +1 -1
  382. package/dist/table/TableCell.d.ts +3 -2
  383. package/dist/table/TableCell.js +3 -4
  384. package/dist/table/TableCell.js.map +1 -1
  385. package/dist/table/TableCellContent.d.ts +3 -2
  386. package/dist/table/TableCellContent.js +3 -4
  387. package/dist/table/TableCellContent.js.map +1 -1
  388. package/dist/table/TableCheckbox.d.ts +3 -2
  389. package/dist/table/TableCheckbox.js +3 -4
  390. package/dist/table/TableCheckbox.js.map +1 -1
  391. package/dist/table/TableContainer.d.ts +5 -3
  392. package/dist/table/TableContainer.js +4 -4
  393. package/dist/table/TableContainer.js.map +1 -1
  394. package/dist/table/TableContainerProvider.d.ts +1 -1
  395. package/dist/table/TableContainerProvider.js.map +1 -1
  396. package/dist/table/TableFooter.d.ts +3 -2
  397. package/dist/table/TableFooter.js +4 -5
  398. package/dist/table/TableFooter.js.map +1 -1
  399. package/dist/table/TableHeader.d.ts +3 -2
  400. package/dist/table/TableHeader.js +4 -5
  401. package/dist/table/TableHeader.js.map +1 -1
  402. package/dist/table/TableRadio.d.ts +3 -2
  403. package/dist/table/TableRadio.js +3 -4
  404. package/dist/table/TableRadio.js.map +1 -1
  405. package/dist/table/TableRow.d.ts +3 -2
  406. package/dist/table/TableRow.js +3 -4
  407. package/dist/table/TableRow.js.map +1 -1
  408. package/dist/tabs/SimpleTabPanel.d.ts +3 -2
  409. package/dist/tabs/SimpleTabPanel.js +3 -4
  410. package/dist/tabs/SimpleTabPanel.js.map +1 -1
  411. package/dist/tabs/SimpleTabPanels.d.ts +3 -2
  412. package/dist/tabs/SimpleTabPanels.js +3 -4
  413. package/dist/tabs/SimpleTabPanels.js.map +1 -1
  414. package/dist/tabs/TabList.d.ts +3 -2
  415. package/dist/tabs/TabList.js +4 -4
  416. package/dist/tabs/TabList.js.map +1 -1
  417. package/dist/tabs/TabListScrollButton.d.ts +3 -2
  418. package/dist/tabs/TabListScrollButton.js +4 -4
  419. package/dist/tabs/TabListScrollButton.js.map +1 -1
  420. package/dist/tabs/useTabList.d.ts +2 -2
  421. package/dist/tabs/useTabList.js.map +1 -1
  422. package/dist/theme/useCSSVariables.d.ts +1 -1
  423. package/dist/theme/useCSSVariables.js.map +1 -1
  424. package/dist/tooltip/Tooltip.d.ts +3 -2
  425. package/dist/tooltip/Tooltip.js +3 -4
  426. package/dist/tooltip/Tooltip.js.map +1 -1
  427. package/dist/tooltip/useTooltip.d.ts +3 -3
  428. package/dist/tooltip/useTooltip.js.map +1 -1
  429. package/dist/transition/SkeletonPlaceholder.d.ts +3 -2
  430. package/dist/transition/SkeletonPlaceholder.js +3 -4
  431. package/dist/transition/SkeletonPlaceholder.js.map +1 -1
  432. package/dist/transition/Slide.d.ts +3 -2
  433. package/dist/transition/Slide.js +3 -4
  434. package/dist/transition/Slide.js.map +1 -1
  435. package/dist/transition/SlideContainer.d.ts +3 -2
  436. package/dist/transition/SlideContainer.js +3 -4
  437. package/dist/transition/SlideContainer.js.map +1 -1
  438. package/dist/tree/TreeGroup.d.ts +2 -2
  439. package/dist/tree/TreeGroup.js +3 -4
  440. package/dist/tree/TreeGroup.js.map +1 -1
  441. package/dist/tree/TreeProvider.d.ts +2 -3
  442. package/dist/tree/TreeProvider.js.map +1 -1
  443. package/dist/tree/useTreeMovement.d.ts +6 -7
  444. package/dist/tree/useTreeMovement.js.map +1 -1
  445. package/dist/types.d.ts +1 -15
  446. package/dist/types.js.map +1 -1
  447. package/dist/typography/Mark.d.ts +3 -2
  448. package/dist/typography/Mark.js +3 -4
  449. package/dist/typography/Mark.js.map +1 -1
  450. package/dist/typography/SrOnly.d.ts +3 -2
  451. package/dist/typography/SrOnly.js +3 -4
  452. package/dist/typography/SrOnly.js.map +1 -1
  453. package/dist/typography/TextContainer.d.ts +3 -2
  454. package/dist/typography/TextContainer.js +3 -4
  455. package/dist/typography/TextContainer.js.map +1 -1
  456. package/dist/typography/Typography.d.ts +3 -2
  457. package/dist/typography/Typography.js +3 -4
  458. package/dist/typography/Typography.js.map +1 -1
  459. package/dist/useAsyncFunction.d.ts +3 -2
  460. package/dist/useAsyncFunction.js.map +1 -1
  461. package/dist/useDebouncedFunction.js +1 -1
  462. package/dist/useDebouncedFunction.js.map +1 -1
  463. package/dist/useDropzone.js +1 -1
  464. package/dist/useDropzone.js.map +1 -1
  465. package/dist/useEnsuredRef.d.ts +3 -3
  466. package/dist/useEnsuredRef.js +1 -1
  467. package/dist/useEnsuredRef.js.map +1 -1
  468. package/dist/useThrottledFunction.js +3 -3
  469. package/dist/useThrottledFunction.js.map +1 -1
  470. package/dist/useUnmounted.d.ts +2 -2
  471. package/dist/useUnmounted.js.map +1 -1
  472. package/dist/utils/applyRef.d.ts +1 -1
  473. package/dist/utils/applyRef.js.map +1 -1
  474. package/dist/window-splitter/WindowSplitter.d.ts +3 -2
  475. package/dist/window-splitter/WindowSplitter.js +3 -4
  476. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  477. package/package.json +9 -9
  478. package/src/app-bar/AppBar.tsx +54 -54
  479. package/src/app-bar/AppBarTitle.tsx +29 -27
  480. package/src/autocomplete/AutocompleteChip.tsx +4 -6
  481. package/src/autocomplete/types.ts +2 -0
  482. package/src/autocomplete/utils.ts +4 -4
  483. package/src/avatar/Avatar.tsx +47 -45
  484. package/src/badge/Badge.tsx +17 -11
  485. package/src/box/Box.tsx +51 -50
  486. package/src/button/AsyncButton.tsx +125 -119
  487. package/src/button/Button.tsx +74 -73
  488. package/src/button/ButtonUnstyled.tsx +9 -9
  489. package/src/button/FloatingActionButton.tsx +9 -7
  490. package/src/button/TooltippedButton.tsx +6 -6
  491. package/src/card/Card.tsx +36 -35
  492. package/src/card/CardContent.tsx +31 -28
  493. package/src/card/CardFooter.tsx +22 -16
  494. package/src/card/CardHeader.tsx +36 -30
  495. package/src/card/CardSubtitle.tsx +8 -6
  496. package/src/card/CardTitle.tsx +26 -25
  497. package/src/card/ClickableCard.tsx +57 -54
  498. package/src/chip/Chip.tsx +122 -120
  499. package/src/datetime/NativeDateField.tsx +7 -7
  500. package/src/datetime/NativeTimeField.tsx +7 -7
  501. package/src/dialog/Dialog.tsx +156 -150
  502. package/src/dialog/DialogContainer.tsx +35 -29
  503. package/src/dialog/DialogContent.tsx +26 -19
  504. package/src/dialog/DialogFooter.tsx +22 -19
  505. package/src/dialog/DialogHeader.tsx +24 -23
  506. package/src/dialog/DialogTitle.tsx +27 -26
  507. package/src/dialog/FixedDialog.tsx +70 -69
  508. package/src/divider/Divider.tsx +32 -26
  509. package/src/draggable/useDraggable.ts +3 -6
  510. package/src/draggable/utils.ts +1 -1
  511. package/src/expansion-panel/ExpansionList.tsx +24 -19
  512. package/src/expansion-panel/ExpansionPanel.tsx +11 -6
  513. package/src/expansion-panel/ExpansionPanelHeader.tsx +9 -6
  514. package/src/files/FileInput.tsx +79 -79
  515. package/src/focus/useFocusContainer.ts +1 -1
  516. package/src/form/Checkbox.tsx +6 -6
  517. package/src/form/Fieldset.tsx +33 -28
  518. package/src/form/Form.tsx +26 -25
  519. package/src/form/FormMessage.tsx +13 -7
  520. package/src/form/FormMessageContainer.tsx +12 -9
  521. package/src/form/FormMessageCounter.tsx +8 -7
  522. package/src/form/InputToggle.tsx +105 -107
  523. package/src/form/InputToggleIcon.tsx +12 -6
  524. package/src/form/Label.tsx +40 -41
  525. package/src/form/Legend.tsx +44 -43
  526. package/src/form/NativeSelect.tsx +116 -114
  527. package/src/form/OptGroup.tsx +15 -15
  528. package/src/form/Option.tsx +123 -122
  529. package/src/form/Password.tsx +66 -67
  530. package/src/form/Radio.tsx +6 -6
  531. package/src/form/ResizingTextAreaWrapper.tsx +7 -6
  532. package/src/form/SliderContainer.tsx +35 -29
  533. package/src/form/SliderThumb.tsx +8 -6
  534. package/src/form/SliderTrack.tsx +80 -80
  535. package/src/form/Switch.tsx +80 -79
  536. package/src/form/SwitchTrack.tsx +35 -34
  537. package/src/form/TextArea.tsx +167 -165
  538. package/src/form/TextField.tsx +106 -104
  539. package/src/form/TextFieldAddon.tsx +33 -32
  540. package/src/form/TextFieldContainer.tsx +8 -6
  541. package/src/form/sliderUtils.ts +1 -1
  542. package/src/form/types.ts +15 -5
  543. package/src/form/useCombobox.ts +6 -10
  544. package/src/form/useFormReset.ts +1 -1
  545. package/src/form/useTextField.ts +4 -4
  546. package/src/hoverMode/useHoverMode.ts +1 -1
  547. package/src/hoverMode/useHoverModeProvider.ts +13 -8
  548. package/src/icon/FontIcon.tsx +32 -30
  549. package/src/icon/IconRotator.tsx +30 -28
  550. package/src/icon/MaterialIcon.tsx +36 -30
  551. package/src/icon/MaterialSymbol.tsx +50 -44
  552. package/src/icon/SVGIcon.tsx +47 -41
  553. package/src/layout/LayoutAppBar.tsx +23 -28
  554. package/src/layout/LayoutNav.tsx +68 -62
  555. package/src/layout/LayoutWindowSplitter.tsx +9 -7
  556. package/src/layout/Main.tsx +30 -29
  557. package/src/link/Link.tsx +16 -11
  558. package/src/link/SkipToMainContent.tsx +6 -6
  559. package/src/list/List.tsx +31 -29
  560. package/src/list/ListItem.tsx +126 -125
  561. package/src/list/ListItemLink.tsx +128 -126
  562. package/src/list/ListItemText.tsx +42 -37
  563. package/src/list/ListSubheader.tsx +27 -26
  564. package/src/menu/DropdownMenu.tsx +2 -2
  565. package/src/menu/Menu.tsx +327 -326
  566. package/src/menu/MenuBar.tsx +51 -50
  567. package/src/menu/MenuButton.tsx +69 -70
  568. package/src/menu/MenuItem.tsx +37 -37
  569. package/src/menu/MenuItemButton.tsx +132 -133
  570. package/src/menu/MenuItemCheckbox.tsx +6 -7
  571. package/src/menu/MenuItemCircularProgress.tsx +13 -6
  572. package/src/menu/MenuItemFileInput.tsx +4 -6
  573. package/src/menu/MenuItemGroup.tsx +18 -18
  574. package/src/menu/MenuItemInputToggle.tsx +8 -6
  575. package/src/menu/MenuItemRadio.tsx +6 -6
  576. package/src/menu/MenuItemSeparator.tsx +7 -7
  577. package/src/menu/MenuItemSwitch.tsx +6 -6
  578. package/src/menu/MenuItemTextField.tsx +5 -7
  579. package/src/menu/MenuVisibilityProvider.tsx +3 -2
  580. package/src/menu/MenuWidget.tsx +123 -119
  581. package/src/menu/useContextMenu.ts +7 -4
  582. package/src/movement/types.ts +5 -9
  583. package/src/navigation/CollapsibleNavGroup.tsx +10 -6
  584. package/src/navigation/NavGroup.tsx +18 -19
  585. package/src/navigation/NavItem.tsx +16 -11
  586. package/src/navigation/NavItemButton.tsx +69 -66
  587. package/src/navigation/NavItemLink.tsx +102 -100
  588. package/src/navigation/NavSubheader.tsx +14 -16
  589. package/src/navigation/Navigation.tsx +1 -1
  590. package/src/navigation/types.ts +13 -4
  591. package/src/navigation/useActiveHeadingId.ts +1 -1
  592. package/src/overlay/Overlay.tsx +66 -65
  593. package/src/positioning/useFixedPositioning.ts +1 -1
  594. package/src/progress/CircularProgress.tsx +6 -6
  595. package/src/progress/LinearProgress.tsx +6 -6
  596. package/src/progress/types.ts +4 -0
  597. package/src/responsive-item/ResponsiveItem.tsx +29 -28
  598. package/src/responsive-item/ResponsiveItemOverlay.tsx +9 -8
  599. package/src/segmented-button/SegmentedButton.tsx +11 -6
  600. package/src/segmented-button/SegmentedButtonContainer.tsx +14 -8
  601. package/src/sheet/Sheet.tsx +42 -43
  602. package/src/snackbar/Snackbar.tsx +44 -38
  603. package/src/snackbar/Toast.tsx +110 -109
  604. package/src/snackbar/ToastActionButton.tsx +6 -6
  605. package/src/snackbar/ToastCloseButton.tsx +4 -6
  606. package/src/snackbar/ToastContent.tsx +56 -49
  607. package/src/spinbutton/SpinButton.tsx +9 -8
  608. package/src/spinbutton/types.ts +1 -1
  609. package/src/table/StickyTableSection.tsx +8 -6
  610. package/src/table/Table.tsx +47 -41
  611. package/src/table/TableBody.tsx +46 -42
  612. package/src/table/TableCell.tsx +83 -81
  613. package/src/table/TableCellContent.tsx +11 -6
  614. package/src/table/TableCheckbox.tsx +6 -6
  615. package/src/table/TableContainer.tsx +31 -26
  616. package/src/table/TableContainerProvider.ts +1 -1
  617. package/src/table/TableFooter.tsx +7 -12
  618. package/src/table/TableHeader.tsx +15 -9
  619. package/src/table/TableRadio.tsx +59 -58
  620. package/src/table/TableRow.tsx +34 -33
  621. package/src/tabs/SimpleTabPanel.tsx +18 -13
  622. package/src/tabs/SimpleTabPanels.tsx +11 -7
  623. package/src/tabs/TabList.tsx +106 -105
  624. package/src/tabs/TabListScrollButton.tsx +9 -6
  625. package/src/tabs/useTabList.ts +2 -2
  626. package/src/theme/useCSSVariables.ts +1 -1
  627. package/src/tooltip/Tooltip.tsx +61 -61
  628. package/src/tooltip/useTooltip.ts +2 -3
  629. package/src/transition/SkeletonPlaceholder.tsx +8 -6
  630. package/src/transition/Slide.tsx +54 -48
  631. package/src/transition/SlideContainer.tsx +16 -16
  632. package/src/tree/TreeGroup.tsx +54 -55
  633. package/src/tree/TreeProvider.tsx +2 -2
  634. package/src/tree/useTreeMovement.ts +6 -6
  635. package/src/types.ts +1 -16
  636. package/src/typography/Mark.tsx +16 -11
  637. package/src/typography/SrOnly.tsx +41 -35
  638. package/src/typography/TextContainer.tsx +12 -12
  639. package/src/typography/Typography.tsx +42 -41
  640. package/src/useAsyncFunction.ts +3 -3
  641. package/src/useDebouncedFunction.ts +1 -1
  642. package/src/useDropzone.ts +1 -1
  643. package/src/useEnsuredRef.ts +3 -3
  644. package/src/useThrottledFunction.ts +3 -3
  645. package/src/useUnmounted.ts +2 -4
  646. package/src/utils/applyRef.ts +2 -2
  647. package/src/window-splitter/WindowSplitter.tsx +6 -6
package/src/menu/Menu.tsx CHANGED
@@ -4,7 +4,8 @@ import { cnb } from "cnbuilder";
4
4
  import {
5
5
  type CSSProperties,
6
6
  type HTMLAttributes,
7
- forwardRef,
7
+ type ReactElement,
8
+ type Ref,
8
9
  useEffect,
9
10
  useRef,
10
11
  } from "react";
@@ -224,6 +225,7 @@ export interface MenuProps
224
225
  MenuTransitionProps,
225
226
  MenuListConvenienceProps,
226
227
  MenuSheetConvenienceProps {
228
+ ref?: Ref<HTMLDivElement>;
227
229
  visible: boolean;
228
230
  onRequestClose: () => void;
229
231
 
@@ -276,340 +278,339 @@ export interface MenuProps
276
278
  * component. In addition, the `renderAsSheet` behavior has been moved into this
277
279
  * implementation so that the `MenuRenderer` is no longer required and context
278
280
  * menus can appear as a `Sheet`.
281
+ * @since 7.0.0 No longer uses `forwardRef`
279
282
  */
280
- export const Menu = forwardRef<HTMLDivElement, LabelRequiredForA11y<MenuProps>>(
281
- function Menu(props, propRef) {
282
- const {
283
- id: propId,
284
- style: propStyle,
285
- role = "menu",
286
- children,
287
- horizontal: _horizontal,
288
- sheetHeader: _sheetHeader,
289
- sheetFooter: _sheetFooter,
290
- renderAsSheet: _renderAsSheet,
291
- sheetPosition: _sheetPosition,
292
- sheetVerticalSize: _sheetVerticalSize,
293
- sheetProps,
294
- sheetStyle,
295
- sheetClassName,
296
- menuStyle,
297
- menuClassName,
298
- disableElevation = false,
299
- temporary = true,
300
- tabIndex = -1,
301
- fixedTo,
302
- className,
303
- classNames,
304
- timeout,
305
- appear,
306
- enter,
307
- exit,
308
- onEnter,
309
- onEntering = noop,
310
- onEntered = noop,
311
- onExit,
312
- onExiting,
313
- onExited = noop,
314
- onKeyDown = noop,
315
- listProps,
316
- listStyle,
317
- listClassName,
318
- visible,
319
- onRequestClose,
320
- floating,
321
- anchor,
322
- closeOnResize = false,
323
- closeOnScroll = false,
324
- preventScroll = false,
325
- vwMargin,
326
- vhMargin,
327
- xMargin,
328
- yMargin,
329
- width,
330
- transformOrigin = true,
331
- preventOverlap,
332
- disableSwapping,
333
- disableVHBounds,
334
- initialX,
335
- initialY,
336
- disableFixedPositioning,
337
- getFixedPositionOptions,
338
- disablePortal: propDisablePortal,
339
- disableTransition,
340
- ...remaining
341
- } = props;
342
- const { "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy } =
343
- props;
344
-
345
- const id = useEnsuredId(propId, "menu");
346
- const {
347
- root,
348
- menubar,
349
- menuitem,
350
- activeId,
351
- animatedOnceRef,
352
- hoverTimeoutRef,
353
- disableHoverMode,
354
- } = useMenuBarContext();
355
- const {
356
- horizontal,
357
- sheetHeader,
358
- sheetFooter,
359
- renderAsSheet,
360
- sheetPosition,
361
- sheetVerticalSize,
362
- } = useMenuConfiguration(props);
363
- const { isPhone } = useAppSize();
364
- const isSheet =
365
- renderAsSheet === true || (renderAsSheet === "phone" && isPhone);
366
-
367
- const entered = useRef(false);
368
- const cancelUnmountFocus = useRef(false);
369
- const hideWithoutRefocus = (): void => {
370
- cancelUnmountFocus.current = true;
371
- onRequestClose();
372
- };
373
- const mode = useUserInteractionMode();
374
- const mouse = mode === "mouse";
375
-
376
- const { eventHandlers, transitionOptions } = useFocusContainer({
377
- nodeRef: propRef,
378
- activate: visible,
379
- onKeyDown(event) {
380
- onKeyDown(event);
381
-
382
- // when a menu is within a sheet, it should not trigger the custom
383
- // keyboard behavior
384
- if (isSheet) {
385
- return;
386
- }
387
-
388
- switch (event.key) {
389
- case "Escape":
390
- // prevent parent components that have an "Escape" keypress event
391
- // from being triggered as well
283
+ export function Menu(props: LabelRequiredForA11y<MenuProps>): ReactElement {
284
+ const {
285
+ id: propId,
286
+ ref: propRef,
287
+ style: propStyle,
288
+ role = "menu",
289
+ children,
290
+ horizontal: _horizontal,
291
+ sheetHeader: _sheetHeader,
292
+ sheetFooter: _sheetFooter,
293
+ renderAsSheet: _renderAsSheet,
294
+ sheetPosition: _sheetPosition,
295
+ sheetVerticalSize: _sheetVerticalSize,
296
+ sheetProps,
297
+ sheetStyle,
298
+ sheetClassName,
299
+ menuStyle,
300
+ menuClassName,
301
+ disableElevation = false,
302
+ temporary = true,
303
+ tabIndex = -1,
304
+ fixedTo,
305
+ className,
306
+ classNames,
307
+ timeout,
308
+ appear,
309
+ enter,
310
+ exit,
311
+ onEnter,
312
+ onEntering = noop,
313
+ onEntered = noop,
314
+ onExit,
315
+ onExiting,
316
+ onExited = noop,
317
+ onKeyDown = noop,
318
+ listProps,
319
+ listStyle,
320
+ listClassName,
321
+ visible,
322
+ onRequestClose,
323
+ floating,
324
+ anchor,
325
+ closeOnResize = false,
326
+ closeOnScroll = false,
327
+ preventScroll = false,
328
+ vwMargin,
329
+ vhMargin,
330
+ xMargin,
331
+ yMargin,
332
+ width,
333
+ transformOrigin = true,
334
+ preventOverlap,
335
+ disableSwapping,
336
+ disableVHBounds,
337
+ initialX,
338
+ initialY,
339
+ disableFixedPositioning,
340
+ getFixedPositionOptions,
341
+ disablePortal: propDisablePortal,
342
+ disableTransition,
343
+ ...remaining
344
+ } = props;
345
+ const { "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy } = props;
346
+
347
+ const id = useEnsuredId(propId, "menu");
348
+ const {
349
+ root,
350
+ menubar,
351
+ menuitem,
352
+ activeId,
353
+ animatedOnceRef,
354
+ hoverTimeoutRef,
355
+ disableHoverMode,
356
+ } = useMenuBarContext();
357
+ const {
358
+ horizontal,
359
+ sheetHeader,
360
+ sheetFooter,
361
+ renderAsSheet,
362
+ sheetPosition,
363
+ sheetVerticalSize,
364
+ } = useMenuConfiguration(props);
365
+ const { isPhone } = useAppSize();
366
+ const isSheet =
367
+ renderAsSheet === true || (renderAsSheet === "phone" && isPhone);
368
+
369
+ const entered = useRef(false);
370
+ const cancelUnmountFocus = useRef(false);
371
+ const hideWithoutRefocus = (): void => {
372
+ cancelUnmountFocus.current = true;
373
+ onRequestClose();
374
+ };
375
+ const mode = useUserInteractionMode();
376
+ const mouse = mode === "mouse";
377
+
378
+ const { eventHandlers, transitionOptions } = useFocusContainer({
379
+ nodeRef: propRef,
380
+ activate: visible,
381
+ onKeyDown(event) {
382
+ onKeyDown(event);
383
+
384
+ // when a menu is within a sheet, it should not trigger the custom
385
+ // keyboard behavior
386
+ if (isSheet) {
387
+ return;
388
+ }
389
+
390
+ switch (event.key) {
391
+ case "Escape":
392
+ // prevent parent components that have an "Escape" keypress event
393
+ // from being triggered as well
394
+ event.stopPropagation();
395
+ disableHoverMode();
396
+ onRequestClose();
397
+ break;
398
+ case "Tab":
399
+ // since menus are portalled, tab index is kinda broke so just close
400
+ // the menu instead of doing default tab behavior
401
+ event.preventDefault();
402
+
403
+ if (!menuitem) {
404
+ // pressing the tab key should still cascade close all menus
405
+ event.stopPropagation();
406
+ }
407
+ disableHoverMode();
408
+ onRequestClose();
409
+ break;
410
+ case "ArrowUp":
411
+ if (!root && menuitem && horizontal) {
392
412
  event.stopPropagation();
393
- disableHoverMode();
413
+ event.preventDefault();
394
414
  onRequestClose();
395
- break;
396
- case "Tab":
397
- // since menus are portalled, tab index is kinda broke so just close
398
- // the menu instead of doing default tab behavior
415
+ }
416
+ break;
417
+ case "ArrowLeft":
418
+ if (!root && menuitem && !horizontal) {
419
+ event.stopPropagation();
399
420
  event.preventDefault();
400
-
401
- if (!menuitem) {
402
- // pressing the tab key should still cascade close all menus
403
- event.stopPropagation();
404
- }
405
- disableHoverMode();
406
421
  onRequestClose();
407
- break;
408
- case "ArrowUp":
409
- if (!root && menuitem && horizontal) {
410
- event.stopPropagation();
411
- event.preventDefault();
412
- onRequestClose();
413
- }
414
- break;
415
- case "ArrowLeft":
416
- if (!root && menuitem && !horizontal) {
417
- event.stopPropagation();
418
- event.preventDefault();
419
- onRequestClose();
420
- }
421
- break;
422
- }
423
- },
424
- onEnter,
425
- onEntering(appearing) {
426
- onEntering(appearing);
427
- entered.current = true;
428
- },
429
- onEntered(appearing) {
430
- onEntered(appearing);
431
- entered.current = true;
432
- cancelUnmountFocus.current = false;
433
- animatedOnceRef.current = true;
434
- },
435
- onExit,
436
- onExiting,
437
- onExited() {
438
- onExited();
439
- entered.current = false;
440
- },
441
- disableTransition,
442
- isFocusTypeDisabled(type) {
443
- if (role === "listbox") {
444
- return !isSheet;
445
- }
446
-
447
- if (type === "keyboard") {
448
- return isSheet;
449
- }
450
-
451
- const isHoverDisabled = mouse && hoverTimeoutRef.current === 0;
452
- if (type === "mount") {
453
- return isHoverDisabled;
454
- }
455
-
456
- return (
457
- isHoverDisabled ||
458
- cancelUnmountFocus.current ||
459
- (root && !!activeId && id !== activeId)
460
- );
461
- },
462
- });
422
+ }
423
+ break;
424
+ }
425
+ },
426
+ onEnter,
427
+ onEntering(appearing) {
428
+ onEntering(appearing);
429
+ entered.current = true;
430
+ },
431
+ onEntered(appearing) {
432
+ onEntered(appearing);
433
+ entered.current = true;
434
+ cancelUnmountFocus.current = false;
435
+ animatedOnceRef.current = true;
436
+ },
437
+ onExit,
438
+ onExiting,
439
+ onExited() {
440
+ onExited();
441
+ entered.current = false;
442
+ },
443
+ disableTransition,
444
+ isFocusTypeDisabled(type) {
445
+ if (role === "listbox") {
446
+ return !isSheet;
447
+ }
463
448
 
464
- const { ref, style, callbacks, updateStyle } = useFixedPositioning({
465
- ...transitionOptions,
466
- disabled: disableFixedPositioning,
467
- style: isSheet ? propStyle : menuStyle,
468
- fixedTo,
469
- anchor: getDefaultAnchor({
470
- anchor,
471
- menubar,
472
- floating,
473
- menuitem: !root && menuitem,
474
- horizontal,
475
- }),
476
- vwMargin,
477
- vhMargin,
478
- xMargin,
479
- yMargin,
480
- width,
481
- transformOrigin,
482
- preventOverlap,
483
- disableSwapping,
484
- disableVHBounds,
485
- initialX,
486
- initialY,
487
- getFixedPositionOptions,
488
- onResize: closeOnResize ? hideWithoutRefocus : undefined,
489
- onScroll(_event, data) {
490
- if (!data.visible || closeOnScroll) {
491
- hideWithoutRefocus();
492
- }
493
- },
494
- });
495
- const { rendered, disablePortal, elementProps } = useScaleTransition({
496
- className: cnb(!isSheet && menuClassName, className),
497
- transitionIn: visible,
498
- vertical: !horizontal,
499
- temporary,
500
- timeout: isSheet || disableTransition ? 0 : timeout,
501
- classNames,
502
- appear,
503
- enter,
504
- exit,
505
- exitedHidden: true,
506
- // merge the transition callbacks
507
- ...transitionOptions,
508
- ...callbacks,
509
- // but prefer the latest defined ref
510
- nodeRef: ref,
511
- });
512
- useScrollLock(visible && preventScroll);
513
-
514
- // need to make sure that the useEffect does not refire for hiding on click
515
- // events because of the `window.requestAnimationFrame`. It'll make it so
516
- // that menu items that update state are unable to close when clicked
517
- const hide = useRef(onRequestClose);
518
- useEffect(() => {
519
- hide.current = onRequestClose;
520
- });
521
- useEffect(() => {
522
- if (!visible) {
523
- return;
449
+ if (type === "keyboard") {
450
+ return isSheet;
451
+ }
452
+
453
+ const isHoverDisabled = mouse && hoverTimeoutRef.current === 0;
454
+ if (type === "mount") {
455
+ return isHoverDisabled;
524
456
  }
525
457
 
526
- const callback = (event: globalThis.MouseEvent): void => {
527
- // this is required for when the transition is disabled
528
- if (!entered.current) {
529
- return;
530
- }
531
-
532
- // if the user clicks outside of the menu to close it, the toggle button
533
- // should not be focused. instead the nearest focusable element from the
534
- // click event should be focused when Tab or Shift + tab is pressed
535
- cancelUnmountFocus.current =
536
- !(event.target instanceof HTMLElement) ||
537
- !event.target.closest(`[role="${role}"]`);
538
-
539
- // this won't be called if `event.stopPropagation()` is called
540
- hide.current();
541
- disableHoverMode();
542
- };
543
-
544
- // wait an animation frame so the initial click event that caused the menu
545
- // to become visible does not immediately close the menu
546
- const frame = globalThis.requestAnimationFrame(() => {
547
- globalThis.addEventListener("click", callback);
548
- });
549
-
550
- return () => {
551
- globalThis.cancelAnimationFrame(frame);
552
- globalThis.removeEventListener("click", callback);
553
- };
554
- }, [disableHoverMode, role, visible]);
555
- useIsomorphicLayoutEffect(() => {
556
- if (!visible) {
458
+ return (
459
+ isHoverDisabled ||
460
+ cancelUnmountFocus.current ||
461
+ (root && !!activeId && id !== activeId)
462
+ );
463
+ },
464
+ });
465
+
466
+ const { ref, style, callbacks, updateStyle } = useFixedPositioning({
467
+ ...transitionOptions,
468
+ disabled: disableFixedPositioning,
469
+ style: isSheet ? propStyle : menuStyle,
470
+ fixedTo,
471
+ anchor: getDefaultAnchor({
472
+ anchor,
473
+ menubar,
474
+ floating,
475
+ menuitem: !root && menuitem,
476
+ horizontal,
477
+ }),
478
+ vwMargin,
479
+ vhMargin,
480
+ xMargin,
481
+ yMargin,
482
+ width,
483
+ transformOrigin,
484
+ preventOverlap,
485
+ disableSwapping,
486
+ disableVHBounds,
487
+ initialX,
488
+ initialY,
489
+ getFixedPositionOptions,
490
+ onResize: closeOnResize ? hideWithoutRefocus : undefined,
491
+ onScroll(_event, data) {
492
+ if (!data.visible || closeOnScroll) {
493
+ hideWithoutRefocus();
494
+ }
495
+ },
496
+ });
497
+ const { rendered, disablePortal, elementProps } = useScaleTransition({
498
+ className: cnb(!isSheet && menuClassName, className),
499
+ transitionIn: visible,
500
+ vertical: !horizontal,
501
+ temporary,
502
+ timeout: isSheet || disableTransition ? 0 : timeout,
503
+ classNames,
504
+ appear,
505
+ enter,
506
+ exit,
507
+ exitedHidden: true,
508
+ // merge the transition callbacks
509
+ ...transitionOptions,
510
+ ...callbacks,
511
+ // but prefer the latest defined ref
512
+ nodeRef: ref,
513
+ });
514
+ useScrollLock(visible && preventScroll);
515
+
516
+ // need to make sure that the useEffect does not refire for hiding on click
517
+ // events because of the `window.requestAnimationFrame`. It'll make it so
518
+ // that menu items that update state are unable to close when clicked
519
+ const hide = useRef(onRequestClose);
520
+ useEffect(() => {
521
+ hide.current = onRequestClose;
522
+ });
523
+ useEffect(() => {
524
+ if (!visible) {
525
+ return;
526
+ }
527
+
528
+ const callback = (event: globalThis.MouseEvent): void => {
529
+ // this is required for when the transition is disabled
530
+ if (!entered.current) {
557
531
  return;
558
532
  }
559
533
 
560
- updateStyle();
561
- }, [updateStyle, children, visible]);
562
-
563
- return (
564
- <MenuConfigurationProvider
565
- horizontal={horizontal}
566
- renderAsSheet={renderAsSheet}
567
- sheetFooter={sheetFooter}
568
- sheetHeader={sheetHeader}
569
- sheetPosition={sheetPosition}
570
- sheetVerticalSize={sheetVerticalSize}
534
+ // if the user clicks outside of the menu to close it, the toggle button
535
+ // should not be focused. instead the nearest focusable element from the
536
+ // click event should be focused when Tab or Shift + tab is pressed
537
+ cancelUnmountFocus.current =
538
+ !(event.target instanceof HTMLElement) ||
539
+ !event.target.closest(`[role="${role}"]`);
540
+
541
+ // this won't be called if `event.stopPropagation()` is called
542
+ hide.current();
543
+ disableHoverMode();
544
+ };
545
+
546
+ // wait an animation frame so the initial click event that caused the menu
547
+ // to become visible does not immediately close the menu
548
+ const frame = globalThis.requestAnimationFrame(() => {
549
+ globalThis.addEventListener("click", callback);
550
+ });
551
+
552
+ return () => {
553
+ globalThis.cancelAnimationFrame(frame);
554
+ globalThis.removeEventListener("click", callback);
555
+ };
556
+ }, [disableHoverMode, role, visible]);
557
+ useIsomorphicLayoutEffect(() => {
558
+ if (!visible) {
559
+ return;
560
+ }
561
+
562
+ updateStyle();
563
+ }, [updateStyle, children, visible]);
564
+
565
+ return (
566
+ <MenuConfigurationProvider
567
+ horizontal={horizontal}
568
+ renderAsSheet={renderAsSheet}
569
+ sheetFooter={sheetFooter}
570
+ sheetHeader={sheetHeader}
571
+ sheetPosition={sheetPosition}
572
+ sheetVerticalSize={sheetVerticalSize}
573
+ >
574
+ <MenuSheet
575
+ aria-label={ariaLabel}
576
+ aria-labelledby={ariaLabelledBy as string}
577
+ header={sheetHeader}
578
+ footer={sheetFooter}
579
+ position={sheetPosition}
580
+ verticalSize={sheetVerticalSize}
581
+ visible={visible}
582
+ enabled={isSheet}
583
+ onRequestClose={onRequestClose}
584
+ style={sheetStyle}
585
+ className={sheetClassName}
586
+ disablePortal={propDisablePortal}
587
+ temporary={temporary}
588
+ disableTransition={disableTransition}
589
+ {...sheetProps}
571
590
  >
572
- <MenuSheet
573
- aria-label={ariaLabel}
574
- aria-labelledby={ariaLabelledBy as string}
575
- header={sheetHeader}
576
- footer={sheetFooter}
577
- position={sheetPosition}
578
- verticalSize={sheetVerticalSize}
579
- visible={visible}
580
- enabled={isSheet}
581
- onRequestClose={onRequestClose}
582
- style={sheetStyle}
583
- className={sheetClassName}
584
- disablePortal={propDisablePortal}
585
- temporary={temporary}
586
- disableTransition={disableTransition}
587
- {...sheetProps}
588
- >
589
- <Portal disabled={isSheet || (propDisablePortal ?? disablePortal)}>
590
- {(rendered || isSheet) && (
591
- <MenuWidget
592
- {...remaining}
593
- {...elementProps}
594
- {...eventHandlers}
595
- id={id}
596
- role={role}
597
- style={isSheet ? propStyle : style}
598
- isSheet={isSheet}
599
- tabIndex={tabIndex}
600
- horizontal={horizontal}
601
- listProps={listProps}
602
- listStyle={listStyle}
603
- listClassName={listClassName}
604
- disableElevation={disableElevation}
605
- cancelUnmountFocus={cancelUnmountFocus}
606
- >
607
- {children}
608
- </MenuWidget>
609
- )}
610
- </Portal>
611
- </MenuSheet>
612
- </MenuConfigurationProvider>
613
- );
614
- }
615
- );
591
+ <Portal disabled={isSheet || (propDisablePortal ?? disablePortal)}>
592
+ {(rendered || isSheet) && (
593
+ <MenuWidget
594
+ {...remaining}
595
+ {...elementProps}
596
+ {...eventHandlers}
597
+ id={id}
598
+ role={role}
599
+ style={isSheet ? propStyle : style}
600
+ isSheet={isSheet}
601
+ tabIndex={tabIndex}
602
+ horizontal={horizontal}
603
+ listProps={listProps}
604
+ listStyle={listStyle}
605
+ listClassName={listClassName}
606
+ disableElevation={disableElevation}
607
+ cancelUnmountFocus={cancelUnmountFocus}
608
+ >
609
+ {children}
610
+ </MenuWidget>
611
+ )}
612
+ </Portal>
613
+ </MenuSheet>
614
+ </MenuConfigurationProvider>
615
+ );
616
+ }