@mui/material 5.15.6 → 5.15.8

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 (90) hide show
  1. package/Accordion/Accordion.d.ts +2 -2
  2. package/Accordion/Accordion.js +2 -2
  3. package/Accordion/index.js +0 -2
  4. package/AccordionActions/index.js +0 -2
  5. package/AccordionDetails/index.js +0 -2
  6. package/AccordionSummary/index.js +0 -2
  7. package/Avatar/Avatar.js +5 -2
  8. package/AvatarGroup/AvatarGroup.js +19 -39
  9. package/Badge/Badge.js +2 -2
  10. package/ButtonBase/TouchRipple.js +9 -14
  11. package/CHANGELOG.md +186 -12
  12. package/Collapse/Collapse.js +3 -8
  13. package/Grow/Grow.js +3 -8
  14. package/Rating/index.js +0 -2
  15. package/Select/Select.js +1 -1
  16. package/Slider/Slider.d.ts +5 -0
  17. package/Slider/Slider.js +8 -1
  18. package/SpeedDial/SpeedDial.js +7 -12
  19. package/Toolbar/index.js +0 -2
  20. package/Tooltip/Tooltip.js +30 -40
  21. package/index.js +1 -3
  22. package/legacy/Accordion/Accordion.js +2 -2
  23. package/legacy/Accordion/index.js +0 -2
  24. package/legacy/AccordionActions/index.js +0 -2
  25. package/legacy/AccordionDetails/index.js +0 -2
  26. package/legacy/AccordionSummary/index.js +0 -2
  27. package/legacy/Avatar/Avatar.js +5 -2
  28. package/legacy/AvatarGroup/AvatarGroup.js +6 -31
  29. package/legacy/Badge/Badge.js +2 -2
  30. package/legacy/ButtonBase/TouchRipple.js +9 -14
  31. package/legacy/Collapse/Collapse.js +3 -8
  32. package/legacy/Grow/Grow.js +3 -8
  33. package/legacy/Rating/index.js +0 -2
  34. package/legacy/Select/Select.js +1 -1
  35. package/legacy/Slider/Slider.js +9 -1
  36. package/legacy/SpeedDial/SpeedDial.js +7 -12
  37. package/legacy/Toolbar/index.js +0 -2
  38. package/legacy/Tooltip/Tooltip.js +30 -38
  39. package/legacy/index.js +1 -3
  40. package/legacy/styles/createTheme.js +1 -13
  41. package/legacy/zero-styled/index.js +7 -2
  42. package/modern/Accordion/Accordion.js +2 -2
  43. package/modern/Accordion/index.js +0 -2
  44. package/modern/AccordionActions/index.js +0 -2
  45. package/modern/AccordionDetails/index.js +0 -2
  46. package/modern/AccordionSummary/index.js +0 -2
  47. package/modern/Avatar/Avatar.js +5 -2
  48. package/modern/AvatarGroup/AvatarGroup.js +19 -39
  49. package/modern/Badge/Badge.js +2 -2
  50. package/modern/ButtonBase/TouchRipple.js +9 -14
  51. package/modern/Collapse/Collapse.js +3 -8
  52. package/modern/Grow/Grow.js +3 -8
  53. package/modern/Rating/index.js +0 -2
  54. package/modern/Select/Select.js +1 -1
  55. package/modern/Slider/Slider.js +8 -1
  56. package/modern/SpeedDial/SpeedDial.js +7 -12
  57. package/modern/Toolbar/index.js +0 -2
  58. package/modern/Tooltip/Tooltip.js +30 -40
  59. package/modern/index.js +1 -3
  60. package/modern/styles/createTheme.js +1 -15
  61. package/modern/zero-styled/index.js +7 -2
  62. package/node/Accordion/Accordion.js +2 -2
  63. package/node/Accordion/index.js +0 -1
  64. package/node/AccordionActions/index.js +0 -1
  65. package/node/AccordionDetails/index.js +0 -1
  66. package/node/AccordionSummary/index.js +0 -1
  67. package/node/Avatar/Avatar.js +5 -2
  68. package/node/AvatarGroup/AvatarGroup.js +19 -39
  69. package/node/Badge/Badge.js +2 -2
  70. package/node/ButtonBase/TouchRipple.js +9 -14
  71. package/node/Collapse/Collapse.js +2 -7
  72. package/node/Grow/Grow.js +2 -7
  73. package/node/Rating/index.js +0 -1
  74. package/node/Select/Select.js +1 -1
  75. package/node/Slider/Slider.js +8 -1
  76. package/node/SpeedDial/SpeedDial.js +6 -11
  77. package/node/Toolbar/index.js +0 -1
  78. package/node/Tooltip/Tooltip.js +29 -39
  79. package/node/index.js +1 -3
  80. package/node/styles/createTheme.js +1 -15
  81. package/node/zero-styled/index.js +7 -1
  82. package/package.json +8 -7
  83. package/styles/createTheme.d.ts +0 -1
  84. package/styles/createTheme.js +1 -15
  85. package/styles/experimental_extendTheme.d.ts +3 -2
  86. package/styles/overrides.d.ts +13 -9
  87. package/umd/material-ui.development.js +1210 -1198
  88. package/umd/material-ui.production.min.js +4 -4
  89. package/zero-styled/index.d.ts +2 -1
  90. package/zero-styled/index.js +7 -2
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/material v5.15.6
2
+ * @mui/material v5.15.8
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -4992,7 +4992,7 @@
4992
4992
  injectFirst: PropTypes.bool
4993
4993
  } ;
4994
4994
 
4995
- function isEmpty$4(obj) {
4995
+ function isEmpty$3(obj) {
4996
4996
  return obj === undefined || obj === null || Object.keys(obj).length === 0;
4997
4997
  }
4998
4998
  function GlobalStyles$2(props) {
@@ -5000,7 +5000,7 @@
5000
5000
  _props$defaultTheme = props.defaultTheme,
5001
5001
  defaultTheme = _props$defaultTheme === void 0 ? {} : _props$defaultTheme;
5002
5002
  var globalStyles = typeof styles === 'function' ? function (themeInput) {
5003
- return styles(isEmpty$4(themeInput) ? defaultTheme : themeInput);
5003
+ return styles(isEmpty$3(themeInput) ? defaultTheme : themeInput);
5004
5004
  } : styles;
5005
5005
  return /*#__PURE__*/jsxRuntime_1(Global, {
5006
5006
  styles: globalStyles
@@ -5764,9 +5764,104 @@
5764
5764
  }, refs);
5765
5765
  }
5766
5766
 
5767
+ var UNINITIALIZED = {};
5768
+
5769
+ /**
5770
+ * A React.useRef() that is initialized lazily with a function. Note that it accepts an optional
5771
+ * initialization argument, so the initialization function doesn't need to be an inline closure.
5772
+ *
5773
+ * @usage
5774
+ * const ref = useLazyRef(sortColumns, columns)
5775
+ */
5776
+ function useLazyRef(init, initArg) {
5777
+ var ref = React__namespace.useRef(UNINITIALIZED);
5778
+ if (ref.current === UNINITIALIZED) {
5779
+ ref.current = init(initArg);
5780
+ }
5781
+ return ref;
5782
+ }
5783
+
5784
+ function _classCallCheck(instance, Constructor) {
5785
+ if (!(instance instanceof Constructor)) {
5786
+ throw new TypeError("Cannot call a class as a function");
5787
+ }
5788
+ }
5789
+
5790
+ function _defineProperties(target, props) {
5791
+ for (var i = 0; i < props.length; i++) {
5792
+ var descriptor = props[i];
5793
+ descriptor.enumerable = descriptor.enumerable || false;
5794
+ descriptor.configurable = true;
5795
+ if ("value" in descriptor) descriptor.writable = true;
5796
+ Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);
5797
+ }
5798
+ }
5799
+ function _createClass(Constructor, protoProps, staticProps) {
5800
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
5801
+ if (staticProps) _defineProperties(Constructor, staticProps);
5802
+ Object.defineProperty(Constructor, "prototype", {
5803
+ writable: false
5804
+ });
5805
+ return Constructor;
5806
+ }
5807
+
5808
+ var EMPTY = [];
5809
+
5810
+ /**
5811
+ * A React.useEffect equivalent that runs once, when the component is mounted.
5812
+ */
5813
+ function useOnMount(fn) {
5814
+ /* eslint-disable react-hooks/exhaustive-deps */
5815
+ React__namespace.useEffect(fn, EMPTY);
5816
+ /* eslint-enable react-hooks/exhaustive-deps */
5817
+ }
5818
+
5819
+ var Timeout = /*#__PURE__*/function () {
5820
+ function Timeout() {
5821
+ var _this = this;
5822
+ _classCallCheck(this, Timeout);
5823
+ this.currentId = 0;
5824
+ this.clear = function () {
5825
+ if (_this.currentId !== 0) {
5826
+ clearTimeout(_this.currentId);
5827
+ _this.currentId = 0;
5828
+ }
5829
+ };
5830
+ this.disposeEffect = function () {
5831
+ return _this.clear;
5832
+ };
5833
+ }
5834
+ _createClass(Timeout, [{
5835
+ key: "start",
5836
+ value:
5837
+ /**
5838
+ * Executes `fn` after `delay`, clearing any previously scheduled call.
5839
+ */
5840
+ function start(delay, fn) {
5841
+ var _this2 = this;
5842
+ this.clear();
5843
+ this.currentId = setTimeout(function () {
5844
+ _this2.currentId = 0;
5845
+ fn();
5846
+ }, delay);
5847
+ }
5848
+ }], [{
5849
+ key: "create",
5850
+ value: function create() {
5851
+ return new Timeout();
5852
+ }
5853
+ }]);
5854
+ return Timeout;
5855
+ }();
5856
+ function useTimeout() {
5857
+ var timeout = useLazyRef(Timeout.create).current;
5858
+ useOnMount(timeout.disposeEffect);
5859
+ return timeout;
5860
+ }
5861
+
5767
5862
  var hadKeyboardEvent = true;
5768
5863
  var hadFocusVisibleRecently = false;
5769
- var hadFocusVisibleRecentlyTimeout;
5864
+ var hadFocusVisibleRecentlyTimeout = new Timeout();
5770
5865
  var inputTypesWhitelist = {
5771
5866
  text: true,
5772
5867
  search: true,
@@ -5886,10 +5981,9 @@
5886
5981
  // If we don't see a visibility change within 100ms, it's probably a
5887
5982
  // regular focus change.
5888
5983
  hadFocusVisibleRecently = true;
5889
- window.clearTimeout(hadFocusVisibleRecentlyTimeout);
5890
- hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {
5984
+ hadFocusVisibleRecentlyTimeout.start(100, function () {
5891
5985
  hadFocusVisibleRecently = false;
5892
- }, 100);
5986
+ });
5893
5987
  isFocusVisibleRef.current = false;
5894
5988
  return true;
5895
5989
  }
@@ -7405,6 +7499,79 @@
7405
7499
  styleFunctionSx.filterProps = ['sx'];
7406
7500
  var styleFunctionSx$1 = styleFunctionSx;
7407
7501
 
7502
+ /**
7503
+ * A universal utility to style components with multiple color modes. Always use it from the theme object.
7504
+ * It works with:
7505
+ * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)
7506
+ * - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/)
7507
+ * - Zero-runtime engine
7508
+ *
7509
+ * Tips: Use an array over object spread and place `theme.applyStyles()` last.
7510
+ *
7511
+ * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })]
7512
+ *
7513
+ * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })}
7514
+ *
7515
+ * @example
7516
+ * 1. using with `styled`:
7517
+ * ```jsx
7518
+ * const Component = styled('div')(({ theme }) => [
7519
+ * { background: '#e5e5e5' },
7520
+ * theme.applyStyles('dark', {
7521
+ * background: '#1c1c1c',
7522
+ * color: '#fff',
7523
+ * }),
7524
+ * ]);
7525
+ * ```
7526
+ *
7527
+ * @example
7528
+ * 2. using with `sx` prop:
7529
+ * ```jsx
7530
+ * <Box sx={theme => [
7531
+ * { background: '#e5e5e5' },
7532
+ * theme.applyStyles('dark', {
7533
+ * background: '#1c1c1c',
7534
+ * color: '#fff',
7535
+ * }),
7536
+ * ]}
7537
+ * />
7538
+ * ```
7539
+ *
7540
+ * @example
7541
+ * 3. theming a component:
7542
+ * ```jsx
7543
+ * extendTheme({
7544
+ * components: {
7545
+ * MuiButton: {
7546
+ * styleOverrides: {
7547
+ * root: ({ theme }) => [
7548
+ * { background: '#e5e5e5' },
7549
+ * theme.applyStyles('dark', {
7550
+ * background: '#1c1c1c',
7551
+ * color: '#fff',
7552
+ * }),
7553
+ * ],
7554
+ * },
7555
+ * }
7556
+ * }
7557
+ * })
7558
+ *```
7559
+ */
7560
+ function applyStyles$2(key, styles) {
7561
+ // @ts-expect-error this is 'any' type
7562
+ var theme = this;
7563
+ if (theme.vars && typeof theme.getColorSchemeSelector === 'function') {
7564
+ // If CssVarsProvider is used as a provider,
7565
+ // returns '* :where([data-mui-color-scheme="light|dark"]) &'
7566
+ var selector = theme.getColorSchemeSelector(key).replace(/(\[[^\]]+\])/, '*:where($1)');
7567
+ return _defineProperty({}, selector, styles);
7568
+ }
7569
+ if (theme.palette.mode === key) {
7570
+ return styles;
7571
+ }
7572
+ return {};
7573
+ }
7574
+
7408
7575
  function createTheme$1() {
7409
7576
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7410
7577
  var _options$breakpoints = options.breakpoints,
@@ -7428,6 +7595,7 @@
7428
7595
  spacing: spacing,
7429
7596
  shape: _extends({}, shape$1, shapeInput)
7430
7597
  }, other);
7598
+ muiTheme.applyStyles = applyStyles$2;
7431
7599
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
7432
7600
  args[_key - 1] = arguments[_key];
7433
7601
  }
@@ -7561,29 +7729,6 @@
7561
7729
  return Box;
7562
7730
  }
7563
7731
 
7564
- function isEmpty$3(string) {
7565
- return string.length === 0;
7566
- }
7567
-
7568
- /**
7569
- * Generates string classKey based on the properties provided. It starts with the
7570
- * variant if defined, and then it appends all other properties in alphabetical order.
7571
- * @param {object} props - the properties for which the classKey should be created.
7572
- */
7573
- function propsToClassKey(props) {
7574
- var variant = props.variant,
7575
- other = _objectWithoutProperties(props, ["variant"]);
7576
- var classKey = variant || '';
7577
- Object.keys(other).sort().forEach(function (key) {
7578
- if (key === 'color') {
7579
- classKey += isEmpty$3(classKey) ? props[key] : capitalize(props[key]);
7580
- } else {
7581
- classKey += "".concat(isEmpty$3(classKey) ? key : capitalize(key)).concat(capitalize(props[key].toString()));
7582
- }
7583
- });
7584
- return classKey;
7585
- }
7586
-
7587
7732
  function isEmpty$2(obj) {
7588
7733
  return Object.keys(obj).length === 0;
7589
7734
  }
@@ -7596,73 +7741,6 @@
7596
7741
  // it's a lowercase character
7597
7742
  tag.charCodeAt(0) > 96;
7598
7743
  }
7599
- var getStyleOverrides = function getStyleOverrides(name, theme) {
7600
- if (theme.components && theme.components[name] && theme.components[name].styleOverrides) {
7601
- return theme.components[name].styleOverrides;
7602
- }
7603
- return null;
7604
- };
7605
- var transformVariants = function transformVariants(variants) {
7606
- var numOfCallbacks = 0;
7607
- var variantsStyles = {};
7608
- if (variants) {
7609
- variants.forEach(function (definition) {
7610
- var key = '';
7611
- if (typeof definition.props === 'function') {
7612
- key = "callback".concat(numOfCallbacks);
7613
- numOfCallbacks += 1;
7614
- } else {
7615
- key = propsToClassKey(definition.props);
7616
- }
7617
- variantsStyles[key] = definition.style;
7618
- });
7619
- }
7620
- return variantsStyles;
7621
- };
7622
- var getVariantStyles = function getVariantStyles(name, theme) {
7623
- var variants = [];
7624
- if (theme && theme.components && theme.components[name] && theme.components[name].variants) {
7625
- variants = theme.components[name].variants;
7626
- }
7627
- return transformVariants(variants);
7628
- };
7629
- var variantsResolver = function variantsResolver(props, styles, variants) {
7630
- var _props$ownerState = props.ownerState,
7631
- ownerState = _props$ownerState === void 0 ? {} : _props$ownerState;
7632
- var variantsStyles = [];
7633
- var numOfCallbacks = 0;
7634
- if (variants) {
7635
- variants.forEach(function (variant) {
7636
- var isMatch = true;
7637
- if (typeof variant.props === 'function') {
7638
- var propsToCheck = _extends({}, props, ownerState);
7639
- isMatch = variant.props(propsToCheck);
7640
- } else {
7641
- Object.keys(variant.props).forEach(function (key) {
7642
- if (ownerState[key] !== variant.props[key] && props[key] !== variant.props[key]) {
7643
- isMatch = false;
7644
- }
7645
- });
7646
- }
7647
- if (isMatch) {
7648
- if (typeof variant.props === 'function') {
7649
- variantsStyles.push(styles["callback".concat(numOfCallbacks)]);
7650
- } else {
7651
- variantsStyles.push(styles[propsToClassKey(variant.props)]);
7652
- }
7653
- }
7654
- if (typeof variant.props === 'function') {
7655
- numOfCallbacks += 1;
7656
- }
7657
- });
7658
- }
7659
- return variantsStyles;
7660
- };
7661
- var themeVariantsResolver = function themeVariantsResolver(props, styles, theme, name) {
7662
- var _theme$components;
7663
- var themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[name]) == null ? void 0 : _theme$components.variants;
7664
- return variantsResolver(props, styles, themeVariants);
7665
- };
7666
7744
 
7667
7745
  // Update /system/styled/#api in case if this changes
7668
7746
  function shouldForwardProp(prop) {
@@ -7689,28 +7767,50 @@
7689
7767
  return styles[slot];
7690
7768
  };
7691
7769
  }
7692
- var muiStyledFunctionResolver = function muiStyledFunctionResolver(_ref2) {
7693
- var styledArg = _ref2.styledArg,
7694
- props = _ref2.props,
7695
- defaultTheme = _ref2.defaultTheme,
7696
- themeId = _ref2.themeId;
7697
- var resolvedStyles = styledArg(_extends({}, props, {
7698
- theme: resolveTheme(_extends({}, props, {
7699
- defaultTheme: defaultTheme,
7700
- themeId: themeId
7701
- }))
7702
- }));
7703
- var optionalVariants;
7704
- if (resolvedStyles && resolvedStyles.variants) {
7705
- optionalVariants = resolvedStyles.variants;
7706
- delete resolvedStyles.variants;
7770
+ function processStyleArg(callableStyle, _ref2) {
7771
+ var ownerState = _ref2.ownerState,
7772
+ props = _objectWithoutProperties(_ref2, ["ownerState"]);
7773
+ var resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle(_extends({
7774
+ ownerState: ownerState
7775
+ }, props)) : callableStyle;
7776
+ if (Array.isArray(resolvedStylesArg)) {
7777
+ return resolvedStylesArg.flatMap(function (resolvedStyle) {
7778
+ return processStyleArg(resolvedStyle, _extends({
7779
+ ownerState: ownerState
7780
+ }, props));
7781
+ });
7707
7782
  }
7708
- if (optionalVariants) {
7709
- var variantsStyles = variantsResolver(props, transformVariants(optionalVariants), optionalVariants);
7710
- return [resolvedStyles].concat(_toConsumableArray(variantsStyles));
7783
+ if (!!resolvedStylesArg && _typeof(resolvedStylesArg) === 'object' && Array.isArray(resolvedStylesArg.variants)) {
7784
+ var _resolvedStylesArg$va = resolvedStylesArg.variants,
7785
+ variants = _resolvedStylesArg$va === void 0 ? [] : _resolvedStylesArg$va,
7786
+ otherStyles = _objectWithoutProperties(resolvedStylesArg, ["variants"]);
7787
+ var result = otherStyles;
7788
+ variants.forEach(function (variant) {
7789
+ var isMatch = true;
7790
+ if (typeof variant.props === 'function') {
7791
+ isMatch = variant.props(_extends({
7792
+ ownerState: ownerState
7793
+ }, props));
7794
+ } else {
7795
+ Object.keys(variant.props).forEach(function (key) {
7796
+ if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {
7797
+ isMatch = false;
7798
+ }
7799
+ });
7800
+ }
7801
+ if (isMatch) {
7802
+ if (!Array.isArray(result)) {
7803
+ result = [result];
7804
+ }
7805
+ result.push(typeof variant.style === 'function' ? variant.style(_extends({
7806
+ ownerState: ownerState
7807
+ }, props)) : variant.style);
7808
+ }
7809
+ });
7810
+ return result;
7711
7811
  }
7712
- return resolvedStyles;
7713
- };
7812
+ return resolvedStylesArg;
7813
+ }
7714
7814
  function createStyled() {
7715
7815
  var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7716
7816
  var themeId = input.themeId,
@@ -7774,102 +7874,65 @@
7774
7874
  shouldForwardProp: shouldForwardPropOption,
7775
7875
  label: label
7776
7876
  }, options));
