@mui/material 7.3.8 → 7.3.10

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 (481) hide show
  1. package/Accordion/Accordion.d.ts +14 -14
  2. package/AccordionActions/AccordionActions.d.ts +5 -5
  3. package/AccordionDetails/AccordionDetails.d.ts +4 -4
  4. package/AccordionSummary/AccordionSummary.d.ts +6 -6
  5. package/Alert/Alert.d.ts +18 -18
  6. package/AlertTitle/AlertTitle.d.ts +5 -5
  7. package/AppBar/AppBar.d.ts +11 -11
  8. package/Autocomplete/Autocomplete.d.ts +56 -40
  9. package/Autocomplete/Autocomplete.js +48 -25
  10. package/Avatar/Avatar.d.ts +13 -13
  11. package/AvatarGroup/AvatarGroup.d.ts +13 -13
  12. package/Backdrop/Backdrop.d.ts +13 -13
  13. package/Badge/Badge.d.ts +20 -20
  14. package/Badge/useBadge.types.d.ts +3 -3
  15. package/BottomNavigation/BottomNavigation.d.ts +7 -7
  16. package/BottomNavigationAction/BottomNavigationAction.d.ts +7 -7
  17. package/Box/Box.d.ts +4 -3
  18. package/Breadcrumbs/Breadcrumbs.d.ts +14 -14
  19. package/Button/Button.d.ts +20 -19
  20. package/ButtonBase/ButtonBase.d.ts +17 -17
  21. package/ButtonBase/ButtonBase.js +8 -2
  22. package/ButtonBase/TouchRipple.d.ts +4 -4
  23. package/ButtonGroup/ButtonGroup.d.ts +14 -14
  24. package/ButtonGroup/ButtonGroupContext.d.ts +9 -9
  25. package/CHANGELOG.md +86 -0
  26. package/Card/Card.d.ts +7 -7
  27. package/CardActionArea/CardActionArea.d.ts +7 -7
  28. package/CardActions/CardActions.d.ts +5 -5
  29. package/CardContent/CardContent.d.ts +5 -5
  30. package/CardHeader/CardHeader.d.ts +10 -10
  31. package/CardHeader/CardHeader.js +1 -0
  32. package/CardMedia/CardMedia.d.ts +7 -7
  33. package/Checkbox/Checkbox.d.ts +16 -16
  34. package/Chip/Chip.d.ts +17 -17
  35. package/CircularProgress/CircularProgress.d.ts +11 -11
  36. package/ClickAwayListener/ClickAwayListener.d.ts +6 -6
  37. package/ClickAwayListener/ClickAwayListener.js +3 -3
  38. package/Collapse/Collapse.d.ts +17 -17
  39. package/Collapse/Collapse.js +6 -18
  40. package/Container/Container.d.ts +8 -8
  41. package/CssBaseline/CssBaseline.d.ts +3 -3
  42. package/Dialog/Dialog.d.ts +31 -24
  43. package/Dialog/Dialog.js +9 -1
  44. package/Dialog/DialogContext.d.ts +1 -1
  45. package/DialogActions/DialogActions.d.ts +5 -5
  46. package/DialogContent/DialogContent.d.ts +5 -5
  47. package/DialogContentText/DialogContentText.d.ts +6 -6
  48. package/DialogTitle/DialogTitle.d.ts +7 -7
  49. package/Divider/Divider.d.ts +13 -12
  50. package/Drawer/Drawer.d.ts +14 -14
  51. package/Fab/Fab.d.ts +13 -13
  52. package/Fade/Fade.d.ts +8 -8
  53. package/Fade/Fade.js +28 -32
  54. package/FilledInput/FilledInput.d.ts +7 -7
  55. package/FilledInput/FilledInput.js +1 -1
  56. package/FormControl/FormControl.d.ts +21 -21
  57. package/FormControlLabel/FormControlLabel.d.ts +16 -16
  58. package/FormGroup/FormGroup.d.ts +6 -6
  59. package/FormHelperText/FormHelperText.d.ts +13 -13
  60. package/FormLabel/FormLabel.d.ts +15 -15
  61. package/GlobalStyles/GlobalStyles.d.ts +2 -2
  62. package/Grid/Grid.d.ts +13 -13
  63. package/Grid/Grid.js +2 -2
  64. package/GridLegacy/GridLegacy.d.ts +19 -19
  65. package/Grow/Grow.d.ts +10 -10
  66. package/Grow/Grow.js +30 -38
  67. package/Icon/Icon.d.ts +9 -9
  68. package/IconButton/IconButton.d.ts +14 -14
  69. package/ImageList/ImageList.d.ts +9 -9
  70. package/ImageListItem/ImageListItem.d.ts +7 -7
  71. package/ImageListItemBar/ImageListItemBar.d.ts +6 -6
  72. package/InitColorSchemeScript/InitColorSchemeScript.d.ts +9 -9
  73. package/InitColorSchemeScript/InitColorSchemeScript.js +2 -2
  74. package/Input/Input.d.ts +6 -6
  75. package/Input/Input.js +1 -1
  76. package/InputAdornment/InputAdornment.d.ts +8 -8
  77. package/InputBase/InputBase.d.ts +57 -57
  78. package/InputLabel/InputLabel.d.ts +17 -17
  79. package/LinearProgress/LinearProgress.d.ts +8 -8
  80. package/Link/Link.d.ts +11 -11
  81. package/List/List.d.ts +9 -8
  82. package/List/ListContext.d.ts +1 -1
  83. package/ListItem/ListItem.d.ts +23 -23
  84. package/ListItemAvatar/ListItemAvatar.d.ts +4 -4
  85. package/ListItemButton/ListItemButton.d.ts +14 -13
  86. package/ListItemIcon/ListItemIcon.d.ts +5 -4
  87. package/ListItemSecondaryAction/ListItemSecondaryAction.d.ts +4 -4
  88. package/ListItemText/ListItemText.d.ts +14 -13
  89. package/ListItemText/ListItemText.js +1 -0
  90. package/ListSubheader/ListSubheader.d.ts +10 -9
  91. package/Menu/Menu.d.ts +15 -15
  92. package/MenuItem/MenuItem.d.ts +12 -12
  93. package/MenuItem/MenuItem.js +21 -1
  94. package/MenuList/MenuList.d.ts +10 -10
  95. package/MobileStepper/MobileStepper.d.ts +9 -9
  96. package/Modal/Modal.d.ts +38 -38
  97. package/Modal/ModalManager.d.ts +1 -1
  98. package/Modal/useModal.types.d.ts +13 -13
  99. package/NativeSelect/NativeSelect.d.ts +10 -10
  100. package/NativeSelect/NativeSelectInput.d.ts +5 -5
  101. package/NoSsr/NoSsr.d.ts +2 -2
  102. package/NoSsr/NoSsr.js +2 -2
  103. package/NoSsr/NoSsr.types.d.ts +1 -1
  104. package/OutlinedInput/NotchedOutline.d.ts +3 -3
  105. package/OutlinedInput/OutlinedInput.d.ts +9 -9
  106. package/OverridableComponent/index.d.ts +2 -2
  107. package/Pagination/Pagination.d.ts +10 -10
  108. package/PaginationItem/PaginationItem.d.ts +18 -18
  109. package/Paper/Paper.d.ts +10 -9
  110. package/PigmentContainer/PigmentContainer.d.ts +8 -8
  111. package/PigmentContainer/PigmentContainer.js +2 -2
  112. package/PigmentGrid/PigmentGrid.d.ts +10 -10
  113. package/PigmentGrid/PigmentGrid.js +2 -2
  114. package/PigmentStack/PigmentStack.d.ts +6 -6
  115. package/PigmentStack/PigmentStack.js +2 -2
  116. package/Popover/Popover.d.ts +22 -22
  117. package/Popover/Popover.js +6 -3
  118. package/Popper/BasePopper.js +6 -3
  119. package/Popper/BasePopper.types.d.ts +17 -17
  120. package/Popper/Popper.d.ts +9 -9
  121. package/Popper/Popper.js +4 -4
  122. package/Popper/index.d.ts +1 -0
  123. package/Popper/index.js +11 -2
  124. package/Portal/Portal.d.ts +2 -2
  125. package/Portal/Portal.js +2 -2
  126. package/Portal/Portal.types.d.ts +2 -2
  127. package/README.md +2 -2
  128. package/Radio/Radio.d.ts +8 -8
  129. package/RadioGroup/RadioGroup.d.ts +5 -5
  130. package/Rating/Rating.d.ts +18 -18
  131. package/ScopedCssBaseline/ScopedCssBaseline.d.ts +6 -6
  132. package/Select/Select.d.ts +26 -26
  133. package/Select/SelectInput.d.ts +24 -24
  134. package/Select/SelectInput.js +46 -47
  135. package/Select/index.d.ts +1 -0
  136. package/Select/index.js +12 -0
  137. package/Select/utils/SelectFocusSourceContext.d.ts +4 -0
  138. package/Select/utils/SelectFocusSourceContext.js +19 -0
  139. package/Select/utils/areEqualValues.d.ts +1 -0
  140. package/Select/utils/areEqualValues.js +14 -0
  141. package/Select/utils/getOpenInteractionType.d.ts +1 -0
  142. package/Select/utils/getOpenInteractionType.js +18 -0
  143. package/Select/utils/index.d.ts +4 -0
  144. package/Select/utils/index.js +40 -0
  145. package/Select/utils/isEmpty.d.ts +1 -0
  146. package/Select/utils/isEmpty.js +9 -0
  147. package/Skeleton/Skeleton.d.ts +9 -9
  148. package/Slide/Slide.d.ts +11 -11
  149. package/Slide/Slide.js +48 -44
  150. package/Slider/Slider.d.ts +72 -72
  151. package/Slider/SliderValueLabel.d.ts +1 -1
  152. package/Slider/SliderValueLabel.types.d.ts +5 -5
  153. package/Slider/useSlider.types.d.ts +26 -26
  154. package/Snackbar/Snackbar.d.ts +18 -18
  155. package/Snackbar/useSnackbar.types.d.ts +6 -6
  156. package/SnackbarContent/SnackbarContent.d.ts +6 -6
  157. package/SpeedDial/SpeedDial.d.ts +13 -13
  158. package/SpeedDialAction/SpeedDialAction.d.ts +14 -14
  159. package/SpeedDialIcon/SpeedDialIcon.d.ts +5 -5
  160. package/SpeedDialIcon/SpeedDialIcon.js +4 -10
  161. package/Stack/Stack.d.ts +7 -7
  162. package/Step/Step.d.ts +12 -12
  163. package/StepButton/StepButton.d.ts +6 -6
  164. package/StepConnector/StepConnector.d.ts +4 -4
  165. package/StepContent/StepContent.d.ts +9 -9
  166. package/StepIcon/StepIcon.d.ts +8 -8
  167. package/StepIcon/StepIcon.js +1 -4
  168. package/StepLabel/StepLabel.d.ts +9 -9
  169. package/StepLabel/StepLabel.js +1 -5
  170. package/Stepper/Stepper.d.ts +11 -11
  171. package/SvgIcon/SvgIcon.d.ts +13 -13
  172. package/SwipeableDrawer/SwipeableDrawer.d.ts +13 -13
  173. package/SwipeableDrawer/SwipeableDrawer.js +0 -3
  174. package/Switch/Switch.d.ts +9 -9
  175. package/Switch/Switch.js +4 -0
  176. package/Tab/Tab.d.ts +12 -12
  177. package/TabScrollButton/TabScrollButton.d.ts +11 -11
  178. package/Table/Table.d.ts +8 -8
  179. package/TableBody/TableBody.d.ts +5 -5
  180. package/TableCell/TableCell.d.ts +11 -11
  181. package/TableContainer/TableContainer.d.ts +5 -5
  182. package/TableFooter/TableFooter.d.ts +5 -5
  183. package/TableHead/TableHead.d.ts +5 -5
  184. package/TablePagination/TablePagination.d.ts +18 -18
  185. package/TablePaginationActions/TablePaginationActions.d.ts +25 -25
  186. package/TableRow/TableRow.d.ts +7 -7
  187. package/TableSortLabel/TableSortLabel.d.ts +12 -12
  188. package/Tabs/Tabs.d.ts +27 -27
  189. package/Tabs/Tabs.js +2 -1
  190. package/TextField/TextField.d.ts +45 -45
  191. package/TextareaAutosize/TextareaAutosize.d.ts +2 -2
  192. package/TextareaAutosize/TextareaAutosize.js +2 -2
  193. package/TextareaAutosize/TextareaAutosize.types.d.ts +3 -3
  194. package/ToggleButton/ToggleButton.d.ts +14 -14
  195. package/ToggleButtonGroup/ToggleButtonGroup.d.ts +11 -11
  196. package/ToggleButtonGroup/ToggleButtonGroupContext.d.ts +7 -7
  197. package/Toolbar/Toolbar.d.ts +7 -7
  198. package/Tooltip/Tooltip.d.ts +35 -35
  199. package/Tooltip/Tooltip.js +19 -2
  200. package/Typography/Typography.d.ts +14 -13
  201. package/Unstable_TrapFocus/FocusTrap.types.d.ts +7 -7
  202. package/Zoom/Zoom.d.ts +8 -8
  203. package/Zoom/Zoom.js +24 -30
  204. package/esm/Accordion/Accordion.d.ts +14 -14
  205. package/esm/AccordionActions/AccordionActions.d.ts +5 -5
  206. package/esm/AccordionDetails/AccordionDetails.d.ts +4 -4
  207. package/esm/AccordionSummary/AccordionSummary.d.ts +6 -6
  208. package/esm/Alert/Alert.d.ts +18 -18
  209. package/esm/AlertTitle/AlertTitle.d.ts +5 -5
  210. package/esm/AppBar/AppBar.d.ts +11 -11
  211. package/esm/Autocomplete/Autocomplete.d.ts +56 -40
  212. package/esm/Autocomplete/Autocomplete.js +48 -25
  213. package/esm/Avatar/Avatar.d.ts +13 -13
  214. package/esm/AvatarGroup/AvatarGroup.d.ts +13 -13
  215. package/esm/Backdrop/Backdrop.d.ts +13 -13
  216. package/esm/Badge/Badge.d.ts +20 -20
  217. package/esm/Badge/useBadge.types.d.ts +3 -3
  218. package/esm/BottomNavigation/BottomNavigation.d.ts +7 -7
  219. package/esm/BottomNavigationAction/BottomNavigationAction.d.ts +7 -7
  220. package/esm/Box/Box.d.ts +4 -3
  221. package/esm/Breadcrumbs/Breadcrumbs.d.ts +14 -14
  222. package/esm/Button/Button.d.ts +20 -19
  223. package/esm/ButtonBase/ButtonBase.d.ts +17 -17
  224. package/esm/ButtonBase/ButtonBase.js +8 -2
  225. package/esm/ButtonBase/TouchRipple.d.ts +4 -4
  226. package/esm/ButtonGroup/ButtonGroup.d.ts +14 -14
  227. package/esm/ButtonGroup/ButtonGroupContext.d.ts +9 -9
  228. package/esm/Card/Card.d.ts +7 -7
  229. package/esm/CardActionArea/CardActionArea.d.ts +7 -7
  230. package/esm/CardActions/CardActions.d.ts +5 -5
  231. package/esm/CardContent/CardContent.d.ts +5 -5
  232. package/esm/CardHeader/CardHeader.d.ts +10 -10
  233. package/esm/CardHeader/CardHeader.js +1 -0
  234. package/esm/CardMedia/CardMedia.d.ts +7 -7
  235. package/esm/Checkbox/Checkbox.d.ts +16 -16
  236. package/esm/Chip/Chip.d.ts +17 -17
  237. package/esm/CircularProgress/CircularProgress.d.ts +11 -11
  238. package/esm/ClickAwayListener/ClickAwayListener.d.ts +6 -6
  239. package/esm/ClickAwayListener/ClickAwayListener.js +3 -3
  240. package/esm/Collapse/Collapse.d.ts +17 -17
  241. package/esm/Collapse/Collapse.js +7 -19
  242. package/esm/Container/Container.d.ts +8 -8
  243. package/esm/CssBaseline/CssBaseline.d.ts +3 -3
  244. package/esm/Dialog/Dialog.d.ts +31 -24
  245. package/esm/Dialog/Dialog.js +9 -1
  246. package/esm/Dialog/DialogContext.d.ts +1 -1
  247. package/esm/DialogActions/DialogActions.d.ts +5 -5
  248. package/esm/DialogContent/DialogContent.d.ts +5 -5
  249. package/esm/DialogContentText/DialogContentText.d.ts +6 -6
  250. package/esm/DialogTitle/DialogTitle.d.ts +7 -7
  251. package/esm/Divider/Divider.d.ts +13 -12
  252. package/esm/Drawer/Drawer.d.ts +14 -14
  253. package/esm/Fab/Fab.d.ts +13 -13
  254. package/esm/Fade/Fade.d.ts +8 -8
  255. package/esm/Fade/Fade.js +29 -33
  256. package/esm/FilledInput/FilledInput.d.ts +7 -7
  257. package/esm/FilledInput/FilledInput.js +1 -1
  258. package/esm/FormControl/FormControl.d.ts +21 -21
  259. package/esm/FormControlLabel/FormControlLabel.d.ts +16 -16
  260. package/esm/FormGroup/FormGroup.d.ts +6 -6
  261. package/esm/FormHelperText/FormHelperText.d.ts +13 -13
  262. package/esm/FormLabel/FormLabel.d.ts +15 -15
  263. package/esm/GlobalStyles/GlobalStyles.d.ts +2 -2
  264. package/esm/Grid/Grid.d.ts +13 -13
  265. package/esm/Grid/Grid.js +2 -2
  266. package/esm/GridLegacy/GridLegacy.d.ts +19 -19
  267. package/esm/Grow/Grow.d.ts +10 -10
  268. package/esm/Grow/Grow.js +31 -39
  269. package/esm/Icon/Icon.d.ts +9 -9
  270. package/esm/IconButton/IconButton.d.ts +14 -14
  271. package/esm/ImageList/ImageList.d.ts +9 -9
  272. package/esm/ImageListItem/ImageListItem.d.ts +7 -7
  273. package/esm/ImageListItemBar/ImageListItemBar.d.ts +6 -6
  274. package/esm/InitColorSchemeScript/InitColorSchemeScript.d.ts +9 -9
  275. package/esm/InitColorSchemeScript/InitColorSchemeScript.js +2 -2
  276. package/esm/Input/Input.d.ts +6 -6
  277. package/esm/Input/Input.js +1 -1
  278. package/esm/InputAdornment/InputAdornment.d.ts +8 -8
  279. package/esm/InputBase/InputBase.d.ts +57 -57
  280. package/esm/InputLabel/InputLabel.d.ts +17 -17
  281. package/esm/LinearProgress/LinearProgress.d.ts +8 -8
  282. package/esm/Link/Link.d.ts +11 -11
  283. package/esm/List/List.d.ts +9 -8
  284. package/esm/List/ListContext.d.ts +1 -1
  285. package/esm/ListItem/ListItem.d.ts +23 -23
  286. package/esm/ListItemAvatar/ListItemAvatar.d.ts +4 -4
  287. package/esm/ListItemButton/ListItemButton.d.ts +14 -13
  288. package/esm/ListItemIcon/ListItemIcon.d.ts +5 -4
  289. package/esm/ListItemSecondaryAction/ListItemSecondaryAction.d.ts +4 -4
  290. package/esm/ListItemText/ListItemText.d.ts +14 -13
  291. package/esm/ListItemText/ListItemText.js +1 -0
  292. package/esm/ListSubheader/ListSubheader.d.ts +10 -9
  293. package/esm/Menu/Menu.d.ts +15 -15
  294. package/esm/MenuItem/MenuItem.d.ts +12 -12
  295. package/esm/MenuItem/MenuItem.js +23 -1
  296. package/esm/MenuList/MenuList.d.ts +10 -10
  297. package/esm/MobileStepper/MobileStepper.d.ts +9 -9
  298. package/esm/Modal/Modal.d.ts +38 -38
  299. package/esm/Modal/ModalManager.d.ts +1 -1
  300. package/esm/Modal/useModal.types.d.ts +13 -13
  301. package/esm/NativeSelect/NativeSelect.d.ts +10 -10
  302. package/esm/NativeSelect/NativeSelectInput.d.ts +5 -5
  303. package/esm/NoSsr/NoSsr.d.ts +2 -2
  304. package/esm/NoSsr/NoSsr.js +2 -2
  305. package/esm/NoSsr/NoSsr.types.d.ts +1 -1
  306. package/esm/OutlinedInput/NotchedOutline.d.ts +3 -3
  307. package/esm/OutlinedInput/OutlinedInput.d.ts +9 -9
  308. package/esm/OverridableComponent/index.d.ts +2 -2
  309. package/esm/Pagination/Pagination.d.ts +10 -10
  310. package/esm/PaginationItem/PaginationItem.d.ts +18 -18
  311. package/esm/Paper/Paper.d.ts +10 -9
  312. package/esm/PigmentContainer/PigmentContainer.d.ts +8 -8
  313. package/esm/PigmentContainer/PigmentContainer.js +2 -2
  314. package/esm/PigmentGrid/PigmentGrid.d.ts +10 -10
  315. package/esm/PigmentGrid/PigmentGrid.js +2 -2
  316. package/esm/PigmentStack/PigmentStack.d.ts +6 -6
  317. package/esm/PigmentStack/PigmentStack.js +2 -2
  318. package/esm/Popover/Popover.d.ts +22 -22
  319. package/esm/Popover/Popover.js +6 -3
  320. package/esm/Popper/BasePopper.js +6 -3
  321. package/esm/Popper/BasePopper.types.d.ts +17 -17
  322. package/esm/Popper/Popper.d.ts +9 -9
  323. package/esm/Popper/Popper.js +4 -4
  324. package/esm/Popper/index.d.ts +1 -0
  325. package/esm/Popper/index.js +1 -0
  326. package/esm/Portal/Portal.d.ts +2 -2
  327. package/esm/Portal/Portal.js +2 -2
  328. package/esm/Portal/Portal.types.d.ts +2 -2
  329. package/esm/Radio/Radio.d.ts +8 -8
  330. package/esm/RadioGroup/RadioGroup.d.ts +5 -5
  331. package/esm/Rating/Rating.d.ts +18 -18
  332. package/esm/ScopedCssBaseline/ScopedCssBaseline.d.ts +6 -6
  333. package/esm/Select/Select.d.ts +26 -26
  334. package/esm/Select/SelectInput.d.ts +24 -24
  335. package/esm/Select/SelectInput.js +43 -44
  336. package/esm/Select/index.d.ts +1 -0
  337. package/esm/Select/index.js +1 -0
  338. package/esm/Select/utils/SelectFocusSourceContext.d.ts +4 -0
  339. package/esm/Select/utils/SelectFocusSourceContext.js +13 -0
  340. package/esm/Select/utils/areEqualValues.d.ts +1 -0
  341. package/esm/Select/utils/areEqualValues.js +8 -0
  342. package/esm/Select/utils/getOpenInteractionType.d.ts +1 -0
  343. package/esm/Select/utils/getOpenInteractionType.js +12 -0
  344. package/esm/Select/utils/index.d.ts +4 -0
  345. package/esm/Select/utils/index.js +4 -0
  346. package/esm/Select/utils/isEmpty.d.ts +1 -0
  347. package/esm/Select/utils/isEmpty.js +3 -0
  348. package/esm/Skeleton/Skeleton.d.ts +9 -9
  349. package/esm/Slide/Slide.d.ts +11 -11
  350. package/esm/Slide/Slide.js +49 -46
  351. package/esm/Slider/Slider.d.ts +72 -72
  352. package/esm/Slider/SliderValueLabel.d.ts +1 -1
  353. package/esm/Slider/SliderValueLabel.types.d.ts +5 -5
  354. package/esm/Slider/useSlider.types.d.ts +26 -26
  355. package/esm/Snackbar/Snackbar.d.ts +18 -18
  356. package/esm/Snackbar/useSnackbar.types.d.ts +6 -6
  357. package/esm/SnackbarContent/SnackbarContent.d.ts +6 -6
  358. package/esm/SpeedDial/SpeedDial.d.ts +13 -13
  359. package/esm/SpeedDialAction/SpeedDialAction.d.ts +14 -14
  360. package/esm/SpeedDialIcon/SpeedDialIcon.d.ts +5 -5
  361. package/esm/SpeedDialIcon/SpeedDialIcon.js +4 -10
  362. package/esm/Stack/Stack.d.ts +7 -7
  363. package/esm/Step/Step.d.ts +12 -12
  364. package/esm/StepButton/StepButton.d.ts +6 -6
  365. package/esm/StepConnector/StepConnector.d.ts +4 -4
  366. package/esm/StepContent/StepContent.d.ts +9 -9
  367. package/esm/StepIcon/StepIcon.d.ts +8 -8
  368. package/esm/StepIcon/StepIcon.js +1 -4
  369. package/esm/StepLabel/StepLabel.d.ts +9 -9
  370. package/esm/StepLabel/StepLabel.js +1 -5
  371. package/esm/Stepper/Stepper.d.ts +11 -11
  372. package/esm/SvgIcon/SvgIcon.d.ts +13 -13
  373. package/esm/SwipeableDrawer/SwipeableDrawer.d.ts +13 -13
  374. package/esm/SwipeableDrawer/SwipeableDrawer.js +0 -3
  375. package/esm/Switch/Switch.d.ts +9 -9
  376. package/esm/Switch/Switch.js +4 -0
  377. package/esm/Tab/Tab.d.ts +12 -12
  378. package/esm/TabScrollButton/TabScrollButton.d.ts +11 -11
  379. package/esm/Table/Table.d.ts +8 -8
  380. package/esm/TableBody/TableBody.d.ts +5 -5
  381. package/esm/TableCell/TableCell.d.ts +11 -11
  382. package/esm/TableContainer/TableContainer.d.ts +5 -5
  383. package/esm/TableFooter/TableFooter.d.ts +5 -5
  384. package/esm/TableHead/TableHead.d.ts +5 -5
  385. package/esm/TablePagination/TablePagination.d.ts +18 -18
  386. package/esm/TablePaginationActions/TablePaginationActions.d.ts +25 -25
  387. package/esm/TableRow/TableRow.d.ts +7 -7
  388. package/esm/TableSortLabel/TableSortLabel.d.ts +12 -12
  389. package/esm/Tabs/Tabs.d.ts +27 -27
  390. package/esm/Tabs/Tabs.js +2 -1
  391. package/esm/TextField/TextField.d.ts +45 -45
  392. package/esm/TextareaAutosize/TextareaAutosize.d.ts +2 -2
  393. package/esm/TextareaAutosize/TextareaAutosize.js +2 -2
  394. package/esm/TextareaAutosize/TextareaAutosize.types.d.ts +3 -3
  395. package/esm/ToggleButton/ToggleButton.d.ts +14 -14
  396. package/esm/ToggleButtonGroup/ToggleButtonGroup.d.ts +11 -11
  397. package/esm/ToggleButtonGroup/ToggleButtonGroupContext.d.ts +7 -7
  398. package/esm/Toolbar/Toolbar.d.ts +7 -7
  399. package/esm/Tooltip/Tooltip.d.ts +35 -35
  400. package/esm/Tooltip/Tooltip.js +19 -2
  401. package/esm/Typography/Typography.d.ts +14 -13
  402. package/esm/Unstable_TrapFocus/FocusTrap.types.d.ts +7 -7
  403. package/esm/Zoom/Zoom.d.ts +8 -8
  404. package/esm/Zoom/Zoom.js +25 -31
  405. package/esm/index.js +1 -1
  406. package/esm/internal/SwitchBase.d.ts +17 -17
  407. package/esm/internal/index.d.ts +5 -5
  408. package/esm/locale/utils/LocaleTextApi.d.ts +7 -7
  409. package/esm/styles/ThemeProvider.d.ts +12 -12
  410. package/esm/styles/ThemeProviderWithVars.d.ts +13 -13
  411. package/esm/styles/adaptV4Theme.d.ts +14 -14
  412. package/esm/styles/components.d.ts +476 -476
  413. package/esm/styles/createColorScheme.d.ts +1 -1
  414. package/esm/styles/createGetSelector.d.ts +5 -5
  415. package/esm/styles/createMixins.d.ts +2 -2
  416. package/esm/styles/createPalette.d.ts +23 -23
  417. package/esm/styles/createTheme.d.ts +2 -2
  418. package/esm/styles/createThemeFoundation.d.ts +30 -30
  419. package/esm/styles/createThemeNoVars.d.ts +14 -14
  420. package/esm/styles/createThemeNoVars.js +1 -1
  421. package/esm/styles/createThemeWithVars.d.ts +9 -9
  422. package/esm/styles/createThemeWithVars.js +69 -69
  423. package/esm/styles/createTransitions.d.ts +5 -5
  424. package/esm/styles/createTypography.d.ts +1 -1
  425. package/esm/styles/cssUtils.d.ts +3 -3
  426. package/esm/styles/index.d.ts +6 -6
  427. package/esm/styles/overrides.d.ts +1 -1
  428. package/esm/styles/responsiveFontSizes.d.ts +4 -4
  429. package/esm/styles/useThemeProps.d.ts +1 -1
  430. package/esm/transitions/transition.d.ts +2 -2
  431. package/esm/transitions/utils.d.ts +11 -4
  432. package/esm/transitions/utils.js +25 -0
  433. package/esm/types/OverridableComponentAugmentation.d.ts +2 -2
  434. package/esm/useAutocomplete/useAutocomplete.d.ts +45 -45
  435. package/esm/useAutocomplete/useAutocomplete.js +58 -3
  436. package/esm/usePagination/usePagination.d.ts +12 -12
  437. package/esm/useScrollTrigger/useScrollTrigger.d.ts +3 -3
  438. package/esm/utils/isLayoutSupported.d.ts +1 -0
  439. package/esm/utils/isLayoutSupported.js +6 -0
  440. package/esm/utils/types.d.ts +4 -4
  441. package/esm/utils/useSlot.d.ts +12 -12
  442. package/esm/version/index.js +2 -2
  443. package/index.js +1 -1
  444. package/internal/SwitchBase.d.ts +17 -17
  445. package/internal/index.d.ts +5 -5
  446. package/locale/utils/LocaleTextApi.d.ts +7 -7
  447. package/package.json +6 -6
  448. package/styles/ThemeProvider.d.ts +12 -12
  449. package/styles/ThemeProviderWithVars.d.ts +13 -13
  450. package/styles/adaptV4Theme.d.ts +14 -14
  451. package/styles/components.d.ts +476 -476
  452. package/styles/createColorScheme.d.ts +1 -1
  453. package/styles/createGetSelector.d.ts +5 -5
  454. package/styles/createMixins.d.ts +2 -2
  455. package/styles/createPalette.d.ts +23 -23
  456. package/styles/createTheme.d.ts +2 -2
  457. package/styles/createThemeFoundation.d.ts +30 -30
  458. package/styles/createThemeNoVars.d.ts +14 -14
  459. package/styles/createThemeNoVars.js +1 -1
  460. package/styles/createThemeWithVars.d.ts +9 -9
  461. package/styles/createThemeWithVars.js +69 -69
  462. package/styles/createTransitions.d.ts +5 -5
  463. package/styles/createTypography.d.ts +1 -1
  464. package/styles/cssUtils.d.ts +3 -3
  465. package/styles/index.d.ts +6 -6
  466. package/styles/overrides.d.ts +1 -1
  467. package/styles/responsiveFontSizes.d.ts +4 -4
  468. package/styles/useThemeProps.d.ts +1 -1
  469. package/transitions/transition.d.ts +2 -2
  470. package/transitions/utils.d.ts +11 -4
  471. package/transitions/utils.js +27 -0
  472. package/types/OverridableComponentAugmentation.d.ts +2 -2
  473. package/useAutocomplete/useAutocomplete.d.ts +45 -45
  474. package/useAutocomplete/useAutocomplete.js +58 -3
  475. package/usePagination/usePagination.d.ts +12 -12
  476. package/useScrollTrigger/useScrollTrigger.d.ts +3 -3
  477. package/utils/isLayoutSupported.d.ts +1 -0
  478. package/utils/isLayoutSupported.js +12 -0
  479. package/utils/types.d.ts +4 -4
  480. package/utils/useSlot.d.ts +12 -12
  481. package/version/index.js +2 -2
