@mui/utils 7.0.1 → 7.1.0

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 (234) hide show
  1. package/CHANGELOG.md +157 -0
  2. package/deprecatedPropType/deprecatedPropType.d.ts +2 -1
  3. package/esm/deprecatedPropType/deprecatedPropType.d.ts +2 -1
  4. package/esm/index.js +1 -1
  5. package/esm/integerPropType/integerPropType.d.ts +1 -0
  6. package/esm/integerPropType/integerPropType.js +4 -3
  7. package/esm/requirePropFactory/requirePropFactory.d.ts +2 -1
  8. package/esm/requirePropFactory/requirePropFactory.js +1 -1
  9. package/esm/useControlled/index.js +2 -1
  10. package/esm/useControlled/useControlled.d.ts +2 -1
  11. package/esm/useControlled/useControlled.js +12 -6
  12. package/esm/useForkRef/useForkRef.d.ts +1 -2
  13. package/esm/useForkRef/useForkRef.js +32 -12
  14. package/index.js +1 -1
  15. package/integerPropType/integerPropType.d.ts +1 -0
  16. package/integerPropType/integerPropType.js +4 -3
  17. package/package.json +5 -13
  18. package/requirePropFactory/requirePropFactory.d.ts +2 -1
  19. package/requirePropFactory/requirePropFactory.js +1 -1
  20. package/useControlled/index.js +14 -2
  21. package/useControlled/useControlled.d.ts +2 -1
  22. package/useControlled/useControlled.js +12 -6
  23. package/useForkRef/useForkRef.d.ts +1 -2
  24. package/useForkRef/useForkRef.js +32 -13
  25. package/modern/ClassNameGenerator/ClassNameGenerator.d.ts +0 -6
  26. package/modern/ClassNameGenerator/ClassNameGenerator.js +0 -17
  27. package/modern/ClassNameGenerator/index.d.ts +0 -1
  28. package/modern/ClassNameGenerator/index.js +0 -1
  29. package/modern/HTMLElementType/HTMLElementType.d.ts +0 -3
  30. package/modern/HTMLElementType/HTMLElementType.js +0 -14
  31. package/modern/HTMLElementType/index.d.ts +0 -1
  32. package/modern/HTMLElementType/index.js +0 -1
  33. package/modern/appendOwnerState/appendOwnerState.d.ts +0 -20
  34. package/modern/appendOwnerState/appendOwnerState.js +0 -28
  35. package/modern/appendOwnerState/index.d.ts +0 -2
  36. package/modern/appendOwnerState/index.js +0 -1
  37. package/modern/capitalize/capitalize.d.ts +0 -1
  38. package/modern/capitalize/capitalize.js +0 -11
  39. package/modern/capitalize/index.d.ts +0 -1
  40. package/modern/capitalize/index.js +0 -1
  41. package/modern/chainPropTypes/chainPropTypes.d.ts +0 -2
  42. package/modern/chainPropTypes/chainPropTypes.js +0 -8
  43. package/modern/chainPropTypes/index.d.ts +0 -1
  44. package/modern/chainPropTypes/index.js +0 -1
  45. package/modern/clamp/clamp.d.ts +0 -2
  46. package/modern/clamp/clamp.js +0 -4
  47. package/modern/clamp/index.d.ts +0 -1
  48. package/modern/clamp/index.js +0 -1
  49. package/modern/composeClasses/composeClasses.d.ts +0 -29
  50. package/modern/composeClasses/composeClasses.js +0 -53
  51. package/modern/composeClasses/index.d.ts +0 -1
  52. package/modern/composeClasses/index.js +0 -1
  53. package/modern/createChainedFunction/createChainedFunction.d.ts +0 -7
  54. package/modern/createChainedFunction/createChainedFunction.js +0 -17
  55. package/modern/createChainedFunction/index.d.ts +0 -1
  56. package/modern/createChainedFunction/index.js +0 -1
  57. package/modern/debounce/debounce.d.ts +0 -4
  58. package/modern/debounce/debounce.js +0 -17
  59. package/modern/debounce/index.d.ts +0 -2
  60. package/modern/debounce/index.js +0 -2
  61. package/modern/deepmerge/deepmerge.d.ts +0 -23
  62. package/modern/deepmerge/deepmerge.js +0 -64
  63. package/modern/deepmerge/index.d.ts +0 -2
  64. package/modern/deepmerge/index.js +0 -2
  65. package/modern/deprecatedPropType/deprecatedPropType.d.ts +0 -1
  66. package/modern/deprecatedPropType/deprecatedPropType.js +0 -13
  67. package/modern/deprecatedPropType/index.d.ts +0 -1
  68. package/modern/deprecatedPropType/index.js +0 -1
  69. package/modern/elementAcceptingRef/elementAcceptingRef.d.ts +0 -3
  70. package/modern/elementAcceptingRef/elementAcceptingRef.js +0 -42
  71. package/modern/elementAcceptingRef/index.d.ts +0 -1
  72. package/modern/elementAcceptingRef/index.js +0 -1
  73. package/modern/elementTypeAcceptingRef/elementTypeAcceptingRef.d.ts +0 -3
  74. package/modern/elementTypeAcceptingRef/elementTypeAcceptingRef.js +0 -40
  75. package/modern/elementTypeAcceptingRef/index.d.ts +0 -1
  76. package/modern/elementTypeAcceptingRef/index.js +0 -1
  77. package/modern/exactProp/exactProp.d.ts +0 -2
  78. package/modern/exactProp/exactProp.js +0 -20
  79. package/modern/exactProp/index.d.ts +0 -1
  80. package/modern/exactProp/index.js +0 -1
  81. package/modern/extractEventHandlers/extractEventHandlers.d.ts +0 -10
  82. package/modern/extractEventHandlers/extractEventHandlers.js +0 -18
  83. package/modern/extractEventHandlers/index.d.ts +0 -1
  84. package/modern/extractEventHandlers/index.js +0 -1
  85. package/modern/formatMuiErrorMessage/formatMuiErrorMessage.d.ts +0 -11
  86. package/modern/formatMuiErrorMessage/formatMuiErrorMessage.js +0 -15
  87. package/modern/formatMuiErrorMessage/index.d.ts +0 -1
  88. package/modern/formatMuiErrorMessage/index.js +0 -1
  89. package/modern/generateUtilityClass/generateUtilityClass.d.ts +0 -17
  90. package/modern/generateUtilityClass/generateUtilityClass.js +0 -22
  91. package/modern/generateUtilityClass/index.d.ts +0 -2
  92. package/modern/generateUtilityClass/index.js +0 -2
  93. package/modern/generateUtilityClasses/generateUtilityClasses.d.ts +0 -1
  94. package/modern/generateUtilityClasses/generateUtilityClasses.js +0 -8
  95. package/modern/generateUtilityClasses/index.d.ts +0 -1
  96. package/modern/generateUtilityClasses/index.js +0 -1
  97. package/modern/getDisplayName/getDisplayName.d.ts +0 -7
  98. package/modern/getDisplayName/getDisplayName.js +0 -38
  99. package/modern/getDisplayName/index.d.ts +0 -1
  100. package/modern/getDisplayName/index.js +0 -1
  101. package/modern/getReactElementRef/getReactElementRef.d.ts +0 -9
  102. package/modern/getReactElementRef/getReactElementRef.js +0 -18
  103. package/modern/getReactElementRef/index.d.ts +0 -1
  104. package/modern/getReactElementRef/index.js +0 -1
  105. package/modern/getReactNodeRef/getReactNodeRef.d.ts +0 -11
  106. package/modern/getReactNodeRef/getReactNodeRef.js +0 -23
  107. package/modern/getReactNodeRef/index.d.ts +0 -1
  108. package/modern/getReactNodeRef/index.js +0 -1
  109. package/modern/getScrollbarSize/getScrollbarSize.d.ts +0 -1
  110. package/modern/getScrollbarSize/getScrollbarSize.js +0 -7
  111. package/modern/getScrollbarSize/index.d.ts +0 -1
  112. package/modern/getScrollbarSize/index.js +0 -1
  113. package/modern/getValidReactChildren/getValidReactChildren.d.ts +0 -8
  114. package/modern/getValidReactChildren/getValidReactChildren.js +0 -11
  115. package/modern/getValidReactChildren/index.d.ts +0 -1
  116. package/modern/getValidReactChildren/index.js +0 -1
  117. package/modern/index.d.ts +0 -51
  118. package/modern/index.js +0 -57
  119. package/modern/integerPropType/index.d.ts +0 -2
  120. package/modern/integerPropType/index.js +0 -2
  121. package/modern/integerPropType/integerPropType.d.ts +0 -3
  122. package/modern/integerPropType/integerPropType.js +0 -44
  123. package/modern/isFocusVisible/index.d.ts +0 -1
  124. package/modern/isFocusVisible/index.js +0 -1
  125. package/modern/isFocusVisible/isFocusVisible.d.ts +0 -4
  126. package/modern/isFocusVisible/isFocusVisible.js +0 -15
  127. package/modern/isHostComponent/index.d.ts +0 -1
  128. package/modern/isHostComponent/index.js +0 -1
  129. package/modern/isHostComponent/isHostComponent.d.ts +0 -6
  130. package/modern/isHostComponent/isHostComponent.js +0 -7
  131. package/modern/isMuiElement/index.d.ts +0 -1
  132. package/modern/isMuiElement/index.js +0 -1
  133. package/modern/isMuiElement/isMuiElement.d.ts +0 -1
  134. package/modern/isMuiElement/isMuiElement.js +0 -8
  135. package/modern/mergeSlotProps/index.d.ts +0 -2
  136. package/modern/mergeSlotProps/index.js +0 -1
  137. package/modern/mergeSlotProps/mergeSlotProps.d.ts +0 -56
  138. package/modern/mergeSlotProps/mergeSlotProps.js +0 -90
  139. package/modern/omitEventHandlers/index.d.ts +0 -1
  140. package/modern/omitEventHandlers/index.js +0 -1
  141. package/modern/omitEventHandlers/omitEventHandlers.d.ts +0 -9
  142. package/modern/omitEventHandlers/omitEventHandlers.js +0 -18
  143. package/modern/ownerDocument/index.d.ts +0 -1
  144. package/modern/ownerDocument/index.js +0 -1
  145. package/modern/ownerDocument/ownerDocument.d.ts +0 -1
  146. package/modern/ownerDocument/ownerDocument.js +0 -3
  147. package/modern/ownerWindow/index.d.ts +0 -1
  148. package/modern/ownerWindow/index.js +0 -1
  149. package/modern/ownerWindow/ownerWindow.d.ts +0 -1
  150. package/modern/ownerWindow/ownerWindow.js +0 -5
  151. package/modern/package.json +0 -1
  152. package/modern/ponyfillGlobal/index.d.ts +0 -1
  153. package/modern/ponyfillGlobal/index.js +0 -1
  154. package/modern/ponyfillGlobal/ponyfillGlobal.d.ts +0 -6
  155. package/modern/ponyfillGlobal/ponyfillGlobal.js +0 -6
  156. package/modern/refType/index.d.ts +0 -1
  157. package/modern/refType/index.js +0 -1
  158. package/modern/refType/refType.d.ts +0 -3
  159. package/modern/refType/refType.js +0 -3
  160. package/modern/requirePropFactory/index.d.ts +0 -1
  161. package/modern/requirePropFactory/index.js +0 -1
  162. package/modern/requirePropFactory/requirePropFactory.d.ts +0 -2
  163. package/modern/requirePropFactory/requirePropFactory.js +0 -25
  164. package/modern/resolveComponentProps/index.d.ts +0 -1
  165. package/modern/resolveComponentProps/index.js +0 -1
  166. package/modern/resolveComponentProps/resolveComponentProps.d.ts +0 -6
  167. package/modern/resolveComponentProps/resolveComponentProps.js +0 -11
  168. package/modern/resolveProps/index.d.ts +0 -1
  169. package/modern/resolveProps/index.js +0 -1
  170. package/modern/resolveProps/resolveProps.d.ts +0 -12
  171. package/modern/resolveProps/resolveProps.js +0 -43
  172. package/modern/setRef/index.d.ts +0 -1
  173. package/modern/setRef/index.js +0 -1
  174. package/modern/setRef/setRef.d.ts +0 -15
  175. package/modern/setRef/setRef.js +0 -20
  176. package/modern/types/index.d.ts +0 -7
  177. package/modern/types/index.js +0 -1
  178. package/modern/unsupportedProp/index.d.ts +0 -1
  179. package/modern/unsupportedProp/index.js +0 -1
  180. package/modern/unsupportedProp/unsupportedProp.d.ts +0 -3
  181. package/modern/unsupportedProp/unsupportedProp.js +0 -10
  182. package/modern/useControlled/index.d.ts +0 -2
  183. package/modern/useControlled/index.js +0 -1
  184. package/modern/useControlled/useControlled.d.ts +0 -19
  185. package/modern/useControlled/useControlled.js +0 -41
  186. package/modern/useEnhancedEffect/index.d.ts +0 -1
  187. package/modern/useEnhancedEffect/index.js +0 -1
  188. package/modern/useEnhancedEffect/useEnhancedEffect.d.ts +0 -10
  189. package/modern/useEnhancedEffect/useEnhancedEffect.js +0 -13
  190. package/modern/useEventCallback/index.d.ts +0 -1
  191. package/modern/useEventCallback/index.js +0 -1
  192. package/modern/useEventCallback/useEventCallback.d.ts +0 -7
  193. package/modern/useEventCallback/useEventCallback.js +0 -20
  194. package/modern/useForkRef/index.d.ts +0 -1
  195. package/modern/useForkRef/index.js +0 -1
  196. package/modern/useForkRef/useForkRef.d.ts +0 -18
  197. package/modern/useForkRef/useForkRef.js +0 -40
  198. package/modern/useId/index.d.ts +0 -1
  199. package/modern/useId/index.js +0 -1
  200. package/modern/useId/useId.d.ts +0 -7
  201. package/modern/useId/useId.js +0 -45
  202. package/modern/useIsFocusVisible/index.d.ts +0 -2
  203. package/modern/useIsFocusVisible/index.js +0 -2
  204. package/modern/useIsFocusVisible/useIsFocusVisible.d.ts +0 -9
  205. package/modern/useIsFocusVisible/useIsFocusVisible.js +0 -163
  206. package/modern/useLazyRef/index.d.ts +0 -1
  207. package/modern/useLazyRef/index.js +0 -1
  208. package/modern/useLazyRef/useLazyRef.d.ts +0 -9
  209. package/modern/useLazyRef/useLazyRef.js +0 -19
  210. package/modern/useLocalStorageState/index.d.ts +0 -1
  211. package/modern/useLocalStorageState/index.js +0 -1
  212. package/modern/useLocalStorageState/useLocalStorageState.d.ts +0 -14
  213. package/modern/useLocalStorageState/useLocalStorageState.js +0 -108
  214. package/modern/useOnMount/index.d.ts +0 -1
  215. package/modern/useOnMount/index.js +0 -1
  216. package/modern/useOnMount/useOnMount.d.ts +0 -5
  217. package/modern/useOnMount/useOnMount.js +0 -14
  218. package/modern/usePreviousProps/index.d.ts +0 -1
  219. package/modern/usePreviousProps/index.js +0 -1
  220. package/modern/usePreviousProps/usePreviousProps.d.ts +0 -2
  221. package/modern/usePreviousProps/usePreviousProps.js +0 -11
  222. package/modern/useSlotProps/index.d.ts +0 -2
  223. package/modern/useSlotProps/index.js +0 -1
  224. package/modern/useSlotProps/useSlotProps.d.ts +0 -41
  225. package/modern/useSlotProps/useSlotProps.js +0 -38
  226. package/modern/useTimeout/index.d.ts +0 -2
  227. package/modern/useTimeout/index.js +0 -2
  228. package/modern/useTimeout/useTimeout.d.ts +0 -11
  229. package/modern/useTimeout/useTimeout.js +0 -35
  230. package/modern/visuallyHidden/index.d.ts +0 -1
  231. package/modern/visuallyHidden/index.js +0 -1
  232. package/modern/visuallyHidden/visuallyHidden.d.ts +0 -2
  233. package/modern/visuallyHidden/visuallyHidden.js +0 -12
  234. package/tsconfig.build.tsbuildinfo +0 -1
