@mui/material 6.0.0-alpha.13 → 6.0.0-alpha.14

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.
package/Alert/Alert.d.ts CHANGED
@@ -9,8 +9,9 @@ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types';
9
9
  export type AlertColor = 'success' | 'info' | 'warning' | 'error';
10
10
 
11
11
  export interface AlertPropsVariantOverrides {}
12
-
13
12
  export interface AlertPropsColorOverrides {}
13
+ export interface AlertCloseButtonSlotPropsOverrides {}
14
+ export interface AlertCloseIconSlotPropsOverrides {}
14
15
 
15
16
  export interface AlertSlots {
16
17
  /**
@@ -28,8 +29,16 @@ export interface AlertSlots {
28
29
  export type AlertSlotsAndSlotProps = CreateSlotsAndSlotProps<
29
30
  AlertSlots,
30
31
  {
31
- closeButton: SlotProps<React.ElementType<IconButtonProps>, {}, AlertOwnerState>;
32
- closeIcon: SlotProps<React.ElementType<SvgIconProps>, {}, AlertOwnerState>;
32
+ closeButton: SlotProps<
33
+ React.ElementType<IconButtonProps>,
34
+ AlertCloseButtonSlotPropsOverrides,
35
+ AlertOwnerState
36
+ >;
37
+ closeIcon: SlotProps<
38
+ React.ElementType<SvgIconProps>,
39
+ AlertCloseIconSlotPropsOverrides,
40
+ AlertOwnerState
41
+ >;
33
42
  }
34
43
  >;
35
44
 
@@ -6,11 +6,11 @@ import clsx from 'clsx';
6
6
  import refType from '@mui/utils/refType';
7
7
  import elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';
8
8
  import composeClasses from '@mui/utils/composeClasses';
9
+ import isFocusVisible from '@mui/utils/isFocusVisible';
9
10
  import { styled } from '../zero-styled';
10
11
  import { useDefaultProps } from '../DefaultPropsProvider';
11
12
  import useForkRef from '../utils/useForkRef';
12
13
  import useEventCallback from '../utils/useEventCallback';
13
- import useIsFocusVisible from '../utils/useIsFocusVisible';
14
14
  import TouchRipple from './TouchRipple';
15
15
  import buttonBaseClasses, { getButtonBaseUtilityClass } from './buttonBaseClasses';
16
16
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -119,12 +119,6 @@ const ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, re
119
119
  const buttonRef = React.useRef(null);
120
120
  const rippleRef = React.useRef(null);
121
121
  const handleRippleRef = useForkRef(rippleRef, touchRippleRef);
122
- const {
123
- isFocusVisibleRef,
124
- onFocus: handleFocusVisible,
125
- onBlur: handleBlurVisible,
126
- ref: focusVisibleRef
127
- } = useIsFocusVisible();
128
122
  const [focusVisible, setFocusVisible] = React.useState(false);
129
123
  if (disabled && focusVisible) {
130
124
  setFocusVisible(false);
@@ -173,8 +167,7 @@ const ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, re
173
167
  const handleTouchEnd = useRippleHandler('stop', onTouchEnd);
174
168
  const handleTouchMove = useRippleHandler('stop', onTouchMove);
175
169
  const handleBlur = useRippleHandler('stop', event => {
176
- handleBlurVisible(event);
177
- if (isFocusVisibleRef.current === false) {
170
+ if (!isFocusVisible(event.target)) {
178
171
  setFocusVisible(false);
179
172
  }
180
173
  if (onBlur) {
@@ -186,8 +179,7 @@ const ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, re
186
179
  if (!buttonRef.current) {
187
180
  buttonRef.current = event.currentTarget;
188
181
  }
189
- handleFocusVisible(event);
190
- if (isFocusVisibleRef.current === true) {
182
+ if (isFocusVisible(event.target)) {
191
183
  setFocusVisible(true);
192
184
  if (onFocusVisible) {
193
185
  onFocusVisible(event);
@@ -256,7 +248,7 @@ const ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, re
256
248
  buttonProps['aria-disabled'] = disabled;
257
249
  }
258
250
  }
259
- const handleRef = useForkRef(ref, focusVisibleRef, buttonRef);
251
+ const handleRef = useForkRef(ref, buttonRef);
260
252
  if (process.env.NODE_ENV !== 'production') {
261
253
  // eslint-disable-next-line react-hooks/rules-of-hooks
262
254
  React.useEffect(() => {
package/CHANGELOG.md CHANGED
@@ -1,5 +1,57 @@
1
1
  # [Versions](https://mui.com/versions/)
2
2
 
3
+ ## v6.0.0-alpha.14
4
+
5
+ <!-- generated comparing v6.0.0-alpha.13..next -->
6
+
7
+ _Jul 3, 2024_
8
+
9
+ A big thanks to the 12 contributors who made this release possible. Here are some highlights ✨:
10
+
11
+ - ✨ Updated Grid v2 to match PigmentGrid (#42742) @DiegoAndai
12
+
13
+ ### `@mui/material@v6.0.0-alpha.14`
14
+
15
+ #### BREAKING CHANGES
16
+
17
+ - [Grid] Update Grid props to match PigmentGrid (#42742) @DiegoAndai
18
+
19
+ Use the codemod below to migrate the props:
20
+
21
+ ```bash
22
+ npx @mui/codemod@next v6.0.0/grid-v2-props /path/to/folder
23
+ ```
24
+
25
+ #### Changes
26
+
27
+ - [Alert] Add ability to override slot props (#42787) @alexey-kozlenkov
28
+ - [Dialog] Revert incorrect textAlign style removal (#42778) @DiegoAndai
29
+ - [theme] Support `CssVarsTheme` in `responsiveFontSizes` return type (#42786) @jxdp
30
+
31
+ ### Docs
32
+
33
+ - [material-ui] Add some writing tweaks to v6 migration page (#42623) @danilo-leal
34
+ - [material-ui] Fix issues reported by react-compiler in docs folder (#42830) @sai6855
35
+ - [material-ui] Add some writing tweaks to v6 migration page (#42623) @danilo-leal
36
+ - [base-ui] Fix wrong description for `UseTabParameters.onChange` (#42749) @ohgree
37
+ - Fix 301 MDN redirections @oliviertassinari
38
+
39
+ ### Core
40
+
41
+ - [core] Bump React to 18.3.1 (#42047) @renovate[bot]
42
+ - [core] Revert lint for `useThemeProps` (#42817) @siriwatknp
43
+ - [core] Remove useIsFocusVisible util (#42467) @DiegoAndai
44
+ - [core] Remove react-test-renderer (#42784) @aarongarciah
45
+ - [core][mui-utils] Remove remaining IE11 references (#42777) @DiegoAndai
46
+ - [code-infra] Move `HighlightedCode` test into `@mui/docs` package (#42835) @LukasTy
47
+ - [code-infra] Cleanup `@mui/docs` usage and legacy re-exports (#42833) @LukasTy
48
+ - [docs-infra] Fix React Compiler ESLint issues in website components (#42566) @aarongarciah
49
+ - [docs-infra] Add batch of design polish (#42823) @danilo-leal
50
+ - [test][mui-utils] Remove usages of deprecated react-dom APIs (#42780) @aarongarciah
51
+ - [test][joy-ui][Autocomplete] Fix spread key error in test (#42775) @aarongarciah
52
+
53
+ All contributors of this release in alphabetical order: @aarongarciah, @alexey-kozlenkov, @danilo-leal, @DiegoAndai, @Janpot, @jxdp, @LukasTy, @ohgree, @oliviertassinari, @renovate[bot], @sai6855, @siriwatknp
54
+
3
55
  ## v6.0.0-alpha.13
4
56
 
5
57
  <!-- generated comparing v6.0.0-alpha.12..next -->
package/Dialog/Dialog.js CHANGED
@@ -124,7 +124,8 @@ const DialogPaper = styled(Paper, {
124
124
  },
125
125
  style: {
126
126
  display: 'inline-block',
127
- verticalAlign: 'middle'
127
+ verticalAlign: 'middle',
128
+ textAlign: 'initial'
128
129
  }
129
130
  }, {
130
131
  props: ({
package/Link/Link.js CHANGED
@@ -6,11 +6,10 @@ import clsx from 'clsx';
6
6
  import { alpha } from '@mui/system/colorManipulator';
7
7
  import elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';
8
8
  import composeClasses from '@mui/utils/composeClasses';
9
+ import isFocusVisible from '@mui/utils/isFocusVisible';
9
10
  import capitalize from '../utils/capitalize';
10
11
  import { styled, useTheme } from '../zero-styled';
11
12
  import { useDefaultProps } from '../DefaultPropsProvider';
12
- import useIsFocusVisible from '../utils/useIsFocusVisible';
13
- import useForkRef from '../utils/useForkRef';
14
13
  import Typography from '../Typography';
15
14
  import linkClasses, { getLinkUtilityClass } from './linkClasses';
16
15
  import getTextDecoration, { colorTransformations } from './getTextDecoration';
@@ -135,17 +134,9 @@ const Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {
135
134
  sx,
136
135
  ...other
137
136
  } = props;
138
- const {
139
- isFocusVisibleRef,
140
- onBlur: handleBlurVisible,
141
- onFocus: handleFocusVisible,
142
- ref: focusVisibleRef
143
- } = useIsFocusVisible();
144
137
  const [focusVisible, setFocusVisible] = React.useState(false);
145
- const handlerRef = useForkRef(ref, focusVisibleRef);
146
138
  const handleBlur = event => {
147
- handleBlurVisible(event);
148
- if (isFocusVisibleRef.current === false) {
139
+ if (!isFocusVisible(event.target)) {
149
140
  setFocusVisible(false);
150
141
  }
151
142
  if (onBlur) {
@@ -153,8 +144,7 @@ const Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {
153
144
  }
154
145
  };
155
146
  const handleFocus = event => {
156
- handleFocusVisible(event);
157
- if (isFocusVisibleRef.current === true) {
147
+ if (isFocusVisible(event.target)) {
158
148
  setFocusVisible(true);
159
149
  }
160
150
  if (onFocus) {
@@ -177,7 +167,7 @@ const Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {
177
167
  component: component,
178
168
  onBlur: handleBlur,
179
169
  onFocus: handleFocus,
180
- ref: handlerRef,
170
+ ref: ref,
181
171
  ownerState: ownerState,
182
172
  variant: variant,
183
173
  ...other,
package/Rating/Rating.js CHANGED
@@ -8,7 +8,8 @@ import visuallyHidden from '@mui/utils/visuallyHidden';
8
8
  import chainPropTypes from '@mui/utils/chainPropTypes';
9
9
  import composeClasses from '@mui/utils/composeClasses';
10
10
  import { useRtl } from '@mui/system/RtlProvider';
11
- import { capitalize, useForkRef, useIsFocusVisible, useControlled, unstable_useId as useId } from '../utils';
11
+ import isFocusVisible from '@mui/utils/isFocusVisible';
12
+ import { capitalize, useForkRef, useControlled, unstable_useId as useId } from '../utils';
12
13
  import Star from '../internal/svg-icons/Star';
13
14
  import StarBorder from '../internal/svg-icons/StarBorder';
14
15
  import { styled } from '../zero-styled';
@@ -353,15 +354,9 @@ const Rating = /*#__PURE__*/React.forwardRef(function Rating(inProps, ref) {
353
354
  if (focus !== -1) {
354
355
  value = focus;
355
356
  }
356
- const {
357
- isFocusVisibleRef,
358
- onBlur: handleBlurVisible,
359
- onFocus: handleFocusVisible,
360
- ref: focusVisibleRef
361
- } = useIsFocusVisible();
362
357
  const [focusVisible, setFocusVisible] = React.useState(false);
363
358
  const rootRef = React.useRef();
364
- const handleRef = useForkRef(focusVisibleRef, rootRef, ref);
359
+ const handleRef = useForkRef(rootRef, ref);
365
360
  const handleMouseMove = event => {
366
361
  if (onMouseMove) {
367
362
  onMouseMove(event);
@@ -431,8 +426,7 @@ const Rating = /*#__PURE__*/React.forwardRef(function Rating(inProps, ref) {
431
426
  }
432
427
  };
433
428
  const handleFocus = event => {
434
- handleFocusVisible(event);
435
- if (isFocusVisibleRef.current === true) {
429
+ if (isFocusVisible(event.target)) {
436
430
  setFocusVisible(true);
437
431
  }
438
432
  const newFocus = parseFloat(event.target.value);
@@ -445,8 +439,7 @@ const Rating = /*#__PURE__*/React.forwardRef(function Rating(inProps, ref) {
445
439
  if (hover !== -1) {
446
440
  return;
447
441
  }
448
- handleBlurVisible(event);
449
- if (isFocusVisibleRef.current === false) {
442
+ if (!isFocusVisible(event.target)) {
450
443
  setFocusVisible(false);
451
444
  }
452
445
  const newFocus = -1;
@@ -9,6 +9,7 @@ import { appendOwnerState } from '@mui/base/utils';
9
9
  import composeClasses from '@mui/utils/composeClasses';
10
10
  import { alpha } from '@mui/system/colorManipulator';
11
11
  import { useRtl } from '@mui/system/RtlProvider';
12
+ import isFocusVisible from '@mui/utils/isFocusVisible';
12
13
  import { styled, useTheme } from '../zero-styled';
13
14
  import { useDefaultProps } from '../DefaultPropsProvider';
14
15
  import capitalize from '../utils/capitalize';
@@ -17,7 +18,6 @@ import Popper from '../Popper';
17
18
  import useEventCallback from '../utils/useEventCallback';
18
19
  import useForkRef from '../utils/useForkRef';
19
20
  import useId from '../utils/useId';
20
- import useIsFocusVisible from '../utils/useIsFocusVisible';
21
21
  import useControlled from '../utils/useControlled';
22
22
  import tooltipClasses, { getTooltipUtilityClass } from './tooltipClasses';
23
23
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -444,18 +444,9 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
444
444
  handleClose(event);
445
445
  });
446
446
  };
447
- const {
448
- isFocusVisibleRef,
449
- onBlur: handleBlurVisible,
450
- onFocus: handleFocusVisible,
451
- ref: focusVisibleRef
452
- } = useIsFocusVisible();
453
- // We don't necessarily care about the focusVisible state (which is safe to access via ref anyway).
454
- // We just need to re-render the Tooltip if the focus-visible state changes.
455
447
  const [, setChildIsFocusVisible] = React.useState(false);
456
448
  const handleBlur = event => {
457
- handleBlurVisible(event);
458
- if (isFocusVisibleRef.current === false) {
449
+ if (!isFocusVisible(event.target)) {
459
450
  setChildIsFocusVisible(false);
460
451
  handleMouseLeave(event);
461
452
  }
@@ -467,8 +458,7 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
467
458
  if (!childNode) {
468
459
  setChildNode(event.currentTarget);
469
460
  }
470
- handleFocusVisible(event);
471
- if (isFocusVisibleRef.current === true) {
461
+ if (isFocusVisible(event.target)) {
472
462
  setChildIsFocusVisible(true);
473
463
  handleMouseOver(event);
474
464
  }
@@ -520,7 +510,7 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
520
510
  document.removeEventListener('keydown', handleKeyDown);
521
511
  };
522
512
  }, [handleClose, open]);
523
- const handleRef = useForkRef(children.ref, focusVisibleRef, setChildNode, ref);
513
+ const handleRef = useForkRef(children.ref, setChildNode, ref);
524
514
 
525
515
  // There is no point in displaying an empty tooltip.
526
516
  // So we exclude all falsy values, except 0, which is valid.
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/material v6.0.0-alpha.13
2
+ * @mui/material v6.0.0-alpha.14
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -6,11 +6,11 @@ import clsx from 'clsx';
6
6
  import refType from '@mui/utils/refType';
7
7
  import elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';
8
8
  import composeClasses from '@mui/utils/composeClasses';
9
+ import isFocusVisible from '@mui/utils/isFocusVisible';
9
10
  import { styled } from '../zero-styled';
10
11
  import { useDefaultProps } from '../DefaultPropsProvider';
11
12
  import useForkRef from '../utils/useForkRef';
12
13
  import useEventCallback from '../utils/useEventCallback';
13
- import useIsFocusVisible from '../utils/useIsFocusVisible';
14
14
  import TouchRipple from './TouchRipple';
15
15
  import buttonBaseClasses, { getButtonBaseUtilityClass } from './buttonBaseClasses';
16
16
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -119,12 +119,6 @@ const ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, re
119
119
  const buttonRef = React.useRef(null);
120
120
  const rippleRef = React.useRef(null);
121
121
  const handleRippleRef = useForkRef(rippleRef, touchRippleRef);
122
- const {
123
- isFocusVisibleRef,
124
- onFocus: handleFocusVisible,
125
- onBlur: handleBlurVisible,
126
- ref: focusVisibleRef
127
- } = useIsFocusVisible();
128
122
  const [focusVisible, setFocusVisible] = React.useState(false);
129
123
  if (disabled && focusVisible) {
130
124
  setFocusVisible(false);
@@ -173,8 +167,7 @@ const ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, re
173
167
  const handleTouchEnd = useRippleHandler('stop', onTouchEnd);
174
168
  const handleTouchMove = useRippleHandler('stop', onTouchMove);
175
169
  const handleBlur = useRippleHandler('stop', event => {
176
- handleBlurVisible(event);
177
- if (isFocusVisibleRef.current === false) {
170
+ if (!isFocusVisible(event.target)) {
178
171
  setFocusVisible(false);
179
172
  }
180
173
  if (onBlur) {
@@ -186,8 +179,7 @@ const ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, re
186
179
  if (!buttonRef.current) {
187
180
  buttonRef.current = event.currentTarget;
188
181
  }
189
- handleFocusVisible(event);
190
- if (isFocusVisibleRef.current === true) {
182
+ if (isFocusVisible(event.target)) {
191
183
  setFocusVisible(true);
192
184
  if (onFocusVisible) {
193
185
  onFocusVisible(event);
@@ -256,7 +248,7 @@ const ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, re
256
248
  buttonProps['aria-disabled'] = disabled;
257
249
  }
258
250
  }
259
- const handleRef = useForkRef(ref, focusVisibleRef, buttonRef);
251
+ const handleRef = useForkRef(ref, buttonRef);
260
252
  if (process.env.NODE_ENV !== 'production') {
261
253
  // eslint-disable-next-line react-hooks/rules-of-hooks
262
254
  React.useEffect(() => {
@@ -124,7 +124,8 @@ const DialogPaper = styled(Paper, {
124
124
  },
125
125
  style: {
126
126
  display: 'inline-block',
127
- verticalAlign: 'middle'
127
+ verticalAlign: 'middle',
128
+ textAlign: 'initial'
128
129
  }
129
130
  }, {
130
131
  props: ({
@@ -6,11 +6,10 @@ import clsx from 'clsx';
6
6
  import { alpha } from '@mui/system/colorManipulator';
7
7
  import elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';
8
8
  import composeClasses from '@mui/utils/composeClasses';
9
+ import isFocusVisible from '@mui/utils/isFocusVisible';
9
10
  import capitalize from '../utils/capitalize';
10
11
  import { styled, useTheme } from '../zero-styled';
11
12
  import { useDefaultProps } from '../DefaultPropsProvider';
12
- import useIsFocusVisible from '../utils/useIsFocusVisible';
13
- import useForkRef from '../utils/useForkRef';
14
13
  import Typography from '../Typography';
15
14
  import linkClasses, { getLinkUtilityClass } from './linkClasses';
16
15
  import getTextDecoration, { colorTransformations } from './getTextDecoration';
@@ -135,17 +134,9 @@ const Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {
135
134
  sx,
136
135
  ...other
137
136
  } = props;
138
- const {
139
- isFocusVisibleRef,
140
- onBlur: handleBlurVisible,
141
- onFocus: handleFocusVisible,
142
- ref: focusVisibleRef
143
- } = useIsFocusVisible();
144
137
  const [focusVisible, setFocusVisible] = React.useState(false);
145
- const handlerRef = useForkRef(ref, focusVisibleRef);
146
138
  const handleBlur = event => {
147
- handleBlurVisible(event);
148
- if (isFocusVisibleRef.current === false) {
139
+ if (!isFocusVisible(event.target)) {
149
140
  setFocusVisible(false);
150
141
  }
151
142
  if (onBlur) {
@@ -153,8 +144,7 @@ const Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {
153
144
  }
154
145
  };
155
146
  const handleFocus = event => {
156
- handleFocusVisible(event);
157
- if (isFocusVisibleRef.current === true) {
147
+ if (isFocusVisible(event.target)) {
158
148
  setFocusVisible(true);
159
149
  }
160
150
  if (onFocus) {
@@ -177,7 +167,7 @@ const Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {
177
167
  component: component,
178
168
  onBlur: handleBlur,
179
169
  onFocus: handleFocus,
180
- ref: handlerRef,
170
+ ref: ref,
181
171
  ownerState: ownerState,
182
172
  variant: variant,
183
173
  ...other,
@@ -8,7 +8,8 @@ import visuallyHidden from '@mui/utils/visuallyHidden';
8
8
  import chainPropTypes from '@mui/utils/chainPropTypes';
9
9
  import composeClasses from '@mui/utils/composeClasses';
10
10
  import { useRtl } from '@mui/system/RtlProvider';
11
- import { capitalize, useForkRef, useIsFocusVisible, useControlled, unstable_useId as useId } from '../utils';
11
+ import isFocusVisible from '@mui/utils/isFocusVisible';
12
+ import { capitalize, useForkRef, useControlled, unstable_useId as useId } from '../utils';
12
13
  import Star from '../internal/svg-icons/Star';
13
14
  import StarBorder from '../internal/svg-icons/StarBorder';
14
15
  import { styled } from '../zero-styled';
@@ -353,15 +354,9 @@ const Rating = /*#__PURE__*/React.forwardRef(function Rating(inProps, ref) {
353
354
  if (focus !== -1) {
354
355
  value = focus;
355
356
  }
356
- const {
357
- isFocusVisibleRef,
358
- onBlur: handleBlurVisible,
359
- onFocus: handleFocusVisible,
360
- ref: focusVisibleRef
361
- } = useIsFocusVisible();
362
357
  const [focusVisible, setFocusVisible] = React.useState(false);
363
358
  const rootRef = React.useRef();
364
- const handleRef = useForkRef(focusVisibleRef, rootRef, ref);
359
+ const handleRef = useForkRef(rootRef, ref);
365
360
  const handleMouseMove = event => {
366
361
  if (onMouseMove) {
367
362
  onMouseMove(event);
@@ -431,8 +426,7 @@ const Rating = /*#__PURE__*/React.forwardRef(function Rating(inProps, ref) {
431
426
  }
432
427
  };
433
428
  const handleFocus = event => {
434
- handleFocusVisible(event);
435
- if (isFocusVisibleRef.current === true) {
429
+ if (isFocusVisible(event.target)) {
436
430
  setFocusVisible(true);
437
431
  }
438
432
  const newFocus = parseFloat(event.target.value);
@@ -445,8 +439,7 @@ const Rating = /*#__PURE__*/React.forwardRef(function Rating(inProps, ref) {
445
439
  if (hover !== -1) {
446
440
  return;
447
441
  }
448
- handleBlurVisible(event);
449
- if (isFocusVisibleRef.current === false) {
442
+ if (!isFocusVisible(event.target)) {
450
443
  setFocusVisible(false);
451
444
  }
452
445
  const newFocus = -1;
@@ -9,6 +9,7 @@ import { appendOwnerState } from '@mui/base/utils';
9
9
  import composeClasses from '@mui/utils/composeClasses';
10
10
  import { alpha } from '@mui/system/colorManipulator';
11
11
  import { useRtl } from '@mui/system/RtlProvider';
12
+ import isFocusVisible from '@mui/utils/isFocusVisible';
12
13
  import { styled, useTheme } from '../zero-styled';
13
14
  import { useDefaultProps } from '../DefaultPropsProvider';
14
15
  import capitalize from '../utils/capitalize';
@@ -17,7 +18,6 @@ import Popper from '../Popper';
17
18
  import useEventCallback from '../utils/useEventCallback';
18
19
  import useForkRef from '../utils/useForkRef';
19
20
  import useId from '../utils/useId';
20
- import useIsFocusVisible from '../utils/useIsFocusVisible';
21
21
  import useControlled from '../utils/useControlled';
22
22
  import tooltipClasses, { getTooltipUtilityClass } from './tooltipClasses';
23
23
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -444,18 +444,9 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
444
444
  handleClose(event);
445
445
  });
446
446
  };
447
- const {
448
- isFocusVisibleRef,
449
- onBlur: handleBlurVisible,
450
- onFocus: handleFocusVisible,
451
- ref: focusVisibleRef
452
- } = useIsFocusVisible();
453
- // We don't necessarily care about the focusVisible state (which is safe to access via ref anyway).
454
- // We just need to re-render the Tooltip if the focus-visible state changes.
455
447
  const [, setChildIsFocusVisible] = React.useState(false);
456
448
  const handleBlur = event => {
457
- handleBlurVisible(event);
458
- if (isFocusVisibleRef.current === false) {
449
+ if (!isFocusVisible(event.target)) {
459
450
  setChildIsFocusVisible(false);
460
451
  handleMouseLeave(event);
461
452
  }
@@ -467,8 +458,7 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
467
458
  if (!childNode) {
468
459
  setChildNode(event.currentTarget);
469
460
  }
470
- handleFocusVisible(event);
471
- if (isFocusVisibleRef.current === true) {
461
+ if (isFocusVisible(event.target)) {
472
462
  setChildIsFocusVisible(true);
473
463
  handleMouseOver(event);
474
464
  }
@@ -520,7 +510,7 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
520
510
  document.removeEventListener('keydown', handleKeyDown);
521
511
  };
522
512
  }, [handleClose, open]);
523
- const handleRef = useForkRef(children.ref, focusVisibleRef, setChildNode, ref);
513
+ const handleRef = useForkRef(children.ref, setChildNode, ref);
524
514
 
525
515
  // There is no point in displaying an empty tooltip.
526
516
  // So we exclude all falsy values, except 0, which is valid.
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/material v6.0.0-alpha.13
2
+ * @mui/material v6.0.0-alpha.14
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -17,7 +17,6 @@ export { default as unsupportedProp } from './unsupportedProp';
17
17
  export { default as useControlled } from './useControlled';
18
18
  export { default as useEventCallback } from './useEventCallback';
19
19
  export { default as useForkRef } from './useForkRef';
20
- export { default as useIsFocusVisible } from './useIsFocusVisible';
21
20
  // TODO: remove this export once ClassNameGenerator is stable
22
21
  // eslint-disable-next-line @typescript-eslint/naming-convention
23
22
  export const unstable_ClassNameGenerator = {
@@ -12,11 +12,11 @@ var _clsx = _interopRequireDefault(require("clsx"));
12
12
  var _refType = _interopRequireDefault(require("@mui/utils/refType"));
13
13
  var _elementTypeAcceptingRef = _interopRequireDefault(require("@mui/utils/elementTypeAcceptingRef"));
14
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
+ var _isFocusVisible = _interopRequireDefault(require("@mui/utils/isFocusVisible"));
15
16
  var _zeroStyled = require("../zero-styled");
16
17
  var _DefaultPropsProvider = require("../DefaultPropsProvider");
17
18
  var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
18
19
  var _useEventCallback = _interopRequireDefault(require("../utils/useEventCallback"));
19
- var _useIsFocusVisible = _interopRequireDefault(require("../utils/useIsFocusVisible"));
20
20
  var _TouchRipple = _interopRequireDefault(require("./TouchRipple"));
21
21
  var _buttonBaseClasses = _interopRequireWildcard(require("./buttonBaseClasses"));
22
22
  var _jsxRuntime = require("react/jsx-runtime");
@@ -127,12 +127,6 @@ const ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, re
127
127
  const buttonRef = React.useRef(null);
128
128
  const rippleRef = React.useRef(null);
129
129
  const handleRippleRef = (0, _useForkRef.default)(rippleRef, touchRippleRef);
130
- const {
131
- isFocusVisibleRef,
132
- onFocus: handleFocusVisible,
133
- onBlur: handleBlurVisible,
134
- ref: focusVisibleRef
135
- } = (0, _useIsFocusVisible.default)();
136
130
  const [focusVisible, setFocusVisible] = React.useState(false);
137
131
  if (disabled && focusVisible) {
138
132
  setFocusVisible(false);
@@ -181,8 +175,7 @@ const ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, re
181
175
  const handleTouchEnd = useRippleHandler('stop', onTouchEnd);
182
176
  const handleTouchMove = useRippleHandler('stop', onTouchMove);
183
177
  const handleBlur = useRippleHandler('stop', event => {
184
- handleBlurVisible(event);
185
- if (isFocusVisibleRef.current === false) {
178
+ if (!(0, _isFocusVisible.default)(event.target)) {
186
179
  setFocusVisible(false);
187
180
  }
188
181
  if (onBlur) {
@@ -194,8 +187,7 @@ const ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, re
194
187
  if (!buttonRef.current) {
195
188
  buttonRef.current = event.currentTarget;
196
189
  }
197
- handleFocusVisible(event);
198
- if (isFocusVisibleRef.current === true) {
190
+ if ((0, _isFocusVisible.default)(event.target)) {
199
191
  setFocusVisible(true);
200
192
  if (onFocusVisible) {
201
193
  onFocusVisible(event);
@@ -264,7 +256,7 @@ const ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, re
264
256
  buttonProps['aria-disabled'] = disabled;
265
257
  }
266
258
  }
267
- const handleRef = (0, _useForkRef.default)(ref, focusVisibleRef, buttonRef);
259
+ const handleRef = (0, _useForkRef.default)(ref, buttonRef);
268
260
  if (process.env.NODE_ENV !== 'production') {
269
261
  // eslint-disable-next-line react-hooks/rules-of-hooks
270
262
  React.useEffect(() => {
@@ -132,7 +132,8 @@ const DialogPaper = (0, _zeroStyled.styled)(_Paper.default, {
132
132
  },
133
133
  style: {
134
134
  display: 'inline-block',
135
- verticalAlign: 'middle'
135
+ verticalAlign: 'middle',
136
+ textAlign: 'initial'
136
137
  }
137
138
  }, {
138
139
  props: ({
package/node/Link/Link.js CHANGED
@@ -12,11 +12,10 @@ var _clsx = _interopRequireDefault(require("clsx"));
12
12
  var _colorManipulator = require("@mui/system/colorManipulator");
13
13
  var _elementTypeAcceptingRef = _interopRequireDefault(require("@mui/utils/elementTypeAcceptingRef"));
14
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
+ var _isFocusVisible = _interopRequireDefault(require("@mui/utils/isFocusVisible"));
15
16
  var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
16
17
  var _zeroStyled = require("../zero-styled");
17
18
  var _DefaultPropsProvider = require("../DefaultPropsProvider");
18
- var _useIsFocusVisible = _interopRequireDefault(require("../utils/useIsFocusVisible"));
19
- var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
20
19
  var _Typography = _interopRequireDefault(require("../Typography"));
21
20
  var _linkClasses = _interopRequireWildcard(require("./linkClasses"));
22
21
  var _getTextDecoration = _interopRequireWildcard(require("./getTextDecoration"));
@@ -143,17 +142,9 @@ const Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {
143
142
  sx,
144
143
  ...other
145
144
  } = props;
146
- const {
147
- isFocusVisibleRef,
148
- onBlur: handleBlurVisible,
149
- onFocus: handleFocusVisible,
150
- ref: focusVisibleRef
151
- } = (0, _useIsFocusVisible.default)();
152
145
  const [focusVisible, setFocusVisible] = React.useState(false);
153
- const handlerRef = (0, _useForkRef.default)(ref, focusVisibleRef);
154
146
  const handleBlur = event => {
155
- handleBlurVisible(event);
156
- if (isFocusVisibleRef.current === false) {
147
+ if (!(0, _isFocusVisible.default)(event.target)) {
157
148
  setFocusVisible(false);
158
149
  }
159
150
  if (onBlur) {
@@ -161,8 +152,7 @@ const Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {
161
152
  }
162
153
  };
163
154
  const handleFocus = event => {
164
- handleFocusVisible(event);
165
- if (isFocusVisibleRef.current === true) {
155
+ if ((0, _isFocusVisible.default)(event.target)) {
166
156
  setFocusVisible(true);
167
157
  }
168
158
  if (onFocus) {
@@ -185,7 +175,7 @@ const Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {
185
175
  component: component,
186
176
  onBlur: handleBlur,
187
177
  onFocus: handleFocus,
188
- ref: handlerRef,
178
+ ref: ref,
189
179
  ownerState: ownerState,
190
180
  variant: variant,
191
181
  ...other,
@@ -14,6 +14,7 @@ var _visuallyHidden = _interopRequireDefault(require("@mui/utils/visuallyHidden"
14
14
  var _chainPropTypes = _interopRequireDefault(require("@mui/utils/chainPropTypes"));
15
15
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
16
16
  var _RtlProvider = require("@mui/system/RtlProvider");
17
+ var _isFocusVisible = _interopRequireDefault(require("@mui/utils/isFocusVisible"));
17
18
  var _utils = require("../utils");
18
19
  var _Star = _interopRequireDefault(require("../internal/svg-icons/Star"));
19
20
  var _StarBorder = _interopRequireDefault(require("../internal/svg-icons/StarBorder"));
@@ -361,15 +362,9 @@ const Rating = /*#__PURE__*/React.forwardRef(function Rating(inProps, ref) {
361
362
  if (focus !== -1) {
362
363
  value = focus;
363
364
  }
364
- const {
365
- isFocusVisibleRef,
366
- onBlur: handleBlurVisible,
367
- onFocus: handleFocusVisible,
368
- ref: focusVisibleRef
369
- } = (0, _utils.useIsFocusVisible)();
370
365
  const [focusVisible, setFocusVisible] = React.useState(false);
371
366
  const rootRef = React.useRef();
372
- const handleRef = (0, _utils.useForkRef)(focusVisibleRef, rootRef, ref);
367
+ const handleRef = (0, _utils.useForkRef)(rootRef, ref);
373
368
  const handleMouseMove = event => {
374
369
  if (onMouseMove) {
375
370
  onMouseMove(event);
@@ -439,8 +434,7 @@ const Rating = /*#__PURE__*/React.forwardRef(function Rating(inProps, ref) {
439
434
  }
440
435
  };
441
436
  const handleFocus = event => {
442
- handleFocusVisible(event);
443
- if (isFocusVisibleRef.current === true) {
437
+ if ((0, _isFocusVisible.default)(event.target)) {
444
438
  setFocusVisible(true);
445
439
  }
446
440
  const newFocus = parseFloat(event.target.value);
@@ -453,8 +447,7 @@ const Rating = /*#__PURE__*/React.forwardRef(function Rating(inProps, ref) {
453
447
  if (hover !== -1) {
454
448
  return;
455
449
  }
456
- handleBlurVisible(event);
457
- if (isFocusVisibleRef.current === false) {
450
+ if (!(0, _isFocusVisible.default)(event.target)) {
458
451
  setFocusVisible(false);
459
452
  }
460
453
  const newFocus = -1;
@@ -16,6 +16,7 @@ var _utils = require("@mui/base/utils");
16
16
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
17
17
  var _colorManipulator = require("@mui/system/colorManipulator");
18
18
  var _RtlProvider = require("@mui/system/RtlProvider");
19
+ var _isFocusVisible = _interopRequireDefault(require("@mui/utils/isFocusVisible"));
19
20
  var _zeroStyled = require("../zero-styled");
20
21
  var _DefaultPropsProvider = require("../DefaultPropsProvider");
21
22
  var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
@@ -24,7 +25,6 @@ var _Popper = _interopRequireDefault(require("../Popper"));
24
25
  var _useEventCallback = _interopRequireDefault(require("../utils/useEventCallback"));
25
26
  var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
26
27
  var _useId = _interopRequireDefault(require("../utils/useId"));
27
- var _useIsFocusVisible = _interopRequireDefault(require("../utils/useIsFocusVisible"));
28
28
  var _useControlled = _interopRequireDefault(require("../utils/useControlled"));
29
29
  var _tooltipClasses = _interopRequireWildcard(require("./tooltipClasses"));
30
30
  var _jsxRuntime = require("react/jsx-runtime");
@@ -454,18 +454,9 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
454
454
  handleClose(event);
455
455
  });
456
456
  };
457
- const {
458
- isFocusVisibleRef,
459
- onBlur: handleBlurVisible,
460
- onFocus: handleFocusVisible,
461
- ref: focusVisibleRef
462
- } = (0, _useIsFocusVisible.default)();
463
- // We don't necessarily care about the focusVisible state (which is safe to access via ref anyway).
464
- // We just need to re-render the Tooltip if the focus-visible state changes.
465
457
  const [, setChildIsFocusVisible] = React.useState(false);
466
458
  const handleBlur = event => {
467
- handleBlurVisible(event);
468
- if (isFocusVisibleRef.current === false) {
459
+ if (!(0, _isFocusVisible.default)(event.target)) {
469
460
  setChildIsFocusVisible(false);
470
461
  handleMouseLeave(event);
471
462
  }
@@ -477,8 +468,7 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
477
468
  if (!childNode) {
478
469
  setChildNode(event.currentTarget);
479
470
  }
480
- handleFocusVisible(event);
481
- if (isFocusVisibleRef.current === true) {
471
+ if ((0, _isFocusVisible.default)(event.target)) {
482
472
  setChildIsFocusVisible(true);
483
473
  handleMouseOver(event);
484
474
  }
@@ -530,7 +520,7 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
530
520
  document.removeEventListener('keydown', handleKeyDown);
531
521
  };
532
522
  }, [handleClose, open]);
533
- const handleRef = (0, _useForkRef.default)(children.ref, focusVisibleRef, setChildNode, ref);
523
+ const handleRef = (0, _useForkRef.default)(children.ref, setChildNode, ref);
534
524
 
535
525
  // There is no point in displaying an empty tooltip.
536
526
  // So we exclude all falsy values, except 0, which is valid.
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/material v6.0.0-alpha.13
2
+ * @mui/material v6.0.0-alpha.14
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -102,12 +102,6 @@ Object.defineProperty(exports, "useForkRef", {
102
102
  return _useForkRef.default;
103
103
  }
104
104
  });
105
- Object.defineProperty(exports, "useIsFocusVisible", {
106
- enumerable: true,
107
- get: function () {
108
- return _useIsFocusVisible.default;
109
- }
110
- });
111
105
  var _ClassNameGenerator = require("@mui/base/ClassNameGenerator");
112
106
  var _capitalize = _interopRequireDefault(require("./capitalize"));
113
107
  var _createChainedFunction = _interopRequireDefault(require("./createChainedFunction"));
@@ -125,7 +119,6 @@ var _unsupportedProp = _interopRequireDefault(require("./unsupportedProp"));
125
119
  var _useControlled = _interopRequireDefault(require("./useControlled"));
126
120
  var _useEventCallback = _interopRequireDefault(require("./useEventCallback"));
127
121
  var _useForkRef = _interopRequireDefault(require("./useForkRef"));
128
- var _useIsFocusVisible = _interopRequireDefault(require("./useIsFocusVisible"));
129
122
  // TODO: remove this export once ClassNameGenerator is stable
130
123
  // eslint-disable-next-line @typescript-eslint/naming-convention
131
124
  const unstable_ClassNameGenerator = exports.unstable_ClassNameGenerator = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/material",
3
- "version": "6.0.0-alpha.13",
3
+ "version": "6.0.0-alpha.14",
4
4
  "private": false,
5
5
  "author": "MUI Team",
6
6
  "description": "Material UI is an open-source React component library that implements Google's Material Design. It's comprehensive and can be used in production out of the box.",
@@ -32,13 +32,13 @@
32
32
  "clsx": "^2.1.1",
33
33
  "csstype": "^3.1.3",
34
34
  "prop-types": "^15.8.1",
35
- "react-is": "^18.2.0",
35
+ "react-is": "^18.3.1",
36
36
  "react-transition-group": "^4.4.5",
37
- "@mui/system": "6.0.0-alpha.13",
38
- "@mui/utils": "6.0.0-alpha.13",
39
- "@mui/core-downloads-tracker": "^6.0.0-alpha.13",
40
- "@mui/base": "5.0.0-beta.51",
41
- "@mui/types": "^7.2.14"
37
+ "@mui/core-downloads-tracker": "^6.0.0-alpha.14",
38
+ "@mui/types": "^7.2.14",
39
+ "@mui/utils": "6.0.0-alpha.14",
40
+ "@mui/system": "6.0.0-alpha.14",
41
+ "@mui/base": "5.0.0-beta.52"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "@emotion/react": "^11.5.0",
@@ -1,6 +1,5 @@
1
1
  import { Breakpoint } from '@mui/system';
2
2
  import { Typography } from './createTypography';
3
- import { Theme } from './createTheme';
4
3
 
5
4
  export interface ResponsiveFontSizesOptions {
6
5
  breakpoints?: Breakpoint[];
@@ -9,7 +8,7 @@ export interface ResponsiveFontSizesOptions {
9
8
  variants?: Array<keyof Typography>;
10
9
  }
11
10
 
12
- export default function responsiveFontSizes(
13
- theme: Theme,
11
+ export default function responsiveFontSizes<T extends { typography: Typography }>(
12
+ theme: T,
14
13
  options?: ResponsiveFontSizesOptions,
15
- ): Theme;
14
+ ): T;
package/utils/index.d.ts CHANGED
@@ -14,5 +14,4 @@ export { default as unsupportedProp } from './unsupportedProp';
14
14
  export { default as useControlled } from './useControlled';
15
15
  export { default as useEventCallback } from './useEventCallback';
16
16
  export { default as useForkRef } from './useForkRef';
17
- export { default as useIsFocusVisible } from './useIsFocusVisible';
18
17
  export { unstable_ClassNameGenerator } from '@mui/base/ClassNameGenerator';
package/utils/index.js CHANGED
@@ -17,7 +17,6 @@ export { default as unsupportedProp } from './unsupportedProp';
17
17
  export { default as useControlled } from './useControlled';
18
18
  export { default as useEventCallback } from './useEventCallback';
19
19
  export { default as useForkRef } from './useForkRef';
20
- export { default as useIsFocusVisible } from './useIsFocusVisible';
21
20
  // TODO: remove this export once ClassNameGenerator is stable
22
21
  // eslint-disable-next-line @typescript-eslint/naming-convention
23
22
  export const unstable_ClassNameGenerator = {
@@ -1,4 +0,0 @@
1
- 'use client';
2
-
3
- import useIsFocusVisible from '@mui/utils/useIsFocusVisible';
4
- export default useIsFocusVisible;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- 'use client';
3
-
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _useIsFocusVisible = _interopRequireDefault(require("@mui/utils/useIsFocusVisible"));
10
- var _default = exports.default = _useIsFocusVisible.default;
@@ -1,3 +0,0 @@
1
- import useIsFocusVisible from '@mui/utils/useIsFocusVisible';
2
-
3
- export default useIsFocusVisible;
@@ -1,4 +0,0 @@
1
- 'use client';
2
-
3
- import useIsFocusVisible from '@mui/utils/useIsFocusVisible';
4
- export default useIsFocusVisible;