@mui/material 9.0.0-beta.0 → 9.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 (421) hide show
  1. package/Accordion/Accordion.d.mts +4 -4
  2. package/Accordion/Accordion.d.ts +4 -4
  3. package/AccordionActions/AccordionActions.d.mts +2 -2
  4. package/AccordionActions/AccordionActions.d.ts +2 -2
  5. package/AccordionDetails/AccordionDetails.d.mts +2 -2
  6. package/AccordionDetails/AccordionDetails.d.ts +2 -2
  7. package/AccordionSummary/AccordionSummary.d.mts +3 -3
  8. package/AccordionSummary/AccordionSummary.d.ts +3 -3
  9. package/AccordionSummary/AccordionSummary.js +1 -0
  10. package/AccordionSummary/AccordionSummary.mjs +1 -0
  11. package/Alert/Alert.d.mts +3 -3
  12. package/Alert/Alert.d.ts +3 -3
  13. package/AlertTitle/AlertTitle.d.mts +3 -3
  14. package/AlertTitle/AlertTitle.d.ts +3 -3
  15. package/AppBar/AppBar.d.mts +3 -3
  16. package/AppBar/AppBar.d.ts +3 -3
  17. package/Autocomplete/Autocomplete.d.mts +2 -2
  18. package/Autocomplete/Autocomplete.d.ts +2 -2
  19. package/Avatar/Avatar.d.mts +2 -2
  20. package/Avatar/Avatar.d.ts +2 -2
  21. package/AvatarGroup/AvatarGroup.d.mts +2 -2
  22. package/AvatarGroup/AvatarGroup.d.ts +2 -2
  23. package/Backdrop/Backdrop.d.mts +4 -4
  24. package/Backdrop/Backdrop.d.ts +4 -4
  25. package/Badge/Badge.d.mts +3 -3
  26. package/Badge/Badge.d.ts +3 -3
  27. package/BottomNavigation/BottomNavigation.d.mts +2 -2
  28. package/BottomNavigation/BottomNavigation.d.ts +2 -2
  29. package/BottomNavigationAction/BottomNavigationAction.d.mts +3 -3
  30. package/BottomNavigationAction/BottomNavigationAction.d.ts +3 -3
  31. package/BottomNavigationAction/BottomNavigationAction.js +1 -0
  32. package/BottomNavigationAction/BottomNavigationAction.mjs +1 -0
  33. package/Box/Box.d.mts +3 -3
  34. package/Box/Box.d.ts +3 -3
  35. package/Breadcrumbs/BreadcrumbCollapsed.js +5 -1
  36. package/Breadcrumbs/BreadcrumbCollapsed.mjs +5 -1
  37. package/Breadcrumbs/Breadcrumbs.d.mts +3 -3
  38. package/Breadcrumbs/Breadcrumbs.d.ts +3 -3
  39. package/Button/Button.d.mts +6 -6
  40. package/Button/Button.d.ts +6 -6
  41. package/Button/Button.js +1 -0
  42. package/Button/Button.mjs +1 -0
  43. package/ButtonBase/ButtonBase.d.mts +7 -2
  44. package/ButtonBase/ButtonBase.d.ts +7 -2
  45. package/ButtonBase/ButtonBase.js +84 -85
  46. package/ButtonBase/ButtonBase.mjs +84 -85
  47. package/ButtonBase/useButtonBase.d.mts +91 -0
  48. package/ButtonBase/useButtonBase.d.ts +91 -0
  49. package/ButtonBase/useButtonBase.js +174 -0
  50. package/ButtonBase/useButtonBase.mjs +167 -0
  51. package/ButtonGroup/ButtonGroup.d.mts +2 -2
  52. package/ButtonGroup/ButtonGroup.d.ts +2 -2
  53. package/CHANGELOG.md +76 -0
  54. package/Card/Card.d.mts +3 -3
  55. package/Card/Card.d.ts +3 -3
  56. package/CardActionArea/CardActionArea.d.mts +3 -3
  57. package/CardActionArea/CardActionArea.d.ts +3 -3
  58. package/CardActionArea/CardActionArea.js +1 -0
  59. package/CardActionArea/CardActionArea.mjs +1 -0
  60. package/CardActions/CardActions.d.mts +2 -2
  61. package/CardActions/CardActions.d.ts +2 -2
  62. package/CardContent/CardContent.d.mts +2 -2
  63. package/CardContent/CardContent.d.ts +2 -2
  64. package/CardHeader/CardHeader.d.mts +2 -2
  65. package/CardHeader/CardHeader.d.ts +2 -2
  66. package/CardMedia/CardMedia.d.mts +2 -2
  67. package/CardMedia/CardMedia.d.ts +2 -2
  68. package/Checkbox/Checkbox.d.mts +4 -4
  69. package/Checkbox/Checkbox.d.ts +4 -4
  70. package/Chip/Chip.d.mts +9 -2
  71. package/Chip/Chip.d.ts +9 -2
  72. package/Chip/Chip.js +18 -1
  73. package/Chip/Chip.mjs +18 -1
  74. package/CircularProgress/CircularProgress.d.mts +2 -2
  75. package/CircularProgress/CircularProgress.d.ts +2 -2
  76. package/ClickAwayListener/ClickAwayListener.d.mts +3 -3
  77. package/ClickAwayListener/ClickAwayListener.d.ts +3 -3
  78. package/ClickAwayListener/ClickAwayListener.js +3 -3
  79. package/ClickAwayListener/ClickAwayListener.mjs +3 -3
  80. package/Collapse/Collapse.d.mts +5 -5
  81. package/Collapse/Collapse.d.ts +5 -5
  82. package/Collapse/Collapse.js +6 -18
  83. package/Collapse/Collapse.mjs +7 -19
  84. package/Container/Container.d.mts +2 -2
  85. package/Container/Container.d.ts +2 -2
  86. package/CssBaseline/CssBaseline.d.mts +2 -2
  87. package/CssBaseline/CssBaseline.d.ts +2 -2
  88. package/Dialog/Dialog.d.mts +11 -4
  89. package/Dialog/Dialog.d.ts +11 -4
  90. package/Dialog/Dialog.js +9 -1
  91. package/Dialog/Dialog.mjs +9 -1
  92. package/DialogActions/DialogActions.d.mts +2 -2
  93. package/DialogActions/DialogActions.d.ts +2 -2
  94. package/DialogContent/DialogContent.d.mts +2 -2
  95. package/DialogContent/DialogContent.d.ts +2 -2
  96. package/DialogContentText/DialogContentText.d.mts +3 -3
  97. package/DialogContentText/DialogContentText.d.ts +3 -3
  98. package/DialogTitle/DialogTitle.d.mts +3 -3
  99. package/DialogTitle/DialogTitle.d.ts +3 -3
  100. package/Divider/Divider.d.mts +4 -4
  101. package/Divider/Divider.d.ts +4 -4
  102. package/Divider/Divider.js +0 -8
  103. package/Divider/Divider.mjs +0 -8
  104. package/Drawer/Drawer.d.mts +4 -4
  105. package/Drawer/Drawer.d.ts +4 -4
  106. package/Drawer/Drawer.js +1 -4
  107. package/Drawer/Drawer.mjs +1 -4
  108. package/Fab/Fab.d.mts +3 -3
  109. package/Fab/Fab.d.ts +3 -3
  110. package/Fab/Fab.js +1 -0
  111. package/Fab/Fab.mjs +1 -0
  112. package/Fade/Fade.d.mts +3 -3
  113. package/Fade/Fade.d.ts +3 -3
  114. package/Fade/Fade.js +28 -32
  115. package/Fade/Fade.mjs +29 -33
  116. package/FilledInput/FilledInput.d.mts +3 -3
  117. package/FilledInput/FilledInput.d.ts +3 -3
  118. package/FilledInput/FilledInput.js +1 -1
  119. package/FilledInput/FilledInput.mjs +1 -1
  120. package/FormControl/FormControl.d.mts +7 -7
  121. package/FormControl/FormControl.d.ts +7 -7
  122. package/FormControlLabel/FormControlLabel.d.mts +4 -4
  123. package/FormControlLabel/FormControlLabel.d.ts +4 -4
  124. package/FormGroup/FormGroup.d.mts +3 -3
  125. package/FormGroup/FormGroup.d.ts +3 -3
  126. package/FormHelperText/FormHelperText.d.mts +3 -3
  127. package/FormHelperText/FormHelperText.d.ts +3 -3
  128. package/FormLabel/FormLabel.d.mts +5 -5
  129. package/FormLabel/FormLabel.d.ts +5 -5
  130. package/GlobalStyles/GlobalStyles.d.mts +2 -2
  131. package/GlobalStyles/GlobalStyles.d.ts +2 -2
  132. package/Grid/Grid.d.mts +10 -5
  133. package/Grid/Grid.d.ts +10 -5
  134. package/Grid/Grid.js +10 -5
  135. package/Grid/Grid.mjs +10 -5
  136. package/Grid/gridClasses.js +1 -1
  137. package/Grid/gridClasses.mjs +1 -1
  138. package/Grow/Grow.d.mts +5 -5
  139. package/Grow/Grow.d.ts +5 -5
  140. package/Grow/Grow.js +30 -38
  141. package/Grow/Grow.mjs +31 -39
  142. package/Icon/Icon.d.mts +3 -3
  143. package/Icon/Icon.d.ts +3 -3
  144. package/IconButton/IconButton.d.mts +5 -5
  145. package/IconButton/IconButton.d.ts +5 -5
  146. package/IconButton/IconButton.js +1 -0
  147. package/IconButton/IconButton.mjs +1 -0
  148. package/ImageList/ImageList.d.mts +2 -2
  149. package/ImageList/ImageList.d.ts +2 -2
  150. package/ImageListItem/ImageListItem.d.mts +2 -2
  151. package/ImageListItem/ImageListItem.d.ts +2 -2
  152. package/ImageListItemBar/ImageListItemBar.d.mts +2 -2
  153. package/ImageListItemBar/ImageListItemBar.d.ts +2 -2
  154. package/InitColorSchemeScript/InitColorSchemeScript.d.mts +2 -2
  155. package/InitColorSchemeScript/InitColorSchemeScript.d.ts +2 -2
  156. package/InitColorSchemeScript/InitColorSchemeScript.js +2 -2
  157. package/InitColorSchemeScript/InitColorSchemeScript.mjs +2 -2
  158. package/Input/Input.d.mts +3 -3
  159. package/Input/Input.d.ts +3 -3
  160. package/Input/Input.js +1 -1
  161. package/Input/Input.mjs +1 -1
  162. package/InputAdornment/InputAdornment.d.mts +2 -2
  163. package/InputAdornment/InputAdornment.d.ts +2 -2
  164. package/InputAdornment/inputAdornmentClasses.d.mts +2 -2
  165. package/InputAdornment/inputAdornmentClasses.d.ts +2 -2
  166. package/InputBase/InputBase.d.mts +2 -2
  167. package/InputBase/InputBase.d.ts +2 -2
  168. package/InputLabel/InputLabel.d.mts +4 -4
  169. package/InputLabel/InputLabel.d.ts +4 -4
  170. package/LinearProgress/LinearProgress.d.mts +2 -2
  171. package/LinearProgress/LinearProgress.d.ts +2 -2
  172. package/Link/Link.d.mts +4 -4
  173. package/Link/Link.d.ts +4 -4
  174. package/List/List.d.mts +4 -4
  175. package/List/List.d.ts +4 -4
  176. package/ListItem/ListItem.d.mts +3 -3
  177. package/ListItem/ListItem.d.ts +3 -3
  178. package/ListItem/ListItem.js +1 -2
  179. package/ListItem/ListItem.mjs +1 -2
  180. package/ListItemAvatar/ListItemAvatar.d.mts +2 -2
  181. package/ListItemAvatar/ListItemAvatar.d.ts +2 -2
  182. package/ListItemButton/ListItemButton.d.mts +4 -4
  183. package/ListItemButton/ListItemButton.d.ts +4 -4
  184. package/ListItemButton/ListItemButton.js +1 -0
  185. package/ListItemButton/ListItemButton.mjs +1 -0
  186. package/ListItemIcon/ListItemIcon.d.mts +3 -3
  187. package/ListItemIcon/ListItemIcon.d.ts +3 -3
  188. package/ListItemIcon/ListItemIcon.js +1 -1
  189. package/ListItemIcon/ListItemIcon.mjs +1 -1
  190. package/ListItemSecondaryAction/ListItemSecondaryAction.d.mts +2 -2
  191. package/ListItemSecondaryAction/ListItemSecondaryAction.d.ts +2 -2
  192. package/ListItemText/ListItemText.d.mts +3 -3
  193. package/ListItemText/ListItemText.d.ts +3 -3
  194. package/ListSubheader/ListSubheader.d.mts +3 -3
  195. package/ListSubheader/ListSubheader.d.ts +3 -3
  196. package/ListSubheader/ListSubheader.js +0 -3
  197. package/ListSubheader/ListSubheader.mjs +0 -3
  198. package/Menu/Menu.d.mts +5 -5
  199. package/Menu/Menu.d.ts +5 -5
  200. package/Menu/Menu.js +15 -32
  201. package/Menu/Menu.mjs +15 -32
  202. package/MenuItem/MenuItem.d.mts +3 -3
  203. package/MenuItem/MenuItem.d.ts +3 -3
  204. package/MenuItem/MenuItem.js +36 -26
  205. package/MenuItem/MenuItem.mjs +34 -26
  206. package/MenuList/MenuList.d.mts +4 -4
  207. package/MenuList/MenuList.d.ts +4 -4
  208. package/MenuList/MenuList.js +136 -101
  209. package/MenuList/MenuList.mjs +135 -100
  210. package/MenuList/MenuListContext.d.mts +11 -0
  211. package/MenuList/MenuListContext.d.ts +11 -0
  212. package/MenuList/MenuListContext.js +25 -0
  213. package/MenuList/MenuListContext.mjs +19 -0
  214. package/MobileStepper/MobileStepper.d.mts +3 -3
  215. package/MobileStepper/MobileStepper.d.ts +3 -3
  216. package/Modal/Modal.d.mts +7 -7
  217. package/Modal/Modal.d.ts +7 -7
  218. package/NativeSelect/NativeSelect.d.mts +3 -3
  219. package/NativeSelect/NativeSelect.d.ts +3 -3
  220. package/NoSsr/NoSsr.d.mts +2 -2
  221. package/NoSsr/NoSsr.d.ts +2 -2
  222. package/NoSsr/NoSsr.js +2 -2
  223. package/NoSsr/NoSsr.mjs +2 -2
  224. package/OutlinedInput/OutlinedInput.d.mts +4 -4
  225. package/OutlinedInput/OutlinedInput.d.ts +4 -4
  226. package/Pagination/Pagination.d.mts +2 -2
  227. package/Pagination/Pagination.d.ts +2 -2
  228. package/PaginationItem/PaginationItem.d.mts +8 -3
  229. package/PaginationItem/PaginationItem.d.ts +8 -3
  230. package/PaginationItem/PaginationItem.js +6 -0
  231. package/PaginationItem/PaginationItem.mjs +6 -0
  232. package/Paper/Paper.d.mts +4 -4
  233. package/Paper/Paper.d.ts +4 -4
  234. package/PigmentContainer/PigmentContainer.d.mts +2 -2
  235. package/PigmentContainer/PigmentContainer.d.ts +2 -2
  236. package/PigmentContainer/PigmentContainer.js +2 -2
  237. package/PigmentContainer/PigmentContainer.mjs +2 -2
  238. package/PigmentGrid/PigmentGrid.d.mts +3 -3
  239. package/PigmentGrid/PigmentGrid.d.ts +3 -3
  240. package/PigmentGrid/PigmentGrid.js +3 -3
  241. package/PigmentGrid/PigmentGrid.mjs +3 -3
  242. package/PigmentStack/PigmentStack.d.mts +2 -2
  243. package/PigmentStack/PigmentStack.d.ts +2 -2
  244. package/PigmentStack/PigmentStack.js +2 -2
  245. package/PigmentStack/PigmentStack.mjs +2 -2
  246. package/Popover/Popover.d.mts +5 -5
  247. package/Popover/Popover.d.ts +5 -5
  248. package/Popover/Popover.js +19 -7
  249. package/Popover/Popover.mjs +18 -6
  250. package/Popper/Popper.d.mts +4 -4
  251. package/Popper/Popper.d.ts +4 -4
  252. package/Popper/Popper.js +4 -4
  253. package/Popper/Popper.mjs +4 -4
  254. package/Portal/Portal.d.mts +2 -2
  255. package/Portal/Portal.d.ts +2 -2
  256. package/Portal/Portal.js +2 -2
  257. package/Portal/Portal.mjs +2 -2
  258. package/README.md +3 -3
  259. package/Radio/Radio.d.mts +3 -3
  260. package/Radio/Radio.d.ts +3 -3
  261. package/RadioGroup/RadioGroup.d.mts +3 -3
  262. package/RadioGroup/RadioGroup.d.ts +3 -3
  263. package/Rating/Rating.d.mts +2 -2
  264. package/Rating/Rating.d.ts +2 -2
  265. package/ScopedCssBaseline/ScopedCssBaseline.d.mts +2 -2
  266. package/ScopedCssBaseline/ScopedCssBaseline.d.ts +2 -2
  267. package/Select/Select.d.mts +3 -3
  268. package/Select/Select.d.ts +3 -3
  269. package/Skeleton/Skeleton.d.mts +2 -2
  270. package/Skeleton/Skeleton.d.ts +2 -2
  271. package/Slide/Slide.d.mts +4 -4
  272. package/Slide/Slide.d.ts +4 -4
  273. package/Slide/Slide.js +43 -42
  274. package/Slide/Slide.mjs +44 -44
  275. package/Slider/Slider.d.mts +4 -4
  276. package/Slider/Slider.d.ts +4 -4
  277. package/Slider/Slider.js +1 -1
  278. package/Slider/Slider.mjs +1 -1
  279. package/Slider/useSlider.d.mts +1 -1
  280. package/Slider/useSlider.d.ts +1 -1
  281. package/Slider/useSlider.js +235 -209
  282. package/Slider/useSlider.mjs +235 -209
  283. package/Slider/useSlider.types.d.mts +2 -2
  284. package/Slider/useSlider.types.d.ts +2 -2
  285. package/Snackbar/Snackbar.d.mts +3 -3
  286. package/Snackbar/Snackbar.d.ts +3 -3
  287. package/SnackbarContent/SnackbarContent.d.mts +3 -3
  288. package/SnackbarContent/SnackbarContent.d.ts +3 -3
  289. package/SpeedDial/SpeedDial.d.mts +3 -3
  290. package/SpeedDial/SpeedDial.d.ts +3 -3
  291. package/SpeedDialAction/SpeedDialAction.d.mts +3 -3
  292. package/SpeedDialAction/SpeedDialAction.d.ts +3 -3
  293. package/SpeedDialIcon/SpeedDialIcon.d.mts +2 -2
  294. package/SpeedDialIcon/SpeedDialIcon.d.ts +2 -2
  295. package/Stack/Stack.d.mts +2 -2
  296. package/Stack/Stack.d.ts +2 -2
  297. package/Step/Step.d.mts +2 -2
  298. package/Step/Step.d.ts +2 -2
  299. package/StepButton/StepButton.d.mts +3 -3
  300. package/StepButton/StepButton.d.ts +3 -3
  301. package/StepButton/StepButton.js +44 -14
  302. package/StepButton/StepButton.mjs +44 -14
  303. package/StepConnector/StepConnector.d.mts +2 -2
  304. package/StepConnector/StepConnector.d.ts +2 -2
  305. package/StepConnector/StepConnector.js +1 -2
  306. package/StepConnector/StepConnector.mjs +1 -2
  307. package/StepContent/StepContent.d.mts +3 -3
  308. package/StepContent/StepContent.d.ts +3 -3
  309. package/StepIcon/StepIcon.d.mts +3 -3
  310. package/StepIcon/StepIcon.d.ts +3 -3
  311. package/StepLabel/StepLabel.d.mts +2 -2
  312. package/StepLabel/StepLabel.d.ts +2 -2
  313. package/Stepper/Stepper.d.mts +2 -2
  314. package/Stepper/Stepper.d.ts +2 -2
  315. package/Stepper/Stepper.js +54 -22
  316. package/Stepper/Stepper.mjs +54 -22
  317. package/Stepper/StepperContext.d.mts +0 -5
  318. package/Stepper/StepperContext.d.ts +0 -5
  319. package/Stepper/StepperContext.js +1 -2
  320. package/Stepper/StepperContext.mjs +0 -1
  321. package/SvgIcon/SvgIcon.d.mts +3 -3
  322. package/SvgIcon/SvgIcon.d.ts +3 -3
  323. package/SwipeableDrawer/SwipeableDrawer.d.mts +3 -3
  324. package/SwipeableDrawer/SwipeableDrawer.d.ts +3 -3
  325. package/SwipeableDrawer/SwipeableDrawer.js +0 -3
  326. package/SwipeableDrawer/SwipeableDrawer.mjs +0 -3
  327. package/Switch/Switch.d.mts +4 -4
  328. package/Switch/Switch.d.ts +4 -4
  329. package/Switch/Switch.js +4 -0
  330. package/Switch/Switch.mjs +4 -0
  331. package/Tab/Tab.d.mts +3 -3
  332. package/Tab/Tab.d.ts +3 -3
  333. package/Tab/Tab.js +17 -1
  334. package/Tab/Tab.mjs +17 -1
  335. package/TabScrollButton/TabScrollButton.d.mts +3 -3
  336. package/TabScrollButton/TabScrollButton.d.ts +3 -3
  337. package/TabScrollButton/TabScrollButton.js +6 -2
  338. package/TabScrollButton/TabScrollButton.mjs +6 -2
  339. package/Table/Table.d.mts +2 -2
  340. package/Table/Table.d.ts +2 -2
  341. package/TableBody/TableBody.d.mts +2 -2
  342. package/TableBody/TableBody.d.ts +2 -2
  343. package/TableCell/TableCell.d.mts +2 -2
  344. package/TableCell/TableCell.d.ts +2 -2
  345. package/TableContainer/TableContainer.d.mts +2 -2
  346. package/TableContainer/TableContainer.d.ts +2 -2
  347. package/TableFooter/TableFooter.d.mts +2 -2
  348. package/TableFooter/TableFooter.d.ts +2 -2
  349. package/TableHead/TableHead.d.mts +2 -2
  350. package/TableHead/TableHead.d.ts +2 -2
  351. package/TablePagination/TablePagination.d.mts +4 -4
  352. package/TablePagination/TablePagination.d.ts +4 -4
  353. package/TablePaginationActions/TablePaginationActions.d.mts +2 -2
  354. package/TablePaginationActions/TablePaginationActions.d.ts +2 -2
  355. package/TableRow/TableRow.d.mts +2 -2
  356. package/TableRow/TableRow.d.ts +2 -2
  357. package/TableSortLabel/TableSortLabel.d.mts +3 -3
  358. package/TableSortLabel/TableSortLabel.d.ts +3 -3
  359. package/TableSortLabel/TableSortLabel.js +5 -3
  360. package/TableSortLabel/TableSortLabel.mjs +5 -3
  361. package/Tabs/Tabs.d.mts +2 -2
  362. package/Tabs/Tabs.d.ts +2 -2
  363. package/Tabs/Tabs.js +30 -21
  364. package/Tabs/Tabs.mjs +29 -20
  365. package/TextField/TextField.d.mts +10 -10
  366. package/TextField/TextField.d.ts +10 -10
  367. package/TextareaAutosize/TextareaAutosize.d.mts +2 -2
  368. package/TextareaAutosize/TextareaAutosize.d.ts +2 -2
  369. package/TextareaAutosize/TextareaAutosize.js +2 -2
  370. package/TextareaAutosize/TextareaAutosize.mjs +2 -2
  371. package/ToggleButton/ToggleButton.d.mts +3 -3
  372. package/ToggleButton/ToggleButton.d.ts +3 -3
  373. package/ToggleButton/ToggleButton.js +1 -0
  374. package/ToggleButton/ToggleButton.mjs +1 -0
  375. package/ToggleButtonGroup/ToggleButtonGroup.d.mts +2 -2
  376. package/ToggleButtonGroup/ToggleButtonGroup.d.ts +2 -2
  377. package/Toolbar/Toolbar.d.mts +2 -2
  378. package/Toolbar/Toolbar.d.ts +2 -2
  379. package/Tooltip/Tooltip.d.mts +3 -3
  380. package/Tooltip/Tooltip.d.ts +3 -3
  381. package/Typography/Typography.d.mts +4 -4
  382. package/Typography/Typography.d.ts +4 -4
  383. package/Zoom/Zoom.d.mts +3 -3
  384. package/Zoom/Zoom.d.ts +3 -3
  385. package/Zoom/Zoom.js +24 -30
  386. package/Zoom/Zoom.mjs +25 -31
  387. package/index.js +1 -1
  388. package/index.mjs +1 -1
  389. package/internal/SwitchBase.d.mts +2 -2
  390. package/internal/SwitchBase.d.ts +2 -2
  391. package/internal/SwitchBase.js +5 -1
  392. package/internal/SwitchBase.mjs +5 -1
  393. package/locale/psAF.js +1 -1
  394. package/locale/psAF.mjs +1 -1
  395. package/package.json +51 -51
  396. package/styles/createThemeNoVars.js +1 -1
  397. package/styles/createThemeNoVars.mjs +1 -1
  398. package/styles/createThemeWithVars.js +9 -9
  399. package/styles/createThemeWithVars.mjs +9 -9
  400. package/transitions/utils.d.mts +7 -0
  401. package/transitions/utils.d.ts +7 -0
  402. package/transitions/utils.js +27 -0
  403. package/transitions/utils.mjs +25 -0
  404. package/useAutocomplete/useAutocomplete.js +8 -0
  405. package/useAutocomplete/useAutocomplete.mjs +8 -0
  406. package/utils/focusWithVisible.js +24 -0
  407. package/utils/focusWithVisible.mjs +19 -0
  408. package/utils/index.d.mts +0 -1
  409. package/utils/index.d.ts +0 -1
  410. package/utils/index.js +0 -7
  411. package/utils/index.mjs +0 -1
  412. package/utils/useFocusableWhenDisabled.d.mts +30 -0
  413. package/utils/useFocusableWhenDisabled.d.ts +30 -0
  414. package/utils/useFocusableWhenDisabled.js +47 -0
  415. package/utils/useFocusableWhenDisabled.mjs +41 -0
  416. package/utils/useRovingTabIndex.d.mts +1 -2
  417. package/utils/useRovingTabIndex.d.ts +1 -2
  418. package/utils/useRovingTabIndex.js +25 -4
  419. package/utils/useRovingTabIndex.mjs +1 -2
  420. package/version/index.js +2 -2
  421. package/version/index.mjs +2 -2
