@mui/utils 6.0.0-beta.0 → 6.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/CHANGELOG.md +473 -31
  2. package/ClassNameGenerator/ClassNameGenerator.js +7 -1
  3. package/ClassNameGenerator/index.js +13 -1
  4. package/ClassNameGenerator/package.json +2 -2
  5. package/HTMLElementType/HTMLElementType.js +7 -1
  6. package/HTMLElementType/index.js +13 -1
  7. package/HTMLElementType/package.json +2 -2
  8. package/appendOwnerState/appendOwnerState.d.ts +20 -0
  9. package/appendOwnerState/appendOwnerState.js +34 -0
  10. package/appendOwnerState/index.d.ts +2 -0
  11. package/{node/capitalize → appendOwnerState}/index.js +2 -2
  12. package/appendOwnerState/package.json +6 -0
  13. package/capitalize/capitalize.js +10 -3
  14. package/capitalize/index.js +13 -1
  15. package/capitalize/package.json +2 -2
  16. package/chainPropTypes/chainPropTypes.js +7 -1
  17. package/chainPropTypes/index.js +13 -1
  18. package/chainPropTypes/package.json +2 -2
  19. package/clamp/clamp.js +7 -1
  20. package/clamp/index.js +13 -1
  21. package/clamp/package.json +2 -2
  22. package/composeClasses/composeClasses.js +7 -1
  23. package/composeClasses/index.js +13 -1
  24. package/composeClasses/package.json +2 -2
  25. package/createChainedFunction/createChainedFunction.js +7 -1
  26. package/createChainedFunction/index.js +13 -1
  27. package/createChainedFunction/package.json +2 -2
  28. package/debounce/debounce.js +7 -1
  29. package/debounce/index.js +26 -2
  30. package/debounce/package.json +2 -2
  31. package/deepmerge/deepmerge.js +9 -2
  32. package/deepmerge/index.js +26 -2
  33. package/deepmerge/package.json +2 -2
  34. package/deprecatedPropType/deprecatedPropType.js +7 -1
  35. package/deprecatedPropType/index.js +13 -1
  36. package/deprecatedPropType/package.json +2 -2
  37. package/elementAcceptingRef/elementAcceptingRef.js +12 -5
  38. package/elementAcceptingRef/index.js +13 -1
  39. package/elementAcceptingRef/package.json +2 -2
  40. package/elementTypeAcceptingRef/elementTypeAcceptingRef.js +10 -3
  41. package/elementTypeAcceptingRef/index.js +13 -1
  42. package/elementTypeAcceptingRef/package.json +2 -2
  43. package/{node → esm}/ClassNameGenerator/ClassNameGenerator.js +1 -7
  44. package/esm/ClassNameGenerator/index.js +1 -0
  45. package/{node → esm}/HTMLElementType/HTMLElementType.js +1 -7
  46. package/esm/HTMLElementType/index.js +1 -0
  47. package/esm/appendOwnerState/appendOwnerState.js +28 -0
  48. package/esm/appendOwnerState/index.js +1 -0
  49. package/esm/capitalize/capitalize.js +11 -0
  50. package/esm/capitalize/index.js +1 -0
  51. package/{node → esm}/chainPropTypes/chainPropTypes.js +1 -7
  52. package/esm/chainPropTypes/index.js +1 -0
  53. package/esm/clamp/clamp.js +4 -0
  54. package/esm/clamp/index.js +1 -0
  55. package/{node → esm}/composeClasses/composeClasses.js +1 -7
  56. package/esm/composeClasses/index.js +1 -0
  57. package/{node → esm}/createChainedFunction/createChainedFunction.js +1 -7
  58. package/esm/createChainedFunction/index.js +1 -0
  59. package/{node → esm}/debounce/debounce.js +1 -7
  60. package/esm/debounce/index.js +2 -0
  61. package/{node → esm}/deepmerge/deepmerge.js +2 -9
  62. package/esm/deepmerge/index.js +2 -0
  63. package/{node → esm}/deprecatedPropType/deprecatedPropType.js +1 -7
  64. package/esm/deprecatedPropType/index.js +1 -0
  65. package/{node → esm}/elementAcceptingRef/elementAcceptingRef.js +5 -12
  66. package/esm/elementAcceptingRef/index.js +1 -0
  67. package/{node → esm}/elementTypeAcceptingRef/elementTypeAcceptingRef.js +3 -10
  68. package/esm/elementTypeAcceptingRef/index.js +1 -0
  69. package/{node → esm}/exactProp/exactProp.js +1 -7
  70. package/esm/exactProp/index.js +1 -0
  71. package/esm/extractEventHandlers/extractEventHandlers.js +18 -0
  72. package/esm/extractEventHandlers/index.js +1 -0
  73. package/{node → esm}/formatMuiErrorMessage/formatMuiErrorMessage.js +1 -7
  74. package/esm/formatMuiErrorMessage/index.js +1 -0
  75. package/esm/generateUtilityClass/generateUtilityClass.js +22 -0
  76. package/esm/generateUtilityClass/index.js +2 -0
  77. package/esm/generateUtilityClasses/generateUtilityClasses.js +8 -0
  78. package/esm/generateUtilityClasses/index.js +1 -0
  79. package/{node → esm}/getDisplayName/getDisplayName.js +4 -10
  80. package/esm/getDisplayName/index.js +1 -0
  81. package/{node → esm}/getScrollbarSize/getScrollbarSize.js +1 -7
  82. package/esm/getScrollbarSize/index.js +1 -0
  83. package/esm/getValidReactChildren/getValidReactChildren.js +11 -0
  84. package/esm/getValidReactChildren/index.js +1 -0
  85. package/esm/index.js +47 -0
  86. package/esm/integerPropType/index.js +2 -0
  87. package/{node → esm}/integerPropType/integerPropType.js +2 -9
  88. package/esm/isFocusVisible/index.js +1 -0
  89. package/{node → esm}/isFocusVisible/isFocusVisible.js +1 -7
  90. package/esm/isHostComponent/index.js +1 -0
  91. package/esm/isHostComponent/isHostComponent.js +7 -0
  92. package/esm/isMuiElement/index.js +1 -0
  93. package/esm/isMuiElement/isMuiElement.js +8 -0
  94. package/esm/mergeSlotProps/index.js +1 -0
  95. package/esm/mergeSlotProps/mergeSlotProps.js +90 -0
  96. package/esm/omitEventHandlers/index.js +1 -0
  97. package/esm/omitEventHandlers/omitEventHandlers.js +18 -0
  98. package/esm/ownerDocument/index.js +1 -0
  99. package/esm/ownerDocument/ownerDocument.js +3 -0
  100. package/esm/ownerWindow/index.js +1 -0
  101. package/esm/ownerWindow/ownerWindow.js +5 -0
  102. package/esm/ponyfillGlobal/index.js +1 -0
  103. package/esm/ponyfillGlobal/ponyfillGlobal.js +3 -0
  104. package/esm/refType/index.js +1 -0
  105. package/esm/refType/refType.js +3 -0
  106. package/esm/requirePropFactory/index.js +1 -0
  107. package/{node → esm}/requirePropFactory/requirePropFactory.js +2 -8
  108. package/esm/resolveComponentProps/index.js +1 -0
  109. package/esm/resolveComponentProps/resolveComponentProps.js +11 -0
  110. package/esm/resolveProps/index.js +1 -0
  111. package/{node → esm}/resolveProps/resolveProps.js +1 -7
  112. package/esm/setRef/index.js +1 -0
  113. package/{node → esm}/setRef/setRef.js +1 -7
  114. package/esm/types.js +1 -0
  115. package/esm/unsupportedProp/index.js +1 -0
  116. package/{node → esm}/unsupportedProp/unsupportedProp.js +1 -7
  117. package/esm/useControlled/index.js +1 -0
  118. package/{node → esm}/useControlled/useControlled.js +2 -9
  119. package/esm/useEnhancedEffect/index.js +1 -0
  120. package/esm/useEnhancedEffect/useEnhancedEffect.js +13 -0
  121. package/esm/useEventCallback/index.js +1 -0
  122. package/esm/useEventCallback/useEventCallback.js +20 -0
  123. package/esm/useForkRef/index.js +1 -0
  124. package/esm/useForkRef/useForkRef.js +22 -0
  125. package/esm/useId/index.js +1 -0
  126. package/{node → esm}/useId/useId.js +3 -10
  127. package/esm/useLazyRef/index.js +1 -0
  128. package/esm/useLazyRef/useLazyRef.js +19 -0
  129. package/esm/useLocalStorageState/index.js +1 -0
  130. package/{node → esm}/useLocalStorageState/useLocalStorageState.js +4 -13
  131. package/esm/useOnMount/index.js +1 -0
  132. package/esm/useOnMount/useOnMount.js +13 -0
  133. package/esm/usePreviousProps/index.js +1 -0
  134. package/esm/usePreviousProps/usePreviousProps.js +11 -0
  135. package/esm/useSlotProps/index.js +1 -0
  136. package/esm/useSlotProps/useSlotProps.js +38 -0
  137. package/esm/useTimeout/index.js +2 -0
  138. package/esm/useTimeout/useTimeout.js +35 -0
  139. package/esm/visuallyHidden/index.js +1 -0
  140. package/{node → esm}/visuallyHidden/visuallyHidden.js +1 -7
  141. package/exactProp/exactProp.js +7 -1
  142. package/exactProp/index.js +13 -1
  143. package/exactProp/package.json +2 -2
  144. package/extractEventHandlers/extractEventHandlers.d.ts +10 -0
  145. package/extractEventHandlers/extractEventHandlers.js +24 -0
  146. package/extractEventHandlers/index.d.ts +1 -0
  147. package/{node/ClassNameGenerator → extractEventHandlers}/index.js +2 -2
  148. package/extractEventHandlers/package.json +6 -0
  149. package/formatMuiErrorMessage/formatMuiErrorMessage.js +7 -1
  150. package/formatMuiErrorMessage/index.js +13 -1
  151. package/formatMuiErrorMessage/package.json +2 -2
  152. package/generateUtilityClass/generateUtilityClass.js +14 -5
  153. package/generateUtilityClass/index.js +26 -2
  154. package/generateUtilityClass/package.json +2 -2
  155. package/generateUtilityClasses/generateUtilityClasses.js +10 -3
  156. package/generateUtilityClasses/index.js +13 -1
  157. package/generateUtilityClasses/package.json +2 -2
  158. package/getDisplayName/getDisplayName.js +10 -4
  159. package/getDisplayName/index.js +13 -1
  160. package/getDisplayName/package.json +2 -2
  161. package/getScrollbarSize/getScrollbarSize.js +7 -1
  162. package/getScrollbarSize/index.js +13 -1
  163. package/getScrollbarSize/package.json +2 -2
  164. package/getValidReactChildren/getValidReactChildren.js +9 -2
  165. package/getValidReactChildren/index.js +13 -1
  166. package/getValidReactChildren/package.json +2 -2
  167. package/index.d.ts +5 -0
  168. package/index.js +399 -44
  169. package/integerPropType/index.js +26 -2
  170. package/integerPropType/integerPropType.js +9 -2
  171. package/integerPropType/package.json +2 -2
  172. package/isFocusVisible/index.js +13 -1
  173. package/isFocusVisible/isFocusVisible.js +7 -1
  174. package/isFocusVisible/package.json +2 -2
  175. package/isHostComponent/index.d.ts +1 -0
  176. package/{node/clamp → isHostComponent}/index.js +2 -2
  177. package/isHostComponent/isHostComponent.d.ts +6 -0
  178. package/isHostComponent/isHostComponent.js +13 -0
  179. package/isHostComponent/package.json +6 -0
  180. package/isMuiElement/index.js +13 -1
  181. package/isMuiElement/isMuiElement.js +13 -5
  182. package/isMuiElement/package.json +2 -2
  183. package/mergeSlotProps/index.d.ts +2 -0
  184. package/{node/chainPropTypes → mergeSlotProps}/index.js +2 -2
  185. package/mergeSlotProps/mergeSlotProps.d.ts +56 -0
  186. package/mergeSlotProps/mergeSlotProps.js +97 -0
  187. package/mergeSlotProps/package.json +6 -0
  188. package/modern/appendOwnerState/appendOwnerState.js +28 -0
  189. package/modern/appendOwnerState/index.js +1 -0
  190. package/modern/extractEventHandlers/extractEventHandlers.js +18 -0
  191. package/modern/extractEventHandlers/index.js +1 -0
  192. package/modern/index.js +6 -2
  193. package/modern/isHostComponent/index.js +1 -0
  194. package/modern/isHostComponent/isHostComponent.js +7 -0
  195. package/modern/mergeSlotProps/index.js +1 -0
  196. package/modern/mergeSlotProps/mergeSlotProps.js +90 -0
  197. package/modern/omitEventHandlers/index.js +1 -0
  198. package/modern/omitEventHandlers/omitEventHandlers.js +18 -0
  199. package/modern/resolveComponentProps/index.js +1 -0
  200. package/modern/resolveComponentProps/resolveComponentProps.js +11 -0
  201. package/modern/types.js +1 -0
  202. package/modern/useSlotProps/index.js +1 -0
  203. package/modern/useSlotProps/useSlotProps.js +38 -0
  204. package/omitEventHandlers/index.d.ts +1 -0
  205. package/{node/HTMLElementType → omitEventHandlers}/index.js +2 -2
  206. package/omitEventHandlers/omitEventHandlers.d.ts +9 -0
  207. package/omitEventHandlers/omitEventHandlers.js +24 -0
  208. package/omitEventHandlers/package.json +6 -0
  209. package/ownerDocument/index.js +13 -1
  210. package/ownerDocument/ownerDocument.js +7 -1
  211. package/ownerDocument/package.json +2 -2
  212. package/ownerWindow/index.js +13 -1
  213. package/ownerWindow/ownerWindow.js +10 -3
  214. package/ownerWindow/package.json +2 -2
  215. package/package.json +7 -5
  216. package/ponyfillGlobal/index.js +13 -1
  217. package/ponyfillGlobal/package.json +2 -2
  218. package/ponyfillGlobal/ponyfillGlobal.js +7 -1
  219. package/refType/index.js +13 -1
  220. package/refType/package.json +2 -2
  221. package/refType/refType.js +10 -3
  222. package/requirePropFactory/index.js +13 -1
  223. package/requirePropFactory/package.json +2 -2
  224. package/requirePropFactory/requirePropFactory.js +8 -2
  225. package/resolveComponentProps/index.d.ts +1 -0
  226. package/resolveComponentProps/index.js +13 -0
  227. package/resolveComponentProps/package.json +6 -0
  228. package/resolveComponentProps/resolveComponentProps.d.ts +6 -0
  229. package/resolveComponentProps/resolveComponentProps.js +17 -0
  230. package/resolveProps/index.js +13 -1
  231. package/resolveProps/package.json +2 -2
  232. package/resolveProps/resolveProps.js +7 -1
  233. package/setRef/index.js +13 -1
  234. package/setRef/package.json +2 -2
  235. package/setRef/setRef.js +7 -1
  236. package/types.d.ts +7 -0
  237. package/types.js +5 -0
  238. package/unsupportedProp/index.js +13 -1
  239. package/unsupportedProp/package.json +2 -2
  240. package/unsupportedProp/unsupportedProp.js +7 -1
  241. package/useControlled/index.js +13 -1
  242. package/useControlled/package.json +2 -2
  243. package/useControlled/useControlled.js +9 -2
  244. package/useEnhancedEffect/index.js +13 -1
  245. package/useEnhancedEffect/package.json +2 -2
  246. package/useEnhancedEffect/useEnhancedEffect.js +9 -3
  247. package/useEventCallback/index.js +13 -1
  248. package/useEventCallback/package.json +2 -2
  249. package/useEventCallback/useEventCallback.js +12 -5
  250. package/useForkRef/index.js +13 -1
  251. package/useForkRef/package.json +2 -2
  252. package/useForkRef/useForkRef.js +12 -4
  253. package/useId/index.js +13 -1
  254. package/useId/package.json +2 -2
  255. package/useId/useId.js +10 -3
  256. package/useLazyRef/index.js +13 -1
  257. package/useLazyRef/package.json +2 -2
  258. package/useLazyRef/useLazyRef.js +9 -2
  259. package/useLocalStorageState/index.js +13 -1
  260. package/useLocalStorageState/package.json +2 -2
  261. package/useLocalStorageState/useLocalStorageState.js +13 -4
  262. package/useOnMount/index.js +13 -1
  263. package/useOnMount/package.json +2 -2
  264. package/useOnMount/useOnMount.js +9 -2
  265. package/usePreviousProps/index.js +13 -1
  266. package/usePreviousProps/package.json +2 -2
  267. package/usePreviousProps/usePreviousProps.js +9 -2
  268. package/useSlotProps/index.d.ts +2 -0
  269. package/{node/exactProp → useSlotProps}/index.js +2 -2
  270. package/useSlotProps/package.json +6 -0
  271. package/useSlotProps/useSlotProps.d.ts +41 -0
  272. package/useSlotProps/useSlotProps.js +45 -0
  273. package/useTimeout/index.js +20 -2
  274. package/useTimeout/package.json +2 -2
  275. package/useTimeout/useTimeout.js +14 -6
  276. package/visuallyHidden/index.js +13 -1
  277. package/visuallyHidden/package.json +2 -2
  278. package/visuallyHidden/visuallyHidden.js +7 -1
  279. package/node/capitalize/capitalize.js +0 -18
  280. package/node/clamp/clamp.js +0 -10
  281. package/node/composeClasses/index.js +0 -13
  282. package/node/createChainedFunction/index.js +0 -13
  283. package/node/debounce/index.js +0 -26
  284. package/node/deepmerge/index.js +0 -26
  285. package/node/deprecatedPropType/index.js +0 -13
  286. package/node/elementAcceptingRef/index.js +0 -13
  287. package/node/elementTypeAcceptingRef/index.js +0 -13
  288. package/node/formatMuiErrorMessage/index.js +0 -13
  289. package/node/generateUtilityClass/generateUtilityClass.js +0 -31
  290. package/node/generateUtilityClass/index.js +0 -26
  291. package/node/generateUtilityClasses/generateUtilityClasses.js +0 -15
  292. package/node/generateUtilityClasses/index.js +0 -13
  293. package/node/getDisplayName/index.js +0 -13
  294. package/node/getScrollbarSize/index.js +0 -13
  295. package/node/getValidReactChildren/getValidReactChildren.js +0 -18
  296. package/node/getValidReactChildren/index.js +0 -13
  297. package/node/index.js +0 -369
  298. package/node/integerPropType/index.js +0 -26
  299. package/node/isFocusVisible/index.js +0 -13
  300. package/node/isMuiElement/index.js +0 -13
  301. package/node/isMuiElement/isMuiElement.js +0 -16
  302. package/node/ownerDocument/index.js +0 -13
  303. package/node/ownerDocument/ownerDocument.js +0 -9
  304. package/node/ownerWindow/index.js +0 -13
  305. package/node/ownerWindow/ownerWindow.js +0 -12
  306. package/node/ponyfillGlobal/index.js +0 -13
  307. package/node/ponyfillGlobal/ponyfillGlobal.js +0 -9
  308. package/node/refType/index.js +0 -13
  309. package/node/refType/refType.js +0 -10
  310. package/node/requirePropFactory/index.js +0 -13
  311. package/node/resolveProps/index.js +0 -13
  312. package/node/setRef/index.js +0 -13
  313. package/node/unsupportedProp/index.js +0 -13
  314. package/node/useControlled/index.js +0 -13
  315. package/node/useEnhancedEffect/index.js +0 -13
  316. package/node/useEnhancedEffect/useEnhancedEffect.js +0 -19
  317. package/node/useEventCallback/index.js +0 -13
  318. package/node/useEventCallback/useEventCallback.js +0 -27
  319. package/node/useForkRef/index.js +0 -13
  320. package/node/useForkRef/useForkRef.js +0 -30
  321. package/node/useId/index.js +0 -13
  322. package/node/useLazyRef/index.js +0 -13
  323. package/node/useLazyRef/useLazyRef.js +0 -26
  324. package/node/useLocalStorageState/index.js +0 -13
  325. package/node/useOnMount/index.js +0 -13
  326. package/node/useOnMount/useOnMount.js +0 -20
  327. package/node/usePreviousProps/index.js +0 -13
  328. package/node/usePreviousProps/usePreviousProps.js +0 -18
  329. package/node/useTimeout/index.js +0 -20
  330. package/node/useTimeout/useTimeout.js +0 -43
  331. package/node/visuallyHidden/index.js +0 -13
