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

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 (70) hide show
  1. package/Autocomplete/Autocomplete.d.mts +16 -0
  2. package/Autocomplete/Autocomplete.d.ts +16 -0
  3. package/Autocomplete/Autocomplete.js +48 -25
  4. package/Autocomplete/Autocomplete.mjs +48 -25
  5. package/Box/Box.d.mts +1 -0
  6. package/Box/Box.d.ts +1 -0
  7. package/Button/Button.d.mts +1 -0
  8. package/Button/Button.d.ts +1 -0
  9. package/CHANGELOG.md +37 -0
  10. package/CardHeader/CardHeader.js +5 -1
  11. package/CardHeader/CardHeader.mjs +5 -1
  12. package/Divider/Divider.d.mts +1 -0
  13. package/Divider/Divider.d.ts +1 -0
  14. package/List/List.d.mts +1 -0
  15. package/List/List.d.ts +1 -0
  16. package/ListItemButton/ListItemButton.d.mts +1 -0
  17. package/ListItemButton/ListItemButton.d.ts +1 -0
  18. package/ListItemIcon/ListItemIcon.d.mts +1 -0
  19. package/ListItemIcon/ListItemIcon.d.ts +1 -0
  20. package/ListItemText/ListItemText.d.mts +1 -0
  21. package/ListItemText/ListItemText.d.ts +1 -0
  22. package/ListItemText/ListItemText.js +5 -1
  23. package/ListItemText/ListItemText.mjs +5 -1
  24. package/ListSubheader/ListSubheader.d.mts +1 -0
  25. package/ListSubheader/ListSubheader.d.ts +1 -0
  26. package/MenuList/MenuList.js +76 -106
  27. package/MenuList/MenuList.mjs +76 -106
  28. package/Paper/Paper.d.mts +1 -0
  29. package/Paper/Paper.d.ts +1 -0
  30. package/Step/Step.js +7 -5
  31. package/Step/Step.mjs +7 -5
  32. package/StepButton/StepButton.js +16 -6
  33. package/StepButton/StepButton.mjs +16 -6
  34. package/StepConnector/StepConnector.js +2 -2
  35. package/StepConnector/StepConnector.mjs +2 -2
  36. package/StepContent/StepContent.js +2 -2
  37. package/StepContent/StepContent.mjs +2 -2
  38. package/StepLabel/StepLabel.js +2 -2
  39. package/StepLabel/StepLabel.mjs +2 -2
  40. package/Stepper/Stepper.js +44 -7
  41. package/Stepper/Stepper.mjs +44 -7
  42. package/Stepper/StepperContext.d.mts +7 -0
  43. package/Stepper/StepperContext.d.ts +7 -0
  44. package/Stepper/StepperContext.js +2 -1
  45. package/Stepper/StepperContext.mjs +1 -0
  46. package/Stepper/index.d.mts +0 -1
  47. package/Stepper/index.d.ts +0 -1
  48. package/Tab/Tab.js +0 -1
  49. package/Tab/Tab.mjs +0 -1
  50. package/Tabs/Tabs.js +46 -97
  51. package/Tabs/Tabs.mjs +46 -97
  52. package/Typography/Typography.d.mts +1 -0
  53. package/Typography/Typography.d.ts +1 -0
  54. package/index.js +1 -1
  55. package/index.mjs +1 -1
  56. package/package.json +236 -222
  57. package/themeCssVarsAugmentation/index.js +5 -0
  58. package/themeCssVarsAugmentation/index.mjs +5 -0
  59. package/useAutocomplete/useAutocomplete.js +24 -0
  60. package/useAutocomplete/useAutocomplete.mjs +24 -0
  61. package/utils/index.d.mts +2 -0
  62. package/utils/index.d.ts +2 -0
  63. package/utils/index.js +14 -0
  64. package/utils/index.mjs +2 -0
  65. package/utils/useRovingTabIndex.d.mts +2 -0
  66. package/utils/useRovingTabIndex.d.ts +2 -0
  67. package/utils/useRovingTabIndex.js +9 -0
  68. package/utils/useRovingTabIndex.mjs +2 -0
  69. package/version/index.js +2 -2
  70. package/version/index.mjs +2 -2
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,5 @@
1
+ export {};
2
+ /**
3
+ * Enhance the theme types to include new properties from the CssVarsProvider.
4
+ * The theme is typed with CSS variables in `styled`, `sx`, `useTheme`, etc.
5
+ */
@@ -134,6 +134,7 @@ function useAutocomplete(props) {
134
134
  const firstFocus = React.useRef(true);
135
135
  const inputRef = React.useRef(null);
136
136
  const listboxRef = React.useRef(null);
137
+ const windowLostFocus = React.useRef(false);
137
138
  const [anchorEl, setAnchorEl] = React.useState(null);
138
139
  const [focusedItem, setFocusedItem] = React.useState(-1);
139
140
  const defaultHighlighted = autoHighlight ? 0 : -1;
@@ -498,6 +499,21 @@ function useAutocomplete(props) {
498
499
  syncHighlightedIndex();
499
500
  }
500
501
  }, [syncHighlightedIndex, filteredOptionsChanged, popupOpen, disableCloseOnSelect]);