@@ -1,7 +1,7 @@
1
1
  import { Theme } from "./createTheme.js";
2
2
  import { Components } from "./components.js";
3
3
  export interface ThemeWithProps {
4
- components?: Components<Omit<Theme, 'components'>>;
4
+ components?: Components<Omit<Theme, 'components'>> | undefined;
5
5
  }
6
6
  export type ThemedProps<Theme, Name extends keyof any> = Theme extends {
7
7
  components: Record<Name, {
@@ -4,8 +4,8 @@ export type TransitionHandlerKeys = 'onEnter' | 'onEntering' | 'onEntered' | 'on
4
4
  export type TransitionHandlerProps = Pick<_TransitionProps, TransitionHandlerKeys>;
5
5
  export interface EasingProps {
6
6
  easing: string | {
7
- enter?: string;
8
- exit?: string;
7
+ enter?: string | undefined;
8
+ exit?: string | undefined;
9
9
  };
10
10
  }
11
11
  export type TransitionKeys = 'in' | 'mountOnEnter' | 'unmountOnExit' | 'timeout' | 'easing' | 'addEndListener' | TransitionHandlerKeys;
@@ -2,13 +2,13 @@ import * as React from 'react';
2
2
  export declare const reflow: (node: Element) => number;
3
3
  interface ComponentProps {
4
4
  easing: string | {
5
- enter?: string;
6
- exit?: string;
5
+ enter?: string | undefined;
6
+ exit?: string | undefined;
7
7
  } | undefined;
8
8
  style: React.CSSProperties | undefined;
9
9
  timeout: number | {
10
- enter?: number;
11
- exit?: number;
10
+ enter?: number | undefined;
11
+ exit?: number | undefined;
12
12
  };
13
13
  }
14
14
  interface Options {
@@ -19,5 +19,12 @@ interface TransitionProps {
19
19
  easing: string | undefined;
20
20
  delay: string | undefined;
21
21
  }
22
+ export declare function normalizedTransitionCallback(nodeRef: React.RefObject<HTMLElement | null>, callback: ((node: HTMLElement, isAppearing?: boolean) => void) | undefined): (maybeIsAppearing?: boolean) => void;
23
+ type TransitionState = 'entering' | 'entered' | 'exiting' | 'exited';
24
+ /**
25
+ * Computes the child style for a transition component, reusing existing
26
+ * references when possible to preserve referential equality for React.memo.
27
+ */
28
+ export declare function getTransitionChildStyle(state: TransitionState, inProp: boolean | undefined, baseStyles: Record<string, React.CSSProperties>, hiddenStyles: React.CSSProperties, styleProp: React.CSSProperties | undefined, childStyle: React.CSSProperties | undefined): React.CSSProperties | undefined;
22
29
  export declare function getTransitionProps(props: ComponentProps, options: Options): TransitionProps;
23
30
  export {};
@@ -3,10 +3,37 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.getTransitionChildStyle = getTransitionChildStyle;
6
7
  exports.getTransitionProps = getTransitionProps;
8
+ exports.normalizedTransitionCallback = normalizedTransitionCallback;
7
9
  exports.reflow = void 0;
8
10
  const reflow = node => node.scrollTop;
9
11
  exports.reflow = reflow;
12
+ function normalizedTransitionCallback(nodeRef, callback) {
13
+ return maybeIsAppearing => {
14
+ if (callback) {
15
+ const node = nodeRef.current;
16
+ // onEnterXxx and onExitXxx callbacks have a different arguments.length value.
17
+ if (maybeIsAppearing === undefined) {
18
+ callback(node);
19
+ } else {
20
+ callback(node, maybeIsAppearing);
21
+ }
22
+ }
23
+ };
24
+ }
25
+ /**
26
+ * Computes the child style for a transition component, reusing existing
27
+ * references when possible to preserve referential equality for React.memo.
28
+ */
29
+ function getTransitionChildStyle(state, inProp, baseStyles, hiddenStyles, styleProp, childStyle) {
30
+ const base = state === 'exited' && !inProp ? hiddenStyles : baseStyles[state] || baseStyles.exited;
31
+ return styleProp || childStyle ? {
32
+ ...base,
33
+ ...styleProp,
34
+ ...childStyle
35
+ } : base;
36
+ }
10
37
  function getTransitionProps(props, options) {
11
38
  const {
12
39
  timeout,
@@ -20,12 +20,12 @@ declare module '@mui/material/OverridableComponent' {
20
20
  * Props of the component if `component={Component}` is used.
21
21
  */
22
22
  type OverridePropsVer2<TypeMap extends OverridableTypeMap, RootComponent extends React.ElementType> = (BaseProps<TypeMap> & DistributiveOmit<React.ComponentPropsWithoutRef<RootComponent>, keyof BaseProps<TypeMap>> & {
23
- ref?: React.Ref<Element>;
23
+ ref?: (React.Ref<Element>) | undefined;
24
24
  });
25
25
  /**
26
26
  * Props if `component={Component}` is NOT used.
27
27
  */
28
28
  type DefaultComponentPropsVer2<TypeMap extends OverridableTypeMap> = BaseProps<TypeMap> & DistributiveOmit<React.ComponentPropsWithoutRef<TypeMap['defaultComponent']>, keyof BaseProps<TypeMap>> & {
29
- ref?: React.Ref<Element>;
29
+ ref?: (React.Ref<Element>) | undefined;
30
30
  };
31
31
  }
@@ -1,12 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import { PartiallyRequired } from '@mui/types';
3
3
  export interface CreateFilterOptionsConfig<Value> {
4
- ignoreAccents?: boolean;
5
- ignoreCase?: boolean;
6
- limit?: number;
7
- matchFrom?: 'any' | 'start';
8
- stringify?: (option: Value) => string;
9
- trim?: boolean;
4
+ ignoreAccents?: boolean | undefined;
5
+ ignoreCase?: boolean | undefined;
6
+ limit?: number | undefined;
7
+ matchFrom?: 'any' | 'start' | undefined;
8
+ stringify?: ((option: Value) => string) | undefined;
9
+ trim?: boolean | undefined;
10
10
  }
11
11
  export interface FilterOptionsState<Value> {
12
12
  inputValue: string;
@@ -26,25 +26,25 @@ export interface UseAutocompleteProps<Value, Multiple extends boolean | undefine
26
26
  * @internal The prefix of the state class name, temporary for Joy UI
27
27
  * @default 'Mui'
28
28
  */
29
- unstable_classNamePrefix?: string;
29
+ unstable_classNamePrefix?: string | undefined;
30
30
  /**
31
31
  * @internal
32
32
  * Temporary for Joy UI because the parent listbox is the document object
33
33
  * TODO v6: Normalize the logic and remove this param.
34
34
  */
35
- unstable_isActiveElementInListbox?: (listbox: React.RefObject<HTMLElement | null>) => boolean;
35
+ unstable_isActiveElementInListbox?: ((listbox: React.RefObject<HTMLElement | null>) => boolean) | undefined;
36
36
  /**
37
37
  * If `true`, the portion of the selected suggestion that the user hasn't typed,
38
38
  * known as the completion string, appears inline after the input cursor in the textbox.
39
39
  * The inline completion string is visually highlighted and has a selected state.
40
40
  * @default false
41
41
  */
42
- autoComplete?: boolean;
42
+ autoComplete?: boolean | undefined;
43
43
  /**
44
44
  * If `true`, the first option is automatically highlighted.
45
45
  * @default false
46
46
  */
47
- autoHighlight?: boolean;
47
+ autoHighlight?: boolean | undefined;
48
48
  /**
49
49
  * If `true`, the selected option becomes the value of the input
50
50
  * when the Autocomplete loses focus unless the user chooses
@@ -54,7 +54,7 @@ export interface UseAutocompleteProps<Value, Multiple extends boolean | undefine
54
54
  * if the Autocomplete loses focus without highlighting an option.
55
55
  * @default false
56
56
  */
57
- autoSelect?: boolean;
57
+ autoSelect?: boolean | undefined;
58
58
  /**
59
59
  * Control if the input should be blurred when an option is selected:
60
60
  *
@@ -64,7 +64,7 @@ export interface UseAutocompleteProps<Value, Multiple extends boolean | undefine
64
64
  * - `mouse` the input is blurred after a mouse event.
65
65
  * @default false
66
66
  */
67
- blurOnSelect?: 'touch' | 'mouse' | true | false;
67
+ blurOnSelect?: 'touch' | 'mouse' | true | false | undefined;
68
68
  /**
69
69
  * If `true`, the input's text is cleared on blur if no value is selected.
70
70
  *
@@ -72,46 +72,46 @@ export interface UseAutocompleteProps<Value, Multiple extends boolean | undefine
72
72
  * Set it to `false` if you want to help the user resume their search.
73
73
  * @default !props.freeSolo
74
74
  */
75
- clearOnBlur?: boolean;
75
+ clearOnBlur?: boolean | undefined;
76
76
  /**
77
77
  * If `true`, clear all values when the user presses escape and the popup is closed.
78
78
  * @default false
79
79
  */
80
- clearOnEscape?: boolean;
80
+ clearOnEscape?: boolean | undefined;
81
81
  /**
82
82
  * The component name that is using this hook. Used for warnings.
83
83
  */
84
- componentName?: string;
84
+ componentName?: string | undefined;
85
85
  /**
86
86
  * The default value. Use when the component is not controlled.
87
87
  * @default props.multiple ? [] : null
88
88
  */
89
- defaultValue?: AutocompleteValue<Value, Multiple, DisableClearable, FreeSolo>;
89
+ defaultValue?: AutocompleteValue<Value, Multiple, DisableClearable, FreeSolo> | undefined;
90
90
  /**
91
91
  * If `true`, the input can't be cleared.
92
92
  * @default false
93
93
  */
94
- disableClearable?: DisableClearable;
94
+ disableClearable?: DisableClearable | undefined;
95
95
  /**
96
96
  * If `true`, the popup won't close when a value is selected.
97
97
  * @default false
98
98
  */
99
- disableCloseOnSelect?: boolean;
99
+ disableCloseOnSelect?: boolean | undefined;
100
100
  /**
101
101
  * If `true`, the component is disabled.
102
102
  * @default false
103
103
  */
104
- disabled?: boolean;
104
+ disabled?: boolean | undefined;
105
105
  /**
106
106
  * If `true`, will allow focus on disabled items.
107
107
  * @default false
108
108
  */
109
- disabledItemsFocusable?: boolean;
109
+ disabledItemsFocusable?: boolean | undefined;
110
110
  /**
111
111
  * If `true`, the list box in the popup will not wrap focus.
112
112
  * @default false
113
113
  */
114
- disableListWrap?: boolean;
114
+ disableListWrap?: boolean | undefined;
115
115
  /**
116
116
  * A function that determines the filtered options to be rendered on search.
117
117
  *
@@ -120,17 +120,17 @@ export interface UseAutocompleteProps<Value, Multiple extends boolean | undefine
120
120
  * @param {object} state The state of the component.
121
121
  * @returns {Value[]}
122
122
  */
123
- filterOptions?: (options: Value[], state: FilterOptionsState<Value>) => Value[];
123
+ filterOptions?: ((options: Value[], state: FilterOptionsState<Value>) => Value[]) | undefined;
124
124
  /**
125
125
  * If `true`, hide the selected options from the list box.
126
126
  * @default false
127
127
  */
128
- filterSelectedOptions?: boolean;
128
+ filterSelectedOptions?: boolean | undefined;
129
129
  /**
130
130
  * If `true`, the Autocomplete is free solo, meaning that the user input is not bound to provided options.
131
131
  * @default false
132
132
  */
133
- freeSolo?: FreeSolo;
133
+ freeSolo?: FreeSolo | undefined;
134
134
  /**
135
135
  * Used to determine the disabled state for a given option.
136
136
  *
@@ -138,7 +138,7 @@ export interface UseAutocompleteProps<Value, Multiple extends boolean | undefine
138
138
  * @template Value The option shape. Will be the same shape as an item of the options.
139
139
  * @returns {boolean}
140
140
  */
141
- getOptionDisabled?: (option: Value) => boolean;
141
+ getOptionDisabled?: ((option: Value) => boolean) | undefined;
142
142
  /**
143
143
  * Used to determine the key for a given option.
144
144
  * This can be useful when the labels of options are not unique (since labels are used as keys by default).
@@ -146,7 +146,7 @@ export interface UseAutocompleteProps<Value, Multiple extends boolean | undefine
146
146
  * @param {Value} option The option to get the key for.
147
147
  * @returns {string | number}
148
148
  */
149
- getOptionKey?: (option: Value | AutocompleteFreeSoloValueMapping<FreeSolo>) => string | number;
149
+ getOptionKey?: ((option: Value | AutocompleteFreeSoloValueMapping<FreeSolo>) => string | number) | undefined;
150
150
  /**
151
151
  * Used to determine the string value for a given option.
152
152
  * It's used to fill the input (and the list box options if `renderOption` is not provided).
@@ -157,7 +157,7 @@ export interface UseAutocompleteProps<Value, Multiple extends boolean | undefine
157
157
  * @returns {string}
158
158
  * @default (option) => option.label ?? option
159
159
  */
160
- getOptionLabel?: (option: Value | AutocompleteFreeSoloValueMapping<FreeSolo>) => string;
160
+ getOptionLabel?: ((option: Value | AutocompleteFreeSoloValueMapping<FreeSolo>) => string) | undefined;
161
161
  /**
162
162
  * If provided, the options will be grouped under the returned string.
163
163
  * The groupBy value is also used as the text for group headings when `renderGroup` is not provided.
@@ -165,28 +165,28 @@ export interface UseAutocompleteProps<Value, Multiple extends boolean | undefine
165
165
  * @param {Value} option The Autocomplete option.
166
166
  * @returns {string}
167
167
  */
168
- groupBy?: (option: Value) => string;
168
+ groupBy?: ((option: Value) => string) | undefined;
169
169
 
170
170
  /**
171
171
  * If `true`, the component handles the "Home" and "End" keys when the popup is open.
172
172
  * It should move focus to the first option and last option, respectively.
173
173
  * @default !props.freeSolo
174
174
  */
175
- handleHomeEndKeys?: boolean;
175
+ handleHomeEndKeys?: boolean | undefined;
176
176
  /**
177
177
  * This prop is used to help implement the accessibility logic.
178
178
  * If you don't provide an id it will fall back to a randomly generated one.
179
179
  */
180
- id?: string;
180
+ id?: string | undefined;
181
181
  /**
182
182
  * If `true`, the highlight can move to the input.
183
183
  * @default false
184
184
  */
185
- includeInputInList?: boolean;
185
+ includeInputInList?: boolean | undefined;
186
186
  /**
187
187
  * The input value.
188
188
  */
189
- inputValue?: string;
189
+ inputValue?: string | undefined;
190
190
  /**
191
191
  * Used to determine if the option represents the given value.
192
192
  * Uses strict equality by default.
@@ -196,12 +196,12 @@ export interface UseAutocompleteProps<Value, Multiple extends boolean | undefine
196
196
  * @param {Value} value The value to test against.
197
197
  * @returns {boolean}
198
198
  */
199
- isOptionEqualToValue?: (option: Value, value: Value) => boolean;
199
+ isOptionEqualToValue?: ((option: Value, value: Value) => boolean) | undefined;
200
200
  /**
201
201
  * If `true`, `value` must be an array and the menu will support multiple selections.
202
202
  * @default false
203
203
  */
204
- multiple?: Multiple;
204
+ multiple?: Multiple | undefined;
205
205
  /**
206
206
  * Callback fired when the value changes.
207
207
  *
@@ -210,7 +210,7 @@ export interface UseAutocompleteProps<Value, Multiple extends boolean | undefine
210
210
  * @param {string} reason One of "createOption", "selectOption", "removeOption", "blur" or "clear".
211
211
  * @param {string} [details]
212
212
  */
213
- onChange?: (event: React.SyntheticEvent, value: AutocompleteValue<Value, Multiple, DisableClearable, FreeSolo>, reason: AutocompleteChangeReason, details?: AutocompleteChangeDetails<Value>) => void;
213
+ onChange?: ((event: React.SyntheticEvent, value: AutocompleteValue<Value, Multiple, DisableClearable, FreeSolo>, reason: AutocompleteChangeReason, details?: AutocompleteChangeDetails<Value>) => void) | undefined;
214
214
  /**
215
215
  * Callback fired when the popup requests to be closed.
216
216
  * Use in controlled mode (see open).
@@ -218,7 +218,7 @@ export interface UseAutocompleteProps<Value, Multiple extends boolean | undefine
218
218
  * @param {React.SyntheticEvent} event The event source of the callback.
219
219
  * @param {string} reason Can be: `"toggleInput"`, `"escape"`, `"selectOption"`, `"removeOption"`, `"blur"`.
220
220
  */
221
- onClose?: (event: React.SyntheticEvent, reason: AutocompleteCloseReason) => void;
221
+ onClose?: ((event: React.SyntheticEvent, reason: AutocompleteCloseReason) => void) | undefined;
222
222
  /**
223
223
  * Callback fired when the highlight option changes.
224
224
  *
@@ -226,7 +226,7 @@ export interface UseAutocompleteProps<Value, Multiple extends boolean | undefine
226
226
  * @param {Value} option The highlighted option.
227
227
  * @param {string} reason Can be: `"keyboard"`, `"mouse"`, `"touch"`.
228
228
  */
229
- onHighlightChange?: (event: React.SyntheticEvent, option: Value | null, reason: AutocompleteHighlightChangeReason) => void;
229
+ onHighlightChange?: ((event: React.SyntheticEvent, option: Value | null, reason: AutocompleteHighlightChangeReason) => void) | undefined;
230
230
  /**
231
231
  * Callback fired when the input value changes.
232
232
  *
@@ -234,23 +234,23 @@ export interface UseAutocompleteProps<Value, Multiple extends boolean | undefine
234
234
  * @param {string} value The new value of the text input.
235
235
  * @param {string} reason Can be: `"input"` (user input), `"reset"` (programmatic change), `"clear"`, `"blur"`, `"selectOption"`, `"removeOption"`
236
236
  */
237
- onInputChange?: (event: React.SyntheticEvent, value: string, reason: AutocompleteInputChangeReason) => void;
237
+ onInputChange?: ((event: React.SyntheticEvent, value: string, reason: AutocompleteInputChangeReason) => void) | undefined;
238
238
  /**
239
239
  * Callback fired when the popup requests to be opened.
240
240
  * Use in controlled mode (see open).
241
241
  *
242
242
  * @param {React.SyntheticEvent} event The event source of the callback.
243
243
  */
244
- onOpen?: (event: React.SyntheticEvent) => void;
244
+ onOpen?: ((event: React.SyntheticEvent) => void) | undefined;
245
245
  /**
246
246
  * If `true`, the component is shown.
247
247
  */
248
- open?: boolean;
248
+ open?: boolean | undefined;
249
249
  /**
250
250
  * If `true`, the popup will open on input focus.
251
251
  * @default false
252
252
  */
253
- openOnFocus?: boolean;
253
+ openOnFocus?: boolean | undefined;
254
254
  /**
255
255
  * A list of options that will be shown in the Autocomplete.
256
256
  */
@@ -259,20 +259,20 @@ export interface UseAutocompleteProps<Value, Multiple extends boolean | undefine
259
259
  * If `true`, the component becomes readonly. It is also supported for multiple tags where the tag cannot be deleted.
260
260
  * @default false
261
261
  */
262
- readOnly?: boolean;
262
+ readOnly?: boolean | undefined;
263
263
  /**
264
264
  * If `true`, the input's text is selected on focus.
265
265
  * It helps the user clear the selected value.
266
266
  * @default !props.freeSolo
267
267
  */
268
- selectOnFocus?: boolean;
268
+ selectOnFocus?: boolean | undefined;
269
269
  /**
270
270
  * The value of the autocomplete.
271
271
  *
272
272
  * The value must have reference equality with the option in order to be selected.
273
273
  * You can customize the equality behavior with the `isOptionEqualToValue` prop.
274
274
  */
275
- value?: AutocompleteValue<Value, Multiple, DisableClearable, FreeSolo>;
275
+ value?: AutocompleteValue<Value, Multiple, DisableClearable, FreeSolo> | undefined;
276
276
  }
277
277
  export interface UseAutocompleteParameters<Value, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined> extends UseAutocompleteProps<Value, Multiple, DisableClearable, FreeSolo> {}
278
278
  export type AutocompleteHighlightChangeReason = 'keyboard' | 'mouse' | 'touch';
@@ -290,7 +290,7 @@ export type AutocompleteGetItemProps<Multiple extends boolean | undefined> = Mul
290
290
  tabIndex: -1;
291
291
  onDelete: (event: any) => void;
292
292
  } : (args?: {
293
- index?: number;
293
+ index?: number | undefined;
294
294
  }) => {
295
295
  'data-item-index': number;
296
296
  tabIndex: -1;
@@ -64,6 +64,7 @@ const defaultFilterOptions = createFilterOptions();
64
64
  // Number of options to jump in list box when `Page Up` and `Page Down` keys are used.
65
65
  const pageSize = 5;
66
66
  const defaultIsActiveElementInListbox = listboxRef => listboxRef.current !== null && listboxRef.current.parentElement?.contains(document.activeElement);
67
+ const defaultIsOptionEqualToValue = (option, value) => option === value;
67
68
  const MULTIPLE_DEFAULT_VALUE = [];
68
69
  function getInputValue(value, multiple, getOptionLabel, renderValue) {
69
70
  if (multiple || value == null || renderValue) {
@@ -102,7 +103,7 @@ function useAutocomplete(props) {
102
103
  id: idProp,
103
104
  includeInputInList = false,
104
105
  inputValue: inputValueProp,
105
- isOptionEqualToValue = (option, value) => option === value,
106
+ isOptionEqualToValue = defaultIsOptionEqualToValue,
106
107
  multiple = false,
107
108
  onChange,
108
109
  onClose,
@@ -134,6 +135,7 @@ function useAutocomplete(props) {
134
135
  const firstFocus = React.useRef(true);
135
136
  const inputRef = React.useRef(null);
136
137
  const listboxRef = React.useRef(null);
138
+ const windowLostFocus = React.useRef(false);
137
139
  const [anchorEl, setAnchorEl] = React.useState(null);
138
140
  const [focusedItem, setFocusedItem] = React.useState(-1);
139
141
  const defaultHighlighted = autoHighlight ? 0 : -1;
@@ -179,8 +181,30 @@ function useAutocomplete(props) {
179
181
  const [inputPristine, setInputPristine] = React.useState(true);
180
182
  const inputValueIsSelectedValue = !multiple && value != null && inputValue === getOptionLabel(value);
181
183
  const popupOpen = open && !readOnly;
184
+ const selectedValues = React.useMemo(() => {
185
+ if (multiple) {
186
+ return value;
187
+ }
188
+ if (value != null) {
189
+ return [value];
190
+ }
191
+ return [];
192
+ }, [multiple, value]);
193
+ const selectedValuesSet = React.useMemo(() => {
194
+ // Fast path for the default strict equality comparator to avoid O(n^2) option checks.
195
+ if (isOptionEqualToValue !== defaultIsOptionEqualToValue || selectedValues.length === 0) {
196
+ return null;
197
+ }
198
+ return new Set(selectedValues);
199
+ }, [isOptionEqualToValue, selectedValues]);
200
+ const isOptionSelected = React.useCallback(option => {
201
+ if (selectedValuesSet) {
202
+ return selectedValuesSet.has(option);
203
+ }
204
+ return selectedValues.some(value2 => value2 != null && isOptionEqualToValue(option, value2));
205
+ }, [isOptionEqualToValue, selectedValues, selectedValuesSet]);
182
206
  const filteredOptions = popupOpen ? filterOptions(options.filter(option => {
183
- if (filterSelectedOptions && (multiple ? value : [value]).some(value2 => value2 !== null && isOptionEqualToValue(option, value2))) {
207
+ if (filterSelectedOptions && isOptionSelected(option)) {
184
208
  return false;
185
209
  }
186
210
  return true;
@@ -498,6 +522,21 @@ function useAutocomplete(props) {
498
522
  syncHighlightedIndex();
499
523
  }
500
524
  }, [syncHighlightedIndex, filteredOptionsChanged, popupOpen, disableCloseOnSelect]);
525
+
526
+ // Listen for browser window blur to detect when the user switches tabs or windows.
527
+ // This helps prevent the popup from reopening automatically when the window regains focus.
528
+ React.useEffect(() => {
529
+ if (typeof window === 'undefined') {
530
+ return undefined;
531
+ }
532
+ const handleWindowBlur = () => {
533
+ windowLostFocus.current = true;
534
+ };
535
+ window.addEventListener('blur', handleWindowBlur);
536
+ return () => {
537
+ window.removeEventListener('blur', handleWindowBlur);
538
+ };
539
+ }, []);
501
540
  const handleOpen = event => {
502
541
  if (open) {
503
542
  return;
@@ -833,6 +872,14 @@ function useAutocomplete(props) {
833
872
  // Ensure DOM focus lands on the input
834
873
  focusItem(-1);
835
874
  }
875
+
876
+ // If the window previously lost focus while the popup was open,
877
+ // ignore this focus event to prevent unintended reopening.
878
+ // Reset the flag so normal focus behavior resumes.
879
+ if (windowLostFocus.current) {
880
+ windowLostFocus.current = false;
881
+ return;
882
+ }
836
883
  if (openOnFocus && !ignoreFocus.current) {
837
884
  handleOpen(event);
838
885
  }
@@ -923,6 +970,10 @@ function useAutocomplete(props) {
923
970
  if (!event.currentTarget.contains(event.target)) {
924
971
  return;
925
972
  }
973
+ // Don't interfere with interactions outside the input area (e.g. helper text)
974
+ if (anchorEl && !anchorEl.contains(event.target)) {
975
+ return;
976
+ }
926
977
  if (event.target.getAttribute('id') !== id) {
927
978
  event.preventDefault();
928
979
  }
@@ -934,6 +985,10 @@ function useAutocomplete(props) {
934
985
  if (!event.currentTarget.contains(event.target)) {
935
986
  return;
936
987
  }
988
+ // Don't interfere with interactions outside the input area (e.g. helper text)
989
+ if (anchorEl && !anchorEl.contains(event.target)) {
990
+ return;
991
+ }
937
992
  inputRef.current.focus();
938
993
  if (selectOnFocus && firstFocus.current && inputRef.current.selectionEnd - inputRef.current.selectionStart === 0) {
939
994
  inputRef.current.select();
@@ -1062,7 +1117,7 @@ function useAutocomplete(props) {
1062
1117
  index,
1063
1118
  option
1064
1119
  }) => {
1065
- const selected = (multiple ? value : [value]).some(value2 => value2 != null && isOptionEqualToValue(option, value2));
1120
+ const selected = isOptionSelected(option);
1066
1121
  const disabled = getOptionDisabled ? getOptionDisabled(option) : false;
1067
1122
  return {
1068
1123
  key: getOptionKey?.(option) ?? getOptionLabel(option),
@@ -4,62 +4,62 @@ export interface UsePaginationProps {
4
4
  * Number of always visible pages at the beginning and end.
5
5
  * @default 1
6
6
  */
7
- boundaryCount?: number;
7
+ boundaryCount?: number | undefined;
8
8
  /**
9
9
  * The name of the component where this hook is used.
10
10
  */
11
- componentName?: string;
11
+ componentName?: string | undefined;
12
12
  /**
13
13
  * The total number of pages.
14
14
  * @default 1
15
15
  */
16
- count?: number;
16
+ count?: number | undefined;
17
17
  /**
18
18
  * The page selected by default when the component is uncontrolled.
19
19
  * @default 1
20
20
  */
21
- defaultPage?: number;
21
+ defaultPage?: number | undefined;
22
22
  /**
23
23
  * If `true`, the component is disabled.
24
24
  * @default false
25
25
  */
26
- disabled?: boolean;
26
+ disabled?: boolean | undefined;
27
27
  /**
28
28
  * If `true`, hide the next-page button.
29
29
  * @default false
30
30
  */
31
- hideNextButton?: boolean;
31
+ hideNextButton?: boolean | undefined;
32
32
  /**
33
33
  * If `true`, hide the previous-page button.
34
34
  * @default false
35
35
  */
36
- hidePrevButton?: boolean;
36
+ hidePrevButton?: boolean | undefined;
37
37
  /**
38
38
  * Callback fired when the page is changed.
39
39
  *
40
40
  * @param {React.ChangeEvent<unknown>} event The event source of the callback.
41
41
  * @param {number} page The page selected.
42
42
  */
43
- onChange?: (event: React.ChangeEvent<unknown>, page: number) => void;
43
+ onChange?: ((event: React.ChangeEvent<unknown>, page: number) => void) | undefined;
44
44
  /**
45
45
  * The current page. Unlike `TablePagination`, which starts numbering from `0`, this pagination starts from `1`.
46
46
  */
47
- page?: number;
47
+ page?: number | undefined;
48
48
  /**
49
49
  * If `true`, show the first-page button.
50
50
  * @default false
51
51
  */
52
- showFirstButton?: boolean;
52
+ showFirstButton?: boolean | undefined;
53
53
  /**
54
54
  * If `true`, show the last-page button.
55
55
  * @default false
56
56
  */
57
- showLastButton?: boolean;
57
+ showLastButton?: boolean | undefined;
58
58
  /**
59
59
  * Number of always visible pages before and after the current page.
60
60
  * @default 1
61
61
  */
62
- siblingCount?: number;
62
+ siblingCount?: number | undefined;
63
63
  }
64
64
  export interface UsePaginationItem {
65
65
  onClick: React.ReactEventHandler;
@@ -1,6 +1,6 @@
1
1
  export interface UseScrollTriggerOptions {
2
- disableHysteresis?: boolean;
3
- target?: Node | Window | null;
4
- threshold?: number;
2
+ disableHysteresis?: boolean | undefined;
3
+ target?: Node | Window | null | undefined;
4
+ threshold?: number | undefined;
5
5
  }
6
6
  export default function useScrollTrigger(options?: UseScrollTriggerOptions): boolean;
@@ -0,0 +1 @@
1
+ export default function isLayoutSupported(): boolean;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = isLayoutSupported;
7
+ function isLayoutSupported() {
8
+ return !(/jsdom|HappyDOM/.test(window.navigator.userAgent) ||
9
+ // TODO(v9): Remove the test environment check
10
+ // eslint-disable-next-line mui/consistent-production-guard
11
+ process.env.NODE_ENV === 'test');
12
+ }
package/utils/types.d.ts CHANGED
@@ -3,8 +3,8 @@ import { SlotComponentProps } from '@mui/utils/types';
3
3
  import { Theme } from "../styles/index.js";
4
4
  export type { EventHandlers, WithOptionalOwnerState, SlotComponentProps, SlotComponentPropsWithSlotState } from '@mui/utils/types';
5
5
  export type SlotCommonProps = {
6
- component?: React.ElementType;
7
- sx?: SxProps<Theme>;
6
+ component?: React.ElementType | undefined;
7
+ sx?: SxProps<Theme> | undefined;
8
8
  };
9
9
  export type SlotProps<TSlotComponent extends React.ElementType, TOverrides, TOwnerState> = SlotComponentProps<TSlotComponent, SlotCommonProps & TOverrides, TOwnerState>;
10
10
  /**
@@ -17,10 +17,10 @@ export type CreateSlotsAndSlotProps<Slots, K extends Record<keyof Slots, any>> =
17
17
  * The components used for each slot inside.
18
18
  * @default {}
19
19
  */
20
- slots?: Partial<Slots>;
20
+ slots?: Partial<Slots> | undefined;
21
21
  /**
22
22
  * The props used for each slot inside.
23
23
  * @default {}
24
24
  */
25
- slotProps?: { [P in keyof K]?: K[P] };
25
+ slotProps?: { [P in keyof K]?: K[P] } | undefined;
26
26
  };