@@ -0,0 +1 @@
1
+ export { default } from './ClassNameGenerator';
@@ -1,10 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = HTMLElementType;
7
- function HTMLElementType(props, propName, componentName, location, propFullName) {
1
+ export default function HTMLElementType(props, propName, componentName, location, propFullName) {
8
2
  if (process.env.NODE_ENV === 'production') {
9
3
  return null;
10
4
  }
@@ -0,0 +1 @@
1
+ export { default } from './HTMLElementType';
@@ -0,0 +1,28 @@
1
+ import isHostComponent from '../isHostComponent';
2
+
3
+ /**
4
+ * Type of the ownerState based on the type of an element it applies to.
5
+ * This resolves to the provided OwnerState for React components and `undefined` for host components.
6
+ * Falls back to `OwnerState | undefined` when the exact type can't be determined in development time.
7
+ */
8
+
9
+ /**
10
+ * Appends the ownerState object to the props, merging with the existing one if necessary.
11
+ *
12
+ * @param elementType Type of the element that owns the `existingProps`. If the element is a DOM node or undefined, `ownerState` is not applied.
13
+ * @param otherProps Props of the element.
14
+ * @param ownerState
15
+ */
16
+ function appendOwnerState(elementType, otherProps, ownerState) {
17
+ if (elementType === undefined || isHostComponent(elementType)) {
18
+ return otherProps;
19
+ }
20
+ return {
21
+ ...otherProps,
22
+ ownerState: {
23
+ ...otherProps.ownerState,
24
+ ...ownerState
25
+ }
26
+ };
27
+ }
28
+ export default appendOwnerState;
@@ -0,0 +1 @@
1
+ export { default } from './appendOwnerState';
@@ -0,0 +1,11 @@
1
+ import _formatMuiErrorMessage from "@mui/utils/formatMuiErrorMessage";
2
+ // It should to be noted that this function isn't equivalent to `text-transform: capitalize`.
3
+ //
4
+ // A strict capitalization should uppercase the first letter of each word in the sentence.
5
+ // We only handle the first word.
6
+ export default function capitalize(string) {
7
+ if (typeof string !== 'string') {
8
+ throw new Error(process.env.NODE_ENV !== "production" ? `MUI: \`capitalize(string)\` expects a string argument.` : _formatMuiErrorMessage(7));
9
+ }
10
+ return string.charAt(0).toUpperCase() + string.slice(1);
11
+ }
@@ -0,0 +1 @@
1
+ export { default } from './capitalize';
@@ -1,10 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = chainPropTypes;
7
- function chainPropTypes(propType1, propType2) {
1
+ export default function chainPropTypes(propType1, propType2) {
8
2
  if (process.env.NODE_ENV === 'production') {
9
3
  return () => null;
10
4
  }
@@ -0,0 +1 @@
1
+ export { default } from './chainPropTypes';
@@ -0,0 +1,4 @@
1
+ function clamp(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {
2
+ return Math.max(min, Math.min(val, max));
3
+ }
4
+ export default clamp;
@@ -0,0 +1 @@
1
+ export { default } from './clamp';
@@ -1,10 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = composeClasses;
7
- function composeClasses(slots, getUtilityClass, classes = undefined) {
1
+ export default function composeClasses(slots, getUtilityClass, classes = undefined) {
8
2
  const output = {};
9
3
  Object.keys(slots).forEach(
10
4
  // `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.
@@ -0,0 +1 @@
1
+ export { default } from './composeClasses';
@@ -1,16 +1,10 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = createChainedFunction;
7
1
  /**
8
2
  * Safe chained function.
9
3
  *
10
4
  * Will only create a new function if needed,
11
5
  * otherwise will pass back existing functions or null.
12
6
  */
13
- function createChainedFunction(...funcs) {
7
+ export default function createChainedFunction(...funcs) {
14
8
  return funcs.reduce((acc, func) => {
15
9
  if (func == null) {
16
10
  return acc;
@@ -0,0 +1 @@
1
+ export { default } from './createChainedFunction';
@@ -1,12 +1,6 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = debounce;
7
1
  // Corresponds to 10 frames at 60 Hz.
8
2
  // A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.
9
- function debounce(func, wait = 166) {
3
+ export default function debounce(func, wait = 166) {
10
4
  let timeout;
11
5
  function debounced(...args) {
12
6
  const later = () => {
@@ -0,0 +1,2 @@
1
+ export { default } from './debounce';
2
+ export * from './debounce';
@@ -1,12 +1,5 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = deepmerge;
7
- exports.isPlainObject = isPlainObject;
8
1
  // https://github.com/sindresorhus/is-plain-obj/blob/main/index.js
9
- function isPlainObject(item) {
2
+ export function isPlainObject(item) {
10
3
  if (typeof item !== 'object' || item === null) {
11
4
  return false;
12
5
  }
@@ -23,7 +16,7 @@ function deepClone(source) {
23
16
  });
24
17
  return output;
25
18
  }
26
- function deepmerge(target, source, options = {
19
+ export default function deepmerge(target, source, options = {
27
20
  clone: true
28
21
  }) {
29
22
  const output = options.clone ? {
@@ -0,0 +1,2 @@
1
+ export { default } from './deepmerge';
2
+ export * from './deepmerge';
@@ -1,10 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = deprecatedPropType;
7
- function deprecatedPropType(validator, reason) {
1
+ export default function deprecatedPropType(validator, reason) {
8
2
  if (process.env.NODE_ENV === 'production') {
9
3
  return () => null;
10
4
  }
@@ -0,0 +1 @@
1
+ export { default } from './deprecatedPropType';
@@ -1,12 +1,5 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _propTypes = _interopRequireDefault(require("prop-types"));
9
- var _chainPropTypes = _interopRequireDefault(require("../chainPropTypes"));
1
+ import PropTypes from 'prop-types';
2
+ import chainPropTypes from '../chainPropTypes';
10
3
  function isClassComponent(elementType) {
11
4
  // elementType.prototype?.isReactComponent
12
5
  const {
@@ -44,6 +37,6 @@ function acceptingRef(props, propName, componentName, location, propFullName) {
44
37
  }
45
38
  return null;
46
39
  }
47
- const elementAcceptingRef = (0, _chainPropTypes.default)(_propTypes.default.element, acceptingRef);
48
- elementAcceptingRef.isRequired = (0, _chainPropTypes.default)(_propTypes.default.element.isRequired, acceptingRef);
49
- var _default = exports.default = elementAcceptingRef;
40
+ const elementAcceptingRef = chainPropTypes(PropTypes.element, acceptingRef);
41
+ elementAcceptingRef.isRequired = chainPropTypes(PropTypes.element.isRequired, acceptingRef);
42
+ export default elementAcceptingRef;
@@ -0,0 +1 @@
1
+ export { default } from './elementAcceptingRef';
@@ -1,12 +1,5 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _propTypes = _interopRequireDefault(require("prop-types"));
9
- var _chainPropTypes = _interopRequireDefault(require("../chainPropTypes"));
1
+ import PropTypes from 'prop-types';
2
+ import chainPropTypes from '../chainPropTypes';
10
3
  function isClassComponent(elementType) {
11
4
  // elementType.prototype?.isReactComponent
12
5
  const {
@@ -44,4 +37,4 @@ function elementTypeAcceptingRef(props, propName, componentName, location, propF
44
37
  }
45
38
  return null;
46
39
  }
47
- var _default = exports.default = (0, _chainPropTypes.default)(_propTypes.default.elementType, elementTypeAcceptingRef);
40
+ export default chainPropTypes(PropTypes.elementType, elementTypeAcceptingRef);
@@ -0,0 +1 @@
1
+ export { default } from './elementTypeAcceptingRef';
@@ -1,15 +1,9 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exactProp;
7
1
  // This module is based on https://github.com/airbnb/prop-types-exact repository.
8
2
  // However, in order to reduce the number of dependencies and to remove some extra safe checks
9
3
  // the module was forked.
10
4
 
11
5
  const specialProperty = 'exact-prop: \u200b';
12
- function exactProp(propTypes) {
6
+ export default function exactProp(propTypes) {
13
7
  if (process.env.NODE_ENV === 'production') {
14
8
  return propTypes;
15
9
  }
@@ -0,0 +1 @@
1
+ export { default } from './exactProp';
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Extracts event handlers from a given object.
3
+ * A prop is considered an event handler if it is a function and its name starts with `on`.
4
+ *
5
+ * @param object An object to extract event handlers from.
6
+ * @param excludeKeys An array of keys to exclude from the returned object.
7
+ */
8
+ function extractEventHandlers(object, excludeKeys = []) {
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' && !excludeKeys.includes(prop)).forEach(prop => {
14
+ result[prop] = object[prop];
15
+ });
16
+ return result;
17
+ }
18
+ export default extractEventHandlers;
@@ -0,0 +1 @@
1
+ export { default } from './extractEventHandlers';
@@ -1,15 +1,9 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = formatMuiErrorMessage;
7
1
  /**
8
2
  * WARNING: Don't import this directly.
9
3
  * Use `MuiError` from `@mui/internal-babel-macros/MuiError.macro` instead.
10
4
  * @param {number} code
11
5
  */
12
- function formatMuiErrorMessage(code) {
6
+ export default function formatMuiErrorMessage(code) {
13
7
  // Apply babel-plugin-transform-template-literals in loose mode
14
8
  // loose mode is safe if we're concatenating primitives
15
9
  // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose
@@ -0,0 +1 @@
1
+ export { default } from './formatMuiErrorMessage';
@@ -0,0 +1,22 @@
1
+ import ClassNameGenerator from '../ClassNameGenerator';
2
+ export const globalStateClasses = {
3
+ active: 'active',
4
+ checked: 'checked',
5
+ completed: 'completed',
6
+ disabled: 'disabled',
7
+ error: 'error',
8
+ expanded: 'expanded',
9
+ focused: 'focused',
10
+ focusVisible: 'focusVisible',
11
+ open: 'open',
12
+ readOnly: 'readOnly',
13
+ required: 'required',
14
+ selected: 'selected'
15
+ };
16
+ export default function generateUtilityClass(componentName, slot, globalStatePrefix = 'Mui') {
17
+ const globalStateClass = globalStateClasses[slot];
18
+ return globalStateClass ? `${globalStatePrefix}-${globalStateClass}` : `${ClassNameGenerator.generate(componentName)}-${slot}`;
19
+ }
20
+ export function isGlobalState(slot) {
21
+ return globalStateClasses[slot] !== undefined;
22
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from './generateUtilityClass';
2
+ export * from './generateUtilityClass';
@@ -0,0 +1,8 @@
1
+ import generateUtilityClass from '../generateUtilityClass';
2
+ export default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {
3
+ const result = {};
4
+ slots.forEach(slot => {
5
+ result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);
6
+ });
7
+ return result;
8
+ }
@@ -0,0 +1 @@
1
+ export { default } from './generateUtilityClasses';
@@ -1,10 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = getDisplayName;
7
- var _reactIs = require("react-is");
1
+ import { ForwardRef, Memo } from 'react-is';
8
2
  function getFunctionComponentName(Component, fallback = '') {
9
3
  return Component.displayName || Component.name || fallback;
10
4
  }
@@ -18,7 +12,7 @@ function getWrappedName(outerType, innerType, wrapperName) {
18
12
  * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js
19
13
  * originally forked from recompose/getDisplayName
20
14
  */
21
- function getDisplayName(Component) {
15
+ export default function getDisplayName(Component) {
22
16
  if (Component == null) {
23
17
  return undefined;
24
18
  }
@@ -32,9 +26,9 @@ function getDisplayName(Component) {
32
26
  // TypeScript can't have components as objects but they exist in the form of `memo` or `Suspense`
33
27
  if (typeof Component === 'object') {
34
28
  switch (Component.$$typeof) {
35
- case _reactIs.ForwardRef:
29
+ case ForwardRef:
36
30
  return getWrappedName(Component, Component.render, 'ForwardRef');
37
- case _reactIs.Memo:
31
+ case Memo:
38
32
  return getWrappedName(Component, Component.type, 'memo');
39
33
  default:
40
34
  return undefined;
@@ -0,0 +1 @@
1
+ export { default } from './getDisplayName';
@@ -1,12 +1,6 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = getScrollbarSize;
7
1
  // A change of the browser zoom change the scrollbar size.
8
2
  // Credit https://github.com/twbs/bootstrap/blob/488fd8afc535ca3a6ad4dc581f5e89217b6a36ac/js/src/util/scrollbar.js#L14-L18
9
- function getScrollbarSize(doc) {
3
+ export default function getScrollbarSize(doc) {
10
4
  // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
11
5
  const documentWidth = doc.documentElement.clientWidth;
12
6
  return Math.abs(window.innerWidth - documentWidth);
@@ -0,0 +1 @@
1
+ export { default } from './getScrollbarSize';
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+
3
+ /**
4
+ * Gets only the valid children of a component,
5
+ * and ignores any nullish or falsy child.
6
+ *
7
+ * @param children the children
8
+ */
9
+ export default function getValidReactChildren(children) {
10
+ return React.Children.toArray(children).filter(child => /*#__PURE__*/React.isValidElement(child));
11
+ }
@@ -0,0 +1 @@
1
+ export { default } from './getValidReactChildren';
package/esm/index.js ADDED
@@ -0,0 +1,47 @@
1
+ export { default as chainPropTypes } from './chainPropTypes';
2
+ export { default as deepmerge } from './deepmerge';
3
+ export { isPlainObject } from './deepmerge';
4
+ export { default as elementAcceptingRef } from './elementAcceptingRef';
5
+ export { default as elementTypeAcceptingRef } from './elementTypeAcceptingRef';
6
+ export { default as exactProp } from './exactProp';
7
+ export { default as formatMuiErrorMessage } from './formatMuiErrorMessage';
8
+ export { default as getDisplayName } from './getDisplayName';
9
+ export { default as HTMLElementType } from './HTMLElementType';
10
+ export { default as ponyfillGlobal } from './ponyfillGlobal';
11
+ export { default as refType } from './refType';
12
+ export { default as unstable_capitalize } from './capitalize';
13
+ export { default as unstable_createChainedFunction } from './createChainedFunction';
14
+ export { default as unstable_debounce } from './debounce';
15
+ export { default as unstable_deprecatedPropType } from './deprecatedPropType';
16
+ export { default as unstable_isMuiElement } from './isMuiElement';
17
+ export { default as unstable_ownerDocument } from './ownerDocument';
18
+ export { default as unstable_ownerWindow } from './ownerWindow';
19
+ export { default as unstable_requirePropFactory } from './requirePropFactory';
20
+ export { default as unstable_setRef } from './setRef';
21
+ export { default as unstable_useEnhancedEffect } from './useEnhancedEffect';
22
+ export { default as unstable_useId } from './useId';
23
+ export { default as unstable_unsupportedProp } from './unsupportedProp';
24
+ export { default as unstable_useControlled } from './useControlled';
25
+ export { default as unstable_useEventCallback } from './useEventCallback';
26
+ export { default as unstable_useForkRef } from './useForkRef';
27
+ export { default as unstable_useLazyRef } from './useLazyRef';
28
+ export { default as unstable_useTimeout, Timeout as unstable_Timeout } from './useTimeout';
29
+ export { default as unstable_useOnMount } from './useOnMount';
30
+ export { default as unstable_isFocusVisible } from './isFocusVisible';
31
+ export { default as unstable_getScrollbarSize } from './getScrollbarSize';
32
+ export { default as usePreviousProps } from './usePreviousProps';
33
+ export { default as getValidReactChildren } from './getValidReactChildren';
34
+ export { default as visuallyHidden } from './visuallyHidden';
35
+ export { default as integerPropType } from './integerPropType';
36
+ export { default as internal_resolveProps } from './resolveProps';
37
+ export { default as unstable_composeClasses } from './composeClasses';
38
+ export { default as unstable_generateUtilityClass } from './generateUtilityClass';
39
+ export { isGlobalState as unstable_isGlobalState } from './generateUtilityClass';
40
+ export * from './generateUtilityClass';
41
+ export { default as unstable_generateUtilityClasses } from './generateUtilityClasses';
42
+ export { default as unstable_ClassNameGenerator } from './ClassNameGenerator';
43
+ export { default as clamp } from './clamp';
44
+ export { default as unstable_useSlotProps } from './useSlotProps';
45
+ export { default as unstable_resolveComponentProps } from './resolveComponentProps';
46
+ export { default as unstable_extractEventHandlers } from './extractEventHandlers';
47
+ export * from './types';
@@ -0,0 +1,2 @@
1
+ export { default } from './integerPropType';
2
+ export * from './integerPropType';
@@ -1,11 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- exports.getTypeByValue = getTypeByValue;
8
- function getTypeByValue(value) {
1
+ export function getTypeByValue(value) {
9
2
  const valueType = typeof value;
10
3
  switch (valueType) {
11
4
  case 'number':
@@ -48,4 +41,4 @@ function validatorNoop() {
48
41
  }
49
42
  validator.isRequired = requiredInteger;
50
43
  validatorNoop.isRequired = validatorNoop;
51
- var _default = exports.default = process.env.NODE_ENV === 'production' ? validatorNoop : validator;
44
+ export default process.env.NODE_ENV === 'production' ? validatorNoop : validator;
@@ -0,0 +1 @@
1
+ export { default } from './isFocusVisible';
@@ -1,13 +1,7 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = isFocusVisible;
7
1
  /**
8
2
  * Returns a boolean indicating if the event's target has :focus-visible
9
3
  */
10
- function isFocusVisible(element) {
4
+ export default function isFocusVisible(element) {
11
5
  try {
12
6
  return element.matches(':focus-visible');
13
7
  } catch (error) {
@@ -0,0 +1 @@
1
+ export { default } from './isHostComponent';
@@ -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 @@
1
+ export { default } from './isMuiElement';
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ export default function isMuiElement(element, muiNames) {
3
+ return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(
4
+ // For server components `muiName` is avaialble in element.type._payload.value.muiName
5
+ // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45
6
+ // eslint-disable-next-line no-underscore-dangle
7
+ element.type.muiName ?? element.type?._payload?.value?.muiName) !== -1;
8
+ }
@@ -0,0 +1 @@
1
+ export { default } from './mergeSlotProps';
@@ -0,0 +1,90 @@
1
+ import clsx from 'clsx';
2
+ import extractEventHandlers from '../extractEventHandlers';
3
+ import omitEventHandlers from '../omitEventHandlers';
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;
@@ -0,0 +1 @@
1
+ export { default } from './omitEventHandlers';