@@ -0,0 +1,91 @@
1
+ import * as React from 'react';
2
+ export interface UseButtonBaseParameters {
3
+ /**
4
+ * Whether the root should be treated as a native `<button>` for render-time semantics.
5
+ */
6
+ nativeButton: boolean;
7
+ /**
8
+ * The explicit `nativeButton` value provided by the caller, if any.
9
+ */
10
+ nativeButtonProp?: boolean | undefined;
11
+ /**
12
+ * Whether the default rendered element is expected to be a native button when
13
+ * `nativeButton` was not explicitly provided.
14
+ * @default nativeButton
15
+ */
16
+ internalNativeButton?: boolean | undefined;
17
+ /**
18
+ * Whether to perform additional checks in dev mode on whether the resolved element
19
+ * matches the default native or non-native button expectation.
20
+ * Set to `true` to allow hook callers bypass this check, e.g. when the `component`
21
+ * prop is a string.
22
+ * @default false
23
+ */
24
+ allowInferredHostMismatch?: boolean | undefined;
25
+ /**
26
+ * The disabled state of the component.
27
+ */
28
+ disabled: boolean;
29
+ /**
30
+ * The `type` attribute for the element.
31
+ */
32
+ type?: string | undefined;
33
+ /**
34
+ * Whether the element has a `formAction` attribute. When true, the hook
35
+ * will not default `type` to `'button'` for native buttons so the browser
36
+ * can use its natural submit behaviour.
37
+ * @default false
38
+ */
39
+ hasFormAction?: boolean | undefined;
40
+ /**
41
+ * The `tabIndex` attribute for the element.
42
+ * @default 0
43
+ */
44
+ tabIndex?: number | undefined;
45
+ /**
46
+ * When `true`, a disabled root can remain focusable.
47
+ * When `undefined`, the feature is not enabled.
48
+ */
49
+ focusableWhenDisabled?: boolean | undefined;
50
+ /**
51
+ * When `true`, calls `event.stopPropagation()` on click before the disabled guard runs.
52
+ * @default false
53
+ */
54
+ stopEventPropagation?: boolean | undefined;
55
+ /**
56
+ * An additional function that will run before the user's `onKeyDown`, e.g.
57
+ * to trigger the ripple effect in `<ButtonBase>`.
58
+ */
59
+ onBeforeKeyDown?: React.KeyboardEventHandler<HTMLElement> | undefined;
60
+ /**
61
+ * An additional function that will run before the user's `onKeyUp`, e.g.
62
+ * to control the ripple effect in `<ButtonBase>`.
63
+ */
64
+ onBeforeKeyUp?: React.KeyboardEventHandler<HTMLElement> | undefined;
65
+ }
66
+ export interface ButtonBaseButtonProps {
67
+ role?: string | undefined;
68
+ 'aria-disabled'?: boolean | undefined;
69
+ type?: string | undefined;
70
+ disabled?: boolean | undefined;
71
+ tabIndex: number;
72
+ }
73
+ export interface ButtonBaseExternalProps extends React.HTMLAttributes<any> {
74
+ 'aria-disabled'?: boolean | undefined;
75
+ disabled?: boolean | undefined;
76
+ type?: string | undefined;
77
+ }
78
+ export interface ButtonBaseEventHandlers {
79
+ onClick: React.MouseEventHandler<HTMLElement>;
80
+ onKeyDown: React.KeyboardEventHandler<HTMLElement>;
81
+ onKeyUp: React.KeyboardEventHandler<HTMLElement>;
82
+ }
83
+ export interface UseButtonBaseReturnValue {
84
+ /**
85
+ * @param externalProps additional props for the button
86
+ * @returns props that should be spread on the button
87
+ */
88
+ getButtonProps: <ExternalProps extends ButtonBaseExternalProps = ButtonBaseExternalProps>(externalProps?: ExternalProps) => Omit<ExternalProps, keyof ButtonBaseEventHandlers> & ButtonBaseButtonProps & ButtonBaseEventHandlers;
89
+ rootRef: React.RefObject<HTMLElement | null>;
90
+ }
91
+ export default function useButtonBase(parameters: UseButtonBaseParameters): UseButtonBaseReturnValue;
@@ -0,0 +1,91 @@
1
+ import * as React from 'react';
2
+ export interface UseButtonBaseParameters {
3
+ /**
4
+ * Whether the root should be treated as a native `<button>` for render-time semantics.
5
+ */
6
+ nativeButton: boolean;
7
+ /**
8
+ * The explicit `nativeButton` value provided by the caller, if any.
9
+ */
10
+ nativeButtonProp?: boolean | undefined;
11
+ /**
12
+ * Whether the default rendered element is expected to be a native button when
13
+ * `nativeButton` was not explicitly provided.
14
+ * @default nativeButton
15
+ */
16
+ internalNativeButton?: boolean | undefined;
17
+ /**
18
+ * Whether to perform additional checks in dev mode on whether the resolved element
19
+ * matches the default native or non-native button expectation.
20
+ * Set to `true` to allow hook callers bypass this check, e.g. when the `component`
21
+ * prop is a string.
22
+ * @default false
23
+ */
24
+ allowInferredHostMismatch?: boolean | undefined;
25
+ /**
26
+ * The disabled state of the component.
27
+ */
28
+ disabled: boolean;
29
+ /**
30
+ * The `type` attribute for the element.
31
+ */
32
+ type?: string | undefined;
33
+ /**
34
+ * Whether the element has a `formAction` attribute. When true, the hook
35
+ * will not default `type` to `'button'` for native buttons so the browser
36
+ * can use its natural submit behaviour.
37
+ * @default false
38
+ */
39
+ hasFormAction?: boolean | undefined;
40
+ /**
41
+ * The `tabIndex` attribute for the element.
42
+ * @default 0
43
+ */
44
+ tabIndex?: number | undefined;
45
+ /**
46
+ * When `true`, a disabled root can remain focusable.
47
+ * When `undefined`, the feature is not enabled.
48
+ */
49
+ focusableWhenDisabled?: boolean | undefined;
50
+ /**
51
+ * When `true`, calls `event.stopPropagation()` on click before the disabled guard runs.
52
+ * @default false
53
+ */
54
+ stopEventPropagation?: boolean | undefined;
55
+ /**
56
+ * An additional function that will run before the user's `onKeyDown`, e.g.
57
+ * to trigger the ripple effect in `<ButtonBase>`.
58
+ */
59
+ onBeforeKeyDown?: React.KeyboardEventHandler<HTMLElement> | undefined;
60
+ /**
61
+ * An additional function that will run before the user's `onKeyUp`, e.g.
62
+ * to control the ripple effect in `<ButtonBase>`.
63
+ */
64
+ onBeforeKeyUp?: React.KeyboardEventHandler<HTMLElement> | undefined;
65
+ }
66
+ export interface ButtonBaseButtonProps {
67
+ role?: string | undefined;
68
+ 'aria-disabled'?: boolean | undefined;
69
+ type?: string | undefined;
70
+ disabled?: boolean | undefined;
71
+ tabIndex: number;
72
+ }
73
+ export interface ButtonBaseExternalProps extends React.HTMLAttributes<any> {
74
+ 'aria-disabled'?: boolean | undefined;
75
+ disabled?: boolean | undefined;
76
+ type?: string | undefined;
77
+ }
78
+ export interface ButtonBaseEventHandlers {
79
+ onClick: React.MouseEventHandler<HTMLElement>;
80
+ onKeyDown: React.KeyboardEventHandler<HTMLElement>;
81
+ onKeyUp: React.KeyboardEventHandler<HTMLElement>;
82
+ }
83
+ export interface UseButtonBaseReturnValue {
84
+ /**
85
+ * @param externalProps additional props for the button
86
+ * @returns props that should be spread on the button
87
+ */
88
+ getButtonProps: <ExternalProps extends ButtonBaseExternalProps = ButtonBaseExternalProps>(externalProps?: ExternalProps) => Omit<ExternalProps, keyof ButtonBaseEventHandlers> & ButtonBaseButtonProps & ButtonBaseEventHandlers;
89
+ rootRef: React.RefObject<HTMLElement | null>;
90
+ }
91
+ export default function useButtonBase(parameters: UseButtonBaseParameters): UseButtonBaseReturnValue;
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.default = useButtonBase;
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _useFocusableWhenDisabled = _interopRequireDefault(require("../utils/useFocusableWhenDisabled"));
12
+ const EMPTY = {};
13
+ function useButtonBase(parameters) {
14
+ const {
15
+ nativeButton,
16
+ nativeButtonProp,
17
+ internalNativeButton = nativeButton,
18
+ allowInferredHostMismatch = false,
19
+ disabled,
20
+ type,
21
+ hasFormAction = false,
22
+ tabIndex = 0,
23
+ focusableWhenDisabled: focusableWhenDisabledParam,
24
+ stopEventPropagation = false,
25
+ onBeforeKeyDown,
26
+ onBeforeKeyUp
27
+ } = parameters;
28
+ const rootRef = React.useRef(null);
29
+ const focusableWhenDisabled = focusableWhenDisabledParam === true;
30
+ const focusableWhenDisabledProps = (0, _useFocusableWhenDisabled.default)({
31
+ focusableWhenDisabled,
32
+ disabled,
33
+ isNativeButton: nativeButton,
34
+ tabIndex
35
+ });
36
+ if (process.env.NODE_ENV !== 'production') {
37
+ // eslint-disable-next-line react-hooks/rules-of-hooks
38
+ React.useEffect(() => {
39
+ const root = rootRef.current;
40
+ if (root == null) {
41
+ return;
42
+ }
43
+ const isButtonTag = root.tagName === 'BUTTON';
44
+ if (nativeButtonProp !== undefined) {
45
+ if (nativeButtonProp && !isButtonTag) {
46
+ const message = 'MUI: A component that acts as a button expected a native <button> because the ' + '`nativeButton` prop is true. Rendering a non-<button> removes native button ' + 'semantics, which can impact forms and accessibility. Render a real <button> ' + 'or set `nativeButton` to `false`.';
47
+ console.error(message);
48
+ }
49
+ if (!nativeButtonProp && isButtonTag) {
50
+ const message = 'MUI: A component that acts as a button expected a non-<button> because the `nativeButton` ' + 'prop is false. Rendering a <button> keeps native behavior while additionally applies ' + 'non-native attributes and handlers, which can add unintended extra attributes (such ' + 'as `role` or `aria-disabled`). Render a non-<button> such as <div>, or set ' + '`nativeButton` to `true`.';
51
+ console.error(message);
52
+ }
53
+ return;
54
+ }
55
+ if (allowInferredHostMismatch) {
56
+ return;
57
+ }
58
+
59
+ // warn when expecting a native <button> element but a non-string `component` prop resolved to a non-button element
60
+ if (internalNativeButton && !isButtonTag) {
61
+ const message = 'MUI: A component rendering a native <button> resolved to a non-<button> element, ' + 'but `nativeButton={false}` was not specified and the resolved root is a non-<button>. ' + 'When rendering a custom component, set `nativeButton={false}` explicitly or render a <button> element.';
62
+ console.error(message);
63
+ }
64
+
65
+ // warn when expecting a non-button but a non-string `component` prop resolved to a native <button> element
66
+ if (!internalNativeButton && isButtonTag) {
67
+ const message = 'MUI: A component that acts as a non-native button resolved to a native <button> element, ' + 'but `nativeButton={true}` was not specified. ' + 'When rendering a custom component, set `nativeButton={true}` explicitly or render a non-<button> element.';
68
+ console.error(message);
69
+ }
70
+ }, [allowInferredHostMismatch, internalNativeButton, nativeButtonProp]);
71
+ }
72
+
73
+ // A helper for event handlers to determine whether to use browser-defined keyboard activation
74
+ // for native elements like <button> and <a href>, or synthesize Enter/Space clicks for non-native
75
+ // elements like `<div role="button">`.
76
+ // This is UNSAFE TO USE outside of event handers, e.g. in render.
77
+ const hasNativeKeyboardActivation = React.useCallback(() => {
78
+ const root = rootRef.current;
79
+ if (root == null) {
80
+ return nativeButton;
81
+ }
82
+ if (root.tagName === 'BUTTON') {
83
+ return true;
84
+ }
85
+
86
+ // Although this hook is not intended for links, this check is for
87
+ // backward compatibility with `<ButtonBase href="#" />` since ButtonBase
88
+ // uses the returned event handlers.
89
+ return Boolean(root.tagName === 'A' && root.href);
90
+ }, [nativeButton]);
91
+ const buttonProps = React.useMemo(() => {
92
+ const resolvedButtonProps = focusableWhenDisabled ? {} : {
93
+ tabIndex: disabled ? -1 : tabIndex
94
+ };
95
+ if (nativeButton) {
96
+ resolvedButtonProps.type = type === undefined && !hasFormAction ? 'button' : type;
97
+ if (!focusableWhenDisabled) {
98
+ resolvedButtonProps.disabled = disabled;
99
+ }
100
+ } else {
101
+ resolvedButtonProps.role = 'button';
102
+ if (!focusableWhenDisabled && disabled) {
103
+ resolvedButtonProps['aria-disabled'] = disabled;
104
+ }
105
+ }
106
+ if (focusableWhenDisabled) {
107
+ return {
108
+ ...resolvedButtonProps,
109
+ ...focusableWhenDisabledProps
110
+ };
111
+ }
112
+ return resolvedButtonProps;
113
+ }, [disabled, focusableWhenDisabled, focusableWhenDisabledProps, hasFormAction, nativeButton, tabIndex, type]);
114
+ const getButtonProps = React.useCallback((externalProps = EMPTY) => {
115
+ const {
116
+ onClick: externalOnClick,
117
+ onKeyDown: externalOnKeyDown,
118
+ onKeyUp: externalOnKeyUp,
119
+ ...otherExternalProps
120
+ } = externalProps;
121
+ const handleClick = event => {
122
+ if (stopEventPropagation) {
123
+ event.stopPropagation();
124
+ }
125
+ if (disabled) {
126
+ event.preventDefault();
127
+ return;
128
+ }
129
+ externalOnClick?.(event);
130
+ };
131
+ const handleKeyDown = event => {
132
+ if (focusableWhenDisabled) {
133
+ focusableWhenDisabledProps.onKeyDown(event);
134
+ }
135
+ if (disabled) {
136
+ return;
137
+ }
138
+ onBeforeKeyDown?.(event);
139
+ externalOnKeyDown?.(event);
140
+ if (event.target !== event.currentTarget || hasNativeKeyboardActivation()) {
141
+ return;
142
+ }
143
+ if (event.key === ' ') {
144
+ event.preventDefault();
145
+ return;
146
+ }
147
+ if (event.key === 'Enter') {
148
+ event.preventDefault();
149
+ event.currentTarget.click();
150
+ }
151
+ };
152
+ const handleKeyUp = event => {
153
+ if (disabled) {
154
+ return;
155
+ }
156
+ onBeforeKeyUp?.(event);
157
+ externalOnKeyUp?.(event);
158
+ if (event.target === event.currentTarget && !hasNativeKeyboardActivation() && event.key === ' ' && !event.defaultPrevented) {
159
+ event.currentTarget.click();
160
+ }
161
+ };
162
+ return {
163
+ ...buttonProps,
164
+ ...otherExternalProps,
165
+ onClick: handleClick,
166
+ onKeyDown: handleKeyDown,
167
+ onKeyUp: handleKeyUp
168
+ };
169
+ }, [buttonProps, disabled, focusableWhenDisabled, focusableWhenDisabledProps, hasNativeKeyboardActivation, onBeforeKeyDown, onBeforeKeyUp, stopEventPropagation]);
170
+ return {
171
+ getButtonProps,
172
+ rootRef
173
+ };
174
+ }
@@ -0,0 +1,167 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import useFocusableWhenDisabled from "../utils/useFocusableWhenDisabled.mjs";
5
+ const EMPTY = {};
6
+ export default function useButtonBase(parameters) {
7
+ const {
8
+ nativeButton,
9
+ nativeButtonProp,
10
+ internalNativeButton = nativeButton,
11
+ allowInferredHostMismatch = false,
12
+ disabled,
13
+ type,
14
+ hasFormAction = false,
15
+ tabIndex = 0,
16
+ focusableWhenDisabled: focusableWhenDisabledParam,
17
+ stopEventPropagation = false,
18
+ onBeforeKeyDown,
19
+ onBeforeKeyUp
20
+ } = parameters;
21
+ const rootRef = React.useRef(null);
22
+ const focusableWhenDisabled = focusableWhenDisabledParam === true;
23
+ const focusableWhenDisabledProps = useFocusableWhenDisabled({
24
+ focusableWhenDisabled,
25
+ disabled,
26
+ isNativeButton: nativeButton,
27
+ tabIndex
28
+ });
29
+ if (process.env.NODE_ENV !== 'production') {
30
+ // eslint-disable-next-line react-hooks/rules-of-hooks
31
+ React.useEffect(() => {
32
+ const root = rootRef.current;
33
+ if (root == null) {
34
+ return;
35
+ }
36
+ const isButtonTag = root.tagName === 'BUTTON';
37
+ if (nativeButtonProp !== undefined) {
38
+ if (nativeButtonProp && !isButtonTag) {
39
+ const message = 'MUI: A component that acts as a button expected a native <button> because the ' + '`nativeButton` prop is true. Rendering a non-<button> removes native button ' + 'semantics, which can impact forms and accessibility. Render a real <button> ' + 'or set `nativeButton` to `false`.';
40
+ console.error(message);
41
+ }
42
+ if (!nativeButtonProp && isButtonTag) {
43
+ const message = 'MUI: A component that acts as a button expected a non-<button> because the `nativeButton` ' + 'prop is false. Rendering a <button> keeps native behavior while additionally applies ' + 'non-native attributes and handlers, which can add unintended extra attributes (such ' + 'as `role` or `aria-disabled`). Render a non-<button> such as <div>, or set ' + '`nativeButton` to `true`.';
44
+ console.error(message);
45
+ }
46
+ return;
47
+ }
48
+ if (allowInferredHostMismatch) {
49
+ return;
50
+ }
51
+
52
+ // warn when expecting a native <button> element but a non-string `component` prop resolved to a non-button element
53
+ if (internalNativeButton && !isButtonTag) {
54
+ const message = 'MUI: A component rendering a native <button> resolved to a non-<button> element, ' + 'but `nativeButton={false}` was not specified and the resolved root is a non-<button>. ' + 'When rendering a custom component, set `nativeButton={false}` explicitly or render a <button> element.';
55
+ console.error(message);
56
+ }
57
+
58
+ // warn when expecting a non-button but a non-string `component` prop resolved to a native <button> element
59
+ if (!internalNativeButton && isButtonTag) {
60
+ const message = 'MUI: A component that acts as a non-native button resolved to a native <button> element, ' + 'but `nativeButton={true}` was not specified. ' + 'When rendering a custom component, set `nativeButton={true}` explicitly or render a non-<button> element.';
61
+ console.error(message);
62
+ }
63
+ }, [allowInferredHostMismatch, internalNativeButton, nativeButtonProp]);
64
+ }
65
+
66
+ // A helper for event handlers to determine whether to use browser-defined keyboard activation
67
+ // for native elements like <button> and <a href>, or synthesize Enter/Space clicks for non-native
68
+ // elements like `<div role="button">`.
69
+ // This is UNSAFE TO USE outside of event handers, e.g. in render.
70
+ const hasNativeKeyboardActivation = React.useCallback(() => {
71
+ const root = rootRef.current;
72
+ if (root == null) {
73
+ return nativeButton;
74
+ }
75
+ if (root.tagName === 'BUTTON') {
76
+ return true;
77
+ }
78
+
79
+ // Although this hook is not intended for links, this check is for
80
+ // backward compatibility with `<ButtonBase href="#" />` since ButtonBase
81
+ // uses the returned event handlers.
82
+ return Boolean(root.tagName === 'A' && root.href);
83
+ }, [nativeButton]);
84
+ const buttonProps = React.useMemo(() => {
85
+ const resolvedButtonProps = focusableWhenDisabled ? {} : {
86
+ tabIndex: disabled ? -1 : tabIndex
87
+ };
88
+ if (nativeButton) {
89
+ resolvedButtonProps.type = type === undefined && !hasFormAction ? 'button' : type;
90
+ if (!focusableWhenDisabled) {
91
+ resolvedButtonProps.disabled = disabled;
92
+ }
93
+ } else {
94
+ resolvedButtonProps.role = 'button';
95
+ if (!focusableWhenDisabled && disabled) {
96
+ resolvedButtonProps['aria-disabled'] = disabled;
97
+ }
98
+ }
99
+ if (focusableWhenDisabled) {
100
+ return {
101
+ ...resolvedButtonProps,
102
+ ...focusableWhenDisabledProps
103
+ };
104
+ }
105
+ return resolvedButtonProps;
106
+ }, [disabled, focusableWhenDisabled, focusableWhenDisabledProps, hasFormAction, nativeButton, tabIndex, type]);
107
+ const getButtonProps = React.useCallback((externalProps = EMPTY) => {
108
+ const {
109
+ onClick: externalOnClick,
110
+ onKeyDown: externalOnKeyDown,
111
+ onKeyUp: externalOnKeyUp,
112
+ ...otherExternalProps
113
+ } = externalProps;
114
+ const handleClick = event => {
115
+ if (stopEventPropagation) {
116
+ event.stopPropagation();
117
+ }
118
+ if (disabled) {
119
+ event.preventDefault();
120
+ return;
121
+ }
122
+ externalOnClick?.(event);
123
+ };
124
+ const handleKeyDown = event => {
125
+ if (focusableWhenDisabled) {
126
+ focusableWhenDisabledProps.onKeyDown(event);
127
+ }
128
+ if (disabled) {
129
+ return;
130
+ }
131
+ onBeforeKeyDown?.(event);
132
+ externalOnKeyDown?.(event);
133
+ if (event.target !== event.currentTarget || hasNativeKeyboardActivation()) {
134
+ return;
135
+ }
136
+ if (event.key === ' ') {
137
+ event.preventDefault();
138
+ return;
139
+ }
140
+ if (event.key === 'Enter') {
141
+ event.preventDefault();
142
+ event.currentTarget.click();
143
+ }
144
+ };
145
+ const handleKeyUp = event => {
146
+ if (disabled) {
147
+ return;
148
+ }
149
+ onBeforeKeyUp?.(event);
150
+ externalOnKeyUp?.(event);
151
+ if (event.target === event.currentTarget && !hasNativeKeyboardActivation() && event.key === ' ' && !event.defaultPrevented) {
152
+ event.currentTarget.click();
153
+ }
154
+ };
155
+ return {
156
+ ...buttonProps,
157
+ ...otherExternalProps,
158
+ onClick: handleClick,
159
+ onKeyDown: handleKeyDown,
160
+ onKeyUp: handleKeyUp
161
+ };
162
+ }, [buttonProps, disabled, focusableWhenDisabled, focusableWhenDisabledProps, hasNativeKeyboardActivation, onBeforeKeyDown, onBeforeKeyUp, stopEventPropagation]);
163
+ return {
164
+ getButtonProps,
165
+ rootRef
166
+ };
167
+ }
@@ -78,11 +78,11 @@ export interface ButtonGroupTypeMap<AdditionalProps = {}, RootComponent extends
78
78
  *
