@mui/utils 6.0.0-alpha.9 → 6.0.0-beta.1

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 (355) hide show
  1. package/CHANGELOG.md +363 -3
  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/clamp → 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 +5 -11
  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/esm/isFocusVisible/isFocusVisible.js +15 -0
  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 +5 -10
  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.d.ts +1 -1
  159. package/getDisplayName/getDisplayName.js +11 -5
  160. package/getDisplayName/index.js +13 -1
  161. package/getDisplayName/package.json +2 -2
  162. package/getScrollbarSize/getScrollbarSize.js +7 -1
  163. package/getScrollbarSize/index.js +13 -1
  164. package/getScrollbarSize/package.json +2 -2
  165. package/getValidReactChildren/getValidReactChildren.js +9 -2
  166. package/getValidReactChildren/index.js +13 -1
  167. package/getValidReactChildren/package.json +2 -2
  168. package/index.d.ts +6 -2
  169. package/index.js +399 -45
  170. package/integerPropType/index.js +26 -2
  171. package/integerPropType/integerPropType.js +9 -2
  172. package/integerPropType/package.json +2 -2
  173. package/isFocusVisible/index.d.ts +1 -0
  174. package/{node/chainPropTypes → isFocusVisible}/index.js +2 -2
  175. package/isFocusVisible/isFocusVisible.d.ts +4 -0
  176. package/isFocusVisible/isFocusVisible.js +21 -0
  177. package/isFocusVisible/package.json +6 -0
  178. package/isHostComponent/index.d.ts +1 -0
  179. package/{node/HTMLElementType → isHostComponent}/index.js +2 -2
  180. package/isHostComponent/isHostComponent.d.ts +6 -0
  181. package/isHostComponent/isHostComponent.js +13 -0
  182. package/isHostComponent/package.json +6 -0
  183. package/isMuiElement/index.js +13 -1
  184. package/isMuiElement/isMuiElement.js +13 -5
  185. package/isMuiElement/package.json +2 -2
  186. package/mergeSlotProps/index.d.ts +2 -0
  187. package/{node/composeClasses → mergeSlotProps}/index.js +2 -2
  188. package/mergeSlotProps/mergeSlotProps.d.ts +56 -0
  189. package/mergeSlotProps/mergeSlotProps.js +97 -0
  190. package/mergeSlotProps/package.json +6 -0
  191. package/modern/appendOwnerState/appendOwnerState.js +28 -0
  192. package/modern/appendOwnerState/index.js +1 -0
  193. package/modern/extractEventHandlers/extractEventHandlers.js +18 -0
  194. package/modern/extractEventHandlers/index.js +1 -0
  195. package/modern/getDisplayName/getDisplayName.js +1 -1
  196. package/modern/index.js +7 -4
  197. package/modern/isFocusVisible/index.js +1 -0
  198. package/modern/isFocusVisible/isFocusVisible.js +15 -0
  199. package/modern/isHostComponent/index.js +1 -0
  200. package/modern/isHostComponent/isHostComponent.js +7 -0
  201. package/modern/mergeSlotProps/index.js +1 -0
  202. package/modern/mergeSlotProps/mergeSlotProps.js +90 -0
  203. package/modern/omitEventHandlers/index.js +1 -0
  204. package/modern/omitEventHandlers/omitEventHandlers.js +18 -0
  205. package/modern/resolveComponentProps/index.js +1 -0
  206. package/modern/resolveComponentProps/resolveComponentProps.js +11 -0
  207. package/modern/types.js +1 -0
  208. package/modern/useControlled/useControlled.js +3 -1
  209. package/modern/useSlotProps/index.js +1 -0
  210. package/modern/useSlotProps/useSlotProps.js +38 -0
  211. package/omitEventHandlers/index.d.ts +1 -0
  212. package/omitEventHandlers/index.js +13 -0
  213. package/omitEventHandlers/omitEventHandlers.d.ts +9 -0
  214. package/omitEventHandlers/omitEventHandlers.js +24 -0
  215. package/omitEventHandlers/package.json +6 -0
  216. package/ownerDocument/index.js +13 -1
  217. package/ownerDocument/ownerDocument.js +7 -1
  218. package/ownerDocument/package.json +2 -2
  219. package/ownerWindow/index.js +13 -1
  220. package/ownerWindow/ownerWindow.js +10 -3
  221. package/ownerWindow/package.json +2 -2
  222. package/package.json +6 -5
  223. package/ponyfillGlobal/index.js +13 -1
  224. package/ponyfillGlobal/package.json +2 -2
  225. package/ponyfillGlobal/ponyfillGlobal.js +7 -1
  226. package/refType/index.js +13 -1
  227. package/refType/package.json +2 -2
  228. package/refType/refType.js +10 -3
  229. package/requirePropFactory/index.js +13 -1
  230. package/requirePropFactory/package.json +2 -2
  231. package/requirePropFactory/requirePropFactory.js +8 -2
  232. package/resolveComponentProps/index.d.ts +1 -0
  233. package/resolveComponentProps/index.js +13 -0
  234. package/resolveComponentProps/package.json +6 -0
  235. package/resolveComponentProps/resolveComponentProps.d.ts +6 -0
  236. package/resolveComponentProps/resolveComponentProps.js +17 -0
  237. package/resolveProps/index.js +13 -1
  238. package/resolveProps/package.json +2 -2
  239. package/resolveProps/resolveProps.js +7 -1
  240. package/setRef/index.js +13 -1
  241. package/setRef/package.json +2 -2
  242. package/setRef/setRef.js +7 -1
  243. package/types.d.ts +7 -0
  244. package/types.js +5 -0
  245. package/unsupportedProp/index.js +13 -1
  246. package/unsupportedProp/package.json +2 -2
  247. package/unsupportedProp/unsupportedProp.js +7 -1
  248. package/useControlled/index.js +13 -1
  249. package/useControlled/package.json +2 -2
  250. package/useControlled/useControlled.js +12 -3
  251. package/useEnhancedEffect/index.js +13 -1
  252. package/useEnhancedEffect/package.json +2 -2
  253. package/useEnhancedEffect/useEnhancedEffect.js +9 -3
  254. package/useEventCallback/index.js +13 -1
  255. package/useEventCallback/package.json +2 -2
  256. package/useEventCallback/useEventCallback.js +12 -5
  257. package/useForkRef/index.js +13 -1
  258. package/useForkRef/package.json +2 -2
  259. package/useForkRef/useForkRef.js +12 -4
  260. package/useId/index.js +13 -1
  261. package/useId/package.json +2 -2
  262. package/useId/useId.js +10 -3
  263. package/useLazyRef/index.js +13 -1
  264. package/useLazyRef/package.json +2 -2
  265. package/useLazyRef/useLazyRef.js +9 -2
  266. package/useLocalStorageState/index.js +13 -1
  267. package/useLocalStorageState/package.json +2 -2
  268. package/useLocalStorageState/useLocalStorageState.js +13 -4
  269. package/useOnMount/index.js +13 -1
  270. package/useOnMount/package.json +2 -2
  271. package/useOnMount/useOnMount.js +9 -2
  272. package/usePreviousProps/index.js +13 -1
  273. package/usePreviousProps/package.json +2 -2
  274. package/usePreviousProps/usePreviousProps.js +9 -2
  275. package/useSlotProps/index.d.ts +2 -0
  276. package/{node/capitalize → useSlotProps}/index.js +2 -2
  277. package/useSlotProps/package.json +6 -0
  278. package/useSlotProps/useSlotProps.d.ts +41 -0
  279. package/useSlotProps/useSlotProps.js +45 -0
  280. package/useTimeout/index.js +20 -2
  281. package/useTimeout/package.json +2 -2
  282. package/useTimeout/useTimeout.js +14 -6
  283. package/visuallyHidden/index.js +13 -1
  284. package/visuallyHidden/package.json +2 -2
  285. package/visuallyHidden/visuallyHidden.js +7 -1
  286. package/modern/scrollLeft/index.js +0 -1
  287. package/modern/scrollLeft/scrollLeft.js +0 -70
  288. package/modern/useIsFocusVisible/index.js +0 -2
  289. package/modern/useIsFocusVisible/useIsFocusVisible.js +0 -163
  290. package/node/capitalize/capitalize.js +0 -18
  291. package/node/clamp/clamp.js +0 -10
  292. package/node/createChainedFunction/index.js +0 -13
  293. package/node/debounce/index.js +0 -26
  294. package/node/deepmerge/index.js +0 -26
  295. package/node/deprecatedPropType/index.js +0 -13
  296. package/node/elementAcceptingRef/index.js +0 -13
  297. package/node/elementTypeAcceptingRef/index.js +0 -13
  298. package/node/exactProp/index.js +0 -13
  299. package/node/formatMuiErrorMessage/index.js +0 -13
  300. package/node/generateUtilityClass/generateUtilityClass.js +0 -31
  301. package/node/generateUtilityClass/index.js +0 -26
  302. package/node/generateUtilityClasses/generateUtilityClasses.js +0 -15
  303. package/node/generateUtilityClasses/index.js +0 -13
  304. package/node/getDisplayName/index.js +0 -13
  305. package/node/getScrollbarSize/index.js +0 -13
  306. package/node/getValidReactChildren/getValidReactChildren.js +0 -18
  307. package/node/getValidReactChildren/index.js +0 -13
  308. package/node/index.js +0 -384
  309. package/node/integerPropType/index.js +0 -26
  310. package/node/isMuiElement/index.js +0 -13
  311. package/node/isMuiElement/isMuiElement.js +0 -16
  312. package/node/ownerDocument/index.js +0 -13
  313. package/node/ownerDocument/ownerDocument.js +0 -9
  314. package/node/ownerWindow/index.js +0 -13
  315. package/node/ownerWindow/ownerWindow.js +0 -12
  316. package/node/ponyfillGlobal/index.js +0 -13
  317. package/node/ponyfillGlobal/ponyfillGlobal.js +0 -9
  318. package/node/refType/index.js +0 -13
  319. package/node/refType/refType.js +0 -10
  320. package/node/requirePropFactory/index.js +0 -13
  321. package/node/resolveProps/index.js +0 -13
  322. package/node/scrollLeft/index.js +0 -16
  323. package/node/scrollLeft/scrollLeft.js +0 -77
  324. package/node/setRef/index.js +0 -13
  325. package/node/unsupportedProp/index.js +0 -13
  326. package/node/useControlled/index.js +0 -13
  327. package/node/useEnhancedEffect/index.js +0 -13
  328. package/node/useEnhancedEffect/useEnhancedEffect.js +0 -19
  329. package/node/useEventCallback/index.js +0 -13
  330. package/node/useEventCallback/useEventCallback.js +0 -27
  331. package/node/useForkRef/index.js +0 -13
  332. package/node/useForkRef/useForkRef.js +0 -30
  333. package/node/useId/index.js +0 -13
  334. package/node/useIsFocusVisible/index.js +0 -26
  335. package/node/useIsFocusVisible/useIsFocusVisible.js +0 -171
  336. package/node/useLazyRef/index.js +0 -13
  337. package/node/useLazyRef/useLazyRef.js +0 -26
  338. package/node/useLocalStorageState/index.js +0 -13
  339. package/node/useOnMount/index.js +0 -13
  340. package/node/useOnMount/useOnMount.js +0 -20
  341. package/node/usePreviousProps/index.js +0 -13
  342. package/node/usePreviousProps/usePreviousProps.js +0 -18
  343. package/node/useTimeout/index.js +0 -20
  344. package/node/useTimeout/useTimeout.js +0 -43
  345. package/node/visuallyHidden/index.js +0 -13
  346. package/scrollLeft/index.d.ts +0 -1
  347. package/scrollLeft/index.js +0 -1
  348. package/scrollLeft/package.json +0 -6
  349. package/scrollLeft/scrollLeft.d.ts +0 -2
  350. package/scrollLeft/scrollLeft.js +0 -70
  351. package/useIsFocusVisible/index.d.ts +0 -2
  352. package/useIsFocusVisible/index.js +0 -2
  353. package/useIsFocusVisible/package.json +0 -6
  354. package/useIsFocusVisible/useIsFocusVisible.d.ts +0 -9
  355. package/useIsFocusVisible/useIsFocusVisible.js +0 -163
