@mui/material 9.0.0-alpha.3 → 9.0.0-alpha.4

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 (302) hide show
  1. package/Accordion/Accordion.d.mts +0 -14
  2. package/Accordion/Accordion.d.ts +0 -14
  3. package/Accordion/Accordion.js +3 -25
  4. package/Accordion/Accordion.mjs +3 -25
  5. package/AccordionSummary/AccordionSummary.js +1 -1
  6. package/AccordionSummary/AccordionSummary.mjs +1 -1
  7. package/AccordionSummary/accordionSummaryClasses.d.mts +0 -5
  8. package/AccordionSummary/accordionSummaryClasses.d.ts +0 -5
  9. package/AccordionSummary/accordionSummaryClasses.js +1 -1
  10. package/AccordionSummary/accordionSummaryClasses.mjs +1 -1
  11. package/Alert/Alert.d.mts +0 -23
  12. package/Alert/Alert.d.ts +0 -23
  13. package/Alert/Alert.js +4 -36
  14. package/Alert/Alert.mjs +4 -36
  15. package/Alert/alertClasses.d.mts +0 -72
  16. package/Alert/alertClasses.d.ts +0 -72
  17. package/Alert/alertClasses.js +1 -1
  18. package/Alert/alertClasses.mjs +1 -1
  19. package/Autocomplete/Autocomplete.d.mts +10 -60
  20. package/Autocomplete/Autocomplete.d.ts +10 -60
  21. package/Autocomplete/Autocomplete.js +33 -99
  22. package/Autocomplete/Autocomplete.mjs +33 -99
  23. package/Avatar/Avatar.d.mts +0 -8
  24. package/Avatar/Avatar.d.ts +0 -8
  25. package/Avatar/Avatar.js +13 -35
  26. package/Avatar/Avatar.mjs +13 -35
  27. package/AvatarGroup/AvatarGroup.d.mts +0 -15
  28. package/AvatarGroup/AvatarGroup.d.ts +0 -15
  29. package/AvatarGroup/AvatarGroup.js +1 -18
  30. package/AvatarGroup/AvatarGroup.mjs +1 -18
  31. package/Backdrop/Backdrop.d.mts +1 -31
  32. package/Backdrop/Backdrop.d.ts +1 -31
  33. package/Backdrop/Backdrop.js +2 -42
  34. package/Backdrop/Backdrop.mjs +2 -42
  35. package/Badge/Badge.d.mts +0 -20
  36. package/Badge/Badge.d.ts +0 -20
  37. package/Badge/Badge.js +2 -35
  38. package/Badge/Badge.mjs +2 -35
  39. package/Button/Button.js +6 -6
  40. package/Button/Button.mjs +6 -6
  41. package/Button/buttonClasses.d.mts +0 -132
  42. package/Button/buttonClasses.d.ts +0 -132
  43. package/Button/buttonClasses.js +1 -1
  44. package/Button/buttonClasses.mjs +1 -1
  45. package/ButtonBase/ButtonBase.js +16 -2
  46. package/ButtonBase/ButtonBase.mjs +16 -2
  47. package/CHANGELOG.md +154 -0
  48. package/CircularProgress/CircularProgress.js +2 -2
  49. package/CircularProgress/CircularProgress.mjs +2 -2
  50. package/CircularProgress/circularProgressClasses.d.mts +0 -8
  51. package/CircularProgress/circularProgressClasses.d.ts +0 -8
  52. package/CircularProgress/circularProgressClasses.js +1 -1
  53. package/CircularProgress/circularProgressClasses.mjs +1 -1
  54. package/Divider/Divider.d.mts +0 -6
  55. package/Divider/Divider.d.ts +0 -6
  56. package/Divider/Divider.js +2 -18
  57. package/Divider/Divider.mjs +2 -18
  58. package/Divider/dividerClasses.d.mts +0 -4
  59. package/Divider/dividerClasses.d.ts +0 -4
  60. package/Divider/dividerClasses.js +1 -1
  61. package/Divider/dividerClasses.mjs +1 -1
  62. package/FormControlLabel/FormControlLabel.d.mts +1 -14
  63. package/FormControlLabel/FormControlLabel.d.ts +1 -14
  64. package/FormControlLabel/FormControlLabel.js +1 -13
  65. package/FormControlLabel/FormControlLabel.mjs +1 -13
  66. package/Input/Input.js +2 -1
  67. package/Input/Input.mjs +2 -1
  68. package/Menu/Menu.d.mts +0 -13
  69. package/Menu/Menu.d.ts +0 -13
  70. package/Menu/Menu.js +5 -44
  71. package/Menu/Menu.mjs +5 -44
  72. package/MenuItem/MenuItem.js +21 -1
  73. package/MenuItem/MenuItem.mjs +23 -1
  74. package/MenuList/MenuList.js +2 -4
  75. package/MenuList/MenuList.mjs +2 -4
  76. package/MobileStepper/MobileStepper.d.mts +0 -5
  77. package/MobileStepper/MobileStepper.d.ts +0 -5
  78. package/MobileStepper/MobileStepper.js +1 -10
  79. package/MobileStepper/MobileStepper.mjs +1 -10
  80. package/Popover/Popover.d.mts +4 -48
  81. package/Popover/Popover.d.ts +4 -48
  82. package/Popover/Popover.js +4 -64
  83. package/Popover/Popover.mjs +4 -64
  84. package/Popper/Popper.d.mts +0 -17
  85. package/Popper/Popper.d.ts +0 -17
  86. package/Popper/Popper.js +2 -26
  87. package/Popper/Popper.mjs +2 -26
  88. package/Popper/index.d.mts +1 -0
  89. package/Popper/index.d.ts +1 -0
  90. package/Popper/index.js +11 -2
  91. package/Popper/index.mjs +1 -0
  92. package/Select/SelectInput.js +50 -55
  93. package/Select/SelectInput.mjs +47 -52
  94. package/Select/index.d.mts +1 -0
  95. package/Select/index.d.ts +1 -0
  96. package/Select/index.js +12 -0
  97. package/Select/index.mjs +1 -0
  98. package/Select/utils/SelectFocusSourceContext.d.mts +4 -0
  99. package/Select/utils/SelectFocusSourceContext.d.ts +4 -0
  100. package/Select/utils/SelectFocusSourceContext.js +19 -0
  101. package/Select/utils/SelectFocusSourceContext.mjs +13 -0
  102. package/Select/utils/areEqualValues.d.mts +1 -0
  103. package/Select/utils/areEqualValues.d.ts +1 -0
  104. package/Select/utils/areEqualValues.js +14 -0
  105. package/Select/utils/areEqualValues.mjs +8 -0
  106. package/Select/utils/getOpenInteractionType.d.mts +1 -0
  107. package/Select/utils/getOpenInteractionType.d.ts +1 -0
  108. package/Select/utils/getOpenInteractionType.js +18 -0
  109. package/Select/utils/getOpenInteractionType.mjs +12 -0
  110. package/Select/utils/index.d.mts +4 -0
  111. package/Select/utils/index.d.ts +4 -0
  112. package/Select/utils/index.js +40 -0
  113. package/Select/utils/index.mjs +4 -0
  114. package/Select/utils/isEmpty.d.mts +1 -0
  115. package/Select/utils/isEmpty.d.ts +1 -0
  116. package/Select/utils/isEmpty.js +9 -0
  117. package/Select/utils/isEmpty.mjs +3 -0
  118. package/Slider/Slider.d.mts +109 -77
  119. package/Slider/Slider.d.ts +109 -77
  120. package/Slider/Slider.js +42 -119
  121. package/Slider/Slider.mjs +42 -119
  122. package/Slider/sliderClasses.d.mts +7 -7
  123. package/Slider/sliderClasses.d.ts +7 -7
  124. package/Slider/useSlider.js +50 -14
  125. package/Slider/useSlider.mjs +50 -14
  126. package/Snackbar/Snackbar.d.mts +1 -27
  127. package/Snackbar/Snackbar.d.ts +1 -27
  128. package/Snackbar/Snackbar.js +5 -58
  129. package/Snackbar/Snackbar.mjs +5 -58
  130. package/SpeedDial/SpeedDial.d.mts +0 -13
  131. package/SpeedDial/SpeedDial.d.ts +0 -13
  132. package/SpeedDial/SpeedDial.js +15 -40
  133. package/SpeedDial/SpeedDial.mjs +15 -40
  134. package/SpeedDialAction/SpeedDialAction.d.mts +0 -28
  135. package/SpeedDialAction/SpeedDialAction.d.ts +0 -28
  136. package/SpeedDialAction/SpeedDialAction.js +5 -46
  137. package/SpeedDialAction/SpeedDialAction.mjs +5 -46
  138. package/TablePagination/TablePagination.d.mts +1 -1
  139. package/TablePagination/TablePagination.d.ts +1 -1
  140. package/TablePagination/TablePagination.js +4 -2
  141. package/TablePagination/TablePagination.mjs +4 -2
  142. package/Tabs/Tabs.d.mts +2 -33
  143. package/Tabs/Tabs.d.ts +2 -33
  144. package/Tabs/Tabs.js +8 -38
  145. package/Tabs/Tabs.mjs +8 -38
  146. package/TextField/TextField.d.mts +6 -49
  147. package/TextField/TextField.d.ts +6 -49
  148. package/TextField/TextField.js +18 -53
  149. package/TextField/TextField.mjs +18 -53
  150. package/Tooltip/Tooltip.d.mts +1 -55
  151. package/Tooltip/Tooltip.d.ts +1 -55
  152. package/Tooltip/Tooltip.js +9 -87
  153. package/Tooltip/Tooltip.mjs +9 -87
  154. package/Typography/Typography.d.mts +0 -6
  155. package/Typography/Typography.d.ts +0 -6
  156. package/Typography/Typography.js +3 -19
  157. package/Typography/Typography.mjs +3 -19
  158. package/Typography/typographyClasses.d.mts +0 -5
  159. package/Typography/typographyClasses.d.ts +0 -5
  160. package/Typography/typographyClasses.js +1 -1
  161. package/Typography/typographyClasses.mjs +1 -1
  162. package/index.d.mts +0 -2
  163. package/index.d.ts +0 -2
  164. package/index.js +1 -9
  165. package/index.mjs +1 -2
  166. package/locale/amET.js +4 -1
  167. package/locale/amET.mjs +3 -1
  168. package/locale/arEG.js +4 -1
  169. package/locale/arEG.mjs +3 -1
  170. package/locale/arSA.js +4 -1
  171. package/locale/arSA.mjs +3 -1
  172. package/locale/arSD.js +4 -1
  173. package/locale/arSD.mjs +3 -1
  174. package/locale/beBY.js +4 -1
  175. package/locale/beBY.mjs +3 -1
  176. package/locale/bnBD.js +4 -1
  177. package/locale/bnBD.mjs +3 -1
  178. package/locale/caES.js +4 -1
  179. package/locale/caES.mjs +3 -1
  180. package/locale/csCZ.js +4 -1
  181. package/locale/csCZ.mjs +3 -1
  182. package/locale/daDK.js +4 -1
  183. package/locale/daDK.mjs +3 -1
  184. package/locale/deDE.js +4 -1
  185. package/locale/deDE.mjs +3 -1
  186. package/locale/elGR.js +4 -1
  187. package/locale/elGR.mjs +3 -1
  188. package/locale/esES.js +4 -1
  189. package/locale/esES.mjs +3 -1
  190. package/locale/etEE.js +4 -1
  191. package/locale/etEE.mjs +3 -1
  192. package/locale/faIR.js +4 -1
  193. package/locale/faIR.mjs +3 -1
  194. package/locale/fiFI.js +4 -1
  195. package/locale/fiFI.mjs +3 -1
  196. package/locale/frFR.js +4 -1
  197. package/locale/frFR.mjs +3 -1
  198. package/locale/heIL.js +4 -1
  199. package/locale/heIL.mjs +3 -1
  200. package/locale/hiIN.js +4 -1
  201. package/locale/hiIN.mjs +3 -1
  202. package/locale/hrHR.js +5 -1
  203. package/locale/hrHR.mjs +4 -1
  204. package/locale/isIS.js +4 -1
  205. package/locale/isIS.mjs +3 -1
  206. package/locale/itIT.js +4 -1
  207. package/locale/itIT.mjs +3 -1
  208. package/locale/jaJP.js +4 -1
  209. package/locale/jaJP.mjs +3 -1
  210. package/locale/khKH.js +4 -1
  211. package/locale/khKH.mjs +3 -1
  212. package/locale/kkKZ.js +4 -1
  213. package/locale/kkKZ.mjs +3 -1
  214. package/locale/koKR.js +4 -1
  215. package/locale/koKR.mjs +3 -1
  216. package/locale/kuCKB.js +4 -1
  217. package/locale/kuCKB.mjs +3 -1
  218. package/locale/kuLatn.js +4 -1
  219. package/locale/kuLatn.mjs +3 -1
  220. package/locale/mkMK.js +5 -1
  221. package/locale/mkMK.mjs +4 -1
  222. package/locale/msMS.js +5 -1
  223. package/locale/msMS.mjs +4 -1
  224. package/locale/myMY.js +5 -1
  225. package/locale/myMY.mjs +4 -1
  226. package/locale/nbNO.js +4 -1
  227. package/locale/nbNO.mjs +3 -1
  228. package/locale/neNP.js +5 -1
  229. package/locale/neNP.mjs +4 -1
  230. package/locale/nlNL.js +4 -1
  231. package/locale/nlNL.mjs +3 -1
  232. package/locale/nnNO.js +4 -1
  233. package/locale/nnNO.mjs +3 -1
  234. package/locale/plPL.js +4 -1
  235. package/locale/plPL.mjs +3 -1
  236. package/locale/psAF.js +4 -1
  237. package/locale/psAF.mjs +3 -1
  238. package/locale/ptBR.js +4 -1
  239. package/locale/ptBR.mjs +3 -1
  240. package/locale/ptPT.js +4 -1
  241. package/locale/ptPT.mjs +3 -1
  242. package/locale/roRO.js +4 -1
  243. package/locale/roRO.mjs +3 -1
  244. package/locale/ruRU.js +4 -1
  245. package/locale/ruRU.mjs +3 -1
  246. package/locale/siLK.js +4 -1
  247. package/locale/siLK.mjs +3 -1
  248. package/locale/skSK.js +4 -1
  249. package/locale/skSK.mjs +3 -1
  250. package/locale/srRS.js +5 -1
  251. package/locale/srRS.mjs +4 -1
  252. package/locale/svSE.js +4 -1
  253. package/locale/svSE.mjs +3 -1
  254. package/locale/thTH.js +4 -1
  255. package/locale/thTH.mjs +3 -1
  256. package/locale/tlTL.js +5 -1
  257. package/locale/tlTL.mjs +4 -1
  258. package/locale/trTR.js +4 -1
  259. package/locale/trTR.mjs +3 -1
  260. package/locale/ukUA.js +4 -1
  261. package/locale/ukUA.mjs +3 -1
  262. package/locale/urPK.js +4 -1
  263. package/locale/urPK.mjs +3 -1
  264. package/locale/utils/buildFormatNumber.d.mts +2 -0
  265. package/locale/utils/buildFormatNumber.d.ts +2 -0
  266. package/locale/utils/buildFormatNumber.js +23 -0
  267. package/locale/utils/buildFormatNumber.mjs +17 -0
  268. package/locale/viVN.js +4 -1
  269. package/locale/viVN.mjs +3 -1
  270. package/locale/zhCN.js +4 -1
  271. package/locale/zhCN.mjs +3 -1
  272. package/locale/zhHK.js +4 -1
  273. package/locale/zhHK.mjs +3 -1
  274. package/locale/zhTW.js +4 -1
  275. package/locale/zhTW.mjs +3 -1
  276. package/package.json +6 -20
  277. package/styles/components.d.mts +0 -5
  278. package/styles/components.d.ts +0 -5
  279. package/styles/overrides.d.mts +0 -2
  280. package/styles/overrides.d.ts +0 -2
  281. package/styles/props.d.mts +0 -2
  282. package/styles/props.d.ts +0 -2
  283. package/useAutocomplete/useAutocomplete.d.mts +0 -12
  284. package/useAutocomplete/useAutocomplete.d.ts +0 -12
  285. package/useAutocomplete/useAutocomplete.js +29 -28
  286. package/useAutocomplete/useAutocomplete.mjs +29 -28
  287. package/version/index.js +2 -2
  288. package/version/index.mjs +2 -2
  289. package/GridLegacy/GridLegacy.d.mts +0 -160
  290. package/GridLegacy/GridLegacy.d.ts +0 -160
  291. package/GridLegacy/GridLegacy.js +0 -601
  292. package/GridLegacy/GridLegacy.mjs +0 -588
  293. package/GridLegacy/GridLegacyContext.js +0 -17
  294. package/GridLegacy/GridLegacyContext.mjs +0 -12
  295. package/GridLegacy/gridLegacyClasses.d.mts +0 -48
  296. package/GridLegacy/gridLegacyClasses.d.ts +0 -48
  297. package/GridLegacy/gridLegacyClasses.js +0 -27
  298. package/GridLegacy/gridLegacyClasses.mjs +0 -19
  299. package/GridLegacy/index.d.mts +0 -4
  300. package/GridLegacy/index.d.ts +0 -4
  301. package/GridLegacy/index.js +0 -35
  302. package/GridLegacy/index.mjs +0 -3