79
79
  * Demos:
80
80
  *
81
- * - [Button Group](https://next.mui.com/material-ui/react-button-group/)
81
+ * - [Button Group](https://mui.com/material-ui/react-button-group/)
82
82
  *
83
83
  * API:
84
84
  *
85
- * - [ButtonGroup API](https://next.mui.com/material-ui/api/button-group/)
85
+ * - [ButtonGroup API](https://mui.com/material-ui/api/button-group/)
86
86
  */
87
87
  declare const ButtonGroup: OverridableComponent<ButtonGroupTypeMap>;
88
88
  export type ButtonGroupProps<RootComponent extends React.ElementType = ButtonGroupTypeMap['defaultComponent'], AdditionalProps = {}> = OverrideProps<ButtonGroupTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
@@ -78,11 +78,11 @@ export interface ButtonGroupTypeMap<AdditionalProps = {}, RootComponent extends
78
78
  *
79
79
  * Demos:
80
80
  *
81
- * - [Button Group](https://next.mui.com/material-ui/react-button-group/)
81
+ * - [Button Group](https://mui.com/material-ui/react-button-group/)
82
82
  *
83
83
  * API:
84
84
  *
85
- * - [ButtonGroup API](https://next.mui.com/material-ui/api/button-group/)
85
+ * - [ButtonGroup API](https://mui.com/material-ui/api/button-group/)
86
86
  */
87
87
  declare const ButtonGroup: OverridableComponent<ButtonGroupTypeMap>;
88
88
  export type ButtonGroupProps<RootComponent extends React.ElementType = ButtonGroupTypeMap['defaultComponent'], AdditionalProps = {}> = OverrideProps<ButtonGroupTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
package/CHANGELOG.md CHANGED
@@ -1,5 +1,81 @@
1
1
  # [Versions](https://mui.com/versions/)
2
2
 
3
+ ## 9.0.0
4
+
5
+ <!-- generated comparing v9.0.0-beta.1..master -->
6
+
7
+ _Apr 7, 2026_
8
+
9
+ A big thanks to the 7 contributors who made this release possible.
10
+
11
+ 🥳 We're excited to announce the stable release of Material UI v9! This major release focus on accessibility improvements, sx prop performance, and cleanup of deprecated APIs.
12
+
13
+ For more details, check out the [upgrade guide](https://mui.com/material-ui/migration/upgrade-to-v9/).
14
+
15
+ ### `@mui/material@9.0.0`
16
+
17
+ - [slider] Use pointer events instead of mouse events (#48164) @mj12albert
18
+ - [switch] Add border to make it visible in high contrast mode (#48180) @silviuaavram
19
+ - [transitions] Performance improvements & misc fixes (#48151) @mj12albert
20
+ - Remove unnecessary overridesResolvers from styled components (#48204) @sai6855
21
+
22
+ ### Core
23
+
24
+ - [code-infra] Setup workflow to publish internal packages (#47952) @brijeshb42
25
+ - [core-docs] Add `x-scheduler` to `MuiProductId` type (#48185) @rita-codes
26
+ - [docs-infra] Add scheduler to product switcher (#48208) @rita-codes
27
+ - [internal] Prepare libraries for v9 stable release (#48206) @siriwatknp
28
+
29
+ All contributors of this release in alphabetical order: @brijeshb42, @mj12albert, @noraleonte, @rita-codes, @sai6855, @silviuaavram, @siriwatknp
30
+
31
+ ## 9.0.0-beta.1
32
+
33
+ <!-- generated comparing v9.0.0-beta.0..master -->
34
+
35
+ _Apr 2, 2026_
36
+
37
+ A big thanks to the 11 contributors who made this release possible.
38
+
39
+ ### `@mui/material@9.0.0-beta.1`
40
+
41
+ #### Breaking Changes
42
+
43
+ - [grid] Remove 'column' and 'column-reverse' options from `direction` prop (#47564) @sai6855
44
+ - [icons] Remove legacy `*Outline` icons (#48116) @mj12albert
45
+ - [list-item-icon] Use theme spacing instead of hardcoded minWidth (#46597) @adiitxa
46
+
47
+ #### Changes
48
+
49
+ - [all components] Fix `slotProps.transition` types (#48153) @mj12albert
50
+ - [alert][dialog] Accessibility improvements (#48113) @silviuaavram
51
+ - [autocomplete] Fix helper text focusing input when clicked (#48156) @mj12albert
52
+ - [button-base] Add `nativeButton` prop (#47989) @mj12albert
53
+ - [input] Fix high contrast cutoff on first character (#48150) @silviuaavram
54
+ - [menu] Fix empty roving focus container (#48114) @mj12albert
55
+ - [utils] Explicitly register roving tab items with parent (#48122) @mj12albert
56
+
57
+ ### Docs
58
+
59
+ - Fix HTML validation errors (#48107) @Janpot
60
+ - Fix duplicate IDs and HTML validation issues (#48095) @Janpot
61
+ - Fix the dark mode footer row shadow for the Data Grid on the advanced components page (#48149) @arminmeh
62
+ - Improve jsdom section (#48098) @oliviertassinari
63
+ - Update "Deprecated APIs removed" section to h2 in "Upgrade to v9" docs (#48115) @ZeeshanTamboli
64
+ - [docs][progress] Label all demo components (#48143) @mj12albert
65
+ - [docs-infra] Add x-scheduler to component API URL resolver (#48097) @rita-codes
66
+ - [docs-infra] Resolve some redirects (#48165) @Janpot
67
+ - [docs-infra] Update v9 Search Index (#48028) @dav-is
68
+
69
+ ### Core
70
+
71
+ - [code-infra] Discover exports for bundle size report (#48170) @Janpot
72
+ - [internal] Fix use of ellipsis (#48096) @oliviertassinari
73
+ - [test] Add screenshot test for Virtualized Table (#47947) @mnajdova
74
+ - [test] Remove `componentsProp` from `describeConformance` tests (#48142) @ZeeshanTamboli
75
+ - [theme] Do not create channel tokens for custom colors when `nativeColor` is used (#47765) @ZeeshanTamboli
76
+
77
+ All contributors of this release in alphabetical order: @adiitxa, @arminmeh, @dav-is, @Janpot, @mj12albert, @mnajdova, @oliviertassinari, @rita-codes, @sai6855, @silviuaavram, @ZeeshanTamboli
78
+
3
79
  ## 9.0.0-beta.0
4
80
 
5
81
  <!-- generated comparing v9.0.0-alpha.4..master -->
package/Card/Card.d.mts CHANGED
@@ -32,12 +32,12 @@ export interface CardTypeMap<AdditionalProps = {}, RootComponent extends React.E
32
32
  *
33
33
  * Demos:
34
34
  *
35
- * - [Card](https://next.mui.com/material-ui/react-card/)
35
+ * - [Card](https://mui.com/material-ui/react-card/)
36
36
  *
37
37
  * API:
38
38
  *
39
- * - [Card API](https://next.mui.com/material-ui/api/card/)
40
- * - inherits [Paper API](https://next.mui.com/material-ui/api/paper/)
39
+ * - [Card API](https://mui.com/material-ui/api/card/)
40
+ * - inherits [Paper API](https://mui.com/material-ui/api/paper/)
41
41
  */
42
42
 
43
43
  declare const Card: OverridableComponent<CardTypeMap>;
package/Card/Card.d.ts CHANGED
@@ -32,12 +32,12 @@ export interface CardTypeMap<AdditionalProps = {}, RootComponent extends React.E
32
32
  *
33
33
  * Demos:
34
34
  *
35
- * - [Card](https://next.mui.com/material-ui/react-card/)
35
+ * - [Card](https://mui.com/material-ui/react-card/)
36
36
  *
37
37
  * API:
38
38
  *
39
- * - [Card API](https://next.mui.com/material-ui/api/card/)
40
- * - inherits [Paper API](https://next.mui.com/material-ui/api/paper/)
39
+ * - [Card API](https://mui.com/material-ui/api/card/)
40
+ * - inherits [Paper API](https://mui.com/material-ui/api/paper/)
41
41
  */
42
42
 
43
43
  declare const Card: OverridableComponent<CardTypeMap>;