7777
- var muiStyledResolver = function muiStyledResolver(styleArg) {
7778
- for (var _len = arguments.length, expressions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
7779
- expressions[_key - 1] = arguments[_key];
7780
- }
7781
- var expressionsWithDefaultTheme = expressions ? expressions.map(function (stylesArg) {
7782
- // On the server Emotion doesn't use React.forwardRef for creating components, so the created
7783
- // component stays as a function. This condition makes sure that we do not interpolate functions
7784
- // which are basically components used as a selectors.
7785
- if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg) {
7786
- return function (props) {
7787
- return muiStyledFunctionResolver({
7788
- styledArg: stylesArg,
7789
- props: props,
7790
- defaultTheme: defaultTheme,
7791
- themeId: themeId
7792
- });
7793
- };
7794
- }
7795
- if (isPlainObject(stylesArg)) {
7796
- var transformedStylesArg = stylesArg;
7797
- var styledArgVariants;
7798
- if (stylesArg && stylesArg.variants) {
7799
- styledArgVariants = stylesArg.variants;
7800
- delete transformedStylesArg.variants;
7801
- transformedStylesArg = function transformedStylesArg(props) {
7802
- var result = stylesArg;
7803
- var variantStyles = variantsResolver(props, transformVariants(styledArgVariants), styledArgVariants);
7804
- variantStyles.forEach(function (variantStyle) {
7805
- result = deepmerge(result, variantStyle);
7806
- });
7807
- return result;
7808
- };
7809
- }
7810
- return transformedStylesArg;
7811
- }
7812
- return stylesArg;
7813
- }) : [];
7814
- var transformedStyleArg = styleArg;
7815
- if (isPlainObject(styleArg)) {
7816
- var styledArgVariants;
7817
- if (styleArg && styleArg.variants) {
7818
- styledArgVariants = styleArg.variants;
7819
- delete transformedStyleArg.variants;
7820
- transformedStyleArg = function transformedStyleArg(props) {
7821
- var result = styleArg;
7822
- var variantStyles = variantsResolver(props, transformVariants(styledArgVariants), styledArgVariants);
7823
- variantStyles.forEach(function (variantStyle) {
7824
- result = deepmerge(result, variantStyle);
7825
- });
7826
- return result;
7827
- };
7828
- }
7829
- } else if (typeof styleArg === 'function' &&
7877
+ var transformStyleArg = function transformStyleArg(stylesArg) {
7830
7878
  // On the server Emotion doesn't use React.forwardRef for creating components, so the created
7831
7879
  // component stays as a function. This condition makes sure that we do not interpolate functions
7832
7880
  // which are basically components used as a selectors.
7833
- styleArg.__emotion_real !== styleArg) {
7834
- // If the type is function, we need to define the default theme.
7835
- transformedStyleArg = function transformedStyleArg(props) {
7836
- return muiStyledFunctionResolver({
7837
- styledArg: styleArg,
7838
- props: props,
7839
- defaultTheme: defaultTheme,
7840
- themeId: themeId
7841
- });
7881
+ if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || isPlainObject(stylesArg)) {
7882
+ return function (props) {
7883
+ return processStyleArg(stylesArg, _extends({}, props, {
7884
+ theme: resolveTheme({
7885
+ theme: props.theme,
7886
+ defaultTheme: defaultTheme,
7887
+ themeId: themeId
7888
+ })
7889
+ }));
7842
7890
  };
7843
7891
  }
7892
+ return stylesArg;
7893
+ };
7894
+ var muiStyledResolver = function muiStyledResolver(styleArg) {
7895
+ var transformedStyleArg = transformStyleArg(styleArg);
7896
+ for (var _len = arguments.length, expressions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
7897
+ expressions[_key - 1] = arguments[_key];
7898
+ }
7899
+ var expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];
7844
7900
  if (componentName && overridesResolver) {
7845
7901
  expressionsWithDefaultTheme.push(function (props) {
7846
7902
  var theme = resolveTheme(_extends({}, props, {
7847
7903
  defaultTheme: defaultTheme,
7848
7904
  themeId: themeId
7849
7905
  }));
7850
- var styleOverrides = getStyleOverrides(componentName, theme);
7851
- if (styleOverrides) {
7852
- var resolvedStyleOverrides = {};
7853
- Object.entries(styleOverrides).forEach(function (_ref3) {
7854
- var _ref4 = _slicedToArray(_ref3, 2),
7855
- slotKey = _ref4[0],
7856
- slotStyle = _ref4[1];
7857
- resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(_extends({}, props, {
7858
- theme: theme
7859
- })) : slotStyle;
7860
- });
7861
- return overridesResolver(props, resolvedStyleOverrides);
7906
+ if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {
7907
+ return null;
7862
7908
  }
7863
- return null;
7909
+ var styleOverrides = theme.components[componentName].styleOverrides;
7910
+ var resolvedStyleOverrides = {};
7911
+ // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly
7912
+ Object.entries(styleOverrides).forEach(function (_ref3) {
7913
+ var _ref4 = _slicedToArray(_ref3, 2),
7914
+ slotKey = _ref4[0],
7915
+ slotStyle = _ref4[1];
7916
+ resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, _extends({}, props, {
7917
+ theme: theme
7918
+ }));
7919
+ });
7920
+ return overridesResolver(props, resolvedStyleOverrides);
7864
7921
  });
7865
7922
  }
7866
7923
  if (componentName && !skipVariantsResolver) {
7867
7924
  expressionsWithDefaultTheme.push(function (props) {
7925
+ var _theme$components;
7868
7926
  var theme = resolveTheme(_extends({}, props, {
7869
7927
  defaultTheme: defaultTheme,
7870
7928
  themeId: themeId
7871
7929
  }));
7872
- return themeVariantsResolver(props, getVariantStyles(componentName, theme), theme, componentName);
7930
+ var themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;
7931
+ return processStyleArg({
7932
+ variants: themeVariants
7933
+ }, _extends({}, props, {
7934
+ theme: theme
7935
+ }));
7873
7936
  });
7874
7937
  }
7875
7938
  if (!skipSx) {
@@ -7918,7 +7981,7 @@
7918
7981
  return resolveProps(theme.components[name].defaultProps, props);
7919
7982
  }
7920
7983
 
7921
- function useThemeProps$1(_ref) {
7984
+ function useThemeProps$2(_ref) {
7922
7985
  var props = _ref.props,
7923
7986
  name = _ref.name,
7924
7987
  defaultTheme = _ref.defaultTheme,
@@ -9243,7 +9306,7 @@
9243
9306
  }
9244
9307
  });