@@ -97,11 +97,27 @@ function setValueIndex({
97
97
  function focusThumb({
98
98
  sliderRef,
99
99
  activeIndex,
100
- setActive
100
+ setActive,
101
+ focusVisible
101
102
  }) {
102
103
  const doc = (0, _ownerDocument.default)(sliderRef.current);
103
104
  if (!sliderRef.current?.contains(doc.activeElement) || Number(doc?.activeElement?.getAttribute('data-index')) !== activeIndex) {
104
- sliderRef.current?.querySelector(`[type="range"][data-index="${activeIndex}"]`).focus();
105
+ const input = sliderRef.current?.querySelector(`[type="range"][data-index="${activeIndex}"]`);
106
+ if (input != null) {
107
+ if (focusVisible === undefined) {
108
+ input.focus({
109
+ preventScroll: true
110
+ });
111
+ } else {
112
+ input.focus({
113
+ preventScroll: true,
114
+ // Prevent pointer-driven focus rings in browsers that support this option.
115
+ // Chrome 144+ supports `focusVisible` in `HTMLElement.focus()` options.
116
+ // @ts-ignore - `focusVisible` is not yet in TypeScript's lib.dom FocusOptions.
117
+ focusVisible
118
+ });
119
+ }
120
+ }
105
121
  }
106
122
  if (setActive) {
107
123
  setActive(activeIndex);
@@ -188,6 +204,7 @@ function useSlider(parameters) {
188
204
  value: valueProp
189
205
  } = parameters;
190
206
  const touchId = React.useRef(undefined);
207
+ const focusFrame = React.useRef(null);
191
208
  // We can't use the :active browser pseudo-classes.
192
209
  // - The active state isn't triggered when clicking on the rail.
193
210
  // - The active state isn't transferred when inversing a range slider.
@@ -195,6 +212,12 @@ function useSlider(parameters) {
195
212
  const [open, setOpen] = React.useState(-1);
196
213
  const [dragging, setDragging] = React.useState(false);
197
214
  const moveCount = React.useRef(0);
215
+ const cancelFocusFrame = (0, _useEventCallback.default)(() => {
216
+ if (focusFrame.current != null) {
217
+ cancelAnimationFrame(focusFrame.current);
218
+ focusFrame.current = null;
219
+ }
220
+ });
198
221
  // lastChangedValue is updated whenever onChange is triggered.
199
222
  const lastChangedValue = React.useRef(null);
200
223
  const [valueDerived, setValueState] = (0, _useControlled.default)({
@@ -467,7 +490,8 @@ function useSlider(parameters) {
467
490
  focusThumb({
468
491
  sliderRef,
469
492
  activeIndex,
470
- setActive
493
+ setActive,
494
+ focusVisible: false
471
495
  });
472
496
  setValueState(newValue);
473
497
  if (!dragging && moveCount.current > INTENTIONAL_DRAG_COUNT_THRESHOLD) {
@@ -525,7 +549,8 @@ function useSlider(parameters) {
525
549
  focusThumb({
526
550
  sliderRef,
527
551
  activeIndex,
528
- setActive
552
+ setActive,
553
+ focusVisible: false
529
554
  });
530
555
  setValueState(newValue);
531
556
  if (handleChange && !areValuesEqual(newValue, valueDerived)) {
@@ -557,14 +582,16 @@ function useSlider(parameters) {
557
582
  });
558
583
  return () => {
559
584
  slider.removeEventListener('touchstart', handleTouchStart);
585
+ cancelFocusFrame();
560
586
  stopListening();
561
587
  };
562
- }, [stopListening, handleTouchStart]);
588
+ }, [stopListening, handleTouchStart, cancelFocusFrame]);
563
589
  React.useEffect(() => {
564
590
  if (disabled) {
565
591
  stopListening();
592
+ cancelFocusFrame();
566
593
  }
567
- }, [disabled, stopListening]);
594
+ }, [disabled, stopListening, cancelFocusFrame]);
568
595
  const createHandleMouseDown = otherHandlers => event => {
569
596
  otherHandlers.onMouseDown?.(event);
570
597
  if (disabled) {
@@ -578,9 +605,6 @@ function useSlider(parameters) {
578
605
  if (event.button !== 0) {
579
606
  return;
580
607
  }
581
-
582
- // Avoid text selection
583
- event.preventDefault();
584
608
  const finger = trackFinger(event, touchId);
585
609
  if (finger !== false) {
586
610
  const {
@@ -589,11 +613,23 @@ function useSlider(parameters) {
589
613
  } = getFingerNewValue({
590
614
  finger
591
615
  });
592
- focusThumb({
593
- sliderRef,
594
- activeIndex,
595
- setActive
596
- });
616
+ const doc = (0, _ownerDocument.default)(sliderRef.current);
617
+ const activeElement = doc.activeElement;
618
+ const pressedOnFocusedThumb = sliderRef.current?.contains(activeElement) && Number(activeElement?.getAttribute('data-index')) === activeIndex;
619
+ setActive(activeIndex);
620
+ if (pressedOnFocusedThumb) {
621
+ event.preventDefault();
622
+ } else {
623
+ cancelFocusFrame();
624
+ focusFrame.current = requestAnimationFrame(() => {
625
+ focusFrame.current = null;
626
+ focusThumb({
627
+ sliderRef,
628
+ activeIndex,
629
+ focusVisible: false
630
+ });
631
+ });
632
+ }
597
633
  setValueState(newValue);
598
634
  if (handleChange && !areValuesEqual(newValue, valueDerived)) {
599
635
  handleChange(event, newValue, activeIndex);
@@ -88,11 +88,27 @@ function setValueIndex({
88
88
  function focusThumb({
89
89
  sliderRef,
90
90
  activeIndex,
91
- setActive
91
+ setActive,
92
+ focusVisible
92
93
  }) {
93
94
  const doc = ownerDocument(sliderRef.current);
94
95
  if (!sliderRef.current?.contains(doc.activeElement) || Number(doc?.activeElement?.getAttribute('data-index')) !== activeIndex) {
95
- sliderRef.current?.querySelector(`[type="range"][data-index="${activeIndex}"]`).focus();
96
+ const input = sliderRef.current?.querySelector(`[type="range"][data-index="${activeIndex}"]`);
97
+ if (input != null) {
98
+ if (focusVisible === undefined) {
99
+ input.focus({
100
+ preventScroll: true
101
+ });
102
+ } else {
103
+ input.focus({
104
+ preventScroll: true,
105
+ // Prevent pointer-driven focus rings in browsers that support this option.
106
+ // Chrome 144+ supports `focusVisible` in `HTMLElement.focus()` options.
107
+ // @ts-ignore - `focusVisible` is not yet in TypeScript's lib.dom FocusOptions.
108
+ focusVisible
109
+ });
110
+ }
111
+ }
96
112
  }
97
113
  if (setActive) {
98
114
  setActive(activeIndex);
@@ -178,6 +194,7 @@ export function useSlider(parameters) {
178
194
  value: valueProp
179
195
  } = parameters;
180
196
  const touchId = React.useRef(undefined);
197
+ const focusFrame = React.useRef(null);
181
198
  // We can't use the :active browser pseudo-classes.
182
199
  // - The active state isn't triggered when clicking on the rail.
183
200
  // - The active state isn't transferred when inversing a range slider.
@@ -185,6 +202,12 @@ export function useSlider(parameters) {
185
202
  const [open, setOpen] = React.useState(-1);
186
203
  const [dragging, setDragging] = React.useState(false);
187
204
  const moveCount = React.useRef(0);
205
+ const cancelFocusFrame = useEventCallback(() => {
206
+ if (focusFrame.current != null) {
207
+ cancelAnimationFrame(focusFrame.current);
208
+ focusFrame.current = null;
209
+ }
210
+ });
188
211
  // lastChangedValue is updated whenever onChange is triggered.
189
212
  const lastChangedValue = React.useRef(null);
190
213
  const [valueDerived, setValueState] = useControlled({
@@ -457,7 +480,8 @@ export function useSlider(parameters) {
457
480
  focusThumb({
458
481
  sliderRef,
459
482
  activeIndex,
460
- setActive
483
+ setActive,
484
+ focusVisible: false
461
485
  });
462
486
  setValueState(newValue);
463
487
  if (!dragging && moveCount.current > INTENTIONAL_DRAG_COUNT_THRESHOLD) {
@@ -515,7 +539,8 @@ export function useSlider(parameters) {
515
539
  focusThumb({
516
540
  sliderRef,
517
541
  activeIndex,
518
- setActive
542
+ setActive,
543
+ focusVisible: false
519
544
  });
520
545
  setValueState(newValue);
521
546
  if (handleChange && !areValuesEqual(newValue, valueDerived)) {
@@ -547,14 +572,16 @@ export function useSlider(parameters) {
547
572
  });
548
573
  return () => {
549
574
  slider.removeEventListener('touchstart', handleTouchStart);
575
+ cancelFocusFrame();
550
576
  stopListening();
551
577
  };
552
- }, [stopListening, handleTouchStart]);
578
+ }, [stopListening, handleTouchStart, cancelFocusFrame]);
553
579
  React.useEffect(() => {
554
580
  if (disabled) {
555
581
  stopListening();
582
+ cancelFocusFrame();
556
583
  }
557
- }, [disabled, stopListening]);
584
+ }, [disabled, stopListening, cancelFocusFrame]);
558
585
  const createHandleMouseDown = otherHandlers => event => {
559
586
  otherHandlers.onMouseDown?.(event);
560
587
  if (disabled) {
@@ -568,9 +595,6 @@ export function useSlider(parameters) {
568
595
  if (event.button !== 0) {
569
596
  return;
570
597
  }
571
-
572
- // Avoid text selection
573
- event.preventDefault();
574
598
  const finger = trackFinger(event, touchId);
575
599
  if (finger !== false) {
576
600
  const {
@@ -579,11 +603,23 @@ export function useSlider(parameters) {
579
603
  } = getFingerNewValue({
580
604
  finger
581
605
  });
582
- focusThumb({
583
- sliderRef,
584
- activeIndex,
585
- setActive
586
- });
606
+ const doc = ownerDocument(sliderRef.current);
607
+ const activeElement = doc.activeElement;
608
+ const pressedOnFocusedThumb = sliderRef.current?.contains(activeElement) && Number(activeElement?.getAttribute('data-index')) === activeIndex;
609
+ setActive(activeIndex);
610
+ if (pressedOnFocusedThumb) {
611
+ event.preventDefault();
612
+ } else {
613
+ cancelFocusFrame();
614
+ focusFrame.current = requestAnimationFrame(() => {
615
+ focusFrame.current = null;
616
+ focusThumb({
617
+ sliderRef,
618
+ activeIndex,
619
+ focusVisible: false
620
+ });
621
+ });
622
+ }
587
623
  setValueState(newValue);
588
624
  if (handleChange && !areValuesEqual(newValue, valueDerived)) {
589
625
  handleChange(event, newValue, activeIndex);
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { SxProps } from '@mui/system';
3
- import ClickAwayListener, { ClickAwayListenerProps } from "../ClickAwayListener/index.mjs";
3
+ import ClickAwayListener from "../ClickAwayListener/index.mjs";
4
4
  import { Theme } from "../styles/index.mjs";
5
5
  import { InternalStandardProps as StandardProps } from "../internal/index.mjs";
6
6
  import { SnackbarContentProps } from "../SnackbarContent/index.mjs";
@@ -89,16 +89,6 @@ export interface SnackbarProps extends Omit<StandardProps<React.HTMLAttributes<H
89
89
  * Override or extend the styles applied to the component.
90
90
  */
91
91
  classes?: Partial<SnackbarClasses> | undefined;
92
- /**
93
- * Props applied to the `ClickAwayListener` element.
94
- * @deprecated Use `slotProps.clickAwayListener` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
95
- */
96
- ClickAwayListenerProps?: Partial<ClickAwayListenerProps> | undefined;
97
- /**
98
- * Props applied to the [`SnackbarContent`](https://mui.com/material-ui/api/snackbar-content/) element.
99
- * @deprecated Use `slotProps.content` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
100
- */
101
- ContentProps?: Partial<SnackbarContentProps> | undefined;
102
92
  /**
103
93
  * If `true`, the `autoHideDuration` timer will expire even if the window is not focused.
104
94
  * @default false
@@ -141,15 +131,6 @@ export interface SnackbarProps extends Omit<StandardProps<React.HTMLAttributes<H
141
131
  * The system prop that allows defining system overrides as well as additional CSS styles.
142
132
  */
143
133
  sx?: SxProps<Theme> | undefined;
144
- /**
145
- * The component used for the transition.
146
- * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
147
- * @deprecated Use `slots.transition` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
148
- * @default Grow
149
- */
150
- TransitionComponent?: React.JSXElementConstructor<TransitionProps & {
151
- children: React.ReactElement<unknown, any>;
152
- }> | undefined;
153
134
  /**
154
135
  * The duration for the transition, in milliseconds.
155
136
  * You may specify a single timeout for all transitions, or individually with an object.
@@ -159,13 +140,6 @@ export interface SnackbarProps extends Omit<StandardProps<React.HTMLAttributes<H
159
140
  * }
160
141
  */
161
142
  transitionDuration?: TransitionProps['timeout'] | undefined;
162
- /**
163
- * Props applied to the transition element.
164
- * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
165
- * @deprecated Use `slotProps.transition` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
166
- * @default {}
167
- */
168
- TransitionProps?: TransitionProps | undefined;
169
143
  }
170
144
 
171
145
  /**
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { SxProps } from '@mui/system';
3
- import ClickAwayListener, { ClickAwayListenerProps } from "../ClickAwayListener/index.js";
3
+ import ClickAwayListener from "../ClickAwayListener/index.js";
4
4
  import { Theme } from "../styles/index.js";
5
5
  import { InternalStandardProps as StandardProps } from "../internal/index.js";
6
6
  import { SnackbarContentProps } from "../SnackbarContent/index.js";
@@ -89,16 +89,6 @@ export interface SnackbarProps extends Omit<StandardProps<React.HTMLAttributes<H
89
89
  * Override or extend the styles applied to the component.
90
90
  */
91
91
  classes?: Partial<SnackbarClasses> | undefined;
92
- /**
93
- * Props applied to the `ClickAwayListener` element.
94
- * @deprecated Use `slotProps.clickAwayListener` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
95
- */
96
- ClickAwayListenerProps?: Partial<ClickAwayListenerProps> | undefined;
97
- /**
98
- * Props applied to the [`SnackbarContent`](https://mui.com/material-ui/api/snackbar-content/) element.
99
- * @deprecated Use `slotProps.content` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
100
- */
101
- ContentProps?: Partial<SnackbarContentProps> | undefined;
102
92
  /**
103
93
  * If `true`, the `autoHideDuration` timer will expire even if the window is not focused.
104
94
  * @default false
@@ -141,15 +131,6 @@ export interface SnackbarProps extends Omit<StandardProps<React.HTMLAttributes<H
141
131
  * The system prop that allows defining system overrides as well as additional CSS styles.
142
132
  */
143
133
  sx?: SxProps<Theme> | undefined;
144
- /**
145
- * The component used for the transition.
146
- * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
147
- * @deprecated Use `slots.transition` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
148
- * @default Grow
149
- */
150
- TransitionComponent?: React.JSXElementConstructor<TransitionProps & {
151
- children: React.ReactElement<unknown, any>;
152
- }> | undefined;
153
134
  /**
154
135
  * The duration for the transition, in milliseconds.
155
136
  * You may specify a single timeout for all transitions, or individually with an object.
@@ -159,13 +140,6 @@ export interface SnackbarProps extends Omit<StandardProps<React.HTMLAttributes<H
159
140
  * }
160
141
  */
161
142
  transitionDuration?: TransitionProps['timeout'] | undefined;
162
- /**
163
- * Props applied to the transition element.
164
- * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
165
- * @deprecated Use `slotProps.transition` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
166
- * @default {}
167
- */
168
- TransitionProps?: TransitionProps | undefined;
169
143
  }
170
144
 
171
145
  /**
@@ -127,8 +127,6 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
127
127
  autoHideDuration = null,
128
128
  children,
129
129
  className,
130
- ClickAwayListenerProps: ClickAwayListenerPropsProp,
131
- ContentProps: ContentPropsProp,
132
130
  disableWindowBlurListener = false,
133
131
  message,
134
132
  onBlur,
@@ -140,13 +138,7 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
140
138
  resumeHideDuration,
141
139
  slots = {},
142
140
  slotProps = {},
143
- TransitionComponent: TransitionComponentProp,
144
141
  transitionDuration = defaultTransitionDuration,
145
- TransitionProps: {
146
- onEnter,
147
- onExited,
148
- ...TransitionPropsProp
149
- } = {},
150
142
  ...other
151
143
  } = props;
152
144
  const ownerState = {
@@ -157,7 +149,6 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
157
149
  },
158
150
  autoHideDuration,
159
151
  disableWindowBlurListener,
160
- TransitionComponent: TransitionComponentProp,
161
152
  transitionDuration
162
153
  };
163
154
  const classes = useUtilityClasses(ownerState);
@@ -166,29 +157,9 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
166
157
  onClickAway
167
158
  } = (0, _useSnackbar.default)(ownerState);
168
159
  const [exited, setExited] = React.useState(true);
169
- const handleExited = node => {
170
- setExited(true);
171
- if (onExited) {
172
- onExited(node);
173
- }
174
- };
175
- const handleEnter = (node, isAppearing) => {
176
- setExited(false);
177
- if (onEnter) {
178
- onEnter(node, isAppearing);
179
- }
180
- };
181
160
  const externalForwardedProps = {
182
- slots: {
183
- transition: TransitionComponentProp,
184
- ...slots
185
- },
186
- slotProps: {
187
- content: ContentPropsProp,
188
- clickAwayListener: ClickAwayListenerPropsProp,
189
- transition: TransitionPropsProp,
190
- ...slotProps
191
- }
161
+ slots,
162
+ slotProps
192
163
  };
193
164
  const [Root, rootProps] = (0, _useSlot.default)('root', {
194
165
  ref,
@@ -235,11 +206,11 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
235
206
  getSlotProps: handlers => ({
236
207
  onEnter: (...params) => {
237
208
  handlers.onEnter?.(...params);
238
- handleEnter(...params);
209
+ setExited(false);
239
210
  },
240
211
  onExited: (...params) => {
241
212
  handlers.onExited?.(...params);
242
- handleExited(...params);
213
+ setExited(true);
243
214
  }
244
215
  }),
245
216
  additionalProps: {
@@ -310,16 +281,6 @@ process.env.NODE_ENV !== "production" ? Snackbar.propTypes /* remove-proptypes *
310
281
  * @ignore
311
282
  */
312
283
  className: _propTypes.default.string,
313
- /**
314
- * Props applied to the `ClickAwayListener` element.
315
- * @deprecated Use `slotProps.clickAwayListener` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
316
- */
317
- ClickAwayListenerProps: _propTypes.default.object,
318
- /**
319
- * Props applied to the [`SnackbarContent`](https://mui.com/material-ui/api/snackbar-content/) element.
320
- * @deprecated Use `slotProps.content` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
321
- */
322
- ContentProps: _propTypes.default.object,
323
284
  /**
324
285
  * If `true`, the `autoHideDuration` timer will expire even if the window is not focused.
325
286
  * @default false
@@ -398,13 +359,6 @@ process.env.NODE_ENV !== "production" ? Snackbar.propTypes /* remove-proptypes *
398
359
  * The system prop that allows defining system overrides as well as additional CSS styles.
399
360
  */
400
361
  sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
401
- /**
402
- * The component used for the transition.
403
- * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
404
- * @deprecated Use `slots.transition` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
405
- * @default Grow
406
- */
407
- TransitionComponent: _propTypes.default.elementType,
408
362
  /**
409
363
  * The duration for the transition, in milliseconds.
410
364
  * You may specify a single timeout for all transitions, or individually with an object.
@@ -417,13 +371,6 @@ process.env.NODE_ENV !== "production" ? Snackbar.propTypes /* remove-proptypes *
417
371
  appear: _propTypes.default.number,
418
372
  enter: _propTypes.default.number,
419
373
  exit: _propTypes.default.number
420
- })]),
421
- /**
422
- * Props applied to the transition element.
423
- * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
424
- * @deprecated Use `slotProps.transition` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
425
- * @default {}
426
- */
427
- TransitionProps: _propTypes.default.object
374
+ })])
428
375
  } : void 0;
429
376
  var _default = exports.default = Snackbar;
@@ -120,8 +120,6 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
120
120
  autoHideDuration = null,
121
121
  children,
122
122
  className,
123
- ClickAwayListenerProps: ClickAwayListenerPropsProp,
124
- ContentProps: ContentPropsProp,
125
123
  disableWindowBlurListener = false,
126
124
  message,
127
125
  onBlur,
@@ -133,13 +131,7 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
133
131
  resumeHideDuration,
134
132
  slots = {},
135
133
  slotProps = {},
136
- TransitionComponent: TransitionComponentProp,
137
134
  transitionDuration = defaultTransitionDuration,
138
- TransitionProps: {
139
- onEnter,
140
- onExited,
141
- ...TransitionPropsProp
142
- } = {},
143
135
  ...other
144
136
  } = props;
145
137
  const ownerState = {
@@ -150,7 +142,6 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
150
142
  },
151
143
  autoHideDuration,
152
144
  disableWindowBlurListener,
153
- TransitionComponent: TransitionComponentProp,
154
145
  transitionDuration
155
146
  };
156
147
  const classes = useUtilityClasses(ownerState);
@@ -159,29 +150,9 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
159
150
  onClickAway
160
151
  } = useSnackbar(ownerState);
161
152
  const [exited, setExited] = React.useState(true);
162
- const handleExited = node => {
163
- setExited(true);
164
- if (onExited) {
165
- onExited(node);
166
- }
167
- };
168
- const handleEnter = (node, isAppearing) => {
169
- setExited(false);
170
- if (onEnter) {
171
- onEnter(node, isAppearing);
172
- }
173
- };
174
153
  const externalForwardedProps = {
175
- slots: {
176
- transition: TransitionComponentProp,
177
- ...slots
178
- },
179
- slotProps: {
180
- content: ContentPropsProp,
181
- clickAwayListener: ClickAwayListenerPropsProp,
182
- transition: TransitionPropsProp,
183
- ...slotProps
184
- }
154
+ slots,
155
+ slotProps
185
156
  };
186
157
  const [Root, rootProps] = useSlot('root', {
187
158
  ref,
@@ -228,11 +199,11 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
228
199
  getSlotProps: handlers => ({
229
200
  onEnter: (...params) => {
230
201
  handlers.onEnter?.(...params);
231
- handleEnter(...params);
202
+ setExited(false);
232
203
  },
233
204
  onExited: (...params) => {
234
205
  handlers.onExited?.(...params);
235
- handleExited(...params);
206
+ setExited(true);
236
207
  }
237
208
  }),
238
209
  additionalProps: {
@@ -303,16 +274,6 @@ process.env.NODE_ENV !== "production" ? Snackbar.propTypes /* remove-proptypes *
303
274
  * @ignore
304
275
  */
305
276
  className: PropTypes.string,
306
- /**
307
- * Props applied to the `ClickAwayListener` element.
308
- * @deprecated Use `slotProps.clickAwayListener` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
309
- */
310
- ClickAwayListenerProps: PropTypes.object,
311
- /**
312
- * Props applied to the [`SnackbarContent`](https://mui.com/material-ui/api/snackbar-content/) element.
313
- * @deprecated Use `slotProps.content` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
314
- */
315
- ContentProps: PropTypes.object,
316
277
  /**
317
278
  * If `true`, the `autoHideDuration` timer will expire even if the window is not focused.
318
279
  * @default false
@@ -391,13 +352,6 @@ process.env.NODE_ENV !== "production" ? Snackbar.propTypes /* remove-proptypes *
391
352
  * The system prop that allows defining system overrides as well as additional CSS styles.
392
353
  */
393
354
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
394
- /**
395
- * The component used for the transition.
396
- * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
397
- * @deprecated Use `slots.transition` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
398
- * @default Grow
399
- */
400
- TransitionComponent: PropTypes.elementType,
401
355
  /**
402
356
  * The duration for the transition, in milliseconds.
403
357
  * You may specify a single timeout for all transitions, or individually with an object.
@@ -410,13 +364,6 @@ process.env.NODE_ENV !== "production" ? Snackbar.propTypes /* remove-proptypes *
410
364
  appear: PropTypes.number,
411
365
  enter: PropTypes.number,
412
366
  exit: PropTypes.number
413
- })]),
414
- /**
415
- * Props applied to the transition element.
416
- * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
417
- * @deprecated Use `slotProps.transition` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
418
- * @default {}
419
- */
420
- TransitionProps: PropTypes.object
367
+ })])
421
368
  } : void 0;
422
369
  export default Snackbar;
@@ -93,13 +93,6 @@ export interface SpeedDialProps extends Omit<StandardProps<React.HTMLAttributes<
93
93
  * The system prop that allows defining system overrides as well as additional CSS styles.
94
94
  */
95
95
  sx?: SxProps<Theme> | undefined;
96
- /**
97
- * The component used for the transition.
98
- * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
99
- * @default Zoom
100
- * * @deprecated Use `slots.transition` instead. This prop will be removed in a future major release. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/)
101
- */
102
- TransitionComponent?: React.JSXElementConstructor<TransitionProps> | undefined;
103
96
  /**
104
97
  * The duration for the transition, in milliseconds.
105
98
  * You may specify a single timeout for all transitions, or individually with an object.
@@ -109,12 +102,6 @@ export interface SpeedDialProps extends Omit<StandardProps<React.HTMLAttributes<
109
102
  * }
110
103
  */
111
104
  transitionDuration?: TransitionProps['timeout'] | undefined;
112
- /**
113
- * Props applied to the transition element.
114
- * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
115
- * @deprecated Use `slotProps.transition` instead. This prop will be removed in a future major release. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/)
116
- */
117
- TransitionProps?: TransitionProps | undefined;
118
105
  }
119
106
  export interface SpeedDialOwnerState extends SpeedDialProps {}
120
107
 
@@ -93,13 +93,6 @@ export interface SpeedDialProps extends Omit<StandardProps<React.HTMLAttributes<
93
93
  * The system prop that allows defining system overrides as well as additional CSS styles.
94
94
  */
95
95
  sx?: SxProps<Theme> | undefined;
96
- /**
97
- * The component used for the transition.
98
- * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
99
- * @default Zoom
100
- * * @deprecated Use `slots.transition` instead. This prop will be removed in a future major release. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/)
101
- */
102
- TransitionComponent?: React.JSXElementConstructor<TransitionProps> | undefined;
103
96
  /**
104
97
  * The duration for the transition, in milliseconds.
105
98
  * You may specify a single timeout for all transitions, or individually with an object.
@@ -109,12 +102,6 @@ export interface SpeedDialProps extends Omit<StandardProps<React.HTMLAttributes<
109
102
  * }
110
103
  */
111
104
  transitionDuration?: TransitionProps['timeout'] | undefined;
112
- /**
113
- * Props applied to the transition element.
114
- * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
115
- * @deprecated Use `slotProps.transition` instead. This prop will be removed in a future major release. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/)
116
- */
117
- TransitionProps?: TransitionProps | undefined;
118
105
  }
119
106
  export interface SpeedDialOwnerState extends SpeedDialProps {}
120
107