502
+
503
+ // Listen for browser window blur to detect when the user switches tabs or windows.
504
+ // This helps prevent the popup from reopening automatically when the window regains focus.
505
+ React.useEffect(() => {
506
+ if (typeof window === 'undefined') {
507
+ return undefined;
508
+ }
509
+ const handleWindowBlur = () => {
510
+ windowLostFocus.current = true;
511
+ };
512
+ window.addEventListener('blur', handleWindowBlur);
513
+ return () => {
514
+ window.removeEventListener('blur', handleWindowBlur);
515
+ };
516
+ }, []);
501
517
  const handleOpen = event => {
502
518
  if (open) {
503
519
  return;
@@ -833,6 +849,14 @@ function useAutocomplete(props) {
833
849
  // Ensure DOM focus lands on the input
834
850
  focusItem(-1);
835
851
  }
852
+
853
+ // If the window previously lost focus while the popup was open,
854
+ // ignore this focus event to prevent unintended reopening.
855
+ // Reset the flag so normal focus behavior resumes.
856
+ if (windowLostFocus.current) {
857
+ windowLostFocus.current = false;
858
+ return;
859
+ }
836
860
  if (openOnFocus && !ignoreFocus.current) {
837
861
  handleOpen(event);
838
862
  }
@@ -126,6 +126,7 @@ function useAutocomplete(props) {
126
126
  const firstFocus = React.useRef(true);
127
127
  const inputRef = React.useRef(null);
128
128
  const listboxRef = React.useRef(null);
129
+ const windowLostFocus = React.useRef(false);
129
130
  const [anchorEl, setAnchorEl] = React.useState(null);
130
131
  const [focusedItem, setFocusedItem] = React.useState(-1);
131
132
  const defaultHighlighted = autoHighlight ? 0 : -1;
@@ -490,6 +491,21 @@ function useAutocomplete(props) {
490
491
  syncHighlightedIndex();
491
492
  }
492
493
  }, [syncHighlightedIndex, filteredOptionsChanged, popupOpen, disableCloseOnSelect]);
494
+
495
+ // Listen for browser window blur to detect when the user switches tabs or windows.
496
+ // This helps prevent the popup from reopening automatically when the window regains focus.
497
+ React.useEffect(() => {
498
+ if (typeof window === 'undefined') {
499
+ return undefined;
500
+ }
501
+ const handleWindowBlur = () => {
502
+ windowLostFocus.current = true;
503
+ };
504
+ window.addEventListener('blur', handleWindowBlur);
505
+ return () => {
506
+ window.removeEventListener('blur', handleWindowBlur);
507
+ };
508
+ }, []);
493
509
  const handleOpen = event => {
494
510
  if (open) {
495
511
  return;
@@ -825,6 +841,14 @@ function useAutocomplete(props) {
825
841
  // Ensure DOM focus lands on the input
826
842
  focusItem(-1);
827
843
  }
844
+
845
+ // If the window previously lost focus while the popup was open,
846
+ // ignore this focus event to prevent unintended reopening.
847
+ // Reset the flag so normal focus behavior resumes.
848
+ if (windowLostFocus.current) {
849
+ windowLostFocus.current = false;
850
+ return;
851
+ }
828
852
  if (openOnFocus && !ignoreFocus.current) {
829
853
  handleOpen(event);
830
854
  }
package/utils/index.d.mts CHANGED
@@ -5,6 +5,7 @@ export { default as createSvgIcon } from "./createSvgIcon.mjs";
5
5
  export { default as debounce } from "./debounce.mjs";
6
6
  export { default as deprecatedPropType } from "./deprecatedPropType.mjs";
7
7
  export { default as isMuiElement } from "./isMuiElement.mjs";
8
+ export { default as getActiveElement } from "./getActiveElement.mjs";
8
9
  export { default as unstable_memoTheme } from "./memoTheme.mjs";
9
10
  export { default as ownerDocument } from "./ownerDocument.mjs";
10
11
  export { default as ownerWindow } from "./ownerWindow.mjs";
@@ -15,6 +16,7 @@ export { default as unstable_useId } from "./useId.mjs";
15
16
  export { default as unsupportedProp } from "./unsupportedProp.mjs";
16
17
  export { default as useControlled } from "./useControlled.mjs";
17
18
  export { default as useEventCallback } from "./useEventCallback.mjs";
19
+ export { default as useRovingTabIndex } from "./useRovingTabIndex.mjs";
18
20
  export { default as useForkRef } from "./useForkRef.mjs";
19
21
  export { default as mergeSlotProps } from "./mergeSlotProps.mjs";
20
22
  export * from "./types.mjs";
package/utils/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export { default as createSvgIcon } from "./createSvgIcon.js";
5
5
  export { default as debounce } from "./debounce.js";
6
6
  export { default as deprecatedPropType } from "./deprecatedPropType.js";
7
7
  export { default as isMuiElement } from "./isMuiElement.js";
8
+ export { default as getActiveElement } from "./getActiveElement.js";
8
9
  export { default as unstable_memoTheme } from "./memoTheme.js";
9
10
  export { default as ownerDocument } from "./ownerDocument.js";
10
11
  export { default as ownerWindow } from "./ownerWindow.js";
@@ -15,6 +16,7 @@ export { default as unstable_useId } from "./useId.js";
15
16
  export { default as unsupportedProp } from "./unsupportedProp.js";
16
17
  export { default as useControlled } from "./useControlled.js";
17
18
  export { default as useEventCallback } from "./useEventCallback.js";
19
+ export { default as useRovingTabIndex } from "./useRovingTabIndex.js";
18
20
  export { default as useForkRef } from "./useForkRef.js";
19
21
  export { default as mergeSlotProps } from "./mergeSlotProps.js";
20
22
  export * from "./types.js";
package/utils/index.js CHANGED
@@ -35,6 +35,12 @@ Object.defineProperty(exports, "deprecatedPropType", {
35
35
  return _deprecatedPropType.default;
36
36
  }
37
37
  });
38
+ Object.defineProperty(exports, "getActiveElement", {
39
+ enumerable: true,
40
+ get: function () {
41
+ return _getActiveElement.default;
42
+ }
43
+ });
38
44
  Object.defineProperty(exports, "isMuiElement", {
39
45
  enumerable: true,
40
46
  get: function () {
@@ -114,6 +120,12 @@ Object.defineProperty(exports, "useForkRef", {
114
120
  return _useForkRef.default;
115
121
  }
116
122
  });
123
+ Object.defineProperty(exports, "useRovingTabIndex", {
124
+ enumerable: true,
125
+ get: function () {
126
+ return _useRovingTabIndex.default;
127
+ }
128
+ });
117
129
  var _ClassNameGenerator = _interopRequireDefault(require("@mui/utils/ClassNameGenerator"));
118
130
  var _capitalize = _interopRequireDefault(require("./capitalize"));
119
131
  var _createChainedFunction = _interopRequireDefault(require("./createChainedFunction"));
@@ -121,6 +133,7 @@ var _createSvgIcon = _interopRequireDefault(require("./createSvgIcon"));
121
133
  var _debounce = _interopRequireDefault(require("./debounce"));
122
134
  var _deprecatedPropType = _interopRequireDefault(require("./deprecatedPropType"));
123
135
  var _isMuiElement = _interopRequireDefault(require("./isMuiElement"));
136
+ var _getActiveElement = _interopRequireDefault(require("./getActiveElement"));
124
137
  var _memoTheme = _interopRequireDefault(require("./memoTheme"));
125
138
  var _ownerDocument = _interopRequireDefault(require("./ownerDocument"));
126
139
  var _ownerWindow = _interopRequireDefault(require("./ownerWindow"));
@@ -131,6 +144,7 @@ var _useId = _interopRequireDefault(require("./useId"));
131
144
  var _unsupportedProp = _interopRequireDefault(require("./unsupportedProp"));
132
145
  var _useControlled = _interopRequireDefault(require("./useControlled"));
133
146
  var _useEventCallback = _interopRequireDefault(require("./useEventCallback"));
147
+ var _useRovingTabIndex = _interopRequireDefault(require("./useRovingTabIndex"));
134
148
  var _useForkRef = _interopRequireDefault(require("./useForkRef"));
135
149
  var _mergeSlotProps = _interopRequireDefault(require("./mergeSlotProps"));
136
150
  // TODO: remove this export once ClassNameGenerator is stable
package/utils/index.mjs CHANGED
@@ -7,6 +7,7 @@ export { default as createSvgIcon } from "./createSvgIcon.mjs";
7
7
  export { default as debounce } from "./debounce.mjs";
8
8
  export { default as deprecatedPropType } from "./deprecatedPropType.mjs";
9
9
  export { default as isMuiElement } from "./isMuiElement.mjs";
10
+ export { default as getActiveElement } from "./getActiveElement.mjs";
10
11
  export { default as unstable_memoTheme } from "./memoTheme.mjs";
11
12
  export { default as ownerDocument } from "./ownerDocument.mjs";
12
13
  export { default as ownerWindow } from "./ownerWindow.mjs";
@@ -17,6 +18,7 @@ export { default as unstable_useId } from "./useId.mjs";
17
18
  export { default as unsupportedProp } from "./unsupportedProp.mjs";
18
19
  export { default as useControlled } from "./useControlled.mjs";
19
20
  export { default as useEventCallback } from "./useEventCallback.mjs";
21
+ export { default as useRovingTabIndex } from "./useRovingTabIndex.mjs";
20
22
  export { default as useForkRef } from "./useForkRef.mjs";
21
23
  export { default as mergeSlotProps } from "./mergeSlotProps.mjs";
22
24
  // TODO: remove this export once ClassNameGenerator is stable
@@ -0,0 +1,2 @@
1
+ import useRovingTabIndex from '@mui/utils/useRovingTabIndex';
2
+ export default useRovingTabIndex;
@@ -0,0 +1,2 @@
1
+ import useRovingTabIndex from '@mui/utils/useRovingTabIndex';
2
+ export default useRovingTabIndex;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _useRovingTabIndex = _interopRequireDefault(require("@mui/utils/useRovingTabIndex"));
9
+ var _default = exports.default = _useRovingTabIndex.default;
@@ -0,0 +1,2 @@
1
+ import useRovingTabIndex from '@mui/utils/useRovingTabIndex';
2
+ export default useRovingTabIndex;
package/version/index.js CHANGED
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.version = exports.prerelease = exports.patch = exports.minor = exports.major = exports.default = void 0;
7
- const version = exports.version = "9.0.0-alpha.2";
7
+ const version = exports.version = "9.0.0-alpha.3";
8
8
  const major = exports.major = Number("9");
9
9
  const minor = exports.minor = Number("0");
10
10
  const patch = exports.patch = Number("0");
11
- const prerelease = exports.prerelease = "alpha.2";
11
+ const prerelease = exports.prerelease = "alpha.3";
12
12
  var _default = exports.default = version;
package/version/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- export const version = "9.0.0-alpha.2";
1
+ export const version = "9.0.0-alpha.3";
2
2
  export const major = Number("9");
3
3
  export const minor = Number("0");
4
4
  export const patch = Number("0");
5
- export const prerelease = "alpha.2";
5
+ export const prerelease = "alpha.3";
6
6
  export default version;