9245
9308
  var useThemePropsDefault$2 = function useThemePropsDefault(inProps) {
9246
- return useThemeProps$1({
9309
+ return useThemeProps$2({
9247
9310
  props: inProps,
9248
9311
  name: 'MuiContainer',
9249
9312
  defaultTheme: defaultTheme$6
@@ -9631,7 +9694,7 @@
9631
9694
  }
9632
9695
  });
9633
9696
  function useThemePropsDefault$1(props) {
9634
- return useThemeProps$1({
9697
+ return useThemeProps$2({
9635
9698
  props: props,
9636
9699
  name: 'MuiGrid',
9637
9700
  defaultTheme: defaultTheme$5
@@ -9795,7 +9858,7 @@
9795
9858
  }
9796
9859
  });
9797
9860
  function useThemePropsDefault(props) {
9798
- return useThemeProps$1({
9861
+ return useThemeProps$2({
9799
9862
  props: props,
9800
9863
  name: 'MuiStack',
9801
9864
  defaultTheme: defaultTheme$4
@@ -10565,19 +10628,7 @@
10565
10628
  shadows: shadows$1.slice(),
10566
10629
  typography: createTypography(palette, typographyInput),
10567
10630
  transitions: createTransitions(transitionsInput),
10568
- zIndex: _extends({}, zIndex$1),
10569
- applyDarkStyles: function applyDarkStyles(css) {
10570
- if (this.vars) {
10571
- // If CssVarsProvider is used as a provider,
10572
- // returns ':where([data-mui-color-scheme="light|dark"]) &'
10573
- var selector = this.getColorSchemeSelector('dark').replace(/(\[[^\]]+\])/, ':where($1)');
10574
- return _defineProperty({}, selector, css);
10575
- }
10576
- if (this.palette.mode === 'dark') {
10577
- return css;
10578
- }
10579
- return {};
10580
- }
10631
+ zIndex: _extends({}, zIndex$1)
10581
10632
  });
10582
10633
  muiTheme = deepmerge(muiTheme, other);
10583
10634
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
@@ -10849,10 +10900,10 @@
10849
10900
  return theme[THEME_ID] || theme;
10850
10901
  }
10851
10902
 
10852
- function useThemeProps(_ref) {
10903
+ function useThemeProps$1(_ref) {
10853
10904
  var props = _ref.props,
10854
10905
  name = _ref.name;
10855
- return useThemeProps$1({
10906
+ return useThemeProps$2({
10856
10907
  props: props,
10857
10908
  name: name,
10858
10909
  defaultTheme: defaultTheme$3,
@@ -11343,7 +11394,7 @@
11343
11394
  };
11344
11395
  });
11345
11396
  var SvgIcon = /*#__PURE__*/React__namespace.forwardRef(function SvgIcon(inProps, ref) {
11346
- var props = useThemeProps({
11397
+ var props = useThemeProps$1({
11347
11398
  props: inProps,
11348
11399
  name: 'MuiSvgIcon'
11349
11400
  });
@@ -12587,7 +12638,7 @@
12587
12638
  * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.
12588
12639
  */
12589
12640
  var Collapse = /*#__PURE__*/React__namespace.forwardRef(function Collapse(inProps, ref) {
12590
- var props = useThemeProps({
12641
+ var props = useThemeProps$1({
12591
12642
  props: inProps,
12592
12643
  name: 'MuiCollapse'
12593
12644
  });
@@ -12619,17 +12670,12 @@
12619
12670
  });
12620
12671
  var classes = useUtilityClasses$1N(ownerState);
12621
12672
  var theme = useTheme();
12622
- var timer = React__namespace.useRef();
12673
+ var timer = useTimeout();
12623
12674
  var wrapperRef = React__namespace.useRef(null);
12624
12675
  var autoTransitionDuration = React__namespace.useRef();
12625
12676
  var collapsedSize = typeof collapsedSizeProp === 'number' ? "".concat(collapsedSizeProp, "px") : collapsedSizeProp;
12626
12677
  var isHorizontal = orientation === 'horizontal';
12627
12678
  var size = isHorizontal ? 'width' : 'height';
12628
- React__namespace.useEffect(function () {
12629
- return function () {
12630
- clearTimeout(timer.current);
12631
- };
12632
- }, []);
12633
12679
  var nodeRef = React__namespace.useRef(null);
12634
12680
  var handleRef = useForkRef(ref, nodeRef);
12635
12681
  var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {
@@ -12728,7 +12774,7 @@
12728
12774
  });
12729
12775
  var handleAddEndListener = function handleAddEndListener(next) {
12730
12776
  if (timeout === 'auto') {
12731
- timer.current = setTimeout(next, autoTransitionDuration.current || 0);
12777
+ timer.start(autoTransitionDuration.current || 0, next);
12732
12778
  }
12733
12779
  if (addEndListener) {
12734
12780
  // Old call signature before `react-transition-group` implemented `nodeRef`
@@ -12920,7 +12966,7 @@
12920
12966
  }));
12921
12967
  });
12922
12968
  var Paper = /*#__PURE__*/React__namespace.forwardRef(function Paper(inProps, ref) {
12923
- var props = useThemeProps({
12969
+ var props = useThemeProps$1({
12924
12970
  props: inProps,
12925
12971
  name: 'MuiPaper'
12926
12972
  });
@@ -13380,7 +13426,7 @@
13380
13426
  }));
13381
13427
  });
13382
13428
  var Accordion = /*#__PURE__*/React__namespace.forwardRef(function Accordion(inProps, ref) {
13383
- var props = useThemeProps({
13429
+ var props = useThemeProps$1({
13384
13430
  props: inProps,
13385
13431
  name: 'MuiAccordion'
13386
13432
  });
@@ -13557,13 +13603,13 @@
13557
13603
  /**
13558
13604
  * The component used for the transition.
13559
13605
  * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
13560
- * @deprecated Use `slots.transition` instead. This prop will be removed in v7.
13606
+ * @deprecated Use `slots.transition` instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
13561
13607
  */
13562
13608
  TransitionComponent: PropTypes.elementType,
13563
13609
  /**
13564
13610
  * Props applied to the transition element.
13565
13611
  * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.
13566
- * @deprecated Use `slotProps.transition` instead. This prop will be removed in v7.
13612
+ * @deprecated Use `slotProps.transition` instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
13567
13613
  */
13568
13614
  TransitionProps: PropTypes.object
13569
13615
  } ;
@@ -13604,7 +13650,7 @@
13604
13650
  });
13605
13651
  });
13606
13652
  var AccordionActions = /*#__PURE__*/React__namespace.forwardRef(function AccordionActions(inProps, ref) {
13607
- var props = useThemeProps({
13653
+ var props = useThemeProps$1({
13608
13654
  props: inProps,
13609
13655
  name: 'MuiAccordionActions'
13610
13656
  });
@@ -13677,7 +13723,7 @@
13677
13723
  };
13678
13724
  });
13679
13725
  var AccordionDetails = /*#__PURE__*/React__namespace.forwardRef(function AccordionDetails(inProps, ref) {
13680
- var props = useThemeProps({
13726
+ var props = useThemeProps$1({
13681
13727
  props: inProps,
13682
13728
  name: 'MuiAccordionDetails'
13683
13729
  });
@@ -13858,7 +13904,7 @@
13858
13904
  * TODO v5: Make private
13859
13905
  */
13860
13906
  var TouchRipple = /*#__PURE__*/React__namespace.forwardRef(function TouchRipple(inProps, ref) {
13861
- var props = useThemeProps({
13907
+ var props = useThemeProps$1({
13862
13908
  props: inProps,
13863
13909
  name: 'MuiTouchRipple'
13864
13910
  });
@@ -13884,18 +13930,11 @@
13884
13930
  var ignoringMouseDown = React__namespace.useRef(false);
13885
13931
  // We use a timer in order to only show the ripples for touch "click" like events.
13886
13932
  // We don't want to display the ripple for touch scroll events.
13887
- var startTimer = React__namespace.useRef(0);
13933
+ var startTimer = useTimeout();
13888
13934
 
13889
13935
  // This is the hook called once the previous timeout is ready.
13890
13936
  var startTimerCommit = React__namespace.useRef(null);
13891
13937
  var container = React__namespace.useRef(null);
13892
- React__namespace.useEffect(function () {
13893
- return function () {
13894
- if (startTimer.current) {
13895
- clearTimeout(startTimer.current);
13896
- }
13897
- };
13898
- }, []);
13899
13938
  var startCommit = React__namespace.useCallback(function (params) {
13900
13939
  var pulsate = params.pulsate,
13901
13940
  rippleX = params.rippleX,
@@ -13991,12 +14030,13 @@
13991
14030
  });
13992
14031
  };
13993
14032
  // Delay the execution of the ripple effect.
13994
- startTimer.current = setTimeout(function () {
14033
+ // We have to make a tradeoff with this delay value.
14034
+ startTimer.start(DELAY_RIPPLE, function () {
13995
14035
  if (startTimerCommit.current) {
13996
14036
  startTimerCommit.current();
13997
14037
  startTimerCommit.current = null;
13998
14038
  }
13999
- }, DELAY_RIPPLE); // We have to make a tradeoff with this value.
14039
+ });
14000
14040
  }
14001
14041
  } else {
14002
14042
  startCommit({
@@ -14007,21 +14047,21 @@
14007
14047
  cb: cb
14008
14048
  });
14009
14049
  }
14010
- }, [centerProp, startCommit]);
14050
+ }, [centerProp, startCommit, startTimer]);
14011
14051
  var pulsate = React__namespace.useCallback(function () {
14012
14052
  start({}, {
14013
14053
  pulsate: true
14014
14054
  });
14015
14055
  }, [start]);
14016
14056
  var stop = React__namespace.useCallback(function (event, cb) {
14017
- clearTimeout(startTimer.current);
14057
+ startTimer.clear();
14018
14058
 
14019
14059
  // The touch interaction occurs too quickly.
14020
14060
  // We still want to show ripple effect.
14021
14061
  if ((event == null ? void 0 : event.type) === 'touchend' && startTimerCommit.current) {
14022
14062
  startTimerCommit.current();
14023
14063
  startTimerCommit.current = null;
14024
- startTimer.current = setTimeout(function () {
14064
+ startTimer.start(0, function () {
14025
14065
  stop(event, cb);
14026
14066
  });
14027
14067
  return;
@@ -14034,7 +14074,7 @@
14034
14074
  return oldRipples;
14035
14075
  });
14036
14076
  rippleCallback.current = cb;
14037
- }, []);
14077
+ }, [startTimer]);
14038
14078
  React__namespace.useImperativeHandle(ref, function () {
14039
14079
  return {
14040
14080
  pulsate: pulsate,
@@ -14141,7 +14181,7 @@
14141
14181
  * It contains a load of style reset and some focus/ripple logic.
14142
14182
  */
14143
14183
  var ButtonBase = /*#__PURE__*/React__namespace.forwardRef(function ButtonBase(inProps, ref) {
14144
- var props = useThemeProps({
14184
+ var props = useThemeProps$1({
14145
14185
  props: inProps,
14146
14186
  name: 'MuiButtonBase'
14147
14187
  });
@@ -14633,7 +14673,7 @@
14633
14673
  });
14634
14674
  });
14635
14675
  var AccordionSummary = /*#__PURE__*/React__namespace.forwardRef(function AccordionSummary(inProps, ref) {
14636
- var props = useThemeProps({
14676
+ var props = useThemeProps$1({
14637
14677
  props: inProps,
14638
14678
  name: 'MuiAccordionSummary'
14639
14679
  });
@@ -14820,7 +14860,7 @@
14820
14860
  * regarding the available icon options.
14821
14861
  */
14822
14862
  var IconButton = /*#__PURE__*/React__namespace.forwardRef(function IconButton(inProps, ref) {
14823
- var props = useThemeProps({
14863
+ var props = useThemeProps$1({
14824
14864
  props: inProps,
14825
14865
  name: 'MuiIconButton'
14826
14866
  });
@@ -15054,7 +15094,7 @@
15054
15094
  };
15055
15095
  var Alert = /*#__PURE__*/React__namespace.forwardRef(function Alert(inProps, ref) {
15056
15096
  var _ref4, _slots$closeButton, _ref5, _slots$closeIcon, _slotProps$closeButto, _slotProps$closeIcon;
15057
- var props = useThemeProps({
15097
+ var props = useThemeProps$1({
15058
15098
  props: inProps,
15059
15099
  name: 'MuiAlert'
15060
15100
  });
@@ -15328,7 +15368,7 @@
15328
15368
  return colorTransformations$1[color] || color;
15329
15369
  };
15330
15370
  var Typography = /*#__PURE__*/React__namespace.forwardRef(function Typography(inProps, ref) {
15331
- var themeProps = useThemeProps({
15371
+ var themeProps = useThemeProps$1({
15332
15372
  props: inProps,
15333
15373
  name: 'MuiTypography'
15334
15374
  });
@@ -15475,7 +15515,7 @@
15475
15515
  };
15476
15516
  });
15477
15517
  var AlertTitle = /*#__PURE__*/React__namespace.forwardRef(function AlertTitle(inProps, ref) {
15478
- var props = useThemeProps({
15518
+ var props = useThemeProps$1({
15479
15519
  props: inProps,
15480
15520
  name: 'MuiAlertTitle'
15481
15521
  });
@@ -15613,7 +15653,7 @@
15613
15653
  }));
15614
15654
  });
15615
15655
  var AppBar = /*#__PURE__*/React__namespace.forwardRef(function AppBar(inProps, ref) {
15616
- var props = useThemeProps({
15656
+ var props = useThemeProps$1({
15617
15657
  props: inProps,
15618
15658
  name: 'MuiAppBar'
15619
15659
  });
@@ -16255,112 +16295,695 @@
16255
16295
  FocusTrap['propTypes' + ''] = exactProp(FocusTrap.propTypes);
16256
16296
  }
16257
16297
 
16258
- var top = 'top';
16259
- var bottom = 'bottom';
16260
- var right = 'right';
16261
- var left = 'left';
16262
- var auto = 'auto';
16263
- var basePlacements = [top, bottom, right, left];
16264
- var start = 'start';
16265
- var end = 'end';
16266
- var clippingParents = 'clippingParents';
16267
- var viewport = 'viewport';
16268
- var popper = 'popper';
16269
- var reference = 'reference';
16270
- var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
16271
- return acc.concat([placement + "-" + start, placement + "-" + end]);
16272
- }, []);
16273
- var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
16274
- return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
16275
- }, []); // modifiers that need to read the DOM
16276
-
16277
- var beforeRead = 'beforeRead';
16278
- var read = 'read';
16279
- var afterRead = 'afterRead'; // pure-logic modifiers
16280
-
16281
- var beforeMain = 'beforeMain';
16282
- var main = 'main';
16283
- var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)
16284
-
16285
- var beforeWrite = 'beforeWrite';
16286
- var write = 'write';
16287
- var afterWrite = 'afterWrite';
16288
- var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
16289
-
16290
- function getNodeName(element) {
16291
- return element ? (element.nodeName || '').toLowerCase() : null;
16298
+ function getContainer$1(container) {
16299
+ return typeof container === 'function' ? container() : container;
16292
16300
  }
16293
16301
 
16294
- function getWindow(node) {
16295
- if (node == null) {
16296
- return window;
16302
+ /**
16303
+ * Portals provide a first-class way to render children into a DOM node
16304
+ * that exists outside the DOM hierarchy of the parent component.
16305
+ *
16306
+ * Demos:
16307
+ *
16308
+ * - [Portal](https://mui.com/base-ui/react-portal/)
16309
+ *
16310
+ * API:
16311
+ *
16312
+ * - [Portal API](https://mui.com/base-ui/react-portal/components-api/#portal)
16313
+ */
16314
+ var Portal = /*#__PURE__*/React__namespace.forwardRef(function Portal(props, forwardedRef) {
16315
+ var children = props.children,
16316
+ container = props.container,
16317
+ _props$disablePortal = props.disablePortal,
16318
+ disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal;
16319
+ var _React$useState = React__namespace.useState(null),
16320
+ mountNode = _React$useState[0],
16321
+ setMountNode = _React$useState[1]; // @ts-expect-error TODO upstream fix
16322
+ var handleRef = useForkRef( /*#__PURE__*/React__namespace.isValidElement(children) ? children.ref : null, forwardedRef);
16323
+ useEnhancedEffect$1(function () {
16324
+ if (!disablePortal) {
16325
+ setMountNode(getContainer$1(container) || document.body);
16326
+ }
16327
+ }, [container, disablePortal]);
16328
+ useEnhancedEffect$1(function () {
16329
+ if (mountNode && !disablePortal) {
16330
+ setRef(forwardedRef, mountNode);
16331
+ return function () {
16332
+ setRef(forwardedRef, null);
16333
+ };
16334
+ }
16335
+ return undefined;
16336
+ }, [forwardedRef, mountNode, disablePortal]);
16337
+ if (disablePortal) {
16338
+ if ( /*#__PURE__*/React__namespace.isValidElement(children)) {
16339
+ var newProps = {
16340
+ ref: handleRef
16341
+ };
16342
+ return /*#__PURE__*/React__namespace.cloneElement(children, newProps);
16343
+ }
16344
+ return /*#__PURE__*/jsxRuntime_1(React__namespace.Fragment, {
16345
+ children: children
16346
+ });
16297
16347
  }
16348
+ return /*#__PURE__*/jsxRuntime_1(React__namespace.Fragment, {
16349
+ children: mountNode ? /*#__PURE__*/ReactDOM__namespace.createPortal(children, mountNode) : mountNode
16350
+ });
16351
+ });
16352
+ Portal.propTypes /* remove-proptypes */ = {
16353
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
16354
+ // │ These PropTypes are generated from the TypeScript type definitions. │
16355
+ // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
16356
+ // └─────────────────────────────────────────────────────────────────────┘
16357
+ /**
16358
+ * The children to render into the `container`.
16359
+ */
16360
+ children: PropTypes.node,
16361
+ /**
16362
+ * An HTML element or function that returns one.
16363
+ * The `container` will have the portal children appended to it.
16364
+ *
16365
+ * You can also provide a callback, which is called in a React layout effect.
16366
+ * This lets you set the container from a ref, and also makes server-side rendering possible.
16367
+ *
16368
+ * By default, it uses the body of the top-level document object,
16369
+ * so it's simply `document.body` most of the time.
16370
+ */
16371
+ container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),
16372
+ /**
16373
+ * The `children` will be under the DOM hierarchy of the parent component.
16374
+ * @default false
16375
+ */
16376
+ disablePortal: PropTypes.bool
16377
+ } ;
16378
+ {
16379
+ // eslint-disable-next-line
16380
+ Portal['propTypes' + ''] = exactProp(Portal.propTypes);
16381
+ }
16298
16382
 
16299
- if (node.toString() !== '[object Window]') {
16300
- var ownerDocument = node.ownerDocument;
16301
- return ownerDocument ? ownerDocument.defaultView || window : window;
16383
+ // Is a vertical scrollbar displayed?
16384
+ function isOverflowing(container) {
16385
+ var doc = ownerDocument(container);
16386
+ if (doc.body === container) {
16387
+ return ownerWindow(container).innerWidth > doc.documentElement.clientWidth;
16302
16388
  }
16303
-
16304
- return node;
16389
+ return container.scrollHeight > container.clientHeight;
16305
16390
  }
16306
-
16307
- function isElement(node) {
16308
- var OwnElement = getWindow(node).Element;
16309
- return node instanceof OwnElement || node instanceof Element;
16391
+ function ariaHidden(element, show) {
16392
+ if (show) {
16393
+ element.setAttribute('aria-hidden', 'true');
16394
+ } else {
16395
+ element.removeAttribute('aria-hidden');
16396
+ }
16310
16397
  }
16311
-
16312
- function isHTMLElement$1(node) {
16313
- var OwnElement = getWindow(node).HTMLElement;
16314
- return node instanceof OwnElement || node instanceof HTMLElement;
16398
+ function getPaddingRight(element) {
16399
+ return parseInt(ownerWindow(element).getComputedStyle(element).paddingRight, 10) || 0;
16315
16400
  }
16316
-
16317
- function isShadowRoot(node) {
16318
- // IE 11 has no ShadowRoot
16319
- if (typeof ShadowRoot === 'undefined') {
16401
+ function isAriaHiddenForbiddenOnElement(element) {
16402
+ // The forbidden HTML tags are the ones from ARIA specification that
16403
+ // can be children of body and can't have aria-hidden attribute.
16404
+ // cf. https://www.w3.org/TR/html-aria/#docconformance
16405
+ var forbiddenTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE', 'LINK', 'MAP', 'META', 'NOSCRIPT', 'PICTURE', 'COL', 'COLGROUP', 'PARAM', 'SLOT', 'SOURCE', 'TRACK'];
16406
+ var isForbiddenTagName = forbiddenTagNames.indexOf(element.tagName) !== -1;
16407
+ var isInputHidden = element.tagName === 'INPUT' && element.getAttribute('type') === 'hidden';
16408
+ return isForbiddenTagName || isInputHidden;
16409
+ }
16410
+ function ariaHiddenSiblings(container, mountElement, currentElement, elementsToExclude, show) {
16411
+ var blacklist = [mountElement, currentElement].concat(_toConsumableArray(elementsToExclude));
16412
+ [].forEach.call(container.children, function (element) {
16413
+ var isNotExcludedElement = blacklist.indexOf(element) === -1;
16414
+ var isNotForbiddenElement = !isAriaHiddenForbiddenOnElement(element);
16415
+ if (isNotExcludedElement && isNotForbiddenElement) {
16416
+ ariaHidden(element, show);
16417
+ }
16418
+ });
16419
+ }
16420
+ function findIndexOf(items, callback) {
16421
+ var idx = -1;
16422
+ items.some(function (item, index) {
16423
+ if (callback(item)) {
16424
+ idx = index;
16425
+ return true;
16426
+ }
16320
16427
  return false;
16321
- }
16322
-
16323
- var OwnElement = getWindow(node).ShadowRoot;
16324
- return node instanceof OwnElement || node instanceof ShadowRoot;
16428
+ });
16429
+ return idx;
16325
16430
  }
16431
+ function handleContainer(containerInfo, props) {
16432
+ var restoreStyle = [];
16433
+ var container = containerInfo.container;
16434
+ if (!props.disableScrollLock) {
16435
+ if (isOverflowing(container)) {
16436
+ // Compute the size before applying overflow hidden to avoid any scroll jumps.
16437
+ var scrollbarSize = getScrollbarSize(ownerDocument(container));
16438
+ restoreStyle.push({
16439
+ value: container.style.paddingRight,
16440
+ property: 'padding-right',
16441
+ el: container
16442
+ });
16443
+ // Use computed style, here to get the real padding to add our scrollbar width.
16444
+ container.style.paddingRight = "".concat(getPaddingRight(container) + scrollbarSize, "px");
16326
16445
 
16327
- // and applies them to the HTMLElements such as popper and arrow
16328
-
16329
- function applyStyles(_ref) {
16330
- var state = _ref.state;
16331
- Object.keys(state.elements).forEach(function (name) {
16332
- var style = state.styles[name] || {};
16333
- var attributes = state.attributes[name] || {};
16334
- var element = state.elements[name]; // arrow is optional + virtual elements
16335
-
16336
- if (!isHTMLElement$1(element) || !getNodeName(element)) {
16337
- return;
16338
- } // Flow doesn't support to extend this property, but it's the most
16339
- // effective way to apply styles to an HTMLElement
16340
- // $FlowFixMe[cannot-write]
16341
-
16342
-
16343
- Object.assign(element.style, style);
16344
- Object.keys(attributes).forEach(function (name) {
16345
- var value = attributes[name];
16446
+ // .mui-fixed is a global helper.
16447
+ var fixedElements = ownerDocument(container).querySelectorAll('.mui-fixed');
16448
+ [].forEach.call(fixedElements, function (element) {
16449
+ restoreStyle.push({
16450
+ value: element.style.paddingRight,
16451
+ property: 'padding-right',
16452
+ el: element
16453
+ });
16454
+ element.style.paddingRight = "".concat(getPaddingRight(element) + scrollbarSize, "px");
16455
+ });
16456
+ }
16457
+ var scrollContainer;
16458
+ if (container.parentNode instanceof DocumentFragment) {
16459
+ scrollContainer = ownerDocument(container).body;
16460
+ } else {
16461
+ // Support html overflow-y: auto for scroll stability between pages
16462
+ // https://css-tricks.com/snippets/css/force-vertical-scrollbar/
16463
+ var parent = container.parentElement;
16464
+ var containerWindow = ownerWindow(container);
16465
+ scrollContainer = (parent == null ? void 0 : parent.nodeName) === 'HTML' && containerWindow.getComputedStyle(parent).overflowY === 'scroll' ? parent : container;
16466
+ }
16346
16467
 
16347
- if (value === false) {
16348
- element.removeAttribute(name);
16468
+ // Block the scroll even if no scrollbar is visible to account for mobile keyboard
16469
+ // screensize shrink.
16470
+ restoreStyle.push({
16471
+ value: scrollContainer.style.overflow,
16472
+ property: 'overflow',
16473
+ el: scrollContainer
16474
+ }, {
16475
+ value: scrollContainer.style.overflowX,
16476
+ property: 'overflow-x',
16477
+ el: scrollContainer
16478
+ }, {
16479
+ value: scrollContainer.style.overflowY,
16480
+ property: 'overflow-y',
16481
+ el: scrollContainer
16482
+ });
16483
+ scrollContainer.style.overflow = 'hidden';
16484
+ }
16485
+ var restore = function restore() {
16486
+ restoreStyle.forEach(function (_ref) {
16487
+ var value = _ref.value,
16488
+ el = _ref.el,
16489
+ property = _ref.property;
16490
+ if (value) {
16491
+ el.style.setProperty(property, value);
16349
16492
  } else {
16350
- element.setAttribute(name, value === true ? '' : value);
16493
+ el.style.removeProperty(property);
16351
16494
  }
16352
16495
  });
16496
+ };
16497
+ return restore;
16498
+ }
16499
+ function getHiddenSiblings(container) {
16500
+ var hiddenSiblings = [];
16501
+ [].forEach.call(container.children, function (element) {
16502
+ if (element.getAttribute('aria-hidden') === 'true') {
16503
+ hiddenSiblings.push(element);
16504
+ }
16353
16505
  });
16506
+ return hiddenSiblings;
16354
16507
  }
16508
+ /**
16509
+ * @ignore - do not document.
16510
+ *
16511
+ * Proper state management for containers and the modals in those containers.
16512
+ * Simplified, but inspired by react-overlay's ModalManager class.
16513
+ * Used by the Modal to ensure proper styling of containers.
16514
+ */
16515
+ var ModalManager = /*#__PURE__*/function () {
16516
+ function ModalManager() {
16517
+ _classCallCheck(this, ModalManager);
16518
+ this.containers = void 0;
16519
+ this.modals = void 0;
16520
+ this.modals = [];
16521
+ this.containers = [];
16522
+ }
16523
+ _createClass(ModalManager, [{
16524
+ key: "add",
16525
+ value: function add(modal, container) {
16526
+ var modalIndex = this.modals.indexOf(modal);
16527
+ if (modalIndex !== -1) {
16528
+ return modalIndex;
16529
+ }
16530
+ modalIndex = this.modals.length;
16531
+ this.modals.push(modal);
16355
16532
 
16356
- function effect$2(_ref2) {
16357
- var state = _ref2.state;
16358
- var initialStyles = {
16359
- popper: {
16360
- position: state.options.strategy,
16361
- left: '0',
16362
- top: '0',
16363
- margin: '0'
16533
+ // If the modal we are adding is already in the DOM.
16534
+ if (modal.modalRef) {
16535
+ ariaHidden(modal.modalRef, false);
16536
+ }
16537
+ var hiddenSiblings = getHiddenSiblings(container);
16538
+ ariaHiddenSiblings(container, modal.mount, modal.modalRef, hiddenSiblings, true);
16539
+ var containerIndex = findIndexOf(this.containers, function (item) {
16540
+ return item.container === container;
16541
+ });
16542
+ if (containerIndex !== -1) {
16543
+ this.containers[containerIndex].modals.push(modal);
16544
+ return modalIndex;
16545
+ }
16546
+ this.containers.push({
16547
+ modals: [modal],
16548
+ container: container,
16549
+ restore: null,
16550
+ hiddenSiblings: hiddenSiblings
16551
+ });
16552
+ return modalIndex;
16553
+ }
16554
+ }, {
16555
+ key: "mount",
16556
+ value: function mount(modal, props) {
16557
+ var containerIndex = findIndexOf(this.containers, function (item) {
16558
+ return item.modals.indexOf(modal) !== -1;
16559
+ });
16560
+ var containerInfo = this.containers[containerIndex];
16561
+ if (!containerInfo.restore) {
16562
+ containerInfo.restore = handleContainer(containerInfo, props);
16563
+ }
16564
+ }
16565
+ }, {
16566
+ key: "remove",
16567
+ value: function remove(modal) {
16568
+ var ariaHiddenState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
16569
+ var modalIndex = this.modals.indexOf(modal);
16570
+ if (modalIndex === -1) {
16571
+ return modalIndex;
16572
+ }
16573
+ var containerIndex = findIndexOf(this.containers, function (item) {
16574
+ return item.modals.indexOf(modal) !== -1;
16575
+ });
16576
+ var containerInfo = this.containers[containerIndex];
16577
+ containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);
16578
+ this.modals.splice(modalIndex, 1);
16579
+
16580
+ // If that was the last modal in a container, clean up the container.
16581
+ if (containerInfo.modals.length === 0) {
16582
+ // The modal might be closed before it had the chance to be mounted in the DOM.
16583
+ if (containerInfo.restore) {
16584
+ containerInfo.restore();
16585
+ }
16586
+ if (modal.modalRef) {
16587
+ // In case the modal wasn't in the DOM yet.
16588
+ ariaHidden(modal.modalRef, ariaHiddenState);
16589
+ }
16590
+ ariaHiddenSiblings(containerInfo.container, modal.mount, modal.modalRef, containerInfo.hiddenSiblings, false);
16591
+ this.containers.splice(containerIndex, 1);
16592
+ } else {
16593
+ // Otherwise make sure the next top modal is visible to a screen reader.
16594
+ var nextTop = containerInfo.modals[containerInfo.modals.length - 1];
16595
+ // as soon as a modal is adding its modalRef is undefined. it can't set
16596
+ // aria-hidden because the dom element doesn't exist either
16597
+ // when modal was unmounted before modalRef gets null
16598
+ if (nextTop.modalRef) {
16599
+ ariaHidden(nextTop.modalRef, false);
16600
+ }
16601
+ }
16602
+ return modalIndex;
16603
+ }
16604
+ }, {
16605
+ key: "isTopModal",
16606
+ value: function isTopModal(modal) {
16607
+ return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;
16608
+ }
16609
+ }]);
16610
+ return ModalManager;
16611
+ }();
16612
+
16613
+ function getContainer(container) {
16614
+ return typeof container === 'function' ? container() : container;
16615
+ }
16616
+ function getHasTransition(children) {
16617
+ return children ? children.props.hasOwnProperty('in') : false;
16618
+ }
16619
+
16620
+ // A modal manager used to track and manage the state of open Modals.
16621
+ // Modals don't open on the server so this won't conflict with concurrent requests.
16622
+ var defaultManager = new ModalManager();
16623
+ /**
16624
+ *
16625
+ * Demos:
16626
+ *
16627
+ * - [Modal](https://mui.com/base-ui/react-modal/#hook)
16628
+ *
16629
+ * API:
16630
+ *
16631
+ * - [useModal API](https://mui.com/base-ui/react-modal/hooks-api/#use-modal)
16632
+ */
16633
+ function useModal(parameters) {
16634
+ var container = parameters.container,
16635
+ _parameters$disableEs = parameters.disableEscapeKeyDown,
16636
+ disableEscapeKeyDown = _parameters$disableEs === void 0 ? false : _parameters$disableEs,
16637
+ _parameters$disableSc = parameters.disableScrollLock,
16638
+ disableScrollLock = _parameters$disableSc === void 0 ? false : _parameters$disableSc,
16639
+ _parameters$manager = parameters.manager,
16640
+ manager = _parameters$manager === void 0 ? defaultManager : _parameters$manager,
16641
+ _parameters$closeAfte = parameters.closeAfterTransition,
16642
+ closeAfterTransition = _parameters$closeAfte === void 0 ? false : _parameters$closeAfte,
16643
+ onTransitionEnter = parameters.onTransitionEnter,
16644
+ onTransitionExited = parameters.onTransitionExited,
16645
+ children = parameters.children,
16646
+ onClose = parameters.onClose,
16647
+ open = parameters.open,
16648
+ rootRef = parameters.rootRef; // @ts-ignore internal logic
16649
+ var modal = React__namespace.useRef({});
16650
+ var mountNodeRef = React__namespace.useRef(null);
16651
+ var modalRef = React__namespace.useRef(null);
16652
+ var handleRef = useForkRef(modalRef, rootRef);
16653
+ var _React$useState = React__namespace.useState(!open),
16654
+ exited = _React$useState[0],
16655
+ setExited = _React$useState[1];
16656
+ var hasTransition = getHasTransition(children);
16657
+ var ariaHiddenProp = true;
16658
+ if (parameters['aria-hidden'] === 'false' || parameters['aria-hidden'] === false) {
16659
+ ariaHiddenProp = false;
16660
+ }
16661
+ var getDoc = function getDoc() {
16662
+ return ownerDocument(mountNodeRef.current);
16663
+ };
16664
+ var getModal = function getModal() {
16665
+ modal.current.modalRef = modalRef.current;
16666
+ modal.current.mount = mountNodeRef.current;
16667
+ return modal.current;
16668
+ };
16669
+ var handleMounted = function handleMounted() {
16670
+ manager.mount(getModal(), {
16671
+ disableScrollLock: disableScrollLock
16672
+ });
16673
+
16674
+ // Fix a bug on Chrome where the scroll isn't initially 0.
16675
+ if (modalRef.current) {
16676
+ modalRef.current.scrollTop = 0;
16677
+ }
16678
+ };
16679
+ var handleOpen = useEventCallback(function () {
16680
+ var resolvedContainer = getContainer(container) || getDoc().body;
16681
+ manager.add(getModal(), resolvedContainer);
16682
+
16683
+ // The element was already mounted.
16684
+ if (modalRef.current) {
16685
+ handleMounted();
16686
+ }
16687
+ });
16688
+ var isTopModal = React__namespace.useCallback(function () {
16689
+ return manager.isTopModal(getModal());
16690
+ }, [manager]);
16691
+ var handlePortalRef = useEventCallback(function (node) {
16692
+ mountNodeRef.current = node;
16693
+ if (!node) {
16694
+ return;
16695
+ }
16696
+ if (open && isTopModal()) {
16697
+ handleMounted();
16698
+ } else if (modalRef.current) {
16699
+ ariaHidden(modalRef.current, ariaHiddenProp);
16700
+ }
16701
+ });
16702
+ var handleClose = React__namespace.useCallback(function () {
16703
+ manager.remove(getModal(), ariaHiddenProp);
16704
+ }, [ariaHiddenProp, manager]);
16705
+ React__namespace.useEffect(function () {
16706
+ return function () {
16707
+ handleClose();
16708
+ };
16709
+ }, [handleClose]);
16710
+ React__namespace.useEffect(function () {
16711
+ if (open) {
16712
+ handleOpen();
16713
+ } else if (!hasTransition || !closeAfterTransition) {
16714
+ handleClose();
16715
+ }
16716
+ }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);
16717
+ var createHandleKeyDown = function createHandleKeyDown(otherHandlers) {
16718
+ return function (event) {
16719
+ var _otherHandlers$onKeyD;
16720
+ (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);
16721
+
16722
+ // The handler doesn't take event.defaultPrevented into account:
16723
+ //
16724
+ // event.preventDefault() is meant to stop default behaviors like
16725
+ // clicking a checkbox to check it, hitting a button to submit a form,
16726
+ // and hitting left arrow to move the cursor in a text input etc.
16727
+ // Only special HTML elements have these default behaviors.
16728
+ if (event.key !== 'Escape' || event.which === 229 ||
16729
+ // Wait until IME is settled.
16730
+ !isTopModal()) {
16731
+ return;
16732
+ }
16733
+ if (!disableEscapeKeyDown) {
16734
+ // Swallow the event, in case someone is listening for the escape key on the body.
16735
+ event.stopPropagation();
16736
+ if (onClose) {
16737
+ onClose(event, 'escapeKeyDown');
16738
+ }
16739
+ }
16740
+ };
16741
+ };
16742
+ var createHandleBackdropClick = function createHandleBackdropClick(otherHandlers) {
16743
+ return function (event) {
16744
+ var _otherHandlers$onClic;
16745
+ (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);
16746
+ if (event.target !== event.currentTarget) {
16747
+ return;
16748
+ }
16749
+ if (onClose) {
16750
+ onClose(event, 'backdropClick');
16751
+ }
16752
+ };
16753
+ };
16754
+ var getRootProps = function getRootProps() {
16755
+ var otherHandlers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
16756
+ var propsEventHandlers = extractEventHandlers(parameters);
16757
+
16758
+ // The custom event handlers shouldn't be spread on the root element
16759
+ delete propsEventHandlers.onTransitionEnter;
16760
+ delete propsEventHandlers.onTransitionExited;
16761
+ var externalEventHandlers = _extends({}, propsEventHandlers, otherHandlers);
16762
+ return _extends({
16763
+ role: 'presentation'
16764
+ }, externalEventHandlers, {
16765
+ onKeyDown: createHandleKeyDown(externalEventHandlers),
16766
+ ref: handleRef
16767
+ });
16768
+ };
16769
+ var getBackdropProps = function getBackdropProps() {
16770
+ var otherHandlers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
16771
+ var externalEventHandlers = otherHandlers;
16772
+ return _extends({
16773
+ 'aria-hidden': true
16774
+ }, externalEventHandlers, {
16775
+ onClick: createHandleBackdropClick(externalEventHandlers),
16776
+ open: open
16777
+ });
16778
+ };
16779
+ var getTransitionProps = function getTransitionProps() {
16780
+ var handleEnter = function handleEnter() {
16781
+ setExited(false);
16782
+ if (onTransitionEnter) {
16783
+ onTransitionEnter();
16784
+ }
16785
+ };
16786
+ var handleExited = function handleExited() {
16787
+ setExited(true);
16788
+ if (onTransitionExited) {
16789
+ onTransitionExited();
16790
+ }
16791
+ if (closeAfterTransition) {
16792
+ handleClose();
16793
+ }
16794
+ };
16795
+ return {
16796
+ onEnter: createChainedFunction(handleEnter, children == null ? void 0 : children.props.onEnter),
16797
+ onExited: createChainedFunction(handleExited, children == null ? void 0 : children.props.onExited)
16798
+ };
16799
+ };
16800
+ return {
16801
+ getRootProps: getRootProps,
16802
+ getBackdropProps: getBackdropProps,
16803
+ getTransitionProps: getTransitionProps,
16804
+ rootRef: handleRef,
16805
+ portalRef: handlePortalRef,
16806
+ isTopModal: isTopModal,
16807
+ exited: exited,
16808
+ hasTransition: hasTransition
16809
+ };
16810
+ }
16811
+
16812
+ /**
16813
+ * NoSsr purposely removes components from the subject of Server Side Rendering (SSR).
16814
+ *
16815
+ * This component can be useful in a variety of situations:
16816
+ *
16817
+ * * Escape hatch for broken dependencies not supporting SSR.
16818
+ * * Improve the time-to-first paint on the client by only rendering above the fold.
16819
+ * * Reduce the rendering time on the server.
16820
+ * * Under too heavy server load, you can turn on service degradation.
16821
+ *
16822
+ * Demos:
16823
+ *
16824
+ * - [No SSR](https://mui.com/base-ui/react-no-ssr/)
16825
+ *
16826
+ * API:
16827
+ *
16828
+ * - [NoSsr API](https://mui.com/base-ui/react-no-ssr/components-api/#no-ssr)
16829
+ */
16830
+ function NoSsr(props) {
16831
+ var children = props.children,
16832
+ _props$defer = props.defer,
16833
+ defer = _props$defer === void 0 ? false : _props$defer,
16834
+ _props$fallback = props.fallback,
16835
+ fallback = _props$fallback === void 0 ? null : _props$fallback;
16836
+ var _React$useState = React__namespace.useState(false),
16837
+ mountedState = _React$useState[0],
16838
+ setMountedState = _React$useState[1];
16839
+ useEnhancedEffect$1(function () {
16840
+ if (!defer) {
16841
+ setMountedState(true);
16842
+ }
16843
+ }, [defer]);
16844
+ React__namespace.useEffect(function () {
16845
+ if (defer) {
16846
+ setMountedState(true);
16847
+ }
16848
+ }, [defer]);
16849
+
16850
+ // We need the Fragment here to force react-docgen to recognise NoSsr as a component.
16851
+ return /*#__PURE__*/jsxRuntime_1(React__namespace.Fragment, {
16852
+ children: mountedState ? children : fallback
16853
+ });
16854
+ }
16855
+ NoSsr.propTypes /* remove-proptypes */ = {
16856
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
16857
+ // │ These PropTypes are generated from the TypeScript type definitions. │
16858
+ // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
16859
+ // └─────────────────────────────────────────────────────────────────────┘
16860
+ /**
16861
+ * You can wrap a node.
16862
+ */
16863
+ children: PropTypes.node,
16864
+ /**
16865
+ * If `true`, the component will not only prevent server-side rendering.
16866
+ * It will also defer the rendering of the children into a different screen frame.
16867
+ * @default false
16868
+ */
16869
+ defer: PropTypes.bool,
16870
+ /**
16871
+ * The fallback content to display.
16872
+ * @default null
16873
+ */
16874
+ fallback: PropTypes.node
16875
+ } ;
16876
+ {
16877
+ // eslint-disable-next-line
16878
+ NoSsr['propTypes' + ''] = exactProp(NoSsr.propTypes);
16879
+ }
16880
+
16881
+ var top = 'top';
16882
+ var bottom = 'bottom';
16883
+ var right = 'right';
16884
+ var left = 'left';
16885
+ var auto = 'auto';
16886
+ var basePlacements = [top, bottom, right, left];
16887
+ var start = 'start';
16888
+ var end = 'end';
16889
+ var clippingParents = 'clippingParents';
16890
+ var viewport = 'viewport';
16891
+ var popper = 'popper';
16892
+ var reference = 'reference';
16893
+ var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
16894
+ return acc.concat([placement + "-" + start, placement + "-" + end]);
16895
+ }, []);
16896
+ var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
16897
+ return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
16898
+ }, []); // modifiers that need to read the DOM
16899
+
16900
+ var beforeRead = 'beforeRead';
16901
+ var read = 'read';
16902
+ var afterRead = 'afterRead'; // pure-logic modifiers
16903
+
16904
+ var beforeMain = 'beforeMain';
16905
+ var main = 'main';
16906
+ var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)
16907
+
16908
+ var beforeWrite = 'beforeWrite';
16909
+ var write = 'write';
16910
+ var afterWrite = 'afterWrite';
16911
+ var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
16912
+
16913
+ function getNodeName(element) {
16914
+ return element ? (element.nodeName || '').toLowerCase() : null;
16915
+ }
16916
+
16917
+ function getWindow(node) {
16918
+ if (node == null) {
16919
+ return window;
16920
+ }
16921
+
16922
+ if (node.toString() !== '[object Window]') {
16923
+ var ownerDocument = node.ownerDocument;
16924
+ return ownerDocument ? ownerDocument.defaultView || window : window;
16925
+ }
16926
+
16927
+ return node;
16928
+ }
16929
+
16930
+ function isElement(node) {
16931
+ var OwnElement = getWindow(node).Element;
16932
+ return node instanceof OwnElement || node instanceof Element;
16933
+ }
16934
+
16935
+ function isHTMLElement$1(node) {
16936
+ var OwnElement = getWindow(node).HTMLElement;
16937
+ return node instanceof OwnElement || node instanceof HTMLElement;
16938
+ }
16939
+
16940
+ function isShadowRoot(node) {
16941
+ // IE 11 has no ShadowRoot
16942
+ if (typeof ShadowRoot === 'undefined') {
16943
+ return false;
16944
+ }
16945
+
16946
+ var OwnElement = getWindow(node).ShadowRoot;
16947
+ return node instanceof OwnElement || node instanceof ShadowRoot;
16948
+ }
16949
+
16950
+ // and applies them to the HTMLElements such as popper and arrow
16951
+
16952
+ function applyStyles(_ref) {
16953
+ var state = _ref.state;
16954
+ Object.keys(state.elements).forEach(function (name) {
16955
+ var style = state.styles[name] || {};
16956
+ var attributes = state.attributes[name] || {};
16957
+ var element = state.elements[name]; // arrow is optional + virtual elements
16958
+
16959
+ if (!isHTMLElement$1(element) || !getNodeName(element)) {
16960
+ return;
16961
+ } // Flow doesn't support to extend this property, but it's the most
16962
+ // effective way to apply styles to an HTMLElement
16963
+ // $FlowFixMe[cannot-write]
16964
+
16965
+
16966
+ Object.assign(element.style, style);
16967
+ Object.keys(attributes).forEach(function (name) {
16968
+ var value = attributes[name];
16969
+
16970
+ if (value === false) {
16971
+ element.removeAttribute(name);
16972
+ } else {
16973
+ element.setAttribute(name, value === true ? '' : value);
16974
+ }
16975
+ });
16976
+ });
16977
+ }
16978
+
16979
+ function effect$2(_ref2) {
16980
+ var state = _ref2.state;
16981
+ var initialStyles = {
16982
+ popper: {
16983
+ position: state.options.strategy,
16984
+ left: '0',
16985
+ top: '0',
16986
+ margin: '0'
16364
16987
  },
16365
16988
  arrow: {
16366
16989
  position: 'absolute'
@@ -18046,91 +18669,6 @@
18046
18669
  defaultModifiers: defaultModifiers
18047
18670
  }); // eslint-disable-next-line import/no-unused-modules
18048
18671
 
18049
- function getContainer$1(container) {
18050
- return typeof container === 'function' ? container() : container;
18051
- }
18052
-
18053
- /**
18054
- * Portals provide a first-class way to render children into a DOM node
18055
- * that exists outside the DOM hierarchy of the parent component.
18056
- *
18057
- * Demos:
18058
- *
18059
- * - [Portal](https://mui.com/base-ui/react-portal/)
18060
- *
18061
- * API:
18062
- *
18063
- * - [Portal API](https://mui.com/base-ui/react-portal/components-api/#portal)
18064
- */
18065
- var Portal = /*#__PURE__*/React__namespace.forwardRef(function Portal(props, forwardedRef) {
18066
- var children = props.children,
18067
- container = props.container,
18068
- _props$disablePortal = props.disablePortal,
18069
- disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal;
18070
- var _React$useState = React__namespace.useState(null),
18071
- mountNode = _React$useState[0],
18072
- setMountNode = _React$useState[1]; // @ts-expect-error TODO upstream fix
18073
- var handleRef = useForkRef( /*#__PURE__*/React__namespace.isValidElement(children) ? children.ref : null, forwardedRef);
18074
- useEnhancedEffect$1(function () {
18075
- if (!disablePortal) {
18076
- setMountNode(getContainer$1(container) || document.body);
18077
- }
18078
- }, [container, disablePortal]);
18079
- useEnhancedEffect$1(function () {
18080
- if (mountNode && !disablePortal) {
18081
- setRef(forwardedRef, mountNode);
18082
- return function () {
18083
- setRef(forwardedRef, null);
18084
- };
18085
- }
18086
- return undefined;
18087
- }, [forwardedRef, mountNode, disablePortal]);
18088
- if (disablePortal) {
18089
- if ( /*#__PURE__*/React__namespace.isValidElement(children)) {
18090
- var newProps = {
18091
- ref: handleRef
18092
- };
18093
- return /*#__PURE__*/React__namespace.cloneElement(children, newProps);
18094
- }
18095
- return /*#__PURE__*/jsxRuntime_1(React__namespace.Fragment, {
18096
- children: children
18097
- });
18098
- }
18099
- return /*#__PURE__*/jsxRuntime_1(React__namespace.Fragment, {
18100
- children: mountNode ? /*#__PURE__*/ReactDOM__namespace.createPortal(children, mountNode) : mountNode
18101
- });
18102
- });
18103
- Portal.propTypes /* remove-proptypes */ = {
18104
- // ┌────────────────────────────── Warning ──────────────────────────────┐
18105
- // │ These PropTypes are generated from the TypeScript type definitions. │
18106
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
18107
- // └─────────────────────────────────────────────────────────────────────┘
18108
- /**
18109
- * The children to render into the `container`.
18110
- */
18111
- children: PropTypes.node,
18112
- /**
18113
- * An HTML element or function that returns one.
18114
- * The `container` will have the portal children appended to it.
18115
- *
18116
- * You can also provide a callback, which is called in a React layout effect.
18117
- * This lets you set the container from a ref, and also makes server-side rendering possible.
18118
- *
18119
- * By default, it uses the body of the top-level document object,
18120
- * so it's simply `document.body` most of the time.
18121
- */
18122
- container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),
18123
- /**
18124
- * The `children` will be under the DOM hierarchy of the parent component.
18125
- * @default false
18126
- */
18127
- disablePortal: PropTypes.bool
18128
- } ;
18129
- {
18130
- // eslint-disable-next-line
18131
- Portal['propTypes' + ''] = exactProp(Portal.propTypes);
18132
- }
18133
-
18134
18672
  var COMPONENT_NAME = 'Popper';
18135
18673
  function getPopperUtilityClass(slot) {
18136
18674
  return generateUtilityClass(COMPONENT_NAME, slot);
@@ -18511,528 +19049,6 @@
18511
19049
  transition: PropTypes.bool
18512
19050
  } ;
18513
19051
 
18514
- function _classCallCheck(instance, Constructor) {
18515
- if (!(instance instanceof Constructor)) {
18516
- throw new TypeError("Cannot call a class as a function");
18517
- }
18518
- }
18519
-
18520
- function _defineProperties(target, props) {
18521
- for (var i = 0; i < props.length; i++) {
18522
- var descriptor = props[i];
18523
- descriptor.enumerable = descriptor.enumerable || false;
18524
- descriptor.configurable = true;
18525
- if ("value" in descriptor) descriptor.writable = true;
18526
- Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);
18527
- }
18528
- }
18529
- function _createClass(Constructor, protoProps, staticProps) {
18530
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
18531
- if (staticProps) _defineProperties(Constructor, staticProps);
18532
- Object.defineProperty(Constructor, "prototype", {
18533
- writable: false
18534
- });
18535
- return Constructor;
18536
- }
18537
-
18538
- // Is a vertical scrollbar displayed?
18539
- function isOverflowing(container) {
18540
- var doc = ownerDocument(container);
18541
- if (doc.body === container) {
18542
- return ownerWindow(container).innerWidth > doc.documentElement.clientWidth;
18543
- }
18544
- return container.scrollHeight > container.clientHeight;
18545
- }
18546
- function ariaHidden(element, show) {
18547
- if (show) {
18548
- element.setAttribute('aria-hidden', 'true');
18549
- } else {
18550
- element.removeAttribute('aria-hidden');
18551
- }
18552
- }
18553
- function getPaddingRight(element) {
18554
- return parseInt(ownerWindow(element).getComputedStyle(element).paddingRight, 10) || 0;
18555
- }
18556
- function isAriaHiddenForbiddenOnElement(element) {
18557
- // The forbidden HTML tags are the ones from ARIA specification that
18558
- // can be children of body and can't have aria-hidden attribute.
18559
- // cf. https://www.w3.org/TR/html-aria/#docconformance
18560
- var forbiddenTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE', 'LINK', 'MAP', 'META', 'NOSCRIPT', 'PICTURE', 'COL', 'COLGROUP', 'PARAM', 'SLOT', 'SOURCE', 'TRACK'];
18561
- var isForbiddenTagName = forbiddenTagNames.indexOf(element.tagName) !== -1;
18562
- var isInputHidden = element.tagName === 'INPUT' && element.getAttribute('type') === 'hidden';
18563
- return isForbiddenTagName || isInputHidden;
18564
- }
18565
- function ariaHiddenSiblings(container, mountElement, currentElement, elementsToExclude, show) {
18566
- var blacklist = [mountElement, currentElement].concat(_toConsumableArray(elementsToExclude));
18567
- [].forEach.call(container.children, function (element) {
18568
- var isNotExcludedElement = blacklist.indexOf(element) === -1;
18569
- var isNotForbiddenElement = !isAriaHiddenForbiddenOnElement(element);
18570
- if (isNotExcludedElement && isNotForbiddenElement) {
18571
- ariaHidden(element, show);
18572
- }
18573
- });
18574
- }
18575
- function findIndexOf(items, callback) {
18576
- var idx = -1;
18577
- items.some(function (item, index) {
18578
- if (callback(item)) {
18579
- idx = index;
18580
- return true;
18581
- }
18582
- return false;
18583
- });
18584
- return idx;
18585
- }
18586
- function handleContainer(containerInfo, props) {
18587
- var restoreStyle = [];
18588
- var container = containerInfo.container;
18589
- if (!props.disableScrollLock) {
18590
- if (isOverflowing(container)) {
18591
- // Compute the size before applying overflow hidden to avoid any scroll jumps.
18592
- var scrollbarSize = getScrollbarSize(ownerDocument(container));
18593
- restoreStyle.push({
18594
- value: container.style.paddingRight,
18595
- property: 'padding-right',
18596
- el: container
18597
- });
18598
- // Use computed style, here to get the real padding to add our scrollbar width.
18599
- container.style.paddingRight = "".concat(getPaddingRight(container) + scrollbarSize, "px");
18600
-
18601
- // .mui-fixed is a global helper.
18602
- var fixedElements = ownerDocument(container).querySelectorAll('.mui-fixed');
18603
- [].forEach.call(fixedElements, function (element) {
18604
- restoreStyle.push({
18605
- value: element.style.paddingRight,
18606
- property: 'padding-right',
18607
- el: element
18608
- });
18609
- element.style.paddingRight = "".concat(getPaddingRight(element) + scrollbarSize, "px");
18610
- });
18611
- }
18612
- var scrollContainer;
18613
- if (container.parentNode instanceof DocumentFragment) {
18614
- scrollContainer = ownerDocument(container).body;
18615
- } else {
18616
- // Support html overflow-y: auto for scroll stability between pages
18617
- // https://css-tricks.com/snippets/css/force-vertical-scrollbar/
18618
- var parent = container.parentElement;
18619
- var containerWindow = ownerWindow(container);
18620
- scrollContainer = (parent == null ? void 0 : parent.nodeName) === 'HTML' && containerWindow.getComputedStyle(parent).overflowY === 'scroll' ? parent : container;
18621
- }
18622
-
18623
- // Block the scroll even if no scrollbar is visible to account for mobile keyboard
18624
- // screensize shrink.
18625
- restoreStyle.push({
18626
- value: scrollContainer.style.overflow,
18627
- property: 'overflow',
18628
- el: scrollContainer
18629
- }, {
18630
- value: scrollContainer.style.overflowX,
18631
- property: 'overflow-x',
18632
- el: scrollContainer
18633
- }, {
18634
- value: scrollContainer.style.overflowY,
18635
- property: 'overflow-y',
18636
- el: scrollContainer
18637
- });
18638
- scrollContainer.style.overflow = 'hidden';
18639
- }
18640
- var restore = function restore() {
18641
- restoreStyle.forEach(function (_ref) {
18642
- var value = _ref.value,
18643
- el = _ref.el,
18644
- property = _ref.property;
18645
- if (value) {
18646
- el.style.setProperty(property, value);
18647
- } else {
18648
- el.style.removeProperty(property);
18649
- }
18650
- });
18651
- };
18652
- return restore;
18653
- }
18654
- function getHiddenSiblings(container) {
18655
- var hiddenSiblings = [];
18656
- [].forEach.call(container.children, function (element) {
18657
- if (element.getAttribute('aria-hidden') === 'true') {
18658
- hiddenSiblings.push(element);
18659
- }
18660
- });
18661
- return hiddenSiblings;
18662
- }
18663
- /**
18664
- * @ignore - do not document.
18665
- *
18666
- * Proper state management for containers and the modals in those containers.
18667
- * Simplified, but inspired by react-overlay's ModalManager class.
18668
- * Used by the Modal to ensure proper styling of containers.
18669
- */
18670
- var ModalManager = /*#__PURE__*/function () {
18671
- function ModalManager() {
18672
- _classCallCheck(this, ModalManager);
18673
- this.containers = void 0;
18674
- this.modals = void 0;
18675
- this.modals = [];
18676
- this.containers = [];
18677
- }
18678
- _createClass(ModalManager, [{
18679
- key: "add",
18680
- value: function add(modal, container) {
18681
- var modalIndex = this.modals.indexOf(modal);
18682
- if (modalIndex !== -1) {
18683
- return modalIndex;
18684
- }
18685
- modalIndex = this.modals.length;
18686
- this.modals.push(modal);
18687
-
18688
- // If the modal we are adding is already in the DOM.
18689
- if (modal.modalRef) {
18690
- ariaHidden(modal.modalRef, false);
18691
- }
18692
- var hiddenSiblings = getHiddenSiblings(container);
18693
- ariaHiddenSiblings(container, modal.mount, modal.modalRef, hiddenSiblings, true);
18694
- var containerIndex = findIndexOf(this.containers, function (item) {
18695
- return item.container === container;
18696
- });
18697
- if (containerIndex !== -1) {
18698
- this.containers[containerIndex].modals.push(modal);
18699
- return modalIndex;
18700
- }
18701
- this.containers.push({
18702
- modals: [modal],
18703
- container: container,
18704
- restore: null,
18705
- hiddenSiblings: hiddenSiblings
18706
- });
18707
- return modalIndex;
18708
- }
18709
- }, {
18710
- key: "mount",
18711
- value: function mount(modal, props) {
18712
- var containerIndex = findIndexOf(this.containers, function (item) {
18713
- return item.modals.indexOf(modal) !== -1;
18714
- });
18715
- var containerInfo = this.containers[containerIndex];
18716
- if (!containerInfo.restore) {
18717
- containerInfo.restore = handleContainer(containerInfo, props);
18718
- }
18719
- }
18720
- }, {
18721
- key: "remove",
18722
- value: function remove(modal) {
18723
- var ariaHiddenState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
18724
- var modalIndex = this.modals.indexOf(modal);
18725
- if (modalIndex === -1) {
18726
- return modalIndex;
18727
- }
18728
- var containerIndex = findIndexOf(this.containers, function (item) {
18729
- return item.modals.indexOf(modal) !== -1;
18730
- });
18731
- var containerInfo = this.containers[containerIndex];
18732
- containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);
18733
- this.modals.splice(modalIndex, 1);
18734
-
18735
- // If that was the last modal in a container, clean up the container.
18736
- if (containerInfo.modals.length === 0) {
18737
- // The modal might be closed before it had the chance to be mounted in the DOM.
18738
- if (containerInfo.restore) {
18739
- containerInfo.restore();
18740
- }
18741
- if (modal.modalRef) {
18742
- // In case the modal wasn't in the DOM yet.
18743
- ariaHidden(modal.modalRef, ariaHiddenState);
18744
- }
18745
- ariaHiddenSiblings(containerInfo.container, modal.mount, modal.modalRef, containerInfo.hiddenSiblings, false);
18746
- this.containers.splice(containerIndex, 1);
18747
- } else {
18748
- // Otherwise make sure the next top modal is visible to a screen reader.
18749
- var nextTop = containerInfo.modals[containerInfo.modals.length - 1];
18750
- // as soon as a modal is adding its modalRef is undefined. it can't set
18751
- // aria-hidden because the dom element doesn't exist either
18752
- // when modal was unmounted before modalRef gets null
18753
- if (nextTop.modalRef) {
18754
- ariaHidden(nextTop.modalRef, false);
18755
- }
18756
- }
18757
- return modalIndex;
18758
- }
18759
- }, {
18760
- key: "isTopModal",
18761
- value: function isTopModal(modal) {
18762
- return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;
18763
- }
18764
- }]);
18765
- return ModalManager;
18766
- }();
18767
-
18768
- function getContainer(container) {
18769
- return typeof container === 'function' ? container() : container;
18770
- }
18771
- function getHasTransition(children) {
18772
- return children ? children.props.hasOwnProperty('in') : false;
18773
- }
18774
-
18775
- // A modal manager used to track and manage the state of open Modals.
18776
- // Modals don't open on the server so this won't conflict with concurrent requests.
18777
- var defaultManager = new ModalManager();
18778
- /**
18779
- *
18780
- * Demos:
18781
- *
18782
- * - [Modal](https://mui.com/base-ui/react-modal/#hook)
18783
- *
18784
- * API:
18785
- *
18786
- * - [useModal API](https://mui.com/base-ui/react-modal/hooks-api/#use-modal)
18787
- */
18788
- function useModal(parameters) {
18789
- var container = parameters.container,
18790
- _parameters$disableEs = parameters.disableEscapeKeyDown,
18791
- disableEscapeKeyDown = _parameters$disableEs === void 0 ? false : _parameters$disableEs,
18792
- _parameters$disableSc = parameters.disableScrollLock,
18793
- disableScrollLock = _parameters$disableSc === void 0 ? false : _parameters$disableSc,
18794
- _parameters$manager = parameters.manager,
18795
- manager = _parameters$manager === void 0 ? defaultManager : _parameters$manager,
18796
- _parameters$closeAfte = parameters.closeAfterTransition,
18797
- closeAfterTransition = _parameters$closeAfte === void 0 ? false : _parameters$closeAfte,
18798
- onTransitionEnter = parameters.onTransitionEnter,
18799
- onTransitionExited = parameters.onTransitionExited,
18800
- children = parameters.children,
18801
- onClose = parameters.onClose,
18802
- open = parameters.open,
18803
- rootRef = parameters.rootRef; // @ts-ignore internal logic
18804
- var modal = React__namespace.useRef({});
18805
- var mountNodeRef = React__namespace.useRef(null);
18806
- var modalRef = React__namespace.useRef(null);
18807
- var handleRef = useForkRef(modalRef, rootRef);
18808
- var _React$useState = React__namespace.useState(!open),
18809
- exited = _React$useState[0],
18810
- setExited = _React$useState[1];
18811
- var hasTransition = getHasTransition(children);
18812
- var ariaHiddenProp = true;
18813
- if (parameters['aria-hidden'] === 'false' || parameters['aria-hidden'] === false) {
18814
- ariaHiddenProp = false;
18815
- }
18816
- var getDoc = function getDoc() {
18817
- return ownerDocument(mountNodeRef.current);
18818
- };
18819
- var getModal = function getModal() {
18820
- modal.current.modalRef = modalRef.current;
18821
- modal.current.mount = mountNodeRef.current;
18822
- return modal.current;
18823
- };
18824
- var handleMounted = function handleMounted() {
18825
- manager.mount(getModal(), {
18826
- disableScrollLock: disableScrollLock
18827
- });
18828
-
18829
- // Fix a bug on Chrome where the scroll isn't initially 0.
18830
- if (modalRef.current) {
18831
- modalRef.current.scrollTop = 0;
18832
- }
18833
- };
18834
- var handleOpen = useEventCallback(function () {
18835
- var resolvedContainer = getContainer(container) || getDoc().body;
18836
- manager.add(getModal(), resolvedContainer);
18837
-
18838
- // The element was already mounted.
18839
- if (modalRef.current) {
18840
- handleMounted();
18841
- }
18842
- });
18843
- var isTopModal = React__namespace.useCallback(function () {
18844
- return manager.isTopModal(getModal());
18845
- }, [manager]);
18846
- var handlePortalRef = useEventCallback(function (node) {
18847
- mountNodeRef.current = node;
18848
- if (!node) {
18849
- return;
18850
- }
18851
- if (open && isTopModal()) {
18852
- handleMounted();
18853
- } else if (modalRef.current) {
18854
- ariaHidden(modalRef.current, ariaHiddenProp);
18855
- }
18856
- });
18857
- var handleClose = React__namespace.useCallback(function () {
18858
- manager.remove(getModal(), ariaHiddenProp);
18859
- }, [ariaHiddenProp, manager]);
18860
- React__namespace.useEffect(function () {
18861
- return function () {
18862
- handleClose();
18863
- };
18864
- }, [handleClose]);
18865
- React__namespace.useEffect(function () {
18866
- if (open) {
18867
- handleOpen();
18868
- } else if (!hasTransition || !closeAfterTransition) {
18869
- handleClose();
18870
- }
18871
- }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);
18872
- var createHandleKeyDown = function createHandleKeyDown(otherHandlers) {
18873
- return function (event) {
18874
- var _otherHandlers$onKeyD;
18875
- (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);
18876
-
18877
- // The handler doesn't take event.defaultPrevented into account:
18878
- //
18879
- // event.preventDefault() is meant to stop default behaviors like
18880
- // clicking a checkbox to check it, hitting a button to submit a form,
18881
- // and hitting left arrow to move the cursor in a text input etc.
18882
- // Only special HTML elements have these default behaviors.
18883
- if (event.key !== 'Escape' || event.which === 229 ||
18884
- // Wait until IME is settled.
18885
- !isTopModal()) {
18886
- return;
18887
- }
18888
- if (!disableEscapeKeyDown) {
18889
- // Swallow the event, in case someone is listening for the escape key on the body.
18890
- event.stopPropagation();
18891
- if (onClose) {
18892
- onClose(event, 'escapeKeyDown');
18893
- }
18894
- }
18895
- };
18896
- };
18897
- var createHandleBackdropClick = function createHandleBackdropClick(otherHandlers) {
18898
- return function (event) {
18899
- var _otherHandlers$onClic;
18900
- (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);
18901
- if (event.target !== event.currentTarget) {
18902
- return;
18903
- }
18904
- if (onClose) {
18905
- onClose(event, 'backdropClick');
18906
- }
18907
- };
18908
- };
18909
- var getRootProps = function getRootProps() {
18910
- var otherHandlers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
18911
- var propsEventHandlers = extractEventHandlers(parameters);
18912
-
18913
- // The custom event handlers shouldn't be spread on the root element
18914
- delete propsEventHandlers.onTransitionEnter;
18915
- delete propsEventHandlers.onTransitionExited;
18916
- var externalEventHandlers = _extends({}, propsEventHandlers, otherHandlers);
18917
- return _extends({
18918
- role: 'presentation'
18919
- }, externalEventHandlers, {
18920
- onKeyDown: createHandleKeyDown(externalEventHandlers),
18921
- ref: handleRef
18922
- });
18923
- };
18924
- var getBackdropProps = function getBackdropProps() {
18925
- var otherHandlers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
18926
- var externalEventHandlers = otherHandlers;
18927
- return _extends({
18928
- 'aria-hidden': true
18929
- }, externalEventHandlers, {
18930
- onClick: createHandleBackdropClick(externalEventHandlers),
18931
- open: open
18932
- });
18933
- };
18934
- var getTransitionProps = function getTransitionProps() {
18935
- var handleEnter = function handleEnter() {
18936
- setExited(false);
18937
- if (onTransitionEnter) {
18938
- onTransitionEnter();
18939
- }
18940
- };
18941
- var handleExited = function handleExited() {
18942
- setExited(true);
18943
- if (onTransitionExited) {
18944
- onTransitionExited();
18945
- }
18946
- if (closeAfterTransition) {
18947
- handleClose();
18948
- }
18949
- };
18950
- return {
18951
- onEnter: createChainedFunction(handleEnter, children == null ? void 0 : children.props.onEnter),
18952
- onExited: createChainedFunction(handleExited, children == null ? void 0 : children.props.onExited)
18953
- };
18954
- };
18955
- return {
18956
- getRootProps: getRootProps,
18957
- getBackdropProps: getBackdropProps,
18958
- getTransitionProps: getTransitionProps,
18959
- rootRef: handleRef,
18960
- portalRef: handlePortalRef,
18961
- isTopModal: isTopModal,
18962
- exited: exited,
18963
- hasTransition: hasTransition
18964
- };
18965
- }
18966
-
18967
- /**
18968
- * NoSsr purposely removes components from the subject of Server Side Rendering (SSR).
18969
- *
18970
- * This component can be useful in a variety of situations:
18971
- *
18972
- * * Escape hatch for broken dependencies not supporting SSR.
18973
- * * Improve the time-to-first paint on the client by only rendering above the fold.
18974
- * * Reduce the rendering time on the server.
18975
- * * Under too heavy server load, you can turn on service degradation.
18976
- *
18977
- * Demos:
18978
- *
18979
- * - [No SSR](https://mui.com/base-ui/react-no-ssr/)
18980
- *
18981
- * API:
18982
- *
18983
- * - [NoSsr API](https://mui.com/base-ui/react-no-ssr/components-api/#no-ssr)
18984
- */
18985
- function NoSsr(props) {
18986
- var children = props.children,
18987
- _props$defer = props.defer,
18988
- defer = _props$defer === void 0 ? false : _props$defer,
18989
- _props$fallback = props.fallback,
18990
- fallback = _props$fallback === void 0 ? null : _props$fallback;
18991
- var _React$useState = React__namespace.useState(false),
18992
- mountedState = _React$useState[0],
18993
- setMountedState = _React$useState[1];
18994
- useEnhancedEffect$1(function () {
18995
- if (!defer) {
18996
- setMountedState(true);
18997
- }
18998
- }, [defer]);
18999
- React__namespace.useEffect(function () {
19000
- if (defer) {
19001
- setMountedState(true);
19002
- }
19003
- }, [defer]);
19004
-
19005
- // We need the Fragment here to force react-docgen to recognise NoSsr as a component.
19006
- return /*#__PURE__*/jsxRuntime_1(React__namespace.Fragment, {
19007
- children: mountedState ? children : fallback
19008
- });
19009
- }
19010
- NoSsr.propTypes /* remove-proptypes */ = {
19011
- // ┌────────────────────────────── Warning ──────────────────────────────┐
19012
- // │ These PropTypes are generated from the TypeScript type definitions. │
19013
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
19014
- // └─────────────────────────────────────────────────────────────────────┘
19015
- /**
19016
- * You can wrap a node.
19017
- */
19018
- children: PropTypes.node,
19019
- /**
19020
- * If `true`, the component will not only prevent server-side rendering.
19021
- * It will also defer the rendering of the children into a different screen frame.
19022
- * @default false
19023
- */
19024
- defer: PropTypes.bool,
19025
- /**
19026
- * The fallback content to display.
19027
- * @default null
19028
- */
19029
- fallback: PropTypes.node
19030
- } ;
19031
- {
19032
- // eslint-disable-next-line
19033
- NoSsr['propTypes' + ''] = exactProp(NoSsr.propTypes);
19034
- }
19035
-
19036
19052
  var INTENTIONAL_DRAG_COUNT_THRESHOLD = 2;
19037
19053
  function asc(a, b) {
19038
19054
  return a - b;
@@ -19224,6 +19240,8 @@
19224
19240
  scale = _parameters$scale === void 0 ? Identity$1 : _parameters$scale,
19225
19241
  _parameters$step = parameters.step,
19226
19242
  step = _parameters$step === void 0 ? 1 : _parameters$step,
19243
+ _parameters$shiftStep = parameters.shiftStep,
19244
+ shiftStep = _parameters$shiftStep === void 0 ? 10 : _parameters$shiftStep,
19227
19245
  tabIndex = parameters.tabIndex,
19228
19246
  valueProp = parameters.value;
19229
19247
  var touchId = React__namespace.useRef();
@@ -19312,6 +19330,75 @@
19312
19330
  otherHandlers == null || (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);
19313
19331
  };
19314
19332
  };
19333
+ var changeValue = function changeValue(event, valueInput) {
19334
+ var index = Number(event.currentTarget.getAttribute('data-index'));
19335
+ var value = values[index];
19336
+ var marksIndex = marksValues.indexOf(value);
19337
+ var newValue = valueInput;
19338
+ if (marks && step == null) {
19339
+ var maxMarksValue = marksValues[marksValues.length - 1];
19340
+ if (newValue > maxMarksValue) {
19341
+ newValue = maxMarksValue;
19342
+ } else if (newValue < marksValues[0]) {
19343
+ newValue = marksValues[0];
19344
+ } else {
19345
+ newValue = newValue < value ? marksValues[marksIndex - 1] : marksValues[marksIndex + 1];
19346
+ }
19347
+ }
19348
+ newValue = clamp(newValue, min, max);
19349
+ if (range) {
19350
+ // Bound the new value to the thumb's neighbours.
19351
+ if (disableSwap) {
19352
+ newValue = clamp(newValue, values[index - 1] || -Infinity, values[index + 1] || Infinity);
19353
+ }
19354
+ var previousValue = newValue;
19355
+ newValue = setValueIndex({
19356
+ values: values,
19357
+ newValue: newValue,
19358
+ index: index
19359
+ });
19360
+ var activeIndex = index;
19361
+
19362
+ // Potentially swap the index if needed.
19363
+ if (!disableSwap) {
19364
+ activeIndex = newValue.indexOf(previousValue);
19365
+ }
19366
+ focusThumb({
19367
+ sliderRef: sliderRef,
19368
+ activeIndex: activeIndex
19369
+ });
19370
+ }
19371
+ setValueState(newValue);
19372
+ setFocusedThumbIndex(index);
19373
+ if (handleChange && !areValuesEqual(newValue, valueDerived)) {
19374
+ handleChange(event, newValue, index);
19375
+ }
19376
+ if (onChangeCommitted) {
19377
+ onChangeCommitted(event, newValue);
19378
+ }
19379
+ };
19380
+ var createHandleHiddenInputKeyDown = function createHandleHiddenInputKeyDown(otherHandlers) {
19381
+ return function (event) {
19382
+ var _otherHandlers$onKeyD;
19383
+ // The Shift + Up/Down keyboard shortcuts for moving the slider makes sense to be supported
19384
+ // only if the step is defined. If the step is null, this means tha the marks are used for specifying the valid values.
19385
+ if (step !== null) {
19386
+ var index = Number(event.currentTarget.getAttribute('data-index'));
19387
+ var value = values[index];
19388
+ var newValue = null;
19389
+ if ((event.key === 'ArrowLeft' || event.key === 'ArrowDown') && event.shiftKey || event.key === 'PageDown') {
19390
+ newValue = Math.max(value - shiftStep, min);
19391
+ } else if ((event.key === 'ArrowRight' || event.key === 'ArrowUp') && event.shiftKey || event.key === 'PageUp') {
19392
+ newValue = Math.min(value + shiftStep, max);
19393
+ }
19394
+ if (newValue !== null) {
19395
+ changeValue(event, newValue);
19396
+ event.preventDefault();
19397
+ }
19398
+ }
19399
+ otherHandlers == null || (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);
19400
+ };
19401
+ };
19315
19402
  useEnhancedEffect$1(function () {
19316
19403
  if (disabled && sliderRef.current.contains(document.activeElement)) {
19317
19404
  var _document$activeEleme;
@@ -19332,53 +19419,8 @@
19332
19419
  return function (event) {
19333
19420
  var _otherHandlers$onChan;
19334
19421
  (_otherHandlers$onChan = otherHandlers.onChange) == null || _otherHandlers$onChan.call(otherHandlers, event);
19335
- var index = Number(event.currentTarget.getAttribute('data-index'));
19336
- var value = values[index];
19337
- var marksIndex = marksValues.indexOf(value);
19338
-
19339
19422
  // @ts-ignore
19340
- var newValue = event.target.valueAsNumber;
19341
- if (marks && step == null) {
19342
- var maxMarksValue = marksValues[marksValues.length - 1];
19343
- if (newValue > maxMarksValue) {
19344
- newValue = maxMarksValue;
19345
- } else if (newValue < marksValues[0]) {
19346
- newValue = marksValues[0];
19347
- } else {
19348
- newValue = newValue < value ? marksValues[marksIndex - 1] : marksValues[marksIndex + 1];
19349
- }
19350
- }
19351
- newValue = clamp(newValue, min, max);
19352
- if (range) {
19353
- // Bound the new value to the thumb's neighbours.
19354
- if (disableSwap) {
19355
- newValue = clamp(newValue, values[index - 1] || -Infinity, values[index + 1] || Infinity);
19356
- }
19357
- var previousValue = newValue;
19358
- newValue = setValueIndex({
19359
- values: values,
19360
- newValue: newValue,
19361
- index: index
19362
- });
19363
- var activeIndex = index;
19364
-
19365
- // Potentially swap the index if needed.
19366
- if (!disableSwap) {
19367
- activeIndex = newValue.indexOf(previousValue);
19368
- }
19369
- focusThumb({
19370
- sliderRef: sliderRef,
19371
- activeIndex: activeIndex
19372
- });
19373
- }
19374
- setValueState(newValue);
19375
- setFocusedThumbIndex(index);
19376
- if (handleChange && !areValuesEqual(newValue, valueDerived)) {
19377
- handleChange(event, newValue, index);
19378
- }
19379
- if (onChangeCommitted) {
19380
- onChangeCommitted(event, newValue);
19381
- }
19423
+ changeValue(event, event.target.valueAsNumber);
19382
19424
  };
19383
19425
  };
19384
19426
  var previousIndex = React__namespace.useRef();
@@ -19654,7 +19696,8 @@
19654
19696
  var ownEventHandlers = {
19655
19697
  onChange: createHandleHiddenInputChange(externalHandlers || {}),
19656
19698
  onFocus: createHandleHiddenInputFocus(externalHandlers || {}),
19657
- onBlur: createHandleHiddenInputBlur(externalHandlers || {})
19699
+ onBlur: createHandleHiddenInputBlur(externalHandlers || {}),
19700
+ onKeyDown: createHandleHiddenInputKeyDown(externalHandlers || {})
19658
19701
  };
19659
19702
  var mergedEventHandlers = _extends({}, externalHandlers, ownEventHandlers);
19660
19703
  return _extends({
@@ -19718,7 +19761,7 @@
19718
19761
  onClose = parameters.onClose,
19719
19762
  open = parameters.open,
19720
19763
  resumeHideDuration = parameters.resumeHideDuration;
19721
- var timerAutoHide = React__namespace.useRef();
19764
+ var timerAutoHide = useTimeout();
19722
19765
  React__namespace.useEffect(function () {
19723
19766
  if (!open) {
19724
19767
  return undefined;
@@ -19748,28 +19791,23 @@
19748
19791
  if (!onClose || autoHideDurationParam == null) {
19749
19792
  return;
19750
19793
  }
19751
- clearTimeout(timerAutoHide.current);
19752
- timerAutoHide.current = setTimeout(function () {
19794
+ timerAutoHide.start(autoHideDurationParam, function () {
19753
19795
  handleClose(null, 'timeout');
19754
- }, autoHideDurationParam);
19796
+ });
19755
19797
  });
19756
19798
  React__namespace.useEffect(function () {
19757
19799
  if (open) {
19758
19800
  setAutoHideTimer(autoHideDuration);
19759
19801
  }
19760
- return function () {
19761
- clearTimeout(timerAutoHide.current);
19762
- };
19763
- }, [open, autoHideDuration, setAutoHideTimer]);
19802
+ return timerAutoHide.clear;
19803
+ }, [open, autoHideDuration, setAutoHideTimer, timerAutoHide]);
19764
19804
  var handleClickAway = function handleClickAway(event) {
19765
19805
  onClose == null || onClose(event, 'clickaway');
19766
19806
  };
19767
19807
 
19768
19808
  // Pause the timer when the user is interacting with the Snackbar
19769
19809
  // or when the user hide the window.
19770
- var handlePause = function handlePause() {
19771
- clearTimeout(timerAutoHide.current);
19772
- };
19810
+ var handlePause = timerAutoHide.clear;
19773
19811
 
19774
19812
  // Restart the timer when the user is no longer interacting with the Snackbar
19775
19813
  // or when the window is shown back.
@@ -19817,7 +19855,7 @@
19817
19855
  };
19818
19856
  }
19819
19857
  return undefined;
19820
- }, [disableWindowBlurListener, handleResume, open]);
19858
+ }, [disableWindowBlurListener, open, handleResume, handlePause]);
19821
19859
  var getRootProps = function getRootProps() {
19822
19860
  var externalProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
19823
19861
  var externalEventHandlers = _extends({}, extractEventHandlers(parameters), extractEventHandlers(externalProps));
@@ -21181,7 +21219,7 @@
21181
21219
  var Popper = /*#__PURE__*/React__namespace.forwardRef(function Popper(inProps, ref) {
21182
21220
  var _slots$root;
21183
21221
  var theme = useTheme$3();
21184
- var props = useThemeProps({
21222
+ var props = useThemeProps$1({
21185
21223
  props: inProps,
21186
21224
  name: 'MuiPopper'
21187
21225
  });
@@ -21406,7 +21444,7 @@
21406
21444
  });
21407
21445
  });
21408
21446
  var ListSubheader = /*#__PURE__*/React__namespace.forwardRef(function ListSubheader(inProps, ref) {
21409
- var props = useThemeProps({
21447
+ var props = useThemeProps$1({
21410
21448
  props: inProps,
21411
21449
  name: 'MuiListSubheader'
21412
21450
  });
@@ -21705,7 +21743,7 @@
21705
21743
  * Chips represent complex entities in small blocks, such as a contact.
21706
21744
  */
21707
21745
  var Chip = /*#__PURE__*/React__namespace.forwardRef(function Chip(inProps, ref) {
21708
- var props = useThemeProps({
21746
+ var props = useThemeProps$1({
21709
21747
  props: inProps,
21710
21748
  name: 'MuiChip'
21711
21749
  });
@@ -22193,7 +22231,7 @@
22193
22231
  */
22194
22232
  var InputBase = /*#__PURE__*/React__namespace.forwardRef(function InputBase(inProps, ref) {
22195
22233
  var _slotProps$input;
22196
- var props = useThemeProps({
22234
+ var props = useThemeProps$1({
22197
22235
  props: inProps,
22198
22236
  name: 'MuiInputBase'
22199
22237
  });
@@ -23031,7 +23069,7 @@
23031
23069
  }));
23032
23070
  var Autocomplete = /*#__PURE__*/React__namespace.forwardRef(function Autocomplete(inProps, ref) {
23033
23071
  var _slotProps$clearIndic, _slotProps$paper, _slotProps$popper, _slotProps$popupIndic;
23034
- var props = useThemeProps({
23072
+ var props = useThemeProps$1({
23035
23073
  props: inProps,
23036
23074
  name: 'MuiAutocomplete'
23037
23075
  });
@@ -23855,7 +23893,7 @@
23855
23893
  backgroundColor: theme.vars.palette.Avatar.defaultBg
23856
23894
  } : _extends({
23857
23895
  backgroundColor: theme.palette.grey[400]
23858
- }, theme.applyDarkStyles({
23896
+ }, theme.applyStyles('dark', {
23859
23897
  backgroundColor: theme.palette.grey[600]
23860
23898
  })))
23861
23899
  }]
@@ -23928,7 +23966,7 @@
23928
23966
  return loaded;
23929
23967
  }
23930
23968
  var Avatar = /*#__PURE__*/React__namespace.forwardRef(function Avatar(inProps, ref) {
23931
- var props = useThemeProps({
23969
+ var props = useThemeProps$1({
23932
23970
  props: inProps,
23933
23971
  name: 'MuiAvatar'
23934
23972
  });
@@ -23968,7 +24006,10 @@
23968
24006
  ownerState: ownerState,
23969
24007
  className: classes.img
23970
24008
  }, imgProps));
23971
- } else if (childrenProp != null) {
24009
+
24010
+ // We only render valid children, non valid children are rendered with a fallback
24011
+ // We consider that invalid children are all falsy values, except 0, which is valid.
24012
+ } else if (!!childrenProp || childrenProp === 0) {
23972
24013
  children = childrenProp;
23973
24014
  } else if (hasImg && alt) {
23974
24015
  children = alt[0];
@@ -24070,36 +24111,21 @@
24070
24111
  return _extends(_defineProperty({}, "& .".concat(avatarGroupClasses$1.avatar), styles.avatar), styles.root);
24071
24112
  }
24072
24113
  })(function (_ref) {
24073
- var theme = _ref.theme;
24114
+ var theme = _ref.theme,
24115
+ ownerState = _ref.ownerState;
24116
+ var marginValue = ownerState.spacing && SPACINGS$2[ownerState.spacing] !== undefined ? SPACINGS$2[ownerState.spacing] : -ownerState.spacing;
24074
24117
  return _defineProperty(_defineProperty(_defineProperty({}, "& .".concat(avatarClasses$1.root), {
24075
24118
  border: "2px solid ".concat((theme.vars || theme).palette.background["default"]),
24076
24119
  boxSizing: 'content-box',
24077
- marginLeft: -8,
24120
+ marginLeft: marginValue != null ? marginValue : -8,
24078
24121
  '&:last-child': {
24079
24122
  marginLeft: 0
24080
24123
  }
24081
24124
  }), "display", 'flex'), "flexDirection", 'row-reverse');
24082
24125
  });
24083
- var AvatarGroupAvatar = styled$1(Avatar$1, {
24084
- name: 'MuiAvatarGroup',
24085
- slot: 'Avatar',
24086
- overridesResolver: function overridesResolver(props, styles) {
24087
- return styles.avatar;
24088
- }
24089
- })(function (_ref3) {
24090
- var theme = _ref3.theme;
24091
- return {
24092
- border: "2px solid ".concat((theme.vars || theme).palette.background["default"]),
24093
- boxSizing: 'content-box',
24094
- marginLeft: -8,
24095
- '&:last-child': {
24096
- marginLeft: 0
24097
- }
24098
- };
24099
- });
24100
24126
  var AvatarGroup = /*#__PURE__*/React__namespace.forwardRef(function AvatarGroup(inProps, ref) {
24101
24127
  var _slotProps$additional;
24102
- var props = useThemeProps({
24128
+ var props = useThemeProps$1({
24103
24129
  props: inProps,
24104
24130
  name: 'MuiAvatarGroup'
24105
24131
  });
@@ -24144,7 +24170,6 @@
24144
24170
  var maxAvatars = Math.min(children.length, clampedMax - 1);
24145
24171
  var extraAvatars = Math.max(totalAvatars - clampedMax, totalAvatars - maxAvatars, 0);
24146
24172
  var extraAvatarsElement = renderSurplus ? renderSurplus(extraAvatars) : "+".concat(extraAvatars);
24147
- var marginLeft = spacing && SPACINGS$2[spacing] !== undefined ? SPACINGS$2[spacing] : -spacing;
24148
24173
  var additionalAvatarSlotProps = (_slotProps$additional = slotProps.additionalAvatar) != null ? _slotProps$additional : componentsProps.additionalAvatar;
24149
24174
  return /*#__PURE__*/jsxRuntime_2(AvatarGroupRoot, _extends({
24150
24175
  as: component,
@@ -24152,23 +24177,14 @@
24152
24177
  className: clsx(classes.root, className),
24153
24178
  ref: ref
24154
24179
  }, other, {
24155
- children: [extraAvatars ? /*#__PURE__*/jsxRuntime_1(AvatarGroupAvatar, _extends({
24156
- ownerState: ownerState,
24180
+ children: [extraAvatars ? /*#__PURE__*/jsxRuntime_1(Avatar$1, _extends({
24157
24181
  variant: variant
24158
24182
  }, additionalAvatarSlotProps, {
24159
24183
  className: clsx(classes.avatar, additionalAvatarSlotProps == null ? void 0 : additionalAvatarSlotProps.className),
24160
- style: _extends({
24161
- marginLeft: marginLeft
24162
- }, additionalAvatarSlotProps == null ? void 0 : additionalAvatarSlotProps.style),
24163
24184
  children: extraAvatarsElement
24164
- })) : null, children.slice(0, maxAvatars).reverse().map(function (child, index) {
24185
+ })) : null, children.slice(0, maxAvatars).reverse().map(function (child) {
24165
24186
  return /*#__PURE__*/React__namespace.cloneElement(child, {
24166
24187
  className: clsx(child.props.className, classes.avatar),
24167
- style: _extends({
24168
- // Consistent with "&:last-child" styling for the default spacing,
24169
- // we do not apply custom marginLeft spacing on the last child
24170
- marginLeft: index === maxAvatars - 1 ? undefined : marginLeft
24171
- }, child.props.style),
24172
24188
  variant: child.props.variant || variant
24173
24189
  });
24174
24190
  })]
@@ -24491,7 +24507,7 @@
24491
24507
  });
24492
24508
  var Backdrop = /*#__PURE__*/React__namespace.forwardRef(function Backdrop(inProps, ref) {
24493
24509
  var _slotProps$root, _ref2, _slots$root;
24494
- var props = useThemeProps({
24510
+ var props = useThemeProps$1({
24495
24511
  props: inProps,
24496
24512
  name: 'MuiBackdrop'
24497
24513
  });
@@ -24634,6 +24650,11 @@
24634
24650
  } ;
24635
24651
  var Backdrop$1 = Backdrop;
24636
24652
 
24653
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
24654
+ function createUseThemeProps(name) {
24655
+ return useThemeProps$1;
24656
+ }
24657
+
24637
24658
  function getBadgeUtilityClass(slot) {
24638
24659
  return generateUtilityClass$1('MuiBadge', slot);
24639
24660
  }
@@ -24644,6 +24665,7 @@
24644
24665
 
24645
24666
  var RADIUS_STANDARD = 10;
24646
24667
  var RADIUS_DOT = 4;
24668
+ var useThemeProps = createUseThemeProps();
24647
24669
  var useUtilityClasses$1t = function useUtilityClasses(ownerState) {
24648
24670
  var color = ownerState.color,
24649
24671
  anchorOrigin = ownerState.anchorOrigin,
@@ -25095,7 +25117,7 @@
25095
25117
  };
25096
25118
  });
25097
25119
  var BottomNavigation = /*#__PURE__*/React__namespace.forwardRef(function BottomNavigation(inProps, ref) {
25098
- var props = useThemeProps({
25120
+ var props = useThemeProps$1({
25099
25121
  props: inProps,
25100
25122
  name: 'MuiBottomNavigation'
25101
25123
  });
@@ -25251,7 +25273,7 @@
25251
25273
  }));
25252
25274
  });
25253
25275
  var BottomNavigationAction = /*#__PURE__*/React__namespace.forwardRef(function BottomNavigationAction(inProps, ref) {
25254
- var props = useThemeProps({
25276
+ var props = useThemeProps$1({
25255
25277
  props: inProps,
25256
25278
  name: 'MuiBottomNavigationAction'
25257
25279
  });
@@ -25518,7 +25540,7 @@
25518
25540
  }, []);
25519
25541
  }
25520
25542
  var Breadcrumbs = /*#__PURE__*/React__namespace.forwardRef(function Breadcrumbs(inProps, ref) {
25521
- var props = useThemeProps({
25543
+ var props = useThemeProps$1({
25522
25544
  props: inProps,
25523
25545
  name: 'MuiBreadcrumbs'
25524
25546
  });
@@ -25917,7 +25939,7 @@
25917
25939
  var contextProps = React__namespace.useContext(ButtonGroupContext$1);
25918
25940
  var buttonGroupButtonContextPositionClassName = React__namespace.useContext(ButtonGroupButtonContext$1);
25919
25941
  var resolvedProps = resolveProps(contextProps, inProps);
25920
- var props = useThemeProps({
25942
+ var props = useThemeProps$1({
25921
25943
  props: resolvedProps,
25922
25944
  name: 'MuiButton'
25923
25945
  });
@@ -26178,7 +26200,7 @@
26178
26200
  })));
26179
26201
  });
26180
26202
  var ButtonGroup = /*#__PURE__*/React__namespace.forwardRef(function ButtonGroup(inProps, ref) {
26181
- var props = useThemeProps({
26203
+ var props = useThemeProps$1({
26182
26204
  props: inProps,
26183
26205
  name: 'MuiButtonGroup'
26184
26206
  });
@@ -26367,7 +26389,7 @@
26367
26389
  };
26368
26390
  });
26369
26391
  var Card = /*#__PURE__*/React__namespace.forwardRef(function Card(inProps, ref) {
26370
- var props = useThemeProps({
26392
+ var props = useThemeProps$1({
26371
26393
  props: inProps,
26372
26394
  name: 'MuiCard'
26373
26395
  });
@@ -26482,7 +26504,7 @@
26482
26504
  };
26483
26505
  });
26484
26506
  var CardActionArea = /*#__PURE__*/React__namespace.forwardRef(function CardActionArea(inProps, ref) {
26485
- var props = useThemeProps({
26507
+ var props = useThemeProps$1({
26486
26508
  props: inProps,
26487
26509
  name: 'MuiCardActionArea'
26488
26510
  });
@@ -26566,7 +26588,7 @@
26566
26588
  });
26567
26589
  });
26568
26590
  var CardActions = /*#__PURE__*/React__namespace.forwardRef(function CardActions(inProps, ref) {
26569
- var props = useThemeProps({
26591
+ var props = useThemeProps$1({
26570
26592
  props: inProps,
26571
26593
  name: 'MuiCardActions'
26572
26594
  });
@@ -26641,7 +26663,7 @@
26641
26663
  };
26642
26664
  });
26643
26665
  var CardContent = /*#__PURE__*/React__namespace.forwardRef(function CardContent(inProps, ref) {
26644
- var props = useThemeProps({
26666
+ var props = useThemeProps$1({
26645
26667
  props: inProps,
26646
26668
  name: 'MuiCardContent'
26647
26669
  });
@@ -26752,7 +26774,7 @@
26752
26774
  flex: '1 1 auto'
26753
26775
  });
26754
26776
  var CardHeader = /*#__PURE__*/React__namespace.forwardRef(function CardHeader(inProps, ref) {
26755
- var props = useThemeProps({
26777
+ var props = useThemeProps$1({
26756
26778
  props: inProps,
26757
26779
  name: 'MuiCardHeader'
26758
26780
  });
@@ -26921,7 +26943,7 @@
26921
26943
  var MEDIA_COMPONENTS = ['video', 'audio', 'picture', 'iframe', 'img'];
26922
26944
  var IMAGE_COMPONENTS = ['picture', 'img'];
26923
26945
  var CardMedia = /*#__PURE__*/React__namespace.forwardRef(function CardMedia(inProps, ref) {
26924
- var props = useThemeProps({
26946
+ var props = useThemeProps$1({
26925
26947
  props: inProps,
26926
26948
  name: 'MuiCardMedia'
26927
26949
  });
@@ -27333,7 +27355,7 @@
27333
27355
  var defaultIndeterminateIcon = /*#__PURE__*/jsxRuntime_1(IndeterminateCheckBoxIcon, {});
27334
27356
  var Checkbox = /*#__PURE__*/React__namespace.forwardRef(function Checkbox(inProps, ref) {
27335
27357
  var _icon$props$fontSize, _indeterminateIcon$pr;
27336
- var props = useThemeProps({
27358
+ var props = useThemeProps$1({
27337
27359
  props: inProps,
27338
27360
  name: 'MuiCheckbox'
27339
27361
  });
@@ -27565,7 +27587,7 @@
27565
27587
  * attribute to `true` on that region until it has finished loading.
27566
27588
  */
27567
27589
  var CircularProgress = /*#__PURE__*/React__namespace.forwardRef(function CircularProgress(inProps, ref) {
27568
- var props = useThemeProps({
27590
+ var props = useThemeProps$1({
27569
27591
  props: inProps,
27570
27592
  name: 'MuiCircularProgress'
27571
27593
  });
@@ -27705,8 +27727,8 @@
27705
27727
  return [styles.root, styles["maxWidth".concat(capitalize(String(ownerState.maxWidth)))], ownerState.fixed && styles.fixed, ownerState.disableGutters && styles.disableGutters];
27706
27728
  }
27707
27729
  }),
27708
- useThemeProps: function useThemeProps$1(inProps) {
27709
- return useThemeProps({
27730
+ useThemeProps: function useThemeProps(inProps) {
27731
+ return useThemeProps$1({
27710
27732
  props: inProps,
27711
27733
  name: 'MuiContainer'
27712
27734
  });
@@ -27829,7 +27851,7 @@
27829
27851
  return defaultStyles;
27830
27852
  };
27831
27853
  function CssBaseline(inProps) {
27832
- var props = useThemeProps({
27854
+ var props = useThemeProps$1({
27833
27855
  props: inProps,
27834
27856
  name: 'MuiCssBaseline'
27835
27857
  });
@@ -27958,7 +27980,7 @@
27958
27980
  */
27959
27981
  var Modal = /*#__PURE__*/React__namespace.forwardRef(function Modal(inProps, ref) {
27960
27982
  var _ref2, _slots$root, _ref3, _slots$backdrop, _slotProps$root, _slotProps$backdrop;
27961
- var props = useThemeProps({
27983
+ var props = useThemeProps$1({
27962
27984
  name: 'MuiModal',
27963
27985
  props: inProps
27964
27986
  });
@@ -28412,7 +28434,7 @@
28412
28434
  * Dialogs are overlaid modal paper based components with a backdrop.
28413
28435
  */
28414
28436
  var Dialog = /*#__PURE__*/React__namespace.forwardRef(function Dialog(inProps, ref) {
28415
- var props = useThemeProps({
28437
+ var props = useThemeProps$1({
28416
28438
  props: inProps,
28417
28439
  name: 'MuiDialog'
28418
28440
  });
@@ -28696,7 +28718,7 @@
28696
28718
  });
28697
28719
  });
28698
28720
  var DialogActions = /*#__PURE__*/React__namespace.forwardRef(function DialogActions(inProps, ref) {
28699
- var props = useThemeProps({
28721
+ var props = useThemeProps$1({
28700
28722
  props: inProps,
28701
28723
  name: 'MuiDialogActions'
28702
28724
  });
@@ -28788,7 +28810,7 @@
28788
28810
  }));
28789
28811
  });
28790
28812
  var DialogContent = /*#__PURE__*/React__namespace.forwardRef(function DialogContent(inProps, ref) {
28791
- var props = useThemeProps({
28813
+ var props = useThemeProps$1({
28792
28814
  props: inProps,
28793
28815
  name: 'MuiDialogContent'
28794
28816
  });
@@ -28860,7 +28882,7 @@
28860
28882
  }
28861
28883
  })({});
28862
28884
  var DialogContentText = /*#__PURE__*/React__namespace.forwardRef(function DialogContentText(inProps, ref) {
28863
- var props = useThemeProps({
28885
+ var props = useThemeProps$1({
28864
28886
  props: inProps,
28865
28887
  name: 'MuiDialogContentText'
28866
28888
  });
@@ -28921,7 +28943,7 @@
28921
28943
  flex: '0 0 auto'
28922
28944
  });
28923
28945
  var DialogTitle = /*#__PURE__*/React__namespace.forwardRef(function DialogTitle(inProps, ref) {
28924
- var props = useThemeProps({
28946
+ var props = useThemeProps$1({
28925
28947
  props: inProps,
28926
28948
  name: 'MuiDialogTitle'
28927
28949
  });
@@ -29101,7 +29123,7 @@
29101
29123
  });
29102
29124
  });
29103
29125
  var Divider = /*#__PURE__*/React__namespace.forwardRef(function Divider(inProps, ref) {
29104
- var props = useThemeProps({
29126
+ var props = useThemeProps$1({
29105
29127
  props: inProps,
29106
29128
  name: 'MuiDivider'
29107
29129
  });
@@ -29647,7 +29669,7 @@
29647
29669
  * when `variant="temporary"` is set.
29648
29670
  */
29649
29671
  var Drawer = /*#__PURE__*/React__namespace.forwardRef(function Drawer(inProps, ref) {
29650
- var props = useThemeProps({
29672
+ var props = useThemeProps$1({
29651
29673
  props: inProps,
29652
29674
  name: 'MuiDrawer'
29653
29675
  });
@@ -29944,7 +29966,7 @@
29944
29966
  });
29945
29967
  });
29946
29968
  var Fab = /*#__PURE__*/React__namespace.forwardRef(function Fab(inProps, ref) {
29947
- var props = useThemeProps({
29969
+ var props = useThemeProps$1({
29948
29970
  props: inProps,
29949
29971
  name: 'MuiFab'
29950
29972
  });
@@ -30215,7 +30237,7 @@
30215
30237
  });
30216
30238
  var FilledInput = /*#__PURE__*/React__namespace.forwardRef(function FilledInput(inProps, ref) {
30217
30239
  var _ref5, _slots$root, _ref6, _slots$input;
30218
- var props = useThemeProps({
30240
+ var props = useThemeProps$1({
30219
30241
  props: inProps,
30220
30242
  name: 'MuiFilledInput'
30221
30243
  });
@@ -30535,7 +30557,7 @@
30535
30557
  * For instance, only one input can be focused at the same time, the state shouldn't be shared.
30536
30558
  */
30537
30559
  var FormControl = /*#__PURE__*/React__namespace.forwardRef(function FormControl(inProps, ref) {
30538
- var props = useThemeProps({
30560
+ var props = useThemeProps$1({
30539
30561
  props: inProps,
30540
30562
  name: 'MuiFormControl'
30541
30563
  });
@@ -30765,8 +30787,8 @@
30765
30787
  return styles.root;
30766
30788
  }
30767
30789
  }),
30768
- useThemeProps: function useThemeProps$1(inProps) {
30769
- return useThemeProps({
30790
+ useThemeProps: function useThemeProps(inProps) {
30791
+ return useThemeProps$1({
30770
30792
  props: inProps,
30771
30793
  name: 'MuiStack'
30772
30794
  });
@@ -30895,7 +30917,7 @@
30895
30917
  */
30896
30918
  var FormControlLabel = /*#__PURE__*/React__namespace.forwardRef(function FormControlLabel(inProps, ref) {
30897
30919
  var _ref5, _slotProps$typography;
30898
- var props = useThemeProps({
30920
+ var props = useThemeProps$1({
30899
30921
  props: inProps,
30900
30922
  name: 'MuiFormControlLabel'
30901
30923
  });
@@ -31088,7 +31110,7 @@
31088
31110
  * For the `Radio`, you should be using the `RadioGroup` component instead of this one.
31089
31111
  */
31090
31112
  var FormGroup = /*#__PURE__*/React__namespace.forwardRef(function FormGroup(inProps, ref) {
31091
- var props = useThemeProps({
31113
+ var props = useThemeProps$1({
31092
31114
  props: inProps,
31093
31115
  name: 'MuiFormGroup'
31094
31116
  });
@@ -31193,7 +31215,7 @@
31193
31215
  });
31194
31216
  });
31195
31217
  var FormHelperText = /*#__PURE__*/React__namespace.forwardRef(function FormHelperText(inProps, ref) {
31196
- var props = useThemeProps({
31218
+ var props = useThemeProps$1({
31197
31219
  props: inProps,
31198
31220
  name: 'MuiFormHelperText'
31199
31221
  });
@@ -31357,7 +31379,7 @@
31357
31379
  });
31358
31380
  });
31359
31381
  var FormLabel = /*#__PURE__*/React__namespace.forwardRef(function FormLabel(inProps, ref) {
31360
- var props = useThemeProps({
31382
+ var props = useThemeProps$1({
31361
31383
  props: inProps,
31362
31384
  name: 'MuiFormLabel'
31363
31385
  });
@@ -31813,7 +31835,7 @@
31813
31835
  return composeClasses(slots, getGridUtilityClass, classes);
31814
31836
  };
31815
31837
  var Grid = /*#__PURE__*/React__namespace.forwardRef(function Grid(inProps, ref) {
31816
- var themeProps = useThemeProps({
31838
+ var themeProps = useThemeProps$1({
31817
31839
  props: inProps,
31818
31840
  name: 'MuiGrid'
31819
31841
  });
@@ -32030,8 +32052,8 @@
32030
32052
  }
32031
32053
  }),
32032
32054
  componentName: 'MuiGrid2',
32033
- useThemeProps: function useThemeProps$1(inProps) {
32034
- return useThemeProps({
32055
+ useThemeProps: function useThemeProps(inProps) {
32056
+ return useThemeProps$1({
32035
32057
  props: inProps,
32036
32058
  name: 'MuiGrid2'
32037
32059
  });
@@ -32123,7 +32145,7 @@
32123
32145
  _props$TransitionComp = props.TransitionComponent,
32124
32146
  TransitionComponent = _props$TransitionComp === void 0 ? Transition$1 : _props$TransitionComp,
32125
32147
  other = _objectWithoutProperties(props, ["addEndListener", "appear", "children", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"]);
32126
- var timer = React__namespace.useRef();
32148
+ var timer = useTimeout();
32127
32149
  var autoTimeout = React__namespace.useRef();
32128
32150
  var theme = useTheme();
32129
32151
  var nodeRef = React__namespace.useRef(null);
@@ -32211,18 +32233,13 @@
32211
32233
  var handleExited = normalizedTransitionCallback(onExited);
32212
32234
  var handleAddEndListener = function handleAddEndListener(next) {
32213
32235
  if (timeout === 'auto') {
32214
- timer.current = setTimeout(next, autoTimeout.current || 0);
32236
+ timer.start(autoTimeout.current || 0, next);
32215
32237
  }
32216
32238
  if (addEndListener) {
32217
32239
  // Old call signature before `react-transition-group` implemented `nodeRef`
32218
32240
  addEndListener(nodeRef.current, next);
32219
32241
  }
32220
32242
  };
32221
- React__namespace.useEffect(function () {
32222
- return function () {
32223
- clearTimeout(timer.current);
32224
- };
32225
- }, []);
32226
32243
  return /*#__PURE__*/jsxRuntime_1(TransitionComponent, _extends({
32227
32244
  appear: appear,
32228
32245
  "in": inProp,
@@ -33026,7 +33043,7 @@
33026
33043
  };
33027
33044
  });
33028
33045
  var Icon = /*#__PURE__*/React__namespace.forwardRef(function Icon(inProps, ref) {
33029
- var props = useThemeProps({
33046
+ var props = useThemeProps$1({
33030
33047
  props: inProps,
33031
33048
  name: 'MuiIcon'
33032
33049
  });
@@ -33151,7 +33168,7 @@
33151
33168
  });
33152
33169
  });
33153
33170
  var ImageList = /*#__PURE__*/React__namespace.forwardRef(function ImageList(inProps, ref) {
33154
- var props = useThemeProps({
33171
+ var props = useThemeProps$1({
33155
33172
  props: inProps,
33156
33173
  name: 'MuiImageList'
33157
33174
  });
@@ -33312,7 +33329,7 @@
33312
33329
  })));
33313
33330
  });
33314
33331
  var ImageListItem = /*#__PURE__*/React__namespace.forwardRef(function ImageListItem(inProps, ref) {
33315
- var props = useThemeProps({
33332
+ var props = useThemeProps$1({
33316
33333
  props: inProps,
33317
33334
  name: 'MuiImageListItem'
33318
33335
  });
@@ -33540,7 +33557,7 @@
33540
33557
  });
33541
33558
  });
33542
33559
  var ImageListItemBar = /*#__PURE__*/React__namespace.forwardRef(function ImageListItemBar(inProps, ref) {
33543
- var props = useThemeProps({
33560
+ var props = useThemeProps$1({
33544
33561
  props: inProps,
33545
33562
  name: 'MuiImageListItemBar'
33546
33563
  });
@@ -33714,7 +33731,7 @@
33714
33731
  })({});
33715
33732
  var Input = /*#__PURE__*/React__namespace.forwardRef(function Input(inProps, ref) {
33716
33733
  var _ref3, _slots$root, _ref4, _slots$input;
33717
- var props = useThemeProps({
33734
+ var props = useThemeProps$1({
33718
33735
  props: inProps,
33719
33736
  name: 'MuiInput'
33720
33737
  });
@@ -34002,7 +34019,7 @@
34002
34019
  });
34003
34020
  });
34004
34021
  var InputAdornment = /*#__PURE__*/React__namespace.forwardRef(function InputAdornment(inProps, ref) {
34005
- var props = useThemeProps({
34022
+ var props = useThemeProps$1({
34006
34023
  props: inProps,
34007
34024
  name: 'MuiInputAdornment'
34008
34025
  });
@@ -34202,7 +34219,7 @@
34202
34219
  }));
34203
34220
  });
34204
34221
  var InputLabel = /*#__PURE__*/React__namespace.forwardRef(function InputLabel(inProps, ref) {
34205
- var props = useThemeProps({
34222
+ var props = useThemeProps$1({
34206
34223
  name: 'MuiInputLabel',
34207
34224
  props: inProps
34208
34225
  });
@@ -34474,7 +34491,7 @@
34474
34491
  * attribute to `true` on that region until it has finished loading.
34475
34492
  */
34476
34493
  var LinearProgress = /*#__PURE__*/React__namespace.forwardRef(function LinearProgress(inProps, ref) {
34477
- var props = useThemeProps({
34494
+ var props = useThemeProps$1({
34478
34495
  props: inProps,
34479
34496
  name: 'MuiLinearProgress'
34480
34497
  });
@@ -34681,7 +34698,7 @@
34681
34698
  }));
34682
34699
  });
34683
34700
  var Link = /*#__PURE__*/React__namespace.forwardRef(function Link(inProps, ref) {
34684
- var props = useThemeProps({
34701
+ var props = useThemeProps$1({
34685
34702
  props: inProps,
34686
34703
  name: 'MuiLink'
34687
34704
  });
@@ -34852,7 +34869,7 @@
34852
34869
  });
34853
34870
  });
34854
34871
  var List = /*#__PURE__*/React__namespace.forwardRef(function List(inProps, ref) {
34855
- var props = useThemeProps({
34872
+ var props = useThemeProps$1({
34856
34873
  props: inProps,
34857
34874
  name: 'MuiList'
34858
34875
  });
@@ -35025,7 +35042,7 @@
35025
35042
  });
35026
35043
  });
35027
35044
  var ListItemButton = /*#__PURE__*/React__namespace.forwardRef(function ListItemButton(inProps, ref) {
35028
- var props = useThemeProps({
35045
+ var props = useThemeProps$1({
35029
35046
  props: inProps,
35030
35047
  name: 'MuiListItemButton'
35031
35048
  });
@@ -35208,7 +35225,7 @@
35208
35225
  * Must be used as the last child of ListItem to function properly.
35209
35226
  */
35210
35227
  var ListItemSecondaryAction = /*#__PURE__*/React__namespace.forwardRef(function ListItemSecondaryAction(inProps, ref) {
35211
- var props = useThemeProps({
35228
+ var props = useThemeProps$1({
35212
35229
  props: inProps,
35213
35230
  name: 'MuiListItemSecondaryAction'
35214
35231
  });
@@ -35353,7 +35370,7 @@
35353
35370
  * Uses an additional container component if `ListItemSecondaryAction` is the last child.
35354
35371
  */
35355
35372
  var ListItem = /*#__PURE__*/React__namespace.forwardRef(function ListItem(inProps, ref) {
35356
- var props = useThemeProps({
35373
+ var props = useThemeProps$1({
35357
35374
  props: inProps,
35358
35375
  name: 'MuiListItem'
35359
35376
  });
@@ -35687,7 +35704,7 @@
35687
35704
  * A simple wrapper to apply `List` styles to an `Avatar`.
35688
35705
  */
35689
35706
  var ListItemAvatar = /*#__PURE__*/React__namespace.forwardRef(function ListItemAvatar(inProps, ref) {
35690
- var props = useThemeProps({
35707
+ var props = useThemeProps$1({
35691
35708
  props: inProps,
35692
35709
  name: 'MuiListItemAvatar'
35693
35710
  });
@@ -35766,7 +35783,7 @@
35766
35783
  * A simple wrapper to apply `List` styles to an `Icon` or `SvgIcon`.
35767
35784
  */
35768
35785
  var ListItemIcon = /*#__PURE__*/React__namespace.forwardRef(function ListItemIcon(inProps, ref) {
35769
- var props = useThemeProps({
35786
+ var props = useThemeProps$1({
35770
35787
  props: inProps,
35771
35788
  name: 'MuiListItemIcon'
35772
35789
  });
@@ -35849,7 +35866,7 @@
35849
35866
  });
35850
35867
  });
35851
35868
  var ListItemText = /*#__PURE__*/React__namespace.forwardRef(function ListItemText(inProps, ref) {
35852
- var props = useThemeProps({
35869
+ var props = useThemeProps$1({
35853
35870
  props: inProps,
35854
35871
  name: 'MuiListItemText'
35855
35872
  });
@@ -36304,7 +36321,7 @@
36304
36321
  });
36305
36322
  var Popover = /*#__PURE__*/React__namespace.forwardRef(function Popover(inProps, ref) {
36306
36323
  var _slotProps$paper, _slots$root, _slots$paper;
36307
- var props = useThemeProps({
36324
+ var props = useThemeProps$1({
36308
36325
  props: inProps,
36309
36326
  name: 'MuiPopover'
36310
36327
  });
@@ -36821,7 +36838,7 @@
36821
36838
  });
36822
36839
  var Menu = /*#__PURE__*/React__namespace.forwardRef(function Menu(inProps, ref) {
36823
36840
  var _slots$paper, _slotProps$paper;
36824
- var props = useThemeProps({
36841
+ var props = useThemeProps$1({
36825
36842
  props: inProps,
36826
36843
  name: 'MuiMenu'
36827
36844
  });
@@ -37164,7 +37181,7 @@
37164
37181
  })));
37165
37182
  });
37166
37183
  var MenuItem = /*#__PURE__*/React__namespace.forwardRef(function MenuItem(inProps, ref) {
37167
- var props = useThemeProps({
37184
+ var props = useThemeProps$1({
37168
37185
  props: inProps,
37169
37186
  name: 'MuiMenuItem'
37170
37187
  });
@@ -37406,7 +37423,7 @@
37406
37423
  });
37407
37424
  });
37408
37425
  var MobileStepper = /*#__PURE__*/React__namespace.forwardRef(function MobileStepper(inProps, ref) {
37409
- var props = useThemeProps({
37426
+ var props = useThemeProps$1({
37410
37427
  props: inProps,
37411
37428
  name: 'MuiMobileStepper'
37412
37429
  });
@@ -37724,7 +37741,7 @@
37724
37741
  * An alternative to `<Select native />` with a much smaller bundle size footprint.
37725
37742
  */
37726
37743
  var NativeSelect = /*#__PURE__*/React__namespace.forwardRef(function NativeSelect(inProps, ref) {
37727
- var props = useThemeProps({
37744
+ var props = useThemeProps$1({
37728
37745
  name: 'MuiNativeSelect',
37729
37746
  props: inProps
37730
37747
  });
@@ -38050,7 +38067,7 @@
38050
38067
  });
38051
38068
  var OutlinedInput = /*#__PURE__*/React__namespace.forwardRef(function OutlinedInput(inProps, ref) {
38052
38069
  var _ref5, _slots$root, _ref6, _slots$input, _React$Fragment;
38053
- var props = useThemeProps({
38070
+ var props = useThemeProps$1({
38054
38071
  props: inProps,
38055
38072
  name: 'MuiOutlinedInput'
38056
38073
  });
@@ -38600,7 +38617,7 @@
38600
38617
  });
38601
38618
  });
38602
38619
  var PaginationItem = /*#__PURE__*/React__namespace.forwardRef(function PaginationItem(inProps, ref) {
38603
- var props = useThemeProps({
38620
+ var props = useThemeProps$1({
38604
38621
  props: inProps,
38605
38622
  name: 'MuiPaginationItem'
38606
38623
  });
@@ -38803,7 +38820,7 @@
38803
38820
  return "Go to ".concat(type, " page");
38804
38821
  }
38805
38822
  var Pagination = /*#__PURE__*/React__namespace.forwardRef(function Pagination(inProps, ref) {
38806
- var props = useThemeProps({
38823
+ var props = useThemeProps$1({
38807
38824
  props: inProps,
38808
38825
  name: 'MuiPagination'
38809
38826
  });
@@ -39159,7 +39176,7 @@
39159
39176
  var defaultIcon$1 = /*#__PURE__*/jsxRuntime_1(RadioButtonIcon, {});
39160
39177
  var Radio = /*#__PURE__*/React__namespace.forwardRef(function Radio(inProps, ref) {
39161
39178
  var _defaultIcon$props$fo, _defaultCheckedIcon$p;
39162
- var props = useThemeProps({
39179
+ var props = useThemeProps$1({
39163
39180
  props: inProps,
39164
39181
  name: 'MuiRadio'
39165
39182
  });
@@ -39640,7 +39657,7 @@
39640
39657
  return "".concat(value, " Star").concat(value !== 1 ? 's' : '');
39641
39658
  }
39642
39659
  var Rating = /*#__PURE__*/React__namespace.forwardRef(function Rating(inProps, ref) {
39643
- var props = useThemeProps({
39660
+ var props = useThemeProps$1({
39644
39661
  name: 'MuiRating',
39645
39662
  props: inProps
39646
39663
  });
@@ -40081,7 +40098,7 @@
40081
40098
  }, colorSchemeStyles);
40082
40099
  });
40083
40100
  var ScopedCssBaseline = /*#__PURE__*/React__namespace.forwardRef(function ScopedCssBaseline(inProps, ref) {
40084
- var props = useThemeProps({
40101
+ var props = useThemeProps$1({
40085
40102
  props: inProps,
40086
40103
  name: 'MuiScopedCssBaseline'
40087
40104
  });
@@ -40804,7 +40821,7 @@
40804
40821
  var StyledOutlinedInput = styled$1(OutlinedInput$1, styledRootConfig)('');
40805
40822
  var StyledFilledInput = styled$1(FilledInput$1, styledRootConfig)('');
40806
40823
  var Select = /*#__PURE__*/React__namespace.forwardRef(function Select(inProps, ref) {
40807
- var props = useThemeProps({
40824
+ var props = useThemeProps$1({
40808
40825
  name: 'MuiSelect',
40809
40826
  props: inProps
40810
40827
  });
@@ -40897,7 +40914,7 @@
40897
40914
  }, inputProps, {
40898
40915
  classes: inputProps ? deepmerge(restOfClasses, inputProps.classes) : restOfClasses
40899
40916
  }, input ? input.props.inputProps : {})
40900
- }, multiple && _native && variant === 'outlined' ? {
40917
+ }, (multiple && _native || displayEmpty) && variant === 'outlined' ? {
40901
40918
  notched: true
40902
40919
  } : {}, {
40903
40920
  ref: inputComponentRef,
@@ -41127,7 +41144,7 @@
41127
41144
  return ownerState.animation === 'wave' && css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: relative;\n overflow: hidden;\n\n /* Fix bug in Safari https://bugs.webkit.org/show_bug.cgi?id=68196 */\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n\n &::after {\n animation: ", " 2s linear 0.5s infinite;\n background: linear-gradient(\n 90deg,\n transparent,\n ", ",\n transparent\n );\n content: '';\n position: absolute;\n transform: translateX(-100%); /* Avoid flash during server-side hydration */\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n }\n "])), waveKeyframe, (theme.vars || theme).palette.action.hover);
41128
41145
  });
41129
41146
  var Skeleton = /*#__PURE__*/React__namespace.forwardRef(function Skeleton(inProps, ref) {
41130
- var props = useThemeProps({
41147
+ var props = useThemeProps$1({
41131
41148
  props: inProps,
41132
41149
  name: 'MuiSkeleton'
41133
41150
  });
@@ -41615,7 +41632,7 @@
41615
41632
  };
41616
41633
  var Slider = /*#__PURE__*/React__namespace.forwardRef(function Slider(inputProps, ref) {
41617
41634
  var _ref9, _slots$root, _ref10, _slots$rail, _ref11, _slots$track, _ref12, _slots$thumb, _ref13, _slots$valueLabel, _ref14, _slots$mark, _ref15, _slots$markLabel, _ref16, _slots$input, _slotProps$root, _slotProps$rail, _slotProps$track, _slotProps$thumb, _slotProps$valueLabel, _slotProps$mark, _slotProps$markLabel, _slotProps$input;
41618
- var props = useThemeProps({
41635
+ var props = useThemeProps$1({
41619
41636
  props: inputProps,
41620
41637
  name: 'MuiSlider'
41621
41638
  });
@@ -41651,6 +41668,8 @@
41651
41668
  props.onChangeCommitted;
41652
41669
  var _props$orientation = props.orientation,
41653
41670
  orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,
41671
+ _props$shiftStep = props.shiftStep,
41672
+ shiftStep = _props$shiftStep === void 0 ? 10 : _props$shiftStep,
41654
41673
  _props$size = props.size,
41655
41674
  size = _props$size === void 0 ? 'medium' : _props$size,
41656
41675
  _props$step = props.step,
@@ -41667,7 +41686,7 @@
41667
41686
  valueLabelDisplay = _props$valueLabelDisp === void 0 ? 'off' : _props$valueLabelDisp,
41668
41687
  _props$valueLabelForm = props.valueLabelFormat,
41669
41688
  valueLabelFormat = _props$valueLabelForm === void 0 ? Identity : _props$valueLabelForm,
41670
- other = _objectWithoutProperties(props, ["aria-label", "aria-valuetext", "aria-labelledby", "component", "components", "componentsProps", "color", "classes", "className", "disableSwap", "disabled", "getAriaLabel", "getAriaValueText", "marks", "max", "min", "name", "onChange", "onChangeCommitted", "orientation", "size", "step", "scale", "slotProps", "slots", "tabIndex", "track", "value", "valueLabelDisplay", "valueLabelFormat"]);
41689
+ other = _objectWithoutProperties(props, ["aria-label", "aria-valuetext", "aria-labelledby", "component", "components", "componentsProps", "color", "classes", "className", "disableSwap", "disabled", "getAriaLabel", "getAriaValueText", "marks", "max", "min", "name", "onChange", "onChangeCommitted", "orientation", "shiftStep", "size", "step", "scale", "slotProps", "slots", "tabIndex", "track", "value", "valueLabelDisplay", "valueLabelFormat"]);
41671
41690
  var ownerState = _extends({}, props, {
41672
41691
  isRtl: isRtl,
41673
41692
  max: max,
@@ -41680,6 +41699,7 @@
41680
41699
  color: color,
41681
41700
  size: size,
41682
41701
  step: step,
41702
+ shiftStep: shiftStep,
41683
41703
  scale: scale,
41684
41704
  track: track,
41685
41705
  valueLabelDisplay: valueLabelDisplay,
@@ -42027,6 +42047,11 @@
42027
42047
  * }
42028
42048
  */
42029
42049
  scale: PropTypes.func,
42050
+ /**
42051
+ * The granularity with which the slider can step through values when using Page Up/Page Down or Shift + Arrow Up/Arrow Down.
42052
+ * @default 10
42053
+ */
42054
+ shiftStep: PropTypes.number,
42030
42055
  /**
42031
42056
  * The size of the slider.
42032
42057
  * @default 'medium'
@@ -42187,7 +42212,7 @@
42187
42212
  marginRight: -8
42188
42213
  });
42189
42214
  var SnackbarContent = /*#__PURE__*/React__namespace.forwardRef(function SnackbarContent(inProps, ref) {
42190
- var props = useThemeProps({
42215
+ var props = useThemeProps$1({
42191
42216
  props: inProps,
42192
42217
  name: 'MuiSnackbarContent'
42193
42218
  });
@@ -42309,7 +42334,7 @@
42309
42334
  })));
42310
42335
  });
42311
42336
  var Snackbar = /*#__PURE__*/React__namespace.forwardRef(function Snackbar(inProps, ref) {
42312
- var props = useThemeProps({
42337
+ var props = useThemeProps$1({
42313
42338
  props: inProps,
42314
42339
  name: 'MuiSnackbar'
42315
42340
  });
@@ -42844,7 +42869,7 @@
42844
42869
  });
42845
42870
  });
42846
42871
  var SpeedDial = /*#__PURE__*/React__namespace.forwardRef(function SpeedDial(inProps, ref) {
42847
- var props = useThemeProps({
42872
+ var props = useThemeProps$1({
42848
42873
  props: inProps,
42849
42874
  name: 'MuiSpeedDial'
42850
42875
  });
@@ -42894,12 +42919,7 @@
42894
42919
  direction: direction
42895
42920
  });
42896
42921
  var classes = useUtilityClasses$r(ownerState);
42897
- var eventTimer = React__namespace.useRef();
42898
- React__namespace.useEffect(function () {
42899
- return function () {
42900
- clearTimeout(eventTimer.current);
42901
- };
42902
- }, []);
42922
+ var eventTimer = useTimeout();
42903
42923
 
42904
42924
  /**
42905
42925
  * an index in actions.current
@@ -42982,9 +43002,9 @@
42982
43002
  if (event.type === 'blur' && onBlur) {
42983
43003
  onBlur(event);
42984
43004
  }
42985
- clearTimeout(eventTimer.current);
43005
+ eventTimer.clear();
42986
43006
  if (event.type === 'blur') {
42987
- eventTimer.current = setTimeout(function () {
43007
+ eventTimer.start(0, function () {
42988
43008
  setOpenState(false);
42989
43009
  if (onClose) {
42990
43010
  onClose(event, 'blur');
@@ -43001,7 +43021,7 @@
43001
43021
  if (FabProps.onClick) {
43002
43022
  FabProps.onClick(event);
43003
43023
  }
43004
- clearTimeout(eventTimer.current);
43024
+ eventTimer.clear();
43005
43025
  if (open) {
43006
43026
  setOpenState(false);
43007
43027
  if (onClose) {
@@ -43025,10 +43045,10 @@
43025
43045
  // When moving the focus between two items,
43026
43046
  // a chain if blur and focus event is triggered.
43027
43047
  // We only handle the last event.
43028
- clearTimeout(eventTimer.current);
43048
+ eventTimer.clear();
43029
43049
  if (!open) {
43030
43050
  // Wait for a future focus or click event
43031
- eventTimer.current = setTimeout(function () {
43051
+ eventTimer.start(0, function () {
43032
43052
  setOpenState(true);
43033
43053
  if (onOpen) {
43034
43054
  var eventMap = {
@@ -43391,7 +43411,7 @@
43391
43411
  };
43392
43412
  });
43393
43413
  var hystersisOpen = false;
43394
- var hystersisTimer = null;
43414
+ var hystersisTimer = new Timeout();
43395
43415
  var cursorPosition = {
43396
43416
  x: 0,
43397
43417
  y: 0
@@ -43408,7 +43428,7 @@
43408
43428
  // TODO v6: Remove PopperComponent, PopperProps, TransitionComponent and TransitionProps.
43409
43429
  var Tooltip = /*#__PURE__*/React__namespace.forwardRef(function Tooltip(inProps, ref) {
43410
43430
  var _ref5, _slots$popper, _ref6, _ref7, _slots$transition, _ref8, _slots$tooltip, _ref9, _slots$arrow, _slotProps$popper, _ref10, _slotProps$popper2, _slotProps$transition, _slotProps$tooltip, _ref11, _slotProps$tooltip2, _slotProps$arrow, _ref12, _slotProps$arrow2;
43411
- var props = useThemeProps({
43431
+ var props = useThemeProps$1({
43412
43432
  props: inProps,
43413
43433
  name: 'MuiTooltip'
43414
43434
  });
@@ -43473,10 +43493,10 @@
43473
43493
  setArrowRef = _React$useState2[1];
43474
43494
  var ignoreNonTouchEvents = React__namespace.useRef(false);
43475
43495
  var disableInteractive = disableInteractiveProp || followCursor;
43476
- var closeTimer = React__namespace.useRef();
43477
- var enterTimer = React__namespace.useRef();
43478
- var leaveTimer = React__namespace.useRef();
43479
- var touchTimer = React__namespace.useRef();
43496
+ var closeTimer = useTimeout();
43497
+ var enterTimer = useTimeout();
43498
+ var leaveTimer = useTimeout();
43499
+ var touchTimer = useTimeout();
43480
43500
  var _useControlled = useControlled({
43481
43501
  controlled: openProp,
43482
43502
  "default": false,
@@ -43499,23 +43519,18 @@
43499
43519
  }
43500
43520
  var id = useId(idProp);
43501
43521
  var prevUserSelect = React__namespace.useRef();
43502
- var stopTouchInteraction = React__namespace.useCallback(function () {
43522
+ var stopTouchInteraction = useEventCallback(function () {
43503
43523
  if (prevUserSelect.current !== undefined) {
43504
43524
  document.body.style.WebkitUserSelect = prevUserSelect.current;
43505
43525
  prevUserSelect.current = undefined;
43506
43526
  }
43507
- clearTimeout(touchTimer.current);
43508
- }, []);
43527
+ touchTimer.clear();
43528
+ });
43509
43529
  React__namespace.useEffect(function () {
43510
- return function () {
43511
- clearTimeout(closeTimer.current);
43512
- clearTimeout(enterTimer.current);
43513
- clearTimeout(leaveTimer.current);
43514
- stopTouchInteraction();
43515
- };
43530
+ return stopTouchInteraction;
43516
43531
  }, [stopTouchInteraction]);
43517
43532
  var handleOpen = function handleOpen(event) {
43518
- clearTimeout(hystersisTimer);
43533
+ hystersisTimer.clear();
43519
43534
  hystersisOpen = true;
43520
43535
 
43521
43536
  // The mouseover event will trigger for every nested element in the tooltip.
@@ -43531,18 +43546,16 @@
43531
43546
  * @param {React.SyntheticEvent | Event} event
43532
43547
  */
43533
43548
  function (event) {
43534
- clearTimeout(hystersisTimer);
43535
- hystersisTimer = setTimeout(function () {
43549
+ hystersisTimer.start(800 + leaveDelay, function () {
43536
43550
  hystersisOpen = false;
43537
- }, 800 + leaveDelay);
43551
+ });
43538
43552
  setOpenState(false);
43539
43553
  if (onClose && open) {
43540
43554
  onClose(event);
43541
43555
  }
43542
- clearTimeout(closeTimer.current);
43543
- closeTimer.current = setTimeout(function () {
43556
+ closeTimer.start(theme.transitions.duration.shortest, function () {
43544
43557
  ignoreNonTouchEvents.current = false;
43545
- }, theme.transitions.duration.shortest);
43558
+ });
43546
43559
  });
43547
43560
  var handleEnter = function handleEnter(event) {
43548
43561
  if (ignoreNonTouchEvents.current && event.type !== 'touchstart') {
@@ -43555,22 +43568,21 @@
43555
43568
  if (childNode) {
43556
43569
  childNode.removeAttribute('title');
43557
43570
  }
43558
- clearTimeout(enterTimer.current);
43559
- clearTimeout(leaveTimer.current);
43571
+ enterTimer.clear();
43572
+ leaveTimer.clear();
43560
43573
  if (enterDelay || hystersisOpen && enterNextDelay) {
43561
- enterTimer.current = setTimeout(function () {
43574
+ enterTimer.start(hystersisOpen ? enterNextDelay : enterDelay, function () {
43562
43575
  handleOpen(event);
43563
- }, hystersisOpen ? enterNextDelay : enterDelay);
43576
+ });
43564
43577
  } else {
43565
43578
  handleOpen(event);
43566
43579
  }
43567
43580
  };
43568
43581
  var handleLeave = function handleLeave(event) {
43569
- clearTimeout(enterTimer.current);
43570
- clearTimeout(leaveTimer.current);
43571
- leaveTimer.current = setTimeout(function () {
43582
+ enterTimer.clear();
43583
+ leaveTimer.start(leaveDelay, function () {
43572
43584
  handleClose(event);
43573
- }, leaveDelay);
43585
+ });
43574
43586
  };
43575
43587
  var _useIsFocusVisible = useIsFocusVisible(),
43576
43588
  isFocusVisibleRef = _useIsFocusVisible.isFocusVisibleRef,
@@ -43611,26 +43623,25 @@
43611
43623
  var handleMouseLeave = handleLeave;
43612
43624
  var handleTouchStart = function handleTouchStart(event) {
43613
43625
  detectTouchStart(event);
43614
- clearTimeout(leaveTimer.current);
43615
- clearTimeout(closeTimer.current);
43626
+ leaveTimer.clear();
43627
+ closeTimer.clear();
43616
43628
  stopTouchInteraction();
43617
43629
  prevUserSelect.current = document.body.style.WebkitUserSelect;
43618
43630
  // Prevent iOS text selection on long-tap.
43619
43631
  document.body.style.WebkitUserSelect = 'none';
43620
- touchTimer.current = setTimeout(function () {
43632
+ touchTimer.start(enterTouchDelay, function () {
43621
43633
  document.body.style.WebkitUserSelect = prevUserSelect.current;
43622
43634
  handleEnter(event);
43623
- }, enterTouchDelay);
43635
+ });
43624
43636
  };
43625
43637
  var handleTouchEnd = function handleTouchEnd(event) {
43626
43638
  if (children.props.onTouchEnd) {
43627
43639
  children.props.onTouchEnd(event);
43628
43640
  }
43629
43641
  stopTouchInteraction();
43630
- clearTimeout(leaveTimer.current);
43631
- leaveTimer.current = setTimeout(function () {
43642
+ leaveTimer.start(leaveTouchDelay, function () {
43632
43643
  handleClose(event);
43633
- }, leaveTouchDelay);
43644
+ });
43634
43645
  };
43635
43646
  React__namespace.useEffect(function () {
43636
43647
  if (!open) {
@@ -43654,6 +43665,7 @@
43654
43665
  var handleRef = useForkRef(children.ref, focusVisibleRef, setChildNode, ref);
43655
43666
 
43656
43667
  // There is no point in displaying an empty tooltip.
43668
+ // So we exclude all falsy values, except 0, which is valid.
43657
43669
  if (!title && title !== 0) {
43658
43670
  open = false;
43659
43671
  }
@@ -44091,7 +44103,7 @@
44091
44103
  });
44092
44104
  });
44093
44105
  var SpeedDialAction = /*#__PURE__*/React__namespace.forwardRef(function SpeedDialAction(inProps, ref) {
44094
- var props = useThemeProps({
44106
+ var props = useThemeProps$1({
44095
44107
  props: inProps,
44096
44108
  name: 'MuiSpeedDialAction'
44097
44109
  });
@@ -44285,7 +44297,7 @@
44285
44297
  }));
44286
44298
  });
44287
44299
  var SpeedDialIcon = /*#__PURE__*/React__namespace.forwardRef(function SpeedDialIcon(inProps, ref) {
44288
- var props = useThemeProps({
44300
+ var props = useThemeProps$1({
44289
44301
  props: inProps,
44290
44302
  name: 'MuiSpeedDialIcon'
44291
44303
  });
@@ -44416,7 +44428,7 @@
44416
44428
  });
44417
44429
  });
44418
44430
  var Step = /*#__PURE__*/React__namespace.forwardRef(function Step(inProps, ref) {
44419
- var props = useThemeProps({
44431
+ var props = useThemeProps$1({
44420
44432
  props: inProps,
44421
44433
  name: 'MuiStep'
44422
44434
  });
@@ -44607,7 +44619,7 @@
44607
44619
  };
44608
44620
  });
44609
44621
  var StepIcon = /*#__PURE__*/React__namespace.forwardRef(function StepIcon(inProps, ref) {
44610
- var props = useThemeProps({
44622
+ var props = useThemeProps$1({
44611
44623
  props: inProps,
44612
44624
  name: 'MuiStepIcon'
44613
44625
  });
@@ -44806,7 +44818,7 @@
44806
44818
  });
44807
44819
  var StepLabel = /*#__PURE__*/React__namespace.forwardRef(function StepLabel(inProps, ref) {
44808
44820
  var _slotProps$label;
44809
- var props = useThemeProps({
44821
+ var props = useThemeProps$1({
44810
44822
  props: inProps,
44811
44823
  name: 'MuiStepLabel'
44812
44824
  });
@@ -44970,7 +44982,7 @@
44970
44982
  }));
44971
44983
  });
44972
44984
  var StepButton = /*#__PURE__*/React__namespace.forwardRef(function StepButton(inProps, ref) {
44973
- var props = useThemeProps({
44985
+ var props = useThemeProps$1({
44974
44986
  props: inProps,
44975
44987
  name: 'MuiStepButton'
44976
44988
  });
@@ -45104,7 +45116,7 @@
45104
45116
  });
45105
45117
  });
45106
45118
  var StepConnector = /*#__PURE__*/React__namespace.forwardRef(function StepConnector(inProps, ref) {
45107
- var props = useThemeProps({
45119
+ var props = useThemeProps$1({
45108
45120
  props: inProps,
45109
45121
  name: 'MuiStepConnector'
45110
45122
  });
@@ -45201,7 +45213,7 @@
45201
45213
  }
45202
45214
  })({});
45203
45215
  var StepContent = /*#__PURE__*/React__namespace.forwardRef(function StepContent(inProps, ref) {
45204
- var props = useThemeProps({
45216
+ var props = useThemeProps$1({
45205
45217
  props: inProps,
45206
45218
  name: 'MuiStepContent'
45207
45219
  });
@@ -45333,7 +45345,7 @@
45333
45345
  });
45334
45346
  var defaultConnector = /*#__PURE__*/jsxRuntime_1(StepConnector$1, {});
45335
45347
  var Stepper = /*#__PURE__*/React__namespace.forwardRef(function Stepper(inProps, ref) {
45336
- var props = useThemeProps({
45348
+ var props = useThemeProps$1({
45337
45349
  props: inProps,
45338
45350
  name: 'MuiStepper'
45339
45351
  });
@@ -45599,7 +45611,7 @@
45599
45611
  }
45600
45612
  var iOS = typeof navigator !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent);
45601
45613
  var SwipeableDrawer = /*#__PURE__*/React__namespace.forwardRef(function SwipeableDrawer(inProps, ref) {
45602
- var props = useThemeProps$1({
45614
+ var props = useThemeProps$2({
45603
45615
  name: 'MuiSwipeableDrawer',
45604
45616
  props: inProps
45605
45617
  });
@@ -46262,7 +46274,7 @@
46262
46274
  };
46263
46275
  });
46264
46276
  var Switch = /*#__PURE__*/React__namespace.forwardRef(function Switch(inProps, ref) {
46265
- var props = useThemeProps({
46277
+ var props = useThemeProps$1({
46266
46278
  props: inProps,
46267
46279
  name: 'MuiSwitch'
46268
46280
  });
@@ -46487,7 +46499,7 @@
46487
46499
  });
46488
46500
  });
46489
46501
  var Tab = /*#__PURE__*/React__namespace.forwardRef(function Tab(inProps, ref) {
46490
- var props = useThemeProps({
46502
+ var props = useThemeProps$1({
46491
46503
  props: inProps,
46492
46504
  name: 'MuiTab'
46493
46505
  });
@@ -46691,7 +46703,7 @@
46691
46703
  });
46692
46704
  var defaultComponent$4 = 'table';
46693
46705
  var Table = /*#__PURE__*/React__namespace.forwardRef(function Table(inProps, ref) {
46694
- var props = useThemeProps({
46706
+ var props = useThemeProps$1({
46695
46707
  props: inProps,
46696
46708
  name: 'MuiTable'
46697
46709
  });
@@ -46812,7 +46824,7 @@
46812
46824
  };
46813
46825
  var defaultComponent$3 = 'tbody';
46814
46826
  var TableBody = /*#__PURE__*/React__namespace.forwardRef(function TableBody(inProps, ref) {
46815
- var props = useThemeProps({
46827
+ var props = useThemeProps$1({
46816
46828
  props: inProps,
46817
46829
  name: 'MuiTableBody'
46818
46830
  });
@@ -46947,7 +46959,7 @@
46947
46959
  * or otherwise a `<td>` element.
46948
46960
  */
46949
46961
  var TableCell = /*#__PURE__*/React__namespace.forwardRef(function TableCell(inProps, ref) {
46950
- var props = useThemeProps({
46962
+ var props = useThemeProps$1({
46951
46963
  props: inProps,
46952
46964
  name: 'MuiTableCell'
46953
46965
  });
@@ -47086,7 +47098,7 @@
47086
47098
  overflowX: 'auto'
47087
47099
  });
47088
47100
  var TableContainer = /*#__PURE__*/React__namespace.forwardRef(function TableContainer(inProps, ref) {
47089
- var props = useThemeProps({
47101
+ var props = useThemeProps$1({
47090
47102
  props: inProps,
47091
47103
  name: 'MuiTableContainer'
47092
47104
  });
@@ -47161,7 +47173,7 @@
47161
47173
  };
47162
47174
  var defaultComponent$2 = 'tfoot';
47163
47175
  var TableFooter = /*#__PURE__*/React__namespace.forwardRef(function TableFooter(inProps, ref) {
47164
- var props = useThemeProps({
47176
+ var props = useThemeProps$1({
47165
47177
  props: inProps,
47166
47178
  name: 'MuiTableFooter'
47167
47179
  });
@@ -47240,7 +47252,7 @@
47240
47252
  };
47241
47253
  var defaultComponent$1 = 'thead';
47242
47254
  var TableHead = /*#__PURE__*/React__namespace.forwardRef(function TableHead(inProps, ref) {
47243
- var props = useThemeProps({
47255
+ var props = useThemeProps$1({
47244
47256
  props: inProps,
47245
47257
  name: 'MuiTableHead'
47246
47258
  });
@@ -47336,7 +47348,7 @@
47336
47348
  return ownerState.variant === 'regular' && theme.mixins.toolbar;
47337
47349
  });
47338
47350
  var Toolbar = /*#__PURE__*/React__namespace.forwardRef(function Toolbar(inProps, ref) {
47339
- var props = useThemeProps({
47351
+ var props = useThemeProps$1({
47340
47352
  props: inProps,
47341
47353
  name: 'MuiToolbar'
47342
47354
  });
@@ -47710,7 +47722,7 @@
47710
47722
  */
47711
47723
  var TablePagination = /*#__PURE__*/React__namespace.forwardRef(function TablePagination(inProps, ref) {
47712
47724
  var _slotProps$select;
47713
- var props = useThemeProps({
47725
+ var props = useThemeProps$1({
47714
47726
  props: inProps,
47715
47727
  name: 'MuiTablePagination'
47716
47728
  });
@@ -48066,7 +48078,7 @@
48066
48078
  * based on the material table element parent (head, body, etc).
48067
48079
  */
48068
48080
  var TableRow = /*#__PURE__*/React__namespace.forwardRef(function TableRow(inProps, ref) {
48069
- var props = useThemeProps({
48081
+ var props = useThemeProps$1({
48070
48082
  props: inProps,
48071
48083
  name: 'MuiTableRow'
48072
48084
  });
@@ -48214,7 +48226,7 @@
48214
48226
  * A button based label for placing inside `TableCell` for column sorting.
48215
48227
  */
48216
48228
  var TableSortLabel = /*#__PURE__*/React__namespace.forwardRef(function TableSortLabel(inProps, ref) {
48217
- var props = useThemeProps({
48229
+ var props = useThemeProps$1({
48218
48230
  props: inProps,
48219
48231
  name: 'MuiTableSortLabel'
48220
48232
  });
@@ -48425,7 +48437,7 @@
48425
48437
  });
48426
48438
  var TabScrollButton = /*#__PURE__*/React__namespace.forwardRef(function TabScrollButton(inProps, ref) {
48427
48439
  var _slots$StartScrollBut, _slots$EndScrollButto;
48428
- var props = useThemeProps({
48440
+ var props = useThemeProps$1({
48429
48441
  props: inProps,
48430
48442
  name: 'MuiTabScrollButton'
48431
48443
  });
@@ -48703,7 +48715,7 @@
48703
48715
  var defaultIndicatorStyle = {};
48704
48716
  var warnedOnceTabPresent = false;
48705
48717
  var Tabs = /*#__PURE__*/React__namespace.forwardRef(function Tabs(inProps, ref) {
48706
- var props = useThemeProps({
48718
+ var props = useThemeProps$1({
48707
48719
  props: inProps,
48708
48720
  name: 'MuiTabs'
48709
48721
  });
@@ -49414,7 +49426,7 @@
49414
49426
  * - using the underlying components directly as shown in the demos
49415
49427
  */
49416
49428
  var TextField = /*#__PURE__*/React__namespace.forwardRef(function TextField(inProps, ref) {
49417
- var props = useThemeProps({
49429
+ var props = useThemeProps$1({
49418
49430
  props: inProps,
49419
49431
  name: 'MuiTextField'
49420
49432
  });
@@ -49830,7 +49842,7 @@
49830
49842
  var resolvedProps = resolveProps(_extends({}, contextProps, {
49831
49843
  selected: isValueSelected(inProps.value, contextValue)
49832
49844
  }), inProps);
49833
- var props = useThemeProps({
49845
+ var props = useThemeProps$1({
49834
49846
  props: resolvedProps,
49835
49847
  name: 'MuiToggleButton'
49836
49848
  });
@@ -50034,7 +50046,7 @@
50034
50046
  }));
50035
50047
  });
50036
50048
  var ToggleButtonGroup = /*#__PURE__*/React__namespace.forwardRef(function ToggleButtonGroup(inProps, ref) {
50037
- var props = useThemeProps({
50049
+ var props = useThemeProps$1({
50038
50050
  props: inProps,
50039
50051
  name: 'MuiToggleButtonGroup'
50040
50052
  });
@@ -50703,7 +50715,7 @@
50703
50715
  exports.useStepContext = useStepContext;
50704
50716
  exports.useStepperContext = useStepperContext;
50705
50717
  exports.useTheme = useTheme;
50706
- exports.useThemeProps = useThemeProps;
50718
+ exports.useThemeProps = useThemeProps$1;
50707
50719
  exports.withStyles = withStyles;
50708
50720
  exports.withTheme = withTheme;
50709
50721