@@ -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
  }
@@ -16,9 +10,9 @@ function getWrappedName(outerType, innerType, wrapperName) {
16
10
  /**
17
11
  * cherry-pick from
18
12
  * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js
19
- * originally forked from recompose/getDisplayName with added IE11 support
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';
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Returns a boolean indicating if the event's target has :focus-visible
3
+ */
4
+ export default function isFocusVisible(element) {
5
+ try {
6
+ return element.matches(':focus-visible');
7
+ } catch (error) {
8
+ // Do not warn on jsdom tests, otherwise all tests that rely on focus have to be skipped
9
+ // Tests that rely on `:focus-visible` will still have to be skipped in jsdom
10
+ if (process.env.NODE_ENV !== 'production' && !/jsdom/.test(window.navigator.userAgent)) {
11
+ console.warn(['MUI: The `:focus-visible` pseudo class is not supported in this browser.', 'Some components rely on this feature to work properly.'].join('\n'));
12
+ }
13
+ }
14
+ return false;
15
+ }
@@ -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';
@@ -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;
@@ -0,0 +1 @@
1
+ export { default } from './ownerDocument';
@@ -0,0 +1,3 @@
1
+ export default function ownerDocument(node) {
2
+ return node && node.ownerDocument || document;
3
+ }
@@ -0,0 +1 @@
1
+ export { default } from './ownerWindow';
@@ -0,0 +1,5 @@
1
+ import ownerDocument from '../ownerDocument';
2
+ export default function ownerWindow(node) {
3
+ const doc = ownerDocument(node);
4
+ return doc.defaultView || window;
5
+ }
@@ -0,0 +1 @@
1
+ export { default } from './ponyfillGlobal';
@@ -0,0 +1,3 @@
1
+ /* eslint-disable */
2
+ // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
3
+ export default typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
@@ -0,0 +1 @@
1
+ export { default } from './refType';
@@ -0,0 +1,3 @@
1
+ import PropTypes from 'prop-types';
2
+ const refType = PropTypes.oneOfType([PropTypes.func, PropTypes.object]);
3
+ export default refType;
@@ -0,0 +1 @@
1
+ export { default } from './requirePropFactory';
@@ -1,10 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = requirePropFactory;
7
- function requirePropFactory(componentNameInError, Component) {
1
+ export default function requirePropFactory(componentNameInError, Component) {
8
2
  if (process.env.NODE_ENV === 'production') {
9
3
  return () => null;
10
4
  }
@@ -15,7 +9,7 @@ function requirePropFactory(componentNameInError, Component) {
15
9
  } : null;
16
10
  const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {
17
11
  const propFullNameSafe = propFullName || propName;
18
- const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];
12
+ const defaultTypeChecker = prevPropTypes?.[propFullNameSafe];
19
13
  if (defaultTypeChecker) {
20
14
  const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);
21
15
  if (typeCheckerResult) {
@@ -0,0 +1 @@
1
+ export { default } from './resolveComponentProps';
@@ -0,0 +1,11 @@
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;
@@ -0,0 +1 @@
1
+ export { default } from './resolveProps';
@@ -1,16 +1,10 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = resolveProps;
7
1
  /**
8
2
  * Add keys, values of `defaultProps` that does not exist in `props`
9
3
  * @param {object} defaultProps
10
4
  * @param {object} props
11
5
  * @returns {object} resolved props
12
6
  */
13
- function resolveProps(defaultProps, props) {
7
+ export default function resolveProps(defaultProps, props) {
14
8
  const output = {
15
9
  ...props
16
10
  };
@@ -0,0 +1 @@
1
+ export { default } from './setRef';
@@ -1,9 +1,3 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = setRef;
7
1
  /**
8
2
  * TODO v5: consider making it private
9
3
  *
@@ -17,7 +11,7 @@ exports.default = setRef;
17
11
  * while still using it inside the component.
18
12
  * @param ref A ref callback or ref object. If anything falsy, this is a no-op.
19
13
  */
20
- function setRef(ref, value) {
14
+ export default function setRef(ref, value) {
21
15
  if (typeof ref === 'function') {
22
16
  ref(value);
23
17
  } else if (ref) {
package/esm/types.js ADDED
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export { default } from './unsupportedProp';
@@ -1,10 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = unsupportedProp;
7
- function unsupportedProp(props, propName, componentName, location, propFullName) {
1
+ export default function unsupportedProp(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 './useControlled';
@@ -1,15 +1,8 @@
1
- "use strict";
2
1
  'use client';
3
2
 
4
3
  /* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = useControlled;
9
- var React = _interopRequireWildcard(require("react"));
10
- 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); }
11
- 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; }
12
- function useControlled({
4
+ import * as React from 'react';
5
+ export default function useControlled({
13
6
  controlled,
14
7
  default: defaultProp,
15
8
  name,
@@ -31,7 +24,9 @@ function useControlled({
31
24
  current: defaultValue
32
25
  } = React.useRef(defaultProp);
33
26
  React.useEffect(() => {
34
- if (!isControlled && defaultValue !== defaultProp) {
27
+ // Object.is() is not equivalent to the === operator.
28
+ // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is for more details.
29
+ if (!isControlled && !Object.is(defaultValue, defaultProp)) {
35
30
  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'));
36
31
  }
37
32
  }, [JSON.stringify(defaultProp)]);
@@ -0,0 +1 @@
1
+ export { default } from './useEnhancedEffect';
@@ -0,0 +1,13 @@
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;
@@ -0,0 +1 @@
1
+ export { default } from './useEventCallback';
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import useEnhancedEffect from '../useEnhancedEffect';
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;
@@ -0,0 +1 @@
1
+ export { default } from './useForkRef';