@mui/material 6.0.0-beta.0 → 6.0.0-beta.2

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 (207) hide show
  1. package/Autocomplete/Autocomplete.d.ts +6 -7
  2. package/Autocomplete/Autocomplete.js +1 -1
  3. package/Badge/Badge.d.ts +1 -1
  4. package/Badge/Badge.js +2 -2
  5. package/Badge/useBadge.d.ts +13 -0
  6. package/Badge/useBadge.js +41 -0
  7. package/Badge/useBadge.types.d.ts +40 -0
  8. package/Badge/useBadge.types.js +1 -0
  9. package/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  10. package/Breadcrumbs/Breadcrumbs.js +1 -1
  11. package/CHANGELOG.md +48 -0
  12. package/ClickAwayListener/ClickAwayListener.d.ts +47 -0
  13. package/ClickAwayListener/ClickAwayListener.js +178 -0
  14. package/ClickAwayListener/index.d.ts +2 -2
  15. package/ClickAwayListener/index.js +1 -1
  16. package/InputBase/InputBase.js +2 -2
  17. package/ListItem/ListItem.js +1 -1
  18. package/Menu/Menu.js +1 -1
  19. package/Modal/Modal.d.ts +1 -1
  20. package/Modal/Modal.js +1 -1
  21. package/Modal/ModalManager.d.ts +25 -0
  22. package/Modal/ModalManager.js +211 -0
  23. package/Modal/index.d.ts +1 -1
  24. package/Modal/index.js +1 -1
  25. package/Modal/useModal.d.ts +13 -0
  26. package/Modal/useModal.js +195 -0
  27. package/Modal/useModal.types.d.ts +115 -0
  28. package/Modal/useModal.types.js +1 -0
  29. package/NoSsr/NoSsr.d.ts +25 -0
  30. package/NoSsr/NoSsr.js +73 -0
  31. package/NoSsr/NoSsr.types.d.ts +18 -0
  32. package/NoSsr/NoSsr.types.js +1 -0
  33. package/NoSsr/index.d.ts +3 -2
  34. package/NoSsr/index.js +1 -1
  35. package/Popover/Popover.js +1 -1
  36. package/Popper/BasePopper.d.ts +7 -0
  37. package/Popper/BasePopper.js +370 -0
  38. package/Popper/BasePopper.types.d.ts +130 -0
  39. package/Popper/BasePopper.types.js +1 -0
  40. package/Popper/Popper.d.ts +1 -1
  41. package/Popper/Popper.js +1 -1
  42. package/Popper/index.d.ts +2 -1
  43. package/Popper/index.js +2 -1
  44. package/Popper/popperClasses.d.ts +8 -0
  45. package/Popper/popperClasses.js +7 -0
  46. package/Portal/Portal.d.ts +16 -0
  47. package/Portal/Portal.js +92 -0
  48. package/Portal/Portal.types.d.ts +23 -0
  49. package/Portal/Portal.types.js +1 -0
  50. package/Portal/index.d.ts +3 -2
  51. package/Portal/index.js +1 -1
  52. package/Slider/Slider.d.ts +2 -2
  53. package/Slider/Slider.js +3 -2
  54. package/Slider/useSlider.d.ts +14 -0
  55. package/Slider/useSlider.js +647 -0
  56. package/Slider/useSlider.types.d.ts +228 -0
  57. package/Slider/useSlider.types.js +1 -0
  58. package/Snackbar/Snackbar.d.ts +1 -1
  59. package/Snackbar/Snackbar.js +3 -3
  60. package/Snackbar/useSnackbar.d.ts +14 -0
  61. package/Snackbar/useSnackbar.js +133 -0
  62. package/Snackbar/useSnackbar.types.d.ts +60 -0
  63. package/Snackbar/useSnackbar.types.js +1 -0
  64. package/SwipeableDrawer/SwipeableDrawer.js +1 -1
  65. package/TabScrollButton/TabScrollButton.d.ts +1 -1
  66. package/TabScrollButton/TabScrollButton.js +1 -1
  67. package/TablePagination/TablePagination.js +1 -1
  68. package/Tabs/Tabs.d.ts +1 -1
  69. package/Tabs/Tabs.js +1 -1
  70. package/TextareaAutosize/TextareaAutosize.d.ts +14 -0
  71. package/TextareaAutosize/TextareaAutosize.js +222 -0
  72. package/TextareaAutosize/TextareaAutosize.types.d.ts +13 -0
  73. package/TextareaAutosize/TextareaAutosize.types.js +1 -0
  74. package/TextareaAutosize/index.d.ts +3 -2
  75. package/TextareaAutosize/index.js +1 -1
  76. package/Tooltip/Tooltip.js +1 -1
  77. package/Unstable_TrapFocus/FocusTrap.d.ts +10 -0
  78. package/Unstable_TrapFocus/FocusTrap.js +330 -0
  79. package/Unstable_TrapFocus/FocusTrap.types.d.ts +51 -0
  80. package/Unstable_TrapFocus/FocusTrap.types.js +1 -0
  81. package/Unstable_TrapFocus/index.d.ts +2 -2
  82. package/Unstable_TrapFocus/index.js +1 -1
  83. package/index.d.ts +1 -1
  84. package/index.js +2 -2
  85. package/modern/Autocomplete/Autocomplete.js +1 -1
  86. package/modern/Badge/Badge.js +2 -2
  87. package/modern/Badge/useBadge.js +41 -0
  88. package/modern/Badge/useBadge.types.js +1 -0
  89. package/modern/Breadcrumbs/Breadcrumbs.js +1 -1
  90. package/modern/ClickAwayListener/ClickAwayListener.js +178 -0
  91. package/modern/ClickAwayListener/index.js +1 -1
  92. package/modern/InputBase/InputBase.js +2 -2
  93. package/modern/ListItem/ListItem.js +1 -1
  94. package/modern/Menu/Menu.js +1 -1
  95. package/modern/Modal/Modal.js +1 -1
  96. package/modern/Modal/ModalManager.js +211 -0
  97. package/modern/Modal/index.js +1 -1
  98. package/modern/Modal/useModal.js +195 -0
  99. package/modern/Modal/useModal.types.js +1 -0
  100. package/modern/NoSsr/NoSsr.js +73 -0
  101. package/modern/NoSsr/NoSsr.types.js +1 -0
  102. package/modern/NoSsr/index.js +1 -1
  103. package/modern/Popover/Popover.js +1 -1
  104. package/modern/Popper/BasePopper.js +370 -0
  105. package/modern/Popper/BasePopper.types.js +1 -0
  106. package/modern/Popper/Popper.js +1 -1
  107. package/modern/Popper/index.js +2 -1
  108. package/modern/Popper/popperClasses.js +7 -0
  109. package/modern/Portal/Portal.js +92 -0
  110. package/modern/Portal/Portal.types.js +1 -0
  111. package/modern/Portal/index.js +1 -1
  112. package/modern/Slider/Slider.js +3 -2
  113. package/modern/Slider/useSlider.js +647 -0
  114. package/modern/Slider/useSlider.types.js +1 -0
  115. package/modern/Snackbar/Snackbar.js +3 -3
  116. package/modern/Snackbar/useSnackbar.js +133 -0
  117. package/modern/Snackbar/useSnackbar.types.js +1 -0
  118. package/modern/SwipeableDrawer/SwipeableDrawer.js +1 -1
  119. package/modern/TabScrollButton/TabScrollButton.js +1 -1
  120. package/modern/TablePagination/TablePagination.js +1 -1
  121. package/modern/Tabs/Tabs.js +1 -1
  122. package/modern/TextareaAutosize/TextareaAutosize.js +222 -0
  123. package/modern/TextareaAutosize/TextareaAutosize.types.js +1 -0
  124. package/modern/TextareaAutosize/index.js +1 -1
  125. package/modern/Tooltip/Tooltip.js +1 -1
  126. package/modern/Unstable_TrapFocus/FocusTrap.js +330 -0
  127. package/modern/Unstable_TrapFocus/FocusTrap.types.js +1 -0
  128. package/modern/Unstable_TrapFocus/index.js +1 -1
  129. package/modern/index.js +2 -2
  130. package/modern/useAutocomplete/useAutocomplete.js +976 -2
  131. package/modern/utils/PolymorphicComponent.js +1 -0
  132. package/modern/utils/areArraysEqual.js +4 -0
  133. package/modern/utils/index.js +1 -1
  134. package/modern/utils/isHostComponent.js +7 -0
  135. package/modern/utils/omitEventHandlers.js +18 -0
  136. package/modern/utils/shouldSpreadAdditionalProps.js +1 -1
  137. package/modern/utils/useSlot.js +3 -1
  138. package/node/Autocomplete/Autocomplete.js +3 -3
  139. package/node/Badge/Badge.js +5 -5
  140. package/node/Badge/useBadge.js +46 -0
  141. package/node/Badge/useBadge.types.js +5 -0
  142. package/node/Breadcrumbs/Breadcrumbs.js +2 -2
  143. package/node/ClickAwayListener/ClickAwayListener.js +184 -0
  144. package/node/ClickAwayListener/index.js +1 -1
  145. package/node/InputBase/InputBase.js +7 -7
  146. package/node/ListItem/ListItem.js +3 -3
  147. package/node/Menu/Menu.js +3 -3
  148. package/node/Modal/Modal.js +2 -2
  149. package/node/Modal/ModalManager.js +219 -0
  150. package/node/Modal/index.js +2 -2
  151. package/node/Modal/useModal.js +205 -0
  152. package/node/Modal/useModal.types.js +5 -0
  153. package/node/NoSsr/NoSsr.js +81 -0
  154. package/node/NoSsr/NoSsr.types.js +5 -0
  155. package/node/NoSsr/index.js +3 -2
  156. package/node/Popover/Popover.js +2 -2
  157. package/node/Popper/BasePopper.js +379 -0
  158. package/node/Popper/BasePopper.types.js +5 -0
  159. package/node/Popper/Popper.js +2 -2
  160. package/node/Popper/index.js +14 -1
  161. package/node/Popper/popperClasses.js +15 -0
  162. package/node/Portal/Portal.js +100 -0
  163. package/node/Portal/Portal.types.js +5 -0
  164. package/node/Portal/index.js +3 -2
  165. package/node/Slider/Slider.js +14 -13
  166. package/node/Slider/useSlider.js +670 -0
  167. package/node/Slider/useSlider.types.js +5 -0
  168. package/node/Snackbar/Snackbar.js +6 -6
  169. package/node/Snackbar/useSnackbar.js +141 -0
  170. package/node/Snackbar/useSnackbar.types.js +5 -0
  171. package/node/SwipeableDrawer/SwipeableDrawer.js +2 -2
  172. package/node/TabScrollButton/TabScrollButton.js +3 -3
  173. package/node/TablePagination/TablePagination.js +2 -2
  174. package/node/Tabs/Tabs.js +3 -3
  175. package/node/TextareaAutosize/TextareaAutosize.js +230 -0
  176. package/node/TextareaAutosize/TextareaAutosize.types.js +5 -0
  177. package/node/TextareaAutosize/index.js +3 -2
  178. package/node/Tooltip/Tooltip.js +5 -5
  179. package/node/Unstable_TrapFocus/FocusTrap.js +339 -0
  180. package/node/Unstable_TrapFocus/FocusTrap.types.js +5 -0
  181. package/node/Unstable_TrapFocus/index.js +3 -2
  182. package/node/index.js +3 -3
  183. package/node/useAutocomplete/useAutocomplete.js +985 -18
  184. package/node/utils/PolymorphicComponent.js +5 -0
  185. package/node/utils/areArraysEqual.js +10 -0
  186. package/node/utils/index.js +2 -2
  187. package/node/utils/isHostComponent.js +13 -0
  188. package/node/utils/omitEventHandlers.js +24 -0
  189. package/node/utils/shouldSpreadAdditionalProps.js +3 -2
  190. package/node/utils/useSlot.js +6 -4
  191. package/package.json +8 -8
  192. package/styles/overrides.d.ts +1 -1
  193. package/useAutocomplete/useAutocomplete.d.ts +468 -2
  194. package/useAutocomplete/useAutocomplete.js +976 -2
  195. package/utils/PolymorphicComponent.d.ts +17 -0
  196. package/utils/PolymorphicComponent.js +1 -0
  197. package/utils/areArraysEqual.d.ts +3 -0
  198. package/utils/areArraysEqual.js +4 -0
  199. package/utils/index.d.ts +2 -1
  200. package/utils/index.js +1 -1
  201. package/utils/isHostComponent.d.ts +6 -0
  202. package/utils/isHostComponent.js +7 -0
  203. package/utils/omitEventHandlers.d.ts +9 -0
  204. package/utils/omitEventHandlers.js +18 -0
  205. package/utils/shouldSpreadAdditionalProps.js +1 -1
  206. package/utils/types.d.ts +2 -1
  207. package/utils/useSlot.js +3 -1
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ function areArraysEqual(array1, array2, itemComparer = (a, b) => a === b) {
2
+ return array1.length === array2.length && array1.every((value, index) => itemComparer(value, array2[index]));
3
+ }
4
+ export default areArraysEqual;
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
 
