@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
@@ -1,5 +1,10 @@
1
1
  import { cnb } from "cnbuilder";
2
- import { type HTMLAttributes, type ReactNode, forwardRef } from "react";
2
+ import {
3
+ type HTMLAttributes,
4
+ type ReactElement,
5
+ type ReactNode,
6
+ type Ref,
7
+ } from "react";
3
8
 
4
9
  import { ListItemChildren } from "../list/ListItemChildren.js";
5
10
  import { listItem } from "../list/listItemStyles.js";
@@ -16,6 +21,8 @@ import {
16
21
  * @since 6.0.0
17
22
  */
18
23
  export interface MenuItemCircularProgressProps extends CircularProgressProps {
24
+ ref?: Ref<HTMLLIElement>;
25
+
19
26
  /** @defaultValue `"Loading"` */
20
27
  "aria-label"?: string;
21
28
 
@@ -69,11 +76,11 @@ export interface MenuItemCircularProgressProps extends CircularProgressProps {
69
76
  *
70
77
  * @since 6.0.0
71
78
  */
72
- export const MenuItemCircularProgress = forwardRef<
73
- HTMLLIElement,
74
- MenuItemCircularProgressProps
75
- >(function MenuItemCircularProgress(props, ref) {
79
+ export function MenuItemCircularProgress(
80
+ props: MenuItemCircularProgressProps
81
+ ): ReactElement {
76
82
  const {
83
+ ref,
77
84
  "aria-label": propAriaLabel,
78
85
  "aria-labelledby": ariaLabelledBy,
79
86
  role = "none",
@@ -111,4 +118,4 @@ export const MenuItemCircularProgress = forwardRef<
111
118
  </ListItemChildren>
112
119
  </li>
113
120
  );
114
- });
121
+ }
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  type ChangeEventHandler,
5
5
  type InputHTMLAttributes,
6
- forwardRef,
6
+ type ReactElement,
7
7
  } from "react";
8
8
 
9
9
  import { getIcon } from "../icon/config.js";
@@ -63,11 +63,9 @@ export interface MenuItemFileInputProps
63
63
  * menu item. This allows the menu to be closed immediately when this menu item
64
64
  * is clicked.
65
65
  */
66
- export const MenuItemFileInput = forwardRef<
67
- HTMLLIElement,
68
- MenuItemFileInputProps
69
- >(function MenuItemFileInput(props, ref) {
66
+ export function MenuItemFileInput(props: MenuItemFileInputProps): ReactElement {
70
67
  const {
68
+ ref,
71
69
  id: propId,
72
70
  onClick = noop,
73
71
  onChange,
@@ -122,4 +120,4 @@ export const MenuItemFileInput = forwardRef<
122
120
  {children}
123
121
  </MenuItem>
124
122
  );
125
- });
123
+ }
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
 
3
3
  import { cnb } from "cnbuilder";
4
- import { type ReactNode, forwardRef } from "react";
4
+ import { type ReactElement, type ReactNode } from "react";
5
5
 
6
- import { List, type ListElement, type ListProps } from "../list/List.js";
6
+ import { List, type ListProps } from "../list/List.js";
7
7
  import { type LabelRequiredForA11y } from "../types.js";
8
8
  import { useMenuConfiguration } from "./MenuConfigurationProvider.js";
9
9
 
@@ -79,19 +79,19 @@ export type MenuItemGroupProps = LabelRequiredForA11y<
79
79
  * @see {@link https://react-md.dev/components/menu | Menu Demos}
80
80
  * @since 5.0.0
81
81
  */
82
- export const MenuItemGroup = forwardRef<ListElement, MenuItemGroupProps>(
83
- function MenuItemGroup({ children, className, ...props }, ref) {
84
- const { horizontal } = useMenuConfiguration(props);
85
- return (
86
- <List
87
- {...props}
88
- ref={ref}
89
- role="group"
90
- className={cnb("rmd-menu-item-group", className)}
91
- horizontal={horizontal}
92
- >
93
- {children}
94
- </List>
95
- );
96
- }
97
- );
82
+ export function MenuItemGroup(props: MenuItemGroupProps): ReactElement {
83
+ const { ref, children, className, ...remaining } = props;
84
+ const { horizontal } = useMenuConfiguration(props);
85
+
86
+ return (
87
+ <List
88
+ {...remaining}
89
+ ref={ref}
90
+ role="group"
91
+ className={cnb("rmd-menu-item-group", className)}
92
+ horizontal={horizontal}
93
+ >
94
+ {children}
95
+ </List>
96
+ );
97
+ }
@@ -5,8 +5,9 @@ import {
5
5
  type CSSProperties,
6
6
  type HTMLAttributes,
7
7
  type MouseEvent,
8
+ type ReactElement,
8
9
  type ReactNode,
9
- forwardRef,
10
+ type Ref,
10
11
  } from "react";
11
12
 
12
13
  import {
@@ -50,6 +51,7 @@ export interface BaseMenuItemInputToggleProps
50
51
  HTMLAttributes<HTMLLIElement>,
51
52
  ConfigurableInputToggleIconProps,
52
53
  ListItemChildrenTextProps {
54
+ ref?: Ref<HTMLLIElement>;
53
55
  checked: boolean;
54
56
  onCheckedChange: MenuItemInputToggleCheckedCallback;
55
57
 
@@ -139,11 +141,11 @@ export type MenuItemInputToggleProps =
139
141
  * @see {@link MenuItemSwitch} for switch examples
140
142
  * @since 2.8.0
141
143
  */
142
- export const MenuItemInputToggle = forwardRef<
143
- HTMLLIElement,
144
- MenuItemInputToggleProps
145
- >(function MenuItemInputToggle(props, ref) {
144
+ export function MenuItemInputToggle(
145
+ props: MenuItemInputToggleProps
146
+ ): ReactElement {
146
147
  const {
148
+ ref,
147
149
  id: propId,
148
150
  type,
149
151
  disabled = false,
@@ -278,4 +280,4 @@ export const MenuItemInputToggle = forwardRef<
278
280
  {children}
279
281
  </ListItem>
280
282
  );
281
- });
283
+ }
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { forwardRef } from "react";
3
+ import { type ReactElement } from "react";
4
4
 
5
5
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
6
6
  import { type ICON_CONFIG } from "../icon/config.js";
@@ -110,8 +110,8 @@ import {
110
110
  * @see {@link https://react-md.dev/components/menu#menuitemradio-example | DropdownMenu Demos}
111
111
  * @since 2.8.0
112
112
  */
113
- export const MenuItemRadio = forwardRef<HTMLLIElement, MenuItemRadioProps>(
114
- function MenuItemRadio(props, ref) {
115
- return <MenuItemInputToggle {...props} ref={ref} type="radio" />;
116
- }
117
- );
113
+ export function MenuItemRadio(props: MenuItemRadioProps): ReactElement {
114
+ const { ref, ...remaining } = props;
115
+
116
+ return <MenuItemInputToggle {...remaining} ref={ref} type="radio" />;
117
+ }
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { type HTMLAttributes, forwardRef } from "react";
3
+ import { type HTMLAttributes, type ReactElement, type Ref } from "react";
4
4
 
5
5
  import { type DividerProps } from "../divider/Divider.js";
6
6
  import { divider } from "../divider/styles.js";
@@ -10,7 +10,9 @@ import { useMenuConfiguration } from "./MenuConfigurationProvider.js";
10
10
  export interface MenuItemSeparatorProps
11
11
  extends
12
12
  HTMLAttributes<HTMLLIElement>,
13
- Pick<DividerProps, "inset" | "vertical"> {}
13
+ Pick<DividerProps, "inset" | "vertical"> {
14
+ ref?: Ref<HTMLLIElement>;
15
+ }
14
16
 
15
17
  /**
16
18
  * **Client Component**
@@ -22,11 +24,9 @@ export interface MenuItemSeparatorProps
22
24
  * @see {@link https://react-md.dev/components/menu | Menu Demos}
23
25
  * @since 5.0.0 Renders as an `<li>` instead of a `<div>` or `<hr />`.
24
26
  */
25
- export const MenuItemSeparator = forwardRef<
26
- HTMLLIElement,
27
- MenuItemSeparatorProps
28
- >(function MenuItemSeparator(props, ref) {
27
+ export function MenuItemSeparator(props: MenuItemSeparatorProps): ReactElement {
29
28
  const {
29
+ ref,
30
30
  className,
31
31
  inset,
32
32
  vertical: propVertical,
@@ -48,4 +48,4 @@ export const MenuItemSeparator = forwardRef<
48
48
  {children}
49
49
  </li>
50
50
  );
51
- });
51
+ }
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { forwardRef } from "react";
3
+ import { type ReactElement } from "react";
4
4
 
5
5
  import {
6
6
  MenuItemInputToggle,
@@ -38,8 +38,8 @@ import {
38
38
  * @see {@link https://react-md.dev/components/menu#menuitemswitch-example | DropdownMenu Demos}
39
39
  * @since 2.8.0
40
40
  */
41
- export const MenuItemSwitch = forwardRef<HTMLLIElement, MenuItemSwitchProps>(
42
- function MenuItemSwitch(props, ref) {
43
- return <MenuItemInputToggle {...props} ref={ref} type="switch" />;
44
- }
45
- );
41
+ export function MenuItemSwitch(props: MenuItemSwitchProps): ReactElement {
42
+ const { ref, ...remaining } = props;
43
+
44
+ return <MenuItemInputToggle {...remaining} ref={ref} type="switch" />;
45
+ }
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import { cnb } from "cnbuilder";
4
- import { type HTMLAttributes, forwardRef } from "react";
4
+ import { type HTMLAttributes, type ReactElement } from "react";
5
5
 
6
6
  import { TextField, type TextFieldProps } from "../form/TextField.js";
7
7
  import { type PropsWithRef } from "../types.js";
@@ -30,11 +30,9 @@ export interface MenuItemTextFieldProps extends TextFieldProps {
30
30
  * @see {@link https://react-md.dev/components/menu#menuitemtextfield-example | DropdownMenu Demos}
31
31
  * @since 5.0.0
32
32
  */
33
- export const MenuItemTextField = forwardRef<
34
- HTMLInputElement,
35
- MenuItemTextFieldProps
36
- >(function MenuItemTextField(props, ref) {
37
- const { liProps, onKeyDown, ...remaining } = props;
33
+ export function MenuItemTextField(props: MenuItemTextFieldProps): ReactElement {
34
+ const { ref, liProps, onKeyDown, ...remaining } = props;
35
+
38
36
  return (
39
37
  <li
40
38
  role="none"
@@ -65,4 +63,4 @@ export const MenuItemTextField = forwardRef<
65
63
  />
66
64
  </li>
67
65
  );
68
- });
66
+ }
@@ -3,12 +3,13 @@
3
3
  import {
4
4
  type ReactElement,
5
5
  type ReactNode,
6
+ type RefObject,
6
7
  createContext,
7
8
  useContext,
8
9
  useMemo,
9
10
  } from "react";
10
11
 
11
- import { type NonNullMutableRef, type UseStateObject } from "../types.js";
12
+ import { type UseStateObject } from "../types.js";
12
13
 
13
14
  /**
14
15
  * @since 5.0.0
@@ -18,7 +19,7 @@ export interface MenuVisibilityContext extends UseStateObject<
18
19
  "visible",
19
20
  boolean
20
21
  > {
21
- defaultFocusIndex: NonNullMutableRef<number>;
22
+ defaultFocusIndex: RefObject<number>;
22
23
  }
23
24
 
24
25
  /**
@@ -1,11 +1,17 @@
1
1
  "use client";
2
2
 
3
- import { type HTMLAttributes, forwardRef, useRef, useState } from "react";
3
+ import {
4
+ type HTMLAttributes,
5
+ type ReactElement,
6
+ type Ref,
7
+ type RefObject,
8
+ useRef,
9
+ useState,
10
+ } from "react";
4
11
 
5
12
  import { List } from "../list/List.js";
6
13
  import { type GetDefaultFocusedIndex } from "../movement/types.js";
7
14
  import { useKeyboardMovementProvider } from "../movement/useKeyboardMovementProvider.js";
8
- import { type NonNullMutableRef } from "../types.js";
9
15
  import { type MenuListConvenienceProps } from "./Menu.js";
10
16
  import { MenuWidgetKeyboardProvider } from "./MenuWidgetKeyboardProvider.js";
11
17
  import { menu } from "./styles.js";
@@ -24,10 +30,11 @@ const noop = (): void => {
24
30
  */
25
31
  export interface MenuWidgetProps
26
32
  extends HTMLAttributes<HTMLDivElement>, MenuListConvenienceProps {
33
+ ref?: Ref<HTMLDivElement>;
27
34
  isSheet: boolean;
28
35
  horizontal: boolean;
29
36
  disableElevation?: boolean;
30
- cancelUnmountFocus: NonNullMutableRef<boolean>;
37
+ cancelUnmountFocus: RefObject<boolean>;
31
38
  getDefaultFocusedIndex?: GetDefaultFocusedIndex;
32
39
  }
33
40
 
@@ -41,127 +48,124 @@ export interface MenuWidgetProps
41
48
  *
42
49
  * @internal
43
50
  */
44
- export const MenuWidget = forwardRef<HTMLDivElement, MenuWidgetProps>(
45
- function MenuWidget(props, ref) {
46
- const {
47
- id,
48
- role = "menu",
49
- className,
50
- listStyle,
51
- listClassName,
52
- listProps,
53
- children,
54
- onClick,
55
- onBlur = noop,
56
- onFocus = noop,
57
- onKeyDown = noop,
58
- tabIndex = -1,
59
- isSheet,
60
- horizontal,
61
- disableElevation,
62
- cancelUnmountFocus,
63
- getDefaultFocusedIndex,
64
- ...remaining
65
- } = props;
66
- const isListbox = role === "listbox";
67
- const { menubar } = useMenuBarContext();
51
+ export function MenuWidget(props: MenuWidgetProps): ReactElement {
52
+ const {
53
+ ref,
54
+ id,
55
+ role = "menu",
56
+ className,
57
+ listStyle,
58
+ listClassName,
59
+ listProps,
60
+ children,
61
+ onClick,
62
+ onBlur = noop,
63
+ onFocus = noop,
64
+ onKeyDown = noop,
65
+ tabIndex = -1,
66
+ isSheet,
67
+ horizontal,
68
+ disableElevation,
69
+ cancelUnmountFocus,
70
+ getDefaultFocusedIndex,
71
+ ...remaining
72
+ } = props;
73
+ const isListbox = role === "listbox";
74
+ const { menubar } = useMenuBarContext();
75
+
76
+ // Since there is the possibility of other tab focusable elements within the
77
+ // sheet and the menu items are programmatically focused, the menu's
78
+ // tabIndex needs to be set to `-1` while one of the child menu items are
79
+ // focused. This allows Shift+Tab correctly focuses the previous focusable
80
+ // element within the sheet. Since `onFocus` and `onBlur` will be bubbled up
81
+ // to the menu widget each time a new MenuItem is focused, only disable the
82
+ // focused state if the blur event is fired without another focus event
83
+ // within an animation frame.
84
+ const [sheetMenuFocused, setSheetMenuFocused] = useState(false);
85
+ const sheetBlurredFame = useRef(0);
86
+ const menuBarContext = useMenuBarProvider({
87
+ root: false,
88
+ menubar,
89
+ hoverTimeout: menubar ? 0 : undefined,
90
+ defaultActiveId: id,
91
+ });
92
+ const { movementProps, movementContext } = useKeyboardMovementProvider({
93
+ ref,
94
+ onClick,
95
+ onFocus(event) {
96
+ onFocus(event);
68
97
 
69
- // Since there is the possibility of other tab focusable elements within the
70
- // sheet and the menu items are programmatically focused, the menu's
71
- // tabIndex needs to be set to `-1` while one of the child menu items are
72
- // focused. This allows Shift+Tab correctly focuses the previous focusable
73
- // element within the sheet. Since `onFocus` and `onBlur` will be bubbled up
74
- // to the menu widget each time a new MenuItem is focused, only disable the
75
- // focused state if the blur event is fired without another focus event
76
- // within an animation frame.
77
- const [sheetMenuFocused, setSheetMenuFocused] = useState(false);
78
- const sheetBlurredFame = useRef(0);
79
- const menuBarContext = useMenuBarProvider({
80
- root: false,
81
- menubar,
82
- hoverTimeout: menubar ? 0 : undefined,
83
- defaultActiveId: id,
84
- });
85
- const { movementProps, movementContext } = useKeyboardMovementProvider({
86
- ref,
87
- onClick,
88
- onFocus(event) {
89
- onFocus(event);
98
+ if (!isSheet) {
99
+ return;
100
+ }
90
101
 
91
- if (!isSheet) {
92
- return;
93
- }
102
+ globalThis.cancelAnimationFrame(sheetBlurredFame.current);
103
+ setSheetMenuFocused(true);
104
+ },
105
+ onKeyDown,
106
+ horizontal,
107
+ loopable: true,
108
+ searchable: true,
109
+ programmatic: true,
110
+ includeDisabled: true,
111
+ getDefaultFocusedIndex,
112
+ });
94
113
 
95
- globalThis.cancelAnimationFrame(sheetBlurredFame.current);
96
- setSheetMenuFocused(true);
97
- },
98
- onKeyDown,
99
- horizontal,
100
- loopable: true,
101
- searchable: true,
102
- programmatic: true,
103
- includeDisabled: true,
104
- getDefaultFocusedIndex,
105
- });
114
+ return (
115
+ <MenuWidgetKeyboardProvider disabled={isListbox} value={movementContext}>
116
+ <MenuBarProvider value={menuBarContext}>
117
+ <div
118
+ aria-orientation={horizontal ? "horizontal" : undefined}
119
+ {...remaining}
120
+ {...(isListbox
121
+ ? { onClick, onFocus, onKeyDown, ref }
122
+ : movementProps)}
123
+ id={id}
124
+ role={role}
125
+ className={menu({
126
+ className,
127
+ elevated: !disableElevation && !isSheet,
128
+ horizontal,
129
+ })}
130
+ tabIndex={isSheet && !sheetMenuFocused ? 0 : tabIndex}
131
+ onBlur={(event) => {
132
+ onBlur(event);
133
+ if (!isSheet) {
134
+ return;
135
+ }
106
136
 
107
- return (
108
- <MenuWidgetKeyboardProvider disabled={isListbox} value={movementContext}>
109
- <MenuBarProvider value={menuBarContext}>
110
- <div
111
- aria-orientation={horizontal ? "horizontal" : undefined}
112
- {...remaining}
113
- {...(isListbox
114
- ? { onClick, onFocus, onKeyDown, ref }
115
- : movementProps)}
116
- id={id}
117
- role={role}
118
- className={menu({
119
- className,
120
- elevated: !disableElevation && !isSheet,
121
- horizontal,
122
- })}
123
- tabIndex={isSheet && !sheetMenuFocused ? 0 : tabIndex}
124
- onBlur={(event) => {
125
- onBlur(event);
126
- if (!isSheet) {
127
- return;
137
+ sheetBlurredFame.current = globalThis.requestAnimationFrame(() => {
138
+ setSheetMenuFocused(false);
139
+ });
140
+ }}
141
+ >
142
+ <List
143
+ {...listProps}
144
+ style={listStyle ?? listProps?.style}
145
+ className={listClassName || listProps?.className}
146
+ horizontal={horizontal}
147
+ onClick={(event) => {
148
+ listProps?.onClick?.(event);
149
+
150
+ // this makes it so you can click on the menu/list without
151
+ // closing the menu
152
+ if (event.target === event.currentTarget) {
153
+ event.stopPropagation();
128
154
  }
129
155
 
130
- sheetBlurredFame.current = globalThis.requestAnimationFrame(
131
- () => {
132
- setSheetMenuFocused(false);
133
- }
134
- );
156
+ // This might be a test only workaround since clicking links move focus
157
+ // somewhere else
158
+ if (event.target instanceof HTMLElement) {
159
+ cancelUnmountFocus.current = event.currentTarget.contains(
160
+ event.target.closest("a")
161
+ );
162
+ }
135
163
  }}
136
164
  >
137
- <List
138
- {...listProps}
139
- style={listStyle ?? listProps?.style}
140
- className={listClassName || listProps?.className}
141
- horizontal={horizontal}
142
- onClick={(event) => {
143
- listProps?.onClick?.(event);
144
-
145
- // this makes it so you can click on the menu/list without
146
- // closing the menu
147
- if (event.target === event.currentTarget) {
148
- event.stopPropagation();
149
- }
150
-
151
- // This might be a test only workaround since clicking links move focus
152
- // somewhere else
153
- if (event.target instanceof HTMLElement) {
154
- cancelUnmountFocus.current = event.currentTarget.contains(
155
- event.target.closest("a")
156
- );
157
- }
158
- }}
159
- >
160
- {children}
161
- </List>
162
- </div>
163
- </MenuBarProvider>
164
- </MenuWidgetKeyboardProvider>
165
- );
166
- }
167
- );
165
+ {children}
166
+ </List>
167
+ </div>
168
+ </MenuBarProvider>
169
+ </MenuWidgetKeyboardProvider>
170
+ );
171
+ }
@@ -1,17 +1,20 @@
1
1
  "use client";
2
2
 
3
- import type { MouseEvent, RefObject } from "react";
3
+ import { type MouseEvent, type RefObject } from "react";
4
4
  import { useCallback, useRef, useState } from "react";
5
5
 
6
6
  import { BELOW_INNER_LEFT_ANCHOR } from "../positioning/constants.js";
7
- import type { InitialCoords, PositionAnchor } from "../positioning/types.js";
8
- import type { UseStateObject } from "../types.js";
7
+ import {
8
+ type InitialCoords,
9
+ type PositionAnchor,
10
+ } from "../positioning/types.js";
11
+ import { type UseStateObject } from "../types.js";
9
12
 
10
13
  /** @since 6.0.0 */
11
14
  export interface ContextMenuProps extends InitialCoords {
12
15
  "aria-label": string;
13
16
  anchor: PositionAnchor;
14
- fixedTo: RefObject<HTMLElement>;
17
+ fixedTo: RefObject<HTMLElement | null>;
15
18
  visible: boolean;
16
19
  preventScroll: boolean;
17
20
  onRequestClose: () => void;
@@ -6,11 +6,7 @@ import {
6
6
  type RefObject,
7
7
  } from "react";
8
8
 
9
- import {
10
- type NonNullMutableRef,
11
- type NonNullRef,
12
- type UseStateSetter,
13
- } from "../types.js";
9
+ import { type UseStateSetter } from "../types.js";
14
10
 
15
11
  /**
16
12
  * Set this to `"roving"` when:
@@ -182,7 +178,7 @@ export interface KeyboardMovementUpdateFocusIndexOptions {
182
178
  */
183
179
  export interface KeyboardMovementContext extends Required<KeyboardMovementBehavior> {
184
180
  /** {@inheritDoc KeyboardMovementConfig} */
185
- config: NonNullRef<KeyboardMovementConfig>;
181
+ config: RefObject<KeyboardMovementConfig>;
186
182
 
187
183
  /** @see {@link TabIndexBehavior} */
188
184
  tabIndexBehavior: TabIndexBehavior | undefined;
@@ -280,7 +276,7 @@ export interface KeyboardMovementExtensionData<
280
276
  E extends HTMLElement,
281
277
  > extends KeyboardMovementContext {
282
278
  event: KeyboardEvent<E>;
283
- currentFocusIndex: NonNullMutableRef<number>;
279
+ currentFocusIndex: RefObject<number>;
284
280
  setFocusIndex: (index: number, focusables: readonly HTMLElement[]) => void;
285
281
  setActiveDescendantId: (id: string) => void;
286
282
  }
@@ -398,10 +394,10 @@ export interface KeyboardMovementProps<E extends HTMLElement> extends Required<
398
394
  * @internal
399
395
  */
400
396
  export interface KeyboardMovementProviderImplementation<E extends HTMLElement> {
401
- nodeRef: RefObject<E>;
397
+ nodeRef: RefObject<E | null>;
402
398
  movementProps: Readonly<KeyboardMovementProps<E>>;
403
399
  movementContext: Readonly<KeyboardMovementContext>;
404
- currentFocusIndex: NonNullMutableRef<number>;
400
+ currentFocusIndex: RefObject<number>;
405
401
  activeDescendantId: string;
406
402
  setActiveDescendantId: UseStateSetter<string>;
407
403
  }
@@ -1,6 +1,10 @@
1
1
  "use client";
2
2
 
3
- import { type LiHTMLAttributes, type ReactNode, forwardRef } from "react";
3
+ import {
4
+ type LiHTMLAttributes,
5
+ type ReactElement,
6
+ type ReactNode,
7
+ } from "react";
4
8
 
5
9
  import { type ButtonProps } from "../button/Button.js";
6
10
  import {
@@ -52,11 +56,11 @@ export interface CollapsibleNavGroupProps
52
56
  * @see {@link https://react-md.dev/components/navigation | Navigation Demos}
53
57
  * @since 6.0.0
54
58
  */
55
- export const CollapsibleNavGroup = forwardRef<
56
- HTMLUListElement,
57
- CollapsibleNavGroupProps
58
- >(function CollapsibleNavGroup(props, ref) {
59
+ export function CollapsibleNavGroup(
60
+ props: CollapsibleNavGroupProps
61
+ ): ReactElement {
59
62
  const {
63
+ ref,
60
64
  liProps,
61
65
  buttonProps,
62
66
  buttonChildren,
@@ -101,4 +105,4 @@ export const CollapsibleNavGroup = forwardRef<
101
105
  )}
102
106
  </NavItem>
103
107
  );
104
- });
108
+ }