@@ -1,90 +0,0 @@
1
- import clsx from 'clsx';
2
- import extractEventHandlers from "../extractEventHandlers/index.js";
3
- import omitEventHandlers from "../omitEventHandlers/index.js";
4
- /**
5
- * Merges the slot component internal props (usually coming from a hook)
6
- * with the externally provided ones.
7
- *
8
- * The merge order is (the latter overrides the former):
9
- * 1. The internal props (specified as a getter function to work with get*Props hook result)
10
- * 2. Additional props (specified internally on a Base UI component)
11
- * 3. External props specified on the owner component. These should only be used on a root slot.
12
- * 4. External props specified in the `slotProps.*` prop.
13
- * 5. The `className` prop - combined from all the above.
14
- * @param parameters
15
- * @returns
16
- */
17
- function mergeSlotProps(parameters) {
18
- const {
19
- getSlotProps,
20
- additionalProps,
21
- externalSlotProps,
22
- externalForwardedProps,
23
- className
24
- } = parameters;
25
- if (!getSlotProps) {
26
- // The simpler case - getSlotProps is not defined, so no internal event handlers are defined,
27
- // so we can simply merge all the props without having to worry about extracting event handlers.
28
- const joinedClasses = clsx(additionalProps?.className, className, externalForwardedProps?.className, externalSlotProps?.className);
29
- const mergedStyle = {
30
- ...additionalProps?.style,
31
- ...externalForwardedProps?.style,
32
- ...externalSlotProps?.style
33
- };
34
- const props = {
35
- ...additionalProps,
36
- ...externalForwardedProps,
37
- ...externalSlotProps
38
- };
39
- if (joinedClasses.length > 0) {
40
- props.className = joinedClasses;
41
- }
42
- if (Object.keys(mergedStyle).length > 0) {
43
- props.style = mergedStyle;
44
- }
45
- return {
46
- props,
47
- internalRef: undefined
48
- };
49
- }
50
-
51
- // In this case, getSlotProps is responsible for calling the external event handlers.
52
- // We don't need to include them in the merged props because of this.
53
-
54
- const eventHandlers = extractEventHandlers({
55
- ...externalForwardedProps,
56
- ...externalSlotProps
57
- });
58
- const componentsPropsWithoutEventHandlers = omitEventHandlers(externalSlotProps);
59
- const otherPropsWithoutEventHandlers = omitEventHandlers(externalForwardedProps);
60
- const internalSlotProps = getSlotProps(eventHandlers);
61
-
62
- // The order of classes is important here.
63
- // Emotion (that we use in libraries consuming Base UI) depends on this order
64
- // to properly override style. It requires the most important classes to be last
65
- // (see https://github.com/mui/material-ui/pull/33205) for the related discussion.
66
- const joinedClasses = clsx(internalSlotProps?.className, additionalProps?.className, className, externalForwardedProps?.className, externalSlotProps?.className);
67
- const mergedStyle = {
68
- ...internalSlotProps?.style,
69
- ...additionalProps?.style,
70
- ...externalForwardedProps?.style,
71
- ...externalSlotProps?.style
72
- };
73
- const props = {
74
- ...internalSlotProps,
75
- ...additionalProps,
76
- ...otherPropsWithoutEventHandlers,
77
- ...componentsPropsWithoutEventHandlers
78
- };
79
- if (joinedClasses.length > 0) {
80
- props.className = joinedClasses;
81
- }
82
- if (Object.keys(mergedStyle).length > 0) {
83
- props.style = mergedStyle;
84
- }
85
- return {
86
- props,
87
- internalRef: internalSlotProps.ref
88
- };
89
- }
90
- export default mergeSlotProps;
@@ -1 +0,0 @@
1
- export { default } from "./omitEventHandlers.js";
@@ -1 +0,0 @@
1
- export { default } from "./omitEventHandlers.js";
@@ -1,9 +0,0 @@
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
- declare function omitEventHandlers<Props extends Record<string, unknown>>(object: Props | undefined): {};
9
- export default omitEventHandlers;
@@ -1,18 +0,0 @@
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 +0,0 @@
1
- export { default } from "./ownerDocument.js";
@@ -1 +0,0 @@
1
- export { default } from "./ownerDocument.js";
@@ -1 +0,0 @@
1
- export default function ownerDocument(node: Node | null | undefined): Document;
@@ -1,3 +0,0 @@
1
- export default function ownerDocument(node) {
2
- return node && node.ownerDocument || document;
3
- }
@@ -1 +0,0 @@
1
- export { default } from "./ownerWindow.js";
@@ -1 +0,0 @@
1
- export { default } from "./ownerWindow.js";
@@ -1 +0,0 @@
1
- export default function ownerWindow(node: Node | undefined): Window;
@@ -1,5 +0,0 @@
1
- import ownerDocument from "../ownerDocument/index.js";
2
- export default function ownerWindow(node) {
3
- const doc = ownerDocument(node);
4
- return doc.defaultView || window;
5
- }
@@ -1 +0,0 @@
1
- {"type":"module","sideEffects":false}
@@ -1 +0,0 @@
1
- export { default } from "./ponyfillGlobal.js";
@@ -1 +0,0 @@
1
- export { default } from "./ponyfillGlobal.js";
@@ -1,6 +0,0 @@
1
- /**
2
- * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
3
- * @deprecated Use `globalThis` instead.
4
- */
5
- declare const _default: any;
6
- export default _default;
@@ -1,6 +0,0 @@
1
- /* eslint-disable */
2
- /**
3
- * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
4
- * @deprecated Use `globalThis` instead.
5
- */
6
- export default typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
@@ -1 +0,0 @@
1
- export { default } from "./refType.js";
@@ -1 +0,0 @@
1
- export { default } from "./refType.js";
@@ -1,3 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- declare const refType: PropTypes.Requireable<object>;
3
- export default refType;
@@ -1,3 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- const refType = PropTypes.oneOfType([PropTypes.func, PropTypes.object]);
3
- export default refType;
@@ -1 +0,0 @@
1
- export { default } from "./requirePropFactory.js";
@@ -1 +0,0 @@
1
- export { default } from "./requirePropFactory.js";
@@ -1,2 +0,0 @@
1
- import * as React from 'react';
2
- export default function requirePropFactory(componentNameInError: string, Component?: React.JSXElementConstructor<unknown>): any;
@@ -1,25 +0,0 @@
1
- export default function requirePropFactory(componentNameInError, Component) {
2
- if (process.env.NODE_ENV === 'production') {
3
- return () => null;
4
- }
5
-
6
- // eslint-disable-next-line react/forbid-foreign-prop-types
7
- const prevPropTypes = Component ? {
8
- ...Component.propTypes
9
- } : null;
10
- const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {
11
- const propFullNameSafe = propFullName || propName;
12
- const defaultTypeChecker = prevPropTypes?.[propFullNameSafe];
13
- if (defaultTypeChecker) {
14
- const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);
15
- if (typeCheckerResult) {
16
- return typeCheckerResult;
17
- }
18
- }
19
- if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {
20
- return new Error(`The prop \`${propFullNameSafe}\` of ` + `\`${componentNameInError}\` can only be used together with the \`${requiredProp}\` prop.`);
21
- }
22
- return null;
23
- };
24
- return requireProp;
25
- }
@@ -1 +0,0 @@
1
- export { default } from "./resolveComponentProps.js";
@@ -1 +0,0 @@
1
- export { default } from "./resolveComponentProps.js";
@@ -1,6 +0,0 @@
1
- /**
2
- * If `componentProps` is a function, calls it with the provided `ownerState`.
3
- * Otherwise, just returns `componentProps`.
4
- */
5
- declare function resolveComponentProps<TProps, TOwnerState, TSlotState>(componentProps: TProps | ((ownerState: TOwnerState, slotState?: TSlotState) => TProps) | undefined, ownerState: TOwnerState, slotState?: TSlotState): TProps | undefined;
6
- export default resolveComponentProps;
@@ -1,11 +0,0 @@
1
- /**
2
- * If `componentProps` is a function, calls it with the provided `ownerState`.
3
- * Otherwise, just returns `componentProps`.
4
- */
5
- function resolveComponentProps(componentProps, ownerState, slotState) {
6
- if (typeof componentProps === 'function') {
7
- return componentProps(ownerState, slotState);
8
- }
9
- return componentProps;
10
- }
11
- export default resolveComponentProps;
@@ -1 +0,0 @@
1
- export { default } from "./resolveProps.js";
@@ -1 +0,0 @@
1
- export { default } from "./resolveProps.js";
@@ -1,12 +0,0 @@
1
- /**
2
- * Add keys, values of `defaultProps` that does not exist in `props`
3
- * @param defaultProps
4
- * @param props
5
- * @returns resolved props
6
- */
7
- export default function resolveProps<T extends {
8
- components?: Record<string, unknown>;
9
- componentsProps?: Record<string, unknown>;
10
- slots?: Record<string, unknown>;
11
- slotProps?: Record<string, unknown>;
12
- } & Record<string, unknown>>(defaultProps: T, props: T): T;
@@ -1,43 +0,0 @@
1
- /**
2
- * Add keys, values of `defaultProps` that does not exist in `props`
3
- * @param defaultProps
4
- * @param props
5
- * @returns resolved props
6
- */
7
- export default function resolveProps(defaultProps, props) {
8
- const output = {
9
- ...props
10
- };
11
- for (const key in defaultProps) {
12
- if (Object.prototype.hasOwnProperty.call(defaultProps, key)) {
13
- const propName = key;
14
- if (propName === 'components' || propName === 'slots') {
15
- output[propName] = {
16
- ...defaultProps[propName],
17
- ...output[propName]
18
- };
19
- } else if (propName === 'componentsProps' || propName === 'slotProps') {
20
- const defaultSlotProps = defaultProps[propName];
21
- const slotProps = props[propName];
22
- if (!slotProps) {
23
- output[propName] = defaultSlotProps || {};
24
- } else if (!defaultSlotProps) {
25
- output[propName] = slotProps;
26
- } else {
27
- output[propName] = {
28
- ...slotProps
29
- };
30
- for (const slotKey in defaultSlotProps) {
31
- if (Object.prototype.hasOwnProperty.call(defaultSlotProps, slotKey)) {
32
- const slotPropName = slotKey;
33
- output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);
34
- }
35
- }
36
- }
37
- } else if (output[propName] === undefined) {
38
- output[propName] = defaultProps[propName];
39
- }
40
- }
41
- }
42
- return output;
43
- }
@@ -1 +0,0 @@
1
- export { default } from "./setRef.js";
@@ -1 +0,0 @@
1
- export { default } from "./setRef.js";
@@ -1,15 +0,0 @@
1
- import * as React from 'react';
2
- /**
3
- * TODO v5: consider making it private
4
- *
5
- * passes {value} to {ref}
6
- *
7
- * WARNING: Be sure to only call this inside a callback that is passed as a ref.
8
- * Otherwise, make sure to cleanup the previous {ref} if it changes. See
9
- * https://github.com/mui/material-ui/issues/13539
10
- *
11
- * Useful if you want to expose the ref of an inner component to the public API
12
- * while still using it inside the component.
13
- * @param ref A ref callback or ref object. If anything falsy, this is a no-op.
14
- */
15
- export default function setRef<T>(ref: React.MutableRefObject<T | null> | ((instance: T | null) => void) | null | undefined, value: T | null): void;
@@ -1,20 +0,0 @@
1
- /**
2
- * TODO v5: consider making it private
3
- *
4
- * passes {value} to {ref}
5
- *
6
- * WARNING: Be sure to only call this inside a callback that is passed as a ref.
7
- * Otherwise, make sure to cleanup the previous {ref} if it changes. See
8
- * https://github.com/mui/material-ui/issues/13539
9
- *
10
- * Useful if you want to expose the ref of an inner component to the public API
11
- * while still using it inside the component.
12
- * @param ref A ref callback or ref object. If anything falsy, this is a no-op.
13
- */
14
- export default function setRef(ref, value) {
15
- if (typeof ref === 'function') {
16
- ref(value);
17
- } else if (ref) {
18
- ref.current = value;
19
- }
20
- }
@@ -1,7 +0,0 @@
1
- import * as React from 'react';
2
- export type EventHandlers = Record<string, React.EventHandler<any>>;
3
- export type WithOptionalOwnerState<Props extends {
4
- ownerState: unknown;
5
- }> = Omit<Props, 'ownerState'> & Partial<Pick<Props, 'ownerState'>>;
6
- export type SlotComponentProps<TSlotComponent extends React.ElementType, TOverrides, TOwnerState> = (Partial<React.ComponentPropsWithRef<TSlotComponent>> & TOverrides) | ((ownerState: TOwnerState) => Partial<React.ComponentPropsWithRef<TSlotComponent>> & TOverrides);
7
- export type SlotComponentPropsWithSlotState<TSlotComponent extends React.ElementType, TOverrides, TOwnerState, TSlotState> = (Partial<React.ComponentPropsWithRef<TSlotComponent>> & TOverrides) | ((ownerState: TOwnerState, slotState: TSlotState) => Partial<React.ComponentPropsWithRef<TSlotComponent>> & TOverrides);
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export { default } from "./unsupportedProp.js";
@@ -1 +0,0 @@
1
- export { default } from "./unsupportedProp.js";
@@ -1,3 +0,0 @@
1
- export default function unsupportedProp(props: {
2
- [key: string]: any;
3
- }, propName: string, componentName: string, location: string, propFullName: string): Error | null;
@@ -1,10 +0,0 @@
1
- export default function unsupportedProp(props, propName, componentName, location, propFullName) {
2
- if (process.env.NODE_ENV === 'production') {
3
- return null;
4
- }
5
- const propFullNameSafe = propFullName || propName;
6
- if (typeof props[propName] !== 'undefined') {
7
- return new Error(`The prop \`${propFullNameSafe}\` is not supported. Please remove it.`);
8
- }
9
- return null;
10
- }
@@ -1,2 +0,0 @@
1
- export { default } from "./useControlled.js";
2
- export * from "./useControlled.js";
@@ -1 +0,0 @@
1
- export { default } from "./useControlled.js";
@@ -1,19 +0,0 @@
1
- export interface UseControlledProps<T = unknown> {
2
- /**
3
- * Holds the component value when it's controlled.
4
- */
5
- controlled: T | undefined;
6
- /**
7
- * The default value when uncontrolled.
8
- */
9
- default: T | undefined;
10
- /**
11
- * The component name displayed in warnings.
12
- */
13
- name: string;
14
- /**
15
- * The name of the state variable displayed in warnings.
16
- */
17
- state?: string;
18
- }
19
- export default function useControlled<T = unknown>(props: UseControlledProps<T>): [T, (newValue: T | ((prevValue: T) => T)) => void];
@@ -1,41 +0,0 @@
1
- 'use client';
2
-
3
- // TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler -- process.env never changes, dependency arrays are intentionally ignored
4
- /* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */
5
- import * as React from 'react';
6
- export default function useControlled({
7
- controlled,
8
- default: defaultProp,
9
- name,
10
- state = 'value'
11
- }) {
12
- // isControlled is ignored in the hook dependency lists as it should never change.
13
- const {
14
- current: isControlled
15
- } = React.useRef(controlled !== undefined);
16
- const [valueState, setValue] = React.useState(defaultProp);
17
- const value = isControlled ? controlled : valueState;
18
- if (process.env.NODE_ENV !== 'production') {
19
- React.useEffect(() => {
20
- if (isControlled !== (controlled !== undefined)) {
21
- console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", 'More info: https://fb.me/react-controlled-components'].join('\n'));
22
- }
23
- }, [state, name, controlled]);
24
- const {
25
- current: defaultValue
26
- } = React.useRef(defaultProp);
27
- React.useEffect(() => {
28
- // Object.is() is not equivalent to the === operator.
29
- // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is for more details.
30
- if (!isControlled && !Object.is(defaultValue, defaultProp)) {
31
- console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\n'));
32
- }
33
- }, [JSON.stringify(defaultProp)]);
34
- }
35
- const setValueIfUncontrolled = React.useCallback(newValue => {
36
- if (!isControlled) {
37
- setValue(newValue);
38
- }
39
- }, []);
40
- return [value, setValueIfUncontrolled];
41
- }
@@ -1 +0,0 @@
1
- export { default } from "./useEnhancedEffect.js";
@@ -1 +0,0 @@
1
- export { default } from "./useEnhancedEffect.js";
@@ -1,10 +0,0 @@
1
- import * as React from 'react';
2
- /**
3
- * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.
4
- * This is useful for effects that are only needed for client-side rendering but not for SSR.
5
- *
6
- * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85
7
- * and confirm it doesn't apply to your use-case.
8
- */
9
- declare const useEnhancedEffect: typeof React.useLayoutEffect;
10
- export default useEnhancedEffect;
@@ -1,13 +0,0 @@
1
- 'use client';
2
-
3
- import * as React from 'react';
4
-
5
- /**
6
- * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.
7
- * This is useful for effects that are only needed for client-side rendering but not for SSR.
8
- *
9
- * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85
10
- * and confirm it doesn't apply to your use-case.
11
- */
12
- const useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
13
- export default useEnhancedEffect;
@@ -1 +0,0 @@
1
- export { default } from "./useEventCallback.js";
@@ -1 +0,0 @@
1
- export { default } from "./useEventCallback.js";
@@ -1,7 +0,0 @@
1
- /**
2
- * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892
3
- * See RFC in https://github.com/reactjs/rfcs/pull/220
4
- */
5
- declare function useEventCallback<Fn extends (...args: any[]) => any = (...args: unknown[]) => unknown>(fn: Fn): Fn;
6
- declare function useEventCallback<Args extends unknown[], Return>(fn: (...args: Args) => Return): (...args: Args) => Return;
7
- export default useEventCallback;
@@ -1,20 +0,0 @@
1
- 'use client';
2
-
3
- import * as React from 'react';
4
- import useEnhancedEffect from "../useEnhancedEffect/index.js";
5
-
6
- /**
7
- * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892
8
- * See RFC in https://github.com/reactjs/rfcs/pull/220
9
- */
10
-
11
- function useEventCallback(fn) {
12
- const ref = React.useRef(fn);
13
- useEnhancedEffect(() => {
14
- ref.current = fn;
15
- });
16
- return React.useRef((...args) =>
17
- // @ts-expect-error hide `this`
18
- (0, ref.current)(...args)).current;
19
- }
20
- export default useEventCallback;
@@ -1 +0,0 @@
1
- export { default } from "./useForkRef.js";
@@ -1 +0,0 @@
1
- export { default } from "./useForkRef.js";
@@ -1,18 +0,0 @@
1
- import * as React from 'react';
2
- /**
3
- * Takes an array of refs and returns a new ref which will apply any modification to all of the refs.
4
- * This is useful when you want to have the ref used in multiple places.
5
- *
6
- * ```tsx
7
- * const rootRef = React.useRef<Instance>(null);
8
- * const refFork = useForkRef(rootRef, props.ref);
9
- *
10
- * return (
11
- * <Root {...props} ref={refFork} />
12
- * );
13
- * ```
14
- *
15
- * @param {Array<React.Ref<Instance> | undefined>} refs The ref array.
16
- * @returns {React.RefCallback<Instance> | null} The new ref callback.
17
- */
18
- export default function useForkRef<Instance>(...refs: Array<React.Ref<Instance> | undefined>): React.RefCallback<Instance> | null;
@@ -1,40 +0,0 @@
1
- 'use client';
2
-
3
- import * as React from 'react';
4
- import setRef from "../setRef/index.js";
5
-
6
- /**
7
- * Takes an array of refs and returns a new ref which will apply any modification to all of the refs.
8
- * This is useful when you want to have the ref used in multiple places.
9
- *
10
- * ```tsx
11
- * const rootRef = React.useRef<Instance>(null);
12
- * const refFork = useForkRef(rootRef, props.ref);
13
- *
14
- * return (
15
- * <Root {...props} ref={refFork} />
16
- * );
17
- * ```
18
- *
19
- * @param {Array<React.Ref<Instance> | undefined>} refs The ref array.
20
- * @returns {React.RefCallback<Instance> | null} The new ref callback.
21
- */
22
- export default function useForkRef(...refs) {
23
- /**
24
- * This will create a new function if the refs passed to this hook change and are all defined.
25
- * This means react will call the old forkRef with `null` and the new forkRef
26
- * with the ref. Cleanup naturally emerges from this behavior.
27
- */
28
- return React.useMemo(() => {
29
- if (refs.every(ref => ref == null)) {
30
- return null;
31
- }
32
- return instance => {
33
- refs.forEach(ref => {
34
- setRef(ref, instance);
35
- });
36
- };
37
- // TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler -- intentionally ignoring that the dependency array must be an array literal
38
- // eslint-disable-next-line react-hooks/exhaustive-deps
39
- }, refs);
40
- }
@@ -1 +0,0 @@
1
- export { default } from "./useId.js";
@@ -1 +0,0 @@
1
- export { default } from "./useId.js";
@@ -1,7 +0,0 @@
1
- /**
2
- *
3
- * @example <div id={useId()} />
4
- * @param idOverride
5
- * @returns {string}
6
- */
7
- export default function useId(idOverride?: string): string | undefined;