3
- import { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/base/ClassNameGenerator';
3
+ import { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/utils';
4
4
  export { default as capitalize } from './capitalize';
5
5
  export { default as createChainedFunction } from './createChainedFunction';
6
6
  export { default as createSvgIcon } from './createSvgIcon';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Determines if a given element is a DOM element name (i.e. not a React component).
3
+ */
4
+ function isHostComponent(element) {
5
+ return typeof element === 'string';
6
+ }
7
+ export default isHostComponent;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Removes event handlers from the given object.
3
+ * A field is considered an event handler if it is a function with a name beginning with `on`.
4
+ *
5
+ * @param object Object to remove event handlers from.
6
+ * @returns Object with event handlers removed.
7
+ */
8
+ function omitEventHandlers(object) {
9
+ if (object === undefined) {
10
+ return {};
11
+ }
12
+ const result = {};
13
+ Object.keys(object).filter(prop => !(prop.match(/^on[A-Z]/) && typeof object[prop] === 'function')).forEach(prop => {
14
+ result[prop] = object[prop];
15
+ });
16
+ return result;
17
+ }
18
+ export default omitEventHandlers;
@@ -1,4 +1,4 @@
1
- import { isHostComponent } from '@mui/base/utils';
1
+ import isHostComponent from './isHostComponent';
2
2
  const shouldSpreadAdditionalProps = Slot => {
3
3
  return !Slot || !isHostComponent(Slot);
4
4
  };
@@ -1,7 +1,9 @@
1
1
  'use client';
2
2
 
3
3
  import useForkRef from '@mui/utils/useForkRef';
4
- import { appendOwnerState, resolveComponentProps, mergeSlotProps } from '@mui/base/utils';
4
+ import appendOwnerState from '@mui/utils/appendOwnerState';
5
+ import resolveComponentProps from '@mui/utils/resolveComponentProps';
6
+ import mergeSlotProps from '@mui/utils/mergeSlotProps';
5
7
  /**
6
8
  * An internal function to create a Material UI slot.
7
9
  *
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  Object.defineProperty(exports, "createFilterOptions", {
9
9
  enumerable: true,
10
10
  get: function () {
11
- return _base.createFilterOptions;
11
+ return _useAutocomplete.createFilterOptions;
12
12
  }
13
13
  });
14
14
  exports.default = void 0;
@@ -17,9 +17,9 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
  var _clsx = _interopRequireDefault(require("clsx"));
18
18
  var _integerPropType = _interopRequireDefault(require("@mui/utils/integerPropType"));
19
19
  var _chainPropTypes = _interopRequireDefault(require("@mui/utils/chainPropTypes"));
20
- var _base = require("@mui/base");
21
20
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
22
21
  var _colorManipulator = require("@mui/system/colorManipulator");
22
+ var _useAutocomplete = _interopRequireWildcard(require("../useAutocomplete"));
23
23
  var _Popper = _interopRequireDefault(require("../Popper"));
24
24
  var _ListSubheader = _interopRequireDefault(require("../ListSubheader"));
25
25
  var _Paper = _interopRequireDefault(require("../Paper"));
@@ -512,7 +512,7 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
512
512
  setAnchorEl,
513
513
  inputValue,
514
514
  groupedOptions
515
- } = (0, _base.useAutocomplete)({
515
+ } = (0, _useAutocomplete.default)({
516
516
  ...props,
517
517
  componentName: 'Autocomplete'
518
518
  });
@@ -11,8 +11,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _clsx = _interopRequireDefault(require("clsx"));
12
12
  var _usePreviousProps = _interopRequireDefault(require("@mui/utils/usePreviousProps"));
13
13
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
- var _useBadge = require("@mui/base/useBadge");
15
- var _utils = require("@mui/base/utils");
14
+ var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
15
+ var _useBadge = _interopRequireDefault(require("./useBadge"));
16
16
  var _zeroStyled = require("../zero-styled");
17
17
  var _DefaultPropsProvider = require("../DefaultPropsProvider");
18
18
  var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
@@ -249,7 +249,7 @@ const Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {
249
249
  invisible: invisibleFromHook,
250
250
  max,
251
251
  displayValue: displayValueFromHook
252
- } = (0, _useBadge.useBadge)({
252
+ } = (0, _useBadge.default)({
253
253
  max: maxProp,
254
254
  invisible: invisibleProp,
255
255
  badgeContent: badgeContentProp,
@@ -289,7 +289,7 @@ const Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {
289
289
  const BadgeSlot = (_ref2 = (_slots$badge = slots == null ? void 0 : slots.badge) != null ? _slots$badge : components.Badge) != null ? _ref2 : BadgeBadge;
290
290
  const rootSlotProps = (_slotProps$root = slotProps == null ? void 0 : slotProps.root) != null ? _slotProps$root : componentsProps.root;
291
291
  const badgeSlotProps = (_slotProps$badge = slotProps == null ? void 0 : slotProps.badge) != null ? _slotProps$badge : componentsProps.badge;
292
- const rootProps = (0, _utils.useSlotProps)({
292
+ const rootProps = (0, _useSlotProps.default)({
293
293
  elementType: RootSlot,
294
294
  externalSlotProps: rootSlotProps,
295
295
  externalForwardedProps: other,
@@ -300,7 +300,7 @@ const Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {
300
300
  ownerState,
301
301
  className: (0, _clsx.default)(rootSlotProps == null ? void 0 : rootSlotProps.className, classes.root, className)
302
302
  });
303
- const badgeProps = (0, _utils.useSlotProps)({
303
+ const badgeProps = (0, _useSlotProps.default)({
304
304
  elementType: BadgeSlot,
305
305
  externalSlotProps: badgeSlotProps,
306
306
  ownerState,
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _utils = require("@mui/utils");
9
+ /**
10
+ *
11
+ * Demos:
12
+ *
13
+ * - [Badge](https://next.mui.com/base-ui/react-badge/#hook)
14
+ *
15
+ * API:
16
+ *
17
+ * - [useBadge API](https://next.mui.com/base-ui/react-badge/hooks-api/#use-badge)
18
+ */
19
+ function useBadge(parameters) {
20
+ const {
21
+ badgeContent: badgeContentProp,
22
+ invisible: invisibleProp = false,
23
+ max: maxProp = 99,
24
+ showZero = false
25
+ } = parameters;
26
+ const prevProps = (0, _utils.usePreviousProps)({
27
+ badgeContent: badgeContentProp,
28
+ max: maxProp
29
+ });
30
+ let invisible = invisibleProp;
31
+ if (invisibleProp === false && badgeContentProp === 0 && !showZero) {
32
+ invisible = true;
33
+ }
34
+ const {
35
+ badgeContent,
36
+ max = maxProp
37
+ } = invisible ? prevProps : parameters;
38
+ const displayValue = badgeContent && Number(badgeContent) > max ? `${max}+` : badgeContent;
39
+ return {
40
+ badgeContent,
41
+ invisible,
42
+ max,
43
+ displayValue
44
+ };
45
+ }
46
+ var _default = exports.default = useBadge;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -11,8 +11,8 @@ var _reactIs = require("react-is");
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _clsx = _interopRequireDefault(require("clsx"));
13
13
  var _integerPropType = _interopRequireDefault(require("@mui/utils/integerPropType"));
14
- var _utils = require("@mui/base/utils");
15
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
+ var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
16
16
  var _zeroStyled = require("../zero-styled");
17
17
  var _DefaultPropsProvider = require("../DefaultPropsProvider");
18
18
  var _Typography = _interopRequireDefault(require("../Typography"));
@@ -109,7 +109,7 @@ const Breadcrumbs = /*#__PURE__*/React.forwardRef(function Breadcrumbs(inProps,
109
109
  separator
110
110
  };
111
111
  const classes = useUtilityClasses(ownerState);
112
- const collapsedIconSlotProps = (0, _utils.useSlotProps)({
112
+ const collapsedIconSlotProps = (0, _useSlotProps.default)({
113
113
  elementType: slots.CollapsedIcon,
114
114
  externalSlotProps: slotProps.collapsedIcon,
115
115
  ownerState
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ClickAwayListener = ClickAwayListener;
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _utils = require("@mui/utils");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
+ // TODO: return `EventHandlerName extends `on${infer EventName}` ? Lowercase<EventName> : never` once generatePropTypes runs with TS 4.1
16
+ function mapEventPropToEvent(eventProp) {
17
+ return eventProp.substring(2).toLowerCase();
18
+ }
19
+ function clickedRootScrollbar(event, doc) {
20
+ return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;
21
+ }
22
+ /**
23
+ * Listen for click events that occur somewhere in the document, outside of the element itself.
24
+ * For instance, if you need to hide a menu when people click anywhere else on your page.
25
+ *
26
+ * Demos:
27
+ *
28
+ * - [Click-Away Listener](https://next.mui.com/material-ui/react-click-away-listener/)
29
+ * - [Menu](https://next.mui.com/material-ui/react-menu/)
30
+ *
31
+ * API:
32
+ *
33
+ * - [ClickAwayListener API](https://next.mui.com/material-ui/api/click-away-listener/)
34
+ */
35
+ function ClickAwayListener(props) {
36
+ const {
37
+ children,
38
+ disableReactTree = false,
39
+ mouseEvent = 'onClick',
40
+ onClickAway,
41
+ touchEvent = 'onTouchEnd'
42
+ } = props;
43
+ const movedRef = React.useRef(false);
44
+ const nodeRef = React.useRef(null);
45
+ const activatedRef = React.useRef(false);
46
+ const syntheticEventRef = React.useRef(false);
47
+ React.useEffect(() => {
48
+ // Ensure that this component is not "activated" synchronously.
49
+ // https://github.com/facebook/react/issues/20074
50
+ setTimeout(() => {
51
+ activatedRef.current = true;
52
+ }, 0);
53
+ return () => {
54
+ activatedRef.current = false;
55
+ };
56
+ }, []);
57
+ const handleRef = (0, _utils.unstable_useForkRef)(
58
+ // @ts-expect-error TODO upstream fix
59
+ children.ref, nodeRef);
60
+
61
+ // The handler doesn't take event.defaultPrevented into account:
62
+ //
63
+ // event.preventDefault() is meant to stop default behaviors like
64
+ // clicking a checkbox to check it, hitting a button to submit a form,
65
+ // and hitting left arrow to move the cursor in a text input etc.
66
+ // Only special HTML elements have these default behaviors.
67
+ const handleClickAway = (0, _utils.unstable_useEventCallback)(event => {
68
+ // Given developers can stop the propagation of the synthetic event,
69
+ // we can only be confident with a positive value.
70
+ const insideReactTree = syntheticEventRef.current;
71
+ syntheticEventRef.current = false;
72
+ const doc = (0, _utils.unstable_ownerDocument)(nodeRef.current);
73
+
74
+ // 1. IE11 support, which trigger the handleClickAway even after the unbind
75
+ // 2. The child might render null.
76
+ // 3. Behave like a blur listener.
77
+ if (!activatedRef.current || !nodeRef.current || 'clientX' in event && clickedRootScrollbar(event, doc)) {
78
+ return;
79
+ }
80
+
81
+ // Do not act if user performed touchmove
82
+ if (movedRef.current) {
83
+ movedRef.current = false;
84
+ return;
85
+ }
86
+ let insideDOM;
87
+
88
+ // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js
89
+ if (event.composedPath) {
90
+ insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;
91
+ } else {
92
+ insideDOM = !doc.documentElement.contains(
93
+ // @ts-expect-error returns `false` as intended when not dispatched from a Node
94
+ event.target) || nodeRef.current.contains(
95
+ // @ts-expect-error returns `false` as intended when not dispatched from a Node
96
+ event.target);
97
+ }
98
+ if (!insideDOM && (disableReactTree || !insideReactTree)) {
99
+ onClickAway(event);
100
+ }
101
+ });
102
+
103
+ // Keep track of mouse/touch events that bubbled up through the portal.
104
+ const createHandleSynthetic = handlerName => event => {
105
+ syntheticEventRef.current = true;
106
+ const childrenPropsHandler = children.props[handlerName];
107
+ if (childrenPropsHandler) {
108
+ childrenPropsHandler(event);
109
+ }
110
+ };
111
+ const childrenProps = {
112
+ ref: handleRef
113
+ };
114
+ if (touchEvent !== false) {
115
+ childrenProps[touchEvent] = createHandleSynthetic(touchEvent);
116
+ }
117
+ React.useEffect(() => {
118
+ if (touchEvent !== false) {
119
+ const mappedTouchEvent = mapEventPropToEvent(touchEvent);
120
+ const doc = (0, _utils.unstable_ownerDocument)(nodeRef.current);
121
+ const handleTouchMove = () => {
122
+ movedRef.current = true;
123
+ };
124
+ doc.addEventListener(mappedTouchEvent, handleClickAway);
125
+ doc.addEventListener('touchmove', handleTouchMove);
126
+ return () => {
127
+ doc.removeEventListener(mappedTouchEvent, handleClickAway);
128
+ doc.removeEventListener('touchmove', handleTouchMove);
129
+ };
130
+ }
131
+ return undefined;
132
+ }, [handleClickAway, touchEvent]);
133
+ if (mouseEvent !== false) {
134
+ childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);
135
+ }
136
+ React.useEffect(() => {
137
+ if (mouseEvent !== false) {
138
+ const mappedMouseEvent = mapEventPropToEvent(mouseEvent);
139
+ const doc = (0, _utils.unstable_ownerDocument)(nodeRef.current);
140
+ doc.addEventListener(mappedMouseEvent, handleClickAway);
141
+ return () => {
142
+ doc.removeEventListener(mappedMouseEvent, handleClickAway);
143
+ };
144
+ }
145
+ return undefined;
146
+ }, [handleClickAway, mouseEvent]);
147
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
148
+ children: /*#__PURE__*/React.cloneElement(children, childrenProps)
149
+ });
150
+ }
151
+ process.env.NODE_ENV !== "production" ? ClickAwayListener.propTypes /* remove-proptypes */ = {
152
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
153
+ // │ These PropTypes are generated from the TypeScript type definitions. │
154
+ // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
155
+ // └─────────────────────────────────────────────────────────────────────┘
156
+ /**
157
+ * The wrapped element.
158
+ */
159
+ children: _utils.elementAcceptingRef.isRequired,
160
+ /**
161
+ * If `true`, the React tree is ignored and only the DOM tree is considered.
162
+ * This prop changes how portaled elements are handled.
163
+ * @default false
164
+ */
165
+ disableReactTree: _propTypes.default.bool,
166
+ /**
167
+ * The mouse event to listen to. You can disable the listener by providing `false`.
168
+ * @default 'onClick'
169
+ */
170
+ mouseEvent: _propTypes.default.oneOf(['onClick', 'onMouseDown', 'onMouseUp', 'onPointerDown', 'onPointerUp', false]),
171
+ /**
172
+ * Callback fired when a "click away" event is detected.
173
+ */
174
+ onClickAway: _propTypes.default.func.isRequired,
175
+ /**
176
+ * The touch event to listen to. You can disable the listener by providing `false`.
177
+ * @default 'onTouchEnd'
178
+ */
179
+ touchEvent: _propTypes.default.oneOf(['onTouchEnd', 'onTouchStart', false])
180
+ } : void 0;
181
+ if (process.env.NODE_ENV !== 'production') {
182
+ // eslint-disable-next-line
183
+ ClickAwayListener['propTypes' + ''] = (0, _utils.exactProp)(ClickAwayListener.propTypes);
184
+ }
@@ -9,4 +9,4 @@ Object.defineProperty(exports, "default", {
9
9
  return _ClickAwayListener.ClickAwayListener;
10
10
  }
11
11
  });
12
- var _ClickAwayListener = require("@mui/base/ClickAwayListener");
12
+ var _ClickAwayListener = require("./ClickAwayListener");
@@ -12,9 +12,9 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _clsx = _interopRequireDefault(require("clsx"));
13
13
  var _elementTypeAcceptingRef = _interopRequireDefault(require("@mui/utils/elementTypeAcceptingRef"));
14
14
  var _refType = _interopRequireDefault(require("@mui/utils/refType"));
15
- var _base = require("@mui/base");
16
- var _utils = require("@mui/base/utils");
17
15
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
16
+ var _TextareaAutosize = _interopRequireDefault(require("../TextareaAutosize"));
17
+ var _isHostComponent = _interopRequireDefault(require("../utils/isHostComponent"));
18
18
  var _formControlState = _interopRequireDefault(require("../FormControl/formControlState"));
19
19
  var _FormControlContext = _interopRequireDefault(require("../FormControl/FormControlContext"));
20
20
  var _useFormControl = _interopRequireDefault(require("../FormControl/useFormControl"));
@@ -23,7 +23,7 @@ var _DefaultPropsProvider = require("../DefaultPropsProvider");
23
23
  var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
24
24
  var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
25
25
  var _useEnhancedEffect = _interopRequireDefault(require("../utils/useEnhancedEffect"));
26
- var _utils2 = require("./utils");
26
+ var _utils = require("./utils");
27
27
  var _inputBaseClasses = _interopRequireWildcard(require("./inputBaseClasses"));
28
28
  var _jsxRuntime = require("react/jsx-runtime");
29
29
  var _InputGlobalStyles;
@@ -336,7 +336,7 @@ const InputBase = /*#__PURE__*/React.forwardRef(function InputBase(inProps, ref)
336
336
  const onFilled = muiFormControl && muiFormControl.onFilled;
337
337
  const onEmpty = muiFormControl && muiFormControl.onEmpty;
338
338
  const checkDirty = React.useCallback(obj => {
339
- if ((0, _utils2.isFilled)(obj)) {
339
+ if ((0, _utils.isFilled)(obj)) {
340
340
  if (onFilled) {
341
341
  onFilled();
342
342
  }
@@ -434,7 +434,7 @@ const InputBase = /*#__PURE__*/React.forwardRef(function InputBase(inProps, ref)
434
434
  ...inputProps
435
435
  };
436
436
  }
437
- InputComponent = _base.TextareaAutosize;
437
+ InputComponent = _TextareaAutosize.default;
438
438
  }
439
439
  const handleAutoFill = event => {
440
440
  // Provide a fake value as Chrome might not let you access it for security reasons.
@@ -478,7 +478,7 @@ const InputBase = /*#__PURE__*/React.forwardRef(function InputBase(inProps, ref)
478
478
  ref: ref,
479
479
  onClick: handleClick,
480
480
  ...other,
481
- ...(!(0, _utils.isHostComponent)(Root) && {
481
+ ...(!(0, _isHostComponent.default)(Root) && {
482
482
  ownerState: {
483
483
  ...ownerState,
484
484
  ...rootProps.ownerState
@@ -506,7 +506,7 @@ const InputBase = /*#__PURE__*/React.forwardRef(function InputBase(inProps, ref)
506
506
  onKeyUp: onKeyUp,
507
507
  type: type,
508
508
  ...inputProps,
509
- ...(!(0, _utils.isHostComponent)(Input) && {
509
+ ...(!(0, _isHostComponent.default)(Input) && {
510
510
  as: InputComponent,
511
511
  ownerState: {
512
512
  ...ownerState,
@@ -9,11 +9,11 @@ exports.overridesResolver = exports.default = exports.ListItemRoot = void 0;
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _clsx = _interopRequireDefault(require("clsx"));
12
- var _utils = require("@mui/base/utils");
13
12
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
13
  var _elementTypeAcceptingRef = _interopRequireDefault(require("@mui/utils/elementTypeAcceptingRef"));
15
14
  var _chainPropTypes = _interopRequireDefault(require("@mui/utils/chainPropTypes"));
16
15
  var _colorManipulator = require("@mui/system/colorManipulator");
16
+ var _isHostComponent = _interopRequireDefault(require("../utils/isHostComponent"));
17
17
  var _zeroStyled = require("../zero-styled");
18
18
  var _DefaultPropsProvider = require("../DefaultPropsProvider");
19
19
  var _ButtonBase = _interopRequireDefault(require("../ButtonBase"));
@@ -286,7 +286,7 @@ const ListItem = /*#__PURE__*/React.forwardRef(function ListItem(inProps, ref) {
286
286
  ...ContainerProps,
287
287
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Root, {
288
288
  ...rootProps,
289
- ...(!(0, _utils.isHostComponent)(Root) && {
289
+ ...(!(0, _isHostComponent.default)(Root) && {
290
290
  as: Component,
291
291
  ownerState: {
292
292
  ...ownerState,
@@ -305,7 +305,7 @@ const ListItem = /*#__PURE__*/React.forwardRef(function ListItem(inProps, ref) {
305
305
  ...rootProps,
306
306
  as: Component,
307
307
  ref: handleRef,
308
- ...(!(0, _utils.isHostComponent)(Root) && {
308
+ ...(!(0, _isHostComponent.default)(Root) && {
309
309
  ownerState: {
310
310
  ...ownerState,
311
311
  ...rootProps.ownerState
package/node/Menu/Menu.js CHANGED
@@ -11,9 +11,9 @@ var _reactIs = require("react-is");
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _clsx = _interopRequireDefault(require("clsx"));
13
13
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
- var _utils = require("@mui/base/utils");
15
14
  var _HTMLElementType = _interopRequireDefault(require("@mui/utils/HTMLElementType"));
16
15
  var _RtlProvider = require("@mui/system/RtlProvider");
16
+ var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
17
17
  var _MenuList = _interopRequireDefault(require("../MenuList"));
18
18
  var _Popover = _interopRequireWildcard(require("../Popover"));
19
19
  var _rootShouldForwardProp = _interopRequireDefault(require("../styles/rootShouldForwardProp"));
@@ -156,13 +156,13 @@ const Menu = /*#__PURE__*/React.forwardRef(function Menu(inProps, ref) {
156
156
  });
157
157
  const PaperSlot = (_slots$paper = slots.paper) != null ? _slots$paper : MenuPaper;
158
158
  const paperExternalSlotProps = (_slotProps$paper = slotProps.paper) != null ? _slotProps$paper : PaperProps;
159
- const rootSlotProps = (0, _utils.useSlotProps)({
159
+ const rootSlotProps = (0, _useSlotProps.default)({
160
160
  elementType: slots.root,
161
161
  externalSlotProps: slotProps.root,
162
162
  ownerState,
163
163
  className: [classes.root, className]
164
164
  });
165
- const paperSlotProps = (0, _utils.useSlotProps)({
165
+ const paperSlotProps = (0, _useSlotProps.default)({
166
166
  elementType: PaperSlot,
167
167
  externalSlotProps: paperExternalSlotProps,
168
168
  ownerState,
@@ -11,13 +11,13 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _clsx = _interopRequireDefault(require("clsx"));
12
12
  var _HTMLElementType = _interopRequireDefault(require("@mui/utils/HTMLElementType"));
13
13
  var _elementAcceptingRef = _interopRequireDefault(require("@mui/utils/elementAcceptingRef"));
14
- var _unstable_useModal = require("@mui/base/unstable_useModal");
15
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
16
15
  var _Unstable_TrapFocus = _interopRequireDefault(require("../Unstable_TrapFocus"));
17
16
  var _Portal = _interopRequireDefault(require("../Portal"));
18
17
  var _zeroStyled = require("../zero-styled");
19
18
  var _DefaultPropsProvider = require("../DefaultPropsProvider");
20
19
  var _Backdrop = _interopRequireDefault(require("../Backdrop"));
20
+ var _useModal = _interopRequireDefault(require("./useModal"));
21
21
  var _modalClasses = require("./modalClasses");
22
22
  var _useSlot = _interopRequireDefault(require("../utils/useSlot"));
23
23
  var _utils = require("../utils");
@@ -141,7 +141,7 @@ const Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {
141
141
  isTopModal,
142
142
  exited,
143
143
  hasTransition
144
- } = (0, _unstable_useModal.unstable_useModal)({
144
+ } = (0, _useModal.default)({
145
145
  ...propsWithDefaults,
146
146
  rootRef: ref
147
147
  });